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内容如下:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		//map作为报表数据源
		Map<String,Object> parameters = new HashMap<String,Object>(16);
		parameters.put("title", "THIS IS TITLE");
		parameters.put("date", new SimpleDateFormat("yyyy-mm-dd").format(new Date()));
		parameters.put("name", "小明");
		parameters.put("age", "18");
		parameters.put("dept", "开发部");
		parameters.put("gender", "男");
		
		//引入jasper文件。由JRXML模板编译生成的二进制文件,用于代码填充数据
		String jasperPath = request.getServletContext().getRealPath("/")+"/jasper/DemoReport2.jasper";
		FileInputStream isRef = new FileInputStream(new File(jasperPath));
		ServletOutputStream sosRef = response.getOutputStream();
		
		try {
			JasperRunManager.runReportToPdfStream(isRef, sosRef, parameters, new JREmptyDataSource());
			response.setContentType("application/pdf");
		} catch (JRException e) {
			
			e.printStackTrace();
		}finally {
			sosRef.flush();
			sosRef.close();
		}				
	}


在这里可以发现,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中文不显示问题。





  • 9
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 39
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 39
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值