zoukankan      html  css  js  c++  java
  • 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文档,内容显示



  • 相关阅读:
    数据库中计算值的更新方法
    多语言系统的数据库设计
    深蓝词库转换2.0发布——支持仓颉、注音、五笔、郑码、二笔等
    数据库SQL开发的一些要点
    最近工作有点累
    IPv6地址争夺中国再落后 申请量仅全球1.8%
    Nantpad 1.0 has been released!
    又丢了一辆自行车
    搬到新家了.
    我和我的好友的计算机之路.希望能给你的计算机生活点一盞明灯
  • 原文地址:https://www.cnblogs.com/james1207/p/3395329.html
Copyright © 2011-2022 走看看