以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  startIndex 不能大于字符串长度  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=126256)

--  作者:edisontsui
--  发布时间:2018/10/17 15:55:00
--  startIndex 不能大于字符串长度
    Case "生产票号一"  
        e.DataRow("弯头1") = e.DataRow("生产票号一").SubString(4,3) 

我的上述代码,执行时总是出现下面的警告。上面的“生产票号一”是字符串,总共11位数,我要取第5-7位字符串。

.NET Framework 版本:2.0.50727.8793
Foxtable 版本:2017.3.18.1
错误所在事件:表,铝巴送货单, DataColChanged
详细错误信息:
调用的目标发生了异常。
startIndex 不能大于字符串长度。
参数名: startIndex

谢谢。

--  作者:有点甜
--  发布时间:2018/10/17 16:15:00
--  

Case "生产票号一"  

    If e.DataRow("生产票号一").length > 7 Then

        e.DataRow("弯头1") = e.DataRow("生产票号一").SubString(4,3) 
    Else
        e.DataRow("弯头1") = Nothing
    End If

--  作者:edisontsui
--  发布时间:2018/10/17 16:38:00
--  
你的代码有效。谢谢。可是为什么要加 If e.DataRow("生产票号一").length > 7 这个判断呢?
--  作者:有点甜
--  发布时间:2018/10/17 17:18:00
--  
以下是引用edisontsui在2018/10/17 16:38:00的发言:
你的代码有效。谢谢。可是为什么要加 If e.DataRow("生产票号一").length > 7 这个判断呢?

 

比如你在单元格输入 123,abc或者输入空白值,都会触发datacolchanged事件的,这个时候如果要获取5-7位肯定报错。