Ireport-jfreechart多報表同時打印

 關於嵌套循環結果的打印,其實Ireport-jfreechart也有非常好的解決方案,關鍵在於JasperReport提供了JASPER_PRINT_LIST,可以解決類似下面的問題:

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流了,無論是寫文件還是下載。

發佈了18 篇原創文章 · 獲贊 0 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章