以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  请教下,这两个代码如何能够不冲突  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=194498)

--  作者:SUV2258
--  发布时间:2024/12/16 20:59:00
--  请教下,这两个代码如何能够不冲突
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
图片点击可在新窗口打开查看

表中有送委托单编号列的代码有以上两个,但这两个似乎有冲突了,不能进行修改了,修改后显示如下错误信息


--  作者:有点蓝
--  发布时间:2024/12/16 21:34:00
--  
提示的意思是列的字符长度不够大,和代码无关:http://www.foxtable.com/webhelp/topics/0036.htm

另外第一段代码应该放到datacolchanging事件,第2段代码应该放到datacolchanged事件。不同事件有不同的用途,不是所有代码挤到一个事件了事的
--  作者:SUV2258
--  发布时间:2024/12/17 11:43:00
--  
这两个代码是分别放在两个事件的
我理解错了,能否将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


--  作者:有点蓝
--  发布时间:2024/12/17 11:50:00
--  
……
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编辑过]