以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  如何同步另一个表的某些数据行  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=189396)

--  作者:edisontsui
--  发布时间:2023/11/30 8:15:00
--  如何同步另一个表的某些数据行
现在我在<出入库>这个修改某个物料编号的入库数,我希望在修改之前能够先同步另一个表(即"订单"表)同样物料编号的所有数据行。请问这个代码要怎么样写?

我看到有这个代码:DataTables("订单").DataRows(1).Load(),但是不知道如何定义要重新加载的行。

谢谢。

--  作者:有点蓝
--  发布时间:2023/11/30 8:41:00
--  
举例说明一下,两个表的数据是怎么样的,同步前是怎么样的?同步后是什么结果?
--  作者:edisontsui
--  发布时间:2023/11/30 9:11:00
--  
我在“出入库B”之 Startedit 里面有如下代码:

If e.Col.Name = "合格" OrElse e.Col.Name = "不合格" OrElse e.Col.Name = "合格2" OrElse e.Col.Name = "不合格2" Then
    DataTables("检验频率").Load
End If

希望在编辑“出入库B”之前,先同步一下"检验频率" 这个表。如果"检验频率"这个表数据不多(比如几千行),那么同步可能就很快;如果"检验频率"那里数据比较多,同步起来就可能比较慢,所以,如果能事先筛选一下,让两个表里面同物料编号的才要进行同步(在"检验频率"那里找出与“出入库B”那里当前编辑行同物料编号的行),这样子是不是会快一点。

--  作者:edisontsui
--  发布时间:2023/11/30 9:21:00
--  
DataTables("订单").LoadFilter = "[日期] = #" & Date.Today & "#"
我看到有上面的代码,应该可以达到我的目的。

--  作者:有点蓝
--  发布时间:2023/11/30 9:28:00
--  
建议只加载相关的数据,类似:http://www.foxtable.com/webhelp/topics/2228.htm
--  作者:edisontsui
--  发布时间:2023/11/30 10:45:00
--  
谢谢。
--  作者:edisontsui
--  发布时间:2023/12/7 10:01:00
--  
接3楼问题:

Startedit 里面有如下代码:
If e.Col.Name = "合格" OrElse e.Col.Name = "不合格" OrElse e.Col.Name = "合格2" OrElse e.Col.Name = "不合格2" Then
    DataTables(e.Row("本行数据来源")).LoadFilter = "[物料编号] = \'" & e.Row("物料编号") & "\' and [出入库单号] = \'" & e.Row("出入库单号") & "\'" 
end if

上面的代码里面,e.Row("本行数据来源") 就是一个表名,但是整句代码执行起来好像不起作用,就是不会把尚未加载出来数据行给加载出来。请问是哪里的问题呢?谢谢。

--  作者:有点蓝
--  发布时间:2023/12/7 10:09:00
--  
只是设置了条件,没有加载的代码呀

    DataTables(e.Row("本行数据来源")).LoadFilter = "[物料编号] = \'" & e.Row("物料编号") & "\' and [出入库单号] = \'" & e.Row("出入库单号") & "\'" 
    DataTables(e.Row("本行数据来源")).Load

--  作者:edisontsui
--  发布时间:2023/12/7 10:24:00
--  
果然是。谢谢。