转自:http://www.blogjava.net/vjame/archive/2013/10/12/404908.html

一、创建简单的jrxml文件

这里可以手动创建jrxml文件,也可以使用ireport设计器创建

<?xml version="1.0"?>
 2<!DOCTYPE jasperReport
 3PUBLIC "-//JasperReports//DTD Report Design//EN"
 4"http://jasperreports.sourceforge.net/dtds/jasperreport.dtd">
 5<jasperReport name="FirstReport">
 6    <detail>
 7        <band height="20">
 8            <staticText>
 9                <reportElement x="20" y="0" width="200" height="20" />
10                <text><![CDATA[If you see this, it work]]></text>
11            </staticText>
12        </band>
13    </detail>
14</jasperReport>

以上是一个简单的JRXML文件,实际上就是一个标准的XML文件,<jasperReport>是根元素,<staticText>表示静态的数据,<reportElement>定义了<staticText>的位置和宽度,<text>定义了实际的静态数据。

二、把JRXML文件解析成jasper文件,文件流或JasperReport对象

编译jrxml生成jasper文件

"WebRoot/report/lanjh.jasper");
"WebRoot/report/lanjh.jasper");

生成文件流
public static void compileReportToStream(InputStream inputStream,OutputStream outputStream)

生成报表对象
public static JasperReport compileReport("WebRoot/report/jasperreports_demo.jrxml")

三、有了JasperReport对象,文件流或jasper文件之后,就可以用JasperFillManager生成JasperPrint对象,jrprint文件,jrprint文件流

生成JasperPrint 对象
public static JasperPrint fillReport(JasperReport jasperReport,Map parameters, JRDataSource dataSource)

四、使用JasperExportManager导出或显示
JasperExportManager.exportReportToHtmlFile(jasperPrint, "c://1.html");
JasperExportManager.exportReportToPdfFile(jasperPrint, "c://1.pdf");

完整的例子

 JasperReport jasperReport;
 2        JasperPrint jasperPrint;
 3        try{
 4          jasperReport = JasperCompileManager.compileReport("WebRoot/report/jasperreports_demo.jrxml");
 5          jasperPrint = JasperFillManager.fillReport(jasperReport, new HashMap(),new  JREmptyDataSource());
 6          JasperExportManager.exportReportToPdfFile(jasperPrint, "c://1.pdf");
 7   }
 8        catch (JRException e){
 9          e.printStackTrace();
10        }       

2.JasperReports学习笔记2-创建简单的报表例子的更多相关文章

  1. .net Core学习笔记1 创建简单的 .net core项目

    1.打开vs2017>Web 1:创建实体类: namespace ProductMvc.Models { //商品类型 public class ProductType { public in ...

  2. springmvc学习笔记---idea创建springmvc项目

    前言: 真的是很久没搞java的web服务开发了, 最近一次搞还是读研的时候, 想来感慨万千. 英雄没落, Eclipse的盟主地位隐隐然有被IntelliJ IDEA超越的趋势. Spring从2. ...

  3. Spring MVC 学习笔记8 —— 实现简单的用户管理(4)用户登录

    Spring MVC 学习笔记8 -- 实现简单的用户管理(4)用户登录 增删改查,login 1. login.jsp,写在外面,及跟WEB-INF同一级目录,如:ls Webcontent; &g ...

  4. Django:学习笔记(2)——创建第一个应用

    Django:学习笔记(2)——创建第一个应用 创建应用 在 Django 中,每一个应用都是一个 Python 包,并且遵循着相同的约定.Django 自带一个工具,可以帮你生成应用的基础目录结构, ...

  5. Java学习笔记-多线程-创建线程的方式

    创建线程 创建线程的方式: 继承java.lang.Thread 实现java.lang.Runnable接口 所有的线程对象都是Thead及其子类的实例 每个线程完成一定的任务,其实就是一段顺序执行 ...

  6. Spring MVC 学习笔记10 —— 实现简单的用户管理(4.3)用户登录显示全局异常信息

    </pre>Spring MVC 学习笔记10 -- 实现简单的用户管理(4.3)用户登录--显示全局异常信息<p></p><p></p>& ...

  7. Spring MVC 学习笔记9 —— 实现简单的用户管理(4)用户登录显示局部异常信息

    Spring MVC 学习笔记9 -- 实现简单的用户管理(4.2)用户登录--显示局部异常信息 第二部分:显示局部异常信息,而不是500错误页 1. 写一个方法,把UserException传进来. ...

  8. [原创]java WEB学习笔记40:简单标签概述(背景,使用一个标签,标签库的API,SimpleTag接口,创建一个自定义的标签的步骤 和简单实践)

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  9. Unity3D学习笔记4——创建Mesh高级接口

    目录 1. 概述 2. 详论 3. 其他 4. 参考 1. 概述 在文章Unity3D学习笔记2--绘制一个带纹理的面中使用代码的方式创建了一个Mesh,不过这套接口在Unity中被称为简单接口.与其 ...

随机推荐

  1. LDA中的先验知识

    LDA涉及到的先验知识有:二项分布.Gamma函数.Beta分布.多项分布.Dirichlet分布.马尔科夫链.MCMC.Gibbs Sampling.EM算法等. 二项分布 二项分布是N重伯努利分布 ...

  2. python 的for else语句

    for中间不是break出来的,是正常循环完跳出循环的会执行else内的语句 while else语句也是如此 这个以前的常见语言没有,特此记录

  3. ButterKnife 原理解析

    一.使用方法 1.添加依赖. implementation 'com.jakewharton:butterknife:8.8.1' annotationProcessor 'com.jakewhart ...

  4. weak 的内部实现原理

    问题 weak 变量在引用计数为0时,会被自动设置成 nil,这个特性是如何实现的? 答案 在 Friday QA 上,有一期专门介绍 weak 的实现原理.https://mikeash.com/p ...

  5. 【leetcode刷题笔记】Linked List Cycle II

    Given a linked list, return the node where the cycle begins. If there is no cycle, return null. Foll ...

  6. 第二十三篇、IO多路复用 二

    基于IO多路复用实现socket的连接 下面流程:1.先创建列表,让自己的socket对象传入,然后遍历select第一个参数2.客户端连接,那么客户端socket就传入到了列表里面,3.遍历,接收客 ...

  7. 第一篇 先用socket模拟web服务器

    一.用socket来模拟网站访问 socket为python2.7 #!/usr/bin/env python # -*- coding:utf-8 -*- import socket def han ...

  8. 有关java是编译型语言还是解释性语言

    博客分类: 技术杂谈 JavaD语言JVMC++C# 小生现在大二, java学习的时间不到一年 但是自认学习效率还是比较高的,同时在java上用时也比较多 在周末,放假,暑假. 每天能花费12+个小 ...

  9. codeforces 466C 计数 codeforces 483B 二分 容斥

    题意:给你n个数,将他们分成连续的三个部分使得每个部分的和相同,求出分法的种数. 思路:用一个数组a[i]记下从第一个点到当前i点的总和.最后一个点是总和为sum的点,只需求出总和为1/3sum的点和 ...

  10. mysql分区partition

    分区后 会产生多个 数据存储文件MYD,MYI ,把内容读取分散到多个文件上,这样减少并发读取,文件锁的概率,提高IO === 水平分区的几种模式:===1. Range(范围) – 这种模式允许DB ...