2011-01-14 97 views

回答

1

我还没有找到任何工具可以做到这一点。有人可能会称这是一个商机

RDF文件,据我所知,是在一些时髦的二进制格式。为了甚至有一个镜头,我可能会首先将其转换为REX文件,该文件应该是便携式 xml。那么,这是一个从REX结构转变为BIRT结构的问题。老实说,我不知道如何记录REX文件,但也许因为你知道它是如何从视觉方面,你可以理解它。

祝你好运!

+1

这是最接近“解决方案” - http://ora-apps.blogspot.com/2008/03/conerting-rdf-reports-to-xm-publisher.html – shikarishambu 2011-01-25 20:25:41

+0

我看到那篇文章,但didn不知道XML Publisher输出是否对BIRT有用。 – 2011-01-25 21:14:49

2

我曾经有一份工作要将* .rdf文件转换为Jasper报告。由于我不知道BIRT,我不知道这种方法是否也适用于BIRT。

无论如何,我将* .rdf文件导出为xml,并使用Perl解析输出,并将Jasper定义写入xml。对于大多数报告,这工作得很好。我有 - 但是,有一个报告记住我不能自动翻译:这是一个报告,其中两个查询的结果集并排布置。

4

完全自动化的解决方案可能是不可能的。您可以按如下方式部分自动化转换过程:

  1. 将RDF文件转换为XML。
  2. 提取报告查询。
  3. 使用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.exestarlet.exe到避免与Oracle的xml.exe冲突):

starlet.exe sel -t -v "/report/data/dataSource/select" filename.rdf.xml 

你也可以使用xmllint,但它包含了selectCDATA元素,你必须单独解析:

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%的解决方案可以显着减少转换报告所需的单调,容易出错的工作量。