Foxtable(狐表)用户栏目专家坐堂 → [求助]统计报表中的Build方法与BuildDataSource方法区别?


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

主题:[求助]统计报表中的Build方法与BuildDataSource方法区别?

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


加好友 发短信
等级:三尾狐 帖子:677 积分:6228 威望:0 精华:0 注册:2012/1/20 17:53:00
[求助]统计报表中的Build方法与BuildDataSource方法区别?  发帖心情 Post By:2013/6/25 15:53:00 [显示全部帖子]

统计报表中的Build方法与BuildDataSource方法区别?

 

在看帮助文件“统计与查询”章节,看到,有的时候用.Build(),有的时候用.BuildDataSource(),两者到底有什么区别呢?狐爸爸!


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


加好友 发短信
等级:三尾狐 帖子:677 积分:6228 威望:0 精华:0 注册:2012/1/20 17:53:00
  发帖心情 Post By:2013/6/25 16:07:00 [显示全部帖子]

 狐爸爸:下面的代码红色那句不要就会出错,但是要了就会在主界面中看到统计表,为了不显示统计表1,我该怎么修改呢?

 

 

 

  '----------以下是结账运算代码
            Dim Date1,Date2 As Date
            Date1 =  Tables("月末结账").Current("结账期_起")
            Date2 =  Tables("月末结账").Current("结账期_讫")
            Dim bd1 As New GroupTableBuilder("统计表1",DataTables("采购入库单明细表"))
            Dim dt1 As fxDataSource
            bd1.Filter = "[日期] >= # " & Date1 & "# And [日期]<= # " & Date2 & "#"
            bd1.Groups.AddDef("品号") '根据品号分组
            bd1.Totals.AddDef("数量","采购_数量") '对数量进行统计
            bd1.Totals.AddDef("金额","采购_金额") '对金额进行统计
            dt1 = bd1.BuildDataSource()
           
            Dim bd2 As New GroupTableBuilder("统计表2",DataTables("生产入库单明细"))
            Dim dt2  As fxDataSource
            bd2.Filter = "[日期] >= #" & Date1 & "# And [日期]<= # " & Date2 & "#"
            bd2.Groups.AddDef("品号") '根据品号分组
            bd2.Totals.AddDef("数量","生产入库_数量") '对数量进行统计
            bd2.Totals.AddDef("金额","生产入库_金额") '对金额进行统计
            dt2 = bd2.BuildDataSource()
           
           
           
            dt1.Combine("品号",dt2,"品号") '将生产入库统计数据组合到采购入库统计数据
           
            dt1.show("统计表1")
           
            With DataTables("统计表1").DataCols  '用表达式列计算库存数据
                .Add("库存_数量",Gettype(Double), "IsNull([采购_数量],0) + ISNULL([生产入库_数量],0)")
                .Add("库存_金额",Gettype(Double), "IsNull([采购_金额],0) + ISNULL([生产入库_金额],0)")
            End With
           
           
            '将计算数据填充到仓库总账中

            Tables("仓库总账").Filter = "[期间] = '" & Date1.Month & "'"
            For Each r1 As DataRow In DataTables("统计表1").DataRows
                For Each r2 As Row In Tables("仓库总账").Rows
                    If r1("品号") = r2("品号") Then
                        r2("入库数量") = r1("库存_数量")
                        r2("入库金额") = r1("库存_金额")
                    End If
                   
                Next
            Next
           Tables("仓库总账").DataTable.save
           


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


加好友 发短信
等级:三尾狐 帖子:677 积分:6228 威望:0 精华:0 注册:2012/1/20 17:53:00
  发帖心情 Post By:2013/6/25 16:15:00 [显示全部帖子]

以下是引用Bin在2013-6-25 16:11:00的发言:
最简单的办法就是.设置这个表的  visible=false

这也是个办法.

GroupTableBuilder
CrossTableBuilder
SQLGroupTableBuilder
SQLCrossTableBuilder
SQLJoinTableBuilder
DataTableBuilder

 

另外以上类型生成的都是临时表,对吗?我重新打开项目后,统计表1就会不见了。

[此贴子已经被作者于2013-6-25 16:15:58编辑过]

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


加好友 发短信
等级:三尾狐 帖子:677 积分:6228 威望:0 精华:0 注册:2012/1/20 17:53:00
  发帖心情 Post By:2013/6/25 17:17:00 [显示全部帖子]

DON我是实在太佩服你了图片点击可在新窗口打开查看图片点击可在新窗口打开查看

 

接着还得再优化下:

1、把多仓库的问题考虑进去;

2、采购入库明细表和生产入库明细表的一些当月新增品号,不在仓库总账的时候的情况。把那些品号加到仓库总账表中。

[此贴子已经被作者于2013-6-25 17:17:10编辑过]

 回到顶部