以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  双向关联表的position改变时,刷新数据出错。  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=153906)

--  作者:lur320
--  发布时间:2020/8/27 10:50:00
--  双向关联表的position改变时,刷新数据出错。

有两个表,通过一列序列号作为关联列。双向关联。

 

在position change的代码里面都有下面的内容。

表A的:

Dim r As Row = Tables("表A").Current
If r IsNot Nothing Then
    Dim fl As String = "orderindification = \'"  & r("orderindification") & "\'"
    \'r.Load() \'加载父行
    \'LockBaseMainForm() \'锁定主窗口    
    DataTables("表B").RemoveFor(fl) \'移除当前订单的订单明细
    DataTables("表B").AppendLoad(fl) \'追载当前订单的订单明细    
   \' UnLockBaseMainForm() \'解锁主窗口
End If

 

表B 的:

Dim r As Row = Tables("表B").Current
If r IsNot Nothing Then
    Dim fl As String = "orderindification= \'" & r("orderindification") & "\'"
    \'r.Load() \'加载父行
    \'LockBaseMainForm() \'锁定主窗口orderindification
   
    DataTables("表A").RemoveFor(fl) \'移除当前订单的订单明细
    DataTables("表A").AppendLoad(fl) \'追载当前订单的订单明细
   
    \' UnLockBaseMainForm() \'解锁主窗口
End If

 

然后在选择一个表的某一行时。就会报错。各种各样的错误。

要么 表A的选中的行数据丢失,要么显示下面的错误。

 


图片点击可在新窗口打开查看此主题相关图片如下:11.png
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2020/8/27 11:37:00
--  
这种用法不能使用双向关联
--  作者:lur320
--  发布时间:2020/8/27 13:07:00
--  

如何在双向关联时刷新数据?

 

现在的临时措施是当打开表A的时候,加载整个表B。然后选择行的时候不刷新数据。这样速度太慢

 

 


--  作者:有点蓝
--  发布时间:2020/8/27 13:39:00
--  
没有办法,有些用法本来就是有冲突的。不是特别必要,个人不建议使用双向关联。