以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 授权表中,设置禁止删除列 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=89990) |
-- 作者:misamisali -- 发布时间:2016/9/2 16:57:00 -- 授权表中,设置禁止删除列 代码如下: 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("不可编辑") Tables(dr("表名")).DeleteColumn = Not dr("不可删除") Else Tables(dr("表名")).Cols(dr("列名")).Visible = Not dr("不可见") Tables(dr("表名")).Cols(dr("列名")).AllowEdit = Not dr("不可编辑") Tables(dr("表名")).Cols(dr("列名")).DeleteColumn = Not dr("不可编辑") End If Next End If
|
-- 作者:狐狸爸爸 -- 发布时间:2016/9/2 17:10:00 -- Col并没有DeleteColumn属性,所以下面的代码不行的:
Tables(dr("表名")).Cols(dr("列名")).DeleteColumn = Not dr("不可编辑")
通常是从禁用菜单中的删除列按钮:
RibbonTabs("Table").Groups("Column").Items("DeleteColumn").Enabled = Not dr("不可编辑") |
-- 作者:misamisali -- 发布时间:2016/9/2 17:12:00 -- 在哪个事件上写? |
-- 作者:狐狸爸爸 -- 发布时间:2016/9/2 17:14:00 -- 将 Tables(dr("表名")).Cols(dr("列名")).DeleteColumn = Not dr("不可编辑")
改为:
RibbonTabs("Table").Groups("Column").Items("DeleteColumn").Enabled = Not dr("不可编辑") |
-- 作者:misamisali -- 发布时间:2016/9/2 17:20: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 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("不可编辑") RibbonTabs("表名").Groups("列名").Items("不可删除").Enabled = Not dr("不可删除") End If Next 修改代码后,还是不能禁止删除?
|
-- 作者:狐狸爸爸 -- 发布时间:2016/9/2 17:29:00 -- 只能自己设计菜单,修改删除按钮的代码,在删除代码之前判断是否有权限,有权限才执行删除列的代码。
|
-- 作者:misamisali -- 发布时间:2016/9/2 17:31:00 -- 这个我会,只能开发者才能删除列,代码要怎么改: 删除列(加条件,只有开发者才能删除列):Syscmd.Column.Delete()
|
-- 作者:有点蓝 -- 发布时间:2016/9/2 17:35:00 -- If User.Type = UserTypeEnum.Developer Then Syscmd.Column.Delete() endif |