以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  目录树自动生成的问题  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=117922)

--  作者:deliangzhaoe
--  发布时间:2018/4/20 20:22:00
--  目录树自动生成的问题
想要目录树2、3、4自动生成,如果是管理员登录,则根据所有行生成目录树,如果是非管理员登录,则仅根据本公司的行生成目录树。用户分组依据为企业名称。
下面这段代码不生成目录树,怎样改一下?谢谢

\'打开页面后,依据《组织机构和职责》,《安全目标》自动生成目录树,展开目录树所有节点
Dim tr1 As WinForm.TreeView = e.Form.Controls("TreeView1")
tr1.ExpandAll()
Dim tr2 As WinForm.TreeView = e.Form.Controls("TreeView2")
Dim tr3 As WinForm.TreeView = e.Form.Controls("TreeView3")
If _usergroup = "管理员" Then
    tr2.BuildTree("组织机构和职责", "企业名称|部门设置|岗位设置|第四层机构设置|第五层机构设置|第六层机构设置")
    tr3.BuildTree("年度安全目标",  "企业名称|目标主题|目标内容")
Else
    tr2.BuildTree("组织机构和职责", "企业名称|部门设置|岗位设置|第四层机构设置|第五层机构设置|第六层机构设置" ,"企业名称 = \'" & _Usergroup & "\'")
    tr3.BuildTree("年度安全目标", "企业名称|目标主题|目标内容","企业名称 = \'" & _Usergroup & "\'")
End If
tr2.ExpandAll()
tr3.ExpandAll()
Dim tr4 As WinForm.TreeView = e.Form.Controls("TreeView4")
tr4.BuildTree("年度安全目标", "企业名称|目标主题|目标内容")
tr4.ExpandAll()
[此贴子已经被作者于2018/4/20 20:22:55编辑过]

--  作者:有点蓝
--  发布时间:2018/4/20 20:45:00
--  
代码没有问题。放到哪个事件的?数据表有没有加载数据?
--  作者:deliangzhaoe
--  发布时间:2018/4/21 5:44:00
--  
1.目录树放在窗口的页面集合中,代码放在窗口的afterload中。
2.用户登录窗口的登录按钮设置了如下代码:
\'登录后,表只加载当前企业的数据
For Each qymc As DataTable In DataTables
    If qymc.datacols.Contains("企业名称") Then
        If _usergroup = "管理员" Then
            qymc.Loadfilter = ""
            qymc.load
        Else
            qymc.Loadfilter = "企业名称 = \'" & _Usergroup & "\'"
            qymc.load
        End If
    End If
Next
项目打开后先登录,后打开主窗口。
3.以前的代码没有"企业名称 = \'" & _Usergroup & "\'"这句,目录树能显示出来,但是不管是谁登录,显示的结果和管理员登录时显示的是一样的,后来改成了这样,就全部不显示了
[此贴子已经被作者于2018/4/21 5:50:30编辑过]

--  作者:有点蓝
--  发布时间:2018/4/21 10:01:00
--  
msgbox(_Usergroup) 看看登录的组是什么?

试试

For Each qymc As DataTable In DataTables
    If qymc.datacols.Contains("企业名称") andalso _usergroup <> "管理员"  Then
            qymc.Loadfilter = "企业名称 = \'" & _Usergroup & "\'"
            qymc.load
        Else
            qymc.Loadfilter = ""
            qymc.load
    End If
Next



--  作者:deliangzhaoe
--  发布时间:2018/4/21 20:31:00
--  
已经可以了,老师,谢谢!