Foxtable(狐表)用户栏目专家坐堂 → [求助]实现以下数据统计,代码该怎么写


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

主题:[求助]实现以下数据统计,代码该怎么写

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


加好友 发短信
等级:童狐 帖子:233 积分:2602 威望:0 精华:0 注册:2013/9/2 23:31:00
[求助]实现以下数据统计,代码该怎么写  发帖心情 Post By:2016/4/21 18:45:00 [只看该作者]

请教:要根据附件图1表通过数据统计得到附件图2的结果,代码该怎么写(测试数据见附件项目)?
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目4.rar

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

[此贴子已经被作者于2016/4/21 18:49:06编辑过]

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


加好友 发短信
等级:童狐 帖子:233 积分:2602 威望:0 精华:0 注册:2013/9/2 23:31:00
  发帖心情 Post By:2016/4/21 18:48:00 [只看该作者]

不好意思,刚忘了上传图2
图片点击可在新窗口打开查看此主题相关图片如下:图2.jpg
图片点击可在新窗口打开查看

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


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

参考代码

 

Dim month As Integer = 2

Dim dtb As New DataTableBuilder("统计")
dtb.AddDef("产品名称", Gettype(String), 16)
Dim prds As List(of String) = DataTables("test").GetValues("部门")
Dim sum_y As String = ""
Dim sum_n As String = ""
For Each prd As String In prds
    sum_y &= "isnull(" & prd & "_本月,0)+"
    sum_n &= "isnull(" & prd & "_本年,0)+"
    dtb.AddDef(prd & "_本月", Gettype(Double))
    dtb.AddDef(prd & "_本年", Gettype(Double))
Next
dtb.AddDef("合计_本月", Gettype(Double), sum_y.trim("+"))
dtb.AddDef("合计_本年", Gettype(Double), sum_n.trim("+"))
dtb.AddDef("累计数百分比", Gettype(Double), "合计_本月/合计_本年")
dtb.Build()
For Each cus As String In DataTables("test").GetValues("产品名称")
    Dim dr As DataRow = DataTables("统计").AddNew()
    dr("产品名称") = cus
    For Each prd As String In prds
        dr(prd & "_本月") = DataTables("test").Compute("Sum(销售额)","产品名称 = '" & cus & "' And 部门 = '" & prd & "' and 月份 = '" & month & "'")
        dr(prd & "_本年") = DataTables("test").Compute("Sum(销售额)","产品名称 = '" & cus & "' And 部门 = '" & prd & "'")
    Next
Next
MainTable= Tables("统计")


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


加好友 发短信
等级:童狐 帖子:233 积分:2602 威望:0 精华:0 注册:2013/9/2 23:31:00
  发帖心情 Post By:2016/4/22 0:16:00 [只看该作者]

非常感谢红袍老师,这么晚了还在回复。

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


加好友 发短信
等级:童狐 帖子:233 积分:2602 威望:0 精华:0 注册:2013/9/2 23:31:00
  发帖心情 Post By:2016/4/22 14:31:00 [只看该作者]

红袍老师,还要在请教您一下。按照您的参考代码,我调整完后把代码放到了窗口的一个按钮事件中,最后Tables("窗口1_Table1").DataSource = DataTables("统计")(见附件项目),点击按钮后,在窗口的table1控件中显示的和DataTables("统计")中显示的结果不一样:窗口的table1控件合计行显示不出来、累计数百分比显示的是小数(代码中本来是设置为百分比格式的),见附件截图对比。
[此贴子已经被作者于2016/4/22 14:36:17编辑过]

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


加好友 发短信
等级:童狐 帖子:233 积分:2602 威望:0 精华:0 注册:2013/9/2 23:31:00
  发帖心情 Post By:2016/4/22 14:38:00 [只看该作者]

附件好像上传不了呢
[此贴子已经被作者于2016/4/22 14:40:48编辑过]

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


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

1、先写代码

 

Tables("窗口1_Table1").DataSource = DataTables("统计")

 

2、然后针对 Tables("窗口1_Table1") 设置合计、列百分比格式


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


加好友 发短信
等级:童狐 帖子:233 积分:2602 威望:0 精华:0 注册:2013/9/2 23:31:00
  发帖心情 Post By:2016/4/22 14:58:00 [只看该作者]

OK,懂了。感谢!

 回到顶部