老师,你好,以下代码当“备注”列都是空值时,为什么相同的两行数据不能合并,把备注列加上一样的内容时就可以?
如何实现当相同行的备注列是空值时也能合并?谢谢!
'合并小于1200数量为1来源相同相同规格线条
Dim ss As List(Of String()) = DataTables(eform.name & "_Table2").GetValues("产品分类|产品型号|工艺|基材|木皮|来源|备注")
Dim dr1,dr2 As DataRow
For Each s As String() In ss
Dim drs1 As List(Of DataRow) = DataTables(eform.name & "_Table2").Select("产品分类 = '" & s(0) & "' and 产品型号 = '" & s(1) & "' and 工艺 = '" & s(2) & "' and 基材 = '" & s(3) & "' and 木皮 = '" & s(4) & "' and 来源 = '" & s(5) & "' and 备注 = '" & s(6) & "' and 高 <=1200 and 数量= 1 and 不并线 = 0 and 导入类型='套线'","高")
Do While drs1.Count > 1
dr1 = drs1(0)
dr2 = drs1(drs1.Count - 1)
dr1("序")=DataTables(eform.name & "_Table2").Compute("Max(序)") + 1
dr1("行")=DataTables(eform.name & "_Table2").Compute("Max(行)") + 1
Dim f as string
f = dr1("来源") & "," & dr2("来源")
dr1("来源") = String.join(",",f.split(",").Distinct.ToArray)
dr1("高") = dr1("高") + dr2("高")
If dr1("高") <=1200 then
dr1("高")=1200
ElseIf dr1("高")>1200 And dr1("高")<=1500 then
dr1("高")=1500
ElseIf dr1("高")>1500 And dr1("高")<=1800 then
dr1("高")=1800
ElseIf dr1("高")>1800 And dr1("高")<=2200 then
dr1("高")=2200
ElseIf dr1("高")>2200 And dr1("高")<=2400 then
dr1("高")=2400
End If
dr1("备注")=dr1("备注")
drs1.Remove(dr1)
drs1.Remove(dr2)
dr2.Delete
Loop
Next
Tables("木门销售订单二级_table2").Save
[此贴子已经被作者于2020/11/8 11:26:09编辑过]