Foxtable(狐表)用户栏目专家坐堂 → 汇总时,列中内容问题?


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

主题:汇总时,列中内容问题?

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


加好友 发短信
等级:四尾狐 帖子:972 积分:7193 威望:0 精华:0 注册:2013/5/24 12:29:00
汇总时,列中内容问题?  发帖心情 Post By:2017/2/15 20:20:00 [只看该作者]

我有一个表,表中有一个“姓名”列,列中的内空如:张飞,张飞(到店),刘备,刘备(到店),关羽,关羽(到店),曹操,曹操(到店)......每一个姓名会另起一行加(到店)二字,在汇总时想忽略(到店)二字,不知道代码应该怎么改,求大侠指点?跪谢!

汇总的代码为:

Dim t As Table = Tables("一店_table1")
Dim g As Subtotalgroup
t.SubtotalGroups.Clear()
t.GroupAboveData = True
t.TreeVisible = True
t.SpillNode = True

g = New Subtotalgroup
g.Aggregate = AggregateEnum.Sum
g.GroupOn = "姓名"
g.TotalOn = "购买金额"
g.Caption = "{0} 小计"
t.SubtotalGroups.Add(g)

t.Subtotal()

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


加好友 发短信
等级:四尾狐 帖子:972 积分:7193 威望:0 精华:0 注册:2013/5/24 12:29:00
  发帖心情 Post By:2017/2/15 20:28:00 [只看该作者]

还有,如果想汇总“购买金额”后,汇总的结果进行从高到低排序能否实现!求指点?

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/2/16 2:08:00 [只看该作者]

'''
Dim t As Table = Tables("一店_table1")
t.DataTable.DataCols.Add("临时姓名", Gettype(String))
t.DataTable.DataCols.Add("临时金额", Gettype(Double))
For Each r As Row In t.rows
    r(“临时姓名") = r("姓名").replace("(到店)", "")
    r("临时金额") = t.Compute("sum(购买金额)", "姓名 like '%" & r("姓名") & "%'")
Next

Dim g As Subtotalgroup
t.SubtotalGroups.Clear()
t.GroupAboveData = True
t.TreeVisible = True
t.SpillNode = True

g = New Subtotalgroup
g.Aggregate = AggregateEnum.Sum
g.GroupOn = "临时姓名"
g.TotalOn = "购买金额"
g.Caption = "{0} 小计"
t.SubtotalGroups.Add(g)

t.Subtotal()

t.sort = "临时金额 desc"


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


加好友 发短信
等级:四尾狐 帖子:972 积分:7193 威望:0 精华:0 注册:2013/5/24 12:29:00
  发帖心情 Post By:2017/2/18 0:22:00 [只看该作者]

老师您好,非常感谢您的指导,但不是我的意思,我上传了一个例子,如图:如按常规的汇总,一个名字就出现了二行,能不能把如张飞、张飞(到店)的“购买金额”相加结果汇总,在把汇总结果从高到低排序,求助?


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20170218001512.jpg
图片点击可在新窗口打开查看
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:汇总中姓名列的问题.table


 回到顶部
帅哥,在线噢!
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106570 积分:542021 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/2/18 9:42:00 [只看该作者]

必须使用辅助列,不想看到辅助列,可以隐藏起来,注意代码开头的三个点,不能省略

'''
Dim t As Table = Tables("窗口1_table1")
If t.DataTable.DataCols.Contains("临时姓名") = False
    t.DataTable.DataCols.Add("临时姓名", Gettype(String))
End If
If t.DataTable.DataCols.Contains("临时金额") = False
    t.DataTable.DataCols.Add("临时金额", Gettype(Double))
End If
For Each r As Row In t.rows
    r(“临时姓名") = r("姓名").replace("(到店)", "")
Next
For Each r As Row In t.rows
    r("临时金额") = t.Compute("sum(购买金额)", "姓名 like '%" & r("临时姓名") & "%'")
Next
t.Cols("临时姓名").Visible = False
t.Cols("临时金额").Visible = False

Dim g As Subtotalgroup
t.SubtotalGroups.Clear()
t.GroupAboveData = True
t.TreeVisible = True
t.SpillNode = True
g = New Subtotalgroup
g.Aggregate = AggregateEnum.Sum
g.GroupOn = "临时姓名"
g.TotalOn = "购买金额"
g.Caption = "{0} 小计"
t.SubtotalGroups.Add(g)
t.sort = "临时金额 desc"
t.Subtotal(True)


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


加好友 发短信
等级:四尾狐 帖子:972 积分:7193 威望:0 精华:0 注册:2013/5/24 12:29:00
  发帖心情 Post By:2017/2/19 8:23:00 [只看该作者]

非常感谢老师的耐心指导,但可能是我没有说清楚,我是想要汇总为下图的结果:

也就是把名子后面的(到店)去掉后在汇总的意思,然后让购买金额排序,求指点!


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

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/2/19 9:56:00 [只看该作者]

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:汇总中姓名列的问题.table


 


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


加好友 发短信
等级:四尾狐 帖子:972 积分:7193 威望:0 精华:0 注册:2013/5/24 12:29:00
  发帖心情 Post By:2017/2/19 14:28:00 [只看该作者]

感谢老师指点!

 回到顶部