1、循環的嵌套打印
類似:一個圖書管理系統,要打印出借出的所有人的借出的圖書信息,由於每個人有借出的多本圖書,有很多人,而且每個人需要打印一份單獨的借出一覽清單。
2、多報表的整合打印
類似:需要將多個JasperPrint對象的文檔打印到一起,而且對報表的格式要求不同等等。
關鍵步驟如下:
建立一個JasperPrint泛型的list,用來存放JasperPrint對象(注意,jdk1.5之後才支持泛型,之前的版本可以不用加)
private List reportlist = new java.util.ArrayList();
建立JRExporter導出對象
private JRExporter exporter = new JRPdfExporter();
建立導出的文件流(供下載和文件輸出的調用),如果是action,可以直接使用reponse.getOutputStream()對象
OutputStream outP = new ByteArrayOutputStream();
將每一個需要打印的報表JasperPrint添加到reportlist
for(;;)
reportlist.add(***);
裝載打印list
exporter.setParameter(JRExporterParameter.JASPER_PRINT_LIST, reportlist);
傳入要輸出的文件流
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, outP);
執行導出
exporter.exportReport();
ok,接下來就可以自由的運用outP流了,無論是寫文件還是下載。