Foxtable(狐表)用户栏目专家坐堂 → 【求助】怎么按日期生成按年月份数据


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

主题:【求助】怎么按日期生成按年月份数据

帅哥哟,离线,有人找我吗?
李孝春
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
【求助】怎么按日期生成按年月份数据  发帖心情 Post By:2017/12/8 11:49:00 [只看该作者]


【求助】怎么按日期生成按年月份数据
有订单明细表   内有订单编号  总额  发货价  利润 订单日期 订单门店 字段
有投入产出表  内有门店名称  投入  产出   利润    日期   年   月  字段
怎么将订单主表中的数据 按照年 月进行汇总到投入产出表呢?
总额 = 产出
发货价 = 投入
利润 = 利润
订单门店=门店名称

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

图片点击可在新窗口打开查看此主题相关图片如下:22.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2017/12/8 11:56:18编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/12/8 11:53:00 [只看该作者]

1、可以用分组统计;计算出结果,再导入产出表

 

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

 

2、参考

 

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

 


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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(有点甜)1、可以用分组统计;计算出结果,再导...  发帖心情 Post By:2017/12/8 12:09:00 [只看该作者]

有点甜老师  下述代码可以实现除了年月生成  请问怎么生成对于年月呢?
不是把订单日期生成年月哦   是统计比如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("统计")

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


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By: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

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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(有点甜)你的年月根据什么生成的?直接赋值不...  发帖心情 Post By:2017/12/8 12:32:00 [只看该作者]

不行哦  是根据订单日期 生成
想统计的就是某年某月的总数据
比如2017年11月各个门店的数据

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/12/8 14:28:00 [只看该作者]


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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(有点甜)直接用分组统计,就可以了的啊&nbs...  发帖心情 Post By:2017/12/8 15:58:00 [只看该作者]

有点甜老师已经按照下面代码实现如图效果
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()

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

现在怎么生成如下图图标呢?

图片点击可在新窗口打开查看此主题相关图片如下:112.png
图片点击可在新窗口打开查看
下面的原来的代码
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

麻烦修正一下 谢谢!


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/12/8 16:03:00 [只看该作者]

执行上面的代码,报什么错了吗?或者得到的效果有什么区别了吗?

 

你只需要把表名改一下、把列名改一下即可。


 回到顶部