JasperReports 教程:Java 的 Jasper 报告是什么?例子
什么是 JasperReports for Java?
碧玉报告 是用于 Java 的开源报告工具,用于报告应用程序。此报告工具有助于将丰富的内容写入屏幕、打印机或各种文件,如 HTML、PDF、XLS、RTF、CSV、XML、ODT 和 TXT。 JasperReports 还可用于支持 Java 的应用程序(如 Java EE 或 Web 应用程序)以生成动态内容。
在这个 JasperReports 分步教程中,您将学习:
- 什么是 Jasper 报告?
- 如何安装 Jasper 报告?
- 为什么要使用 Jasper 报告?
- JasperReports 的生命周期
- Jasper 报告的特点
- Jasper 与 Pentaho
- 创建报告模板示例
- 创建 JasperReports 时面临的挑战
- 使用 Jasper 报告的缺点
如何安装 Jasper Reports- 环境设置
现在在这个 Jaspersoft Studio 教程中,让我们逐步了解 JasperReports 环境设置的过程:
步骤 1) 下载 jasper 报告社区版
转到此链接并单击立即下载选项以安装 Jasper 报告社区版。
步骤 2) 选择 Jaspersoft Studio CE
从社区版本中选择 Jaspersoft Studio CE
步骤 3) 下载 Jaspersoft Studio
转到此链接并单击下载按钮。打开下载TIB_js-studiocomm_6.9.0_windows_x86_64.exe文件.TIB_js-studiocomm_6.9.0_windows_x86_64.exe。
第 4 步) 点击同意按钮
会出现以下画面,选择我同意按钮。
第 5 步) 选择位置
选择您的安装位置并点击下一步按钮。
第 6 步) 进度正在运行
您将在下一个屏幕上看到进度。
第 7 步) 点击完成按钮
在下一个屏幕中,点击完成按钮。
第 8 步) 进度完成
以下屏幕将出现在您的窗口中。
第 9 步) 开始
接下来,点击“开始”选项。
步骤 10) 开始使用 Jasper Reports studio
将出现以下屏幕,您可以开始使用 Jasper Reports studio。
为什么使用 Jasper 报告?
这里有很多使用 Jasper 报告工具的原因:
- 它为用户提供报告生成性能和交付。
- 它可以帮助您以文本或图形格式表示您的数据。
- 它是一个独立的嵌入式报告服务器,用于报告编译和执行。
- 它允许对存储库中的所有报告进行基于角色的访问控制。
- 用于与内部身份验证系统集成的 Spring 安全框架
- 它提供安全、计划和自动交付的交互式报告引擎。
- 您可以将报告嵌入到 Java 或非 Java 应用程序中。
- 可以导出多种格式的报告。
- 开发人员可以通过多种方式提供数据。
- 它可以生成覆盖在主图像上的水印。
- 它提供了一整套 SOAP、REST 和 Web 服务。
- 它允许您使用来自多个数据源的单个报告数据。
JasperReports 的生命周期
现在在这篇 JasperReports 教程中,我们将了解 JasperReports 的生命周期。
以下是 Jasper Reports 生命周期的一般流程:
<中心>
<图> 图>
设计报告:
这将是我们创建 JRXML 文件的第一步。该文件是定义报告布局的简单 XML 文档。您可以使用任何文本编辑器或报表设计器开发此文件。
但是,如果您使用报表设计器,我们可以将报表的布局可视化,而应该忽略 JRXML 的真实结构。
编制报告:
在这个生命周期阶段,编译第一阶段构建的JRXML,生成一个名为Jasper文件(带有jasper xtn的文件)的二进制对象。
完成此编译是为了在执行期间获得更好的性能。这些生成的 Jasper 文件应与您的应用程序一起提供以运行报告。
执行报告:
在这个阶段,收集来自应用程序的数据并填写在编译的报告格式中。有一个名为 net.sf.jasperreports.engine.JasperFillManager 的类,它提供了在报告中填充数据的功能。
输出将存储在 Jasper 打印文件(带有 jprint xtn 的文件)中,可用于打印或导出报告。
将报告导出为所需格式:
在最后阶段,您需要使用 JasperExportManager 类将之前创建的 Jasper 打印文件导出为任何格式。由于 Jasper 提供多种导出格式,我们可以使用相同的输入来创建数据的各种表示。
Jasper 报告的特点
现在,我们将在这个 JasperReports 分步教程中介绍 JasperReports 的功能。
以下是 Jasper Reports 工具的重要功能:
- 提供灵活的报表布局。
- 开发人员可以通过多种方式提供数据。
- 它允许您接受来自多个数据源的数据。
- 也可以应用水印。
- 可以使用多个数据源来传输数据。
- 您可以生成子报告
- 可以生成子报表。
- 它可以帮助您以多种格式导出报告,例如 PDF、HTML、RTF、Microsoft Excel 文件。
- 引擎允许报表定义包含图表。
Jasper 与 Pentaho
现在,我们将在这篇 Jasper 报告教程中了解 Jasper 和 Pentaho 之间的区别。
以下是 Jasper 和 Pentaho 之间的主要区别:
参数 | 贾斯珀 | Pentaho |
---|---|---|
报告 | Jasper 使用报告来设计报告。 | 它使用了 Pentaho 报表设计器。 |
ETL 支持 | Jaspersoft 将 Talend Open Studio 版本用于 ETL。 | 它使用 Pentaho Data Integrator 作为默认的 ETL 工具。 |
仪表板 | 仪表板功能仅存在于 Jaspersoft 的企业编辑器中。 | Pentaho 在其仪表板中提供了广泛的功能。 |
移动商业智能 | Jaspersoft 也有更好的移动 BI。 | 以前的 Pentaho 需要依赖第三方工具来增强移动 BI 体验。 |
文档 | 更好的营销、网站和文档。 | 文档支持很差。 |
最佳功能 | 更容易研究和找到您需要的东西。 | 提供数据挖掘和 iPhone 集成 |
付费版 | 付费版提供诸如临时查询网络用户界面、仪表板创建网络用户界面等功能。 | 提供 LDAP 集成、SSO、审计等功能。 |
创建报告模板示例
现在在这篇 JasperReports 教程中,让我们学习如何在 JasperReports 中创建报表模板。
JasperReports 中使用的报告模板文件是一个带有 jrxml 扩展名的简单 XML 文件。此文件包含标记作为其根元素。 JasperReports 框架可以处理不同类型的数据源。
报告模板的设计和创建使用以下两个步骤-
步骤 1) 在 Jaspersoft Studio 中创建 JRXML 文件。
- 转到文件选项。
- 选择新建子菜单
- 点击 Jasper 报告选项。
步骤 2) 选择所需的模板。
- 选择您的模板,例如樱桃。
- 点击“下一步”按钮。
步骤 3) 选择父文件夹。
- 选择 MyReports 文件夹。
- 输入文件名,例如“Cherry Report”。
- 点击“下一步”按钮。
第 4 步) 在数据源窗口, 点击“新建”按钮创建新的数据适配器。
第 5 步) 选择数据适配器。
- 从列表框中选择数据适配器。例如,“JavaBean 集合”。
- 点击“下一步”按钮。
第 6 步) 输入数据适配器详细信息并选择工厂类。
- 输入适配器的名称。
- 点击“...”按钮选择工厂类。
第 7 步) 输入前缀或模式。
- 输入名称前缀或模式。
- 点击匹配项。
- 点击“确定”按钮。
第 8 步) 定义工厂类并添加 jar 文件的路径。
- 输入工厂类中静态方法的名称。在这个 Jasper 报告示例中,这是 createBeanCollection。
- 如果您的 JavaBeans 定义有字段描述,并且您想在 Jaspersoft Studio 中使用这些作为名称,请选中使用字段描述复选框。
- 为您的 jar 文件添加路径。
- 点击“完成”按钮。
第 9 步) 点击“下一步”按钮。
步骤 10) 恭喜!您已成功添加所有必要的报告创建信息。点击“完成”按钮。
将生成报告,如下图所示。
上述文件需要编译成JasperReport Binary格式,称为jasper文件。
接口 net.sf.jasperreports.engine.design.JRCompiler 是 JasperReports 库的一部分,在此报表模板文件的编译中起着重要的作用。
此接口的实现可以用 Java、JavaScript、Groovy 或任何其他脚本语言编写。
您可以通过以下两种方法编译JRXML文件:
- 程序化编译。
- 使用 Apache ANT 任务编译。
了解不同的报告范围
以下是大多数商业报告生成工具采用的标准报告格式。
- 标题
- 页眉
- 列标题
- 详情
- 列页脚
- 页脚
- 总结
让我们详细了解每个报告范围:
标题:
该波段显示在报告的开头。通过设置属性isTitleNewPage="true."
可以作为首页
页眉:
页眉报告带显示在每页的开头。如果使用标题栏,则排除第一页,如果使用此摘要栏并设置 isSummaryWithPageHeaderAndFooter="false.".
,则排除最后一页
列标题:
列标题出现在每页的详细信息带之前。
详情:
为提供的数据源中的每条记录迭代详细信息部分。它还允许有多个细节带(1、2等)
列脚注:
此部分显示在每个存在详细信息带的页面上的详细信息带下方。默认设置为页面末尾,但可以通过设置属性isFloatColumnFooter=" true."
切换到最后一个细节带下
页脚:
此部分将显示在每页的末尾,不包括摘要带、标题带、最后一个非摘要带。
最后一页页脚:
此部分出现在上一页(如果没有给出摘要带)代替正常页面页脚。
总结:
摘要部分仅出现在新页面的报告末尾。当 isSummaryNewPage="true"
已设置并设置页眉和页脚 isSummaryWithPageHeaderAndFooter="true".
组头:
此部分仅在每次在详细信息带之前组表达式更改时定义时出现。
组页脚:
此部分仅在每次在详细信息带之后的组表达式更改之前定义组时才显示。
背景:
它显示在所有页面上,作为所有其他报告范围的背景。
没有数据:
当没有传入数据源,或者数据源为空且设置了NoDataType=”NoDataSection”时,会出现这个band。
创建 JasperReports 时面临的挑战
以下是您在创建 Jasper 报告时将面临的一些挑战:
- 核心变化 - 业务变化或增强。需要改变报表的核心逻辑。
- 复杂的报告——子报告和交叉表报告就是很好的例子。
- 图表报告或可视化图表,例如图形、XY 线、饼图、条形图、时间序列和计量图表。
使用 Jasper 报告的缺点
以下是使用 Jasper Reports 的缺点/缺点。
- 一旦您开始对包的某些部分进行任何更改并删除功能,就很难恢复到默认包设置。
- 太死板了,编辑线条和创建交叉表是一项具有挑战性的任务。
- 其他两个报表设计器更容易完成一些常见任务,例如为分组报表指定小计。
- Jasper 要求您在运行报告之前对其进行编译。这意味着报表开发人员必须安装整个 Java SDK。
- 有时当您编辑报告时,它显示的预览与在网络上显示的预览不同。
总结:
- JasperReports 是一个开源 Java 报告引擎。此 Java 类库为您的应用程序提供报告功能。
- Jasper Reports 为用户提供报告生成性能和交付。
- Jasper Reports 生命周期包括 1) 设计报告,2) 编译报告,3) 执行报告,以及 4) 将报告导出为所需格式。
- 在 Jasper Reports 中,您可以创建多个数据源来传输数据。
- Jasper 和 Pentaho 的主要区别在于 Jasper 报表使用报表来设计报表,而 Pentaho 使用 Pentaho 报表设计器。
- JasperReports 中使用的报告模板文件是一个带有 jrxml 扩展名的简单 XML 文件。
- 重要的报告栏包括:1) 标题 2) 页眉 3) 列页眉 4) 详细信息 5) 列页脚 6) 页脚和 7) 摘要。
- 使用 Jasper Reports 的最大挑战是,如果业务逻辑发生变化,您需要更改报表的核心逻辑。
- Jasper Reports 的最大缺点是,当您对包的某些部分进行任何更改时,很难恢复到默认包设置。
java