Foxtable(狐表)用户栏目专家坐堂 → 求助:通过列内容生成横向统计表


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

主题:求助:通过列内容生成横向统计表

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


加好友 发短信
等级:幼狐 帖子:180 积分:2123 威望:0 精华:0 注册:2016/11/9 19:13:00
求助:通过列内容生成横向统计表  发帖心情 Post By:2017/9/10 23:14:00 [只看该作者]

公司要做一个加班统计表,不知怎么设计了,要求如下:
1、根据日期内容生成横向的日期复合标题,(1-30或1-31)
2、末尾有一个汇总列。

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

具体示例数据我做了一个,求老师帮忙,谢谢!
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:tjdemo.foxdb




 回到顶部
帅哥,在线噢!
y2287958
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:4640 积分:33850 威望:0 精华:0 注册:2008/8/31 22:44:00
  发帖心情 Post By:2017/9/10 23:58:00 [只看该作者]

Dim bm As String = "统计表1"
Dim b As New SQLCrossTableBuilder(bm,"表A")
b.HGroups.AddDef("部门")
b.HGroups.AddDef("组别")
b.HGroups.AddDef("姓名")
b.VGroups.AddExp("日期","format(日期,'yyyy年m月_d')")
b.Totals.AddDef("工时")
b.HorizontalTotal = True
b.Build
Tables(bm).AutoSizeCols
MainTable = Tables(bm)
[此贴子已经被作者于2017/9/11 0:15:40编辑过]

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


加好友 发短信
等级:幼狐 帖子:180 积分:2123 威望:0 精华:0 注册:2016/11/9 19:13:00
  发帖心情 Post By:2017/9/11 0:31:00 [只看该作者]

感谢二楼老师,可是出现日期排序乱了,这个要怎么调整?

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


 回到顶部
帅哥,在线噢!
y2287958
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:4640 积分:33850 威望:0 精华:0 注册:2008/8/31 22:44:00
  发帖心情 Post By:2017/9/11 8:04:00 [只看该作者]

"format(日期,'yyyy年mm月_dd')")

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


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

Dim bm As String = "统计表1"
Dim b As New SQLCrossTableBuilder(bm,"表A")
b.HGroups.AddDef("部门")
b.HGroups.AddDef("组别")
b.HGroups.AddDef("姓名")
b.VGroups.AddExp("日期","format(日期,'yyyy年mm月_dd')")
b.Totals.AddDef("工时")
b.HorizontalTotal = True
b.Build
Tables(bm).AutoSizeCols
MainTable = Tables(bm)

 

或者

 

Dim g As New CrossTableBuilder("统计表2", DataTables("表A"))
g.HGroups.AddDef("部门")
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.HorizontalTotal = True
g.Build()
MainTable = Tables("统计表2")


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


加好友 发短信
等级:幼狐 帖子:180 积分:2123 威望:0 精华:0 注册:2016/11/9 19:13:00
  发帖心情 Post By:2017/9/11 9:25:00 [只看该作者]

谢谢!追问一下:SQLCrossTableBuilder 数据来源能不能用SQL语句来实现,而不是指定表名?
Dim bm As String = "统计表1"
Dim b As New SQLCrossTableBuilder(bm,"表A")     '这里的表A数据源能不能用SQL语句来实现
b.HGroups.AddDef("部门")
b.HGroups.AddDef("组别")
b.HGroups.AddDef("姓名")
b.VGroups.AddExp("日期","format(日期,'yyyy年m月_d')")
b.Totals.AddDef("工时")
b.HorizontalTotal = True
b.Build
Tables(bm).AutoSizeCols
MainTable = Tables(bm)


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


加好友 发短信
等级:幼狐 帖子:180 积分:2123 威望:0 精华:0 注册:2016/11/9 19:13:00
  发帖心情 Post By:2017/9/11 9:28:00 [只看该作者]

我现在用的是SQL语句查询出来的数据表,然后全部复制到一个固定的空表,然后通过调用空表的表名实现上面的结果,这个复制的过程有点慢,能不能直接调用SQL查询出来的数据,实现这个效果?

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


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


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


加好友 发短信
等级:幼狐 帖子:180 积分:2123 威望:0 精华:0 注册:2016/11/9 19:13:00
  发帖心情 Post By:2017/9/11 9:35:00 [只看该作者]

'用SQL语句生成临时表
Dim cmd As New SQLCommand
Dim dt As DataTable
'cmd.C
cmd.CommandText = "Select * FR OM {表A}"
dt = cmd.ExecuteReader()
'对临时进行分组统计
Dim b As New CrossTableBuilder("统计表1",dt)
b.HGroups.AddDef("部门")
b.HGroups.AddDef("组别")
b.HGroups.AddDef("姓名")
b.VGroups.AddExp("日期","format(日期,'yyyy年m月_d')")
B.Totals.AddDef("工时")
b.HorizontalTotal = True
Tables("窗口1_Table1").DataSource = b.BuildDataSource()

结果是这样的:

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


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


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

Dim sql As String = "select *, format(日期, 'yyyy年MM月_dd') As 新日期 from {表a}"
Dim g As New CrossTableBuilder("统计表2", sql)
g.HGroups.AddDef("部门")
g.HGroups.AddDef("组别")
g.HGroups.AddDef("姓名")
g.VGroups.AddDef("新日期")
g.Totals.AddDef("工时", "工时")
g.HorizontalTotal = True
g.Build()
MainTable = Tables("统计表2")

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