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


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

主题:再求分组统计

帅哥哟,离线,有人找我吗?
天宇科技
  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


加好友 发短信
等级:一尾狐 帖子: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
图片点击可在新窗口打开查看


 回到顶部
帅哥哟,离线,有人找我吗?
天宇科技
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | 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

 回到顶部
帅哥哟,离线,有人找我吗?
天宇科技
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | 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="年,月"

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


加好友 发短信
等级:一尾狐 帖子:475 积分:4058 威望:0 精华:0 注册:2018/5/13 15:18:00
  发帖心情 Post By:2021/4/26 15:08:00 [显示全部帖子]

明明有这个表,怎么提示这个呢

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


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


加好友 发短信
等级:一尾狐 帖子:475 积分:4058 威望:0 精华:0 注册:2018/5/13 15:18:00
  发帖心情 Post By:2021/4/26 18:28:00 [显示全部帖子]


蓝版,我打开 你的文件,提示如下。请蓝版运行一下你发出的文件,应该不能正常使用。
错误所在事件:窗口,出入库月统计,汇总统计,Click
详细错误信息:
Conversion from type 'Short' to type 'Date' is not valid.
[此贴子已经被作者于2021/4/26 18:42:13编辑过]

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


加好友 发短信
等级:一尾狐 帖子:475 积分:4058 威望:0 精华:0 注册:2018/5/13 15:18:00
  发帖心情 Post By:2021/4/26 20:59:00 [显示全部帖子]

把空行删除,还是报这个错误,并且上月库存金额和数量,本月结存数量和金额没有统计出来。生成了下面的表格。

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

[此贴子已经被作者于2021/4/26 21:00:14编辑过]

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


加好友 发短信
等级:一尾狐 帖子:475 积分:4058 威望:0 精华:0 注册:2018/5/13 15:18:00
  发帖心情 Post By:2021/4/26 21:49:00 [显示全部帖子]

请蓝版测试下,我把空行删除并保存了。我用的20200529版。里面有数据库,密码是888
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:进销存10.rar

[此贴子已经被作者于2021/4/26 21:49:13编辑过]

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