5.JasperReports学习笔记5-其它数据生成动态的报表(WEB)
转自:http://www.blogjava.net/vjame/archive/2013/10/12/404908.html
一、空数据(Empty Datasources)
就是说JRXML文件里面的内容都是静态的,直接使用
JREmptyDataSource就行了
JasperRunManager.runReportToPdfStream(reportStream,
servletOutputStream, new HashMap(), new JREmptyDataSource());
二、Map数组(Map Datasources)
有的时候数据不一定要从数据库里面来,还有可能从Map数组里面来成生Map[]的方法
private Map[] initializeMapArray()
{
//你可以把数组里面的每个map看成一个对象,就相于数据库里面的每个字段
HashMap[] reportRows = new HashMap[4];
HashMap row1Map = new HashMap();
HashMap row2Map = new HashMap();
HashMap row3Map = new HashMap();
HashMap row4Map = new HashMap();
row1Map.put("tail_num", "N263Y");
row1Map.put("aircraft_serial", "T-11");
row1Map.put("aircraft_model", "39 ROSCOE TRNR RACER");
row1Map.put("engine_model", "R1830 SERIES");
row2Map.put("tail_num", "N4087X");
row2Map.put("aircraft_serial", "BA100-163");
row2Map.put("aircraft_model", "BRADLEY AEROBAT");
row2Map.put("engine_model", "R2800 SERIES");
row3Map.put("tail_num", "N43JE");
row3Map.put("aircraft_serial", "HAYABUSA 1");
row3Map.put("aircraft_model", "NAKAJIMA KI-43 IIIA");
row3Map.put("engine_model", "R1830 SERIES");
row4Map.put("tail_num", "N912S");
row4Map.put("aircraft_serial", "9973CC");
row4Map.put("aircraft_model", "PA18-150");
row4Map.put("engine_model", "R-1820 SER");
reportRows[0] = row1Map;
reportRows[1] = row2Map;
reportRows[2] = row3Map;
reportRows[3] = row4Map;
return reportRows;
}
生成JRMapArrayDataSource对象
private JRDataSource createReportDataSource()
{
JRMapArrayDataSource dataSource;
Map[] reportRows = initializeMapArray();
dataSource = new JRMapArrayDataSource(reportRows);
return dataSource;
}
三、Map集合
private JRDataSource createReportDataSource()
{
JRMapCollectionDataSource dataSource;
Collection reportRows = initializeMapCollection();
dataSource = new JRMapCollectionDataSource(reportRows);
return dataSource;
}
private Collection initializeMapCollection()
{
ArrayList reportRows = new ArrayList();
HashMap row1Map = new HashMap();
HashMap row2Map = new HashMap();
HashMap row3Map = new HashMap();
HashMap row4Map = new HashMap();
row1Map.put("tail_num", "N263Y");
row1Map.put("aircraft_serial", "T-11");
row1Map.put("aircraft_model", "39 ROSCOE TRNR RACER");
row1Map.put("engine_model", "R1830 SERIES");
row2Map.put("tail_num", "N4087X");
row2Map.put("aircraft_serial", "BA100-163");
row2Map.put("aircraft_model", "BRADLEY AEROBAT");
row2Map.put("engine_model", "R2800 SERIES");
row3Map.put("tail_num", "N43JE");
row3Map.put("aircraft_serial", "HAYABUSA 1");
row3Map.put("aircraft_model", "NAKAJIMA KI-43 IIIA");
row3Map.put("engine_model", "R1830 SERIES");
row4Map.put("tail_num", "N912S");
row4Map.put("aircraft_serial", "9973CC");
row4Map.put("aircraft_model", "PA18-150");
row4Map.put("engine_model", "R-1820 SER");
reportRows.add(row1Map);
reportRows.add(row2Map);
reportRows.add(row3Map);
reportRows.add(row4Map);
return reportRows;
}
JRDataSource dataSource = createReportDataSource();
JasperRunManager.runReportToPdfStream(reportStream,
servletOutputStream, new HashMap(), dataSource);
四、对象数组(Java Objects as Datasources)对象JAVABEAN
private JRDataSource createReportDataSource()
{
JRBeanArrayDataSource dataSource;
AircraftData[] reportRows = initializeBeanArray();
dataSource = new JRBeanArrayDataSource(reportRows);
return dataSource;
}
private AircraftData[] initializeBeanArray()
{
AircraftData[] reportRows = new AircraftData[4];
reportRows[0] = new AircraftData("N263Y", "T-11", "39 ROSCOE TRNR
RACER", "R1830 SERIES");
reportRows[1] = new AircraftData("N4087X", "BA100-163", "BRADLEY
AEROBAT", "R2800 SERIES");
reportRows[2] = new AircraftData("N43JE", "HAYABUSA 1", "NAKAJIMA
KI-43 IIIA", "R1830 SERIES");
reportRows[3] = new AircraftData("N912S", "9973CC", "PA18-150",
"R-1820 SER");
return reportRows;
}
//最后servlet里面调用
JRDataSource dataSource = createReportDataSource();
JasperRunManager.runReportToPdfStream(reportStream,
servletOutputStream, new HashMap(), dataSource);
五、对象集合
和对象数组基本上一样,就是最后生成的是JRBeanCollectionDataSource
private JRDataSource createReportDataSource()
{
JRBeanCollectionDataSource dataSource;
Collection reportRows = initializeBeanCollection();
dataSource = new JRBeanCollectionDataSource(reportRows);
return dataSource;
}
JRDataSource dataSource = createReportDataSource();
JasperRunManager.runReportToPdfStream(reportStream,
servletOutputStream, new HashMap(), dataSource);
六、XML数据成生报表(XML as Datasource)
JRXmlDataSource xmlDataSource = new JRXmlDataSource(
new BufferedInputStream(getServletConfig().getServletContext()
.getResourceAsStream("/reports/AircraftData.xml")),
"/AircraftData/aircraft");
七、json数据源
1 List<Map<String, Object>> list = new ArrayList<Map<String, Object>>(); 2 3 Map<String, Object> row1 = new HashMap<String, Object>(); 4 Map<String, Object> row2 = new HashMap<String, Object>(); 5 6 Map<String, Object> row = new HashMap<String, Object>(); 7 row.put("field1", "001"); 8 row.put("field2", "张三"); 9 row.put("field3", "中国上海"); 10 row.put("field4", "field4"); 11 row.put("field5", "field5"); 12 list.add(row); 13 row = new HashMap<String, Object>(); 14 row.put("field1", "002"); 15 row.put("field2", "李四"); 16 row.put("field3", "中国杭州"); 17 row.put("field4", "field4"); 18 row.put("field5", "field5"); 19 list.add(row); 20 row = new HashMap<String, Object>(); 21 row.put("field1", "003"); 22 row.put("field2", "王五"); 23 row.put("field3", "中国南昌"); 24 row.put("field4", "field4"); 25 row.put("field5", "field5"); 26 list.add(row); 27 28 row2.put("uAnswer", list); 29 row1.put("qNaire", row2); 30 31 JSONObject jsonObject = JSONObject.fromObject(row1); 32 String json = jsonObject.toString(); 33 34 Map<String, Object> jasperPara = new HashMap<String, Object>(); 35 jasperPara.put("TITLE", "json数据报表演示样例(20131012)"); 36 InputStream is = new ByteArrayInputStream(json.getBytes()); 37 jasperPara.put("JSON_INPUT_STREAM", is); 38 jasperPara.put(JsonQueryExecuterFactory.JSON_LOCALE, Locale.CHINA); 39 jasperPara.put(JRParameter.REPORT_LOCALE, Locale.CHINA);
json数据
"uAnswer": [
{
"field1": "001",
"field2": "张三",
"field3": "中国上海",
"field4": "field4",
"field5": "field5",
},
{
"field1": "002",
"field2": "李四",
"field3": "中国杭州",
"field4": "field4",
"field5": "field5",
},
{
"field1": "003",
"field2": "王五",
"field3": "中国南昌",
"field4": "field4",
"field5": "field5",
}
]
}}
ireport配置截图:
转载于:https://www.cnblogs.com/sharpest/p/6148573.html
5.JasperReports学习笔记5-其它数据生成动态的报表(WEB)相关推荐
- java ireport动态报表_JasperReport学习笔记5-其它数据生成动态的报表(WEB)
1.空数据(Empty Datasources) 就是说JRXML文件里面的内容都是静态的,直接使用 JREmptyDataSource就行了 Java代码 JasperRunManager.ru ...
- 【学习笔记】大数据技术之Scala(下)
[学习笔记]大数据技术之Scala(上) 大数据技术之Scala 第 6 章 面向对象 6.1 Scala 包 6.1.1 包的命名 6.1.2 包说明(包语句) 6.1.3 包对象 6.1.4 导包 ...
- CCC3.0学习笔记_证书数据
CCC3.0学习笔记_证书数据 系列文章目录 文章目录 系列文章目录 前言 1. [A] - SE Root CA Certificate 2. [B] - SE Root Certificate 3 ...
- VBA学习笔记(9)--生成点拨(1)
VBA学习笔记(9)--生成点拨(1) 说明(2017.3.26): 1. 还没写完,写到新建文件夹了,下一步新建word,重命名,查找点拨,把点拨复制进去,因为要给点拨编号,应该会很麻烦 1 Pub ...
- oracle数据库开多线程,学习笔记:Oracle表数据导入 DBA常用单线程插入 多线程插入 sql loader三种表数据导入案例...
天萃荷净 oracle之数据导入,汇总开发DBA在向表中导入大量数据的案例,如:单线程向数据库中插入数据,多线程向数据表中插入数据,使用sql loader数据表中导入数据案例 1.Oracle数据库 ...
- Vue学习笔记入门篇——数据及DOM
本文为转载,原文:Vue学习笔记入门篇--数据及DOM 数据 data 类型 Object | Function 详细 Vue 实例的数据对象.Vue 将会递归将 data 的属性转换为 getter ...
- vs2010 学习Silverlight学习笔记(11):数据与通信之WebClient
概要: 基础知识终于学完了,我今天又从第一篇看到第十篇,发现明白了一些东西,还有忘记了部分东西.呵呵,咱不能猴子掰玉米,学了新的忘记旧的.要经常去复习,去用.这一篇是数据通信部分的第一篇,有些东西没接 ...
- 微信小程序开发:学习笔记[9]——本地数据缓存
微信小程序开发:学习笔记[9]--本地数据缓存 快速开始 说明 本地数据缓存是小程序存储在当前设备上硬盘上的数据,本地数据缓存有非常多的用途,我们可以利用本地数据缓存来存储用户在小程序上产生的操作,在 ...
- HALCON 21.11:深度学习笔记---Data(数据)(3)
HALCON 21.11:深度学习笔记---Data(数据)(3) HALCON 21.11.0.0中,实现了深度学习方法.其中,关于术语"数据"的介绍如下: 术语"数据 ...
最新文章
- oracle中查看用户权限
- android软件更新模块实现的技术和方法,Android APK签名原理及方法
- Transformer的七十二变
- tomcat怎么平滑更新项目_tomcat_deploy 平滑启动脚本
- 蠕变断裂 ansys_如何避免范围蠕变,以及其他软件设计课程的辛苦学习方法
- [Godot] Unity 的 animator 与 Godot 的 animplayer 的一点不同
- 开发里程碑计划_如何通过里程碑控制项目进度
- 求数组中最长连续递增子序列
- python 测试开发请关注这个新框架
- OracleDBV工具说明
- 平均年薪 15 万,超 6 成本科学历,程序员薪资调查报告大曝光!
- 2021届西农计算机复试工作方案(学院)
- 【树莓派C语言开发】实验11:U型光电传感器
- 11岁的Tumblr:开启艰难禁黄之路
- 自学python书籍_自学python看什么书
- 我的世界java边境之地_我的世界边境之地怎么去?minecraft边境之地
- 反骨之Java是如何解决并发中的可见性问题的
- 包,内部类,常用类,集合
- cocos3D 教程
- 30岁之前创业四次:最大痛苦是知道自己错了
热门文章
- 用python做算法_自己用python写的螺旋矩阵生成算法
- pyqt designer connect无响应_如何用PyQt编写桌面程序,创建并打开播放列表?
- 什么是大数据口子_大数据分析师年薪几十万,学什么专业才能从事大数据?
- 零基础linux安装hadoop步骤,hadoop的Linux下简单安装步骤
- Java项目:健身俱乐部管理系统(java+SSM+Mysql+Jsp)
- win10商店打不开_科技资讯:Win10系统电脑的应用商店老是打不开还闪退怎么办
- 计算机基础及应用教案,计算机应用基础教案:数制的概念及转换(中职教育)
- lua5.2调用c函数成功的例子
- 1-Swift中的Struct 和 Class
- 国信优易首席科学家周涛:大数据的商业应用