以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  追载新数据时子表不能即时加载新数据  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=125104)

--  作者:whx007
--  发布时间:2018/9/19 23:37:00
--  追载新数据时子表不能即时加载新数据

销售订单和销售明细表通过订单号关联,订单出库明细表和销售明细表通过订单号以及产品型号关联。

局域网使用时通过刷新按钮刷新数据,刷新按钮代码如下:

Dim id As Integer = DataTables("销售订单").Compute("Max(_Identify)")
Dim Filter As String = "[_Identify] > " & id
DataTables("销售订单").AppendLoad(Filter, False)

销售订单CurrentChanged代码如下(窗口表副表也有相同的代码):

If e.Table.Current IsNot Nothing Then
    Dim Filter As String = "订单号 = \'" & e.Table.Current("订单号") & "\'"
    If DataTables("销售明细表").Find(Filter) Is Nothing
        DataTables("销售明细表").AppendLoad(Filter) \'则追载此订单的订单明细
    End If
End If

销售销售明细表CurrentChanged代码如下(窗口表副表也有相同的代码):

If e.Table.Current IsNot Nothing Then
    Dim Filter As String = "订单号 = \'" & e.Table.Current("订单号") & "\'"
    If DataTables("订单出库明细表").Find(Filter) Is Nothing Then \'如果对应的订单明细没有加载过
        DataTables("订单出库明细表").AppendLoad(Filter) \'则追载此订单的订单明细
    End If
End If

 

现在的问题是,局域网A用户新增一个订单,B用户点刷新按钮追载新数据,无论是在窗口还是本表,销售明细表可以追载最新的数据进来,但是订单出库明细表在窗口表和本表都不能追载。当A用户再增加一个新订单后,B用户可以看到上一个订单的订单出库明细表数据追载进来了。

请问这是什么原因,为什么不能即时追载进来?


--  作者:有点甜
--  发布时间:2018/9/20 8:52:00
--  

看看这里吧,代码写到afterLoad事件才对

 

http://www.foxtable.com/webhelp/scr/2894.htm

 

http://www.foxtable.com/webhelp/scr/2932.htm

 

http://www.foxtable.com/webhelp/scr/2228.htm

 


--  作者:whx007
--  发布时间:2018/9/20 16:06:00
--  
我采用的是父表和子表同步加载之三的示例啊,写到了CurrentChanged 把下面的代码写到afterload 吗? If e.Table.Current IsNot Nothing Then Dim Filter As String = "订单号 = \'" & e.Table.Current("订单号") & "\'" If DataTables("订单出库明细表").Find(Filter) Is Nothing Then \'如果对应的订单明细没有加载过 DataTables("订单出库明细表").AppendLoad(Filter) \'则追载此订单的订单明细 End If End If
[此贴子已经被作者于2018/9/20 16:25:48编辑过]

--  作者:whx007
--  发布时间:2018/9/20 17:14:00
--  
订单出库明细表和销售明细表通过订单号以及产品型号关联,属于多字段关联不能使用loadchildren 我把示例三的代码写到销售明细表afterload 也没起作用 该怎么做甜老师
[此贴子已经被作者于2018/9/20 17:22:19编辑过]

--  作者:有点甜
--  发布时间:2018/9/20 17:31:00
--  
以下是引用whx007在2018/9/20 17:14:00的发言:
订单出库明细表和销售明细表通过订单号以及产品型号关联,属于多字段关联不能使用loadchildren 我把示例三的代码写到销售明细表afterload 也没起作用该怎么做甜老师
[此贴子已经被作者于2018/9/20 17:22:19编辑过]

 

1、如果你点击切换销售明细表的不同行,订单出库明细表能否加载新数据出来?

 

2、如果1还是无法加载,你要改成removefor,然后AppendLoad http://www.foxtable.com/webhelp/scr/2914.htm

 


--  作者:whx007
--  发布时间:2018/9/20 18:51:00
--  

甜老师,1还是无法加载。

改成如下代码放到销售明细表的afterload 和CurrentChanged 都没起作用。

If Tables("销售明细表").Current IsNot Nothing Then
    Dim Filter As String = "订单号 = \'" &  Tables("销售明细表").Current("订单号") & "\'"
    DataTables("订单出库明细表").RemoveFor(Filter)
    DataTables("订单出库明细表").AppendLoad(Filter) \'则追载此订单的订单明细
End If


--  作者:有点甜
--  发布时间:2018/9/20 19:11:00
--  

如果改成这样呢?

 

msgbox(1)

If Tables("销售明细表").Current IsNot Nothing Then

msgbox(2)
    Dim Filter As String = "订单号 = \'" &  Tables("销售明细表").Current("订单号") & "\'"
    DataTables("订单出库明细表").loadfilter = Filter

    DataTables("订单出库明细表").load
End If


--  作者:whx007
--  发布时间:2018/9/20 19:15:00
--  

问题已经找到了,订单出库明细表保存的问题。谢谢甜老师!