JasperReports 教程:Java 的 Jasper 报表是什么?示例
Java 中的 JasperReports 是什么?
JasperReports 是一个用于 Java 的开源报告工具,用于应用程序的报告。此报告工具可帮助将丰富的内容写入屏幕、打印机或多种文件中,如 HTML、PDF、XLS、RTF、CSV、XML、ODT 和 TXT。JasperReports 还可用于 Java EE 或 Web 应用程序等支持 Java 的应用程序来生成动态内容。
如何安装 Jasper Reports - 环境设置
现在,在本 JasperReports Studio 教程中,让我们学习 JasperReports 环境设置的分步过程。
第一步) 下载 Jasper Reports 社区版
访问此链接,然后单击“立即下载”选项以安装 Jasper Reports 社区版。
第二步) 选择 Jaspersoft Studio CE
在社区版中,选择 Jaspersoft Studio CE。
第三步) 下载 Jaspersoft Studio
访问此链接,然后单击下载按钮。打开下载的 TIB_js-studiocomm_6.9.0_windows_x86_64.exe 文件。TIB_js-studiocomm_6.9.0_windows_x86_64.exe。
第四步) 点击同意按钮
将出现以下屏幕,选择“我同意”按钮。
第五步) 选择位置
选择您的安装位置,然后单击“下一步”按钮。
第六步) 进度正在进行中
您将在下一个屏幕上看到进度。
第七步) 点击完成按钮
在下一个屏幕上,单击“完成”按钮。
第八步) 进度完成
您的窗口中将出现以下屏幕。
第九步) 开始
接下来,单击“开始”选项。
第十步) 开始使用 Jasper Reports Studio
将出现以下屏幕,您可以开始使用 Jasper Reports Studio。
为什么要使用 Jasper Reports?
这里有许多使用 Jasper 报告工具的原因
- 它为用户提供了报告生成性能和交付。
- 它帮助您以文本或图形格式表示数据。
- 它是一个独立的嵌入式报告服务器,用于报告编译和执行。
- 它允许对存储库中的所有报告进行基于角色的访问控制。
- 用于与内部身份验证系统集成的 Spring 安全框架
- 它提供安全、计划和自动交付的交互式报告引擎。
- 您可以将报告嵌入到 Java 或非 Java 应用程序中。
- 可以导出多种格式的报告。
- 开发人员可以通过多种方式提供数据。
- 它可以生成覆盖在主图像上的水印。
- 它提供了完整的 SOAP、REST 和 Web 服务。
- 它允许您使用来自多个数据源的单个报告数据。
JasperReports 的生命周期
现在,在本 JasperReports 教程中,我们将了解 JasperReports 的生命周期。
以下是 Jasper Reports 生命周期的一般流程

设计报告
这是我们创建 JRXML 文件的第一步。它是一个简单的 XML 文档,定义了报告布局。您可以使用任何文本编辑器或报告设计器来开发此文件。
但是,如果您使用的是报告设计器,我们可以可视化报告的布局,并且应该忽略 JRXML 的实际结构。
编译报告
在此生命周期阶段,将编译在第一阶段构建的 JRXML,并生成一个名为 Jasper 文件(扩展名为 jasper)的二进制对象。
进行此编译是为了在执行期间获得更好的性能。生成的 Jasper 文件应与您的应用程序一起分发以运行报告。
执行报告
在此阶段,从应用程序收集数据并将其填充到编译的报告格式中。有一个名为 net.sf.jasperreports.engine.JasperFillManager 的类,它提供了在报告中填充数据的功能。
输出将存储在 Jasper 打印文件(扩展名为 jprint)中,可用于打印或导出报告。
将报告导出到所需格式
在此最后阶段,您需要使用 JasperExportManager 类将之前创建的 Jasper 打印文件导出为任何格式。由于 Jasper 提供多种导出格式,我们可以使用相同的输入来创建数据的各种表示。
Jasper Reports 的特性
现在,在本 JasperReports 逐步教程中,我们将介绍 JasperReports 的特性。
这里是 Jasper Reports 工具的重要特性
- 提供灵活的报告布局。
- 开发人员可以通过多种方式提供数据。
- 它允许您接受来自多个数据源的数据。
- 还可以应用水印。
- 可以使用多个数据源传输数据。
- 您可以生成子报告
- 它可以生成子报告。
- 它帮助您将报告导出为多种格式,如 PDF、HTML、RTF、Microsoft Excel 文件。
- 该引擎允许报告定义包含图表。
Jasper 与 Pentaho 的比较
现在,在本 Jasper Reporting 教程中,我们将学习 Jasper 和 Pentaho 之间的区别。
Jasper 和 Pentaho 的主要区别在于
参数 | Jasper | Pentaho |
---|---|---|
报告 | Jasper 使用 report 来设计报告。 | 它使用了 Pentaho Report Designer。 |
ETL 支持 | Jaspersoft 使用 Talend Open Studio 版本进行 ETL。 | 它将 Pentaho Data Integrator 用作默认的 ETL 工具。 |
仪表板 | 仪表板功能仅存在于 Jaspersoft 的企业版编辑器中。 | Pentaho 在其仪表板中提供了广泛的功能。 |
移动商业智能 | Jaspersoft 拥有更好的移动 BI。 | Pentaho 需要依赖第三方工具来增强移动 BI 体验。 |
文档 | 更好的营销、网站和文档。 | 文档支持不佳。 |
最佳功能 | 更容易研究和找到您需要的内容。 | 提供数据挖掘和 iPhone 集成 |
付费版本 | 付费版本提供了诸如 即席查询 Web UI、仪表板创建 Web UI 等功能。 | 提供 LDAP 集成、SSO、审计等功能。 |
创建报告模板示例
现在,在本 JasperReports 教程中,让我们学习如何在 JasperReports 中创建报告模板。
JasperReports 中使用的报告模板文件是一个简单的 XML 文件,扩展名为 jrxml。该文件包含
报告模板的设计和创建通过以下两个步骤完成 –
第一步) 在 Jaspersoft Studio 中创建 JRXML 文件。
- 转到文件选项。
- 选择新建子菜单
- 点击 Jasper Report 选项。
第二步) 选择所需的模板。
- 选择您的模板,例如,cherry。
- 单击“下一步”按钮。
第三步) 选择父文件夹。
- 选择 MyReports 文件夹。
- 输入文件名,例如,“Cherry Report”。
- 单击“下一步”按钮。
第四步) 在数据源窗口中,单击“新建”按钮以创建新的数据适配器。
第五步) 选择数据适配器。
- 从列表框中选择数据适配器。例如,“JavaBeans 集合”。
- 单击“下一步”按钮。
第六步) 输入数据适配器详细信息并选择工厂类。
- 为您的适配器输入一个名称。
- 通过单击“...”按钮选择工厂类。
第七步) 输入前缀或模式。
- 输入名称前缀或模式。
- 点击匹配的项。
- 单击“确定”按钮。
第八步) 定义工厂类并添加 jar 文件的路径。
- 输入工厂类中的静态方法名称。在本 Jasper 报告示例中,它是 createBeanCollection。
- 如果您的 JavaBeans 定义包含字段描述,并且您希望将它们用作 Jaspersoft Studio 中的名称,请选中“使用字段描述”复选框。
- 添加指向您的 jar 文件的路径。
- 单击“完成”按钮。
第九步) 单击“下一步”按钮。
第十步) 恭喜!您已成功添加所有必需的报告创建信息。单击“完成”按钮。
报告将按以下屏幕所示生成。
该文件需要编译成 JasperReport 二进制格式,称为 jasper 文件。
JasperReports 库的一部分接口 net.sf.jasperreports.engine.design.JRCompiler 在编译此报告模板文件方面起着重要作用。
此接口的实现可以用 Java、JavaScript、Groovy 或任何其他脚本语言编写。
您可以通过以下两种方法编译 JRXML 文件
- 程序化编译。
- 使用 Apache ANT 任务进行编译。
理解不同的报告段
以下是大多数商业报告生成工具采用的标准报告格式。
- 标题
- 页眉
- 列标题
- 详情
- 列页脚
- 页脚
- 摘要
让我们详细了解每个报告段
标题
此段显示在报告的开头。通过设置属性 isTitleNewPage="true"
,它可以用作第一页。
页眉
页眉报告段显示在每页的开头。如果使用了标题段,则排除第一页;如果使用此摘要段并设置了 isSummaryWithPageHeaderAndFooter="false"
,则排除最后一页。
列标题
列标题出现在每页详细信息段之前。
详情
详细信息部分根据提供的数据源中的每个记录进行迭代。它还允许拥有多个详细信息段(1、2 等)。
列页脚
此部分出现在详细信息段下方的每页上。默认设置为页面底部,但可以通过设置属性 isFloatColumnFooter="true"
来将其切换到最后一个详细信息段下方。
页脚
此部分将显示在每页的末尾,但不包括摘要段、标题段和最后一个非摘要段。
最后一页页脚
此部分出现在前一页(如果未提供摘要段)的正常页脚位置。
摘要
摘要部分仅出现在报告末尾的新页面上。当设置为 isSummaryNewPage="true"
时,并与页眉和页脚一起设置为 isSummaryWithPageHeaderAndFooter="true"
。
组标题
此部分仅在定义了组表达式更改之前显示在详细信息段之前。
组页脚
此部分仅在定义了组后,每次组表达式更改之后显示在详细信息段之后。
后台
它作为所有其他报告段的背景显示在所有页面上。
无数据
当没有传递数据源或数据源为空且设置为 whenNoDataType="NoDataSection"
时,将显示此段。
创建 JasperReports 时遇到的挑战
这里是创建 Jasper Reports 时可能遇到的一些挑战
- 核心更改 - 业务变化或增强。需要更改报告的核心逻辑。
- 复杂的报告 - 子报告和交叉表报告是一个很好的例子。
- 图表报告或可视化图表,例如,图形、XY 线、饼图、条形图、时间序列和仪表图。
使用 Jasper Reports 的缺点
这里是使用 Jasper Reports 的缺点/劣势。
- 一旦您开始对包的某些部分进行任何更改并删除功能,就很难恢复到默认的包设置。
- 它太僵化了,编辑线条和创建交叉表是一项艰巨的任务。
- 在其他两个报告设计器中,指定分组报告的小计等常见任务更容易。
- Jasper 要求您在运行报告之前对其进行编译。这意味着报告开发人员必须安装完整的 Java SDK。
- 有时编辑报告时,预览与 Web 上的显示不一致。
摘要
- JasperReports 是一个开源的 Java 报告引擎。这个 Java 类库为您的应用程序提供了报告功能。
- Jasper Reports 为用户提供了报告生成性能和交付。
- Jasper Reports 的生命周期包括 1) 设计报告,2) 编译报告,3) 执行报告,以及 4) 将报告导出为所需的格式。
- 在 Jasper Reports 中,您可以创建多个数据源来传输数据。
- Jasper 和 Pentaho 的主要区别在于 Jasper Reports 使用 report 来设计报告,而 Pentaho 使用 Pentaho Report Designer。
- JasperReports 中使用的报告模板文件是一个简单的 XML 文件,扩展名为 jrxml。
- 重要的报告段包括:1) 标题 2) 页眉 3) 列标题 4) 详细信息 5) 列页脚 6) 页脚,以及 7) 摘要。
- 使用 Jasper Reports 的最大挑战是,如果业务逻辑发生变化,您需要更改报告的核心逻辑。
- Jasper Reports 的最大缺点是,当您对包的某些部分进行任何更改时,很难恢复到默认的包设置。