如果有多張表樣相同的excel需要線上匯入到模板,並提交至資料庫中,那麼該如何實現先將所有excel匯入進來,然後再一次性提交呢?下面就通過java報表開發工具來簡單介紹一下。
工具/原料
java報表開發工具FineReport7.1.1
大小:148.2M 適用平臺:windows/linux
方法/步驟
將下面2張表樣相同的excel匯入到FineReport模板中:
模板準備
以Excel匯入行式報表中的模板為例,開啟%FR_HOME%\WebReport\WEB-INF\reportlets\doc\SpecialSubject \ExcelImport\ExcelImport_1.cpt,修改其表樣,使其與excel中的標題名保持一致,如下圖:
報表填報屬性修改
修改報表填報屬性中列和資料庫中列的對應,這裡只需要修改類別ID對應的值,修改為map(C2, "ds2", 2, 1)。
自定義匯入按鈕
點選模板>模板web屬性>填報頁面設定,雙擊工具欄中的自定義按鈕,將該按鈕新增到頂部工具欄中,同時刪除內建的匯入Excel按鈕和提交按鈕,如下圖:
自定義事件編寫
在解決思路中描述了自定義按鈕需要執行的操作為:在點選按鈕的時候將上一次匯入到模板中的資料進行提交,同時重新整理頁面,讓頁面恢復到原始的空白狀態,並實現excel匯入操作。
在工具欄編輯介面,選中自定義按鈕,點選自定義事件,如下圖:
在JavaScript指令碼中寫下js語句,如下圖:
js完整語句如下:
var value=contentPane.getCellValue(0,1,2);
if (value!="") {
FR.Msg.confirm("提示", "是否提交上一次匯入資料", function(result){
if(result){
_g('${sessionID}').writeReport();
contentPane.refreshAllSheets();
contentPane.importExcel();
}
});
}
else{
contentPane.importExcel();
}
效果檢視
點選填報預覽,點選匯入Excel這個自定義按鈕,選擇第一個需要匯入的Excel,然後再點選第二個需要匯入的Excel,頁面會提示是否提交上一次匯入資料,點選確定,則會將上一次匯入資料提交至資料庫,然後再彈出檔案選擇框,這時就可以選擇第二個Excel,以此類推,如下圖: