Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共9 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:BeforeLoad 目录树数据条件

1楼
yifan3429 发表于:2024/3/26 23:14:00
动态增加的LoadTree加载树

Dim trv As WinForm.LoadTree = e.Form.Controls("LoadTree1")
trv
.Build(Tables("窗口1_Table1"), "日期 YM|产品", 5)

在 BeforeLoad  使用如下代码不生效筛选条件

If _UserRoles = "商务经理" Then '如果用户分组是雇员
    Dim fl As String = "[商务经理] = '" & _UserName & "'" 
    e.DataTable.LoadFilter = fl 
    e.DataTable.Load()
ElseIf _UserRoles = "营销总监" Then '如果用户分组是雇员
    Dim fl As String = "[营销总监] = '" & _UserName & "'" 
    e.DataTable.LoadFilter = fl 
    e.DataTable.Load()
ElseIf _UserRoles = "销售主管" Then '如果用户分组是雇员
    Dim fl As String = "[销售主管] = '" & _UserName & "'" 
    e.DataTable.LoadFilter = fl'   
    e.DataTable.Load()
End If



[此贴子已经被作者于2024/3/26 23:14:51编辑过]
2楼
有点蓝 发表于:2024/3/27 8:28:00
去掉e.DataTable.Load()
3楼
yifan3429 发表于:2024/3/27 12:11:00
去掉了,还是会加载 全部的数据,而不是被筛选出来的数据 我是用的插入是窗体目录树 使用的工具不对还是什么原因?
[此贴子已经被作者于2024/3/27 12:11:23编辑过]
4楼
有点蓝 发表于:2024/3/27 13:34:00
没有保留原有的筛选条件:http://www.foxtable.com/webhelp/topics/2057.htm
5楼
yifan3429 发表于:2024/3/27 16:14:00
If _UserRoles = "商务经理" Then'如果用户分组是雇员
    Dim fl As String = "[商务经理] = '" & _UserName & "'" 
    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
End If

If _UserRoles = "销售主管" Then'如果用户分组是雇员
    Dim fl As String = "[销售主管] = '" & _UserName & "'" 
    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
End If


图片点击可在新窗口打开查看此主题相关图片如下:企业微信截图_20240327161500.png
图片点击可在新窗口打开查看

代码改成以上
还是不受控制? 应该是200行
是不是不能放在全局的_BeforeLoad内
[此贴子已经被作者于2024/3/27 16:28:01编辑过]
6楼
有点蓝 发表于:2024/3/27 16:19:00
调试看看
msgbox(_UserRoles)
If _UserRoles = "商务经理" Then'如果用户分组是雇员
    Dim fl As String = "[商务经理] = '" & _UserName & "'" 
    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
End If

If _UserRoles = "销售主管" Then'如果用户分组是雇员
    Dim fl As String = "[销售主管] = '" & _UserName & "'" 
    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
End If
msgbox(e.DataTable.LoadFilter)
7楼
yifan3429 发表于:2024/3/27 17:11:00


图片点击可在新窗口打开查看此主题相关图片如下:企业微信截图_20240327171358.png
图片点击可在新窗口打开查看
Select Case MainTable.name 
    Case "客户_全新报备"
        msgbox(_UserRoles)
        If _UserRoles = "商务经理" Then '如果用户分组是雇员
            Dim fl As String = "[商务经理] = '" & _UserName & "'"
            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
        ElseIf _UserRoles = "业务经理" Then '如果用户分组是雇员
            Dim fl As String = "[业务经理] = '" & _UserName & "'"
            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
        ElseIf _UserRoles = "销售主管" Then '如果用户分组是雇员
            Dim fl As String = "[销售主管] = '" & _UserName & "'"
            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
        ElseIf _UserRoles = "运营总监" Then '如果用户分组是雇员
            Dim fl As String = "[运营总监] = '" & _UserName & "'"
            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
        ElseIf _UserRoles = "营销总监" Then '如果用户分组是雇员
            Dim fl As String = "[营销总监] = '" & _UserName & "'"
            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
        End If
        msgbox(e.DataTable.LoadFilter)
    Case Else        
End Select
[此贴子已经被作者于2024/3/27 17:14:35编辑过]
8楼
有点蓝 发表于:2024/3/27 17:18:00
msgbox弹出什么内容?
9楼
yifan3429 发表于:2024/3/27 17:21:00

[此贴子已经被作者于2024/4/10 23:14:39编辑过]
共9 条记录, 每页显示 10 条, 页签: [1]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .04297 s, 2 queries.