以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  多表填充  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=173730)

--  作者:实话实说
--  发布时间:2021/12/13 20:35:00
--  多表填充

有材料期初表、材料明细表和统计表1

想将材料明细表和统计表1数据填充到材料期初表

问题:以下代码“月”与期初数据不在同行。

 

Dim g As New Filler
g.SourceTable = DataTables("材料明细") \'指定数据来源
g.SourceCols = "月" \'指定数据来源列
g.DataTable = DataTables("材料期初") \'指定数据接收表
g.DataCols = "月" \'指定数据接收列
g.ExcludeExistValue = True \'排除接收表中已经存在的内容
g.Distinct = True \'排除重复内容,排除已有内容和空白值
g.Append = True \'增加新行接收数据
g.Fill() \'填充数据

Dim f As New Filler
f.SourceTable = DataTables("统计表1") \'指定数据来源
f.SourceCols = "材料代码,材料,单位,期初数量,期初金额" \'指定数据来源列
f.DataTable = DataTables("材料期初") \'指定数据接收表
f.DataCols = "材料代码,材料,单位,期初数量,期初金额" \'指定数据接收列
f.ExcludeExistValue = True \'排除接收表中已经存在的内容
f.Distinct = True \'排除重复内容,排除已有内容和空白值
f.Append = True \'增加新行接收数据
f.Fill() \'填充数据


--  作者:有点蓝
--  发布时间:2021/12/13 20:48:00
--  
第二个表使用这种方法填充:http://www.foxtable.com/webhelp/topics/1533.htm

使用find查询到对应的行,再赋值

--  作者:实话实说
--  发布时间:2021/12/13 21:05:00
--  

帮忙写下代码好吗


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


--  作者:有点蓝
--  发布时间:2021/12/13 21:14:00
--  
Dim Cols1() As String = {"来源列一","来源列二","来源列三"}
Dim 
Cols2() As String = {"接收列一","接收列二","接收列三"}
For Each 
dr1 As DataRow In DataTables("
材料明细").datarows
    Dim 
dr2 As DataRow = DataTables("
材料期初").find("月=\'" & dr1("月") & "\'")
if dr2 is nothing then dr2 = DataTables("材料期初").addnew
    For i As Integer = 0 To Cols1.Length -1
        
dr2(Cols2(i)) = dr1(Cols1(i
))
    Next
Next