以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  统计表问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=68455)

--  作者:utcxray
--  发布时间:2015/5/18 14:38:00
--  统计表问题
Dim d As Date = new Date(Date.Today.year, 1, 1)
Dim b As New SQLCrossTableBuilder("统计表3","采购明细")
b.C

b.HGroups.AddDef("供应商") \'添加客户列用于水平分组
b.vGroups.AddDef("账期",DateGroupEnum.Year,"{0}年") \'添加日期列用于垂直分组,按年分组
b.vGroups.AddDef("账期","{0}月") \'添加日期列用于垂直分组
b.Totals.AddExp("应付","数量 * 单价")
b.Totals.AddExp("已付","付款")
b.Totals.AddExp("未付","数量 * 单价 - IsNull(付款, 0)",True)
b.Subtotal = True \'生成汇总模式
b.VerticalTotal= True
b.HorizontalTotal = True
b.filter="账期 >= \'" & d & "\' and 账期 < \'" & d.AddYears(1) & "\'"
Tables("应付分析_Table1").DataSource = b.BuildDataSource()
With Tables("应付分析_Table1")
.autosizeCols()
End With
CurrentTable.Cols.Frozen = 2

以上代码生成本年的应付、未付统计表,我想将历史的应付、未付作为期初加入该统计表,请指点!

--  作者:大红袍
--  发布时间:2015/5/18 15:06:00
--  

 生成表以后,动态添加列,循环每一行去统计;


--  作者:大红袍
--  发布时间:2015/5/18 15:08:00
--  
 如果历史的应付、未付要在交叉统计中生成,请上传具体例子,且做出一个大致的效果图
--  作者:utcxray
--  发布时间:2015/5/18 15:18:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:无标题.png
图片点击可在新窗口打开查看
1楼代码生成结果如图,想再最左边加期初,最右边的合计数字是期初+本年数字
[此贴子已经被作者于2015/5/18 15:19:17编辑过]

--  作者:大红袍
--  发布时间:2015/5/18 15:21:00
--  
生成表以后,动态添加列,循环每一行去统计
--  作者:utcxray
--  发布时间:2015/5/18 18:19:00
--  
看了帮助
方案1
With DataTables("应付分析_Table1").DataCols

.Add("期初_应付",Gettype(Double))

End With

这个语句可以往统计表中添加列期初列,期初的应付、未付如何写?

方案2
用COMBINE。
再试试
[此贴子已经被作者于2015/5/18 18:20:28编辑过]

--  作者:大红袍
--  发布时间:2015/5/18 19:10:00
--  
 添加完列以后,直接循环每一行,统计数据,然后赋值给列就行啊