JasperReport的入门步骤
用了几天JasperReport,写下一点心得.希望对于入门JasperReport的同仁们有帮助.
首先,需要明白的是什么是report.通俗一点说,就是将数据以某种格式展现出来.在这里2有2格重要的方面,即数据和展现.
对于数据,无非就是数据库里的数据以及经过对这些原始数据处理的数据.展现就是以某种格式将这些数据表现出来.
对于一个刚开始接触JasperReport的人来说,恐怕首先一点概念都不懂.OK,我将围绕上面提到的2个方面展开来说.
如何制作一个JasperReport报表,这是我们最关心的.
步骤通常如下:
Step1:创建一个表现数据的template,这个就是一个模型了,只需要将数据往里面装即可.
如何创建一个template?可以采用iReport来设计,他的最新版本支持当前JasperReport的最新版本1.3.3(截止撰写本文的日期).这样你只需要往里面拖拖element即可,例如StaticText,TextField等.
注意,这个template文件是以.jrxml结尾的,用记事本打开,无非就是一个xml文件而已.
Step2:编译step1创建的template ,即jrxml文件.这样会编译为一个jasper文件,这是一个二进制文件.
问题:为什么要编译它?
其实也不是必须的,也可以在运行时来编译.仔细一想,如果在运行时来编译,如果有100个用户调用相同的report,难道系统会编译100次?这样下来,其效率极其低下.如果将之直接编译好,也就节省了这100次的时间了.所以还是编译为好,从另一个角度来说,report的模板很少改变的.
问题又来了,如何编译呢?最简单的方式是利用iReport来编译,这个和IDE有点类似.当然还有其他的方法来编译,那就是JasperReport自己提供的API来编译,不过这个还需要写代码等,有点麻烦,不过等我们熟悉了JasperReport之后,再使用也未尝不可.刚开始入门时,越简单越好.
Step3:填充数据,拿行话说就是fill report.
本来这步可能在step2也可能涉及到.但为了系统讲解,还是移到这里.JasperReport填充数据有多种方法,不过最常用的就2种:一是直接在jrxml文件里嵌入sql语句,而是创建一个自己的数据源,记得这个数据源从JRDataSource继承而来.JRDataSource有个方法一定要实现,即next以及getFieldValue,具体参见其API
Step 4,将数据表现出来
JasperReport很明显可以将数据存储为PDF,xls,html等.
可能我们最常见的是将数据在浏览器直接显示,那么如何做到呢?很简单, JRHtmlExporter就可以完成.设置以下参数,然后导出即可.导出的可是html数据哟.只需要将这些html数据在页面上显示就没有问题了.具体参看JRHtmlExporter的api文档.
也许你还想将report导出到pdf,xls,doc文档,非常简单,利用jasperReport提供的serverlet类即可. net.sf.jasperreports.j2ee.servlets.PdfServlet用于PDF, net.sf.jasperreports.j2ee.servlets.XlsServlet用于xls, net.sf.jasperreports.j2ee.servlets.RtfServlet用于rtf.
如果对于JasperReport自带的不满意,那就自己写吧.
以上就是一些基本步骤.后面将写一篇文章介绍template的结构以及组成.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?