jasperreport 通过javabean datasoource实现chart的报表

       继上次report的demo后,还在继续做着report方面的research,今天主要是实现了通过javabean datasource填充chart图表,通过webservice下载pdf格式的报表。

       开始这一段快乐之旅吧,首先我在包下定义了两个类分别是Student和Mark,Student类下有三个属性,他们分别是

private String name;
private String number;
private List<Mark> mark;
Mark类下定义了两个属性

private String name;
private double mark;
另外写了一个函数去获取student的列表List,这将是填充JavaBean的数据源

public List<Student> getBeanData(){
		List<Student> listStudent = new ArrayList<Student>();
		Student student = new Student();
		student.setName("cheng");
		student.setNumber("01");
		
		List<Mark> listMark = new ArrayList<Mark>();
		listMark.add(new Mark("销售", 100));
		listMark.add(new Mark("IT", 139));
		listMark.add(new Mark("s", 110.6));
		listMark.add(new Mark("d", 120.4));
		listMark.add(new Mark("e", 120));
		
		student.setMark(listMark);
		listStudent.add(student);
		return listStudent;
	}
设计report chart报表


最后的任务是写webservice,打印出报表,贴主要的代码实现,有一些函数在上一篇文章中已经实现

public List<Student> getBeanData(){
		List<Student> listStudent = new ArrayList<Student>();
		Student student = new Student();
		student.setName("cheng");
		student.setNumber("01");
		
		List<Mark> listMark = new ArrayList<Mark>();
		listMark.add(new Mark("销售", 100));
		listMark.add(new Mark("IT", 139));
		listMark.add(new Mark("s", 110.6));
		listMark.add(new Mark("d", 120.4));
		listMark.add(new Mark("e", 120));
		
		student.setMark(listMark);
		listStudent.add(student);
		return listStudent;
	}
	
	//javabean
	@Path("download/chart")
	@Produces(MediaType.TEXT_PLAIN)
	@Transactional
	public String downloadReportByJavaBean(@Context HttpServletRequest req , @Context HttpServletResponse res) throws Exception{
		String designFilePath = req.getSession().getServletContext().getRealPath("/jasper") + 
				File.separator + "chartreport.jrxml";
		File designFile = new File(designFilePath);
		
		if(designFile.exists()){
			JRBeanCollectionDataSource dataSource = new JRBeanCollectionDataSource(getBeanData());
			JasperReport jasperReport = null;
			JasperDesign design = JRXmlLoader.load(designFile);
			jasperReport = JasperCompileManager.compileReport(design);
			
			JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport,null,dataSource);
			XLSReportProcess process = new XLSReportProcess();
			process.exportWebReport(ReportProcess.Type.pdf, res, jasperPrint , "chart.pdf");
			
		}
		return "success";
	}

最后实现的效果是通过webservice自动下载pdf文档,内容显示



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值