以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  权限设计问题.  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=159181)

--  作者:夜点蚊香
--  发布时间:2020/12/16 7:32:00
--  权限设计问题.
这个问题比较多,先问大神第一个问题.
1.如何在把导航窗口中 topicbar(任务栏)中的页面和任务生成带多选勾选框的导航树.
2.我想根据生成的导航树进行可见或者不可见的权限分配.
请指教.
[此贴子已经被作者于2020/12/16 7:42:01编辑过]

--  作者:有点蓝
--  发布时间:2020/12/16 8:45:00
--  
1、不支持这种用法,可以改为使用NavBar导航栏+目录树
2、到窗口afterload写代码处理即可

比如

if user.name = "张三"
Forms("窗口1").Controls("TopicBar1").Pages("项目").Links("打开").visible = false
end if

--  作者:夜点蚊香
--  发布时间:2020/12/16 14:38:00
--  
我试一下
--  作者:夜点蚊香
--  发布时间:2020/12/18 7:16:00
--  求助,如何遍历Forms("导航").Controls("TopicBar1")
If _username = "叶嘉程"
Forms("导航").Controls("TopicBar1").Pages("缴费管理").visible = True
End If
上面是大神给的代码

下面代码是想根据事先设置好的授权表,根据里面的内容进行权限分配.偏历导航栏怎么标识.请指教.
For Each t As Table In Tables
    t.Visible = True
    t.AllowEdit = True
    For Each c As Col In t.Cols
        c.Visible = True
        c.AllowEdit = True
    Next
Next
Forms("导航").Controls("TopicBar1").Pages("授权表").Visible = (User.Type <> UserTypeEnum.User )
If User.Type = UserTypeEnum.User Then
    For Each dr As DataRow In DataTables("授权表").Select("用户组 = \'" & _UserGroup & "\'" )
            Forms("导航").Controls("TopicBar1").Pages(dr("表名")).Visible = Not dr("不可见")
    Next
End If

--  作者:有点蓝
--  发布时间:2020/12/18 8:41:00
--  
就是这个用法,有什么问题?
--  作者:夜点蚊香
--  发布时间:2020/12/18 9:06:00
--  帮忙看一下代码,报错
下面代码报错,(无法将类型为“Foxtable.WinForm.TopicBar”的对象强制转换为类型“System.Collections.IEnumerable”。)

For Each c As Winform.Control In Forms("导航").Controls("TopicBar1")
   c.Visible = False
Next

Forms("导航").Controls("TopicBar1").Pages("授权表").Visible = (User.Type <> UserTypeEnum.User )
If User.Type = UserTypeEnum.User Then
    For Each dr As DataRow In DataTables("授权表").Select("用户组 = \'" & _UserGroup & "\'" )
            Forms("导航").Controls("TopicBar1").Pages(dr("表名")).Visible = Not dr("不可见")
    Next
End If

--  作者:有点蓝
--  发布时间:2020/12/18 9:13:00
--  
For Each c As Winform.TopicPage In Forms("导航").Controls("TopicBar1").Pages
   c.Visible = False
Next

--  作者:夜点蚊香
--  发布时间:2020/12/18 9:15:00
--  报错 未设置对象变量或 With 块变量。
报错 未设置对象变量或 With 块变量。
--  作者:有点蓝
--  发布时间:2020/12/18 9:21:00
--  
调试技巧:http://www.foxtable.com/webhelp/scr/1485.htm
哪一句代码出错?

--  作者:夜点蚊香
--  发布时间:2020/12/18 9:32:00
--  MessageBox.Show(1) 报错
For Each c As Winform.TopicPage In Forms("导航").Controls("TopicBar1").Pages
MessageBox.Show(11)
   c.Visible = True
MessageBox.Show(12)
Next
MessageBox.Show(1)
Forms("导航").Controls("TopicBar1").Pages("授权表").Visible = (User.Type <> UserTypeEnum.User )
MessageBox.Show(2)
If User.Type = UserTypeEnum.User Then
MessageBox.Show(3)
    For Each dr As DataRow In DataTables("授权表").Select("用户组 = \'" & _UserGroup & "\'" )
MessageBox.Show(4)
            Forms("导航").Controls("TopicBar1").Pages(dr("表名")).Visible = Not dr("不可见")
MessageBox.Show(5)
    Next
End If