以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  不能自动加载符合条件的数据  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=16923)

--  作者:shanshuizhujian
--  发布时间:2012/2/27 17:23:00
--  不能自动加载符合条件的数据

1、首先在BeforeLoadInnerTable事件加入下面的代码,确保订单表初始状态不会加载任何数据:

If e.DataTableName = "订单" Then
    e.Filter =
"[_Identify] Is Null"
End
If

2、然后修改用户登录窗口的“确定”按钮的代码,在后面加上加载数据的代码:

Dim UserName As String = e.Form.Controls("UserName").Value
Dim
cmd As New SQLCommand
Dim
dt As DataTable
Dim
dr As DataRow
cmd.ConnectionName =
"User"
If
UserName = "" Then
    Messagebox.show(
"请选择用户!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    Return
End
If
cmd.CommandText =
"Select * From {Users} Where [Name] = \'" & UserName & "\'"
dt = cmd.ExecuteReader
dr = dt.DataRows(
0)
If
e.Form.Controls("PassWord").Value = dr("Password") Then
    _UserName = UserName
    _UserGroup = dr(
"Group")
    e.Form.Close

Else

    Messagebox.show(
"密码错误!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
End If

DataTables
("订单").LoadFilter = "业务员 = \'" & _UserName & "\'"
DataTables(
"订单").Load(
)

上面代码的最后两行,就是用于根据登录用户名动态加载订单表数据的:

DataTables("订单").LoadFilter = "业务员 = \'" & _UserName & "\'"
DataTables(
"订单").Load(
)

 

 

 

用这个方法怎么不能实现预期效果呢?什么数据也没有?请问是怎么回事?


--  作者:狐狸爸爸
--  发布时间:2012/2/27 17:42:00
--  

帮助不会有错的。

你做个简单的例子发上来吧。


--  作者:shanshuizhujian
--  发布时间:2012/2/27 19:08:00
--  

Dim UserName As String = e.Form.Controls("UserName").Value
Dim cmd As New SQLCommand
Dim dt As DataTable
Dim dr As DataRow
cmd.C
If UserName = "" Then
    Messagebox.show("请选择用户!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    Return
End If
cmd.CommandText = "Select * From {Users} Where [Name] = \'" & UserName & "\'"
dt = cmd.ExecuteReader
dr = dt.DataRows(0)
If e.Form.Controls("PassWord").Value = dr("Password") Then
    _UserName = UserName
    _UserGroup = dr("Group")
    e.Form.Close
Else
    Messagebox.show("密码错误!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
End If
DataTables("信息录入").LoadFilter = " [检查人] = \'" & _UserName & "\'"
DataTables("信息录入").load()

 

 

这个就是在“登录窗口”中“登录”按钮的事件代码

 

[此贴子已经被作者于2012-2-27 19:08:33编辑过]

--  作者:狐狸爸爸
--  发布时间:2012/2/28 8:21:00
--  

这是经久考验的代码,不会有问题的,除非没有检查人等于登录用户的记录。

你检查一下吧。

 

MessageBox.show( " [检查人] = \'" & _UserName & "\'")

DataTables("信息录入").LoadFilter = " [检查人] = \'" & _UserName & "\'"
DataTables("信息录入").load()

 

实在搞不定,就将文件和数据库上传。

 

 


--  作者:czy
--  发布时间:2012/2/28 9:06:00
--  
他是在控件的Enter事件中设置了代码,有关闭命令,结果选择控件后就关闭了窗口,按钮代码不管写什么都用不上图片点击可在新窗口打开查看
--  作者:狐狸爸爸
--  发布时间:2012/2/28 9:47:00
--  
图片点击可在新窗口打开查看