Foxtable(狐表)用户栏目专家坐堂 → 多表统计问题


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

主题:多表统计问题

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


加好友 发短信
等级:五尾狐 帖子:1174 积分:8782 威望:0 精华:0 注册:2012/4/18 16:28:00
多表统计问题  发帖心情 Post By:2016/2/23 12:44:00 [只看该作者]

老师,看看,我的代码哪里错了,不显示统计

两个表都具有同名列的

Dim sql As String = "Select {销售部工资}.部门名称,实发工资,日期,{产品部工资}.部门名称,实发工资,日期 F ROM {销售部工资} INNER JOIN  {产品部工资} ON {销售部工资}.日期 = {产品部工资}.日期"
Dim b As New CrossTableBuilder("统计表1001",sql, "User") 
b.HGroups.AddDef("部门名称")
b.VGroups.AddDef("日期","{0}月")
b.Totals.AddDef("实发工资") 
b.Filter = "日期 >= #" & e.Form.Controls("DateTimePicker9").Value & "# And 日期 <= #" & e.Form.Controls("DateTimePicker10").Value & "#"
b.HorizontalTotal = True
b.VerticalTotal = True
Tables("工资统计_Table9").DataSource = b.BuildDataSource()

我想实现的是无关联的多个工资表同名列,按日期组合统计实发工资月合计
例如:
部门名称   1月  2月   3月.....
销售部      100 150  100
产品部      200  230  210
[此贴子已经被作者于2016/2/23 14:28:30编辑过]

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


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

改一下

 

Dim sql As String = "Select 部门名称,实发工资,日期 F ROM {销售部工资} un ion all Select 部门名称,实发工资,日期 F rom {产品部工资}"


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


加好友 发短信
等级:五尾狐 帖子:1174 积分:8782 威望:0 精华:0 注册:2012/4/18 16:28:00
  发帖心情 Post By:2016/2/23 15:23:00 [只看该作者]

谢谢老师,问题也解决,另外,我在设置小数点2位的时候,不知道这种形式的统计怎么取数值列名

DataTables("工资统计_Table9").DataCols(" ").SetFormat("#0.00")  

用“日期”,“1月”,“01月”,“实际工资”作为列名,都不对,老师,这句代码的列名应该是什么


DataTables("工资统计_Table9").DataCols("合计").SetFormat("#0.00")    合计能实现例如12344.00  这句代码设置是对的
[此贴子已经被作者于2016/2/23 15:24:05编辑过]

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


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

生成以后,你查看一下表结构即可看到列名

 

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

 

你看到那些不是列名,而是列标题。


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


加好友 发短信
等级:五尾狐 帖子:1174 积分:8782 威望:0 精华:0 注册:2012/4/18 16:28:00
  发帖心情 Post By:2016/2/24 10:15:00 [只看该作者]

老师,还得再请教一下,实际列名的问题,我已找到,我要在每列设置SetFormat("#0.00") 的时候,

比如现在是2016年1月和2月是有数据可以设置0.00的,但2016年3月以后的月份还没有到,提前设置如:
DataTables("工资统计_Table9").DataCols("实发工资_3").SetFormat("#0.00")  
DataTables("工资统计_Table9").DataCols("实发工资_4").SetFormat("#0.00")  
DataTables("工资统计_Table9").DataCols("实发工资_5").SetFormat("#0.00")  
......

因为还没有数据生成列,是会报错的,这种问题怎样解决  用TotalOn的方式吗,还是...

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


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

For Each c As Col In Tables("工资统计_Table9").cols
    If c.name Like "实发工资_*" Then
        c.DataCol.SetFormat("#0.00")
    End If
Next

 回到顶部