最近公司的專案需要報表、單證列印功能,國內比較出名的就是帆軟的報表工具,但是專案是公司自己的產品,不想依賴於第三方的報表工具,所以自己只好想辦法自己開發。後來找到了開源報表框架jasperreport。 公司的專案是基於b/s,需要將報表和單證在瀏覽器上列印。於是就自己開發了乙個本地列印程式,大致的思路如下:
使用者在瀏覽器發起列印請求
啟用本地列印程式,列印程式到伺服器端請求報表資料
本地列印程式請求伺服器端報表模板
本地列印程式將請求的資料填充到模板中,然後呼叫本地印表機進行列印
第一步瀏覽器發起列印請求,就是瀏覽器啟動本地exe檔案,比如請求連線為(jsprinter:
),這裡jsprinter就是請求的協議名稱。在安裝開發的本地列印程式時候,需要同時往登錄檔裡面寫入協議。這樣,只要是瀏覽器請求的此協議,都會呼叫列印程式。
第二步本地程式啟動之後通過位址傳入的引數資料,到伺服器端請求相應的資料。比如我需要列印某個銷售訂單,那麼請求位址為「jsprinter:
」,然後再本地程式中擷取位址中的訂單編號,將訂單編號傳入到伺服器端相應介面進行獲取資料
第三步同時通過擷取的資料中file模板名稱,到伺服器端獲取列印的模板
第四步將獲取的資料填充到模板中,這裡使用開源框架jasprereport提供的報表模板填充資料,然後呼叫本地列印程式進行列印。
當然這邊還涉及到資料的安全性,比如專案是https協議的,在請求本地列印程式的時候需要在讀取https證書檔案才可以請求成功。具體的專案原始碼大家可以到我的github上獲取(
JasperReport 製作含有list 的報表
jrbeancollectiondatasource 傳遞本身就是乙個list 該集合內部若還有其他list 則需要呼叫 jaspersoft 的list element 模組.f需現在fieids中 註冊.return values 裡可以設定返回值 一般返回值為要計算的資料的總和 平均值等 可在...
JasperReport的入門步驟
希望對於入門jasperreport的同仁們有幫助.首先,需要明白的是什麼是report.通俗一點說,就是將資料以某種格式展現出來.在這裡2有2格重要的方面,即資料和展現.對於資料,無非就是資料庫裡的資料以及經過對這些原始資料處理的資料.展現就是以某種格式將這些資料表現出來.對於乙個剛開始接觸jas...
JasperReport的入門步驟
用了幾天jasperreport,寫下一點心得.希望對於入門jasperreport的同仁們有幫助.首先,需要明白的是什麼是report.通俗一點說,就是將資料以某種格式展現出來.在這裡2有2格重要的方面,即資料和展現.對於資料,無非就是資料庫裡的資料以及經過對這些原始資料處理的資料.展現就是以某種...