Foxtable(狐表)用户栏目专家坐堂 → 关于排除重复值的问题


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

主题:关于排除重复值的问题

帅哥哟,离线,有人找我吗?
狐表(小白)
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:368 积分:3973 威望:0 精华:0 注册:2019/9/17 10:06:00
关于排除重复值的问题  发帖心情 Post By:2020/7/13 21:31:00 [只看该作者]

老师你好,表A是SQL数据库加载出来的表,我想知道用下面的代码排除表A的重复值,排除的数据系统是直接删除了还是保存在数据库了?谢谢!
Tables("A").RepeatFilter("第一列"1)

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


加好友 发短信
等级:超级版主 帖子:107014 积分:544295 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/7/13 21:51:00 [只看该作者]

属于筛选,只是不显示而已,不会删除任何数据

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


加好友 发短信
等级:小狐 帖子:368 积分:3973 威望:0 精华:0 注册:2019/9/17 10:06:00
  发帖心情 Post By:2020/7/13 23:01:00 [只看该作者]


[此贴子已经被作者于2020/7/13 23:01:28编辑过]

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


加好友 发短信
等级:小狐 帖子:368 积分:3973 威望:0 精华:0 注册:2019/9/17 10:06:00
  发帖心情 Post By:2020/7/13 23:12:00 [只看该作者]

谢谢老师,还有个问题要请教,如下图,如何通过遍历表的方式,通过点击按钮,把下图表1的高是2400的产品型号进行数量加总,来源列合并后去重后只显示一行数据。上传的代码请老师给改下,谢谢!

图片点击可在新窗口打开查看此主题相关图片如下:20200713231608.png
图片点击可在新窗口打开查看

按钮代码:
Dim drs As List(Of DataRow)
drs = DataTables("表1").Select("高 = 2400 And 导入类型 = '线'")
   For Each dr As DataRow In drs
     Dim i As Integer = Tables("表1").FindRow("序='" & dr("序") & "'")
     If i >=0 Then
        Dim rz As Row = Tables("表1").Rows(i)
        If rz IsNot Nothing AndAlso rz("高")=2400 AndAlso rz("导入类型") = "线" Then
         dr = DataTables("表1").AddNew
           dr("订单编号")= rz("订单编号")
           dr("产品名称")= rz("产品名称")
           dr("产品分类")= rz("产品分类")
           dr("产品型号")= rz("产品型号")
           dr("高")= rz("高")
           dr("数量")= 合并后的总数
           dr("导入类型")= rz("导入类型")
           dr("来源")=合并后去重的值
        End If
     End If
删除原有的3条数据行
Next 
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:表 1.xls




[此贴子已经被作者于2020/7/13 23:20:36编辑过]

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


加好友 发短信
等级:超级版主 帖子:107014 积分:544295 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/7/14 8:49:00 [只看该作者]

Dim drs As List(Of DataRow)
drs = DataTables("表1").Select("高 = 2400 And 导入类型 = '线'")
If drs.Count = 0 Then Return ""
Dim dr1 As DataRow = drs(0)
Dim dr As DataRow = DataTables("表1").AddNew
dr("订单编号")= dr1("订单编号")
dr("产品名称")= dr1("产品名称")
dr("产品分类")= dr1("产品分类")
dr("产品型号")= dr1("产品型号")
dr("高")= dr1("高")
dr("导入类型")= dr1("导入类型")
Dim lst As new List(of String)
Dim sum As Integer
For i As Integer = drs.Count -1 To 0 Step -1
    dr1 = drs(i)
    sum += dr1("数量")
    For Each s As String In dr1("来源").split(",")
        If lst.Contains(s) = False Then lst.Add(s)
    Next
    dr1.Delete
Next
dr("数量")= sum
lst.Sort
dr("来源")=String.Join(",",lst.ToArray)

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


加好友 发短信
等级:小狐 帖子:368 积分:3973 威望:0 精华:0 注册:2019/9/17 10:06:00
  发帖心情 Post By:2020/7/14 9:20:00 [只看该作者]

多谢图片点击可在新窗口打开查看

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


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

还可以这样写:
Dim fl As String = "高 = 2400 And 导入类型 = '线'"
Dim i As Integer = DataTables("表1").Compute("Sum(数量)",fl)
Dim s As String = DataTables("表1").GetComboListString("来源",fl).replace("|",",")
Dim f As New Filler
f.SourceTable = DataTables("表1")
f.DataTable = DataTables("表1")
f.Filter = "序=1"
f.Fill()
Dim dr As DataRow = DataTables("表1").DataRows(DataTables("表1").DataRows.Count-1)
dr("数量") = i
dr("来源") = String.join(",",s.split(",").Distinct.ToArray)

 回到顶部