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


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

主题:跨表填充

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


加好友 发短信
等级:二尾狐 帖子:502 积分:3620 威望:0 精华:0 注册:2015/4/21 22:45:00
跨表填充  发帖心情 Post By:2018/5/22 10:31:00 [只看该作者]


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

把上图的箭头列的列名填入下图的同一列,对应的上图的数据也填入另外一列。


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

请老师帮忙,谢谢。

Dim f As New Filler
f.SourceTable = DataTables("帐单汇总") '指定数据来源
f.SourceCols = "商家名称,月份,开piao日期" '指定数据来源列
f.DataTable = DataTables("往来帐") '指定数据接收表
f.DataCols = "商家名称,摘要,日期" '指定数据接收列
f.ExcludeExistValue = True
f.ExcludeNullValue = True
f.Distinct = True
f.Fill() '填充数据



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


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


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


加好友 发短信
等级:二尾狐 帖子:502 积分:3620 威望:0 精华:0 注册:2015/4/21 22:45:00
  发帖心情 Post By:2018/5/22 12:34:00 [只看该作者]

Dim kms() As String = {"A","B","C","D","E","F"}
For Each dr1 As DataRow In DataTables("国内物流").DataRows
    For Each km As String In kms
        Dim dr2 As DataRow = DataTables("应付汇总").AddNew()
        dr2("业务类型") = dr1("业务类型")
        dr2("月份") = dr1("月份")
        dr2("业务量") = dr1("业务量")
        dr2("商家名称") = km
        dr2("金额") = dr1(km)
    Next
Next
l老师,这段代码如何避免被填充表出现重复行


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


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

Dim kms() As String = {"A","B","C","D","E","F"}
For Each dr1 As DataRow In DataTables("国内物流").DataRows
    For Each km As String In kms
        Dim dr2 As DataRow = DataTables("应付汇总").find("业务类型='" & dr1("业务类型") & "' and 月份='" & dr1("月份") & "' and 业务量='" & dr1("业务量") & "' and 商家名称='" & km & "'")
        If dr2 Is Nothing Then dr2 = DataTables("应付汇总").addnew
        dr2("业务类型") = dr1("业务类型")
        dr2("月份") = dr1("月份")
        dr2("业务量") = dr1("业务量")
        dr2("商家名称") = km
        dr2("金额") = dr1(km)
    Next
Next

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


加好友 发短信
等级:二尾狐 帖子:502 积分:3620 威望:0 精华:0 注册:2015/4/21 22:45:00
  发帖心情 Post By:2018/5/22 16:03:00 [只看该作者]

 dr2("金额") = dr1(km)

金额=0的不增加行

是不是改成下面
Dim dr2 As DataRow = DataTables("应付汇总").find("业务类型='" & dr1("业务类型") & "' and 月份='" & dr1("月份") & "' and 业务量='" & dr1("业务量") & "' and 商家名称='" & km & "' and 金额 > '0'")

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


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

Dim kms() As String = {"A","B","C","D","E","F"}
For Each dr1 As DataRow In DataTables("国内物流").DataRows
    For Each km As String In kms       
        If dr1(km) > 0 Then
            Dim dr2 As DataRow = DataTables("应付汇总").find("业务类型='" & dr1("业务类型") & "' and 月份='" & dr1("月份") & "' and 业务量='" & dr1("业务量") & "' and 商家名称='" & km & "'")
            If dr2 Is Nothing Then dr2 = DataTables("应付汇总").addnew
            dr2("业务类型") = dr1("业务类型")
            dr2("月份") = dr1("月份")
            dr2("业务量") = dr1("业务量")
            dr2("商家名称") = km
            dr2("金额") = dr1(km)           
        End If
    Next
Next


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


加好友 发短信
等级:二尾狐 帖子:502 积分:3620 威望:0 精华:0 注册:2015/4/21 22:45:00
  发帖心情 Post By:2018/5/23 13:43:00 [只看该作者]

dr2("金额") = dr1(km)    
还有一个问题,按照这样做之后,上面这金额有变化,又增加了一行,比如之前是555的,后面更改数据666后,油会增加一行,而不是把555改成666.


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


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

以下是引用jamhuton在2018/5/23 13:43:00的发言:
dr2("金额") = dr1(km)    
还有一个问题,按照这样做之后,上面这金额有变化,又增加了一行,比如之前是555的,后面更改数据666后,油会增加一行,而不是把555改成666.

 

其余列有没有变化?如果其余列没有变化,是不会重复添加行的。

 

如果还有问题,上传一个项目测试。


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


加好友 发短信
等级:二尾狐 帖子:502 积分:3620 威望:0 精华:0 注册:2015/4/21 22:45:00
  发帖心情 Post By:2018/5/23 14:48:00 [只看该作者]

Dim kms() As String = {"A","B","C","D","E","F"}
For Each dr1 As DataRow In DataTables("国内物流").DataRows
    For Each km As String In kms        
        If dr1(km) > 0 Then
            Dim dr2 As DataRow = DataTables("应付汇总").find("业务类型='" & dr1("业务类型") & "' and 月份='" & dr1("月份") & "' and 业务量='" & dr1("业务量") & "' ")
            If dr2 Is Nothing Then dr2 = DataTables("应付汇总").addnew
            dr2("业务类型") = dr1("业务类型")
            dr2("月份") = dr1("月份")
            dr2("业务量") = dr1("业务量")
            dr2("商家名称") = km
            dr2("金额") = dr1(km)            
        End If
    Next
Next


把下面红色的部分删除了貌似没问题了

 Dim dr2 As DataRow = DataTables("应付汇总").find("业务类型='" & dr1("业务类型") & "' and 月份='" & dr1("月份") & "' and 业务量='" & dr1("业务量") & "' and 商家名称='" & km & "'")


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


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

回复9楼,如果你不需要【商家名称】作判断,那就可以删掉。否则,你要加上的。

 回到顶部