Follow us 登录 注册

北京软件公司:使用“Jasper”生成和导出报告!

北京软件公司

数据报告  是收集和提交 资料  给负责编制统计资料的过程。准确的 数据报告  可以准确分析实地的事实; 不准确的数据报告可能导致错误的决策。数据报告中的常见问题可能是由于业务逻辑的变化或者是否需要增强 报告的核心逻辑,可能是由于子报表或多个图表。为了克服这些开销,引入了许多框架,工具,库和第三方应用程序。JasperReports是其中之一。

为什么选择JasperReports?

JasperReports是一个开源的Java报表引擎,没有自己的语法表达式。因此,它不能独立运行,并且需要嵌入到另一个客户端或服务器端的Java应用程序中。它适用于需要向其应用程序添加报告功能的Java开发人员。由于它是基于Java的,它可以在任何支持Java(JDK 1.3及更高版本)的平台上运行。所有JasperReport的功能都集中在一个JAR文件jasperreports-xxxjar中。JasperReports的主要目的是创建面向页面,准备以简单灵活的方式打印文档。

JasperReports的特点

JasperReports的一些重要功能是:

  • 弹性报告布局。
  • 可以以文字或图形方式呈现数据。
  • 开发人员可以多种方式提供数据。
  • 可以接受来自多个数据源的数据。
  • 可以生成水印
  • 可以生成子报表。
  • 能够以各种格式导出报告。

报告设计模板

 

北京软件公司

  1. 标题 - 标题包含报告的标题,并在报告开始时只显示一次。
  2. PageHeader - PageHeader出现在页面的顶部。它可能包含日期,时间,组织名称等。
  3. ColumnHeader - ColumnHeader包含特定的字段名称,如名称,地点等。
  4. 细节 - 这里包括特定字段的条目。
  5. ColumnFooter - ColumnFooter可能包含特定字段的摘要。
  6. PageFooter - PageFooter显示在报表的底部。它可能包含页数。
  7. 摘要 - 它包含从“细节”部分推断的信息,例如,列出每个作者工作的小时数后,每位作者工作的总时数可以放在像饼图,图表等可视化图表中,以获得更好的比较。

为我的示例报告设计的模板

北京Java开发公司

  • 编译报告 - 在这一步中,JRXML被编译成一个称为Jasper文件(* .jasper)的二进制对象。出于性能原因,此编译完成。Jasper文件是您的应用程序需要运行的文件,以便运行报告。
  • 执行报告(将数据填充到报告中) - 在此步骤中,应用程序中的数据将填写在编译报告中。类net.sf.jasperreports.engine.JasperFillManager提供必要的功能来填充报表中的数据。创建了一个Jasper打印文件(* .jrprint),可用于打印或导出报告。
  • 将报告导出为所需格式 - 在此步骤中,我们可以将上一步创建的Jasper打印文件导出为任何格式。由于Jasper提供各种形式的出口,因此具有相同的输入,我们可以创建数据的多个表示。

代码片段

  • Connection con = null;
  • try {
  • // connection to the database
  • String url = "jdbc:mysql://localhost:3306/registers";
  • String username = "username";
  • String password = "password";
  • Class.forName("com.mysql.jdbc.Driver");
  • con = (Connection) DriverManager.getConnection(url, username,
  • password);
  • String queryString = "select * from users";
  • java.sql.Statement stmt = con.createStatement();
  • ResultSet resultset = null;
  • resultset = stmt.executeQuery(queryString);
  • Map parameters = new HashMap();
  • parameters.put("ReportTitle", "User Details");
  • JRResultSetDataSource jasperReports = new JRResultSetDataSource(
  • resultset);
  • // compiling the report
  • JasperReport sourceFile = JasperCompileManager.compileReport("/home/usr/sample/userReport.jrxml"); // give the fully qualified path of the .jrxml file
  • //Executing the report
  • JasperPrint jasperPrint = JasperFillManager.fillReport(
  • sourceFile, parameters, jasperReports);
  • //Exporting the report to docx file
  • JRDocxExporter jasperDocx = new JRDocxExporter();
  • ExporterInput exportInput = (ExporterInput) new SimpleExporterInput(
  • jasperPrint);
  • jasperDocx.setExporterInput(exportInput);
  • OutputStreamExporterOutput jasperOutputDocx = new SimpleOutputStreamExporterOutput(
  • "/home/usr/sample/userReport.docx"); //specify the path where we want to save the report
  • jasperDocx.setExporterOutput(jasperOutputDocx);
  • SimpleDocxExporterConfiguration simple = new SimpleDocxExporterConfiguration();
  • jasperDocx.setConfiguration(simple);
  • jasperDocx.exportReport();
  • System.out.println("The jrxml is converted into docx");
  • } catch (Exception e) {
  • e.printStackTrace();
  • }
  • }
  • }

所需的库是

  • 公地的BeanUtils-1.9.0
  • 公地集合-3.2.1
  • 公共沼气池-2.1
  • dynamicreports核-3.0.0
  • JasperReports的-6.1.0
  • 共享记录-1.1.1
  • MySQL的连接器的Java-5.1。
相关文章推荐
由于Java的灵活性,跨平台兼容性和稳定性,公司现在享有大量的软件开发机会。北京软件开发...
北京app软件开发公司移动应用已经变得非常普遍,业务范围从零售巨头到软件创业公司投资于...
北京软件公司随着许多行业已经转向成功的客户关系,客户体验正在成为企业在整个收入周...
在今天互联网时代,很多企业都有快入的想法,但有苦于没有这方面的团队,是自己组建团队 ...
现如今很多企业公司都想定制一款自己公司的app,但是有对APP开发这方面不懂,来回对比后最...
软件设计可分为两个部分:编码设计与UI设计。一般情况下大家都很熟悉编码设计,但是对UI...
北京软件开发公司对于企业来说要做一套适合自己的软件前,具体要知道那些事项......
随着移动网络改变时代科技时总是带来新的网络设计趋势,北京软件开发2017年网页设计将有.....
有无听说过定制开发这个词?软件为什么要定制开发?快极互动和大家分享下核心机密,速...
在过去几年间,移互联已发展成具有丰富多样性和成功多样性的移动产业。随之之后就是各类...
北京软件开发公司搞了这几年的金融公司P2P业务数据对接,现在就给大家分享一下金融网站...
北京软件开发公司国内在线教育发展从此前的火爆状态逐渐转为理性平静,更多的在线教育...