求助,根据登陆用户分组名称,加载分组数据,和窗口筛选数不能共用,求正确方式,谢谢。
1、付款台账,绑定表付款台账,窗口AfterLoad事件
Dim cmd As New SQLCommand
Dim dt As DataTable
cmd.C
cmd.CommandText = "SEL=====ECT
DISTINCT Year(付款日期) As 年, Month(付款日期)
As 月, Day(付款日期) As 日 From {付款台账}"
dt = cmd.ExecuteReader()
Dim trv As WinForm.TreeView =
e.Form.Controls("TreeView1")
trv.BuildTree(dt,"年|月|日")
trv.Nodes.Insert("付款日期加载",0)
2、窗口筛选树TreeView的双击NodeMouseDoubleClick事件
Dim Filter As String
If e.Node.Text = "加载所有数据" Then
Filter = ""
Else
Dim dr As DataRow = e.Node.DataRow '获取生成此节点的行
Dim Year As Integer = dr("年")
Dim Month As Integer = dr("月")
Dim Day As Integer = dr("日")
Sel=====ect Case e.Node.Level
Case 0
Filter ="Year(付款日期) = " & Year
Case 1
Filter ="Year(付款日期) = " & Year & " And
Month(付款日期) = " &
Month
Case 2
Filter ="Year(付款日期) = " & Year & " And
Month(付款日期) = " &
Month & " And Day(付款日期) = " & Day
End Sel=====ect
End If
DataTables("付款台账").LoadFilter = Filter
DataTables("付款台账").Load()
Tables("付款台账").Sort = "付款日期"
3、窗口表BeforeLoad事件
If _Usermdmc = "财务管理中心"
Dim fl As String = "[组织] = 'A事业部' And [组织] = 'B事业部'
And [组织] = 'C事业部'"
e.DataTable.LoadFilter = fl
msgbox("执行了1")
ElseIf _Usermdmc = "A财务出纳"
Dim f2 As String = "[组织] = 'A事业部'"
e.DataTable.LoadFilter = f2
msgbox("执行了2")
ElseIf _Usermdmc = "B财务出纳"
Dim f3 As String = "[组织] = 'B事业部' And [组织] = 'C事业部'"
e.DataTable.LoadFilter = f3
msgbox("执行了3")
End If
msgbox("执行了4")
4、需求说明:
表列"组织"列对应每行的组织A事业部,B事业部,C事业部,
_Usermdmc为用户表的门店名称,全局代码Public _Usermdmc As String '门店名称
需求:动态加载BeforeLoad,判断登陆用户门店名称='财务管理中心'时,本表允许加载组织=A事业部和组织=B事业部和组织=C事业部,窗口表也按此条件加载,窗口加载树同样按这个规则加载.
5、问题说明:
窗口加载树单独测试没有问题,加载树能够按照双击二级节点加载指定日期的数据,配合BeforeLoad后,窗口加载树双击二级节点,不按照日期加载,搞了三天了,BeforeLoad帮助文档还是没看明白,求助