Foxtable(狐表)用户栏目专家坐堂 → 分组统计


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

主题:分组统计

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


加好友 发短信
等级:婴狐 帖子:91 积分:712 威望:0 精华:0 注册:2012/7/10 21:39:00
分组统计  发帖心情 Post By:2012/11/20 16:23:00 [只看该作者]

根据需要的时间及其他条件进行查询,用的是外部表,希望在窗口表中显示分组统计

代码如下:

s1 = " scph in (select scph from s_scph where jdrq between '" & d1 & "' and  '" & d2 & "' and kfbh = '" &  Trim(e.Form.Controls("Lkfbh").Text) & "')"
s3 = "Select (Select kfbh from sc_ddzb where scph = a.scph) 客户编号,(Select kfjc from sc_ddzb where scph = a.scph) 客户简称,scph 订单编号,xh 序号,cpbh 产品编号,cpmc 产品名称,lxbh 编号,xm 工序,xmsm 成本名称,je 预算单价,dhsl 订单数量,ysje 预算金额," _
& "(Select avg(dj) from sc_wfjgmx where ddbh = a.scph And xh = a.xh And lxbh = a.lxbh) As 实际单价,(Select sum(sl) from sc_wfjgmx where ddbh = a.scph And xh = a.xh And lxbh = a.lxbh) As 加工数量,((Select avg(dj) from sc_wfjgmx where ddbh = a.scph " _
& "And xh = a.xh And lxbh = a.lxbh)*(Select sum(sl) from sc_wfjgmx where ddbh = a.scph And xh = a.xh And lxbh = a.lxbh))As 加工金额 from sc_cpys a where lxbh In (2103,2106,5104,5107) and "
tb2.Fill(s3 & s1,"spData",True)
Dim b As New GroupTableBuilder("ddgx_hz",dtb2)
b.Groups.AddDef("工序","工序") '添加日期列用于分组,并用"年"代替原名称
'b.Groups.AddDef("工序","工序") '添加日期列用于分组,并用"月"代替原名称
b.Totals.AddDef("预算金额") '添加数量列用于统计
b.Totals.AddDef("加工金额") '添加金额列用于统计
b.Subtotal = False '生成汇总模式
b.Build '生成统计表

想实现用工序分组汇总,请教求解...

[此贴子已经被作者于2012-11-20 16:24:20编辑过]

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


加好友 发短信
等级:小狐 帖子:365 积分:2693 威望:0 精华:1 注册:2011/11/25 7:55:00
  发帖心情 Post By:2012/11/20 16:28:00 [只看该作者]

楼上,这么长的sql语句看得眼花,你写个sql直接汇总也应该不是问题吧

 

或者直接sqlgrouptablebuilder后台统计也行啊

[此贴子已经被作者于2012-11-20 16:28:32编辑过]

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/11/20 16:31:00 [只看该作者]

 呃……面对代码,无言以对。

 你现在运行代码报错,还是怎样?

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


加好友 发短信
等级:婴狐 帖子:91 积分:712 威望:0 精华:0 注册:2012/7/10 21:39:00
  发帖心情 Post By:2012/11/20 16:39:00 [只看该作者]

数据是通过sql综合查询得到的数据,加载到窗口表,想在窗口上针对查询出来的数据进行分组统计,就是分组试不出来


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


加好友 发短信
等级:小狐 帖子:365 积分:2693 威望:0 精华:1 注册:2011/11/25 7:55:00
  发帖心情 Post By:2012/11/20 16:39:00 [只看该作者]

贴出数据表结构和要求实现的结果,帮你看下


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


加好友 发短信
等级:婴狐 帖子:91 积分:712 威望:0 精华:0 注册:2012/7/10 21:39:00
  发帖心情 Post By:2012/11/20 17:00:00 [只看该作者]

实现效果:
图片点击可在新窗口打开查看此主题相关图片如下:样表.jpg
图片点击可在新窗口打开查看

 

数据表查询结果:
图片点击可在新窗口打开查看此主题相关图片如下:数据表.jpg
图片点击可在新窗口打开查看

这个是通过sql语句,用tb.Fill()加载的


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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/11/20 17:16:00 [只看该作者]

 呃,楼主,你要的不是分组统计,你要的是汇总统计吧?

Dim t As Table = Tables("窗口1_Table1")
Dim g As Subtotalgroup
t.SubtotalGroups.Clear()
t.GroupAboveData = False
t.TreeVisible = False
t.SpillNode = True

g = New Subtotalgroup
g.Aggregate = AggregateEnum.Sum
g.GroupOn = "客户"
g.Caption = "{0} 小计"
t.SubtotalGroups.Add(g)

g = New Subtotalgroup
g.Aggregate = AggregateEnum.Sum
g.GroupOn = "*"
g.Caption = "总计"
t.SubtotalGroups.Add(g)

t.Subtotal()

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


加好友 发短信
等级:婴狐 帖子:91 积分:712 威望:0 精华:0 注册:2012/7/10 21:39:00
  发帖心情 Post By:2012/11/20 17:30:00 [只看该作者]

是这样的效果,但是出现了两层了,效果如下:


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

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


加好友 发短信
等级:婴狐 帖子:91 积分:712 威望:0 精华:0 注册:2012/7/10 21:39:00
  发帖心情 Post By:2012/11/20 17:32:00 [只看该作者]


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

不知道这段简短的代码如何实现的


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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/11/20 17:38:00 [只看该作者]

 楼主估计没有清分组统计和汇总统计,之所以出现两行,是因为你的 电镀 有空格……取出数据的时候,请去除空格。

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