- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ireport4.5教程之交叉表
一个CrossTabs是一种在设计的时候既不确定行数和也不确定列数的一种
表格,在运行环境下它会像下面显示的不同年份的一个销售报表一样。
水果/年份 2004 2005 2006
草莓
野生樱桃
CrossTabs在jasperresports 中从1.1.0版本时开始提供,同时iReport
也从1.1.0开始支持CrossTabs。
Jasperreports的CrossTabs工具允许对行和列的数据进行分组、汇总和自
定义每一个cell里的内容。填充CrossTab的数据可以来自主报表里的dataset
或来自subDataset。使用iReport里提供的向导我们可以简单快速的创建功能
强大的交叉报表组件。
一个CrossTabs本质上是一个表格,行和列的数量取决于填充这个表格的
数据。行和列也可以在groups里做聚合操作。对于每一个行或列的group我
们都可以得到一个细节信息和一个可选的行列数据的汇总。
交叉表向导 (Crosstabwizard)
为了说明怎么让一个crosstab工作起来,我们将使用向导创建一个
crosstab ,当我们在工具条里选择crosstab元素并将其添加到报表中时
crosstab的向导会自动启动。
还是以 DoradoSample里提供的hsql数据里的employee报为例,我们
使用包含下面查询语句的空报表开始:
Select*fromemployee
我们把crosstab放在报表的底部:summaryband
在第一步里我们需要选择一个dataset来填充crosstab ,我们这里使用主
报表里提供的dataset ,点击下一步继续。
在第二步里我们需要定义至少一个行分组.我们这里选择对所有记录使用
DEPT_ID进行分组。这样就意味着crosstab的每一行将会采用一个明确的部门
编号,这样JasperReports将会使用部门编号对数据集里的数据进行重新整理
计算。使用向导 ,我们可以定义两个行分组 ,这是使用向导的局限性所在 ,事实
上 ,如果你需要的话你可以通过Crosstab的属性设置窗口定义若干个行和列的
分组。点击下一步继续。
和定义行分组一样 ,从这里我们可以定义两个列分组 ,这里我们仅使用一个
列分组,使用数据中的 DEGREE字段对数据进行分组。该字段的含义是学历,
这就表示 ,我们要做的这个交叉报表是用来计算不同部门员工在学历方面的人数
分布情况。
是时候定义detail 数据了,一般的,这个detail是使用类似根据
country,year得到orders总数或者是相同组合的物品总数的一个聚合函数的计
算出来的结果值。我们这里选择打印员工的数量(Detail
field:ordered,function:count)。点击下一步继续。
最后一步我们可以为crosstab的布局设定一个布局。我们可以设置是否能
看到表格线、或者是否包括行和列总数统计之类。我们这里全部选择。
点击finish
注意当一个crosstab添加到一个报表中后,会自动在设计窗口中添加一个
用来编辑当前crosstab的tab页窗口。
当点击crosstab的tab页,两个新的属性窗口将会被添加在窗口的左边和
右边 :一个crosstab的结构树 ,用来显示crosstab的当前选中单元格和帮助相
关信息。一个是crossstab对象列表用来显示和该CrossTab相关的一些
variables或fields等。
当点击工具条上的启动按钮后,我们将可以看到引擎生成的如下效果的报
表:
最后一列包含每一行交叉所有列的总计 ,最后一行包含每一列交叉所有行的
总计。
列,行,单元格 (Columns,rows,cells)
一个crosstab至少必须有一个行分组和一个列分组,每一个行和列的分组
都有一个可选的行/列的统计。
下面图中所示的是一个基本的由一个行列分组构成的crosstab。
Crosstab header Columngroup1 Columngroup1
cell
文档评论(0)