Foxtable(狐表)用户栏目专家坐堂 → [求助]如何对汇总结果进行计算排序?


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

主题:[求助]如何对汇总结果进行计算排序?

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


加好友 发短信
等级:二尾狐 帖子:574 积分:4332 威望:0 精华:0 注册:2013/7/26 10:24:00
[求助]如何对汇总结果进行计算排序?  发帖心情 Post By:2014/2/28 8:45:00 [只看该作者]

如题,
图片点击可在新窗口打开查看此主题相关图片如下:qq截图20140228084300.jpg
图片点击可在新窗口打开查看
想对汇总结果的两个标准偏差1,2,进行1*2的计算,再按计算的结果进行排序
不知这能不能实现,如果不能实现,那单独对标准偏差1进行排序可否实现?

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/2/28 8:48:00 [只看该作者]


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


加好友 发短信
等级:二尾狐 帖子:574 积分:4332 威望:0 精华:0 注册:2013/7/26 10:24:00
  发帖心情 Post By:2014/2/28 8:57:00 [只看该作者]

帮助看了,但好像没有能对所汇总的结果进行计算或是排序的。

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/2/28 8:59:00 [只看该作者]

以下复制自帮助



自定义排序

在默认情况下,Subtotal方法会根据分组列进行排序,然后再生成汇总模式。
Subtotal有一个可选参数,如果将其设置为True,那么在生成汇总模式时,可以自定义排序参数,而不是根据分组列排序。
例如根据日期和客户排序,分组列为客户,统计列为数量与金额,生成汇总模式:

Dim t As Table = Tables("订单")
Dim 
g As Subtotalgroup
t
.SubtotalGroups.Clear()
g = New Subtotalgroup
g
.Aggregate = AggregateEnum.Sum 
g
.GroupOn = "客户"
g
.TotalOn = "数量,金额" 
g
.Caption = "{0} 小计" 
t
.SubtotalGroups.Add(g)
g = New Subtotalgroup
g
.Aggregate = AggregateEnum.Sum
g
.GroupOn = "*" 
g
.TotalOn = "数量,金额"
g
.Caption = "总计"
t
.SubtotalGroups.Add(g)
t.Sort = 
"日期,客户" '指定排序字段
t.Subtotal(
True'生成汇总模式


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


加好友 发短信
等级:二尾狐 帖子:574 积分:4332 威望:0 精华:0 注册:2013/7/26 10:24:00
  发帖心情 Post By:2014/2/28 9:03:00 [只看该作者]

帮助里的好像是依据表中现有的列进行排序,而我所期望的排序并不是表中现有的列,而是按汇总的标准方差的大小来进行排列,方差小的排在前面。

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/2/28 9:05:00 [只看该作者]

那个没办法排序

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


加好友 发短信
等级:二尾狐 帖子:574 积分:4332 威望:0 精华:0 注册:2013/7/26 10:24:00
  发帖心情 Post By:2014/2/28 9:17:00 [只看该作者]

那有没有什么办法对汇总的结果进行操作呢?比如说建个新表,把分组列及汇总结果放进去,然后对这个表进行操作?

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/2/28 9:24:00 [只看该作者]

这个倒是可以的.


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


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2014/2/28 9:48:00 [只看该作者]

弄个窗口表:

Dim t As Table = Tables("订单")
Dim g As Subtotalgroup
t.SubtotalGroups.Clear()
g = New Subtotalgroup
g.Aggregate = AggregateEnum.Sum
g.GroupOn = "产品"
g.TotalOn = "数量"
g.Caption = "{0} 小计"
t.SubtotalGroups.Add(g)
t.Subtotal()
Dim r As Row
Tables(e.Form.Name & "_Table1").DataTable.DataRows.Clear()
For i As Integer = 0 To t.Rows.Count(True) - 1
    r = t.Rows(i,True)
    If r.IsGroup Then
        Dim nr As Row = Tables(e.Form.Name & "_Table1").AddNew()
        nr("第一列") = r("产品")
        nr("第二列") = r("数量")
    End If
Next
Tables(e.Form.Name & "_Table1").Sort = "第二列"


 回到顶部