以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  汇总时,列中内容问题?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=96230)

--  作者:zsslly
--  发布时间: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
--  发布时间:2017/2/15 20:28:00
--  
还有,如果想汇总“购买金额”后,汇总的结果进行从高到低排序能否实现!求指点?
--  作者:有点色
--  发布时间: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
--  发布时间:2017/2/18 0:22:00
--  

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


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


--  作者:有点蓝
--  发布时间: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
--  发布时间:2017/2/19 8:23:00
--  

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

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


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

--  作者:有点色
--  发布时间:2017/2/19 9:56:00
--  

 

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


 


--  作者:zsslly
--  发布时间:2017/2/19 14:28:00
--  
感谢老师指点!