交叉表的话我一般都是用finereport来做的,BIRT没做过,不过应该大致上也是差不多的吧。
交叉表,也是常见的基本报表类型,分组报表知识从上到下将数据分组显示,而交叉表则是从上到下,从左到右都将数据分组的报表,如下图:
FineReport天然支持行列对称,所以设计交叉报表比较简单。
新建工作簿,添加数据集
新建工作簿,添加数据集ds1,SQL语句为SELECT * FROM 销量
制作交叉表
设计好表样后,将数据列拖入对应单元格:
纵表头:地区与销售员默认纵向扩展实现从上到下分组;
横表头:将产品类型与产品设置为从左到右扩展,让产品横向分组,实现横表头;
数据:根据父子格的概念,销量会以销售员为左父格,产品为上父格,自动匹配出销售员与产品对应的销量。
预览即可查看上图交叉表。
现在有张表分别为id 行数 列数 值
id | columnname | rowname | value
1 | 行一 | 列一 | 值11
2 | 行一 | 列二 | 值12
3 | 行一 | 列三 | 值13
4 | 行二 | 列一 | 值21
5 | 行二 | 列二 | 值22
6 | 行二 | 列三 | 值23
通过cubes设置分组交叉
想得到结果为
列一 列二 列三
value value value
行一 值11 值12 值13
行二 值21 值22 值23
这样一个交叉表
结果在输出时候 A BIRT exception occurred: Can not convert the value of 值11 to Double type.. See next exception for more information.
但是如果我把数据库value的值都改成int或者double就好了
我把summaryfiled的数据类型换成String也不行 他每次输出前都要转成double
BIRT 也提供了图标引擎让你能为应用增加图标。BIRT 当前发行的版本是 3.7.0。可通过[1]下载使用。
有了 BIRT,你可以为应用程序构建丰富的报表。
列表 - 列表是最简单的报表。当列表变长时,你可以把相关数据增加到同一分组(基于客户的订单分组,基于供应商的产品分组)。如果数据是数字类型的,你可以轻松的添加到“总数”、“平均”、或其他汇总中。
图表 - 当需要图表表现时,数字型数据比较好理解。BIRT 也提供饼状、线状以及柱状图标等。
交叉表- 交叉表(也叫做十字表格或矩阵)用两种维度展示数据:sales per quarter or hits per web page。(交叉表在 1.0.1 中没有提供,但计划在将来提供。)
信函和文档 - 通知、信件、以及其他文本文档都很容易通过 BIRT 方便建立。文档包括正文、格式、列表、图表等。
混合报表 - 很多报表需要联合以上所有的报表构成单一文档。例如,一份客户声明会列出客户所需要的信息,为当前促进(promotions)提供文本,以及提供并行的出帐和入帐列表。一份财政报表将包括声明、图表、表格,所有这些都将进行全方位的格式化,来匹配共有的配色方案。
BIRT 报表包含四个部分:数据、数据转换、业务逻辑、陈述。
数据 - 数据库、Web 服务、Java 对象,这些都可以作为 BIRT 报表源。1.0.1 版本提供 JDBC 支持,也支持利用编码来获取其他地方的数据。BIRT 的 ODA(Open Data Access) 框架允许任何人构建新的 UI 以及运行时支持任何类型的表格式数据。未来,单一报表可包含从任意多个数据源获取数据。
数据转换 - 报表通过对数据的分类、统计、过滤以及分组来适应用户需求。当然,数据库能实现这些功能,当遇到普通文件和 Java 对象时 BIRT 必须以 "simple" 数据源方式处理。BIRT 允许复杂的 *** 作,比如总合分组、整体共计的百分比,等等。
业务逻辑 - 真实世界的数据很少提供你理想的结构良好的报表。许多报表要求用具体逻辑把原始数据转换成用户的有用信息。如果该逻辑仅仅用于该报表,你可以用 BIRT 的 JavaScript脚本支持。如果你的程序中已包含这些逻辑,你可以调用已有的 Java 代码。
表现 - 一旦数据准备好了,你可以在很大的范围内选择表现形式。表格、图表、文字等等都可以。单一数据集可以有多种方式表现,而单一报表可以表现多个数据集。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)