以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]统计表的疑问,请大侠帮助 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=24856) |
||||
-- 作者:sunbrain -- 发布时间:2012/10/25 1:02:00 -- [求助]统计表的疑问,请大侠帮助 对统计表琢磨了很久,最近才有点眉目,发现需要做成什么样子,先做好,再依照葫芦画瓢那样会好些。 现在我有个问题: Dim b As New CrossTableBuilder("统计表3",DataTables("产品表"))
这个图中,进货日期列,全部变成了数字(似乎是月份,我是按照日期统计的),不知道怎么更正,这个是问题一。 我希望大类别那里能进行合并,这个怎么更改呢?谢谢
我希望做成的结果是这样的
|
||||
-- 作者:sunbrain -- 发布时间:2012/10/25 1:03:00 -- 这个是我做的源文件,希望大家帮助一下我,谢谢
|
||||
-- 作者:lin_hailun -- 发布时间:2012/10/25 9:17:00 -- 只能够在生产报表以后再对表头进行处理了,楼主,代码如下。 Dim g As New CrossTableBuilder("统计表", DataTables("产品表")) g.HGroups.AddDef("大类别") g.HGroups.AddDef("小类别") g.VGroups.AddDef("进货日期", DateGroupEnum.Year, "{0}年") g.VGroups.AddDef("进货日期", "{0}月") g.Totals.AddDef("进价小计", "进价小计") g.Totals.AddDef("售价小计", "售价小计") g.Totals.AddDef("数量", "数量") g.Build() With DataTables("统计表") For Each dc As DataCol In .DataCols If dc.Caption Like "####年_*" Then dc.Caption = dc.Caption.SubString(0, 5) & dc.Caption.SubString(6) End If Next .BuildHeader() End With MainTable = Tables("统计表") |
||||
-- 作者:sunbrain -- 发布时间:2012/10/25 10:54:00 -- 以下是引用muhua在2012-10-25 9:00:00的发言:
交叉汇总,代码在项目事件的 AfterOpenProject 中。 muhua老师: 您做的这个确实实现了按进货日期进行统计的结果。但是仍有两个问题没有解决,表头需要重新进行处理;另外大类别也需要进行合并处理; 还是非常感谢您的指导。 |
||||
-- 作者:sunbrain -- 发布时间:2012/10/25 10:57:00 -- 以下是引用lin_hailun在2012-10-25 9:17:00的发言:
只能够在生产报表以后再对表头进行处理了,楼主,代码如下。 Dim g As New CrossTableBuilder("统计表", DataTables("产品表")) g.HGroups.AddDef("大类别") g.HGroups.AddDef("小类别") g.VGroups.AddDef("进货日期", DateGroupEnum.Year, "{0}年") g.VGroups.AddDef("进货日期", "{0}月") g.Totals.AddDef("进价小计", "进价小计") g.Totals.AddDef("售价小计", "售价小计") g.Totals.AddDef("数量", "数量") g.Build() With DataTables("统计表") For Each dc As DataCol In .DataCols If dc.Caption Like "####年_*" Then dc.Caption = dc.Caption.SubString(0, 5) & dc.Caption.SubString(6) End If Next .BuildHeader() End With MainTable = Tables("统计表") lin_hailun老师:您的方法思路很好,但是有一个问题是按照进货日期,而不是按照进货日期的月份进行统计的。
另外如何把大类别也进行合并呢?
非常感谢
|
||||
-- 作者:sunbrain -- 发布时间:2012/10/25 11:17:00 -- 综合两位老师的结果,我改了muhua的代码,对统计结果进行表头处理: With DataTables("统计表2") MainTable = Tables("统计表2")
对 If dc.Caption Like "####年_*" Then [此贴子已经被作者于2012-10-25 11:17:50编辑过]
|
||||
-- 作者:lin_hailun -- 发布时间:2012/10/25 11:45:00 -- 统计,处理,再设置。 Dim g As New CrossTableBuilder("统计表", DataTables("产品表")) g.HGroups.AddDef("大类别") g.HGroups.AddDef("小类别") g.VGroups.AddDef("进货日期", DateGroupEnum.Year, "{0}年") g.VGroups.AddDef("进货日期", "{0}月") g.VGroups.AddDef("进货日期", "{0}日") g.Totals.AddDef("进价小计", "进价小计") g.Totals.AddDef("售价小计", "售价小计") g.Totals.AddDef("数量", "数量") g.Build() With DataTables("统计表") For Each dc As DataCol In .DataCols If dc.Caption Like "####年_*" Then Dim idx As Integer = dc.Caption.IndexOf("月") dc.Caption = dc.Caption.SubString(0, 5) & dc.Caption.SubString(6, idx-5) & dc.Caption.SubString(idx+2) End If Next .BuildHeader() End With With Tables("统计表") .MergeMode = MergeModeEnum.Standard .MergeCols.Add("大类别") .MergeCols.Add("小类别") .AllowMerge = True End With |
||||
-- 作者:sunbrain -- 发布时间:2012/10/25 20:40:00 -- lin_hailun:感谢您! 根据您提供的方法,有个小问题还没有解决。 进货时间是这样的 多层表头出来应该是按照日期分的,而现在日期的取值出现了错误,现在不知道怎么修改,还请帮助,谢谢
此主题相关图片如下:02.jpg |
||||
-- 作者:lin_hailun -- 发布时间:2012/10/26 9:31:00 -- 呵呵,是汇总代码写错了。 Dim g As New CrossTableBuilder("统计表", DataTables("产品表")) g.HGroups.AddDef("大类别") g.HGroups.AddDef("小类别") g.VGroups.AddDef("进货日期", DateGroupEnum.Year, "{0}年") g.VGroups.AddDef("进货日期", "{0}月") g.VGroups.AddDef("进货日期", DateGroupEnum.Day, "{0}日") g.Totals.AddDef("进价小计", "进价小计") g.Totals.AddDef("售价小计", "售价小计") g.Totals.AddDef("数量", "数量") g.Build() With DataTables("统计表") For Each dc As DataCol In .DataCols If dc.Caption Like "####年_*" Then Dim idx As Integer = dc.Caption.IndexOf("月") dc.Caption = dc.Caption.SubString(0, 5) & dc.Caption.SubString(6, idx-5) & dc.Caption.SubString(idx+2) End If Next .BuildHeader() End With With Tables("统计表") .MergeMode = MergeModeEnum.Standard .MergeCols.Add("大类别") .MergeCols.Add("小类别") .AllowMerge = True End With [此贴子已经被作者于2012-10-26 9:32:00编辑过]
|
||||
-- 作者:sunbrain -- 发布时间:2012/10/26 10:59:00 -- 很感谢您的帮助,问题解决了。 实话说,这部分确实比较困难,帮助文件中也比较含糊,只能暂时套用了。 遇到难的再啃这部分吧
|