Rss & SiteMap
Foxtable(狐表) http://www.foxtable.com
此主题相关图片如下: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
上述代码引发错误的条件是,当前表没有行,或没有加载行。
请老大指点,如何解决这个问题。
出现上面的错误,是在另一个表点击的时候就会出现,这个表于另一个表有关联,且这个表没有行或加载行的时候出现
你贴的是全局表事件中的代码,还是表事件中的代码?
我觉得全局表事件不应该有这样的代码。
实在不行,就传项目上来看看
这是全局表事件代码,我的这段代码的功能是在一个数据引用总表中设置表间的数据引用,然后由这段代码来实现,这样给用户更大的方便。没有行的判断如何写,请老大指点
我想应该有解决的办法
通过代码看不出啥,全局表事件对任何表都有效,也就是在任何一个表中换行,都会执行全局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