已经投票
二次开发 >> 引擎API >> 程序数据源 >> xml制作程序数据源 >> 解析数据库内xml文件

解析数据库内xml文件

顶( )
最后更新日期: 人发表评论 (点击查看)
解析数据库内xml文件、xml数据源
1. 问题描述
数据库表,其中字段XML所存的为xml格式数据如下图,在使用该表进行报表制作时,需要将存于xml字段中的值读取出来作为报表数据源。
XML每条记录数据格式如下:
最终用于制作报表的数据源形式如下:
对于这样的情况我们如何来实现呢?FineReport中可以通过自定义程序数据集来对xml字段数据进行解析,最终返回所希望的数据表。实现步骤如下:
2. 实现原理
FineReport报表的数据来源可以是任何类型的数据,因为FineReport是通过AbstractTableData抽象类来读取数据源的,因此用户只要实现了AbstractTableData抽象类,也就可以用自定义类型的程序数据集,AbstractTableData抽象类主要有5个方法,具体使用可参考简单程序数据集实现原理文档,数据来源是通过把xml格式数据转入ArrayList中。
3. 实现步骤
3.1 数据集初始化方法init()
连接目标数据库后,执行sql查询语句,将xmltest表数据全部查询出来,对于ID、NAME字段的值我们将其直接存于新的结果集ArrayList中,对于xml字段我们通过GetXmlDate类对其进行解析后再转入ArrayList中。
GetXmlDate类代码如下:
3.2 定义程序数据集
定义类XMLRead.java,继承AbstractTableData接口,实现getColumnCount、getColumnName、getRowCount、getValueAt四个方法;XMLRead.java类代码如下:
3.3 编译程序数据源
首先编译GetXmlDate.java然后再编译XMLRead.java,将生成的class文件放于WEB-INF/classes/com/fr/data下。
3.4 配置程序数据源
新建报表,报表数据集>程序数据集,选择我们定义好的程序数据集XMLRead.class文件,名字可以自定义,如ds1。
3.5 使用程序数据源
制作报表保存为xmlread.cpt,如下:
BS访问报表,效果如下:
数据库表字段为XML类型的数据就可以转换报表数据源了。
 
 
 
 
   
文明发言,用心评论
 
应用此篇文章,您:
不费力
研究了一会
琢磨了好久
 
查看全部条>>
返回顶部
Copyright©2019 帆软软件有限公司
苏ICP备18065767号-3