很多时候,我们可能不是直接在集算器中执行spl脚本,而是将集算器集成到第三方应用中来使用。那么如果想要使用外部库功能,就需要从【集算器安装根目录】/esProc/config目录下取raqsoftConfig.xml,手动在文件的<Runtime><EsProc> ... </EsProc></Runtime>中加上以下代码,指定外部库所需jar的引用路径:
<extLibsPath>外部库文件夹路径</extLibsPath>
<importLibs>
<lib>外部库文件夹名称</lib>
</importLibs>
下面以集算器嵌入到java应用程序中为例,介绍报表Report5Cli外部库在第三方应用中的使用:
1. 加载集算器JDBC需要用到的jar包
参考《教程》 集算器JDBC的基本部署 章节,放入集算器JDBC所需的jar。
2. 配置集算器JDBC的raqsoftConfig.xml文件
参考《教程》配置raqsoftConfig.xml章节
3. 加载报表外部库jar包
将报表Report5Cli外部库核心jar(scu-report5-cli-2.10.jar)及以下列表的jar包从报表类路径(【安装根目录】\report\lib或【安装根目录】\report\web\webapps\demo\WEB-INF\lib)中拷贝到一个独立的目录,如(D:\ extlib\Report5Cli):
scu-report5-cli-2.10.jar
esproc-ext-********.jar
htmlparser-1.6.jar
pdfbox-2.0.27.jar
fontbox-2.0.27.jar
graphics-box2.0.27.jar
mail-1.4.4.jar
raqsoftReport.jar
jboss-servlet-api_3.1-1.0.0.jar
commons-codec-1.15.jar
core-3.3.0.jar
batik-all-1.16.jar
poi-5.2.5.jar
poi-ooxml-5.2.5.jar
poi-ooxml-lite-5.2.5.jar
其中,报表外部库核心jar为scu-report5-cli-2.10.jar。
注:以上第三方依赖jar,用户可根据实际应用环境灵活使用。
4. 配置报表外部库所需的xml文件
从【安装根目录】\report\config下复制raqsoftConfig.xml(复制后文件名可随意命名)这里我们将文件名命名为raqsoftConfigReport.xml,在raqsoftConfigReport.xml文件中需配置如下节点:
<Report>
<license> </license> //设置报表授权文件
<home> </home> //报表主目录配置
<styleConfig> </styleConfig> //报表样式配置
</Report>
说明:
<license>设置报表的授权文件,该节点不可以为空。
<home>配置报表的默认存储目录,使用相对路径读取报表时会相对这里配置的主目录。该节点可以为空。
<styleConfig>配置报表样式文件路径,该节点可以为空。
5. 配置数据源
需要读取的报表中如用到数据源,那么在报表外部库xml文件(这里指步骤4重命名的raqsoftConfigReport.xml)中则需要配置与之名称相同的数据源,并且数据结构要一致。如果报表中没有使用数据源,则本步可省略。
<DB name="demo">
<property name="url" value="jdbc:hsqldb:hsql://127.0.0.1/demo" />
<property name="driver" value="org.hsqldb.jdbcDriver" />
<property name="type" value="13" />
<property name="user" value="sa" />
<property name="password" />
<property name="batchSize" value="1000" />
<property name="autoConnect" value="true" />
… …
</DB>
如果通过命令行方式执行spl文件,那么需要配置xml中数据源节点的autoConnect属性值为true,否则会找不到数据源。
6. 在集算器JDBC的raqsoftConfig.xml中加入外部库的节点<lib>:
配置外部库的节点<lib>,上述步骤3中我们已将报表外部库所需的jar放入到D:\ extlib\Report5Cli目录下,下面可直接添加节点:
<Esproc>
… …
//配置外部库文件夹路径
<extLibsPath>D:\extlib</extLibsPath>
<importLibs>
//配置外部库文件夹名称
<lib>Report5Cli</lib>
</importLibs>
</Esproc>
7. 部署访问报表外部库数据的spl文件:
|
A |
|
1 |
>report_config("D:\\extlib\\Report5Cli\\raqsoftConfigReport.xml") |
读取报表配置文件信息 |
2 |
=report_open("D:\\test.rpx") |
读取test.rpx |
3 |
=report_run(A2) |
计算test.rpx |
此spl文件部署方式参考《教程》应用集成 – 被JAVA调用章节。
到此,就可以在JAVA中调用spl文件了。