以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  CurrentChanged事件代码报错,请帮检查哪里出错  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=9185)

--  作者:红叶
--  发布时间:2011/3/9 12:40:00
--  CurrentChanged事件代码报错,请帮检查哪里出错

CurrentChanged事件

If e.Table.Current Is Nothing Then \'如果Current为Nothing
    Return \'则返回
Else
    Tables("采购").Current.DataRow.Load()
    StatusBar.Message2 = "已刷新主表当前行!"
    StatusBar.Refresh
    Dim drs As List(Of DataRow)
    drs = Tables("采购").Current.DataRow.GetChildRows("采购明细")
    For Each dr As DataRow In drs
        dr.Load()
    Next
    StatusBar.Message2 = "已刷新主表当前行和明细表关联行!"
    StatusBar.Refresh
    StatusBar.Reset()
    If e.Table.current("采购订单单号")=Nothing Then
        DataTables("采购订单").LoadFilter="[采购订单编号]=\'\'"
        DataTables("采购订单").Load
        DataTables("采购订单明细").LoadFilter="[采购订单编号] =\'\'"
        DataTables("采购订单明细").Load
    Else
        Dim cmd As New SQLCommand
        Dim dt As DataTable
        Dim db As DataRow
        \'cmd.C \'如果使用外部数据源需指明数据源名称
        cmd.CommandText = "SELECT  采购订单单号 From {采购订单}"
        dt = cmd.ExecuteReader()
        db = dt.Find("采购订单单号 = \'" & trim(Tables("采购").Current("采购订单单号")) & "\'")
        If db IsNot Nothing \'一定要判断是否存在对应的行
            DataTables("采购订单").LoadFilter="[采购订单单号]=\'" & Tables("采购").Current("采购订单单号") & "\'"
            DataTables("采购订单").Load
            Dim s As String = DataTables("采购订单").GetComboListString("采购订单编号")
            DataTables("采购订单明细").LoadFilter = "[采购订单编号] In(\'" & s.Replace("|","\',\'") & "\')"
            DataTables("采购订单明细").Load
            StatusBar.Message2 = "已刷新主表当前行和明细表关联行!"
            StatusBar.Refresh
            StatusBar.Reset()
        Else
            DataTables("采购订单").LoadFilter="[采购订单编号]=\'\'"
            DataTables("采购订单").Load
            DataTables("采购订单明细").LoadFilter="[采购订单编号] =\'\'"
            DataTables("采购订单明细").Load
        End If
    End If
End If

 

报错提示

 


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

不过出现这种报错提示,只是偶尔的,所以没有找到原因

[此贴子已经被作者于2011-3-9 12:43:52编辑过]

--  作者:红叶
--  发布时间:2011/3/9 14:33:00
--  
大侠们帮检查一下了
--  作者:狐狸爸爸
--  发布时间:2011/3/9 14:33:00
--  

只能估计了。

你判断用的是:

 

If e.Table.Current Is Nothing Then

 

实际使用的是:

 

Tables("采购").Current.DataRow.Load()

有的时候,e.table可能不是tables("采购")呢?