Foxtable(狐表)用户栏目专家坐堂 → 跨表统计


  共有2143人关注过本帖树形打印复制链接

主题:跨表统计

帅哥哟,离线,有人找我吗?
kaituozhe
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2234 积分:15278 威望:0 精华:0 注册:2015/7/18 10:10:00
跨表统计  发帖心情 Post By:2015/9/29 22:48:00 [只看该作者]

If e.DataCol.name = "产品名称"
    Dim drs As List (of DataRow) = DataTables("BOM清单").Select("产品名称= '" & e.DataRow("产品名称") & "'")
    For Each dr As DataRow In drs
        Dim dr1 As DataRow =DataTables("物料价格表").find("物料编号= '" & dr("物料编号") & "'")
        e.DataRow("材料成本")+= dr("数量")*dr1("单价")
    Next
End If

类似以上代码,一直有一个问题困惑我,上述代码每执行一次都会增加一倍,有没有什么方法可以解决此类问题。


 回到顶部
帅哥哟,离线,有人找我吗?
kaituozhe
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2234 积分:15278 威望:0 精华:0 注册:2015/7/18 10:10:00
  发帖心情 Post By:2015/9/29 22:52:00 [只看该作者]

上述代码包含三个表,生产成本表、物料价格表、BOM清单,根据生产成本表中产品名称、在BOM清单中找到该产品所需要各种物料代码,然后根据物料编号在物料价格表找到相应材料的单价,根据所需每种材料的数量及单价求总和计算出材料成本。

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/9/29 22:55:00 [只看该作者]

If e.DataCol.name = "产品名称"
    Dim drs As List (of DataRow) = DataTables("BOM清单").Select("产品名称= '" & e.DataRow("产品名称") & "'")

    e.DataRow("材料成本") = nothing
    For Each dr As DataRow In drs
        Dim dr1 As DataRow =DataTables("物料价格表").find("物料编号= '" & dr("物料编号") & "'")
        e.DataRow("材料成本")+= dr("数量")*dr1("单价")
    Next
End If


 回到顶部