Foxtable(狐表)用户栏目专家坐堂 → 再求分组统计


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

主题:再求分组统计

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


加好友 发短信
等级:一尾狐 帖子:475 积分:4058 威望:0 精华:0 注册:2018/5/13 15:18:00
再求分组统计  发帖心情 Post By:2021/4/25 20:39:00 [只看该作者]

蓝版,没有办法,学了几天的帮助,也请教了大侠,还是没有解决我的问题。
1、入库明细表里有字段:1、入库时间  2、入库商品  3、入库数量 4、入库金额
2、出库明细表里有字段:1、出库时间  2、出库商品  3、出库数量  4、出库金额
3、想得到下图中的统计数据
4、我贴出部分代码。


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



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


加好友 发短信
等级:一尾狐 帖子:475 积分:4058 威望:0 精华:0 注册:2018/5/13 15:18:00
  发帖心情 Post By:2021/4/25 20:41:00 [只看该作者]

Dim g As New GroupTableBuilder("统计表1", DataTables("入库明细"))
Dim dt1 As fxDataSource
g.Groups.AddDef("入库日期", DateGroupEnum.Year, "年")
g.Groups.AddDef("入库日期", "月")
g.Groups.AddDef("商品名称")
g.Totals.AddDef("入库数量", "", "本月入库_数量")
g.Totals.AddDef("入库金额", "", "本月入库_金额")

dt1 = g.BuildDataSource()

Dim g1 As New GroupTableBuilder("统计表2",DataTables("出库明细"))
Dim dt2  As fxDataSource
g1.Groups.AddDef("出库日期", DateGroupEnum.Year, "年")
g1.Groups.AddDef("出库日期", "月")
g1.Groups.AddDef("商品名称")
g1.Totals.AddDef("出库数量", "", "本月出库_数量")
g1.Totals.AddDef("出库金额", "", "本月出库_金额")
dt2 = g1.BuildDataSource()
        
Dim nms As String() = {"年","月","商品名称"} '指定连接列
dt1.Combine(nms,dt2,nms) '将销售统计数据组合到进货统计数据
Tables("出入库月统计_月汇总").DataSource = dt1 '将统计结果绑定到Table



Dim g As New GroupTableBuilder("统计表1", DataTables("入库明细"))
g.Groups.AddDef("入库日期", DateGroupEnum.Year, "年")
g.Groups.AddDef("入库日期", "月")
g.Groups.AddDef("商品名称")
g.Totals.AddDef("入库数量")
g.Totals.AddDef("入库金额")
g.Totals.AddDef("入库单价",AggregateEnum.Average )
g.Filter = "商品名称 is not null"
Dim dt As DataTable = g.Build(True)


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


加好友 发短信
等级:一尾狐 帖子:475 积分:4058 威望:0 精华:0 注册:2018/5/13 15:18:00
  发帖心情 Post By:2021/4/25 20:41:00 [只看该作者]

DataTables("统计表").DeleteFor("")
Dim dr As DataRow
For Each r As DataRow In dt.DataRows
    dr = DataTables("统计表").AddNew
    dr("年") = r("年")
    dr("月") = r("月")
    dr("商品名称") = r("商品名称")
    dr("本月入库数量") = r("入库数量")
    dr("本月入库金额") = r("入库金额")
    dr("本月入库平均单价") = r("入库单价")
Next
Tables("统计表").Sort = "年,月"
For Each r As Row In Tables("统计表").Rows
    Dim d As Date = new Date(r("年"),r("月"),1)
    dr = DataTables("统计表").Find("商品名称 = '" & r("商品名称") & "' And 年 <=" & r("年") & " and 月 <" & r("月") , "年 desc,月 desc")
    If dr IsNot Nothing Then
        r("上月结存数量") = dr("本月入库数量")
        r("上月结存金额") = dr("本月入库金额")
    End If
Next
MainTable = Tables("统计表")

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


加好友 发短信
等级:超级版主 帖子:110655 积分:563189 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/4/25 20:59:00 [只看该作者]

去掉下面代码
Dim g As New GroupTableBuilder("统计表1", DataTables("入库明细"))
g.Groups.AddDef("入库日期", DateGroupEnum.Year, "年")
g.Groups.AddDef("入库日期", "月")
g.Groups.AddDef("商品名称")
g.Totals.AddDef("入库数量")
g.Totals.AddDef("入库金额")
g.Totals.AddDef("入库单价",AggregateEnum.Average )
g.Filter = "商品名称 is not null"
Dim dt As DataTable = g.Build(True)

MainTable = Tables("统计表")

然后把3楼代码里"统计表"全部改为"出入库月统计_月汇总"

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


加好友 发短信
等级:一尾狐 帖子:475 积分:4058 威望:0 精华:0 注册:2018/5/13 15:18:00
  发帖心情 Post By:2021/4/25 21:20:00 [只看该作者]

你说的是这样改代码吗?提示错误如下图。我是事先建好表,然后绑定在窗口上的。
Dim g As New GroupTableBuilder("统计表1", DataTables("入库明细"))
Dim dt1 As fxDataSource
g.Groups.AddDef("入库日期", DateGroupEnum.Year, "年")
g.Groups.AddDef("入库日期", "月")
g.Groups.AddDef("商品名称")
g.Totals.AddDef("入库数量", "", "本月入库_数量")
g.Totals.AddDef("入库金额", "", "本月入库_金额")

dt1 = g.BuildDataSource()

Dim g1 As New GroupTableBuilder("统计表2",DataTables("出库明细"))
Dim dt2  As fxDataSource
g1.Groups.AddDef("出库日期", DateGroupEnum.Year, "年")
g1.Groups.AddDef("出库日期", "月")
g1.Groups.AddDef("商品名称")
g1.Totals.AddDef("出库数量", "", "本月出库_数量")
g1.Totals.AddDef("出库金额", "", "本月出库_金额")
dt2 = g1.BuildDataSource()
        
Dim nms As String() = {"年","月","商品名称"} '指定连接列
dt1.Combine(nms,dt2,nms) '将销售统计数据组合到进货统计数据
Tables("出入库月统计_月汇总").DataSource = dt1 '将统计结果绑定到Table

DataTables("统计表").DeleteFor("")
Dim dr As DataRow
For Each r As DataRow In dt.DataRows
    dr = DataTables("统计表").AddNew
    dr("年") = r("年")
    dr("月") = r("月")
    dr("商品名称") = r("商品名称")
    dr("本月入库数量") = r("入库数量")
    dr("本月入库金额") = r("入库金额")
    dr("本月入库平均单价") = r("入库单价")
Next
Tables("统计表").Sort = "年,月"
For Each r As Row In Tables("统计表").Rows
    Dim d As Date = new Date(r("年"),r("月"),1)
    dr = DataTables("统计表").Find("商品名称 = '" & r("商品名称") & "' And 年 <=" & r("年") & " and 月 <" & r("月") , "年 desc,月 desc")
    If dr IsNot Nothing Then
        r("上月结存数量") = dr("本月入库数量")
        r("上月结存金额") = dr("本月入库金额")
    End If
Next


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


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


加好友 发短信
等级:一尾狐 帖子:475 积分:4058 威望:0 精华:0 注册:2018/5/13 15:18:00
  发帖心情 Post By:2021/4/25 21:32:00 [只看该作者]

这样也报同样的错。
Dim g As New GroupTableBuilder("统计表1", DataTables("入库明细"))
Dim dt1 As fxDataSource
g.Groups.AddDef("入库日期", DateGroupEnum.Year, "年")
g.Groups.AddDef("入库日期", "月")
g.Groups.AddDef("商品名称")
g.Totals.AddDef("入库数量", "", "本月入库_数量")
g.Totals.AddDef("入库金额", "", "本月入库_金额")

dt1 = g.BuildDataSource()

Dim g1 As New GroupTableBuilder("统计表2",DataTables("出库明细"))
Dim dt2  As fxDataSource
g1.Groups.AddDef("出库日期", DateGroupEnum.Year, "年")
g1.Groups.AddDef("出库日期", "月")
g1.Groups.AddDef("商品名称")
g1.Totals.AddDef("出库数量", "", "本月出库_数量")
g1.Totals.AddDef("出库金额", "", "本月出库_金额")
dt2 = g1.BuildDataSource()
        
Dim nms As String() = {"年","月","商品名称"} '指定连接列
dt1.Combine(nms,dt2,nms) '将销售统计数据组合到进货统计数据
Tables("出入库月统计_月汇总").DataSource = dt1 '将统计结果绑定到Table

DataTables("出入库月统计_月汇总").DeleteFor("")
Dim dr As DataRow
For Each r As DataRow In dt.DataRows
    dr = DataTables("出入库月统计_月汇总").AddNew
    dr("年") = r("年")
    dr("月") = r("月")
    dr("商品名称") = r("商品名称")
    dr("本月入库数量") = r("入库数量")
    dr("本月入库金额") = r("入库金额")
    dr("本月入库平均单价") = r("入库单价")
Next
Tables("出入库月统计_月汇总").Sort = "年,月"
For Each r As DataRow In dt.DataRows
    Dim d As Date = new Date(r("年"),r("月"),1)
    dr = DataTables("出入库月统计_月汇总").Find("商品名称 = '" & r("商品名称") & "' And 年 <=" & r("年") & " and 月 <" & r("月") , "年 desc,月 desc")
    If dr IsNot Nothing Then
        r("上月结存数量") = dr("本月入库数量")
        r("上月结存金额") = dr("本月入库金额")
    End If
Next

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


加好友 发短信
等级:超级版主 帖子:110655 积分:563189 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/4/25 21:39:00 [只看该作者]

用5楼代码,加一句
Tables("出入库月统计_月汇总").DataSource = dt1 '将统计结果绑定到Table
dim dt as datatable = dataTables("出入库月统计_月汇总")

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


加好友 发短信
等级:二尾狐 帖子:568 积分:5458 威望:0 精华:0 注册:2018/11/6 10:54:00
  发帖心情 Post By:2021/4/26 0:24:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:信达食堂管理00.rar


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


加好友 发短信
等级:超级版主 帖子:110655 积分:563189 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/4/26 9:18:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:进销存9.zip


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


加好友 发短信
等级:一尾狐 帖子:475 积分:4058 威望:0 精华:0 注册:2018/5/13 15:18:00
  发帖心情 Post By:2021/4/26 13:55:00 [只看该作者]

蓝版,你用的是下面的代码吧,提示这个.

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

Dim g As New GroupTableBuilder("t1", DataTables("入库明细"))
Dim dt1 As fxDataSource
g.Groups.AddDef("入库日期", DateGroupEnum.Year, "年")
g.Groups.AddDef("入库日期", "月")
g.Groups.AddDef("商品名称")
g.Totals.AddDef("入库数量", "", "本月_入库数量")
g.Totals.AddDef("入库金额", "", "本月_入库金额")
dt1 = g.BuildDataSource()

Dim g1 As New GroupTableBuilder("t2",DataTables("出库明细"))
Dim dt2  As fxDataSource
g1.Groups.AddDef("出库日期", DateGroupEnum.Year, "年")
g1.Groups.AddDef("出库日期", "月")
g1.Groups.AddDef("商品名称")
g1.Totals.AddDef("出库数量", "", "本月_出库数量")
g1.Totals.AddDef("出库金额", "", "本月_出库金额")
dt2 = g1.BuildDataSource()

Dim nms As String() = {"年","月","商品名称"} '指定连接列
dt1.Combine(nms,dt2,nms) '将销售统计数据组合到进货统计数据?

'dt1.Show("t1") '显示统计结果

Tables("统计表").DataSource = dt1 '将统计结果绑定到Table

Dim dt As DataTable = DataTables("t1")

DataTables("统计表").DeleteFor("")
Dim dr As DataRow
For Each r As DataRow In dt.DataRows
    dr = DataTables("统计表").AddNew
    dr("年") = r("年")
    dr("月") = r("月")
    dr("商品名称") = r("商品名称")
    dr("本月入库数量") = r("入库数量")
    dr("本月入库金额") = r("入库金额")
    If r("入库数量")>0 Then
        dr("本月入库平均单价") =r("入库金额")/r("入库数量")
    End If
    dr("本月出库数量") = r("出库数量")
    dr("本月出库金额") = r("出库金额")
    If r("出库数量")>0 Then
        dr("本月出库平均单价") =r("出库金额")/r("出库数量")
    End If
    dr("本月结存数量")=r("入库数量") - r("出库数量")
    dr("本月结存金额")=r("入库金额") - r("出库金额")
    
    Dim drs As DataRow=DataTables("统计表").Find("商品名称 = '" & r("商品名称") & "' And 年 =" & r("年") & " and 月 =" & r("月")-1, "年 desc,月 desc")
    If drs IsNot Nothing Then
        dr("上月结存数量")=drs("本月结存数量")
        dr("上月结存金额")=drs("本月结存金额")
    End If
    
Next

Tables("统计表").Sort="年,月"

 回到顶部
总数 21 1 2 3 下一页