Foxtable(狐表)用户栏目专家坐堂 → [求助]统计


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

主题:[求助]统计

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


加好友 发短信
等级:五尾狐 帖子:1165 积分:8129 威望:0 精华:0 注册:2015/3/30 10:44:00
[求助]统计  发帖心情 Post By:2016/6/14 18:18:00 [只看该作者]

我定义了一个控件cktj

Dim cktj As WinForm.Button = e.Form.Controls("Button1")

希望能对扫描配货明细表的各物料编码的数量求和统计,条件是收货单号为空。-----什么方法统计简单。

比如物料编码:1有2个;物料编码:2有3个

然后这个统计结果作为cktj.text.

 


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

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


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

 不就是分组统计么?

 

 http://www.foxtable.com/help/topics/0677.htm

 


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


加好友 发短信
等级:五尾狐 帖子:1165 积分:8129 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2016/6/15 10:43:00 [只看该作者]

Dim cktj As WinForm.Button = e.Form.Controls("Button1")
                Dim b As New  GroupTableBuilder("统计表1",DataTables("扫描配货明细"))
                b.Filter = "收货单号 is null and 物料编码 > 0" '仅统计客户为CS01的记录
                b.Groups.AddDef("物料编码") '根据产品分组
                b.Totals.AddDef("数量") '对数量进行统计
                b.Build '生成统计表
                Dim str1 As String
                Dim lst2 As List(of DataRow) = DataTables("统计表1").datarows
                For Each mr As DataRow In lst2
                    str1 += "物料编码:" & mr("物料编码") & "--" & mr("数量") & ";"
                Next
                cktj.text = str1

 

这么写对吗?


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


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

Dim str As String = ""
For Each bm As String In DataTables("扫描配货明细").GetValues("物料编码")
    Dim sum As Double = DataTables("扫描配货明细").Compute("sum(数量)", "物料编码 = '" & bm & "'")
    str &= "物料编码:" & bm & "--" & sum & ";"
Next
msgbox(str)

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


加好友 发短信
等级:五尾狐 帖子:1165 积分:8129 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2016/6/15 11:51:00 [只看该作者]

物料编码不能为空,物料编码 > 0----不对吗?
                Dim str1 As String = ""
                For Each wlbm As String In DataTables("扫描配货明细").GetValues("物料编码","状态 = '生产结束扫描完成' and 收货单号 is null and 物料编码 > 0")
                    Dim sum1 As Integer = DataTables("扫描配货明细").Compute("sum(数量)", "物料编码 = '" & wlbm & "'")
                    str1 &= "物料编码:" & wlbm & "--" & sum1 & ";"
                Next
                cktj.text = str1
                msgbox(str1 & vbcrlf & cktj.text)

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


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

这个意思?

 

For Each wlbm As String In DataTables("扫描配货明细").GetValues("物料编码","状态 = '生产结束扫描完成' and 收货单号 is null and 物料编码 is not null")


 回到顶部