以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  foxtable交叉统计加一列最近库存变化时刻的问题。  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=171734)

--  作者:wfkbabro
--  发布时间:2021/9/8 7:55:00
--  foxtable交叉统计加一列最近库存变化时刻的问题。
谢谢大神们,foxtable交叉统计,想加一列最近库存变化时刻,
想要的效果如图

图片点击可在新窗口打开查看此主题相关图片如下:a.png
图片点击可在新窗口打开查看
 
示例文件如下。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:库存变化交叉统计测试.rar

目前代码
以下内容为程序代码:

1 Dim g As New CrossTableBuilder("统计表1", DataTables("库存变化表"), "[仓库名称] <> \'购入\'")
2 g.HGroups.AddDef("物资编码")
3 g.VGroups.AddDef("仓库名称")
4 g.Totals.AddDef("入库数量", "入库数量")
5 g.HorizontalTotal = True
6 g.VerticalTotal = True
7 g.Filter = "[仓库名称] <> \'购入\'"
8 g.Build()
9 MainTable = Tables("统计表1")
10


谢谢提醒,已更正。
Dim g As New CrossTableBuilder("统计表1", DataTables("库存变化表"), "[仓库名称] <> \'购入\'")
g.HGroups.AddDef("物资编码")
g.VGroups.AddDef("仓库名称")
g.Totals.AddDef("入库数量", "入库数量")
g.HorizontalTotal = True
g.VerticalTotal = True
g.Filter = "[仓库名称] <> \'购入\'"
g.Build()
MainTable = Tables("统计表1")

[此贴子已经被作者于2021/9/8 9:22:55编辑过]

--  作者:有点蓝
--  发布时间:2021/9/8 8:37:00
--  
麻烦以后发代码不要发带行号的,像下面这样直接发即可。

无法直接统计,要另外使用代码处理:
Dim g As New CrossTableBuilder("统计表1", DataTables("库存变化表"))
g.HGroups.AddDef("物资编码")
g.VGroups.AddDef("仓库名称")
g.Totals.AddDef("入库数量", "入库数量")
g.HorizontalTotal = True
g.VerticalTotal = True
g.Filter = "[仓库名称] <> \'购入\'"
g.Build()
MainTable = Tables("统计表1")
DataTables("统计表1").DataCols.Add("最近库存变化时刻", Gettype(Date))
For Each r As Row In Tables("统计表1").Rows
    If r("物资编码") <> "合计" Then
        r("最近库存变化时刻") = DataTables("库存变化表").Compute("max(库存变化时刻)","物资编码=\'" & r("物资编码") & "\'")
    End If
Next

--  作者:wfkbabro
--  发布时间:2021/9/8 9:24:00
--  
谢谢版主!
--  作者:客人
--  发布时间:2021/9/8 15:55:00
--  
谢谢版主,补充:
解决方案
g.HGroups.AddExp("最近修改时刻","{库存变化结果表}.[修改时刻]",AggregateEnum.Max)
新问题:
Dim g As New SQLCrossTableBuilder("分仓统计含合计","库存变化结果表")
  \'g.HGroups.AddDef("{物资表}.备注") \'显示出来整列是乱码
g.HGroups.AddExp("备注","{物资表}.[备注]+""""") ’用表达式列加上空格后不是乱码了。

--  作者:有点蓝
--  发布时间:2021/9/8 16:10:00
--  
可能是数据库设置的原因