很多时候,我们可能不是直接在集算器中执行spl脚本,而是将集算器集成到第三方应用中来使用。那么如果想要使用外部库功能,就需要从【集算器安装根目录】/esProc/config目录下取raqsoftConfig.xml,手动在文件的<Runtime><EsProc> ... </EsProc></Runtime>中加上以下代码,指定外部库所需jar的引用路径:
<extLibsPath>外部库文件夹路径</extLibsPath>
<importLibs>
<lib>外部库文件夹名称</lib>
</importLibs>
下面以集算器嵌入到java应用程序中为例,介绍reportliteCli外部库在第三方应用中的使用:
1. 加载集算器JDBC需要用到的jar包
参考《教程》 集算器JDBC的基本部署 章节,放入集算器JDBC所需的jar。
2. 配置集算器JDBC的raqsoftConfig.xml文件
参考《教程》配置raqsoftConfig.xml章节
3. 加载ReportLite外部库jar包
将reportliteCli外部库核心jar(scu-reportlite-cli-2.10.jar)及以下列表的jar包从报表类路径(【安装根目录】\reportlite\lib)中拷贝到一个独立的目录,如(D:\ extlib\ReportLiteCli):
scu-reportlite-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
reportlite.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
其中,ReportLite外部库核心jar为scu-reportlite-cli-2.10.jar。
注:以上第三方依赖jar,用户可根据实际应用环境灵活使用。
4. 配置ReportLite外部库所需的xml文件
从【安装根目录】\reportlite\config下复制raqsoftConfig.xml(复制后文件名可随意命名)这里我们将文件名命名为raqsoftConfigReportLite.xml,在raqsoftConfigReportLite.xml文件中需配置如下节点:
<Report>
<home> </home> //报表主目录配置
<styleConfig> </styleConfig> //报表样式配置
</Report>
说明:
<home>配置报表的默认存储目录,使用相对路径读取报表时会相对这里配置的主目录。
<styleConfig>配置报表样式文件路径,该节点可以为空。
5. 配置数据源
需要读取的报表中如用到数据源,那么在报表外部库xml文件(这里指步骤4重命名的raqsoftConfigReportLite.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中我们已将ReportLite外部库所需的jar放入到D:\ extlib\ReportLiteCli目录下,下面可直接添加节点:
<Esproc>
… …
//配置外部库文件夹路径
<extLibsPath>D:\extlib</extLibsPath>
<importLibs>
//配置外部库文件夹名称
<lib>ReportLiteCli</lib>
</importLibs>
</Esproc>
7. 部署访问ReportLite外部库数据的spl文件:
|
A |
|
1 |
>reportlite_config("D:\\extlib\\ReportLiteCli\\raqsoftConfigReportLite.xml") |
读取ReportLite的配置文件信息 |
2 |
=reportlite_open("D:\\test.rptx") |
读取test.rptx |
3 |
=reportlite_run(A2) |
计算test.rptx |
此spl文件部署方式参考《教程》应用集成 – 被JAVA调用章节。
到此,就可以在JAVA中调用spl文件了。