Foxtable(狐表)用户栏目专家坐堂 → 求助,层级的计算


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

主题:求助,层级的计算

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


加好友 发短信
等级:童狐 帖子:202 积分:1276 威望:0 精华:0 注册:2015/4/16 12:05:00
  发帖心情 Post By:2015/6/29 20:45:00 [只看该作者]

用户开发者,密码888

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


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

 你的物料信息根本就没有层级关系,必须单独建立一个bom表啊。

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


加好友 发短信
等级:童狐 帖子:202 积分:1276 威望:0 精华:0 注册:2015/4/16 12:05:00
  发帖心情 Post By:2015/6/29 21:02:00 [只看该作者]

恩,是这样的,因为维护的数据量比较大,前期单独建一张bom表也是可以的。那这两个表是不是应该有些关联字段,我以后就只维护那张物料信息主表,BOM信息根据主表信息自己修改。这样可行吗?

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


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

 bom表,肯定有一列零件号列。

 

 bom表只需要有几列关键列即可,如 父零件号、零件号、用量


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


加好友 发短信
等级:童狐 帖子:202 积分:1276 威望:0 精华:0 注册:2015/4/16 12:05:00
  发帖心情 Post By:2015/6/30 15:00:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.zip

求大神看下,上述计算中存在一个问题。比如说子部件117、123、125都需要零件B06,最后计算时,B06虽然只出现了一次,但是数量却没有累加,计算有误。

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


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

'args(0)  零件
'args(1)  编号
'args(2)  数量

Dim drs As List(Of DataRow) = DataTables("BOM").Select("零件='" & args(0) & "'")
If drs.Count>0 Then
    For Each dr As DataRow In drs
        Functions.Execute("GetZiLeiCount",dr("子零件"),args(1),dr("定额")*args(2), dr("定额"))
    Next
Else
    Dim dr As DataRow = DataTables("耗用量统计").Find("生产编号='" & args(1)("_Identify") & "' and 子零件 = '" & args(0) & "'")
    If dr Is Nothing Then
        dr = DataTables("耗用量统计").AddNew()
        dr("子零件") = args(0)
        dr("消耗量") = args(2)
        dr("生产编号") = args(1)("_Identify")
        dr("零件") = args(1)("零件")
        dr("数量") = args(1)("数量")
        dr("单台用量") = args(3)
    Else
        dr("子零件") = args(0)
        dr("消耗量") = args(2)
        dr("数量") += args(1)("数量")
    End If
End If


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


加好友 发短信
等级:童狐 帖子:202 积分:1276 威望:0 精华:0 注册:2015/4/16 12:05:00
  发帖心情 Post By:2015/6/30 16:23:00 [只看该作者]

代码貌似有问题哦,改完后子件的数量没有变,母件的数量变化了。
图片点击可在新窗口打开查看此主题相关图片如下:捕获.png
图片点击可在新窗口打开查看

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


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

你能不能变通

 

Dim drs As List(Of DataRow) = DataTables("BOM").Select("零件='" & args(0) & "'")
If drs.Count>0 Then
    For Each dr As DataRow In drs
        Functions.Execute("GetZiLeiCount",dr("子零件"),args(1),dr("定额")*args(2), dr("定额"))
    Next
Else
    Dim dr As DataRow = DataTables("耗用量统计").Find("生产编号='" & args(1)("_Identify") & "' and 子零件 = '" & args(0) & "'")
    If dr Is Nothing Then
        dr = DataTables("耗用量统计").AddNew()
        dr("子零件") = args(0)
        dr("消耗量") = args(2)
        dr("生产编号") = args(1)("_Identify")
        dr("零件") = args(1)("零件")
        dr("数量") = args(1)("数量")
        dr("单台用量") = args(3)
    Else
        dr("子零件") = args(0)
        dr("消耗量") += args(2)
    End If
End If


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


加好友 发短信
等级:童狐 帖子:202 积分:1276 威望:0 精华:0 注册:2015/4/16 12:05:00
  发帖心情 Post By:2015/6/30 17:24:00 [只看该作者]

俺是新手啊


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


加好友 发短信
等级:童狐 帖子:202 积分:1276 威望:0 精华:0 注册:2015/4/16 12:05:00
  发帖心情 Post By:2015/6/30 20:17:00 [只看该作者]

求大神再看看,我发现计算结果不对,按照我手工算最简单的,单位用量都给的1,子零件数量应为1、3、1、2、1、1、1、1、1.求解啊图片点击可在新窗口打开查看
[此贴子已经被作者于2015/6/30 20:22:10编辑过]

 回到顶部
总数 81 上一页 1 2 3 4 5 6 7 8 9 下一页