Foxtable(狐表)用户栏目专家坐堂 → 关于统计列的问题


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

主题:关于统计列的问题

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


加好友 发短信
等级:六尾狐 帖子:1387 积分:10693 威望:0 精华:0 注册:2013/11/8 15:27:00
关于统计列的问题  发帖心情 Post By: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
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1387 积分:10693 威望:0 精华:0 注册:2013/11/8 15:27:00
  发帖心情 Post By:2015/12/6 20:16:00 [只看该作者]

就是希望通过窗口筛选查询后,结果仍能保持汇总模式,列少的话指定列可以弄,列多且不固定的时候就不知道怎么弄了
图片点击可在新窗口打开查看此主题相关图片如下:11.jpg
图片点击可在新窗口打开查看

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By: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
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1387 积分:10693 威望:0 精华:0 注册:2013/11/8 15:27:00
  发帖心情 Post By:2015/12/6 22:45:00 [只看该作者]

OK,搞定了,谢谢大红袍。今天又解决了两个大问题
这个代码还不是很明白,再好好消化一下

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


加好友 发短信
等级:六尾狐 帖子:1387 积分:10693 威望:0 精华:0 注册:2013/11/8 15:27:00
  发帖心情 Post By:2015/12/7 11:34:00 [只看该作者]

今天又碰到一个问题,如图所示,交叉统计的时候,”科目名称”作为垂直分组列,“借方发生”为统计列,我增加了一个表达式列“利润”,利润=主营业务收入-主营业务成本-销售费用-财务费用+营业外收入,但代码里的列名是用“借方发生_5”这样的形式表示的,但当我新增一个科目的时候,发现原来的“借方发生_5”变成了“借方发生_4”或其他,利润的计算结果就出错了,如何获取固定的列名呢
图片点击可在新窗口打开查看此主题相关图片如下:123.jpg
图片点击可在新窗口打开查看

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By: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
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1387 积分:10693 威望:0 精华:0 注册:2013/11/8 15:27:00
  发帖心情 Post By:2015/12/7 11:50:00 [只看该作者]

好,先研究一下

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


加好友 发短信
等级:六尾狐 帖子:1387 积分:10693 威望:0 精华:0 注册:2013/11/8 15:27:00
  发帖心情 Post By: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
图片点击可在新窗口打开查看


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/12/7 22:27:00 [只看该作者]

哪里需要某列的列名,就直接写

 

dic("标题名")


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


加好友 发短信
等级:六尾狐 帖子:1387 积分:10693 威望:0 精华:0 注册:2013/11/8 15:27:00
  发帖心情 Post By:2015/12/8 9:54:00 [只看该作者]

以下是引用大红袍在2015/12/7 22:27:00的发言:

哪里需要某列的列名,就直接写

 

dic("标题名")


偿试了各种方法,总是有错误提示,有点晕了

[此贴子已经被作者于2015/12/8 10:05:40编辑过]

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