反饋已提交
網絡繁忙
在設計器中可以透過對參數介面的設計來控制參數的顯示形式,如參數介面的佈局、背景、顯示方式等。那如何在程式中控制參數的相關屬性呢?,如下圖所示,修改參數面板的背景為綠色,並且置中顯示。
FineReport 中透過 ReportParameterAttr 類來實現。以下具體介紹該類的使用方法。
1)讀取報表參數屬性 ReportParameterAttr
若已經讀取了一個範本並將其儲存為 WorkBook 物件,如下
WorkBook workbook = (WorkBook) TemplateWorkBookIO.readTemplateWorkBook("//doctw//Primary//Parameter//範本參數.cpt");
就可以讀取該 WorkBook 物件的參數屬性,進而控制報表參數屬性。
獲取 WorkBook 工作薄的參數屬性 ReportParameterAttr
ReportParameterAttr paraAttr = workbook.getReportParameterAttr();
2)調整參數介面的佈局
/* 參數介面的佈局 * 0 : 靠左 * 1 :置中 * 2 : 靠右 */ paraAttr.setAlign(1);
3)設定參數背景
/* * 設定參數介面背景 * ColorBackground :顏色背景 * GradientBackground :漸變色背景 * ImageBackground :圖片背景 * PatternBackground :圖案背景 * TextureBackground :紋理背景 */ Background background = ColorBackground.getInstance(new Color(0, 255, 255));paraAttr.setBackground(background);
4)重新設定參數屬性
改變了一系列參數屬性後,需要將改變後的 ReportParameterAttr 重新新增至 WorkBook 中
//重新設定參數屬性,匯出最終結果 workbook.setReportParameterAttr(paraAttr);
以下範例讀取內建範本 Parameter.cpt 修改參數面板樣式後,將結果匯出成 cpt 檔案。
編譯程式前,需先建立一個 Java 工程環境,並且需要一個 Java 編輯器,如 Eclipse 或 idea 。
在編輯器工程中匯入 FineReport 工程 JAR 包。包括使用者自己報表工程
%FR_HOME%/lib下的所有的包,
%FR_HOME%/server/lib 下的所有包,
%FR_HOME%/webapps/webroot/WEB-INF/lib下的所有包,
還要引入 JDK 下的 tools.jar。詳細操作可參考:編譯Java程式
在編輯器中編寫 Java 程式 SetParameterWindow.java,即讀取內建範本 Parameter.cpt 後修改參數面板樣式後,將結果匯出成 cpt 檔案。完整程式碼可參見:
注:使用者使用時,注意將範例程式碼中的工程路徑、範本名稱和匯出路徑取代為使用者自己工程下的。
package com.fr.io;import com.fr.base.background.ColorBackground;import com.fr.base.operator.common.CommonOperator;import com.fr.chart.activator.ChartBaseActivator;import com.fr.cluster.engine.activator.standalone.StandaloneModeActivator;import com.fr.config.activator.BaseDBActivator;import com.fr.config.activator.ConfigurationActivator;import com.fr.env.operator.CommonOperatorImpl;import com.fr.general.Background;import com.fr.general.I18nResource;import com.fr.health.activator.ModuleHealActivator;import com.fr.io.exporter.EmbeddedTableDataExporter;import com.fr.main.impl.WorkBook;import com.fr.main.parameter.ReportParameterAttr;import com.fr.module.Module;import com.fr.module.tool.ActivatorToolBox;import com.fr.report.ReportActivator;import com.fr.report.RestrictionActivator;import com.fr.report.module.ReportBaseActivator;import com.fr.report.write.WriteActivator;import com.fr.scheduler.SchedulerActivator;import com.fr.store.StateServiceActivator;import com.fr.workspace.simple.SimpleWork;import java.awt.Color;import java.io.File;import java.io.FileOutputStream;public class SetParameterWindow { public static void main(String[] args) { try { // 定義報表運作環境,用於執行報表 Module module = ActivatorToolBox.simpleLink(new BaseDBActivator(), new ConfigurationActivator(), new ResourceRepositoryActivator(), new StandaloneModeActivator(), new ModuleHealActivator(), new StateServiceActivator(), new ChartBaseActivator(), new SchedulerActivator(), new ReportBaseActivator(), new RestrictionActivator(), new ReportActivator(), new WriteActivator()); SimpleWork.supply(CommonOperator.class, new CommonOperatorImpl()); String envpath = "//Applications//FineReport10_325//webapps//webroot//WEB-INF";//工程路徑 SimpleWork.checkIn(envpath); I18nResource.getInstance(); module.start(); WorkBook workbook = (WorkBook) TemplateWorkBookIO .readTemplateWorkBook( "//doctw//Primary//Parameter//範本參數.cpt"); // 獲取WorkBook工作薄的參數屬性ReportParameterAttr ReportParameterAttr paraAttr = workbook.getReportParameterAttr(); /* 參數介面的佈局 * 0 : 靠左 * 1 :置中 * 2 : 靠右 */ paraAttr.setAlign(1); /* * 設定參數介面背景 * ColorBackground :顏色背景 * GradientBackground :漸變色背景 * ImageBackground :圖片背景 * PatternBackground :圖案背景 * TextureBackground :紋理背景 */ Background background = ColorBackground.getInstance(new Color(0, 255, 255)); paraAttr.setBackground(background); // 重新設定參數屬性,匯出最終結果 workbook.setReportParameterAttr(paraAttr); FileOutputStream outputStream = new FileOutputStream(new File( "//Users//susie//Downloads//newParameter.cpt")); EmbeddedTableDataExporter templateExporter = new EmbeddedTableDataExporter(); templateExporter.export(outputStream, workbook); } catch (Exception e) { e.printStackTrace(); } finally { SimpleWork.checkOut(); } }}
Java 程式編寫完成後,在編譯器中編譯 SetParameterWindow.java ,編譯透過後,就會在程式碼中匯出路徑的資料夾下生成修改過的新檔案 newParameter.cpt,這樣就實現了讀取範本後修改參數面板屬性後匯出。
開啟生成的範本,在瀏覽器端預覽範本,就會看到參數介面背景色為綠色且置中顯示。如下圖所示:
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉
反馈已提交
网络繁忙