以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]CurrentChanged事件问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=88384)

--  作者:青鸟
--  发布时间:2016/8/1 23:49:00
--  [求助]CurrentChanged事件问题
DropBox控件录入时,帮助文件中有段代码,写在副本表的CurrentChanged事件中,目的是为了让主表指针与副本表的选定数据同步,如下:

   Dim dr As DataRow = e.Table.Current.DataRow
   Dim wz As Integer = Tables("客户资料").FindRow(dr)
   If wz >=0 Then
      Tables("客户资料").Position = wz
   End If

但当主表没有DropBox控件录入的数据时,程序出错。

请问:该错误如何规避?谢谢!


--  作者:青鸟
--  发布时间:2016/8/2 0:10:00
--  
是按照 帮助中的 “自定义录入界面之四” 写录入界面时遇到的问题
--  作者:狐狸爸爸
--  发布时间:2016/8/2 10:58:00
--  

1、错误提示?

2、可以根据错误提示,先自己分析一下:

http://www.foxtable.com/webhelp/scr/1485.htm

 

最后搞不定了,再贴出出错的代码,错误提示,并告知是哪一行出错。


--  作者:青鸟
--  发布时间:2016/8/2 14:07:00
--  
错误代码如下:

.NET Framework 版本:2.0.50727.8689
Foxtable 版本:2016.6.26.1
错误所在事件:客户资料,CurrentChanged
详细错误信息:
未将对象引用设置到对象的实例。

--  作者:狐狸爸爸
--  发布时间:2016/8/2 14:14:00
--  

if  e.Table.Current is nothing then

     return

end if

Dim dr As DataRow = e.Table.Current.DataRow

Dim wz As Integer = Tables("客户资料").FindRow(dr)
if wz >=0 Then
      Tables("客户资料").Position = wz
End If

--  作者:青鸟
--  发布时间:2016/8/2 16:43:00
--  

谢谢狐爸,但还是有问题,我上传附件来,请帮我看看。

 

     基本想法是:在 “订单录入”窗口的 “客户姓名”(DropBox1)控件中,输入客户名字,如果该名字以前有记录,则选择,如果以前没有记录,则自动

调入 “客户录入”窗口补充录入,完成后返回 “订单录入”窗口,并将客户的其他信息显示在 “订单录入”窗口,供参考。

     现在的问题是,输入以前没有记录的名字时,出现死循环。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:sr.rar


--  作者:Hyphen
--  发布时间:2016/8/2 17:15:00
--  
去掉CurrentChanged事件里的msgbox就没有问题了。

表失去焦点,再获取焦点就会触发CurrentChanged,而CurrentChanged里的msgbox又会使表失去焦点