Foxtable(狐表)用户栏目专家坐堂 → 如何筛选出统计表1的前10行?


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

主题:如何筛选出统计表1的前10行?

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


加好友 发短信
等级:幼狐 帖子:125 积分:1544 威望:0 精华:0 注册:2017/3/16 1:12:00
如何筛选出统计表1的前10行?  发帖心情 Post By:2018/7/16 11:26:00 [只看该作者]

甜老师好!为了画图表,
图片点击可在新窗口打开查看此主题相关图片如下:订单表.jpg
图片点击可在新窗口打开查看
用临时表对订单表进行了“统计表1”,问题:如何只筛选出金额排序前10行的统计表1?

已完成了的部分代码
Dim b As New GroupTableBuilder("统计表1",DataTables("订单"))
b.Groups.AddDef("产品") '添加客户列用于分组
b.Totals.AddDef("金额") '添加数量列用于统计
b.Totals.AddDef("数量") '添加数量列用于统计
'b.VerticalTotal = True '自动垂直汇总
b.Build '生成统计表 
Tables("统计表1").Sort = "金额 DESC"
(如何筛选出金额较大的前10行?)

MainTable = Tables("统计表1") '打开生成的统计表
[此贴子已经被作者于2018/7/16 11:29:21编辑过]

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


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

Dim n As Integer = 10
Dim t As Table = Tables("表A")
Dim idxs As String = "'',"
n = iif(t.Rows.count>n, n, t.Rows.count)
For i As Integer = 0 To n-1
    idxs &= "'" & t.rows(i)("第一列") & "',"
Next
t.filter = "第一列 in (" & idxs.trim(",") & ")"

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


加好友 发短信
等级:幼狐 帖子:125 积分:1544 威望:0 精华:0 注册:2017/3/16 1:12:00
  发帖心情 Post By:2018/7/16 16:20:00 [只看该作者]

甜老师好,命令窗口试运行显示:无法在 System.Double 和 System.String 上执行“=”操作。
还需转换个什么类型的吧。

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


加好友 发短信
等级:狐神 帖子:4627 积分:33767 威望:0 精华:0 注册:2008/8/31 22:44:00
  发帖心情 Post By:2018/7/16 16:49:00 [只看该作者]

只能如此了
Dim b As New GroupTableBuilder("统计表1",DataTables("订单"))
b.Groups.AddDef("产品") '添加客户列用于分组
b.Totals.AddDef("金额") '添加数量列用于统计
b.Totals.AddDef("数量") '添加数量列用于统计
'b.VerticalTotal = True '自动垂直汇总
b.Build '生成统计表 
Tables("统计表1").Sort = "金额 DESC"
Tables("统计表1").Select(0,0,9,0)
Tables("统计表1").HideUnSelectedRows
MainTable = Tables("统计表1") '打开生成的统计表


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


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

1、贴出你所写代码

 

2、你的产品列不是字符串?


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


加好友 发短信
等级:幼狐 帖子:125 积分:1544 威望:0 精华:0 注册:2017/3/16 1:12:00
  发帖心情 Post By:2018/7/16 17:07:00 [只看该作者]

Dim b As New GroupTableBuilder("统计表1",DataTables("订单"))
b.Groups.AddDef("产品") '添加客户列用于分组
b.Totals.AddDef("金额") '添加数量列用于统计
b.Totals.AddDef("数量") '添加数量列用于统计
'b.VerticalTotal = True '自动垂直汇总
b.Build '生成统计表 
Tables("统计表1").Sort = "金额 DESC"
Dim n As Integer = 10
Dim t As Table = Tables("统计表1")
Dim idxs As String = "'',"
n = iif(t.Rows.count>n, n, t.Rows.count)
For i As Integer = 0 To n-1
    idxs &= "'" & t.rows(i)("金额") & "',"
Next
t.filter = "金额 in (" & idxs.trim(",") & ")"
MainTable = Tables("统计表1") '打开生成的统计表

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


加好友 发短信
等级:幼狐 帖子:125 积分:1544 威望:0 精华:0 注册:2017/3/16 1:12:00
  发帖心情 Post By:2018/7/16 17:11:00 [只看该作者]

嗯,这位同学的代码能够实现,真神。

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


加好友 发短信
等级:幼狐 帖子:125 积分:1544 威望:0 精华:0 注册:2017/3/16 1:12:00
  发帖心情 Post By:2018/7/16 17:14:00 [只看该作者]

帅哥,在线噢!
谢谢y2287958,

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


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

把金额列,改成产品列

 

Dim t As Table = Tables("统计表1")
Dim idxs As String = "'',"
n = iif(t.Rows.count>n, n, t.Rows.count)
For i As Integer = 0 To n-1
    idxs &= "'" & t.rows(i)("产品") & "',"
Next
t.filter = "产品 in (" & idxs.trim(",") & ")"
MainTable = Tables("统计表1") '打开生成的统计表

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


加好友 发短信
等级:幼狐 帖子:125 积分:1544 威望:0 精华:0 注册:2017/3/16 1:12:00
  发帖心情 Post By:2018/7/16 18:32:00 [只看该作者]

嗯!嗯!!这个正确出表了,谢谢甜老师。

 回到顶部