当初没有,是因为当初有符合条件的数据, dr1不是Nothing,数据变化后,dr1就可能找不到符合条件的行。
BeforeLoad我不明白你有啥问题,你可以在后面加一行检查一下代码的执行结果:
Select Case e.DataTable.Name
Case "订单生产安排供需流水账","料品基础数据表"
For Each dr1 As DataRow In DataTables("授权表").Select("用户名 = '" & Vars("_UserName") & "'" )
If dr1("表名")=e.DataTable.Name AndAlso dr1("只加载本部门数据")=True Then
Dim fl As String = "[部门] = '" & Vars("部门名称") & "'"
If e.DataTable.LoadFilter = "" Then
e.DataTable.LoadFilter = fl
ElseIf e.DataTable.LoadFilter.IndexOf(fl) < 0 Then '如果没有包括这个条件
e.DataTable.LoadFilter = e.DataTable.Loadfilter & fl
End If
End If
If dr1("表名")=e.DataTable.Name AndAlso dr1("只加载本部门数据")=False Then
Dim fl As String = "[部门] in (" & dr1("部门范围") & ")"
If e.DataTable.LoadFilter = "" Then
e.DataTable.LoadFilter = fl
ElseIf e.DataTable.LoadFilter.IndexOf(fl) < 0 Then '如果没有包括这个条件
e.DataTable.LoadFilter = e.DataTable.Loadfilter & fl
End If
End If
Next
MessageBox.Show(e.DataTable.Name & "|" & e.DataTable.LoadFilter )
End Select
[此贴子已经被作者于2010-12-23 17:52:13编辑过]