Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共7 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:请教各位专家,谁能帮我看看我对这段代码的理解哪里错了?

1楼
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返回非空值时,则合同名称列返回父表“营销类合同”中关联行的合同名称的值。 我在执行上述代码时会弹出错误,求解~~~感谢各位专家、
2楼
狐狸爸爸 发表于:2011/9/29 10:03:00

没有看出有什么问题,只是代码中为什么会出现CurrentTable?

3楼
kevin11 发表于:2011/9/29 10:09:00
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目.table

请狐爸帮我看看表“付款明细表”中的DATACHANGED事件的代码,现在的问题是出在第三种情况,当我输入合同编号时,不能根据输入的值直接从前面两张父表的关联行中引用相应的值。请教狐爸指点问题是出在什么地方?
4楼
狐哥 发表于:2011/9/29 10:11:00
这个是一个儿子二个父亲呢,不懂.这种表间关系也可以吗?
[此贴子已经被作者于2011-9-29 10:12:53编辑过]
5楼
狐哥 发表于:2011/9/29 10:18:00

比如A.B   C.B    在A表下新增行关联数据是A表的,C表的关联肯定不会自动加入的吧.

理应提取C表的关联才对吧.少个提取.

6楼
狐狸爸爸 发表于:2011/9/29 10:24:00

下面这样的代码没有错的,如果没有出结果,只有两个原因:

1、父表没有对应的行

2、父表有对应的行,但是此行的合同名称列无数据。

 

  Case "合同编号"
        Dim pr As DataRow = e.DataRow.GetParentRow("合同信息汇总表")
        Dim dr As DataRow = e.DataRow.GetParentRow("营销类合同")
        If pr IsNot Nothing Then
          e.DataRow("合同名称") =  pr("合同名称")
        End If
        If dr IsNot Nothing  Then
          e.DataRow("合同名称") =  dr("合同名称")
        End If

 

实际上,你两个父表的合同名称列就是没有数据的。

另外这样的代码,设置在付款明细表的DataColChanged事件,触发事件的就是付款明细表,有必要判断表名吗,即使判断表名也不是CurrentTable.name,而是e.DataTable.Name,CurrentTable表示当前选定的表,和触发事件的表是两回事。

7楼
狐哥 发表于:2011/9/29 10:34:00
哈,以为合同编号是自动提取的.理解错误
共7 条记录, 每页显示 10 条, 页签: [1]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .03125 s, 3 queries.