以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 请教各位专家,谁能帮我看看我对这段代码的理解哪里错了? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=13130) |
||||
-- 作者:kevin11 -- 发布时间:2011/9/29 9:58:00 -- 请教各位专家,谁能帮我看看我对这段代码的理解哪里错了? Select Case e.DataCol.name Case "合同编号" Dim pr As DataRow = e.DataRow.GetParentRow("合同信息汇总表") Dim dr As DataRow = e.DataRow.GetParentRow("营销类合同") If pr IsNot Nothing And CurrentTable.name = "付款明细表" e.DataRow("合同名称") = pr("合同名称") End If If dr IsNot Nothing And CurrentTable.name = "付款明细表" e.DataRow("合同名称") = dr("合同名称") End If End Select 我的理解是:当发生变化的列是合同变化时,则pr返回合同信息汇总表的关联行,dr返回营销类合同中的关联行。如果pr返回非空值时,则合同名称列返回父表“合同信息汇总表”中关联行的合同名称的值。如果dr返回非空值时,则合同名称列返回父表“营销类合同”中关联行的合同名称的值。 我在执行上述代码时会弹出错误,求解~~~感谢各位专家、 |
||||
-- 作者:狐狸爸爸 -- 发布时间:2011/9/29 10:03:00 -- 没有看出有什么问题,只是代码中为什么会出现CurrentTable? |
||||
-- 作者:kevin11 -- 发布时间:2011/9/29 10:09:00 -- 回复:(狐狸爸爸)没有看出有什么问题,只是代码中为...
请狐爸帮我看看表“付款明细表”中的DATACHANGED事件的代码,现在的问题是出在第三种情况,当我输入合同编号时,不能根据输入的值直接从前面两张父表的关联行中引用相应的值。请教狐爸指点问题是出在什么地方? |
||||
-- 作者:狐哥 -- 发布时间:2011/9/29 10:11:00 -- 这个是一个儿子二个父亲呢,不懂.这种表间关系也可以吗? [此贴子已经被作者于2011-9-29 10:12:53编辑过]
|
||||
-- 作者:狐哥 -- 发布时间:2011/9/29 10:18:00 -- 比如A.B C.B 在A表下新增行关联数据是A表的,C表的关联肯定不会自动加入的吧. 理应提取C表的关联才对吧.少个提取. |
||||
-- 作者:狐狸爸爸 -- 发布时间:2011/9/29 10:24:00 -- 下面这样的代码没有错的,如果没有出结果,只有两个原因: 1、父表没有对应的行 2、父表有对应的行,但是此行的合同名称列无数据。
Case "合同编号"
实际上,你两个父表的合同名称列就是没有数据的。 另外这样的代码,设置在付款明细表的DataColChanged事件,触发事件的就是付款明细表,有必要判断表名吗,即使判断表名也不是CurrentTable.name,而是e.DataTable.Name,CurrentTable表示当前选定的表,和触发事件的表是两回事。 |
||||
-- 作者:狐哥 -- 发布时间:2011/9/29 10:34:00 -- 哈,以为合同编号是自动提取的.理解错误 |