Foxtable(狐表)用户栏目专家坐堂 → 如何排除重复数据


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

主题:如何排除重复数据

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


加好友 发短信
等级:狐神 帖子:6793 积分:42967 威望:0 精华:0 注册:2009/3/2 14:07:00
如何排除重复数据  发帖心情 Post By:2020/12/31 15:00:00 [只看该作者]

前面的统计,都使用了Filler来向统计表填充分组数据,实际上有时手工编码填充分组数据也是一个不错的选择。
还是以统计不同产品的销售数量和金额为例,如果手工编码填充分组数据,代码为:

Dim dtb As New DataTableBuilder("统计")
dtb.AddDef(
"产品", Gettype(String), 32)
dtb.AddDef(
"数量", Gettype(Integer))
dtb.AddDef(
"金额", Gettype(Double))
dtb.Build()

For Each
nm As String In DataTables("订单").GetValues("产品")
   
Dim dr As DataRow = DataTables("统计").AddNew()
    dr(
"产品") = nm
    dr(
"数量") = DataTables("订单").Compute("Sum(数量)","[产品] = '" & dr("产品") & "'")
    dr("金额") = DataTables("订单").Compute("Sum(金额)","[产品] = '" & dr("产品") & "'")

Next
MainTable
= Tables("统计")

代码是不是比示例四简洁很多呢?


这个代码如何排除重复数据?


If Maintable.Name = "销售统计" Then
    dim
f As New Filler
    DataTables
("销售统计").DataRows.Clear() '清除原有数据
    f.SourceTable =
DataTables("订单")
    f.SourceCols =
"产品"
    f.
DataTable = DataTables("销售统计")
    f.DataCols =
"产品"
    f.Fill()
End
If

这个代码不能排序


如何既有排序又排除重复填充?


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


加好友 发短信
等级:狐神 帖子:6793 积分:42967 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2020/12/31 15:11:00 [只看该作者]

dim f As New Filler
f
.SourceTable = DataTables("订单") '指定数据来源
f
.SourceCols = "产品,客户" '指定数据来源列
f
.DataTable = DataTables("统计") '指定数据接收表
f
.DataCols = "产品,客户" '指定数据接收列
f
.Fill()
'填充数据


建议增加一个排序填充的功能


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


加好友 发短信
等级:超级版主 帖子:105492 积分:536451 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/12/31 15:16:00 [只看该作者]


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


加好友 发短信
等级:狐神 帖子:6793 积分:42967 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2021/12/29 22:25:00 [只看该作者]

如果排序已存在的内容?

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


加好友 发短信
等级:超级版主 帖子:105492 积分:536451 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/12/30 8:48:00 [只看该作者]


 回到顶部