我有一些Oracle报告(.rdf),我正在考虑将其转换为BIRT报告。有没有办法将.rdf文件转换为BIRT报告设计文件?将Oracle报告(.rdf)转换为BIRT报告
6
A
回答
1
我还没有找到任何工具可以做到这一点。有人可能会称这是一个商机。
RDF
文件,据我所知,是在一些时髦的二进制格式。为了甚至有一个镜头,我可能会首先将其转换为REX
文件,该文件应该是便携式 xml。那么,这是一个从REX
结构转变为BIRT
结构的问题。老实说,我不知道如何记录REX文件,但也许因为你知道它是如何从视觉方面,你可以理解它。
祝你好运!
2
我曾经有一份工作要将* .rdf文件转换为Jasper报告。由于我不知道BIRT,我不知道这种方法是否也适用于BIRT。
无论如何,我将* .rdf文件导出为xml,并使用Perl解析输出,并将Jasper定义写入xml。对于大多数报告,这工作得很好。我有 - 但是,有一个报告记住我不能自动翻译:这是一个报告,其中两个查询的结果集并排布置。
4
完全自动化的解决方案可能是不可能的。您可以按如下方式部分自动化转换过程:
- 将RDF文件转换为XML。
- 提取报告查询。
- 使用XSLT将XML转换为BIRT(或JRXML)。
XML转换
的第一步是相当简单的,使用Cygwin:
cd /path/to/reports/
mkdir xml
for i in *.rdf; do
rwconverter.exe batch=yes source="$i" dest=xml/"$i".xml dtype=xmlfile \
userid=scott/[email protected]
done
提取
第二步也相对容易,使用starlet(重命名xml.exe
到starlet.exe
到避免与Oracle的xml.exe
冲突):
starlet.exe sel -t -v "/report/data/dataSource/select" filename.rdf.xml
你也可以使用xmllint,但它包含了select
和CDATA
元素,你必须单独解析:
xmllint --xpath /report/data/dataSource/select filename.rdf.xml
格式转换
第三步是具有挑战性的。创建一个读取RDF布局的XSL模板(例如,<displayInfo x="0.74377" y="0.97913" width="1.29626" height="1.62695" />
)。然后将这些布局转换为目标报表引擎使用的相应格式(例如BIRT或JasperReports)。
您不会得到100%的解决方案,但80%的解决方案可以显着减少转换报告所需的单调,容易出错的工作量。
这是最接近“解决方案” - http://ora-apps.blogspot.com/2008/03/conerting-rdf-reports-to-xm-publisher.html – shikarishambu 2011-01-25 20:25:41
我看到那篇文章,但didn不知道XML Publisher输出是否对BIRT有用。 – 2011-01-25 21:14:49