您的位置:首页 > 编程语言 > ASP

jasperreport 通过javabean datasoource实现chart的报表

2013-10-29 21:52 369 查看
继上次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文档,内容显示

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: