Jasperreports+jaspersoft studio学习教程(十)- 多数据源的Chart图表

本文主要是介绍Jasperreports+jaspersoft studio学习教程(十)- 多数据源的Chart图表,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本篇介绍Chart图表。注入多数据源(学会使用DataSet)

 

10.1 设计报表模板

10.1.1 新建模板demo14.jrxml,只保留Title、Detail。新建两个Parameters:userList(java.util.List)、employeeList(java.util.List)。




10.1.2 新建两个空Dataset:Dataset1、Dataset2。模板右键 -> Create Dataset。




10.1.3 在Dataset中新建Fields如图:




10.1.4 在组件面板中拖动 Chart组件到Detail Band中,跳出Chart Wizard窗口,选中饼状图。




10.1.5 Next后,Dataset选中 Dataset1,Use a JRDatasource expression 。




在Exception Editor写值为

newnet.sf.jasperreports.engine.data.JRBeanCollectionDataSource($P{userList})




10.1.6 添加一个 Series,选中$F{userName},即设定key为  $F{userName}。




设定 value的值为 $F{age},Label需要String类型的值。Finish完成


10.1.7 显示 饼图的Properties.选中 Chart,设置图表Title




10.1.8 选中 Chart Plot ,设置 show Label




饼图表完成。

 

10.1.9 拖动一个柱状图到 Detail Band中。添加两个Series对象




10.1.10 设置Dataset 为 Dataset2,且Exception Editor写值为newnet.sf.jasperreports.engine.data.JRBeanCollectionDataSource($P{employeeList})




10.1.11 选中Series 为 “工龄(年)”,设置key和Value如图:




10.1.12 选中 Series 为 “月薪(K)”,设置key和Value如图:




10.1.13 设置柱状图的标题




10.1.14 设置show Label 




设置 Category Axis




设置 Value Axis




设置 Item Label


柱状图完成。设计模板如下:



保存后拷贝到项目中。

 

10.2 编写代码注入数据源

使用图表需要加jfreechart的jar包



10.2.1 新建 Employee类

public class Employee {private Integer id;private String empName;private Integer workingYears;private Double monthlySalary;//get、set方法省略}

10.2.2 新建Servlet ,doGet如下:

 


protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {Map<String,Object> parameters = new HashMap<String,Object>(16);String jrxmlPath = request.getServletContext().getRealPath("/")+"/jrxml/demo14.jrxml";//由jrxml文件编译后生产jasper文件的路径String jasperPath = request.getServletContext().getRealPath("/")+"/jasper/demo14.jasper";FileInputStream isRef = null;ServletOutputStream sosRef = null;try {//编译jrxml生产jasper文件JasperCompileManager.compileReportToFile(jrxmlPath, jasperPath);isRef = new FileInputStream(new File(jasperPath));sosRef = response.getOutputStream();//组装list数据源List<User> userlist = new ArrayList<User>();User user1 = new User(1,"小明",15,1);User user2 = new User(2,"小虎",28,1);User user3 = new User(3,"小风",24,2);User user4 = new User(4,"小东",18,2);User user5 = new User(5,"小南",32,3);User user6 = new User(6,"小翔",38,3);userlist.add(user1);userlist.add(user2);userlist.add(user3);userlist.add(user4);userlist.add(user5);userlist.add(user6);List<Employee> emplist = new ArrayList<Employee>();Employee emp1 = new Employee(1,"小宇",3,8.0);Employee emp2 = new Employee(2,"小方",2,6.5);Employee emp3 = new Employee(3,"小志",5,15.0);Employee emp4 = new Employee(4,"小刚",6,15.0);Employee emp5 = new Employee(5,"小希",8,20.0);Employee emp6 = new Employee(6,"小文",10,18.0);emplist.add(emp1);emplist.add(emp2);emplist.add(emp3);emplist.add(emp4);emplist.add(emp5);emplist.add(emp6);parameters.put("userList", userlist);parameters.put("employeeList", emplist);JasperRunManager.runReportToPdfStream(isRef, sosRef, parameters, new JREmptyDataSource());response.setContentType("application/pdf");} catch (JRException e) {e.printStackTrace();}finally {sosRef.flush();sosRef.close();}}

10.2.3 启动tomcat,并访问servlet如下:




博客教程word版,已上传,需要请下载。



这篇关于Jasperreports+jaspersoft studio学习教程(十)- 多数据源的Chart图表的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/465025

相关文章

使用Docker构建Python Flask程序的详细教程

《使用Docker构建PythonFlask程序的详细教程》在当今的软件开发领域,容器化技术正变得越来越流行,而Docker无疑是其中的佼佼者,本文我们就来聊聊如何使用Docker构建一个简单的Py... 目录引言一、准备工作二、创建 Flask 应用程序三、创建 dockerfile四、构建 Docker

Visual Studio 2022 编译C++20代码的图文步骤

《VisualStudio2022编译C++20代码的图文步骤》在VisualStudio中启用C++20import功能,需设置语言标准为ISOC++20,开启扫描源查找模块依赖及实验性标... 默认创建Visual Studio桌面控制台项目代码包含C++20的import方法。右键项目的属性:

深度解析Spring AOP @Aspect 原理、实战与最佳实践教程

《深度解析SpringAOP@Aspect原理、实战与最佳实践教程》文章系统讲解了SpringAOP核心概念、实现方式及原理,涵盖横切关注点分离、代理机制(JDK/CGLIB)、切入点类型、性能... 目录1. @ASPect 核心概念1.1 AOP 编程范式1.2 @Aspect 关键特性2. 完整代码实

Java Web实现类似Excel表格锁定功能实战教程

《JavaWeb实现类似Excel表格锁定功能实战教程》本文将详细介绍通过创建特定div元素并利用CSS布局和JavaScript事件监听来实现类似Excel的锁定行和列效果的方法,感兴趣的朋友跟随... 目录1. 模拟Excel表格锁定功能2. 创建3个div元素实现表格锁定2.1 div元素布局设计2.

SpringBoot连接Redis集群教程

《SpringBoot连接Redis集群教程》:本文主要介绍SpringBoot连接Redis集群教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 依赖2. 修改配置文件3. 创建RedisClusterConfig4. 测试总结1. 依赖 <de

Nexus安装和启动的实现教程

《Nexus安装和启动的实现教程》:本文主要介绍Nexus安装和启动的实现教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、Nexus下载二、Nexus安装和启动三、关闭Nexus总结一、Nexus下载官方下载链接:DownloadWindows系统根

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和

CnPlugin是PL/SQL Developer工具插件使用教程

《CnPlugin是PL/SQLDeveloper工具插件使用教程》:本文主要介绍CnPlugin是PL/SQLDeveloper工具插件使用教程,具有很好的参考价值,希望对大家有所帮助,如有错... 目录PL/SQL Developer工具插件使用安装拷贝文件配置总结PL/SQL Developer工具插

Java中的登录技术保姆级详细教程

《Java中的登录技术保姆级详细教程》:本文主要介绍Java中登录技术保姆级详细教程的相关资料,在Java中我们可以使用各种技术和框架来实现这些功能,文中通过代码介绍的非常详细,需要的朋友可以参考... 目录1.登录思路2.登录标记1.会话技术2.会话跟踪1.Cookie技术2.Session技术3.令牌技

Python数据分析与可视化的全面指南(从数据清洗到图表呈现)

《Python数据分析与可视化的全面指南(从数据清洗到图表呈现)》Python是数据分析与可视化领域中最受欢迎的编程语言之一,凭借其丰富的库和工具,Python能够帮助我们快速处理、分析数据并生成高质... 目录一、数据采集与初步探索二、数据清洗的七种武器1. 缺失值处理策略2. 异常值检测与修正3. 数据