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文档,内容显示
jasperreport 通过javabean datasoource实现chart的报表的更多相关文章
- JasperReport报表开发(一)--原理介绍
1. JasperReport介绍 JasperReport 是一个开源的Java报表引擎,它不像其他的报表工具,例如Crystal报表是基于Java的,没有自己的表达式语法.Jasper Repor ...
- JasperReports报表数据源10
数据源的结构数据容器.同时生成报告,Jasper报表引擎获得来自数据源的数据.数据可以从数据库,XML文件,对象数组和集合中的对象来获得.我们将在本章填充报告所看到的fillReportXXX()方法 ...
- JasperReport框架使用教程(附带常见空白页问题说明)
概述与安装使用 1. PDF报表概述 概述 在企业级应用开发中,报表生成.报表打印下载是其重要的一个环节.在之前的课程中我们已经学习了报表中比较重要的一种:Excel报表.其实除了Excel报表之 ...
- salesforce 零基础学习(二十六)自定义图表chart简单介绍(使用apex和VF实现)
chart在报表中经常使用到,他可以使报表结果更加直观的展现给用户.salesforce支持VF和apex代码来更好的展示chart. chart分类:常用的图表样式有饼状图,柱状图,折线图,条形图, ...
- Java注解(二):实战 - 直接使用对象列表生成报表
通过对Java注解(一):介绍,思想及优点学习了解,相信大家对Java注解有一定程度的了解,本篇文章将实战项目中的应用来加深对Java注解的了解. 本实例实现根据指定字段的JavaBean,生成对应列 ...
- 使用JQuery结合HIghcharts实现从后台获取JSON实时刷新图表
项目做了一个报表,可以实时的观察呼叫中心的电话访问量,之前的版本是使用JFreechart做的,使用一段时间后出现内存溢出,服务器的内存使用量会变得很大,所以改用Ajax前台加载数据的方式实现实时报表 ...
- Jasperreport5.6.9-----1
Jasperreport5.6.0生成PDF 最近项目中需要生成报表,先是看了下itext,觉得还可以,但是如果数据字段多的话,不太灵活.所以后来看了下ireport,觉得还可以,下面简单说一下它们: ...
- salesforce
salesforce&apex salesforce开发的小心得 salesforce零基础学习(七十七)队列的实现以及应用 摘要: 队列和栈简单的区别为栈是后进先出,队列是先进先出.队列也是 ...
- Create the first sql server 2016 mobile report;创建 第一个 sqlserver 2016 Mobile report
在微软收购了datazen之后,sqlserver2016 集成了mobilereport,mobile report 基于html5,兼容各类主流浏览器,之前ssrs2008 R2中很多chart类 ...
随机推荐
- Codeforces Round #355 (Div. 2) B. Vanya and Food Processor 水题
B. Vanya and Food Processor 题目连接: http://www.codeforces.com/contest/677/problem/B Description Vanya ...
- 前端换mac可以参考搭一下简单的环境
1. 安装brew套件管理器 安装向导请点击,注意的地方,mac必须先设置一个密码.装好之后就可以安装各种套件. 2. 安装nvm管理node版本 brew install nvm 安装完成之后nvm ...
- MySQL内核整理(一)
一.在共享表空间(系统表空间)中,innodb会维护一些系统信息:1.Internal data dictionary2.Rollback segments3.undo space4.insert b ...
- ActiveMQ Cluster (ActiveMQ 集群) 配置
构建高可用的ActiveMQ系统在生产环境中是非常重要的,对于这个apache的消息中间件实现高可用非常简单,只要在Apache ActiveMQ单点基本配置基础上做一次配置变更(如果在一台设备上部署 ...
- Git_自定义Git
在安装Git一节中,我们已经配置了user.name和user.email,实际上,Git还有很多可配置项. 比如,让Git显示颜色,会让命令输出看起来更醒目: $ git config --glob ...
- Android 脚本设计之 SL4A
SL4A的全称为Scripting Layer for Android, 顾名思义就是Android的脚本架构层,它的目的就是可以用熟知的脚本开发语言来开发Android应用程序.其工作原理基于RPC ...
- .Net高级技术——结构体
结构体 结构体和类的区别:结构体是值类型,类是引用类型 结构体非常类似于类,但是值类型(拷贝传递),不能被继承 Int32.DateTime等都是结构体,从ValueType继承,值类型. 结构体测试 ...
- DevExpress RichEditControl 上下翻页功能 z
/// <summary> /// 翻页 /// </summary> /// <param name="isPre"></param&g ...
- c# webBrowser下载图片
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { ...
- [Git] 谷歌的代码管理
copy from : http://www.ruanyifeng.com/blog/2016/07/google-monolithic-source-repository.html https:// ...