If e.DataCol.Name = "箱数" Then
If e.Datarow.IsNull("箱数") Then
e.datarow("开始箱号") = Nothing
e.datarow("结束箱号") = Nothing
Else
Dim dr As DataRow = DataTables("装箱单").Find("[IO] = '" & e.datarow("IO") & "' And [口岸] = '" & e.datarow("口岸") & "' And [结束箱号] > 0","_identify Desc")
if dr IsNot Nothing Then
e.datarow("开始箱号") = dr("结束箱号")+1
End if
End if
End if 上面的一段代码,是算箱号的,但我想求一段代码,因为输入一个新的IO和口岸时,开始箱号我是手工输入的,我想求的代码时每一个新的IO和口岸输入时,第一个开始箱号为1,下面的箱号再执行上面的代码,效果如下:
IO 口岸 箱数 开始箱号 结束箱号
AAA B 2 1 2
AAA B 3 3 5
AAA B 1 6 6
AAA C 1 1 1
AAA C 5 2 6
BBB B 5 1 5
BBB B 2 6 7
BBB D 1 1 1
BBB D 7 2 8
If e.DataCol.Name = "箱数" Then
If e.Datarow.IsNull("箱数") Then
e.datarow("开始箱号") = Nothing
e.datarow("结束箱号") = Nothing
Else
Dim dr As DataRow = DataTables("装箱单").Find("[IO] = '" & e.datarow("IO") & "' And [口岸] = '" & e.datarow("口岸") & "' And [结束箱号] > 0","_identify Desc")
if dr IsNot Nothing Then
e.datarow("开始箱号") = dr("结束箱号")+1
Else
e.datarow("开始箱号") = 1
End if
End if
End if
if dr IsNot Nothing Then
e.datarow("开始箱号") = dr("结束箱号")+1
Else
e.datarow("开始箱号") = 1
End if
End if
End if
原来这么简单,我做的时候,上下反了,做来做去做不起来了.