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


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

主题:[求助]分组统计

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/5/5 11:30:00 [显示全部帖子]

 不能显示为真的日期值。

 

 你可以按 年、月、日 来分组汇总,这样日期就是唯一的了。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/5/5 12:11:00 [显示全部帖子]

 按日分组以后,无法显示出具体的日期的。

 

 要么按照 月、日 分组,要么生成以后特殊处理一下。

 

 如果要特殊处理,请上传例子。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/5/5 17:36:00 [显示全部帖子]

 密码多少?

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/5/5 20:31:00 [显示全部帖子]

按钮代码如下,红色为修改的。

 

'筛选指定起止日期且"供货渠道"不为空的数据行
'With Tables("hc")
    '.Filter = "[rq] >= #" & Vars("SD") & "# And [rq] <= #" & Vars("ED") & "# and [ghqd] Is Not Null"
'End With

'定义一个分组统计表生成器(分组汇总)
Dim g As New GroupTableBuilder("gyshjdhz", DataTables("hc"))
g.Caption = "供应商阶段汇总"
g.Groups.AddDef("gysh") '按供应商分组
g.Groups.AddDef("rq", DateGroupEnum.Day, "", "日") '供应商相同的情况下,再按日分组
g.Totals.AddDef("rkje")
g.Totals.AddDef("shje")
g.Totals.AddDef("zhfje")
g.Decimals = 2 '保留2位小数

'筛选指定起止日期且"供货渠道"不为空的数据行
g.Filter = "[rq] >= #" & Vars("SD") & "# And [rq] <= #" & Vars("ED") & "# And [ghqd] Is Not Null"
g.Build() '生成统计表

'生成以后,对日期进行加工处理
Tables("gyshjdhz").DataTable.DataCols.Add("rq2", Gettype(String), 255, "", "附加列")
For Each r As Row In Tables("gyshjdhz").Rows
    Dim d As Date = new Date(Vars("SD").Year, Vars("SD").Month, r("rq"))
    Dim str As String = ""
    Do While d <= vars("ED")
        If DataTables("hc").Find("rq = #" & d & "# and gysh = '" & r("gysh") & "'") IsNot Nothing Then
            str &= d & ","
        End If
        d = d.AddMonths(1)
    Loop
    r("rq2") = str.TrimEnd(",")
Next

MainTable = Tables("gyshjdhz") '打开生成的统计表
'MainTable.Select(0,0,MainTable.Rows.Count-1,MainTable.Cols.Count-1) '选定整张表(或在Excel模板文件中细节区的第一行<ENd>列加上<ALL>)

'根据现有的模板文件生成一个工作薄
Dim tmp As String = ProjectPath & "Attachments\供应商阶段汇总模板.xls"
Dim rpt As String = ProjectPath & "reports\供应商阶段汇总输出.xls"
Dim Book As New XLS.Book(tmp)
Book.Build() '生成细节区
Book.Save(rpt) '另存为Excel报表文件

'执行外部程序(打开工作簿)
Dim Proc As New Process
Proc.File = rpt
Proc.Start()


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/5/5 21:56:00 [显示全部帖子]

 回复11楼,你不是希望把所有月份有采购的日期都拿出来吗?

 

 那你希望要怎样的效果?


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/5/5 22:14:00 [显示全部帖子]

以下是引用wyz20130512在2014-5-5 22:11:00的发言:

我的本意是,对一某时段的不同的供货商进行一次性付款,(按日汇总支付金额)

而新生成的统计表只能显示相应日期的天的数值,不能显示相应的日期全值.

 

那你是不是想按照 年,月,日 分组去汇总数据?而不是你现在这样的按照 日 汇总?


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/5/5 22:17:00 [显示全部帖子]

以下是引用wyz20130512在2014-5-5 22:11:00的发言:

我的本意是,对一某时段的不同的供货商进行一次性付款,(按日汇总支付金额)

而新生成的统计表只能显示相应日期的天的数值,不能显示相应的日期全值.

 

你直接说最后你想要的结果是怎样的吧。

 

比如 输入什么日期,最后得到的数据的日期应该是怎样的。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/5/5 22:20:00 [显示全部帖子]

以下是引用wyz20130512在2014-5-5 22:19:00的发言:
是按日汇总,"附加列"显示"按日"汇总的日期值,不是多个值.

 

按日汇总的日期值?加入汇总的数据,对应的是多个月的日,怎么处理?


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/5/5 22:39:00 [显示全部帖子]

以下是引用wyz20130512在2014-5-5 22:34:00的发言:

怎么会是"多个月的日"呢?每个月的日是每个月的日.

 

比如: 陈某 1月23日,2月23日,3月23日都有采购,我要的是

 

日        附加列

23       2014-01-23

23       2014-02-23

23       2014-03-23

 

不知说明白了没.

 

那原先的按日统计,根本没有满足你的需求啊。

 

你需要按照 月 和 日 分组统计才对的。或者按照 年 月 日 分组统计。

 

你直接修改统计的代码就行了。不知我这样说,你明白了没有?

[此贴子已经被作者于2014-5-5 22:39:02编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/5/5 22:49:00 [显示全部帖子]

以下是引用客人(221.234.*.*)在2014-5-5 22:45:00的发言:

非常感谢老师耐心的指导,我再好好地看看您的代码.在此基础上修改看看.不懂的再请教您.

 

不是这个意思,我的意思是,你只需要在你原来的代码上改一下分组便可,不需要加入额外的代码

 

类似这样改

 

Dim g As New GroupTableBuilder("gyshjdhz", DataTables("hc"))
g.Caption = "供应商阶段汇总"

g.Groups.AddDef("rq", DateGroupEnum.Year, "年")
g.Groups.AddDef("rq", "月")
g.Groups.AddDef("rq", DateGroupEnum.Day, "日")

g.Groups.AddDef("gysh") '按供应商分组

g.Totals.AddDef("rkje")
g.Totals.AddDef("shje")
g.Totals.AddDef("zhfje")
g.Decimals = 2 '保留2位小数

'筛选指定起止日期且"供货渠道"不为空的数据行
g.Filter = "[rq] >= #" & Vars("SD") & "# And [rq] <= #" & Vars("ED") & "# And [ghqd] Is Not Null"
g.Build() '生成统计表


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