转自: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数据

{"qNaire": {
          "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)相关推荐

  1. java ireport动态报表_JasperReport学习笔记5-其它数据生成动态的报表(WEB)

    1.空数据(Empty Datasources) 就是说JRXML文件里面的内容都是静态的,直接使用 JREmptyDataSource就行了 Java代码   JasperRunManager.ru ...

  2. 【学习笔记】大数据技术之Scala(下)

    [学习笔记]大数据技术之Scala(上) 大数据技术之Scala 第 6 章 面向对象 6.1 Scala 包 6.1.1 包的命名 6.1.2 包说明(包语句) 6.1.3 包对象 6.1.4 导包 ...

  3. CCC3.0学习笔记_证书数据

    CCC3.0学习笔记_证书数据 系列文章目录 文章目录 系列文章目录 前言 1. [A] - SE Root CA Certificate 2. [B] - SE Root Certificate 3 ...

  4. VBA学习笔记(9)--生成点拨(1)

    VBA学习笔记(9)--生成点拨(1) 说明(2017.3.26): 1. 还没写完,写到新建文件夹了,下一步新建word,重命名,查找点拨,把点拨复制进去,因为要给点拨编号,应该会很麻烦 1 Pub ...

  5. oracle数据库开多线程,学习笔记:Oracle表数据导入 DBA常用单线程插入 多线程插入 sql loader三种表数据导入案例...

    天萃荷净 oracle之数据导入,汇总开发DBA在向表中导入大量数据的案例,如:单线程向数据库中插入数据,多线程向数据表中插入数据,使用sql loader数据表中导入数据案例 1.Oracle数据库 ...

  6. Vue学习笔记入门篇——数据及DOM

    本文为转载,原文:Vue学习笔记入门篇--数据及DOM 数据 data 类型 Object | Function 详细 Vue 实例的数据对象.Vue 将会递归将 data 的属性转换为 getter ...

  7. vs2010 学习Silverlight学习笔记(11):数据与通信之WebClient

    概要: 基础知识终于学完了,我今天又从第一篇看到第十篇,发现明白了一些东西,还有忘记了部分东西.呵呵,咱不能猴子掰玉米,学了新的忘记旧的.要经常去复习,去用.这一篇是数据通信部分的第一篇,有些东西没接 ...

  8. 微信小程序开发:学习笔记[9]——本地数据缓存

    微信小程序开发:学习笔记[9]--本地数据缓存 快速开始 说明 本地数据缓存是小程序存储在当前设备上硬盘上的数据,本地数据缓存有非常多的用途,我们可以利用本地数据缓存来存储用户在小程序上产生的操作,在 ...

  9. HALCON 21.11:深度学习笔记---Data(数据)(3)

    HALCON 21.11:深度学习笔记---Data(数据)(3) HALCON 21.11.0.0中,实现了深度学习方法.其中,关于术语"数据"的介绍如下: 术语"数据 ...

最新文章

  1. oracle中查看用户权限
  2. android软件更新模块实现的技术和方法,Android APK签名原理及方法
  3. Transformer的七十二变
  4. tomcat怎么平滑更新项目_tomcat_deploy 平滑启动脚本
  5. 蠕变断裂 ansys_如何避免范围蠕变,以及其他软件设计课程的辛苦学习方法
  6. [Godot] Unity 的 animator 与 Godot 的 animplayer 的一点不同
  7. 开发里程碑计划_如何通过里程碑控制项目进度
  8. 求数组中最长连续递增子序列
  9. python 测试开发请关注这个新框架
  10. OracleDBV工具说明
  11. 平均年薪 15 万,超 6 成本科学历,程序员薪资调查报告大曝光!
  12. 2021届西农计算机复试工作方案(学院)
  13. 【树莓派C语言开发】实验11:U型光电传感器
  14. 11岁的Tumblr:开启艰难禁黄之路
  15. 自学python书籍_自学python看什么书
  16. 我的世界java边境之地_我的世界边境之地怎么去?minecraft边境之地
  17. 反骨之Java是如何解决并发中的可见性问题的
  18. 包,内部类,常用类,集合
  19. cocos3D 教程
  20. 30岁之前创业四次:最大痛苦是知道自己错了

热门文章

  1. 用python做算法_自己用python写的螺旋矩阵生成算法
  2. pyqt designer connect无响应_如何用PyQt编写桌面程序,创建并打开播放列表?
  3. 什么是大数据口子_大数据分析师年薪几十万,学什么专业才能从事大数据?
  4. 零基础linux安装hadoop步骤,hadoop的Linux下简单安装步骤
  5. Java项目:健身俱乐部管理系统(java+SSM+Mysql+Jsp)
  6. win10商店打不开_科技资讯:Win10系统电脑的应用商店老是打不开还闪退怎么办
  7. 计算机基础及应用教案,计算机应用基础教案:数制的概念及转换(中职教育)
  8. lua5.2调用c函数成功的例子
  9. 1-Swift中的Struct 和 Class
  10. 国信优易首席科学家周涛:大数据的商业应用