Foxtable(狐表)用户栏目专家坐堂 → 关于填充


  共有1776人关注过本帖树形打印复制链接

主题:关于填充

帅哥哟,离线,有人找我吗?
实话实说
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2649 积分:19390 威望:0 精华:1 注册:2008/9/12 9:19:00
关于填充  发帖心情 Post By:2017/10/27 13:41:00 [只看该作者]

  • ExcludeExistValue

    逻辑型,设为True,排除接收表中已经存在的内容。
     
  • ExcludeNullValue

    逻辑型,设为True,排除空白值。
      接收表中已经存在的内容和空白值具体指的是?
另外,下面代码中,订单表和统计表都有20个字段,有18个字段匹配,另2个字段不匹配,我不想在代码中把字段一一列出,还有何方法填充

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


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/10/27 14:20:00 [只看该作者]

ExcludeExistValue 设置成true,可以排除重复值。

 

For Each dr1 As DataRow In DataTables("表A").Select("")
    Dim dr2 As DataRow = DataTables("表B").AddNew()
    For Each dc As DataCol In DataTables("表A").DataCols
        If DataTables("表B").DataCols.Contains(dc.name) Then
            dr2(dc.Name) = dr1(dc.name)
        End If
    Next
Next


 回到顶部
帅哥哟,离线,有人找我吗?
实话实说
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2649 积分:19390 威望:0 精华:1 注册:2008/9/12 9:19:00
  发帖心情 Post By:2017/10/27 15:02:00 [只看该作者]

同时还有2个不匹配的字段也要填充,比如表A的分类1和产品1,填充到表B的分类2和产品2

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/10/27 15:22:00 [只看该作者]

Dim ary1() As String = {"产品1", "产品2"}
Dim ary2() As String = {"分类1", "分类2"}
For Each dr1 As DataRow In DataTables("表A").Select("")
    Dim dr2 As DataRow = DataTables("表B").AddNew()
    For Each dc As DataCol In DataTables("表A").DataCols
        If DataTables("表B").DataCols.Contains(dc.name) Then
            dr2(dc.Name) = dr1(dc.name)
        End If
    Next
    For i As Integer = 0 To ary1.length-1
        dr2(ary2(i)) = dr1(ary1(i))
    next
Next

 回到顶部
帅哥哟,离线,有人找我吗?
实话实说
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2649 积分:19390 威望:0 精华:1 注册:2008/9/12 9:19:00
  发帖心情 Post By:2017/10/27 15:35:00 [只看该作者]


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

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/10/27 16:07:00 [只看该作者]

Dim ary1() As String = {"分类1", "产品1"}
Dim ary2() As String = {"分类2", "产品2"}
For Each dr1 As DataRow In DataTables("表A").Select("")
    Dim dr2 As DataRow = DataTables("表B").AddNew()
    For Each dc As DataCol In DataTables("表A").DataCols
        If DataTables("表B").DataCols.Contains(dc.name) Then
            dr2(dc.Name) = dr1(dc.name)
        End If
    Next
    For i As Integer = 0 To ary1.length-1
        dr2(ary2(i)) = dr1(ary1(i))
    next
Next
[此贴子已经被作者于2017/10/27 16:07:18编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
实话实说
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2649 积分:19390 威望:0 精华:1 注册:2008/9/12 9:19:00
  发帖心情 Post By:2017/10/27 16:28:00 [只看该作者]

如何排除重复行?

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/10/27 17:24:00 [只看该作者]

Dim ary1() As String = {"分类1", "产品1"}
Dim ary2() As String = {"分类2", "产品2"}

For Each dr1 As DataRow In DataTables("表A").Select("")
    Dim filter As String = "1=1"
    For Each dc As DataCol In DataTables("表A").DataCols
        If DataTables("表B").DataCols.Contains(dc.name) Then
            If dr1.IsNull(dc.name) Then
                filter &= " and " & dc.name & " is null"
            Else
                filter &= " and " & dc.name & " = '" & dr1(dc.name) & "'"
            End If
        End If
    Next
    For i As Integer = 0 To ary1.length-1
        If dr1.IsNull(ary1(i)) Then
            filter &= " and " & ary2(i) & " is null"
        Else
            filter &= " and " & ary2(i) & " = '" & dr1(ary1(i)) & "'"
        End If
    Next
    Dim dr2 As DataRow = DataTables("表B").find(filter)
    If dr2 Is Nothing Then
        dr2 = DataTables("表B").addnew
        For Each dc As DataCol In DataTables("表A").DataCols
            If DataTables("表B").DataCols.Contains(dc.name) Then
                dr2(dc.Name) = dr1(dc.name)
            End If
        Next
        For i As Integer = 0 To ary1.length-1
            dr2(ary2(i)) = dr1(ary1(i))
        Next
    end if
Next


 回到顶部
帅哥哟,离线,有人找我吗?
实话实说
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2649 积分:19390 威望:0 精华:1 注册:2008/9/12 9:19:00
  发帖心情 Post By:2017/10/27 18:17:00 [只看该作者]

谢谢。还有1个问题,在表A和表B中都有1个相同的字段【型号规格】,我不想表A的这个字段填充到表B,尽管是匹配字段(其它匹配字段可以)

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109489 积分:557107 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/10/27 20:04:00 [只看该作者]

For Each dc As DataCol In DataTables("表A").DataCols
            If DataTables("表B").DataCols.Contains(dc.name) andalso dc.name <> "型号规格" Then
                dr2(dc.Name) = dr1(dc.name)
            End If
        Next

 回到顶部
总数 15 1 2 下一页