以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 可视化授权加载表的问题 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=91887) |
-- 作者:紫色幽魂 -- 发布时间:2016/10/21 10:06:00 -- 可视化授权加载表的问题 请问下我需要在可视化授权表里增加一个加载表选项,可是代码我想了很久也不知道怎么写,和各位大神请教下应该怎么写呢 附件上传不了,用微云分享
http://share.weiyun.com/fbaa188d0c692304abe4a1da5e549483 [此贴子已经被作者于2016/10/21 10:43:43编辑过]
|
-- 作者:有点蓝 -- 发布时间:2016/10/21 10:21:00 -- 上传例子说明 |
-- 作者:紫色幽魂 -- 发布时间:2016/10/21 10:44:00 -- http://share.weiyun.com/fbaa188d0c692304abe4a1da5e549483附件上传不了,这个和演示文件一样,只是在后面增加一个加载表选项 |
-- 作者:有点蓝 -- 发布时间:2016/10/21 11:26: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 If dr("加载表") = False Then DataTables.Unload(dr("表名")) Else t.Visible = Not dr("不可见") t.AllowEdit = Not dr("不可编辑") End If 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 |
-- 作者:紫色幽魂 -- 发布时间:2016/11/5 15:56:00 -- 下面这个代码 If dr("加载表") = False Then DataTables.Unload(dr("表名")) 加进去后提示 .NET Framework 版本:2.0.50727.5485 Foxtable 版本:2016.7.29.1 错误所在事件:项目,LoadUserSetting 详细错误信息: 集合已修改;可能无法执行枚举操作。 所有的权限都没有用了 |
-- 作者:有点蓝 -- 发布时间:2016/11/5 16:18:00 -- 试试 For Each dr As DataRow In DataTables("授权表").Select("用户名 = \'" & User.Name & "\'" ) If dr.IsNull("列名") Then For i As Integer = Tables.Count - 1 To 0 Step -1 Dim t2 As Table = Tables(i) If t2.DataTable.Name = dr("表名") Then If dr("加载表") = False Then DataTables.Unload(dr("表名")) Else t2.Visible = Not dr("不可见") t2.AllowEdit = Not dr("不可编辑") End If 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 |
-- 作者:紫色幽魂 -- 发布时间:2016/11/7 9:03:00 -- 测试后提示不存在名为29的table,然后就不加载了,好像是闪退的样子,也分析不出是哪儿的问题 [此贴子已经被作者于2016/11/7 9:03:57编辑过]
|
-- 作者:有点青 -- 发布时间:2016/11/7 9:20:00 -- 提示不存在,就是你 授权表 表的数据有问题。 |
-- 作者:紫色幽魂 -- 发布时间:2016/11/7 11:00:00 -- 但是这个我是按照帮助文件里面的可视化授权操作做的,查看和锁定权限没有问题啊 |
-- 作者:有点青 -- 发布时间:2016/11/7 11:04:00 -- 以下是引用紫色幽魂在2016/11/7 11:00:00的发言:
但是这个我是按照帮助文件里面的可视化授权操作做的,查看和锁定权限没有问题啊
检测你授权表的数据,表名列、列名列,如果对应的表名或列名不存在,就会报【不存在名为xxx的Table】 |