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

1.空数据(Empty Datasources)

就是说JRXML文件里面的内容都是静态的,直接使用

JREmptyDataSource就行了

Java代码  9eb4f7b55f6e719994e660fa71e27925.png

JasperRunManager.runReportToPdfStream(reportStream,

servletOutputStream, new HashMap(), new JREmptyDataSource());

2.Map数组(Map Datasources)

有的时候数据不一定要从数据库里面来,还有可能从Map数组里面来

成生Map[]的方法

Java代码  9eb4f7b55f6e719994e660fa71e27925.png

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对象

Java代码  9eb4f7b55f6e719994e660fa71e27925.png

private JRDataSource createReportDataSource()

{

JRMapArrayDataSource dataSource;

Map[] reportRows = initializeMapArray();

dataSource = new JRMapArrayDataSource(reportRows);

return dataSource;

}

Servlet里面

Java代码  9eb4f7b55f6e719994e660fa71e27925.png

JRDataSource dataSource = createReportDataSource();

JasperRunManager.runReportToPdfStream(reportStream,

servletOutputStream, new HashMap(), dataSource);

3.Map集合

Java代码  9eb4f7b55f6e719994e660fa71e27925.png

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;

}

使用

Java代码  9eb4f7b55f6e719994e660fa71e27925.png

JRDataSource dataSource = createReportDataSource();

JasperRunManager.runReportToPdfStream(reportStream,

servletOutputStream, new HashMap(), dataSource);

4.对象数组(Java Objects as Datasources)对象JAVABEAN

Java代码  9eb4f7b55f6e719994e660fa71e27925.png

public class AircraftData

{

public AircraftData(String tail, String serial, String model,

String engine)

{

setTailNum(tail);

setAircraftSerial(serial);

setAircraftModel(model);

setEngineModel(engine);

}

public AircraftData()

{

}

private String tailNum;

private String aircraftSerial;

private String aircraftModel;

private String engineModel;

//set get method.....

}

JRXML文件

Java代码  9eb4f7b55f6e719994e660fa71e27925.png

jasperReport PUBLIC "//JasperReports//DTD Report Design//EN"

"http://jasperreports.sourceforge.net/dtds/jasperreport.dtd">

调用

Java代码  9eb4f7b55f6e719994e660fa71e27925.png

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);

5.对象集合

和对象数组基本上一样,就是最后生成的是JRBeanCollectionDataSource

Java代码  9eb4f7b55f6e719994e660fa71e27925.png

private JRDataSource createReportDataSource()

{

JRBeanCollectionDataSource dataSource;

Collection reportRows = initializeBeanCollection();

dataSource = new JRBeanCollectionDataSource(reportRows);

return dataSource;

}

JRDataSource dataSource = createReportDataSource();

JasperRunManager.runReportToPdfStream(reportStream,

servletOutputStream, new HashMap(), dataSource);

6.XML数据成生报表(XML as Datasource)

Xml代码  9eb4f7b55f6e719994e660fa71e27925.png

N263Y

T-11

39 ROSCOE TRNR RACER

R1830 SERIES

N4087X

BA100-163

BRADLEY AEROBAT

R2800 SERIES

N43JE

HAYABUSA 1

NAKAJIMA KI-43 IIIA

R1830 SERIES

N912S

9973CC

PA18-150

R-1820 SER

这样获得

Java代码  9eb4f7b55f6e719994e660fa71e27925.png

JRXmlDataSource xmlDataSource = new JRXmlDataSource(

new BufferedInputStream(getServletConfig().getServletContext()

.getResourceAsStream("/reports/AircraftData.xml")),

"/AircraftData/aircraft");

JREmptyDataSource,JRMapArrayDataSource,JRMapCollectionDataSource,JRBeanArrayDataSource,JRBeanCollectionDataSource,JRXmlDataSource

他们都implements JRDataSource

主要目地就是不从数据库里面取数据,这个方面和Hibernate结合

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值