以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  怎样做到附件中一样的统计  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=102817)

--  作者:xywl
--  发布时间:2017/6/26 13:53:00
--  怎样做到附件中一样的统计

帮忙看看这个附件。我想实现附件中一样的的统计效果该怎样实现!

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:示例.xlsx

我现在用的代码是这样的:


 

Dim lbl3,lbl4 As WinForm.DateTimePicker
lbl3 = e.Form.Controls("DateTimePicker3")
lbl4 = e.Form.Controls("DateTimePicker4")
    e.Form.Controls("打印预览").Enabled = False
    e.Form.Controls("直接打印").Enabled = False
Dim   bd1 As  New  GroupTableBuilder("统计表1",DataTables("商品库存"))
Dim  dt1 As   fxDataSource
 bd1.Groups.AddDef("Item")  \'根据型号分组
bd1.Groups.AddDef("EnglishDescription")  \'根据型号分组
bd1.Groups.AddDef("ChineseDescription")  \'根据型号分组
bd1.Groups.AddDef("EnglishBrand")  \'根据型号分组
bd1.Groups.AddDef("ChineseBrand")  \'根据型号分组
bd1.Groups.AddDef("ItemCategory")  \'根据型号分组
dt1 =   bd1.BuildDataSource()

Dim  bd2 As  New   GroupTableBuilder("统计表2",DataTables("出入记录"))
bd2.Filter = "[作业时间] >= # " & lbl3.value & "# and [作业时间] <= # " & lbl4.value & " #  and 操作类型 = \'入库\'"
Dim  dt2  As   fxDataSource
 bd2.Groups.AddDef("货品编号")  \'根据型号分组
bd2.Totals.AddDef("数量","入库_数量")  \'对数量进行统计
dt2 =   bd2.BuildDataSource()

Dim  bd3 As  New   GroupTableBuilder("统计表3",DataTables("出入记录"))
bd3.Filter = "[作业时间] >= # " & lbl3.value & "# and [作业时间] <= # " & lbl4.value & " #  and 操作类型 = \'出库\'"
Dim  dt3  As   fxDataSource
bd3.Groups.AddDef("货品编号")  \'根据型号分组
bd3.Totals.AddDef("数量","出库_数量")  \'对数量进行统计
dt3 =   bd3.BuildDataSource()

dt1.Combine("Item",dt2,"货品编号")  \'将销售统计数据组合到进货统计数据
dt1.Combine("Item",dt3,"货品编号")  \'将退货统计数据组合到进货统计数据
e.Form.Controls("提示").text = "日报表统计"
Tables("报表统计_Table1").DataSource =   dt1  \'将统计结果绑定到Table

 

效果是:

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:日报表统计.xls

 请问我要怎样改才能像附件一一样的效果!
--  作者:有点色
--  发布时间:2017/6/26 14:46:00
--  

 你要做的是交叉统计吧?根据日期?

 

http://www.foxtable.com/webhelp/scr/0165.htm

 

 http://www.foxtable.com/webhelp/scr/0678.htm

 


--  作者:xywl
--  发布时间:2017/6/26 16:54:00
--  


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

想在组合统计的基础上做到这样类似于交叉统计的效果 ,就是该商品在所选统计月哪一天入库哪一天出库了,是一整个月日期都列出,然后在发生变化的日期in或者out写上相应的数据。


--  作者:有点色
--  发布时间:2017/6/26 17:00:00
--  

 做个对应的foxtable项目发上来。


--  作者:有点色
--  发布时间:2017/6/26 17:03:00
--  

你生成组合统计以后,再进行一次交叉统计不就好了?


--  作者:xywl
--  发布时间:2017/6/27 16:50:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.rar

没弄明白,只能请教大伙了
--  作者:有点色
--  发布时间:2017/6/27 18:18:00
--  

参考代码

 

Dim lbl3,lbl4 As WinForm.DateTimePicker
lbl3 = e.Form.Controls("DateTimePicker3")
lbl4 = e.Form.Controls("DateTimePicker4")
e.Form.Controls("打印预览").Enabled = False
e.Form.Controls("直接打印").Enabled = False
Dim   bd1 As  New  GroupTableBuilder("统计表1",DataTables("商品库存"))
Dim  dt1 As   fxDataSource
bd1.Groups.AddDef("Item")  \'根据型号分组
bd1.Groups.AddDef("EnglishDescription")  \'根据型号分组
bd1.Groups.AddDef("ChineseDescription")  \'根据型号分组
bd1.Groups.AddDef("EnglishBrand")  \'根据型号分组
bd1.Groups.AddDef("ChineseBrand")  \'根据型号分组
bd1.Groups.AddDef("ItemCategory")  \'根据型号分组
dt1 =   bd1.BuildDataSource()

Dim  bd2 As  New   GroupTableBuilder("统计表2",DataTables("出入记录"))
bd2.Filter = "[作业时间] >= # " & lbl3.value & "# and [作业时间] <= # " & lbl4.value & " #  and 操作类型 = \'入库\'"
Dim  dt2  As   fxDataSource
bd2.Groups.AddDef("货品编号")  \'根据型号分组
bd2.Totals.AddDef("数量","入库_数量")  \'对数量进行统计
dt2 =   bd2.BuildDataSource()

Dim  bd3 As  New   GroupTableBuilder("统计表3",DataTables("出入记录"))
bd3.Filter = "[作业时间] >= # " & lbl3.value & "# and [作业时间] <= # " & lbl4.value & " #  and 操作类型 = \'出库\'"
Dim  dt3  As   fxDataSource
bd3.Groups.AddDef("货品编号")  \'根据型号分组
bd3.Totals.AddDef("数量","出库_数量")  \'对数量进行统计
dt3 =   bd3.BuildDataSource()

dt1.Combine("Item",dt2,"货品编号")  \'将销售统计数据组合到进货统计数据
dt1.Combine("Item",dt3,"货品编号")  \'将退货统计数据组合到进货统计数据
e.Form.Controls("提示").text = "日报表统计"
Tables("报表统计_Table1").DataSource =   dt1  \'将统计结果绑定到Table
Dim t As Table = Tables("报表统计_Table1")
Dim d As Date = lbl3.Value
t.StopRedraw
Do While d <= lbl4.Value
    t.DataTable.DataCols.Add(d & "_in", Gettype(Double))
    t.DataTable.DataCols.Add(d & "_out", Gettype(Double))
    For Each r As Row In t.Rows
        Dim filter As String = "作业时间 = #" & d & "# and 货品编号 = \'" & r("item") & "\'"
        r(d & "_in") = DataTables("出入记录").Compute("sum(数量)", filter & " and 操作类型 = \'入库\'")
        r(d & "_out") = DataTables("出入记录").Compute("sum(数量)", filter & " and 操作类型 = \'出库\'")
    Next
    d = d.AddDays(1)
Loop
t.ResumeRedraw


--  作者:xywl
--  发布时间:2017/6/28 15:54:00
--  

不胜感激!


--  作者:xywl
--  发布时间:2017/6/29 11:35:00
--  

这个模板要怎样改才能有后面的


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

--  作者:xywl
--  发布时间:2017/6/29 11:43:00
--  

我这么改是不行的,后面要写什么 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:日报表统计.xls