以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  批号自动生成有效期的代码问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=88982)

--  作者:zch1104
--  发布时间:2016/8/12 18:06:00
--  批号自动生成有效期的代码问题

如下代码运行时可达到,设计要求。通过批号输入能得到有效期如:20160302     有效期20170301

 

 

但是:导入时数据时,为什么会提示冲突,使导入数据无法进行,还至致死机。另在操作手工删除批号时出现如下提示

 

调用的目标发生了异常。

.NET Framework 版本:2.0.50727.3643
Foxtable 版本:2016.6.26.1
错误所在事件:表,入库明细,DataColChanged
详细错误信息:
调用的目标发生了异常。
未将对象引用设置到对象的实例。

,此代码有问题吗?

Select Case e.DataCol.Name
    Case "批号"
        Dim s As String = CStr(e.NewValue)
        Dim d As Date =new Date(s.SubString(0,4),s.SubString(4,2),s.SubString(6,2))
        d = d.AddYears(1).AddDays(-1)
        e.DataRow("有效期") = Format(d,"yyyyMMdd")
End Select

      如在“命令操作窗口执行时”问题更大???

 

 

                                    求指教!!!!

 

 

 


--  作者:zch1104
--  发布时间:2016/8/12 18:07:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:截图00.png
图片点击可在新窗口打开查看

--  作者:大红袍
--  发布时间:2016/8/12 18:30:00
--  
Select Case e.DataCol.Name
    Case "批号"
        if e.newValue <> Nothing AndAlso e.newvalue.Length >= 8 then
            Dim s As String = CStr(e.NewValue)
            Dim d As Date =new Date(s.SubString(0,4),s.SubString(4,2),s.SubString(6,2))
            d = d.AddYears(1).AddDays(-1)
            e.DataRow("有效期") = Format(d,"yyyyMMdd")
        end if
End Select