Compare commits

...

5 Commits

Author SHA1 Message Date
roger e159509541 REPORT-113769 程序数据集代码问题:修改WebService程序数据集帮助文档中的示例代码 5 months ago
Bruce.Deng-邓铖臻 737e4c42e5 Pull request #63: REPORT-94658 【降本增效】后台导出demo优化 1 year ago
Bruce.Deng 0614d33511 REPORT-94658 【降本增效】后台导出demo优化 1 year ago
Bruce.Deng 504fd59217 REPORT-94658 【降本增效】后台导出demo优化 1 year ago
Bruce.Deng d7737090ec REPORT-94658 【降本增效】后台导出demo优化 1 year ago
  1. 79
      src/main/java/com/fr/data/WebServiceTableData.java
  2. 59
      src/main/java/com/fr/io/ExportApi.java
  3. 58
      src/main/java/com/fr/io/ExportApi_frm.java

79
src/main/java/com/fr/data/WebServiceTableData.java

@ -1,36 +1,71 @@
package com.fr.data;
import javax.xml.namespace.QName;
import com.fr.general.data.TableDataException;
import com.fr.log.FineLoggerFactory;
import com.fr.stable.ParameterProvider;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import com.fr.data.AbstractTableData;
import com.fr.general.data.TableDataException;
public class WebServiceTableData extends AbstractTableData{
private String[][] data;
import javax.xml.namespace.QName;
import java.util.ArrayList;
import java.util.List;
public WebServiceTableData() {
this.data = this.createData();
}
public class WebServiceTableData extends SimpleTableData {
//获取列数
public int getColumnCount() throws TableDataException {
return data[0].length;
/**
* 初始化列名数组
*
* @return {col1,col2,col3...}
* @throws TableDataException
*/
@Override
public String[] initColumnNames() {
String[] columnNames = new String[10];
for (int i = 0; i < 10; i++) {
columnNames[i] = "column#" + i;
}
return columnNames;
}
//获取列的名称为数组中第一行的值
public String getColumnName(int columnIndex) throws TableDataException {
return data[0][columnIndex];
}
/**
* 加载数据
*
* @return 行列数据
*/
@Override
public List<Object[]> loadData() {
String tableName = ((ParameterProvider) (parameters.get().toArray())[0]).getValue().toString();
FineLoggerFactory.getLogger().info("Query SQL of ParamTableDataDemo: \n" + tableName);
//获取行数为数据的长度-1
public int getRowCount() throws TableDataException {
return data.length - 1;
}
// 保存得到的结果集
ArrayList<Object[]> valueList = new ArrayList();
try {
// 调用 Web 服务获取数据
String[][] data = createData();
// 如果数据为空,直接返回空列表
if (data == null || data.length == 0) {
return valueList;
}
//获取值
public Object getValueAt(int rowIndex, int columnIndex) {
return data[rowIndex + 1][columnIndex];
// 获得总列数
int colNum = data[0].length;
// 用对象保存数据
Object[] objArray = null;
for (int rowIndex = 1; rowIndex < data.length; rowIndex++) {
objArray = new Object[colNum];
for (int i = 0; i < colNum; i++) {
objArray[i] = data[rowIndex][i];
}
// 在valueList中加入这一行数据
valueList.add(objArray);
}
} catch (Exception e) {
FineLoggerFactory.getLogger().error(e.getMessage(), e);
}
return valueList;
}
public String[][] createData() {

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.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();
}
}

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.excel.stream.StreamExcel2007Exporter;
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.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.io.File;
import java.io.FileOutputStream;
public class ExportApi_frm {
public class ExportApi_frm {
public static void main(String[] args) {
// 定义报表运行环境,用于执行报表
Module module = ActivatorToolBox.simpleLink(new BaseDBActivator(),
new ConfigurationActivator(),
new ResourceRepositoryActivator(),
new StandaloneModeActivator(),
new ModuleHealActivator(),
new StateServiceActivator(),
new SchedulerActivator(),
new ReportBaseActivator(),
new RestrictionActivator(),
new ReportActivator(),
new WriteActivator(),
new ChartBaseActivator());
SimpleWork.supply(CommonOperator.class, new CommonOperatorImpl());
String envpath = "C:\\Users\\hipsh\\Desktop\\apache-tomcat-8.5.38-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 {
java.util.Map parameterMap = new java.util.HashMap();
@ -66,11 +77,8 @@ public class ExportApi_frm {
ImageExporter ImageExport = new ImageExporter();
ImageExport.export(outputStream, re);
outputStream.close();
module.stop();
} catch (Exception e) {
e.printStackTrace();
} finally {
SimpleWork.checkOut();
}
}
}
Loading…
Cancel
Save