以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 求助!关于跨表计算的问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=5716) |
||||
-- 作者:zzbyhz -- 发布时间:2010/1/1 22:47:00 -- 求助!关于跨表计算的问题 我在设计一个小软件时遇到一个问题: 有两个表:甲、乙,甲表中有A名称、A数量、A重量、B名称、B数量、B重量六列(必须如此设置六列),乙表中有X名称、Y每米重量两列。甲乙两表已作关联,甲表为子表。 甲表中的A名称和B名称需到乙表中查找并调用与之相对应的Y每米重量,参与甲表中的计算, 即:A重量=乙表中与A名称对应的Y每米重量×A数量 B重量=乙表中与B名称对应的Y每米重量×B数量 当甲表从乙表中调用与B名称对应的Y每米重量时,却总是调用与A名称对应的Y每米重量而不能正确调用。 这个问题如何解决? 请各位大侠指点指点。谢谢!!! 现将附件上传,请程版主及各位大侠指点! 问题在柱构件工程量计算表中的"角钢二_重量"
[此贴子已经被作者于2010-1-2 0:51:26编辑过]
|
||||
-- 作者:wqc360 -- 发布时间:2010/1/1 23:25:00 -- 来个示范文件看看 |
||||
-- 作者:程兴刚 -- 发布时间:2010/1/1 23:27:00 -- 问题不算复杂,估计您要是上传文件比您写作半天解决问题更快! |
||||
-- 作者:bjljb -- 发布时间:2010/1/2 1:58:00 -- 楼主所提问题的关键在于:父表和子表之间只能通过确定的某一列来建立关联,不能用父表的一列去对应同一个子表的多列。 所以“角钢二_重量”列的公式中:Parent(型号_构件).每米重量,其实还是根据“角钢一_型号”列指定的型号去到角钢型号表中去取值,而并非楼主所希望的根据“角钢二_型号”列指定的型号去到角钢型号表中去取值。 解决方案一:把角钢型号表复制一份,不妨命名为角钢型号2,然后仿照原来已经建立的关联再建立一个关联“型号_构件2”,公式改为:Parent(型号_构件2).每米重量……即可; 解决方案二:把“角钢二_重量”列改为数据列,然后在DataColChanged事件中用Find方法的代码来实现。 |
||||
-- 作者:zzbyhz -- 发布时间:2010/1/2 12:05:00 -- 我是一个刚刚才学狐表两天的菜鸟,很多东西都是边学边实践,有很多东西还不太明白.试着用代码的时候,仿造《使用手册.跨表计算》里的代码,略作修改,可是老是出现错误提示(见附件) 此主题相关图片如下:截图00.jpg ,也不知是哪里出错了。请各位指点纠正。谢谢!(已在表中增加了一列数据列角钢二重量A) [此贴子已经被作者于2010-1-2 12:15:18编辑过]
|
||||
-- 作者:czy -- 发布时间:2010/1/2 12:36:00 -- 你的代码放错地了,应该用到DataColChanged事件中。 |
||||
-- 作者:zzbyhz -- 发布时间:2010/1/2 14:22:00 -- 谢谢CZY版主的指点!已按照指点将代码放到DataColChanged事件中,可是,一旦执行将角钢二型号改变后,却又出现错误提示,不知是何故?还望指点! 此主题相关图片如下:截图02.jpg |
||||
-- 作者:yangming -- 发布时间:2010/1/2 15:58:00 -- 可能是列名称有问题,多层标题应该如何写,你看看帮助 [此贴子已经被作者于2010-1-2 16:02:57编辑过]
|
||||
-- 作者:czy -- 发布时间:2010/1/2 18:14:00 -- 角钢二重量,角钢二重量A 为数据列。 将代码改成: if e.DataCol.Name = "角钢二型号" Then Dim dr1 As DataRow = e.DataRow if dr1.IsNull("角钢二型号") then dr1("角钢二重量A") = Nothing Else Dim dr As Datarow = DataTables("角钢型号").Find("[型号] = \'" & dr1("角钢二型号") & "\'") if dr IsNot Nothing Then dr1("角钢二重量A") = dr("每米重量") * dr1("构件数量") * dr1("角钢二数量") End If End If End If |
||||
-- 作者:zzbyhz -- 发布时间:2010/1/2 19:01:00 -- 解决了,谢谢CZY版主!!! |