以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 关于排除重复值的问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=152502) |
-- 作者:狐表(小白) -- 发布时间:2020/7/13 21:31:00 -- 关于排除重复值的问题 老师你好,表A是SQL数据库加载出来的表,我想知道用下面的代码排除表A的重复值,排除的数据系统是直接删除了还是保存在数据库了?谢谢! Tables("表A").RepeatFilter("第一列", 1)
|
-- 作者:有点蓝 -- 发布时间:2020/7/13 21:51:00 -- 属于筛选,只是不显示而已,不会删除任何数据 |
-- 作者:狐表(小白) -- 发布时间:2020/7/13 23:01:00 -- [此贴子已经被作者于2020/7/13 23:01:28编辑过]
|
-- 作者:狐表(小白) -- 发布时间:2020/7/13 23:12:00 -- 谢谢老师,还有个问题要请教,如下图,如何通过遍历表的方式,通过点击按钮,把下图表1的高是2400的产品型号进行数量加总,来源列合并后去重后只显示一行数据。上传的代码请老师给改下,谢谢! 按钮代码: 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 [此贴子已经被作者于2020/7/13 23:20:36编辑过]
|
-- 作者:有点蓝 -- 发布时间: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)
|
-- 作者:狐表(小白) -- 发布时间:2020/7/14 9:20:00 -- 多谢 |
-- 作者:y2287958 -- 发布时间: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) |