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