jasperreport
折腾了一天,终于是弄明白了一点报表工具的用法,借鉴的是youtube上的视频,非常感谢国外的大神,大神录的视频全程不说话,只是录了操作画面,我就照着视频理解敲代码,终于是完成了我所想的效果。
设计报表用的是 TIBCO Jaspersoft Studio,用这个生成jrxml文件,然后在项目中使用,我对报表工具的理解大概就是模块化显示一个pdf,所谓模块化大概就是像医院给的收据似的,各个已经有字段对齐从数据库里提取的字段,用于打印和显示。
毫无思路的我,先是自己查资料,咨询同事,各种尝试,终于在youtube上找到了我想要的教程。
话不多说,先上代码
@controller
@requestMAPPing("/report")
public class ReportTest {
@Autowired
private AddressDao addressDao;
@RequestMapping(value="/v2",method=RequestMethod.GET)
public void preTest(/*HttpServletRequest request,*/ HttpServletresponse response) {
Address a1=addressDao.queryAddByID(2);
try{
List<Map<String,String>> datasource=new ArrayList<Map<String,String>>();;
Map<String,String> m=new HashMap<String,String>();
m.put("add_name", a1.getAddName());
m.put("add_content", a1.getAddContent());
m.put("add_phone_owner", a1.getAddPhoneOwner());
m.put("add_phone_number",a1.getAddPhoneNumber());
dataSource.add(m);
JRDataSource jrDataSource=new JRBeanCollectionDataSource(dataSource);
InputStream input=new fileinputstream(new File("L:/mygit/java/reporttest/src/main/webapp/WEB-INF/report/v1/DemoReport1.jrxml"));
JasperReport jasperReport=JasperCompileManager.compileReport(input);
Jasperprint jasperPrint=JasperFillManager.fillReport(jasperReport,null,jrDataSource);
JasperExportManager.exportReportToPdfStream(jasperPrint,response.getoutputstream());
response.getOutputStream().flush();
response.getOutputStream().close();
}catch(Exception e){
e.printstacktrace();
}
return ;
}
}
前面是形成一串二维数据,其中键名和jasper里的字段一致,接下来将这二维数据 用JRBeanCollectionDataSource保存,接下来读取jrxml文件,根将数据填写到jrxml文件里用JasperFillManager.fillReport 这个方法,填写后得到了JasperPrint,然后将这个参数输出到页面,页面的显示形式为PDF,而输出的方式是JasperExportManager.exportReportToPdfStream 这个方法,输出到response.getOutputStream()里,页面完成显示。清空缓冲器,关闭流。
其中报表文件的设计是决定文件显示是否美观的关键,读取时我使用的是绝对路径,在项目里我会使用相对路径。输出到页面的方式比较隐晦,导致我一直不是很理解,问了很多人,也困惑了很久。
在maven工程里引入依赖,是在https://mvnrepository.com/ 里搜到的,结果如下
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports</artifactId>
<version>6.7.0</version>
</dependency>
总算完成了,其实还遇见了一个坑,就是Jaspersoft Studio不支持显示中文,解决办法是引入中文字体,具体操作CSDN里有很多人有解决办法,我就不转载了。
文章最后发布于: 2019-03-02 21:55:54
相关阅读
在上一篇博客中,我们介绍了资产负债表,通过资产负债表可以清晰地反映出一个企业的资产、负债情况,但经过一年的运营,这一家企业是赚钱
如果出现ireport打不开的问题正常都是因为JDK版本太高了,百度下如何简单,很容易的首先:文件->new,选择Blank A4,Open this template2、
Excel 格式报表生成 POI POI 生成 Excel 步骤写 Excel 过程一样,新建 Excel 文档 -- 新建 Sheet -- 新建 Row -- 新建 Cell
最近做的一个成本分析的报表。 *&---------------------------------------------------------------------**& Report ZCOXY00
1、JasperReport是一个强大、灵活的报表生成工具,能够展示丰富的页面内容,并将之转换成PDF,HTML,或者XML格式。该库完全由Java写成,可