需要根据订单主表的订单行数向订单明细表新增相应行数,并在新增的行里面 把对应行的客户,客户订单号,下单日期添加到新增的行里面,代码我写了,但只能向新增的第一行添加数据,请问该如何改下代码呀。
此主题相关图片如下:q12.jpg
代码如下:
Select Case e.DataCol.Name
Case "订单行数"
If e.DataRow.IsNull("订单行数") = False Then '如果已经输入客户订单号
If e.DataRow.GetChildRows("订单明细表").Count = 0 Then '而且无订单明细
Dim DL As Integer
'If e.DataCol.Name = "订单行数" Then
DL = e.DataRow("订单行数")
Dim c As Integer= Tables("订单明细表").Rows.count '将行数赋值给c
'DataTables("订单明细表").AddNew( DL )
Dim dr As DataRow = DataTables("订单明细表").AddNew(DL)
Dim i As Integer
For i = c To c + DL ‘这段循环语句不起作用呀
dr("客户订单号") = e.DataRow("客户订单号")
dr("客户") = e.DataRow("客户")
dr("下单日期") = e.DataRow("下单日期")
dr("内部订单号") = e.DataRow("内部订单号")
Next
End If
End If
End Select
另外我需要实现订单明细表如果有重复行就提示重复行,我在论坛搜到一段代码很有用,只是我想改下却不会改。代码如下:
'任意列数重复值判断的通用代码给有需要的同学,假设我们用:客户订单号 客户产品号 订单行号 3列来做判断
Dim str0 As New List (Of String)
Dim str1 As New List (Of String)
Dim id0,id1,flt,celltext As String
For Each r As Row In CurrentTable.Rows
celltext=r("客户订单号")&r("客户产品号")&r("订单行号")
If str0.Contains(celltext) =False Then
id0 + = r("_Identify") & ","
Else
str1.Add(celltext)
End If
str0.Add(celltext)
Next
For Each r As Row In CurrentTable.Rows
celltext=r("客户订单号")&r("客户产品号")&r("订单行号")
If str1.Contains(celltext) Then
id1 + = r("_Identify") & ","
End If
Next
If id1 > "" Then
id1 = id1.Trim(",")
msgbox("存在重复数据,请核实!")
End If
If id1 > "" Then
flt = "_Identify In (" & id1 & ")"
End If
CurrentTable.Filter = flt
CurrentTable.Sort="客户订单号,客户产品号,订单行号"
我需要改写成如果没有重复代码就直接保存,现在的代码会把数据排序,我不需要这个功能,我只需要把重复数据筛选出来供查看就可以了。这个该如何改?
请高手指教! 谢谢!
[此贴子已经被作者于2014-12-18 20:24:36编辑过]