以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]统计报表中的Build方法与BuildDataSource方法区别? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=35166) |
-- 作者:kolen -- 发布时间:2013/6/25 15:53:00 -- [求助]统计报表中的Build方法与BuildDataSource方法区别? 统计报表中的Build方法与BuildDataSource方法区别?
在看帮助文件“统计与查询”章节,看到,有的时候用.Build(),有的时候用.BuildDataSource(),两者到底有什么区别呢?狐爸爸! |
-- 作者:狐狸爸爸 -- 发布时间:2013/6/25 15:56:00 -- build直接生成一个统计表,在主界面中显示,就像通过菜单统计一样。 buildDatasource生成的统计表,不会显示在主界面中,通常用于动态绑定到窗口中的Table控件:
http://www.foxtable.com/help/topics/1909.htm
|
-- 作者:kolen -- 发布时间:2013/6/25 16:07:00 -- 狐爸爸:下面的代码红色那句不要就会出错,但是要了就会在主界面中看到统计表,为了不显示统计表1,我该怎么修改呢?
\'----------以下是结账运算代码 Tables("仓库总账").Filter = "[期间] = \'" & Date1.Month & "\'" |
-- 作者:zaianda -- 发布时间:2013/6/25 16:10:00 -- 一般在进行组合多个统计结果时会用到buildDatasource,比如:
Dim b As New GroupTableBuilder("统计表1",DataTables("订单"))
与Build相比,buildDatasource可以生成不显示在主界面,但是能绑定table的表格。最重要的是它生成的统计表是fxDataSource类型, 可以使用Combine方法对多个统计表进行合并。所以在组合多个统计表时常常要用到它。 |
-- 作者:Bin -- 发布时间:2013/6/25 16:11:00 -- 最简单的办法就是.设置这个表的 visible=false |
-- 作者:kolen -- 发布时间:2013/6/25 16:15:00 -- 以下是引用Bin在2013-6-25 16:11:00的发言:
最简单的办法就是.设置这个表的 visible=false 这也是个办法. GroupTableBuilder
另外以上类型生成的都是临时表,对吗?我重新打开项目后,统计表1就会不见了。 [此贴子已经被作者于2013-6-25 16:15:58编辑过]
|
-- 作者:Bin -- 发布时间:2013/6/25 16:24:00 -- 是的. |
-- 作者:don -- 发布时间:2013/6/25 16:40:00 -- 看樓主的代碼,這樣就達到目的吧: Dim t1 As Table = Tables("仓库总账") Dim dt1,dt2 As DataTable Dim flt,s1 As String Dim Date1,Date2 As Date Date1 = Tables("月末结账").Current("结账期_起") Date2 = Tables("月末结账").Current("结账期_讫") dt1 = DataTables("采购入库单明细表") dt2 = DataTables("生产入库单明细") s1 = "[日期] >= #" & Date1 & "# And [日期]<= #" & Date2 & "#" t1.Filter = "[期间] = \'" & Date1.Month & "\'" For Each r2 As Row In t1.Rows flt = s1 & " and 品号 = \'" r2("品号") & "\'" r2("入库数量") = dt1.Compute("Sum(数量)",flt) + dt2.Compute("Sum(数量)",flt) r2("入库金额") = dt1.Compute("Sum(金额)",flt) + dt2.Compute("Sum(金额)",flt) Next t1.DataTable.save
|
-- 作者:狐狸爸爸 -- 发布时间:2013/6/25 16:56:00 -- 以下是引用don在2013-6-25 16:40:00的发言:
看樓主的代碼,這樣就達到目的吧:
Dim t1 As Table = Tables("仓库总账")
Dim dt1,dt2 As DataTable
Dim flt,s1 As String
Dim Date1,Date2 As Date
Date1 = Tables("月末结账").Current("结账期_起")
Date2 = Tables("月末结账").Current("结账期_讫")
dt1 = DataTables("采购入库单明细表")
dt2 = DataTables("生产入库单明细")
s1 = "[日期] >= #" & Date1 & "# And [日期]<= #" & Date2 & "#"
t1.Filter = "[期间] = \'" & Date1.Month & "\'"
For Each r2 As Row In t1.Rows
flt = s1 & " and 品号 = \'" r2("品号") & "\'"
r2("入库数量") = dt1.Compute("Sum(数量)",flt) + dt2.Compute("Sum(数量)",flt)
r2("入库金额") = dt1.Compute("Sum(金额)",flt) + dt2.Compute("Sum(金额)",flt)
Next
t1.DataTable.save
呵呵,我看着别人的代码就晕,这方面的能力我能有你一半就好了。
|
-- 作者:don -- 发布时间:2013/6/25 17:04:00 -- 哈哈,互換吧,我給你一半,你給俺一半,包括Money |