1、构造数据源:
package test;
import java.util.ArrayList;
public class CrossReportFactory {
public static Collection getData(){
List<Map<Object, Object>> subGuestName = new ArrayList<Map<Object, Object>>();
//第一行A1
subGuestNameInit(subGuestName, "C1", "A1","group1", "data1");
subGuestNameInit(subGuestName, "C2", "A1","group1", "data12");
subGuestNameInit(subGuestName, "C3", "A1","group1", "data13");
//第二行A2
subGuestNameInit(subGuestName, "C1", "A2","group1", "data123");
subGuestNameInit(subGuestName, "C2", "A2","group1", "data1234");
subGuestNameInit(subGuestName, "C3", "A2","group1", "data12345");
//第三行还是按C1、C2、C3分3列,但却又按row2分多行
subGuestNameInit(subGuestName, "C1", "A3","g2","d1");
subGuestNameInit(subGuestName, "C2", "A3","g2", "d12");
subGuestNameInit(subGuestName, "C3", "A3","g2", "d123");
subGuestNameInit(subGuestName, "C1", "A3","g3","d11");
subGuestNameInit(subGuestName, "C2", "A3","g3", "d22");
subGuestNameInit(subGuestName, "C3", "A3","g3", "d33");
return subGuestName;
}
public static void subGuestNameInit(List<Map<Object, Object>> subGuestName,String column,String row,String row2,String value){
Map<Object, Object> guestMap = new HashMap<Object, Object>();
guestMap.put("deptid", row);
guestMap.put("deptid2", row2); //第三行继续划分使用
guestMap.put("degree", column);
guestMap.put("empid", value);
subGuestName.add(guestMap);
}
}
2、新建一个模版,右击模版名添加Dataset,选择Dataset为刚创建的Dataset。为Dataset添加fields
3、创建交叉报表
row:
column:
value:
交叉报表创建成功。
但此时数据源还不可以,还得这样设置:
右击Detail中的交叉报表,选择Dataset run为"use dataset...",设置Dataset值为$P{REPORT_DATA_SOURCE}即可使用数据源。
详细设置如图:
效果如图:
最后交叉报表如图:
结果:
真正使用时隐藏掉红色部分即可达到要求。
- 大小: 63.9 KB
- 大小: 8.5 KB
- 大小: 57.7 KB
- 大小: 55.2 KB
- 大小: 50.5 KB
- 大小: 30.9 KB
- 大小: 101.1 KB
- 大小: 2.5 KB
- 大小: 11 KB
分享到:
相关推荐
### iReport交叉报表自定义排序 #### 背景与问题描述 在处理复杂的报表设计时,特别是使用iReport工具创建交叉报表(Crosstab)的过程中,常常会遇到需要对数据进行特定排序的需求。默认情况下,交叉报表中的数据...
iReport交叉报表详细知识点 iReport交叉报表是iReport JasperReports1.1.1版本中新增加的功能之一,它允许用户创建交叉报表,即使报表的行和列都是从数据库中读取的,而不是普通那种列固定行是从数据库中读取。下面...
### iReport交叉报表详解 #### 一、iReport简介 iReport是一款强大的开源报表设计工具,主要用于设计和创建复杂的报表。它支持多种数据源(如JDBC、XML、CSV等),并能生成各种格式的输出文件(PDF、HTML、Excel等...
4. 自定义样式:通过样式表,你可以调整交叉报表的颜色、字体、边框等视觉效果。 四、实际项目经验分享 1. 性能优化:在处理大量数据时,合理设置查询条件和缓存策略,以减少服务器负载。 2. HTML显示:ireport生成...
ireport 的交叉表模版
本主题将详细讲解如何利用 Ireport 实现子报表调用交叉报表的过程,以帮助你更好地理解和操作。 首先,我们需要了解什么是子报表和交叉报表。子报表是在主报表内部嵌套的一个独立报表,它可以展示与主报表相关的...
其中,交叉表(CrossTabs)是 iReport 中的一个重要组件,允许用户创建复杂的交叉报表。下面是关于 iReport 制作交叉表的详细知识点: 什么是交叉表(CrossTabs) 交叉表是一种特殊的表格,在设计时既不确定行数和...
本篇文章将详细讲解如何使用iReport来绘制报表,包括简单的报表设计和交叉报表(crosstable)的绘制步骤。 1. **安装与启动iReport** 在开始绘制报表之前,你需要先下载并安装iReport。访问官方网站获取最新版本的...
本文介绍如何在iReport中设计柱状图和交叉表两种常用的报表格式。 首先介绍柱状图的画法。在进行柱状图设计之前,需要在数据库中建立数据表并填充数据。以手机销售数据为例,假设我们有一个名为phone_sale的表,它...
iReport支持多种报表类型,如表格、交叉表、图表、文本等。通过组合和布局这些元素,可以构建出复杂的数据展示格式。模板设计时要注意数据字段的映射,确保数据能正确地填充到报表的各个部分。 五、数据源配置 ...
总结,iReport教程旨在帮助用户掌握这款强大的报表设计工具,通过“2010-11-06_ireport图文教程(超详细).doc”、“用iReport制作交叉表(CrossTabs).doc”和“iReport中文详细教程.pdf”这三份文档,你可以逐步了解并...
iReport提供了丰富的报表设计功能,从基础的表格到复杂的交叉表,都能应对自如。通过掌握iReport的高级特性,开发者可以高效地创建符合项目需求的报表,提升工作效率。 总结来说,JasperReport+iReport的组合为...
交叉报表,也称为透视表,是一种展示多维度数据的有效方式。在iReport中,你可以通过创建数据列和行来定义交叉表的布局。数据列通常表示分组字段,而行则包含汇总或细节字段。交叉报表支持多种汇总函数,如求和、...
iReport还支持子报表、交叉表、自定义函数、图表样式自定义等功能,满足复杂报表需求。例如,通过子报表可以将多个相关的小报表组合成一个大的报表,提高报表的组织性和可读性。 七、实际应用案例 在Java Web项目...
在4.0.2版本中,JasperReport可能已经包含了对各种图表类型的支持,如条形图、饼图、线图,以及复杂的表格和交叉表。它还可能提供了一套丰富的预定义样式和模板,使得开发者可以快速创建美观的报告。此外,该版本...
2. **报表设计灵活性**:支持设计普通报表、主细表、交叉报表等多种类型的报表,满足不同业务需求。 3. **报表输出多样化**:可以方便地将报表结果导出为PDF、Excel、RTF、HTML等多种格式,适应不同的分发场景。 4...
1. **设计报表模板**:在IReport中,你可以创建新的报表项目,选择报表类型(如表格、交叉表、自由形式等),然后添加字段、图像、文本框等元素。报表的布局和样式可以通过属性面板进行调整。 2. **数据源配置**:...