以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  求助:多表同步加载  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=90854)

--  作者:刘异
--  发布时间:2016/9/22 21:44:00
--  求助:多表同步加载

老师好:如果客户原始订单加载,我要同时加载如下的几个表相同的产品编号数据,现在问题是,只能加载一个内部订单表的数据其它表是空的不能加载进来,如果只写加载一个表,就可以,请问是不是代码写得有问题。

 

我在表事件AfterLoad写了下面的代码(表之间未建立关联):

 

If DataTables("客户原始订单总表").DataRows.Count = 0 Then \'如果订单表没有数据
    DataTables("内部订单总表").LoadFilter = "产品编号 Is Null" \'不加载订单明细
Else
    Dim ids As String
    For Each dr As DataRow In DataTables("客户原始订单总表").DataRows
        ids = ids & ",\'" & dr("产品编号") & "\'"
    Next
    ids= ids.Trim(",")
    DataTables("内部订单总表").LoadFilter = "产品编号 In (" & ids & ")"
End If
DataTables("内部订单总表").Load()


If DataTables("客户原始订单总表").DataRows.Count = 0 Then \'如果订单表没有数据
    DataTables("盘点结存表").LoadFilter = "产品编号 Is Null" \'不加载订单明细
Else
    Dim ids As String
    For Each dr As DataRow In DataTables("客户原始订单总表").DataRows
        ids = ids & ",\'" & dr("产品编号") & "\'"
    Next
    ids= ids.Trim(",")
    DataTables("盘点结存表").LoadFilter = "产品编号 In (" & ids & ")"
End If
DataTables("盘点结存表").Load()

 


If DataTables("客户原始订单总表").DataRows.Count = 0 Then \'如果订单表没有数据
    DataTables("入库明细表").LoadFilter = "产品编号 Is Null" \'不加载订单明细
Else
    Dim ids As String
    For Each dr As DataRow In DataTables("客户原始订单总表").DataRows
        ids = ids & ",\'" & dr("产品编号") & "\'"
    Next
    ids= ids.Trim(",")
    DataTables("入库明细表").LoadFilter = "产品编号 In (" & ids & ")"
End If
DataTables("入库明细表").Load()

 

If DataTables("客户原始订单总表").DataRows.Count = 0 Then \'如果订单表没有数据
    DataTables("客退明细表").LoadFilter = "产品编号 Is Null" \'不加载订单明细
Else
    Dim ids As String
    For Each dr As DataRow In DataTables("客户原始订单总表").DataRows
        ids = ids & ",\'" & dr("产品编号") & "\'"
    Next
    ids= ids.Trim(",")
    DataTables("客退明细表").LoadFilter = "产品编号 In (" & ids & ")"
End If
DataTables("客退明细表").Load()

 


--  作者:188802386
--  发布时间:2016/9/22 21:51:00
--  
试试把几段代码整合到一起来试一下呢
--  作者:刘异
--  发布时间:2016/9/22 21:55:00
--  

合在一起也试过了,也不行!


\'
\'If DataTables("客户原始订单总表").DataRows.Count = 0 Then
\'DataTables("内部订单总表").LoadFilter = "[产品编号] Is Null"
\'DataTables("盘点结存表").LoadFilter = "[产品编号] Is Null"
\'DataTables("入库明细表").LoadFilter = "[产品编号] Is Null"
\'DataTables("客退明细表").LoadFilter = "[产品编号] Is Null"
\'
\'Else
\'Dim ids As String = "\'"
\'For Each dr As DataRow In DataTables("客户原始订单总表").DataRows
\'ids = ids & "\',\'" & dr("产品编号") & "\'"
\'Next
\'DataTables("内部订单总表").LoadFilter = "[产品编号] In (" & ids & ")"
\'DataTables("盘点结存表").LoadFilter = "[产品编号] In (" & ids & ")"
\'DataTables("入库明细表").LoadFilter = "[产品编号] In (" & ids & ")"
\'DataTables("客退明细表").LoadFilter = "[产品编号] In (" & ids & ")"
\'End If
\'
\'DataTables("内部订单总表").Load()
\'DataTables("盘点结存表").Load()
\'DataTables("入库明细表").Load()
\'DataTables("客退明细表").Load()
\'
\'


--  作者:有点蓝
--  发布时间:2016/9/22 22:04:00
--  
试试

Dim filter As String

If DataTables("客户原始订单总表").DataRows.Count = 0 Then \'如果订单表没有数据
    filter = "产品编号 Is Null" \'不加载订单明细
Else
    Dim ids As List(Of String) = DataTables("客户原始订单总表").GetValues("产品编号")
    Dim filter = "产品编号 In (\'" & String.Join("\',\'",ids.ToArray) & "\')"
End If
DataTables("内部订单总表").LoadFilter = filter
DataTables("盘点结存表").LoadFilter = filter
DataTables("入库明细表").LoadFilter = filter
DataTables("客退明细表").LoadFilter = filter
DataTables("内部订单总表").Load()
DataTables("盘点结存表").Load()
DataTables("入库明细表").Load()
DataTables("客退明细表").Load()

--  作者:刘异
--  发布时间:2016/9/22 22:28:00
--  

老师好:出现如下提示。


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


--  作者:刘异
--  发布时间:2016/9/22 22:37:00
--  
如果改为以下代码:没有报错,但是还是加载不了。
Dim filter As String

If DataTables("客户原始订单总表").DataRows.Count = 0 Then \'如果订单表没有数据
    filter = "产品编号 Is Null" \'不加载订单明细
Else
    Dim ids As List(Of String) = DataTables("客户原始订单总表").GetValues("产品编号")
     filter = "产品编号 In (\'" & String.Join("\',\'",ids.ToArray) & "\')"
End If
DataTables("内部订单总表").LoadFilter = filter
DataTables("盘点结存表").LoadFilter = filter
DataTables("入库明细表").LoadFilter = filter
DataTables("客退明细表").LoadFilter = filter
DataTables("内部订单总表").Load()
DataTables("盘点结存表").Load()
DataTables("入库明细表").Load()
DataTables("客退明细表").Load()

--  作者:有点蓝
--  发布时间:2016/9/22 22:56:00
--  
msgbox(filter)看看,

是不是设置了分页,其它照样改改

DataTables("内部订单总表").LoadTop = "100 Percent"

代码不应该有问题的,不行就上例子

--  作者:刘异
--  发布时间:2016/9/22 23:06:00
--  

老师多谢!已解决了。