以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]关联问题  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=92371)

--  作者:77611471
--  发布时间:2016/11/2 9:52:00
--  [求助]关联问题

单柜成本汇总表

 

编号() ----> 整数 ----> [_Identify]

订单编号() ----> 字符型(100) ----> Parent(订单_汇总).订单编号

产品编号() ----> 字符型(200)

订单数量() ----> 字符型(100) ----> Parent(订单_汇总).订单数量

装配完成时间() ----> 日期型

板材成本() ----> 双精度小数

包装箱板材成本() ----> 双精度小数

油漆成本() ----> 双精度小数

BOM成本() ----> 双精度小数

工时成本_木工() ----> 双精度小数

工时成本_涂装() ----> 双精度小数

工时成本_装配() ----> 双精度小数

工时成本_光电() ----> 双精度小数

工时成本_五金() ----> 双精度小数

 

If e.DataCol.Name = "产品编号" Then \'发生变化的是产品列.

    \'则累计订单表中同名产品总的销售量,然后赋值给变动行的数量列

e.DataRow("BOM成本") = DataTables("BOM表").Compute("Sum(金额)","[产品编号] = \'" & e.NewValue & "\'")

e.DataRow("板材成本") = DataTables("板材用料表").Compute("Sum(金额)","[产品编号] = \'" & e.NewValue & "\'")

e.DataRow("油漆成本") = DataTables("油漆用量表").Compute("Sum(单机金额)","[产品编号] = \'" & e.NewValue & "\'")

e.DataRow("包装箱板材成本") = DataTables("包装箱临时表").Compute("Sum(金额)","[产品编号] = \'" & e.NewValue & "\'")

 

 

e.DataRow("工时成本_木工") = DataTables("订单工时成本").Compute("Avg(单位工时成本)","[产品编号] = \'" & e.NewValue & "\' and 部门=\'木工\'")

e.DataRow("工时成本_涂装") = DataTables("订单工时成本").Compute("Avg(单位工时成本)","[产品编号] = \'" & e.NewValue & "\' and 部门=\'涂装\'")

e.DataRow("工时成本_装配") = DataTables("订单工时成本").Compute("Avg(单位工时成本)","[产品编号] = \'" & e.NewValue & "\' and 部门=\'装配\'")

e.DataRow("工时成本_光电") = DataTables("订单工时成本").Compute("Avg(单位工时成本)","[产品编号] = \'" & e.NewValue & "\' and 部门=\'光电\'")

e.DataRow("工时成本_五金") = DataTables("订单工时成本").Compute("Avg(单位工时成本)","[产品编号] = \'" & e.NewValue & "\' and 部门=\'五金\'")

end if


单柜成本汇总表分别从下面的这些表取数

装配完成时间() ----> 订单工时成本

板材成本() ----> 板材用料表

包装箱板材成本() ----> 包装箱临时表

油漆成本() ----> 油漆用量表

BOM成本() ----> BOM表

工时成本_木工() ----> 订单工时成本

工时成本_涂装() ----> 订单工时成本

工时成本_装配() ----> 订单工时成本

工时成本_光电() ----> 订单工时成本

工时成本_五金() ----> 订单工时成本

各个表间除了BOM表没的对应的“订单编号”,别的表都有。现在问题是,如果订单编号不同的情况下,产品编号相同,就会出现重复的问题,应该是如何改?或是采用什么别的方式?

 


--  作者:有点色
--  发布时间:2016/11/2 10:01:00
--  

没看懂你的意思,你是要加上订单编号作为条件?

 

e.DataRow("工时成本_木工") = DataTables("订单工时成本").Compute("Avg(单位工时成本)","[产品编号] = \'" & e.DataRow("产品编号") & "\' and 订单编号 = \'" & e.DataRow("订单编号") & "\' and 部门=\'木工\'")


--  作者:77611471
--  发布时间:2016/11/2 10:23:00
--  
这个关系我也没想明白,表达不出来。就是我有几张表,要分别从几张表里取出以订单号,产品编号为条件的数,但是产品编号在不同订单里面可能会重复。应该怎么么样做?





--  作者:有点蓝
--  发布时间:2016/11/2 10:32:00
--  
2楼不说了么?加上订单编号作为条件
--  作者:77611471
--  发布时间:2016/11/2 10:43:00
--  
如果我要取日期应该怎么改呢?

以产品编号和订单号为条件,取一个表的“完成日期”

--  作者:有点蓝
--  发布时间:2016/11/2 10:57:00
--  
Find:http://www.foxtable.com/webhelp/scr/0396.htm



--  作者:有点色
--  发布时间:2016/11/2 11:44:00
--  

Dim fdr As DataRow = DataTables("某表").Find("[产品编号] = \'" & e.DataRow("产品编号") & "\' and 订单编号 = \'" & e.DataRow("订单编号") & "\'")

If fdr IsNot Nothing Then

    msgbox(fdr("完成时间"))

End If