Foxtable(狐表)用户栏目专家坐堂 → 对交叉统计进行合计 有个问题需要请教?


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

主题:对交叉统计进行合计 有个问题需要请教?

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


加好友 发短信
等级:九尾狐 帖子:2552 积分:20057 威望:0 精华:0 注册:2012/5/19 11:57:00
对交叉统计进行合计 有个问题需要请教?  发帖心情 Post By:2015/3/22 15:08:00 [只看该作者]

由于合计统计需要指定合计统计的字段名称,对于交叉统计得出的表 统计的字段存在变数 ,如何对它进行合计统计?

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


加好友 发短信
等级:九尾狐 帖子:2552 积分:20057 威望:0 精华:0 注册:2012/5/19 11:57:00
  发帖心情 Post By:2015/3/22 15:09:00 [只看该作者]

我指的是用代码

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/3/22 15:10:00 [只看该作者]

 循环所有的列,判断他们的属性caption或者判断列的类型IsNumeric

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


加好友 发短信
等级:九尾狐 帖子:2552 积分:20057 威望:0 精华:0 注册:2012/5/19 11:57:00
  发帖心情 Post By:2015/3/22 17:22:00 [只看该作者]

我有个项目 如何实现如下图统计结果

 

 


图片点击可在新窗口打开查看此主题相关图片如下:qq图片20150322171656.jpg
图片点击可在新窗口打开查看

 

 

项目如下


 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目41.rar


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


加好友 发短信
等级:九尾狐 帖子:2552 积分:20057 威望:0 精华:0 注册:2012/5/19 11:57:00
  发帖心情 Post By:2015/3/22 17:38:00 [只看该作者]

我先用交叉统计 然后用合计模式 实现了如下结果

 


图片点击可在新窗口打开查看此主题相关图片如下:qq图片20150322173333.jpg
图片点击可在新窗口打开查看

 

 

现在我要求是 1. 把相同款型的排在一条记录上 2.用代码如何实现 我现在是在界面上直接操作的


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/3/22 17:39:00 [只看该作者]

Dim g As New CrossTableBuilder("统计表1", DataTables("jgd"))
g.HGroups.AddDef("加工单号")
g.HGroups.AddDef("客户名称")
g.HGroups.AddDef("件重")
g.VGroups.AddDef("加工日期", DateGroupEnum.Day, "{0}日")
g.Totals.AddDef("件数")
g.Build()

Dim dt As DataTable = DataTables("统计表1")
Dim count As Integer = dt.DataCols.Count - 3
Dim bds As String = ""
For i As Integer  = 1 To count
    bds &= "isnull(件数_" & i & ", 0)+"
Next
dt.DataCols.Add("件数_" & count + 1, Gettype(Integer), bds.Trim("+"), "月计数")
dt.DataCols.Add("件数_" & count + 2, Gettype(Double), "(" & bds.Trim("+") & ")*件重", "月重量")

For i As Integer  = 1 To count + 2
    Tables("统计表1").Cols("件数_" & i).GrandTotal = True
Next
Tables("统计表1").GrandTotal = True
MainTable = Tables("统计表1")


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


加好友 发短信
等级:九尾狐 帖子:2552 积分:20057 威望:0 精华:0 注册:2012/5/19 11:57:00
  发帖心情 Post By:2015/3/22 18:08:00 [只看该作者]

谢谢 可以了,现在是如何将这个表打印出来。如果导出到excel 合计数是没有的,如果excel 报表打印 字段的日期是动态的,怎么办 ,大师请教


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/3/22 18:16:00 [只看该作者]

Dim g As New CrossTableBuilder("统计表1", DataTables("jgd"))
g.HGroups.AddDef("加工单号")
g.HGroups.AddDef("客户名称")
g.HGroups.AddDef("件重")
g.VGroups.AddDef("加工日期", DateGroupEnum.Day, "{0}日")
g.Totals.AddDef("件数")
g.Build()

Dim dt As DataTable = DataTables("统计表1")
Dim count As Integer = dt.DataCols.Count - 3

dt.DataCols.Add("件数_" & count + 1, Gettype(Integer), "", "月计数")
dt.DataCols.Add("件数_" & count + 2, Gettype(Double), "", "月重量")
For Each dr As DataRow In dt.DataRows
    Dim sum As Double = 0
    For i As Integer  = 1 To count
        sum += val(dr("件数_" & i))
    Next
    dr("件数_" & count + 1) = sum
    dr("件数_" & count + 2) = sum * dr("件重")
Next


Dim ndr As DataRow = dt.AddNew
ndr("客户名称") = "合计"
For i As Integer  = 1 To count + 2
    ndr("件数_" & i) = dt.Compute("sum(件数_" & i & ")")
Next
MainTable = Tables("统计表1")


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


加好友 发短信
等级:九尾狐 帖子:2552 积分:20057 威望:0 精华:0 注册:2012/5/19 11:57:00
  发帖心情 Post By:2015/3/22 20:24:00 [只看该作者]

谢谢 如果要弄成excel 报表打印,感觉漂亮些,但是日期是变动的 ,好像写代码有点困难 ,还望大师指点一下


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/3/22 20:28:00 [只看该作者]

 如果你要弄成excel报表,你就用代码生成模板啊,在对应的位置填上各个字段就行啊。

 

 http://www.foxtable.com/help/topics/1144.htm

 


 回到顶部
总数 41 1 2 3 4 5 下一页