以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  关于“同步更新关联列内容”,有一个问题。  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=9314)

--  作者:wcs
--  发布时间:2011/3/28 22:01:00
--  关于“同步更新关联列内容”,有一个问题。

有一父表,一子表,我设置了三列关联,选中了“同步更新关联列内容”

 

同时,我在子表的datacolchanging事件中设置如下代码,意思是限制在子表中修改关联列内容(实际已无必要,我是后来才选中这个关联设置选项的)

 

Dim dr As DataRow = e.DataRow.GetParentrow("总包合同"

If e.DataCol.Name = "总包合同编号" Or e.DataCol.name = "财务项目编号" Or e.DataCol.name = "合同主体" Then

 If dr IsNot Nothing Then

 MessageBox.Show("关联子表中有记录,不能修改本记录!", "提示")

 e.Cancel = True

 End If

end if

 

结果:我在父表中修改关联列的内容,竟会出现这个提示四次,回车后修改成功了,但是子表中的关联列没有同步更新。(这个父表还有其他的子表,都同步更新了,只有这个表不更新关联列内容)

 

我检查了一个小时,删除了这段代码后,“同步更新关联列内容”才算是正常了。

 

我想,这是不是一个问题啊,在选中“同步更新关联列内容”时,子表中有这样的代码,“同步更新关联列内容”就可能失效!

 

我现在还可以重复这样的问题出来!

 

[此贴子已经被作者于2011-3-28 22:04:48编辑过]

--  作者:狐狸爸爸
--  发布时间:2011/3/28 22:25:00
--  

应该是显示三次的,因为你是三列关联。

用代码使得同步更新关联列内容实失效是正常的,也是应该的,例如我希望某些行能够按系统设置自动更新,而符合特定条件的则禁止自动更新。

代码和系统设置冲突时,一般是代码优先。