開發(fā)報(bào)表系統(tǒng):報(bào)表執(zhí)行
工具/原材料
報(bào)表系統(tǒng)軟件開發(fā):精細(xì)報(bào)表7.1.1
尺寸:148.2米平臺:窗戶
從引擎API的概述中可以看出,報(bào)告分為兩種情況:模板和結(jié)果、尚未執(zhí)行的工作簿或報(bào)告是模板、模板包含數(shù)據(jù)集、數(shù)據(jù)列未展開以及公式未計(jì)算。執(zhí)行模板后,將獲得結(jié)果。
結(jié)果中的所有數(shù)據(jù)列都已展開,因此數(shù)據(jù)集不再保存在結(jié)果中。
模板生成的結(jié)果如下
如您所見,生成的結(jié)果可以在將參數(shù)值傳遞給模板后執(zhí)行。
以下是該流程實(shí)施步驟的詳細(xì)描述。
1.實(shí)施原則
1.1報(bào)告運(yùn)行環(huán)境
首先,您需要定義執(zhí)行的環(huán)境,以便能夠正確讀取數(shù)據(jù)庫信息。
字符串路徑= " D:\ FineReport _ 7.0 \網(wǎng)絡(luò)報(bào)告\網(wǎng)絡(luò)-信息";
FrContext . SetCurrentenV(NewLocalenv(EnvPath));
開始模塊(引擎模塊.類. GetName());
1.2閱讀模板
模板工作簿工作簿=模板工作簿0 .讀取模板工作簿(FRContext.getCurrentEnv()," \ doc \主\參數(shù)\參數(shù). CPT ");
1.3注射參數(shù)值
/*
*生成參數(shù)圖,為報(bào)告執(zhí)行注入?yún)?shù)和相應(yīng)的值
此模板中只有一個(gè)參數(shù)區(qū)域,華北被分配給它
*如果發(fā)送請求時(shí)傳遞了參數(shù),則可以通過req.getParameter(名稱)獲得
*將獲得的參數(shù)放入map,paraMap.put(paraname,paravalue)
*/
Java . util . MapParamap = new Java . util . hashmap();
ParaMap.put(“地區(qū)”、“華北”);
//使用參數(shù)映射來執(zhí)行生成的結(jié)果
結(jié)果工作簿結(jié)果=工作簿. execute(paraMap,NewWriteActor());
1.4使用結(jié)果,如導(dǎo)出到excel
執(zhí)行后,我們可以執(zhí)行各種操作,如導(dǎo)出到Excel和Pdf文件。
您可以參考相應(yīng)的章節(jié)了解具體的方法,這里將不再詳細(xì)描述。
文件輸出流輸出流=新文件輸出流(新文件(
" D:\ parameter . xls ");
ExcelExporter = NewExcelExporter();
導(dǎo)出(輸出流,結(jié)果);
2.實(shí)施步驟
2.1可執(zhí)行代碼
package com . fr . io;
import Java . io . file;
import Java . io . FileOutputStream;
importcom.fr.base.FRContext。
import com . fr . base . ModuleContext;
importcom.fr
publicstaticvoidmain(字符串[)參數(shù)){
嘗試{
//首先,您需要定義執(zhí)行環(huán)境,以便能夠正確讀取數(shù)據(jù)庫信息。
字符串路徑= " D:\ FineReport _ 7.1 \網(wǎng)絡(luò)報(bào)告\網(wǎng)絡(luò)-信息";
FrContext . SetCurrentenV(NewLocalenv(EnvPath));
開始模塊(引擎模塊.類. GetName());
//讀取模板
模板工作簿工作簿=模板工作簿0 .讀取模板工作簿(FRContext.getCurrentEnv()," \ doc \主\參數(shù)\參數(shù). CPT ");
/*
*生成參數(shù)圖,注入?yún)?shù)和相應(yīng)的值,用于執(zhí)行報(bào)告。此模板中只有一個(gè)參數(shù)區(qū)域,請將華北指定給它
Java . util . MapParamap = new Java . util . hashmap();
ParaMap.put(“地區(qū)”、“華北”);
//使用參數(shù)映射來執(zhí)行生成的結(jié)果
結(jié)果工作簿結(jié)果=工作簿. execute(paraMap,NewWriteActor());
//使用導(dǎo)出到excel等結(jié)果
文件輸出流輸出流=新文件輸出流(新文件(
" D:\ parameter . xls ");
ExcelExporter = NewExcelExporter();
導(dǎo)出(輸出流,結(jié)果);
}捕捉(例外){
e . PrintStackTrace();
}
}
}
編譯java文件以成功導(dǎo)出Excel。