以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  在aftercolchange中设置了代码后再筛选就出错  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=97796)

--  作者:hebxtshhyj
--  发布时间:2017/3/18 14:38:00
--  在aftercolchange中设置了代码后再筛选就出错

在全局表设置了如下代码:

 

Select Case e.Table.Name
    Case "采购单","销售单"
        Dim dr As DataRow = DataTables("商品信息表").Find("产品ID=\'" & e.Table.Current("产品ID") & "\'")
        If dr IsNot Nothing  Then
            StatusBar.Message1 = "当前库存:" & dr("库存_架数量") & "架," & dr("库存_片数量") & "片."
        Else
            StatusBar.Message1="未找到当前产品,请检查产品是否录入正确."
        End If
End Select

 

代码在表中能正确执行,但是在采购单,和销售单中筛选时,出现错误如下。

 

.NET Framework 版本:2.0.50727.3655
Foxtable 版本:2016.7.29.1
错误所在事件:全局表事件,AfterSelChange
详细错误信息:
Object reference not set to an instance of an object.

什么情况?


--  作者:有点蓝
--  发布时间:2017/3/18 15:25:00
--  

if e.Table.Current isnot nothing then

原来的代码

endif


--  作者:hebxtshhyj
--  发布时间:2017/3/18 15:35:00
--  

 

问题解决了。图片点击可在新窗口打开查看

 

筛选之后当前行不见了,所以出错了?但是要筛选的行不是当前行吗?还是不明白。


--  作者:hebxtshhyj
--  发布时间:2017/3/18 18:20:00
--  
问题好像没有解决彻底啊。偶尔还是不正常。采购单可以筛选,销售单不可以图片点击可在新窗口打开查看
--  作者:狐狸爸爸
--  发布时间:2017/3/20 7:44:00
--  
建议改用CurrentChanged事件,代码为:

if e.Table.Current Isnot Nothing then
   ‘原来的代码
end if