Foxtable(狐表)用户栏目专家坐堂 → 用料计算


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

主题:用料计算

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


加好友 发短信
等级:九尾狐 帖子:2649 积分:19390 威望:0 精华:1 注册:2008/9/12 9:19:00
用料计算  发帖心情 Post By:2022/1/6 11:43:00 [只看该作者]

有2个表:数量表和用料表。想在数量表中中先对数量按产品代码进行汇总后再计算用料(红色代码)为什么不行?

 

If e.DataCol.Name = "数量" Then

Dim b As New CrossTableBuilder("数量汇总",DataTables("产品数量"))
b.HGroups.AddDef("产品代码") '添加列水平分组
b.Totals.AddDef("数量")
'b.Build '生成统计表

    Dim Filter As String = "[产品代码] = '" & e.DataRow("产品代码") & "'"
    Dim dts As List(Of DataRow) = DataTables("BOM").Select(Filter)
    For Each dt As DataRow In dts
        If dt IsNot Nothing Then
            'dt("计算用料") = dt("千米用料") * e.DataRow("数量")
            dt("计算用料") = dt("千米用料") * b.DataRow("数量")
        Else
            dt("计算用料") = 0
        End If
    Next
End If


图片点击可在新窗口打开查看此主题相关图片如下:snap1.jpg
图片点击可在新窗口打开查看

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


加好友 发短信
等级:超级版主 帖子:109489 积分:557107 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/1/6 11:47:00 [只看该作者]

没有添加垂直分组。如果不需要垂直分组,请使用分组统计,不要使用交叉统计

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


加好友 发短信
等级:九尾狐 帖子:2649 积分:19390 威望:0 精华:1 注册:2008/9/12 9:19:00
  发帖心情 Post By:2022/1/6 12:32:00 [只看该作者]

这段代码有问题

dt("计算用料") = dt("千米用料") * b.DataRow("数量")


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


加好友 发短信
等级:超级版主 帖子:109489 积分:557107 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/1/6 13:42:00 [只看该作者]

这个代码想要干嘛?

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


加好友 发短信
等级:九尾狐 帖子:2649 积分:19390 威望:0 精华:1 注册:2008/9/12 9:19:00
  发帖心情 Post By:2022/1/6 13:43:00 [只看该作者]

If e.DataCol.Name = "数量" Then

Dim b As New GroupTableBuilder("数量汇总",DataTables("产品数量"))
b.Groups.AddDef("产品代码")
b.Totals.AddDef("数量")
b.Build '生成统计表

    Dim Filter As String = "[产品代码] = '" & e.DataRow("产品代码") & "'"
    Dim dts As List(Of DataRow) = DataTables("BOM").Select(Filter)
    For Each dt As DataRow In dts
        If dt IsNot Nothing Then
            'dt("计算用料") = dt("千米用料") * e.DataRow("数量")
            dt("计算用料") = dt("千米用料") * b.DataRow("数量")
        Else
            dt("计算用料") = 0
        End If
    Next
End If



图片点击可在新窗口打开查看此主题相关图片如下:snap1.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2022/1/6 13:44:37编辑过]

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


加好友 发短信
等级:九尾狐 帖子:2649 积分:19390 威望:0 精华:1 注册:2008/9/12 9:19:00
  发帖心情 Post By:2022/1/6 13:46:00 [只看该作者]

再产品数量表中,可能有重复的产品,先汇总产品数量再计算

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


加好友 发短信
等级:超级版主 帖子:109489 积分:557107 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/1/6 13:46:00 [只看该作者]

交叉统计没有DataRow这种属性,这个代码想要干嘛?

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


加好友 发短信
等级:九尾狐 帖子:2649 积分:19390 威望:0 精华:1 注册:2008/9/12 9:19:00
  发帖心情 Post By:2022/1/6 14:00:00 [只看该作者]

那如何引用数量汇总表的数量汇总数据?

我改用的是分组统计,5楼代码

[此贴子已经被作者于2022/1/6 14:00:53编辑过]

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


加好友 发短信
等级:超级版主 帖子:109489 积分:557107 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/1/6 14:06:00 [只看该作者]

数量汇总表如果有好多行,要取哪一行数据?

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


加好友 发短信
等级:九尾狐 帖子:2649 积分:19390 威望:0 精华:1 注册:2008/9/12 9:19:00
  发帖心情 Post By:2022/1/6 14:51:00 [只看该作者]

用料表:计算用料 = 千米用料 * 数量 (按产品代码计算)

其中:数量是产品数量表中的字段,需要按产品代码汇总后再用于上述公式,


 回到顶部
总数 12 1 2 下一页