主要内容参考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初步》这篇文章主要介绍了开源报表工具JasperReports的基础使用,以及与其配套的可视化设计工具iReport。JasperReports是Java平台上的一款强大且灵活的报表生成库,常用于企业级应用中,...
jasper报表(odoo)
jasper报表(odoo询价单)
将其打包成一个名为`HelloWorld.war`的WAR文件,放入`webapps`目录,Tomcat会自动部署并运行这个应用。 对于更复杂的配置,如集群、负载均衡、SSL加密或日志管理,需要深入理解Tomcat的高级特性。例如,通过修改`...
<title>Hello World <h1>Welcome to Spring Boot with JSP! ``` 4. **运行和测试** 编译并运行Spring Boot应用,访问`http://localhost:8080/hello`,你应该能看到"Welcome to Spring Boot with JSP!...
3. **测试应用**:可能包含一个简单的Web应用,用于测试MyTomcat服务器的正确运行,例如一个"Hello, World!"的Servlet。 4. **文档**:可能有作者编写的关于MyTomcat设计和实现的说明文档,帮助用户理解和学习。 在...
文档中提到的`org.apache.markt.HelloWorld`是一个嵌入式Tomcat的简单示例,它展示了如何创建一个嵌入式Tomcat服务器并部署一个简单的Servlet。这个例子中,`Tomcat`类是核心,通过实例化这个类并进行适当的配置后,...
return "Hello, " + input; } } ``` 2. **配置TLD文件**:在TLD文件中声明该函数。 ```xml <name>myFunction <function-class>com.example.MyFunctions</function-class> <function-signature>java....
request.setAttribute("message", "Hello, World!"); RequestDispatcher dispatcher = request.getRequestDispatcher("/WEB-INF/views/hello.jsp"); dispatcher.forward(request, response); } } ``` #### 九、...
【标题】"Tomcat与Java.Web开发技术详解"主要涵盖了两个核心主题:...通过实践,可以掌握从创建简单的Hello World应用到构建复杂的企业级应用的所有步骤。对于想要从事Web开发的人员来说,这是一个必不可少的学习资源。
这些实例涵盖了从简单的"Hello, World"应用到复杂的多模块项目,可以帮助读者将所学知识应用于实际开发环境中。 总结来说,《Tomcat与JavaWeb开发技术详解》是一本系统性、实践性强的指南,无论你是初学者还是经验...
JasperReports 与Spring 或者 struts 的整合 含有jar ,主要工具类,报表文件, 整合注意请参考:http://blog.csdn.net/u010947651/article/details/65939310
**Elasticsearch权威指南** Elasticsearch是一款开源的全文搜索引擎,基于Lucene构建,具有分布式、实时、可扩展性好、容错性强等特性。它不仅是一个搜索库,还提供了数据存储、分析和检索的强大功能,广泛应用于...
《Spark技术内幕深入解析Spark内核架构设计与实现原理》这本书是Spark技术研究的重要参考资料,由张安站编著,提供了全面的Spark内核解析,包括详细的架构设计和实现原理。Spark作为当前大数据处理领域的重要工具,...