以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [原创] (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=6239) |
-- 作者:sunny_tang6688 -- 发布时间:2010/3/19 10:46:00 -- [原创] 我现在做订单管理表,关天权限控制问题,业务员登录订单表后只能看到自己订单信息记录,怎么要去控制?急急. |
-- 作者:yangming -- 发布时间:2010/3/19 11:05:00 -- LoadUserSetting 打开系统或者切换用户之后执行,可以在此针对用户进行权限方面的设置。 示例 例如只有管理员用户,才能编辑表A,可以在LoadUserSetting事件中加入下面的代码: If User.Type = UserTypeEnum.Administrator ThenDataTables("表A").AllowEdit = True Else DataTables("表A").AllowEdit = False End If 提示: 如果项目没有提供切换用户的功能,那么可以直接在AfterOpenProject事件中设置上述代码。 |
-- 作者:foxor -- 发布时间:2010/3/19 11:10:00 -- 见帮助:只加载业务员为登录用户的订单If e.DataTableName = "订单" e.Filter = "[业务员] = \'" & e.User.Name & "\'" End If 在项目事件的beforeloadinnertable中添加上述代码 |
-- 作者:狐狸爸爸 -- 发布时间:2010/3/19 11:40:00 -- 用动态加载好一些 |
-- 作者:sunny_tang6688 -- 发布时间:2010/3/19 11:48:00 -- foxor我试了一下你提供了的语句,但是还是不行 我还在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.Group & "\'" ) 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 If |
-- 作者:blackzhu -- 发布时间:2010/3/19 13:05:00 -- 用loadfilter加载比较好 |