Foxtable(狐表)用户栏目专家坐堂 → 请老大看看这是什么错误


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

主题:请老大看看这是什么错误

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


加好友 发短信
等级:四尾狐 帖子:810 积分:5250 威望:0 精华:0 注册:2009/2/6 10:38:00
请老大看看这是什么错误  发帖心情 Post By:2010/7/13 9:29:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:7198bb70-d541-42d9-980b-150a0d188fb4.jpg
图片点击可在新窗口打开查看

 

请老大看看这是什么问题,引发错误的代码是:

 

'''数据表之间相互引用数据
Dim dt As Datatable = Datatables("数据引用总表")
For Each c As Col In Currenttable.Cols
    Dim dr As Datarow =dt.Find("[目标表] = '" & Currenttable.Datatable.Name & "' And [目标列] = '" & c.Name & "'")
    If dr IsNot Nothing Then
        Dim yb As String = dr("源表")
        Dim yl As String = dr("源列")
        Dim mb As String = dr("目标表")
        Dim ml As String = dr("目标列")
        Dim ygl As String = dr("源关联")
        Dim bgl As String = dr("标关联")
        Dim ybdr As Datarow = Datatables(yb).Find("[" & ygl & "] = '" & Currenttable.Current(bgl) & "'")
        If ybdr IsNot Nothing Then
            If ybdr.IsNull(yl) Then
                Currenttable.Current(ml) = Nothing
            Else
                Currenttable.Current(ml) = ybdr(yl)
            End If
        End If
    End If
Next

 

上述代码引发错误的条件是,当前表没有行,或没有加载行。

请老大指点,如何解决这个问题。


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/7/13 9:56:00 [只看该作者]

看看全局表事件CurrentChanged

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


加好友 发短信
等级:四尾狐 帖子:810 积分:5250 威望:0 精华:0 注册:2009/2/6 10:38:00
  发帖心情 Post By:2010/7/13 10:24:00 [只看该作者]

上面贴出的代码就是CurrentChanged全局表事件

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


加好友 发短信
等级:四尾狐 帖子:810 积分:5250 威望:0 精华:0 注册:2009/2/6 10:38:00
  发帖心情 Post By:2010/7/13 10:26:00 [只看该作者]

我的项目的设计大部分已经完成,就在设置加载的时候又出现了这样的现象,真是搞不明白,错在哪里

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


加好友 发短信
等级:四尾狐 帖子:810 积分:5250 威望:0 精华:0 注册:2009/2/6 10:38:00
  发帖心情 Post By:2010/7/13 10:28:00 [只看该作者]

出现上面的错误,是在另一个表点击的时候就会出现,这个表于另一个表有关联,且这个表没有行或加载行的时候出现


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


加好友 发短信
等级:四尾狐 帖子:810 积分:5250 威望:0 精华:0 注册:2009/2/6 10:38:00
  发帖心情 Post By:2010/7/13 10:34:00 [只看该作者]

老大,我想是不是应该判断没有行的情况,没有行的判断如何写,请老大指点

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/7/13 10:46:00 [只看该作者]

你贴的是全局表事件中的代码,还是表事件中的代码?

我觉得全局表事件不应该有这样的代码。

 

实在不行,就传项目上来看看

[此贴子已经被作者于2010-7-13 10:47:03编辑过]

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


加好友 发短信
等级:四尾狐 帖子:810 积分:5250 威望:0 精华:0 注册:2009/2/6 10:38:00
  发帖心情 Post By:2010/7/13 10:50:00 [只看该作者]

这是全局表事件代码,我的这段代码的功能是在一个数据引用总表中设置表间的数据引用,然后由这段代码来实现,这样给用户更大的方便。没有行的判断如何写,请老大指点

我想应该有解决的办法

[此贴子已经被作者于2010-7-13 10:52:42编辑过]

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


加好友 发短信
等级:四尾狐 帖子:810 积分:5250 威望:0 精华:0 注册:2009/2/6 10:38:00
  发帖心情 Post By:2010/7/13 11:12:00 [只看该作者]

老大,解决了,就是加一句判断行的句子。

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/7/13 11:14:00 [只看该作者]

通过代码看不出啥,全局表事件对任何表都有效,也就是在任何一个表中换行,都会执行全局CurrentChanged事件,问题的原因可能也在此。

 

If e.Table.Name = "XXX" Then

    Dim dt As Datatable = Datatables("数据引用总表")

    For Each c As Col In Currenttable.Cols
    Dim dr As Datarow =dt.Find("[目标表] = '" & Currenttable.Datatable.Name & "' And [目标列] = '" & c.Name & "'")
    If dr IsNot Nothing Then
        Dim yb As String = dr("源表")
        Dim yl As String = dr("源列")
        Dim mb As String = dr("目标表")
        Dim ml As String = dr("目标列")
        Dim ygl As String = dr("源关联")
        Dim bgl As String = dr("标关联")
        Dim ybdr As Datarow = Datatables(yb).Find("[" & ygl & "] = '" & Currenttable.Current(bgl) & "'")
        If ybdr IsNot Nothing Then
            If ybdr.IsNull(yl) Then
                Currenttable.Current(ml) = Nothing
            Else
                Currenttable.Current(ml) = ybdr(yl)
            End If
        End If
    End If
Next

 

 

 

 

 

 

 


 回到顶部
总数 25 1 2 3 下一页