JasperReport填充报表6
任何报告工具的主要目的是为了生产出高品质的文档。举报填充过程有助于报告工具通过操纵数据集来实现这一目标。需要报表填充过程的主要输入是:
报表模板:这是实际的JasperReport文件
报告参数:这些所传递的报表填充时间给引擎基本上都是命名的值。我们将在报表参数章节讨论。
数据源:我们可以从一系列像一个SQL查询,XML文件,CSV文件,一个HQL(Hibernate查询语言)查询,Java Beans的集合等数据源的填补Jasper这个文件将详细讨论在报表数据源的篇章。
这个过程产生的输出。jrprint是一个文档随时查看,打印或导出为其他格式。外观类net.sf.jasperreports.engine.JasperFillManager通常用于填充一个报表模板与数据。这个类有各种fillReportXXX()方法,填补报表模板(模板可以位于磁盘上,从输入流采集,或直接提供的内存)。
主要有两类在此外观类fillReportXXX()方法:
第一种类型,接收java.sql.Connection对象作为第三个参数。大多数情况下报表都充满了从关系数据库中的数据。这是通过:
通过JDBC连接到数据库。
包括报表模板中的SQL查询。
JasperReports引擎使用传入的连接并执行SQL查询。
因此,一个报表数据源产生填充的报告。
第二类,收到net.sf.jasperreports.engine.JRDataSource对象,当提供其他形式的数据来填补。
填充报告模板
让我们来写一个报表模板。在JRXML文件(C:\tools\jasperreports-5.0.1\test\jasper_report_template.jrxml) 的内容如下:
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE jasperReport PUBLIC "//JasperReports//DTD Report Design//EN"
- "http://jasperreports.sourceforge.net/dtds/jasperreport.dtd">
- <jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports
- http://jasperreports.sourceforge.net/xsd/jasperreport.xsd"
- name="jasper_report_template" language="groovy" pageWidth="595"
- pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20"
- topMargin="20" bottomMargin="20">
- <queryString>
- <![CDATA[]]>
- </queryString>
- <field name="country" class="java.lang.String">
- <fieldDescription><![CDATA[country]]></fieldDescription>
- </field>
- <field name="name" class="java.lang.String">
- <fieldDescription><![CDATA[name]]></fieldDescription>
- </field>
- <columnHeader>
- <band height="23">
- <staticText>
- <reportElement mode="Opaque" x="0" y="3" width="535"
- height="15" backcolor="#70A9A9" />
- <box>
- <bottomPen lineWidth="1.0" lineColor="#CCCCCC" />
- </box>
- <textElement />
- <text><![CDATA[]]> </text>
- </staticText>
- <staticText>
- <reportElement x="414" y="3" width="121" height="15" />
- <textElement textAlignment="Center"
- verticalAlignment="Middle">
- <font isBold="true" />
- </textElement>
- <text><![CDATA[Country]]></text>
- </staticText>
- <staticText>
- <reportElement x="0" y="3" width="136" height="15" />
- <textElement textAlignment="Center"
- verticalAlignment="Middle">
- <font isBold="true" />
- </textElement>
- <text><![CDATA[Name]]></text>
- </staticText>
- </band>
- </columnHeader>
- <detail>
- <band height="16">
- <staticText>
- <reportElement mode="Opaque" x="0" y="0" width="535"
- height="14" backcolor="#E5ECF9" />
- <box>
- <bottomPen lineWidth="0.25" lineColor="#CCCCCC" />
- </box>
- <textElement />
- <text><![CDATA[]]> </text>
- </staticText>
- <textField>
- <reportElement x="414" y="0" width="121" height="15" />
- <textElement textAlignment="Center"
- verticalAlignment="Middle">
- <font size="9" />
- </textElement>
- <textFieldExpression class="java.lang.String">
- <![CDATA[$F{country}]]>
- </textFieldExpression>
- </textField>
- <textField>
- <reportElement x="0" y="0" width="136" height="15" />
- <textElement textAlignment="Center"
- verticalAlignment="Middle" />
- <textFieldExpression class="java.lang.String">
- <![CDATA[$F{name}]]>
- </textFieldExpression>
- </textField>
- </band>
- </detail>
- </jasperReport>
接下来,让我们通过Java数据对象(Java bean)集合,到Jasper报表引擎,填补了这一编译报告。
写一个POJO DataBean.java表示数据对象(Java bean)。这个类定义了两个字符串对象名称和国家。把它保存到目录 C:\tools\jasperreports-5.0.1\test\src\com\yiibai.
- package com.yiibai;
- public class DataBean {
- private String name;
- private String country;
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public String getCountry() {
- return country;
- }
- public void setCountry(String country) {
- this.country = country;
- }
- }
编写一个类DataBeanList.java具有业务逻辑生成java bean对象的集合。这是进一步传递到报表引擎,生成报表。在这里,我们添加在列表 DataBean进行对象。把它保存到目录C:\tools\jasperreports-5.0.1\test\src\com\yiibai.
- package com.yiibai;
- import java.util.ArrayList;
- public class DataBeanList {
- public ArrayList<DataBean> getDataBeanList() {
- ArrayList<DataBean> dataBeanList = new ArrayList<DataBean>();
- dataBeanList.add(produce("Manisha", "India"));
- dataBeanList.add(produce("Dennis Ritchie", "USA"));
- dataBeanList.add(produce("V.Anand", "India"));
- dataBeanList.add(produce("Shrinath", "California"));
- return dataBeanList;
- }
- /**
- * This method returns a DataBean object,
- * with name and country set in it.
- */
- private DataBean produce(String name, String country) {
- DataBean dataBean = new DataBean();
- dataBean.setName(name);
- dataBean.setCountry(country);
- return dataBean;
- }
- }
编写一个类DataBeanList.java具有业务逻辑生成java bean对象的集合。这是进一步传递到Jasper报表引擎,生成报告。在这里,我们添加在列表4 DataBean进行对象。把它保存到目录 C:\tools\jasperreports-5.0.1\test\src\com\yiibai.
- package com.yiibai;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.Map;
- import net.sf.jasperreports.engine.JRException;
- import net.sf.jasperreports.engine.JasperFillManager;
- import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
- public class JasperReportFill {
- @SuppressWarnings("unchecked")
- public static void main(String[] args) {
- String sourceFileName =
- "c://tools/jasperreports-5.0.1/test/jasper_report_template.jasper";
- DataBeanList DataBeanList = new DataBeanList();
- ArrayList<DataBean> dataList = DataBeanList.getDataBeanList();
- JRBeanCollectionDataSource beanColDataSource =
- new JRBeanCollectionDataSource(dataList);
- Map parameters = new HashMap();
- try {
- JasperFillManager.fillReportToFile(
- sourceFileName,
- parameters,
- beanColDataSource);
- } catch (JRException e) {
- e.printStackTrace();
- }
- }
- }
生成报表
现在,我们将编译并使用我们的定期Ant构建过程执行这些文件。 build.xml文件如下图所示:
导入文件 - baseBuild.xml环境设置,并应放置在同一目录中的build.xml。
JasperReport填充报表6的更多相关文章
- 使用Japserreport填充报表数据(3)
E中以PDF文件的格式显示静态的中文字符串,在大多数的情况下,打印的数据来自于一些变量,在JasperReports工具中传递数据并填充到 报表只有两种方式,即使用Parameters参数和JRDat ...
- JasperReport导出报表8
我们已经看到在前面的章节中,如何打印和查看的JasperReport生成的文档.在这里,我们将看到如何在其他格式,如PDF,HTML和XLS转换或导出这些报告. Facade类net.sf.jaspe ...
- JasperReport编译报表设计5
我们在前面的章节中产生的JasperReport模板(JRXML文件).这个文件不能直接用于生成报告.它必须被编译成JasperReport的“本地二进制"格式,称为Jasperfile.在 ...
- JasperReport子报表参数传递
子报表参数传递 下图的参数名称可以自定义 再子报表新增一个同名称的参数即可
- JasperReport报表导出踩坑实录
写在最前面 翻了翻博客,因为太忙,已经好久没认真总结过了. 正好趁着今天老婆出门团建的机会,记录下最近这段时间遇到的大坑-JasperReport. 六月份的时候写过一篇利用poi文件导入导出的小De ...
- 利用JasperReport+iReport进行Web报表开发
用JasperReport+iReport进行Web报表开发 序言 在非常多实际的项目里,报表都是当中十分重要的组成部分,比如把查询结果以报表的形式呈现出来.这里所提到的报表可不是简单的二维表,而是拥 ...
- 使用JasperReport+iReport进行Web报表开发
使用JasperReport+iReport进行Web报表开发 前言 在实际工程中非常,报告是其中很重要的一部分,结果以报表的形式呈现出来.这里所提到的报表可不是简单的二维表,而是拥有复杂表头的.多维 ...
- JasperReport报表中输出Excel时,部分列不显示的问题
JasperReport开源报表功能强大,是我们WEB系统中做报表开发的一个强有力的工具,上手也比较简单.我碰到的问题是进行报表输出时,在html网页中显示正常,但如果导出为Excel时,部分列不显示 ...
- JAVA实用案例之文件导出(JasperReport踩坑实录)
写在最前面 想想来新公司也快五个月了,恍惚一瞬间. 翻了翻博客,因为太忙,也有将近五个多月没认真总结过了. 正好趁着今天老婆出门团建的机会,记录下最近这段时间遇到的大坑-JasperReport. 六 ...
随机推荐
- CSS 实现自适应正方形
在处理移动端页面时,我们有时会需要将banner图做成与屏幕等宽的正方形以获得最佳的体验效果,比如,商品详情页, 方法1.CSS3 vw单位 CSS3 中新增了一组相对于可视区域百分比的长度单位 vw ...
- Spring中AOP的实现
Spring中整合了AOP的功能,虽然有不足,没有专门做AOP框架的那么完美,但是用一用感觉还是不错的 一些概念: AOP 面向切面编程 aspect 切面/切面类(我个人认为一个真正被解耦的程序,切 ...
- idea激活破解
下载链接:https://pan.baidu.com/s/1BADk1MCm0YxtB6zoX0DivA 提取码 ze9m将破解补丁放到bin文件中jetbrains-all.jar 在这俩个文件最后 ...
- <Django> MVT三大块之Models(模型)
1.ORM(对象-关系-映射)---面向对象,不需要面向SQL语句 根据对象的类型生成表结构 将对象.列表的操作,转化成SQL语句 将SQL语句查询的结果转化成对象.列表 目的:实现数据模型与数据库的 ...
- READING | 我是一只IT小小鸟
“世界是如此的熙熙攘攘,让年轻的心找不到方向,但这些人是不能小看的啊,如果他们开始敲打自己的命令行.” “知之者不如好知者,好之者不如乐之者”,很多IT界的优秀人才都对计算机技术或者IT技术有着浓厚的 ...
- Java中Arrys数组常用的方法
Arrys常用方法 1.toString() Arrays.toString(arr) //打印数组的内容,观察数组元素的值 2.sort() Arrays.sort(arr); ...
- layui实现批量导入excal表
layui实现多文件上传,并直接选中需要上传文件的类型 //拖拽上传 upload.render({ elem : '#import', size: , //限制文件大小,单位 KB accept: ...
- HDU - 6128
题意略: 题解:二次剩余板子题 //#pragma GCC optimize(2) //#pragma GCC optimize(3) //#pragma GCC optimize(4) //#pra ...
- Flask从入门到入土
一.flask介绍 Flask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架,对于Werkzeug本质是Socket服务端,其用于接收http请求并对 ...
- pytorch 入门指南
两类深度学习框架的优缺点 动态图(PyTorch) 计算图的进行与代码的运行时同时进行的. 静态图(Tensorflow <2.0) 自建命名体系 自建时序控制 难以介入 使用深度学习框架的优点 ...