Foxtable(狐表)用户栏目专家坐堂 → 请教主表逻辑禁止关联子表编辑?


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

主题:请教主表逻辑禁止关联子表编辑?

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


加好友 发短信
等级:幼狐 帖子:154 积分:1252 威望:0 精华:0 注册:2012/8/26 17:30:00
请教主表逻辑禁止关联子表编辑?  发帖心情 Post By:2015/1/8 15:28:00 [只看该作者]

请教一下主表的逻辑列选定后,禁止关联子表编辑,代码怎么写?

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/1/8 15:31:00 [只看该作者]

在DataColChanged事件

if e.datacol.name="逻辑列" then
   if e.newValue = true
        datatables("子表").replacefor("_Locked",True,"关联列='" & e.datarow("关联列") &"'")
   end if
end if

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


加好友 发短信
等级:幼狐 帖子:154 积分:1252 威望:0 精华:0 注册:2012/8/26 17:30:00
  发帖心情 Post By:2015/1/8 16:00:00 [只看该作者]

以下是引用Bin在2015-1-8 15:31:00的发言:
在DataColChanged事件

if e.datacol.name="逻辑列" then
   if e.newValue = true
        datatables("子表").replacefor("_Locked",True,"关联列='" & e.datarow("关联列") &"'")
   end if
end if

谢谢,再请教一下如果同时也禁止本行(除逻辑列外)编辑的话,用哪句代码?如果用e.DataRow.Locked = True的,连逻辑列也禁止编辑了;


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/1/8 16:06:00 [只看该作者]

你不是点击父表的 逻辑列么? 和子表有什么关系?

如果子表有个列要离开允许编辑,那就要换个方式去做了. http://www.foxtable.com/help/topics/0605.htm

你需要增加一个列,隐藏 根据这个列的值来判断锁定

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


加好友 发短信
等级:幼狐 帖子:154 积分:1252 威望:0 精华:0 注册:2012/8/26 17:30:00
  发帖心情 Post By:2015/1/8 16:20:00 [只看该作者]

以下是引用Bin在2015-1-8 16:06:00的发言:
你不是点击父表的 逻辑列么? 和子表有什么关系?

如果子表有个列要离开允许编辑,那就要换个方式去做了. http://www.foxtable.com/help/topics/0605.htm

你需要增加一个列,隐藏 根据这个列的值来判断锁定

不是那个意思,我的意思是:选定父表的逻辑列,禁止子表编辑;同时也禁止父表的逻辑列相对应的这一行编辑(但是父表的逻辑列还是不能禁止编辑);


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/1/8 16:23:00 [只看该作者]

 参考

 

 下载信息  [文件大小:332.0 KB  下载次数:5]
图片点击可在新窗口打开查看点击浏览该文件:审核后不准删除行.foxdb


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


加好友 发短信
等级:幼狐 帖子:154 积分:1252 威望:0 精华:0 注册:2012/8/26 17:30:00
  发帖心情 Post By:2015/1/8 16:26:00 [只看该作者]

以下是引用有点甜在2015-1-8 16:23:00的发言:

 参考

 

 下载信息  [文件大小:332.0 KB  下载次数:5]
图片点击可在新窗口打开查看点击浏览该文件:审核后不准删除行.foxdb

你好,版主,我打不开这个格式的;


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/1/8 16:36:00 [只看该作者]

主表preparedit 事件

 

If e.Col.Name <> "经理审核" Then
    If e.Row("经理审核") Then
        e.Cancel = True
    End If
End If

 

主表DataCochanged事件

 

If e.DataCol.name = "经理审核"
    For Each cdr As DataRow In e.DataRow.GetChildRows("订单明细")
        cdr("经理审核") = e.DataRow("经理审核")
    Next
End If

 

子表prepareEdit事件

 

If e.Col.Name <> "经理审核" Then
    If e.Row("经理审核") Then
        e.Cancel = True
    End If
End If


 回到顶部