以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 权限控制中如何判断表和列是否存在? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=112694) |
-- 作者:lyzhuo -- 发布时间:2017/12/31 12:31:00 -- 权限控制中如何判断表和列是否存在? 帮助里的这段代码,如果在这个表里输入的表名或列名不存在,系统就会出错,特别是已经发布出去的, 新加上的表,发布后的客户端如果没有更新,就不会识别到新加上的表,就会报错,就会看到全部的表, 如何在授权的代码前再加上一个判断,判断一下是否存在这个表或是列? 先谢过了。 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 If |
-- 作者:lyzhuo -- 发布时间:2018/1/1 12:14:00 -- 新年好,这个问题很难吗? |
-- 作者:有点甜 -- 发布时间:2018/1/1 19:16:00 -- 参考,Contains
http://www.foxtable.com/webhelp/scr/0437.htm
http://www.foxtable.com/webhelp/scr/0561.htm
|
-- 作者:lyzhuo -- 发布时间:2018/1/2 9:22:00 -- 表名专门有一个方法进行判断。 是否存在列名,是不是没有这个方法进行判断,自己得写一段代码进行判断?
[此贴子已经被作者于2018/1/2 9:23:35编辑过]
|
-- 作者:有点甜 -- 发布时间:2018/1/2 9:30:00 -- Tables("授权表").Visible = (User.Type <> UserTypeEnum.User ) If User.Type = UserTypeEnum.User Then For Each dr As DataRow In DataTables("授权表").Select("用户名 = \'" & User.Name & "\'" ) If Tables.Contains(dr("表名")) Then If dr.IsNull("列名") Then Tables(dr("表名")).Visible = Not dr("不可见") Tables(dr("表名")).AllowEdit = Not dr("不可编辑") Else If Tables(dr("表名")).Cols.Contains(dr("列名")) Then Tables(dr("表名")).Cols(dr("列名")).Visible = Not dr("不可见") Tables(dr("表名")).Cols(dr("列名")).AllowEdit = Not dr("不可编辑") End If End If End If Next End If |
-- 作者:lyzhuo -- 发布时间:2018/1/2 9:54:00 -- 谢谢〔有点甜〕,代码写得太清炼了,受益匪浅。 |