以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]跨表的条件汇总  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=85783)

--  作者:老何
--  发布时间:2016/6/2 12:32:00
--  [求助]跨表的条件汇总
研究了半天,一方面思路还停留在EXCEL上(以下问题在EXCEL是已解决了的),另一方面对FT的逻辑、语法还是不熟悉。下面这个问题,还请老师赐教,看看怎么把思路变成代码。
目的一:汇总料件表中的每一个料件的备案数量
汇总条件:在单耗表中,把每一个成品的备案数量*该成品所用料件的单耗(就是每一个料件在该成品中的耗量),然后,汇总每一个料件在相同手册中每一个成品的耗量总和,就是料件表中每一个料件的备案数量。(不知我表述明白没有,在单耗表中,比如成品1,备案数量是30000,在单耗表中用了5个料件,那每个料件在这个成品中的耗量分别为30000*每个料件的对应单耗=该料件在此成品的耗量,汇总每个料件在每个成品的耗量(手册号要相同),就是料件表中的每个料件和备案数量。
目的二:汇总成品表中每一个成品的净重核算
汇总条件:每一个料件都有净重(重量换算系数),有主料辅料之分。在单耗表中,汇总每个料件在每一个成品中的单耗*当前料件的换算系数= 该成品的净重,然后把结果填充在成品表中的净重核算中。但是,不能包辅料件单耗算在里面,也就是说,辅料(包材)是不参与计算的。
哎呀,好累。。。

下面这些代码跟上述问题没多大关系,只是证明,1、上述几个表的一些数据是由此得来的(项目实际上更复杂一些),2、曾努力想过在单耗表中的DataColChanged实现。(也就是想,数据在一旦在单耗表的中生成,料件表和成品表中的数量就马上更新出来),3、代码中备注后的代码有运行错误
Dim drLJ As DataRow,drCP As DataRow \',Bsum As Double
Dim dl As Integer = e.DataRow("料件序号")
Dim dc As Integer = e.DataRow("成品序号")
Dim dj As Single = e.DataRow("净耗")
drLJ = DataTables("料件").find("[手册号] = \'C53076150488\' And [序号] = \'" & dl & "\'")
drCP = DataTables("成品").find("[手册号] = \'C53076150488\' And [序号] = \'" & dc & "\'")
If drLJ IsNot Nothing And drCP IsNot Nothing Then
    e.DataRow("料件名称") = drLJ("料件名称")
    e.DataRow("规格描述") = drLJ("规格描述")
    e.DataRow("单位") = drLJ("单位")
    e.DataRow("成品净重核算") = drLJ("重量换算") * dj
    e.DataRow("当前备案成品耗量") = drCP("备案数量") * dj
    \'DataTables("料件").DataCols("备案数量") = DataTables("单耗").Compute("Sum(成品净重核算)", "成品序号 = \'" & dc & "\'")
    \'MessageBox.Show(Bsum)
End If

--  作者:老何
--  发布时间:2016/6/2 12:33:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.table


--  作者:大红袍
--  发布时间:2016/6/2 14:52:00
--  
 你上传的例子想说明什么?
--  作者:大红袍
--  发布时间:2016/6/2 14:55:00
--  
你1楼想问什么?哪个值不会计算?不就是查找到对应的值,然后计算而已?
--  作者:老何
--  发布时间:2016/6/2 14:57:00
--  
不明白,不上传文件你能理解吗?
--  作者:老何
--  发布时间:2016/6/2 15:00:00
--  
如果你认为无用,不看它就是了
--  作者:老何
--  发布时间:2016/6/2 15:04:00
--  
不好意思,附件发错了
--  作者:大红袍
--  发布时间:2016/6/2 15:06:00
--  
请突出你的重点,你哪个值查不到哪个值不会计算?如果是报错,报什么错?
--  作者:老何
--  发布时间:2016/6/2 15:06:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.table


--  作者:老何
--  发布时间:2016/6/2 15:21:00
--  
这个上传的文件,就是一楼所述我所要解决的问题,谢谢!