以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]分组统计  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=50344)

--  作者:wyz20130512
--  发布时间:2014/5/5 11:23:00
--  [求助]分组统计

单位采购货物后,一般是几个月后一次付款给供货商货款.比喻2014.01.25至2014.04.15为结算时段,

 

那么分组汇总后(按日汇总),在新生成的汇总表中,日期列中显示的是日期中的"天的数值",如何显示为真的日期值呢?

 

请指点.


--  作者:有点甜
--  发布时间:2014/5/5 11:30:00
--  

 不能显示为真的日期值。

 

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


--  作者:wyz20130512
--  发布时间:2014/5/5 11:37:00
--  回复:(有点甜)?不能显示为真的日期值。&nbs...

我说的是按日汇总后,新的统计表中如何显示日期的全值,如:2014-01-25,而不是显示25

 

如: 1月25日有付款, 2月25日也有付款,表中显示同为25, 若能全显,如2014-01-25和2014-01-25显示就更好了.

 

请指点.

[此贴子已经被作者于2014-5-5 11:42:42编辑过]

--  作者:有点甜
--  发布时间:2014/5/5 12:11:00
--  

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

 

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

 

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


--  作者:wyz20130512
--  发布时间:2014/5/5 13:32:00
--  回复:(有点甜) 按日分组以后,无法显示出具体...
老师您给看看,为了处理工常工作,我自己做了一个"日常工作"窗体,其中有的一"阶段报账汇总".还是比方要得到2013.01.25至2014.02.10的数据汇总,如何处理上述问题?请老师指点.谢谢! 详见附件.
--  作者:Bin
--  发布时间:2014/5/5 14:01:00
--  

上传图片和文件参考这里http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=78


请尽量使用IE,谷歌,火狐等主流浏览器上传.  

使用谷歌浏览器必须要先输入一个以上的字符

上传后需要等文件代码出现才算成功!

--  作者:wyz20130512
--  发布时间:2014/5/5 17:25:00
--  

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:物资采购.zip

老师您给看看,为了处理工常工作,我自己做了一个"日常工作"窗体,其中有一"阶段报账汇总".还是比方要得到2013.01.25至2014.02.10的数据汇总,如何处理上述问题?请老师指点.谢谢! 详见附件.


--  作者:有点甜
--  发布时间:2014/5/5 17:36:00
--  
 密码多少?
--  作者:wyz20130512
--  发布时间:2014/5/5 20:06:00
--  
 不好意思,密码:z8x10y16
--  作者:有点甜
--  发布时间: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()