以文本方式查看主题
- Foxtable(狐表) (http://foxtable.net/bbs/index.asp)
-- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2)
---- 关于统计列的问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=78302)
|
-- 作者:lgj716330
-- 发布时间:2015/12/6 20:05:00
-- 关于统计列的问题
Dim t As Table = Tables("订单") Dim g As SubtotalGroup t.SubtotalGroups.Clear() \'定义客户分组 g = New SubtotalGroup \'定义一个新的分组 g.Aggregate = AggregateEnum.Sum \'统计类型为求和 g.GroupOn = "客户" \'分组列为客户 g.TotalOn = "数量,金额" \'统计数量和金额列 g.Caption = "{0} 小计" \'设置标题 t.SubtotalGroups.Add(g) \'加到分组集合中
g.TotalOn = "数量,金额",如果这里的列的数量很多,而且不是固定的,没法直接指定,该如何表示呢
|
-- 作者:lgj716330
-- 发布时间:2015/12/6 20:16:00
--
就是希望通过窗口筛选查询后,结果仍能保持汇总模式,列少的话指定列可以弄,列多且不固定的时候就不知道怎么弄了 此主题相关图片如下:11.jpg
|
-- 作者:大红袍
-- 发布时间:2015/12/6 21:58:00
--
Dim cs As String = "" For Each c As Col In Tables("订单").cols If c.Visible AndAlso c.IsNumeric Then cs &= c.name & "," End If Next g.TotalOn = cs.trim(",")
|
-- 作者:lgj716330
-- 发布时间:2015/12/6 22:45:00
--
OK,搞定了,谢谢大红袍。今天又解决了两个大问题这个代码还不是很明白,再好好消化一下
|
-- 作者:lgj716330
-- 发布时间:2015/12/7 11:34:00
--
今天又碰到一个问题,如图所示,交叉统计的时候,”科目名称”作为垂直分组列,“借方发生”为统计列,我增加了一个表达式列“利润”,利润=主营业务收入-主营业务成本-销售费用-财务费用+营业外收入,但代码里的列名是用“借方发生_5”这样的形式表示的,但当我新增一个科目的时候,发现原来的“借方发生_5”变成了“借方发生_4”或其他,利润的计算结果就出错了,如何获取固定的列名呢 此主题相关图片如下:123.jpg
|
-- 作者:大红袍
-- 发布时间:2015/12/7 11:44:00
--
循环每一列,把标题和列名存储在字典里,然后引用
Dim dic As new Dictionary(of String, String) For Each c As Col In Tables("表A").cols dic.add(c.Caption, c.name) Next
msgbox(dic("第五列"))
|
-- 作者:lgj716330
-- 发布时间:2015/12/7 11:50:00
--
好,先研究一下
|
-- 作者:lgj716330
-- 发布时间:2015/12/7 22:23:00
--
以下是引用大红袍在2015/12/7 11:44:00的发言:
循环每一列,把标题和列名存储在字典里,然后引用
Dim dic As new Dictionary(of String, String) For Each c As Col In Tables("表A").cols dic.add(c.Caption, c.name) Next
msgbox(dic("第五列"))
不好意思,可能是我不知如何引用,发现通过上述代码处理后引用列名,我的原表数据改变后,统计表的列名还是会变 此主题相关图片如下:11.jpg
此主题相关图片如下:22.jpg
|
-- 作者:大红袍
-- 发布时间:2015/12/7 22:27:00
--
哪里需要某列的列名,就直接写
dic("标题名")
|
-- 作者:lgj716330
-- 发布时间:2015/12/8 9:54:00
--
以下是引用大红袍在2015/12/7 22:27:00的发言:
哪里需要某列的列名,就直接写
dic("标题名")
偿试了各种方法,总是有错误提示,有点晕了
[此贴子已经被作者于2015/12/8 10:05:40编辑过]
|