反饋已提交
網絡繁忙
1.2 應用場景
資料決策管理系統中的排程管理,在“調度物件”設定的步驟,可以選擇程式報表執行。
點選下載插件:下載
設計器插件安裝方法請參見:設計器插件管理
伺服器安裝插件方法請參見:伺服器插件管理
1、程式範本:安裝定時排程器範本插件後,開啟資料決策管理系統,進入“管理系統->排程管理”頁面,新增任務後,可以看到在“調度物件”介面,出現了“程式範本”選擇介面,如下圖所示:
原“範本選擇”位置出現“選擇程式”下拉框,可以選擇一個放置在WEB-INF/classes中的自訂java類程式範本,以便在任務中執行。
其中,java類繼承自com.fr.form.main.Form、com.fr.web.core.Reportlet、com.fr.main.impl.WorkBook三個系統類(請參考程式報表和java API)
其他配置和“報表範本”配置相同。檔案名稱預設使用java類的全名。
2、多選程式範本:安裝定時排程器範本插件後,開啟資料決策管理系統,進入“管理系統->排程管理”頁面,新增任務後,可以看到在“調度物件”介面,出現了“多選程式範本”選擇介面,如下圖所示:
此時,可以選擇多個程式報表範本和多個普通範本,以便在任務中執行。其他配置和“多選報表範本”配置相同。程式報表範本檔案名稱預設使用java類的全名。
繼承com.fr.web.core.Reportlet:
public class MyReportlet extends Reportlet { @Override public TemplateWorkBook createReport(ReportletRequest req) { WorkBook workbook = new WorkBook(); ReportWebAttr web = new ReportWebAttr(); web.setTitle(getClass().getSimpleName()); workbook.setReportWebAttr(web); WorkSheet sheet = new WorkSheet(); //p1為範本參數,可在呼叫時傳遞 DefaultTemplateCellElement cell = new DefaultTemplateCellElement(0, 0, "Hello World, " + req.getParameter("p1")); sheet.addCellElement(cell); Formula f = new Formula("now()"); // 設定匯出編輯結果時是否保留公式 f.setReserveInResult(false); // 設定填報時計算後是否保留公式 f.setReserveOnWriteOrAnaly(true); cell = new DefaultTemplateCellElement(1, 1, f); sheet.addCellElement(cell); workbook.addReport(sheet); return workbook; }}
繼承com.fr.main.impl.WorkBook:
public class MyTemplateWorkBook extends WorkBook { public MyTemplateWorkBook() { super(); ReportWebAttr web = new ReportWebAttr(); web.setTitle(getClass().getSimpleName()); setReportWebAttr(web); WorkSheet sheet = new WorkSheet(); DefaultTemplateCellElement cell = new DefaultTemplateCellElement(0, 0, "Hello World, "); sheet.addCellElement(cell); Formula f = new Formula("now()"); // 設定匯出編輯結果時是否保留公式 f.setReserveInResult(false); // 設定填報時計算後是否保留公式 f.setReserveOnWriteOrAnaly(true); cell = new DefaultTemplateCellElement(1, 1, f); sheet.addCellElement(cell); addReport("sheet", sheet); }}
繼承com.fr.form.main.Form
public class MyForm extends Form { public MyForm() { super(); WBorderLayout layout = new WBorderLayout(); layout.setWidgetName("form"); WFitLayout body = new WFitLayout(); layout.addCenter(body); body.setWidgetName("body"); body.setLayoutType(WBodyLayoutType.FIT); /* * 圖表 */ ChartEditor chartEditor = new ChartEditor(); chartEditor.setWidgetName("chart0"); chartEditor.getBorderStyle().setBackground(ColorBackground.getInstance(Color.white)); PiePlot4VanChart plot = new PiePlot4VanChart(); plot.setRoseType(ChartRoseType.PIE_DIFFERENT_ARC); OneValueCDDefinition data = new OneValueCDDefinition(); data.setTableData(new NameTableData("ds1")); data.setCategoryName("無"); data.setSeriesColumnName("產品類型"); data.setValueColumnName("銷量"); data.setDataFunction(new SumFunction()); VanChart chart = new VanChart(plot); chart.setFilterDefinition(data); chart.getTitle().setTitleVisible(false); chartEditor.resetChangeChartCollection(new ChartCollection(chart)); WTitleLayout chartLayout = new WTitleLayout(); chartLayout.setWidgetName("chart0"); chartLayout.addBody(chartEditor, new Rectangle(0, 0, 400, 180)); com.fr.form.ui.Label titleLabel = new com.fr.form.ui.Label(); titleLabel.setWidgetName("Title_chart0"); titleLabel.setWidgetValue(new WidgetValue("")); chartLayout.addTitle(titleLabel, new Rectangle(0, 20, 400, 20)); BorderPacker borderStyle = chartEditor.getBorderStyle(); borderStyle.setType(LayoutBorderStyle.TITLE); TitlePacker t = borderStyle.getTitle(); t.setTextObject("測試圖表"); t.setPosition(Constants.CENTER); body.addWidget(new WAbsoluteLayout.BoundsWidget(chartLayout, new Rectangle(0, 0, 400, 200))); setContainer(layout); // 範本資料集 DBTableData db = new DBTableData(new NameDatabaseConnection("FRDemo"), "select * from 銷量"); putTableData("ds1", db); }}
結果見下圖:
4. 範本下載
custom.zip
5. 注意事項
java類更新後需重啟管理系統
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉
反馈已提交
网络繁忙