以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]根据用户分组名称,动态加载用户数据  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=144226)

--  作者:myjht
--  发布时间:2019/12/14 9:14:00
--  [求助]根据用户分组名称,动态加载用户数据

求助,根据登陆用户分组名称,加载分组数据,和窗口筛选数不能共用,求正确方式,谢谢。

 

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帮助文档还是没看明白,求助

 


--  作者:有点蓝
--  发布时间:2019/12/14 9:54:00
--  

Dim fl As String = ""
If _Usermdmc = "财务管理中心"
    fl = "[组织] = \'A事业部\' And [组织] = \'B事业部\' And [组织] = \'C事业部\'"
ElseIf _Usermdmc = "A财务出纳"
    fl = "[组织] = \'A事业部\'"
ElseIf _Usermdmc = "B财务出纳"
    fl = "[组织] = \'B事业部\' And [组织] = \'C事业部\'"
End If
msgbox(fl )

If e.DataTable.LoadFilter = "" Then
    e.DataTable.LoadFilter = fl
ElseIf e.DataTable.LoadFilter.IndexOf(fl) < 0 Then
    e.DataTable.LoadFilter = e.DataTable.Loadfilter & " And " & fl
End If

--  作者:myjht
--  发布时间:2019/12/14 10:09:00
--  
双击筛选树报错:
[组织] = \'B事业部\' And [组织] = \'C事业部\'
图片点击可在新窗口打开查看此主题相关图片如下:1.bmp
图片点击可在新窗口打开查看
[此贴子已经被作者于2019/12/14 10:12:36编辑过]

--  作者:有点蓝
--  发布时间:2019/12/14 10:26:00
--  
这个是msgbox提示,不是报错,自己去掉即可
--  作者:myjht
--  发布时间:2019/12/14 10:47:00
--  
@有点蓝

这句And无效:双击目录树后什么都不显示
ElseIf _Usermdmc = "B财务出纳"
    fl = "[组织] = \'B事业部\' And [组织] = \'C事业部\'"

改成下面这样单独的有效:双击目录树后按节点时间加载了B事业部的行
ElseIf _Usermdmc = "B财务出纳"
    fl = "[组织] = \'B事业部\'"  \' \' \' \' \' \' \' \' \'  And [组织] = \'C事业部\'"


--  作者:有点蓝
--  发布时间:2019/12/14 10:51:00
--  
If _Usermdmc = "财务管理中心"
    fl = "([组织] = \'A事业部\' or [组织] = \'B事业部\' or [组织] = \'C事业部\')"
ElseIf _Usermdmc = "A财务出纳"
    fl = "[组织] = \'A事业部\'"
ElseIf _Usermdmc = "B财务出纳"
    fl = "([组织] = \'B事业部\' or [组织] = \'C事业部\')"
End If

--  作者:myjht
--  发布时间:2019/12/14 11:34:00
--  
@有点蓝 

AND,双击加载树的日期,不加载
改成OR,双击加载树的日期,可以加载,但不是按照加载树的日期加载的,如下图的“付款日期”

图片点击可在新窗口打开查看此主题相关图片如下:2.bmp
图片点击可在新窗口打开查看



[此贴子已经被作者于2019/12/14 11:35:00编辑过]

--  作者:有点蓝
--  发布时间:2019/12/14 11:38:00
--  
……
If e.DataTable.LoadFilter = "" Then
    e.DataTable.LoadFilter = fl
ElseIf e.DataTable.LoadFilter.IndexOf(fl) < 0 Then
    e.DataTable.LoadFilter = e.DataTable.Loadfilter & " And " & fl
End If

msgbox(e.DataTable.LoadFilter) ‘这里弹出什么条件?’

--  作者:myjht
--  发布时间:2019/12/14 12:49:00
--  
Year(付款日期) = 2019 And Month(付款日期) = 12 And Day(付款日期) = 14 And [组织] = \'B事业部\' Or [组织] = \'C事业部\'


图片点击可在新窗口打开查看此主题相关图片如下:3.bmp
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2019/12/14 13:23:00
--  
少括号,请认真看6楼代码