Foxtable(狐表)用户栏目专家坐堂 → 从两个表提取不同行数据,填充到一个表


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

主题:从两个表提取不同行数据,填充到一个表

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


加好友 发短信
等级:小狐 帖子:322 积分:2680 威望:0 精华:0 注册:2014/6/24 17:29:00
从两个表提取不同行数据,填充到一个表  发帖心情 Post By:2014/12/14 18:05:00 [只看该作者]

前面问过这个问题,目前已能实现基本功能,但细节上还有点小问题。

现在已经达到的效果:

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

实际想要达到的效果:

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

请教要怎么实现,给个思路也好。
为更好说明问题,项目文件一并发上来。


 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:filler问题.zip



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


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

 想办法,先在foxtable里面生成要显示的表,然后再把表导出成报表。


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


加好友 发短信
等级:小狐 帖子:322 积分:2680 威望:0 精华:0 注册:2014/6/24 17:29:00
  发帖心情 Post By:2014/12/14 20:29:00 [只看该作者]

木头脑袋,想来想去搞不定啊

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


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


Dim f As New Filler   '先填充订单统计

f.SourceTable = DataTables("订单明细表") '指定数据来源
f.SourceCols = "客户名称,型号规格,数量,发货日期" '指定数据来源列
f.Distinct = False    '允许出现重复值
f.Filter = "客户名称 = '张三'"
f.DataTable = DataTables("对账单") '指定数据接收表
f.DataCols = "客户名称,型号规格,数量,发货日期" '指定数据接收列
f.Fill() '填充数据

Tables("对账单").Sort = "发货日期"

Dim drs As List(Of DataRow) = DataTables("收款明细表").Select("客户名称 = '张三'", "收款日期")
Dim idx As Integer = drs.Count - Tables("对账单").Rows.Count
If idx > 0 Then Tables("对账单").AddNew(idx)
For i As Integer = 0 To drs.Count - 1
    Tables("对账单").Rows(i)("收款金额") = drs(i)("收款金额")
    Tables("对账单").Rows(i)("收款日期") = drs(i)("收款日期")
Next

Dim Book As New XLS.Book(ProjectPath & "Attachments\对账单.xls")
Dim fl As String = ProjectPath & "Reports\对账单.xls"
Book.Build()   '生成细节区
Book.Save(fl)  '保存工作簿
Dim Proc As New Process '打开工作簿
Proc.File = fl
Proc.Start()

DataTables("对账单").DataRows.Clear


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


加好友 发短信
等级:小狐 帖子:322 积分:2680 威望:0 精华:0 注册:2014/6/24 17:29:00
  发帖心情 Post By:2014/12/14 20:56:00 [只看该作者]

谢谢
我硬是想了一下午没搞定
看来还是得看帮助

    Dim CS1 As Integer = 0
    Dim CS2 As Integer = 0
    CS1 = DataTables("对账单").DataRows.Count   '读取现有行数
    CS2 = DataTables("收款明细表").Select("客户名称='" & txt & "'").Count
    
    If CS1 < CS2 Then '增加行数
        DataTables("收款明细表").AddNew(CS2-CS1)
    End If
    
    Dim i As Integer =0
    For Each dr1 As DataRow In DataTables("收款明细表").Select("客户名称='" & txt & "'")
        Tables("对账单")(i,"收款日期") = dr1("付款日期")
        Tables("对账单")(i,"收款金额") = dr1("付款金额")
        i = i +1
    Next

这段代码是自己想的,图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看
[此贴子已经被作者于2014-12-14 21:05:38编辑过]

 回到顶部