以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  请教主表逻辑禁止关联子表编辑?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=62821)

--  作者:szoriental
--  发布时间:2015/1/8 15:28: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

--  作者:szoriental
--  发布时间: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
--  发布时间:2015/1/8 16:06:00
--  
你不是点击父表的 逻辑列么? 和子表有什么关系?

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

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

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

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

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

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


--  作者:有点甜
--  发布时间:2015/1/8 16:23:00
--  

 参考

 

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


--  作者:szoriental
--  发布时间:2015/1/8 16:26:00
--  
以下是引用有点甜在2015-1-8 16:23:00的发言:

 参考

 

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

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


--  作者:有点甜
--  发布时间: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