`
zhyt710
  • 浏览: 206029 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

jasper--helloworld

阅读更多

主要内容参考http://blog.csdn.net/leafxx/archive/2006/03/16/626700.aspx

 

 

JasperReports的报表是用XML文件来定义的,约定用jrxml作后缀名。一个典型的jrxml文件包含以下元素:

    * <jsperReport> - 根元素

    * <title> - 报表的标题,一篇报表里只在开头打印一次

    * <pageHeader> - 页眉,报表每页开头打印一次

    * <detail> - 报表正文

    * <pageFooter> - 页脚,报表每页末尾打印一次

    * <band> - 定义报表部件,以上所有元素都包含一个band元素作为他们唯一的子元素

除了root元素,所有的元素都是可选的。这里是一个jrxml文件的例子,它将生成一个显示字符串“你好,世界!”的简单报表。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE jasperReport
  PUBLIC "-//JasperReports//DTD Report Design//EN"
  "http://jasperreports.sourceforge.net/dtds/jasperreport.dtd">

<jasperReport name="structure">
  <detail>
    <band height="20">
      <staticText>
        <reportElement x="180" y="0" width="200" height="20"/>
        <textElement>
			<font fontName="宋体" size="12" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/>
		</textElement>
        <text><![CDATA[你好,世界!]]></text>
      </staticText>
    </band>
  </detail>
</jasperReport>

在这个简单的例子中,我没有写可选项<title>, <pageHeader>还有<pageFooter>。<staticText>元素,顾名思义,在报表上显示静态的文本,就像你所看到的,它包含了一个单独的<text>元素定义将要显示的文本。

jrxml文件需要“编译”成JasperReports规范的二进制格式,可以调用类net.sf.jasperreports.engine.JasperCompileManager的方法compileReport()来实现。这个方法有几种重载的形式,在我们的例子中,我们将用到的是单个字符串为参数的方法。参考JasperReport文档以获得这个方法其他版本的详细信息。

package tutorial;

import java.util.HashMap;

import net.sf.jasperreports.engine.JREmptyDataSource;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;

public class Structure {

	@SuppressWarnings("unchecked")
	public static void main(String[] args) {

		JasperReport jasperReport;
		JasperPrint jasperPrint;
		try {
			//编译报表设计
			jasperReport = JasperCompileManager
					.compileReport("reports/structure.jrxml");
			//在模板中填充数据
			jasperPrint = JasperFillManager.fillReport(jasperReport,
					new HashMap(), new JREmptyDataSource());
			//输出pdf文件
			JasperExportManager.exportReportToPdfFile(jasperPrint,
					"reports/structure.pdf");

		} catch (JRException e) {
			e.printStackTrace();
		}

	}

}

 

一个jrxml文件只需要编译一次,但在这个简单例子中,每次执行程序都会被编译。在报表生成之前,需要用数据来“填充”它,在这里我们调用net.sf.jasperreports.engine.JasperFillManager类里的fillReport()方法。同样的,它也有许多重载的形式,这里我们用到了其中一个具有三个参数的方法,第一个是JasperReport的实例, 第二个是HashMap,它可以包含任何要传递给report的参数,第三个参数对象要实现JRDataSource接口。这个方法的使用在我们的例子里面是:
jasperPrint = JasperFillManager.fillReport(
          jasperReport, new HashMap(), new JREmptyDataSource());
因为我们的例子里的report类不需要任何参数,所以传给一个它一个空的HashMap,第三个参数net.sf.jasperreports.engine.JREmptyDataSource是一个实现了JRDataSource接口的简便类,这个基本类不包含任何数据。
The parameters are self-explanatory.
最后,在例子中,我们将报表导出为PDF文件,可以用Adobe Acrobat, XPDF, Evince或其他PDF阅读工具打开。在例子中的代码是:JasperExportManager.exportReportToPdfFile(
          jasperPrint, "reports/structure.pdf");

分享到:
评论

相关推荐

    HelloWorld之JasperReports初步李翊新浪博客.pdf

    《HelloWorld之JasperReports初步》这篇文章主要介绍了开源报表工具JasperReports的基础使用,以及与其配套的可视化设计工具iReport。JasperReports是Java平台上的一款强大且灵活的报表生成库,常用于企业级应用中,...

    jasper报表(odoo)

    jasper报表(odoo)

    jasper报表(odoo询价单)

    jasper报表(odoo询价单)

    apache-tomcat-6.0.30

    将其打包成一个名为`HelloWorld.war`的WAR文件,放入`webapps`目录,Tomcat会自动部署并运行这个应用。 对于更复杂的配置,如集群、负载均衡、SSL加密或日志管理,需要深入理解Tomcat的高级特性。例如,通过修改`...

    SpringBoot实现jsp页面跳转简单实例

    &lt;title&gt;Hello World &lt;h1&gt;Welcome to Spring Boot with JSP! ``` 4. **运行和测试** 编译并运行Spring Boot应用,访问`http://localhost:8080/hello`,你应该能看到"Welcome to Spring Boot with JSP!...

    myTomcat-test

    3. **测试应用**:可能包含一个简单的Web应用,用于测试MyTomcat服务器的正确运行,例如一个"Hello, World!"的Servlet。 4. **文档**:可能有作者编写的关于MyTomcat设计和实现的说明文档,帮助用户理解和学习。 在...

    tomcat7 在java程序中启动

    文档中提到的`org.apache.markt.HelloWorld`是一个嵌入式Tomcat的简单示例,它展示了如何创建一个嵌入式Tomcat服务器并部署一个简单的Servlet。这个例子中,`Tomcat`类是核心,通过实例化这个类并进行适当的配置后,...

    从JSTL和STRUTS的TLD文件到自定义EL函数

    return "Hello, " + input; } } ``` 2. **配置TLD文件**:在TLD文件中声明该函数。 ```xml &lt;name&gt;myFunction &lt;function-class&gt;com.example.MyFunctions&lt;/function-class&gt; &lt;function-signature&gt;java....

    springboot课堂笔记,如果觉得好给我留言要教学视频

    request.setAttribute("message", "Hello, World!"); RequestDispatcher dispatcher = request.getRequestDispatcher("/WEB-INF/views/hello.jsp"); dispatcher.forward(request, response); } } ``` #### 九、...

    Tomcat与Java.Web开发技术详解

    【标题】"Tomcat与Java.Web开发技术详解"主要涵盖了两个核心主题:...通过实践,可以掌握从创建简单的Hello World应用到构建复杂的企业级应用的所有步骤。对于想要从事Web开发的人员来说,这是一个必不可少的学习资源。

    Tomcat与JavaWeb开发技术详解(孙卫琴)

    这些实例涵盖了从简单的"Hello, World"应用到复杂的多模块项目,可以帮助读者将所学知识应用于实际开发环境中。 总结来说,《Tomcat与JavaWeb开发技术详解》是一本系统性、实践性强的指南,无论你是初学者还是经验...

    JasperReports 与Spring 或者 struts 的整合 含有jar ,主要工具类,报表文件

    JasperReports 与Spring 或者 struts 的整合 含有jar ,主要工具类,报表文件, 整合注意请参考:http://blog.csdn.net/u010947651/article/details/65939310

    Elasticsearch权威指南

    **Elasticsearch权威指南** Elasticsearch是一款开源的全文搜索引擎,基于Lucene构建,具有分布式、实时、可扩展性好、容错性强等特性。它不仅是一个搜索库,还提供了数据存储、分析和检索的强大功能,广泛应用于...

    Spark技术内幕深入解析Spark内核架构设计与实现原理

    《Spark技术内幕深入解析Spark内核架构设计与实现原理》这本书是Spark技术研究的重要参考资料,由张安站编著,提供了全面的Spark内核解析,包括详细的架构设计和实现原理。Spark作为当前大数据处理领域的重要工具,...

Global site tag (gtag.js) - Google Analytics