以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 【求助】怎么按日期生成按年月份数据 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=110730) |
-- 作者:李孝春 -- 发布时间:2017/12/8 11:49:00 -- 【求助】怎么按日期生成按年月份数据 【求助】怎么按日期生成按年月份数据 有订单明细表 内有订单编号 总额 发货价 利润 订单日期 订单门店 字段 有投入产出表 内有门店名称 投入 产出 利润 日期 年 月 字段 怎么将订单主表中的数据 按照年 月进行汇总到投入产出表呢? 总额 = 产出 发货价 = 投入 利润 = 利润 订单门店=门店名称
[此贴子已经被作者于2017/12/8 11:56:18编辑过]
|
-- 作者:有点甜 -- 发布时间:2017/12/8 11:53:00 -- 1、可以用分组统计;计算出结果,再导入产出表
http://www.foxtable.com/webhelp/scr/0158.htm
2、参考
http://www.foxtable.com/webhelp/scr/0681.htm
|
-- 作者:李孝春 -- 发布时间:2017/12/8 12:09:00 -- 回复:(有点甜)1、可以用分组统计;计算出结果,再导... 有点甜老师 下述代码可以实现除了年月生成 请问怎么生成对于年月呢? 不是把订单日期生成年月哦 是统计比如2017年11月份全部的数据 只生成一行 那么年就是2017 月份就是11 Dim dtb As New DataTableBuilder("统计") dtb.AddDef("订单门店", Gettype(String), 32) dtb.AddDef("投入", Gettype(Integer)) dtb.AddDef("产出", Gettype(Double)) dtb.AddDef("利润", Gettype(Double)) dtb.AddDef("年", Gettype(String), 6) dtb.AddDef("月", Gettype(String), 6) dtb.Build() For Each nm As String In DataTables("订单明细").GetValues("订单门店") Dim dr As DataRow = DataTables("统计").AddNew() dr("订单门店") = nm dr("投入") = DataTables("订单明细").Compute("Sum(发货价)","[订单门店] = \'" & dr("订单门店") & "\'") dr("产出") = DataTables("订单明细").Compute("Sum(总额)","[订单门店] = \'" & dr("订单门店") & "\'") dr("利润") = DataTables("订单明细").Compute("Sum(利润)","[订单门店] = \'" & dr("订单门店") & "\'") Next MainTable= Tables("统计") |
-- 作者:有点甜 -- 发布时间:2017/12/8 12:23:00 -- 你的年月根据什么生成的?直接赋值不行?
For Each nm As String In DataTables("订单明细").GetValues("订单门店")
Dim dr As DataRow = DataTables("统计").AddNew()
dr("订单门店") = nm
dr("投入") = DataTables("订单明细").Compute("Sum(发货价)","[订单门店] = \'" & dr("订单门店") & "\'")
dr("产出") = DataTables("订单明细").Compute("Sum(总额)","[订单门店] = \'" & dr("订单门店") & "\'")
dr("利润") = DataTables("订单明细").Compute("Sum(利润)","[订单门店] = \'" & dr("订单门店") & "\'")
dr("年") = 2017
dr("月") = 11
Next
|
-- 作者:李孝春 -- 发布时间:2017/12/8 12:32:00 -- 回复:(有点甜)你的年月根据什么生成的?直接赋值不... 不行哦 是根据订单日期 生成 想统计的就是某年某月的总数据 比如2017年11月各个门店的数据
|
-- 作者:有点甜 -- 发布时间:2017/12/8 14:28:00 -- 直接用分组统计,就可以了的啊
http://www.foxtable.com/webhelp/scr/0158.htm
http://www.foxtable.com/webhelp/scr/0677.htm
|
-- 作者:李孝春 -- 发布时间:2017/12/8 15:58:00 -- 回复:(有点甜)直接用分组统计,就可以了的啊&nbs... 有点甜老师已经按照下面代码实现如图效果 Dim dtb As New GroupTableBuilder("统计",DataTables("订单明细"),"订单门店=\'艾依格店\'") dtb.Groups.AddDef("订单日期", DateGroupEnum.Year, "年") \'添加日期列用于分组,并用"年"代替原名称 dtb.Groups.AddDef("订单日期","月") dtb.Groups.AddDef("订单门店") dtb.Totals.AddDef("发货价","投入") dtb.Totals.AddDef("总额","产出") dtb.Totals.AddDef("利润") dtb.Subtotal=True dtb.SamePeriodGrowth=True dtb.VerticalTotal=True dtb.GrandProportion=True dtb.GroupProportion=True dtb.CircleGrowth=True dtb.Build() Dim 变量名 As WinForm.Table = e.Form.Controls("Table1") 变量名.Table.DataSource = dtb.BuildDataSource() 变量名.Table.AutoSizeCols() 现在怎么生成如下图图标呢? 下面的原来的代码 Dim g As new GroupTableBuilder("统计表1",DataTables("投入产出")) g.Groups.AddDef("月份") g.Totals.AddDef("投入") g.Totals.AddDef("产出") g.Totals.AddDef("利润") g.filter = "门店名称 = \'艾依格店\'" Dim dt As DataTable = g.Build(True) Dim Chart As WinForm.Chart \'定义一个图表变量 Dim Series As WinForm.ChartSeries \'定义一个图系变量 Chart = e.Form.Controls("Chart3") \' 引用窗口中的图表 Chart.ChartType = ChartTypeEnum.Bar \'图表类型改为Bar(条形) Chart.SeriesList.Clear() \'清除图表原来的图系 Dim cls() As String = {"投入","产出","利润"} For Each c As String In cls Series = Chart.SeriesList.Add() \'增加一个图系 Series.Text = c \'设置图系的标题 Series.Length = 13 \'设置图系的长度 For r As Integer = 0 To 12 Series.X(r) = r Series.Y(r) = 0 Next For i As Integer = 0 To dt.dataRows.Count - 1 Series.Y(dt.dataRows(i)("月份")) = dt.dataRows(i)(c) Next Series.DataLabelText = c & "{#YVAL}" Series.DataLabelConnected=True Series.TooltipText = "艾依格店" & c & "{#XVAL}月, {#YVAL}元" Next Chart.VisualEffect = True \'加上这一行,让你的图表更漂亮 Chart.LegendVisible = True \'显示图列 Chart.LegendCompass= CompassEnum.South 麻烦修正一下 谢谢! |
-- 作者:有点甜 -- 发布时间:2017/12/8 16:03:00 -- 执行上面的代码,报什么错了吗?或者得到的效果有什么区别了吗?
你只需要把表名改一下、把列名改一下即可。 |