Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共5 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:如何关联表填充

1楼
lihe60 发表于:2010/11/5 16:38:00
 

dim f As New Filler
f
.SourceTable = DataTables("订单") '指定数据来源
f
.SourceCols = "产品,客户" '指定数据来源列
f
.DataTable = DataTables("统计") '指定数据接收表
f
.DataCols = "产品,客户" '指定数据接收列
f
.Fill()
'填充数据

 

f.DataTable = DataTables("统计") '指定数据接收表,因业务需要,此处需要用table格式的而不是DataTable格式的,即此处要用关联表。希望增加这样的功能。

 

[此贴子已经被作者于2010-11-5 16:38:21编辑过]
2楼
狐狸爸爸 发表于:2010/11/5 17:11:00
填充并非一定要Filler,自己编码,想怎么样都行的,我复制一段帮助给你,你尝试自己写一下:
 
 
前面介绍了用Filler进行数据填充,Filler的设置很丰富,使用比较灵活。

如果只是简单地将数据从一个表填充到另一个表,也不用考虑重复值和现有值,那么手工编码可能是一个更好的选择,因为这样性能更高。
例如需要从表A中,将金额大于1000的记录,复制到表B中,假定两个表的结构一样:
 
For Each dr1 As DataRow In DataTables("表A").Select("[金额] > 100")
    Dim dr2 As DataRow = DataTables("表B").AddNew()
    For Each dc As DataCol in DataTables("表A").DataCols
        dr2(dc.Name) = dr1(dc.name)
    Next
Next
 
如果表A和表B的结构不同,就需要定义数据来源列和数据接收列,例如:
 
Dim Cols1() As String = {"来源列一","来源列二","来源列三"}
Dim Cols2() As String = {"接收列一","接收列二","接收列三"}
For Each dr1 As DataRow In DataTables("表A").Select("[金额] > 100")
    Dim dr2 As DataRow = DataTables("表B").AddNew()
    For i As Integer = 0 To Cols1.Length -1
        dr2(Cols2(i)) = dr1(Cols1(i))
    Next

[此贴子已经被作者于2010-11-5 17:14:15编辑过]
3楼
caiwenzong 发表于:2010/11/6 7:54:00
以下是引用狐狸爸爸在2010-11-5 17:11:00的发言:
填充并非一定要Filler,自己编码,想怎么样都行的,我复制一段帮助给你,你尝试自己写一下:
 
 
前面介绍了用Filler进行数据填充,Filler的设置很丰富,使用比较灵活。

如果只是简单地将数据从一个表填充到另一个表,也不用考虑重复值和现有值,那么手工编码可能是一个更好的选择,因为这样性能更高。
例如需要从表A中,将金额大于1000的记录,复制到表B中,假定两个表的结构一样:
 
For Each dr1 As DataRow In DataTables("表A").Select("[金额] > 100")
    Dim dr2 As DataRow = DataTables("表B").AddNew()
    For Each dc As DataCol in DataTables("表A").DataCols
        dr2(dc.Name) = dr1(dc.name)
    Next
Next
 
如果表A和表B的结构不同,就需要定义数据来源列和数据接收列,例如:
 
Dim Cols1() As String = {"来源列一","来源列二","来源列三"}
Dim Cols2() As String = {"接收列一","接收列二","接收列三"}
For Each dr1 As DataRow In DataTables("表A").Select("[金额] > 100")
    Dim dr2 As DataRow = DataTables("表B").AddNew()
    For i As Integer = 0 To Cols1.Length -1
        dr2(Cols2(i)) = dr1(Cols1(i))
    Next

[此贴子已经被作者于2010-11-5 17:14:15编辑过]
[此贴子已经被作者于2010-11-6 7:59:42编辑过]
4楼
lihe60 发表于:2010/11/6 8:05:00
以下是引用狐狸爸爸在2010-11-5 17:11:00的发言:
填充并非一定要Filler,自己编码,想怎么样都行的,我复制一段帮助给你,你尝试自己写一下:
 
 
前面介绍了用Filler进行数据填充,Filler的设置很丰富,使用比较灵活。

如果只是简单地将数据从一个表填充到另一个表,也不用考虑重复值和现有值,那么手工编码可能是一个更好的选择,因为这样性能更高。
例如需要从表A中,将金额大于1000的记录,复制到表B中,假定两个表的结构一样:
 
For Each dr1 As DataRow In DataTables("表A").Select("[金额] > 100")
    Dim dr2 As DataRow = DataTables("表B").AddNew()
    For Each dc As DataCol in DataTables("表A").DataCols
        dr2(dc.Name) = dr1(dc.name)
    Next
Next
 
如果表A和表B的结构不同,就需要定义数据来源列和数据接收列,例如:
 
Dim Cols1() As String = {"来源列一","来源列二","来源列三"}
Dim Cols2() As String = {"接收列一","接收列二","接收列三"}
For Each dr1 As DataRow In DataTables("表A").Select("[金额] > 100")
    Dim dr2 As DataRow = DataTables("表B").AddNew()
    For i As Integer = 0 To Cols1.Length -1
        dr2(Cols2(i)) = dr1(Cols1(i))
    Next

[此贴子已经被作者于2010-11-5 17:14:15编辑过]

如何排除重复列?

5楼
狐狸爸爸 发表于:2010/11/6 8:13:00
用GetUniqueValues取得要填充内容的不重复值即可。
共5 条记录, 每页显示 10 条, 页签: [1]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .01953 s, 2 queries.