以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 可视化授权问题 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=3248) |
-- 作者:实话实说 -- 发布时间:2009/6/23 8:56:00 -- 可视化授权问题 现有A表,A明细表和A.A明细表,可视化授权对A.A明细表无效。 |
-- 作者:狐狸爸爸 -- 发布时间:2009/6/23 9:14:00 -- 既然是代码,那么几乎是随心所欲的: 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 Return End If For Each dr As DataRow In DataTables("授权表").Select("用户名 = \'" & User.Name & "\'" ) If dr.IsNull("列名") Then For each t As Table In Tables If t.DataTable.Name = dr("表名") Then t.Visible = Not dr("不可见") t.AllowEdit = Not dr("不可编辑") End If Next Else For each t As Table In Tables If t.DataTable.Name = dr("表名") Then For Each c as Col In t.Cols If c.Name = dr("列名") Then c.Visible = Not dr("不可见") c.AllowEdit = Not dr("不可编辑") End If Next End If Next End if Next |
-- 作者:实话实说 -- 发布时间:2009/6/23 11:13:00 -- 我就是用你的代码才出现上述问题 |
-- 作者:狐狸爸爸 -- 发布时间:2009/6/23 11:13:00 -- 我二楼的代码和原来不同了,替换原来的即可对关联表有效。 |
-- 作者:实话实说 -- 发布时间:2009/6/23 11:35:00 -- 对管联表的隐藏列都有效,但对关联表的不可编辑,有的有效,有的无效。 |
-- 作者:kylin -- 发布时间:2009/6/23 11:49:00 -- 以下是引用实话实说在2009-6-23 11:35:00的发言:
对管联表的隐藏列都有效,但对关联表的不可编辑,有的有效,有的无效。 如果这样的话,需要传个实例上来看看,通用的代码有时候需要个别修正,有时候可能是因为有其他的代码“干扰” |
-- 作者:实话实说 -- 发布时间:2009/6/23 13:35:00 -- 谢谢,我已经找到冲突的代码 |
-- 作者:实话实说 -- 发布时间:2009/6/23 14:57:00 -- 有个问题:现有材料仓,材料仓明细和关联表材料仓.材料仓明细三个表,我在项目属性里设置: Tables("材料仓明细").AllowEdit = False Tables("材料仓.材料仓明细").AllowEdit = True 可以控制明细表的编辑。(只能在关联状态下编辑) 但在可视化授权中是否也要分别授权? |
-- 作者:实话实说 -- 发布时间:2009/6/23 15:04:00 -- 还有,你的代码里是否能不考虑列隐藏设置,否则列隐藏设置太多。 我先前隐藏的列都显示出来,要一个一个的设置隐藏,太麻烦。 |
-- 作者:kylin -- 发布时间:2009/6/23 18:08:00 -- 回8楼:也要分别授权 |