Foxtable(狐表)用户栏目专家坐堂 → [求助]如何在锁定主表时锁定子表


  共有6380人关注过本帖树形打印复制链接

主题:[求助]如何在锁定主表时锁定子表

帅哥哟,离线,有人找我吗?
chnfo
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2239 积分:18446 威望:0 精华:0 注册:2011/11/26 20:21:00
[求助]如何在锁定主表时锁定子表  发帖心情 Post By:2014/4/17 16:25:00 [显示全部帖子]

我用了导航,通过权限的设定锁定了主表,但如何同时锁定子表呢?

 回到顶部
帅哥哟,离线,有人找我吗?
chnfo
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2239 积分:18446 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2014/4/17 16:38:00 [显示全部帖子]

解释一下咯,我是希望主表锁定之后,子表自动锁定。因为我现在的代码只锁定了主表 现在,并不是听有表都有子表
[此贴子已经被作者于2014-4-17 16:39:19编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
chnfo
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2239 积分:18446 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2014/4/17 20:48:00 [显示全部帖子]

我是这么想的
先定义一个全局代码 public RightTb as table,用来定义Link对应的主表。

TopicLinkClick事件中,
Select Case e.Link.Name
    Case "业务01"
        MainTable = Tables("表A")
…………
end select 

RightTb = MainTable  ’当打开 Link时,将主表名赋值给全局代码RightTb 
Dim dr As DataRow = DataTables("权限表").Find("判断是否有编辑权限的Filter")
RightTb.allowEdit = dr IsNot Nothing AndAlso dr("可编辑") = True


然后在项目的CurrentTableChanged事件中,代码如下:
Select Case CurrentTable.Name
Case "表A.表B"
CurrentTable.AllowEdit = RightTb.AllowEdit = true
End select 

但问题出来了。用户登录之后打开系统,点了Link("业务01")
 Tables("表A")确实是象预想的一样,被锁定了。
但是它的子表 Tables("表A.表B")并没有跟预想的一样被锁定,还可以增删改。

我把鼠标停在表A.表B里,用命令窗口写了
output.show(RightTb.Name)  '显示结果为表A,说明全局代码确实打开的是表A
output.show(RightTb.AllowEdit)  '显示结果为False,说明表A确实被锁定了
output.show(CurrentTable.Name)  '显示结果为表A.表B,说明当前表确实是子表
output.show(tables("表A.表B").AllowEdit)  '显示结果为true,说明子表并未被锁定 ——————这是怎么回事呢,项目管理的CurrentTableChanged事件不起作用吗?
[此贴子已经被作者于2014-4-17 21:07:36编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
chnfo
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2239 积分:18446 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2014/4/17 21:17:00 [显示全部帖子]

Select Case CurrentTable.Name
    Case "表A.表B"    
        CurrentTable.AllowEdit = RightTb.AllowEdit
        MessageBox.Show("进来执行了吗?")
End Select

改了一下,但在切换当前表时,没有任何弹出框,说明
        MessageBox.Show("进来执行了吗?")  -----它没有被执行!!!

Why?


    Case "表A.表B"     'Sorry,习惯了做窗口表,把这里写成了表A_表B,现在可以执行了,灰常感谢有点苦指教 。

不过,效果有一点点小小欠佳,就是只有切换到子表的时候,才能显示表左上角的那个锁形。
[此贴子已经被作者于2014-4-17 21:29:58编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
chnfo
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2239 积分:18446 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2014/4/17 21:42:00 [显示全部帖子]

非常感谢提醒,我的本意是锁定整个表不让编辑,但允许查看。

接下来还要做锁定主表行的同时,锁定明细的功能。

 回到顶部