lgnore pagination N上Q就可以取消分页功能?br />
要运行打印的applet需要jasperreports-x.x.x-applet.jarQ可以用winrar直接解压~了Q?br />然后把applet~辑后的class和解压羃后的文g攑֜同一个目录(比如tempQ,
在命令提C符中输?jar 命o打成一个包Q例如:jar -cvf stengReport1Applet.jar *
接着开始做数字{Q?/p>
(1)生成证书: keytool -genkey -alias printkey -dname "CN=stsoft, OU=stsoft, O=stsoft, L=nc, ST=nc, C=cn" -keystore printstore -keypass supervise -storepass supervise -validity 3650
默认的签名只有半q的有效期,q里我们?validity参数讑֮?0q的有效?br /> (2)导出证书: keytool -export -keystore printstore -alias printkey -file print.cer -storepass supervise
(3)对jar包签名:
jarsigner -keystore printstore stengReport1Applet.jar printkey
jarsigner -keystore printstore commons-collections-2.1.1.jar printkey
jarsigner -keystore printstore commons-digester-2.1.jar printkey
jarsigner -keystore printstore commons-logging-1.1.1.jar printkey
jarsigner -keystore printstore jasperreports-5.2.0.jar printkey
jarsigner -keystore printstore jasperreports-applet-5.2.0.jar printkey
jarsigner -keystore printstore jasperreports-fonts-5.2.0.jar printkey
jarsigner -keystore printstore jasperreports-javaflow-5.2.0.jar printkey
现在在temp下已l有了一个stengReport1Applet.jar和一个print.cerQ把q两个文件拷贝回目中,记得q是攑֜同一个目录下
q行demoCZ中的jasper-webappQ访问print.html和内嵌式viewer.html
三、struts.xml配置
------------------------
struts2中的需l承jasperreports-default命名I间
<package name=“default” extends="struts-default, jasperreports-default">
<!-- 报表输出Action -->
<action name="JR_*_*" class="jasperReportAction">
<result name="success" type="jasper">
<param name="location">/reports/{1}.jasper</param>
<param name="connection">connection</param>
<param name="format">{2}</param>
<param name="documentName">{1}</param>
<param name="reportParameters">para</param>
<param name="imageServletUrl"><![CDATA[/image?image=]]></param>
</result>
</action>
</package>
location - 提供利用iReport制作~译好的报表文g?br /> dataSource - 数据?br /> format - 报表输出格式
reportParameters - 报表参数
四、web.xml配置
---------------------
报表生成html需配置/image
<!-- jasperreports报表的配|?start -->
<servlet>
<servlet-name>JasperReportImageServlet</servlet-name>
<servlet-class>net.sf.jasperreports.j2ee.servlets.ImageServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>JasperReportImageServlet</servlet-name>
<url-pattern>/image</url-pattern>
</servlet-mapping>
<!-- jasperreports报表的配|?end -->
二、Map数组QMap DatasourcesQ?
有的时候数据不一定要从数据库里面来,q有可能从Map数组里面来成生Map[]的方?
private Map[] initializeMapArray()
{
//你可以把数组里面的每个map看成一个对象,q于数据库里面的每个字D?br />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);
四、对象数l(Java Objects as DatasourcesQ对象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);
五、对象集?
和对象数l基本上一?是最后生成的是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数据成生报表QXML as DatasourceQ?br />
JRXmlDataSource xmlDataSource = new JRXmlDataSource(
new BufferedInputStream(getServletConfig().getServletContext()
.getResourceAsStream("/reports/AircraftData.xml")),
"/AircraftData/aircraft");
七、json数据?
ireport配置截图Q?br />