以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  SQLCrossTableBuilder示范代码有误?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=10105)

--  作者:hhbb
--  发布时间:2011/5/21 14:29:00
--  SQLCrossTableBuilder示范代码有误?

帮助文件中,SQLCrossTableBuilder统计单个数据表的3个示范代码报错!

 

 
此主题相关图片如下:bcl.jpg
按此在新窗口浏览图片

 

 

 

SQLCrossTableBuilder

统计单个数据表

在运行下面的示例之前,请打开CaseStudy目录下的文件:统计演示.Table

示例一

普通的统计,SQLCrossTableBuilder和CrossTableBuilder的用法基本一样。
例如统计同一客户订购不同产品的数量:

Dim b As New SQLCrossTableBuilder("统计表1","订单")
b.HGroups.AddDef("客户") \'添加客户列用于水平分组
b.VGroups.AddDef("产品","产品_{0}") \'添加产品列用于垂直分组,并设置了Pattern参数
b.Totals.AddDef("数量") \'添加数量列用于统计
b.Build \'生成统计表
Maintable = Tables("统计表1") \'打开生成的统计表

生成的统计结果:

 

示例二

假定金额列是一个表达式列,根据数量、单价计算得出金额。
现在要统计同一客户订购不同产品的数量和金额,且要直接统计后台数据,由于CrossTableBuilder是不能统计表达式列,也不能自定义统计表达式,对于此类统计是无能为力的。
如果用SQLCrossTableBuilder则很简单:

Dim b As New SQLCrossTableBuilder("统计表1","订单")
b.HGroups.AddDef("客户")
b.VGroups.AddDef("产品")
b.Totals.AddDef("数量")
b.Totals.AddExp("金额","[数量] * [单价] * (1 - [折扣])") \'
b.Build
Maintable = Tables("统计表1")

 

示例三

不仅是统计列,分组列也可以是表达式:

Dim b As New SQLCrossTableBuilder("统计表1","订单")
b.HGroups.AddExp("客户","Right([客户],2)")
b.VGroups.AddExp("产品","Right([产品],2)","产品_{0}")
b.Totals.AddDef("数量")
b.Build
Maintable = Tables("统计表1")


--  作者:狐狸爸爸
--  发布时间:2011/5/21 14:38:00
--  
测试没事,你做个例子上来。
--  作者:hhbb
--  发布时间:2011/5/21 14:47:00
--  
以下是引用狐狸爸爸在2011-5-21 14:38:00的发言:
测试没事,你做个例子上来。

晕了,原来是用  CaseStudy目录下的文件:多表统计.Table 测试,此订单无[客户],也无[产品]


--  作者:狐狸爸爸
--  发布时间:2011/5/21 14:50:00
--  
图片点击可在新窗口打开查看