Foxtable(狐表)用户栏目专家坐堂 → [求助]BOM物料成本核算


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

主题:[求助]BOM物料成本核算

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/6/22 9:41:00 [显示全部帖子]

 汗,才理解你的意思。为什么要在展开的时候计算?你在bom表里面可以先一次性得到值啊。

 

内部函数 sum

Dim dr As DataRow = args(0)
Dim dt As DataTable = dr.DataTable
Dim dj As Double = dr("单价")
Dim drs As List(of DataRow)
drs = dt.Select("[父键] = '" & dr("子键") & "'")
If drs.Count = 0 Then
    Return dr("单价")
Else
    Dim sum As Double = 0
    For Each cdr As DataRow In drs
        sum += Functions.Execute("sum",cdr) * cdr("数量")
    Next
    dr("单价") = sum
    Return sum
End If

 

计算单价代码

Dim dt As DataTable = DataTables("bom")
For Each dr As DataRow In dt.Select("父键 is null")
    Functions.Execute("sum",dr)
Next


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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/6/23 0:35:00 [显示全部帖子]

以下是引用yangsion在2017/6/23 0:08:00的发言:
这个挺好了,就是没有父键为空的比较多的时候容易闪退

 

闪退应该是因为你的数据【死循环】了吧?比如 A有子健B,B的子健又是A


 回到顶部