Foxtable(狐表)用户栏目专家坐堂 → [求助]根据用户分组名称,动态加载用户数据


  共有3979人关注过本帖树形打印复制链接

主题:[求助]根据用户分组名称,动态加载用户数据

帅哥哟,离线,有人找我吗?
myjht
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:257 积分:1649 威望:0 精华:0 注册:2017/4/14 15:58:00
[求助]根据用户分组名称,动态加载用户数据  发帖心情 Post By: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帮助文档还是没看明白,求助

 


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110648 积分:563148 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:257 积分:1649 威望:0 精华:0 注册:2017/4/14 15:58:00
  发帖心情 Post By:2019/12/14 10:09:00 [只看该作者]

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

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110648 积分:563148 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/12/14 10:26:00 [只看该作者]

这个是msgbox提示,不是报错,自己去掉即可

 回到顶部
帅哥哟,离线,有人找我吗?
myjht
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:257 积分:1649 威望:0 精华:0 注册:2017/4/14 15:58:00
  发帖心情 Post By:2019/12/14 10:47:00 [只看该作者]

@有点蓝

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

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


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110648 积分:563148 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:257 积分:1649 威望:0 精华:0 注册:2017/4/14 15:58:00
  发帖心情 Post By:2019/12/14 11:34:00 [只看该作者]

@有点蓝 

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

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



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

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110648 积分:563148 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:257 积分:1649 威望:0 精华:0 注册:2017/4/14 15:58:00
  发帖心情 Post By:2019/12/14 12:49:00 [只看该作者]

Year(付款日期) = 2019 And Month(付款日期) = 12 And Day(付款日期) = 14 And [组织] = 'B事业部' Or [组织] = 'C事业部'


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

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110648 积分:563148 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/12/14 13:23:00 [只看该作者]

少括号,请认真看6楼代码

 回到顶部
总数 11 1 2 下一页