If e.DataCol.Name = "委托单编号" Then
If e.NewValue > "" AndAlso e.NewValue.StartsWith("ZRJC-WT-2024-") = False Then
e.NewValue = "ZRJC-WT-2024-" & e.NewValue
End If
End If
If e.DataCol.Name = "委托单编号" Then
If e.DataRow.IsNull("委托单编号") = False Then
e.DataRow("校验记录编号") = e.DataRow("委托单编号").replace("-WT-", "-JL-")
e.DataRow("校验报告编号") = e.DataRow("委托单编号").replace("-WT-", "-BG-")
e.DataRow("校验编号") = e.DataRow("委托单编号").replace("-WT-","|").split("|")(1)
End If
End If
此主题相关图片如下:2.png
表中有送委托单编号列的代码有以上两个,但这两个似乎有冲突了,不能进行修改了,修改后显示如下错误信息
提示的意思是列的字符长度不够大,和代码无关:
http://www.foxtable.com/webhelp/topics/0036.htm另外第一段代码应该放到datacolchanging事件,第2段代码应该放到datacolchanged事件。不同事件有不同的用途,不是所有代码挤到一个事件了事的
这两个代码是分别放在两个事件的我理解错了,能否将DataColChanging事件中的
If e.DataCol.Name = "委托单编号" Then
If e.NewValue > "" AndAlso e.NewValue.StartsWith("ZRJC-WT-2024-") = False Then
e.NewValue = "ZRJC-WT-2024-" & e.NewValue
End If
End If
这个代码加上一个判断,当“序号”列中有字符"WX“时,数据更改成"ZRJC-WX-2024-" & e.NewValue
……
If e.NewValue > "" AndAlso e.NewValue.StartsWith("ZRJC-WT-2024-") = False if e.datarow("序号").Contains("WX") Then
e.NewValue = "ZRJC-WX-2024-" & e.NewValue
else
e.NewValue = "ZRJC-WT-2024-" & e.NewValue
end if
endif
……
[此贴子已经被作者于2024/12/17 11:50:08编辑过]