Browse Source

Pull request #64: REPORT-94658 【降本增效】后台导出demo优化

Merge in PG/plugin-report-doc-demo from release/10.0 to persist/10.0

* commit '737e4c42e588ffd13392cdf56975c5328edd4610':
  REPORT-94658 【降本增效】后台导出demo优化
  REPORT-94658 【降本增效】后台导出demo优化
  REPORT-94658 【降本增效】后台导出demo优化
persist/10.0
Bruce.Deng-邓铖臻 1 year ago committed by Icey.Zhang-张洁
parent
commit
836d277c79
  1. 59
      src/main/java/com/fr/io/ExportApi.java
  2. 58
      src/main/java/com/fr/io/ExportApi_frm.java

59
src/main/java/com/fr/io/ExportApi.java

@ -18,12 +18,11 @@ import com.fr.io.exporter.TextExporter;
import com.fr.io.exporter.WordExporter; import com.fr.io.exporter.WordExporter;
import com.fr.io.exporter.excel.stream.StreamExcel2007Exporter; import com.fr.io.exporter.excel.stream.StreamExcel2007Exporter;
import com.fr.main.impl.WorkBook; import com.fr.main.impl.WorkBook;
import com.fr.module.ModuleRole;
import com.fr.module.tool.ActivatorToolBox; import com.fr.module.tool.ActivatorToolBox;
import com.fr.report.ReportActivator; import com.fr.report.ReportActivator;
import com.fr.report.RestrictionActivator; import com.fr.report.RestrictionActivator;
import com.fr.report.module.ReportBaseActivator; import com.fr.report.module.ReportBaseActivator;
import com.fr.report.write.WriteActivator;
import com.fr.scheduler.SchedulerActivator;
import com.fr.stable.WriteActor; import com.fr.stable.WriteActor;
import com.fr.store.StateServiceActivator; import com.fr.store.StateServiceActivator;
import com.fr.workspace.simple.SimpleWork; import com.fr.workspace.simple.SimpleWork;
@ -32,32 +31,39 @@ import java.io.FileOutputStream;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
public class ExportApi { public class ExportApi {
public static void main(String[] args) { public static void main(String[] args) {
/**
/**定义报表运行环境,用于执行报表*/ * 以下这段if判断仅在main函数测试时使用
com.fr.module.Module module = ActivatorToolBox.simpleLink(new BaseDBActivator(), * 实际生产环境中一般使用web容器集成帆软后帆软服务会自动启动不再需要下面的if判断直接写导出的业务逻辑即可
new ConfigurationActivator(), * web集成注意事项
new ResourceRepositoryActivator(), * 1集成环境需要依赖当前使用jdk对应版本的tools.jar一般从jdk中直接复制即可;
new StandaloneModeActivator(), * 2帆软服务自动启动成功后使用的工作目录自动识别为集成应用下的WEB-INF目录所以需要把下面代码中envpath指向的工作目录拷贝到集成环境下web应用的WEB-INF目录
new ModuleHealActivator(), * 正式发布时需要拷贝生产环境的帆软WEB-INF如果有的话这样才能沿用原先帆软的配置及模板如果是集群环境会自动使用文件服务器的模板本地测试时envpath需要指向单机非集群的帆软工程
//2020.4.26jar包之前的版本,替换成StateServerActivator() * 3可以访问集成环境的地址 ip:port/应用名/decision 如果能成功访问且不需要初始化配置则代表帆软服务启动成功
new StateServiceActivator(), */
new SchedulerActivator(), if (!ModuleRole.Root.isPresent()) {
new ReportBaseActivator(), /**定义报表运行环境,用于执行报表*/
new RestrictionActivator(), com.fr.module.Module module = ActivatorToolBox.simpleLink(
new ReportActivator(), new BaseDBActivator(),
new WriteActivator(), new ConfigurationActivator(),
new ChartBaseActivator()); new ResourceRepositoryActivator(),
SimpleWork.supply(CommonOperator.class, new CommonOperatorImpl()); new StandaloneModeActivator(),
//定义工程路径 new ModuleHealActivator(),
String envpath = "D:\\javatools\\FineReport_10.0\\webapps\\webroot\\WEB-INF\\"; //2020.4.26jar包之前的版本,替换成StateServerActivator()
SimpleWork.checkIn(envpath); new StateServiceActivator(),
I18nResource.getInstance(); new ReportBaseActivator(),
module.start(); new RestrictionActivator(),
new ReportActivator(),
new ChartBaseActivator());
SimpleWork.supply(CommonOperator.class, new CommonOperatorImpl());
//定义工程路径
String envpath = "D:\\FineReport_11.0\\webapps\\webroot\\WEB-INF\\";
SimpleWork.checkIn(envpath);
I18nResource.getInstance();
module.start();
}
/**输出模板*/ /**输出模板*/
try { try {
// 定义输出的模板路径,以reportlets为根目录 // 定义输出的模板路径,以reportlets为根目录
@ -121,11 +127,8 @@ public class ExportApi {
ImageExport.export(outputStream, workbook.execute(parameterMap, new WriteActor())); ImageExport.export(outputStream, workbook.execute(parameterMap, new WriteActor()));
outputStream.close(); outputStream.close();
module.stop();
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} finally {
SimpleWork.checkOut();
} }
} }

58
src/main/java/com/fr/io/ExportApi_frm.java

@ -13,39 +13,50 @@ import com.fr.io.exporter.ImageExporter;
import com.fr.io.exporter.PDFExporter; import com.fr.io.exporter.PDFExporter;
import com.fr.io.exporter.excel.stream.StreamExcel2007Exporter; import com.fr.io.exporter.excel.stream.StreamExcel2007Exporter;
import com.fr.main.workbook.ResultWorkBook; import com.fr.main.workbook.ResultWorkBook;
import com.fr.module.Module; import com.fr.module.ModuleRole;
import com.fr.module.tool.ActivatorToolBox; import com.fr.module.tool.ActivatorToolBox;
import com.fr.report.ReportActivator; import com.fr.report.ReportActivator;
import com.fr.report.RestrictionActivator; import com.fr.report.RestrictionActivator;
import com.fr.report.module.ReportBaseActivator; 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.store.StateServiceActivator;
import com.fr.workspace.simple.SimpleWork; import com.fr.workspace.simple.SimpleWork;
import java.io.File; import java.io.File;
import java.io.FileOutputStream; import java.io.FileOutputStream;
public class ExportApi_frm { public class ExportApi_frm {
public static void main(String[] args) { public static void main(String[] args) {
// 定义报表运行环境,用于执行报表 /**
Module module = ActivatorToolBox.simpleLink(new BaseDBActivator(), * 以下这段if判断仅在main函数测试时使用
new ConfigurationActivator(), * 实际生产环境中一般使用web容器集成帆软后帆软服务会自动启动不再需要下面的if判断直接写导出的业务逻辑即可
new ResourceRepositoryActivator(), * web集成注意事项
new StandaloneModeActivator(), * 1集成环境需要依赖当前使用jdk对应版本的tools.jar一般从jdk中直接复制即可;
new ModuleHealActivator(), * 2帆软服务自动启动成功后使用的工作目录自动识别为集成应用下的WEB-INF目录所以需要把下面代码中envpath指向的工作目录拷贝到集成环境下web应用的WEB-INF目录
new StateServiceActivator(), * 正式发布时需要拷贝生产环境的帆软WEB-INF如果有的话这样才能沿用原先帆软的配置及模板如果是集群环境会自动使用文件服务器的模板本地测试时envpath需要指向单机非集群的帆软工程
new SchedulerActivator(), * 3可以访问集成环境的地址 ip:port/应用名/decision 如果能成功访问且不需要初始化配置则代表帆软服务启动成功
new ReportBaseActivator(), */
new RestrictionActivator(), if (!ModuleRole.Root.isPresent()) {
new ReportActivator(), /**定义报表运行环境,用于执行报表*/
new WriteActivator(), com.fr.module.Module module = ActivatorToolBox.simpleLink(
new ChartBaseActivator()); new BaseDBActivator(),
SimpleWork.supply(CommonOperator.class, new CommonOperatorImpl()); new ConfigurationActivator(),
String envpath = "C:\\Users\\hipsh\\Desktop\\apache-tomcat-8.5.38-10.0\\webapps\\webroot\\WEB-INF\\";//工程路径 new ResourceRepositoryActivator(),
SimpleWork.checkIn(envpath); new StandaloneModeActivator(),
I18nResource.getInstance(); new ModuleHealActivator(),
module.start(); //2020.4.26jar包之前的版本,替换成StateServerActivator()
new StateServiceActivator(),
new ReportBaseActivator(),
new RestrictionActivator(),
new ReportActivator(),
new ChartBaseActivator());
SimpleWork.supply(CommonOperator.class, new CommonOperatorImpl());
//定义工程路径
String envpath = "D:\\FineReport_11.0\\webapps\\webroot\\WEB-INF\\";
SimpleWork.checkIn(envpath);
I18nResource.getInstance();
module.start();
}
try { try {
java.util.Map parameterMap = new java.util.HashMap(); java.util.Map parameterMap = new java.util.HashMap();
@ -66,11 +77,8 @@ public class ExportApi_frm {
ImageExporter ImageExport = new ImageExporter(); ImageExporter ImageExport = new ImageExporter();
ImageExport.export(outputStream, re); ImageExport.export(outputStream, re);
outputStream.close(); outputStream.close();
module.stop();
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} finally {
SimpleWork.checkOut();
} }
} }
} }
Loading…
Cancel
Save