反饋已提交
網絡繁忙
Java 後台可以直接呼叫報表列印的功能,列印後返回列印是否成功。下面詳細介紹實現程式。
注:工程路徑根據實際情況修改。
// 首先需要定義執行所在的環境,這樣才能正確讀取資料庫資訊 // 定義報表運作環境,用於執行報表 Module module = ActivatorToolBox.simpleLink(new BaseDBActivator(), new ConfigurationActivator(), new StateServerActivator(), new ReportBaseActivator(), new RestrictionActivator(), new ReportActivator()); String envpath;//工程路徑 envpath = "//Applications//FineReport10_325//webapps//webroot//WEB-INF"; SimpleWork.checkIn(envpath); module.start();
TemplateWorkBook workbook = TemplateWorkBookIO.readTemplateWorkBook("GettingStartedTW.cpt");
// 參數傳值Parameter[] parameters = workbook.getParameters();HashMap<String, String> paraMap = new HashMap<String, String>();paraMap.put(parameters[0].getName(), "華北");
透過公式【PrintUtils.printWorkBook(cptPath)】進行列印,此時不彈出列印視窗。
若需顯示列印選項對話框,則使用【PrintUtils.printWorkBook(cptPath, true)】,其中參數【true】為顯示列印選項對話框,如下代碼所示。
其中【printWorkBook()】返回值為 boolean 型,可透過返回值 【true】(列印成功)和 【false】(列印失敗)來判斷列印是否成功。
// Java 中呼叫報表列印方法boolean a = PrintUtils.printWorkBook("GettingStartedTW.cpt", paraMap, true);if (!a) { System.out.println("失敗啦!返回" + a);} else { System.out.println("成功!返回" + a);}
編譯前,需要先匯入 FineReport 工程 JAR 包,包括安裝工程包【%FR_HOME%/lib】下面的所有的包,【%FR_HOME%/server/lib】下面的所有包,【%FR_HOME%/webapps/webroot/WEB-INF/lib】下面的所有包,還需要引入 JDK 下 的【tools.jar】。如何操作可參考:編譯Java程序。
編譯進行列印。
編譯該程式,彈出列印機設定視窗如下圖所示,選擇列印機就可以進行列印了,並在後臺返回結果:【成功!返回 true】。
注:工程路徑需要根據實際情況修改。
package com.fr.io;import com.fr.base.Parameter;import com.fr.config.activator.BaseDBActivator;import com.fr.config.activator.ConfigurationActivator;import com.fr.report.RestrictionActivator;import com.fr.main.TemplateWorkBook;import com.fr.module.Module;import com.fr.module.tool.ActivatorToolBox;import com.fr.print.PrintUtils;import com.fr.report.ReportActivator;import com.fr.report.module.ReportBaseActivator;import com.fr.store.StateServiceActivator;import com.fr.workspace.simple.SimpleWork;import java.util.HashMap;public class JavaPrint { public static void main(String[] args) { // 首先需要定義執行所在的環境,這樣才能正確讀取資料庫資訊 // 定義報表運作環境,用於執行報表 Module module = ActivatorToolBox.simpleLink(new BaseDBActivator(), new ConfigurationActivator(), new StateServiceActivator(), new ReportBaseActivator(), new RestrictionActivator(), new ReportActivator()); String envpath;//工程路徑 envpath = "//Applications//FineReport10_325//webapps//webroot//WEB-INF"; SimpleWork.checkIn(envpath); module.start(); try { TemplateWorkBook workbook = TemplateWorkBookIO.readTemplateWorkBook("GettingStartedTW.cpt"); // 參數傳值 Parameter[] parameters = workbook.getParameters(); HashMap<String, String> paraMap = new HashMap<String, String>(); paraMap.put(parameters[0].getName(), "華北"); // java中呼叫報表列印方法 boolean a = PrintUtils.printWorkBook("GettingStartedTW.cpt", paraMap, true); if (!a) { System.out.println("失敗啦!返回" + a); } else { System.out.println("成功!返回" + a); } } catch (Exception e) { e.printStackTrace(); } finally { module.stop(); } }}
行動端不支援各種列印和匯出方式。
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉
反馈已提交
网络繁忙