研究了半天,一方面思路还停留在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