以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 不同用户加载不同的表报错 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=139720) |
-- 作者:luckbetter333 -- 发布时间:2019/8/20 9:20:00 -- 不同用户加载不同的表报错 如题,按帮助文件设置不同用户加载不同的表, Select Case e.DataTableName
Case "表A" e.Cancel = (e.User.Name = "张三") Case "表B" e.Cancel = (e.User.Name = "李四") Case "表C" e.Cancel = (e.User.Name = "王五") End Select [此贴子已经被作者于2019/8/20 9:20:48编辑过]
|
-- 作者:有点蓝 -- 发布时间:2019/8/20 9:33:00 -- 代码在什么事件里?每一段代码都有其使用场合,帮助一般会说明在什么事件里使用的 重启一下项目再试
|
-- 作者:luckbetter333 -- 发布时间:2019/8/20 10:02:00 -- 3、为不同用户加载不同的表 BeforeLoadInnerTable和BeforeLoadOuterTable事件都有一个Cancel属性,将此属性设置为True,将不加载对应的表。 例如在BeforeLoadInnerTable(内部表)或BeforeLoadOuterTable(外部表)中设置代码: Select Case e.DataTableName Case "表A" e.Cancel = (e.User.Name = "张三") Case "表B" e.Cancel = (e.User.Name = "李四") Case "表C" e.Cancel = (e.User.Name = "王五") End Select 这样张三打开项目,将不会加载表A,需要注意的是,如果打开项目后,有代码引用表A,将会出错,因为此时表A是不存在的。 同样李四打开项目不会加载表B,王五打开项目不会加载表C。 在BeforeLoadOuterTable里
|
-- 作者:有点蓝 -- 发布时间:2019/8/20 10:26:00 -- 关闭项目,重新启动 |
-- 作者:luckbetter333 -- 发布时间:2019/8/20 16:01:00 -- 重启后好用了,但是一用其他用户登录就各种报错,因为在项目的CurrentTableChanged中用了Tables().ListMode = True 有没有什么好办法可以不加载与该用户不相关的表不报错?
|
-- 作者:有点酸 -- 发布时间:2019/8/20 16:03:00 -- if tables.Contains("xxx") then Tables("xxx").ListMode = True
end if |