Foxtable(狐表)用户栏目专家坐堂 → 双击弹错?


  共有1795人关注过本帖树形打印复制链接

主题:双击弹错?

帅哥哟,离线,有人找我吗?
yancheng
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:843 积分:5982 威望:0 精华:0 注册:2013/6/29 9:36:00
双击弹错?  发帖心情 Post By: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("供应商编号")
图片点击可在新窗口打开查看此主题相关图片如下:uc截图20170820164018.jpg
图片点击可在新窗口打开查看
            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("表") = "购piao登记" Then
    'Dim tbl As Table = Tables("添加供应商_Table1")
    Dim dwbh As WinForm.TextBox= Forms(vars("表")).Controls("销货单位编号")
    Dim dwmc As WinForm.TextBox = Forms("购piao登记").Controls("销货单位名称")
    Dim lssb As WinForm.TextBox = Forms("购piao登记").Controls("销货单位纳税人识别号")
    Dim dz As WinForm.TextBox = Forms("购piao登记").Controls("销货单位地址及电话")
    Dim khh As WinForm.TextBox = Forms("购piao登记").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

 回到顶部
帅哥哟,离线,有人找我吗?
yancheng
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:843 积分:5982 威望:0 精华:0 注册:2013/6/29 9:36:00
  发帖心情 Post By:2017/8/29 15:59:00 [显示全部帖子]

我试了一下,上面的我提的问题。
加上MSGBOX后,他不弹错了。
感觉不像是代码有问题。而且我在不发布时,不会弹错。弹错都是在发布后的项目里。

怎么处理好一些?有没有什么延时的代码?代替msgbox.是不是就解决了?

 回到顶部
帅哥哟,离线,有人找我吗?
yancheng
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:843 积分:5982 威望:0 精华:0 注册:2013/6/29 9:36:00
  发帖心情 Post By: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

这个是:合同编号 ,的双击事件代码如下:(添加合同编号 ,在加上msgbox时,不弹错;)

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
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:843 积分:5982 威望:0 精华:0 注册:2013/6/29 9:36:00
  发帖心情 Post By:2017/8/29 16:15:00 [显示全部帖子]

弹错,在同时添加: 合同、员工、客户、供应商的 ;多个时,只有第一添加时,双击会出错,后面就不出错了。

确定了。我在:合同、员工、客户、供应商的 ;添加 窗口的双击事件都加了:msgbox后,就不弹错了。

[此贴子已经被作者于2017/8/29 16:15:07编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
yancheng
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:843 积分:5982 威望:0 精华:0 注册:2013/6/29 9:36:00
  发帖心情 Post By:2017/8/29 17:12:00 [显示全部帖子]

还不是行,一样的问题,这个东东确实不好做例子。太多窗口和表 了。我看再再吧。

老师,帮我看一下,可能 是哪里 出问题了?

 回到顶部
帅哥哟,离线,有人找我吗?
yancheng
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:843 积分:5982 威望:0 精华:0 注册:2013/6/29 9:36:00
  发帖心情 Post By:2017/8/29 17:27:00 [显示全部帖子]

真的是,有msgbox就不会弹错。没有就要弹错。(发布的项目。不发布也不弹错。)我试了好几次。

 回到顶部
帅哥哟,离线,有人找我吗?
yancheng
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:843 积分:5982 威望:0 精华:0 注册:2013/6/29 9:36:00
  发帖心情 Post By:2017/8/29 17:38:00 [显示全部帖子]

DoubleClick事件,加上代码

 

e.Cancel = True

操作了。也是最新版。都是依旧



 回到顶部
帅哥哟,离线,有人找我吗?
yancheng
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:843 积分:5982 威望:0 精华:0 注册:2013/6/29 9:36:00
  发帖心情 Post By:2017/8/29 18:56: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("科目代码")
            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("表")="凭证.凭证明细"
                            Forms(str2(i)).show()
                            'e.Cancel = True
                            'Return
                        End If
                    End If
                Next
              Forms("会计科目").Close
            End If
            'Next
        End If
    End If
End If

 回到顶部