Jasperreports+jaspersoft studio学习教程(二)- 使用Parameters属性传入Map数据源填充报表

2.1 设计报表模板

2.1.1 在Studio中新建一个报表模板(DemoReport2),删除不需要的Band,Column Header,ColumnFooter,Summary,Background,在outline界面中选中要删除Band右键-> delete,即可删除。

 

2.1.2 在outline面板中找到Parameters,右键 -> Create Parameter,新建一个Parameter(生成一个Paramerter1)

 

 2.1.3 右键 Paramete1 -> Show Properties. 设置Name为title、Class为java.lang.String.

 

用同样的方法生成,date,name,age,dept,gender的parameter项,属性全为java.lang.String

 

 

2.1.4 利用组件面板(Palette)中的组件设计模板。

选取Static Text组件拖动到Detail Band中,写入“NAME:”,可以设置字体,大小。

 

点击 “NAME”显示Properties.在Appearance中可以设置组件的宽高,和组件在模板上的位置。

在Properties.的Borders中可以设置组件的边框:

 

将 outline面板中Parameters下的name,拖动到Detail 面板中,通过修改该组件的Properties属性,设置位置和大小,设置边框。

 

2.1.5 通过以上步骤,设计其他parameter属性,设计报表模板如下:

 

2.1.6 保存模板,并Preview

结果如图:

 

 

2.2 通过Java程序,使用Map作为数据源生成报表

2.2.1 新建web项目,在下载的jasperreport包的\jasperreports-6.4.1\dist目录下,找到三个jar包引入到项目中。

 

 

2.2.2 新建servlet,(这里为JasperServlet),doGet内容如下:

  1. protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

  2.  
  3. //map作为报表数据源

  4. Map<String,Object> parameters = new HashMap<String,Object>(16);

  5. parameters.put("title", "THIS IS TITLE");

  6. parameters.put("date", new SimpleDateFormat("yyyy-mm-dd").format(new Date()));

  7. parameters.put("name", "小明");

  8. parameters.put("age", "18");

  9. parameters.put("dept", "开发部");

  10. parameters.put("gender", "男");

  11.  
  12. //引入jasper文件。由JRXML模板编译生成的二进制文件,用于代码填充数据

  13. String jasperPath = request.getServletContext().getRealPath("/")+"/jasper/DemoReport2.jasper";

  14. FileInputStream isRef = new FileInputStream(new File(jasperPath));

  15. ServletOutputStream sosRef = response.getOutputStream();

  16.  
  17. try {

  18. JasperRunManager.runReportToPdfStream(isRef, sosRef, parameters, new JREmptyDataSource());

  19. response.setContentType("application/pdf");

  20. } catch (JRException e) {

  21.  
  22. e.printStackTrace();

  23. }finally {

  24. sosRef.flush();

  25. sosRef.close();

  26. }

  27. }


 

在这里可以发现,parametes作为数据源在程序中是一个Map集合。对应模板中Paramters,并且map的key与模板中Parameters属性的名字一致,map的value的数据类型与模板Parameters属性设置的数据类型保持一致。所以,在设计模板时要注意,Parameters命名不能重复,且设置数据类型时也要留心。

.jsaper文件:由JRXML模板编译生成的二进制文件,用于代码填充数据

在studio中找到.jrxml文件右键 -> Compile Report ,即可生成.Jasper文件,

将生成的DemoReport2.jasper文件放入WebRoot下新建的jasper文件夹中。

2.2.3 报表的生成流程

 

 

2.2.4 将web工程放入tonmcat中,启动并访问。

 

 

访问成功了,但是中文却并未显示。下一篇解决打印pdf中文不显示问题。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值