以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 双击弹错? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=105478) |
-- 作者:yancheng -- 发布时间:2017/8/20 17:19:00 -- 双击弹错? 添加:供应商,双击,弹错; 双击事件如下: \'Dim str2() As String = {"供应商材料汇总表","供应商材料明细表","进货材料付款汇总表"} \'For i1 As Integer = 0 To str2.Length-1 Dim tbl As Table = Tables("添加供应商_Table1") If vars("表") > "" And Tables.Contains(vars("表")) Then Dim dr As Row = Tables(vars("表")).Current If dr IsNot Nothing Then If Tables(vars("表")).Cols.Contains("供应商编号") Then dr("供应商编号") = tbl.Current("供应商编号") ElseIf Tables(vars("表")).Cols.Contains("单位编号") Then dr("往来单位") = tbl.Current("公司名称") ElseIf Tables(vars("表")).Cols.Contains("销货单位编号") Then dr("销货单位编号") = tbl.Current("供应商编号") dr("销货单位名称") = tbl.Current("公司名称") End If End If e.Form.Close() vars("表") = "" ElseIf vars("表") = "购票登记" Then \'Dim tbl As Table = Tables("添加供应商_Table1") Dim dwbh As WinForm.TextBox= Forms(vars("表")).Controls("销货单位编号") Dim dwmc As WinForm.TextBox = Forms("购票登记").Controls("销货单位名称") Dim lssb As WinForm.TextBox = Forms("购票登记").Controls("销货单位纳税人识别号") Dim dz As WinForm.TextBox = Forms("购票登记").Controls("销货单位地址及电话") Dim khh As WinForm.TextBox = Forms("购票登记").Controls("销货单位开户行及账号") If tbl.Current IsNot Nothing Then dwbh.value = tbl.Current("供应商编号") dwmc.value = tbl.Current("公司名称") lssb.value = tbl.Current("纳税人识别号") dz.value = tbl.Current("地址及电话") khh.value = tbl.Current("开户行及帐号") End If e.Form.Close() vars("表") = "" Else \'If vars("表") = str2(i1) Then Dim gys As WinForm.ComboBox = Forms(vars("表")).Controls("ComboBox1") If tbl.Current IsNot Nothing Then gys.value = tbl.Current("姓名") End If e.Form.Close() vars("表") = "" End If 有关调用实时(JIT)调试而不是此对话框的详细信息, 请参见此消息的结尾。 ************** 异常文本 ************** System.NullReferenceException: 未将对象引用设置到对象的实例。 在 Foxtable.O O O o.o00__Ooo() 在 Foxtable.Table.get_DataTable() 在 Foxtable.o_O0_oO0.O_O__O_o(Object A_0, RowColEventArgs A_1) 在 C1.Win.C1FlexGrid.C1FlexGridBase.OnMouseLeaveCell(RowColEventArgs e) 在 C1.Win.C1FlexGrid.C1FlexGridBase.#Adb(Point #F) 在 C1.Win.C1FlexGrid.C1FlexGridBase.OnMouseLeave(EventArgs e) 在 System.Windows.Forms.Control.WmMouseLeave(Message& m) 在 System.Windows.Forms.Control.WndProc(Message& m) 在 C1.Win.C1FlexGrid.Util.BaseControls.ScrollableControl.WndProc(Message& m) 在 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) 在 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) 在 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) ************** 已加载的程序集 ************** mscorlib 程序集版本: 2.0.0.0 Win32 版本: 2.0.50727.8669 (QFE.050727-8600) 基本代码: file:///C:/Windows/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll ---------------------------------------- Foxtable 程序集版本: 2017.8.19.1 Win32 版本: 2017.08.19.1 基本代码: file:///F:/data$/project/Publish/人机材管理系统.exe ---------------------------------------- Foxtable.Lib 程序集版本: 2017.8.3.1 Win32 版本: 2017.08.03.1 基本代码: file:///F:/data$/project/Publish/Foxtable.Lib.DLL ---------------------------------------- System.Windows.Forms 程序集版本: 2.0.0.0 Win32 版本: 2.0.50727.5483 (Win7SP1GDR.050727-5400) 基本代码: file:///C:/Windows/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll ---------------------------------------- System 程序集版本: 2.0.0.0 Win32 版本: 2.0.50727.8759 (QFE.050727-8700) 基本代码: file:///C:/Windows/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll ---------------------------------------- System.Drawing 程序集版本: 2.0.0.0 Win32 版本: 2.0.50727.5495 (Win7SP1GDR.050727-5400) 基本代码: file:///C:/Windows/assembly/GAC_MSIL/System.Drawi
|
-- 作者:有点甜 -- 发布时间:2017/8/20 17:42:00 -- 看看是否这句代码有错 Tables(vars("表")).Current
如果你表格没有数据,引用表自然会出错。
调试技巧 http://www.foxtable.com/webhelp/scr/1485.htm
|
-- 作者:yancheng -- 发布时间:2017/8/29 15:59:00 -- 我试了一下,上面的我提的问题。 加上MSGBOX后,他不弹错了。 感觉不像是代码有问题。而且我在不发布时,不会弹错。弹错都是在发布后的项目里。 怎么处理好一些?有没有什么延时的代码?代替msgbox.是不是就解决了?
|
-- 作者:yancheng -- 发布时间:2017/8/29 16:10:00 -- 我是在录入会计科目后, 来弹出:添加 :合同、员工、客户、供应商的;代码如下: If e.Node.Nodes.Count = 0 Then Dim strx As String = e.Sender.SelectedNode.Name Dim dr As DataRow = DataTables("会计科目").Find("科目代码 = \'" & strx & " \' And 是否末级 = True ") If dr IsNot Nothing Then Dim r As Row = Tables("凭证.凭证明细").Current If r IsNot Nothing Then r("科目代码") = dr("科目代码") \'For Each dr As DataRow In r.DataRow.GetChildRows("凭证明细") Dim str() As String = {"员工核算","客户核算","合同核算","供应商核算"} Dim str1() As String = {"员工编号","客户编号","合同编号","供应商编号"} Dim str2() As String = {"添加员工编号","添加客户","添加合同编号","添加供应商"} Dim dr1 As DataRow = DataTables("会计科目").SQLFind("[科目代码] = \'" & r("科目代码") & "\'") If dr1 IsNot Nothing Then For i As Integer = 0 To str.Length -1 If dr1.IsNull(str(i)) <> r.IsNull(str1(i)) Then If MessageBox.show("此凭证明细需要录入[" & str1(i) & " ],是否现在录入?","提示!",MessageBoxButtons.YesNo) = DialogResult.Yes Then vars("表")="凭证.凭证明细" e.Form.Close Forms(str2(i)).show() \'e.Cancel = True \'Return End If End If Next End If \'Next Else r("科目代码") = Nothing End If End If End If Dim tbl As Table = Tables("添加合同编号_Table1") msgbox(0) If vars("表") > "" Then msgbox(1) If Tables.Contains(vars("表")) Then msgbox(2) Tables(vars("表")).Current("合同编号") = tbl.Current("合同编号") e.Form.Close() msgbox(3) vars("表") = "" End If End If |
-- 作者:yancheng -- 发布时间:2017/8/29 16:15:00 -- 弹错,在同时添加: 合同、员工、客户、供应商的 ;多个时,只有第一添加时,双击会出错,后面就不出错了。 确定了。我在:合同、员工、客户、供应商的 ;添加 窗口的双击事件都加了:msgbox后,就不弹错了。 [此贴子已经被作者于2017/8/29 16:15:07编辑过]
|
-- 作者:有点甜 -- 发布时间:2017/8/29 16:28:00 -- 和你说的msgbox无关。
删除代码 r("科目代码") = Nothing
如果还有问题,例子发上来。 |
-- 作者:yancheng -- 发布时间:2017/8/29 17:12:00 -- 还不是行,一样的问题,这个东东确实不好做例子。太多窗口和表 了。我看再再吧。 老师,帮我看一下,可能 是哪里 出问题了?
|
-- 作者:有点甜 -- 发布时间:2017/8/29 17:13:00 -- 以下是引用yancheng在2017/8/29 17:12:00的发言:
还不是行,一样的问题,这个东东确实不好做例子。太多窗口和表 了。我看再再吧。 老师,帮我看一下,可能 是哪里 出问题了?
DoubleClick事件,加上代码
e.Cancel = True |
-- 作者:yancheng -- 发布时间:2017/8/29 17:27:00 -- 真的是,有msgbox就不会弹错。没有就要弹错。(发布的项目。不发布也不弹错。)我试了好几次。 |
-- 作者:有点甜 -- 发布时间:2017/8/29 17:31:00 -- 升级到最新版后发布看看。
或者是,把你的项目拷贝一份,把其余的表、窗口删除,单独做个例子发上。 |