datacolchanging代码:
If e.DataCol.Name = "SN" Then
Dim str As String = e.NewValue
Dim idx1 As Integer = str.IndexOf("MAC:")
Dim idx2 As Integer = str.IndexOf("H/W:")
Dim length As Integer
If str.Contains("SN:") Then
length = IIF(idx1 <> -1,idx1-3,IIF(idx2 <> -1,idx2-4,str.Length - 3))
e.NewValue = str.SubString(3, length)
Else
e.NewValue =str
End If
If str.Contains("MAC:") Then
If idx2 = -1 Then
e.DataRow("MAC") = str.SubString(idx1+4)
Else
e.DataRow("MAC") = str.SubString(idx1+4, idx2-idx1-4)
End If
End If
If str.Contains("H/W:") Then
e.DataRow("HW") = str.substring(idx2+4)
End If
End If
正常情况扫描到一个二维码为:SN:123 MAC:111 HW: 444
那么根据datacolchanging代码,自动就是SN列为123,MAC列为111,HW列为444。
可是有一部分二维码格式不是作为一行的,是分行的。如:
SN:123
MAC:111
HW:444.
那么这样一扫二维码,就变为了第一行SN列为123. 第一行MAC列和HW都为空了。第二行的SN列为111,第三行的SN列为444.
需求是,如果遇到这样的分行的二维码格式。希望能做到把第二行的SN值111和444写入到第一行对应的MAC列和HW列。并把第二行和第三行删除掉
[此贴子已经被作者于2016/8/2 11:53:35编辑过]