900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > java ireport动态报表_JasperReport学习笔记5-其它数据生成动态的报表(WEB)

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

时间:2022-06-24 01:40:50

相关推荐

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

1.空数据(Empty Datasources)

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

JREmptyDataSource就行了

Java代码

JasperRunManager.runReportToPdfStream(reportStream,

servletOutputStream,newHashMap(),newJREmptyDataSource());

2.Map数组(Map Datasources)

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

成生Map[]的方法

Java代码

privateMap[]initializeMapArray()

{

//你可以把数组里面的每个map看成一个对象,就相于数据库里面的每个字段

HashMap[]reportRows=newHashMap[4];

HashMaprow1Map=newHashMap();

HashMaprow2Map=newHashMap();

HashMaprow3Map=newHashMap();

HashMaprow4Map=newHashMap();

row1Map.put("tail_num","N263Y");

row1Map.put("aircraft_serial","T-11");

row1Map.put("aircraft_model","39ROSCOETRNRRACER");

row1Map.put("engine_model","R1830SERIES");

row2Map.put("tail_num","N4087X");

row2Map.put("aircraft_serial","BA100-163");

row2Map.put("aircraft_model","BRADLEYAEROBAT");

row2Map.put("engine_model","R2800SERIES");

row3Map.put("tail_num","N43JE");

row3Map.put("aircraft_serial","HAYABUSA1");

row3Map.put("aircraft_model","NAKAJIMAKI-43IIIA");

row3Map.put("engine_model","R1830SERIES");

row4Map.put("tail_num","N912S");

row4Map.put("aircraft_serial","9973CC");

row4Map.put("aircraft_model","PA18-150");

row4Map.put("engine_model","R-1820SER");

reportRows[0]=row1Map;

reportRows[1]=row2Map;

reportRows[2]=row3Map;

reportRows[3]=row4Map;

returnreportRows;

}

生成JRMapArrayDataSource对象

Java代码

privateJRDataSourcecreateReportDataSource()

{

JRMapArrayDataSourcedataSource;

Map[]reportRows=initializeMapArray();

dataSource=newJRMapArrayDataSource(reportRows);

returndataSource;

}

Servlet里面

Java代码

JRDataSourcedataSource=createReportDataSource();

JasperRunManager.runReportToPdfStream(reportStream,

servletOutputStream,newHashMap(),dataSource);

3.Map集合

Java代码

privateJRDataSourcecreateReportDataSource()

{

JRMapCollectionDataSourcedataSource;

CollectionreportRows=initializeMapCollection();

dataSource=newJRMapCollectionDataSource(reportRows);

returndataSource;

}

privateCollectioninitializeMapCollection()

{

ArrayListreportRows=newArrayList();

HashMaprow1Map=newHashMap();

HashMaprow2Map=newHashMap();

HashMaprow3Map=newHashMap();

HashMaprow4Map=newHashMap();

row1Map.put("tail_num","N263Y");

row1Map.put("aircraft_serial","T-11");

row1Map.put("aircraft_model","39ROSCOETRNRRACER");

row1Map.put("engine_model","R1830SERIES");

row2Map.put("tail_num","N4087X");

row2Map.put("aircraft_serial","BA100-163");

row2Map.put("aircraft_model","BRADLEYAEROBAT");

row2Map.put("engine_model","R2800SERIES");

row3Map.put("tail_num","N43JE");

row3Map.put("aircraft_serial","HAYABUSA1");

row3Map.put("aircraft_model","NAKAJIMAKI-43IIIA");

row3Map.put("engine_model","R1830SERIES");

row4Map.put("tail_num","N912S");

row4Map.put("aircraft_serial","9973CC");

row4Map.put("aircraft_model","PA18-150");

row4Map.put("engine_model","R-1820SER");

reportRows.add(row1Map);

reportRows.add(row2Map);

reportRows.add(row3Map);

reportRows.add(row4Map);

returnreportRows;

}

使用

Java代码

JRDataSourcedataSource=createReportDataSource();

JasperRunManager.runReportToPdfStream(reportStream,

servletOutputStream,newHashMap(),dataSource);

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

Java代码

publicclassAircraftData

{

publicAircraftData(Stringtail,Stringserial,Stringmodel,

Stringengine)

{

setTailNum(tail);

setAircraftSerial(serial);

setAircraftModel(model);

setEngineModel(engine);

}

publicAircraftData()

{

}

privateStringtailNum;

privateStringaircraftSerial;

privateStringaircraftModel;

privateStringengineModel;

//setgetmethod.....

}

JRXML文件

Java代码

jasperReportPUBLIC"//JasperReports//DTDReportDesign//EN"

"/dtds/jasperreport.dtd">

调用

Java代码

privateJRDataSourcecreateReportDataSource()

{

JRBeanArrayDataSourcedataSource;

AircraftData[]reportRows=initializeBeanArray();

dataSource=newJRBeanArrayDataSource(reportRows);

returndataSource;

}

privateAircraftData[]initializeBeanArray()

{

AircraftData[]reportRows=newAircraftData[4];

reportRows[0]=newAircraftData("N263Y","T-11","39ROSCOETRNR

RACER","R1830SERIES");

reportRows[1]=newAircraftData("N4087X","BA100-163","BRADLEY

AEROBAT","R2800SERIES");

reportRows[2]=newAircraftData("N43JE","HAYABUSA1","NAKAJIMA

KI-43IIIA","R1830SERIES");

reportRows[3]=newAircraftData("N912S","9973CC","PA18-150",

"R-1820SER");

returnreportRows;

}

//最后servlet里面调用

JRDataSourcedataSource=createReportDataSource();

JasperRunManager.runReportToPdfStream(reportStream,

servletOutputStream,newHashMap(),dataSource);

5.对象集合

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

Java代码

privateJRDataSourcecreateReportDataSource()

{

JRBeanCollectionDataSourcedataSource;

CollectionreportRows=initializeBeanCollection();

dataSource=newJRBeanCollectionDataSource(reportRows);

returndataSource;

}

JRDataSourcedataSource=createReportDataSource();

JasperRunManager.runReportToPdfStream(reportStream,

servletOutputStream,newHashMap(),dataSource);

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

Xml代码

N263Y

T-11

39ROSCOETRNRRACER

R1830SERIES

N4087X

BA100-163

BRADLEYAEROBAT

R2800SERIES

N43JE

HAYABUSA1

NAKAJIMAKI-43IIIA

R1830SERIES

N912S

9973CC

PA18-150

R-1820SER

这样获得

Java代码

JRXmlDataSourcexmlDataSource=newJRXmlDataSource(

newBufferedInputStream(getServletConfig().getServletContext()

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

"/AircraftData/aircraft");

JREmptyDataSource,JRMapArrayDataSource,JRMapCollectionDataSource,JRBeanArrayDataSource,JRBeanCollectionDataSource,JRXmlDataSource

他们都implements JRDataSource

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。