以文本方式查看主题
- Foxtable(狐表) (http://foxtable.com/bbs/index.asp)
-- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2)
---- 请教窗口控件权限设置 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=60659)
|
-- 作者:seintfei
-- 发布时间:2014/11/28 16:24:00
-- 请教窗口控件权限设置
如图此主题相关图片如下:9.gif 请问这样的授权,代码如何写
|
-- 作者:有点甜
-- 发布时间:2014/11/28 16:28:00
--
在afterLoad事件,比如
Dim dt As DataTable = DataTables("授权表") For Each dr As DataRow In dt.Select("窗口 = \'窗口1\'") Forms("窗口1").Controls(dr("控件名")).Enabled = not dr("不可编辑") Forms("窗口1").Controls(dr("控件名")).Visible = not dr("不可见") Next
|
-- 作者:seintfei
-- 发布时间:2014/11/28 16:31:00
--
能在项目事件LoadUserSetting的基础上修改吗? 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 Tables("授权表").Visible = (User.Type <> UserTypeEnum.User ) If User.Type = UserTypeEnum.User Then For Each dr As DataRow In DataTables("授权表").Select("用户名 = \'" & User.Name & "\'" ) If dr.IsNull("列名") Then Tables(dr("表名")).Visible = Not dr("不可见") Tables(dr("表名")).AllowEdit = Not dr("不可编辑") Else Tables(dr("表名")).Cols(dr("列名")).Visible = Not dr("不可见") Tables(dr("表名")).Cols(dr("列名")).AllowEdit = Not dr("不可编辑") End If Next End I
|
-- 作者:有点甜
-- 发布时间:2014/11/28 16:33:00
--
不能,只有在窗口的afterload事件写代码才行。红色代码你可以替换成变量
Dim dt As DataTable = DataTables("授权表") For Each dr As DataRow In dt.Select("窗口 = \'窗口1\'") Forms("窗口1").Controls(dr("控件名")).Enabled = not dr("不可编辑") Forms("窗口1").Controls(dr("控件名")).Visible = not dr("不可见") Next
|
-- 作者:seintfei
-- 发布时间:2014/11/28 16:56:00
--
谢谢老师指导
|
-- 作者:seintfei
-- 发布时间:2014/11/28 16:59:00
--
貌似 用户名 不起作用?
|
-- 作者:有点甜
-- 发布时间:2014/11/28 17:00:00
--
For Each dr As DataRow In dt.Select("窗口 = \'窗口1\' and 用户名 = \'" & user.Name & "\'")
|
-- 作者:seintfei
-- 发布时间:2014/11/28 17:04:00
--
谢谢
|
-- 作者:seintfei
-- 发布时间:2014/11/28 17:27:00
--
追加问题,想在 授权表 加入列内容隐藏设定,增加列 “掩码” 如何修改代码此主题相关图片如下:11.gif
If e.Col.Name = "列名" Then \'请改为实际列名 If User.name <> "张经理" AndAlso UserName <> "王总监" Then \'如果不是指定用户 e.Text = "****" \'则修改显示内容 End If End If
[此贴子已经被作者于2014-11-28 17:29:21编辑过]
|
-- 作者:有点甜
-- 发布时间:2014/11/28 17:32:00
--
1、不要再drawcell事件写find函数;
2、在afteropenproject的时候,把对应表,对应列的掩码取出保存在一个集合变量里;
3、在drawcell里面取出变量值,设置
|