【发布时间】:2011-01-14 20:13:11
【问题描述】:
我有一些 Oracle 报告 (.rdf),我正在考虑将其转换为 BIRT 报告。有没有办法将 .rdf 文件转换为 BIRT 报告设计文件?
【问题讨论】:
-
这些答案有帮助吗,@shikarishambu?
我有一些 Oracle 报告 (.rdf),我正在考虑将其转换为 BIRT 报告。有没有办法将 .rdf 文件转换为 BIRT 报告设计文件?
【问题讨论】:
完全自动化的解决方案可能是不可能的。您可以按如下方式部分自动化转换过程:
第一步相当简单,使用 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/tiger@xe
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% 的解决方案可以显着减少转换报告所需的单调且容易出错的工作量。
【讨论】:
我曾经有一份将 *.rdf 文件转换为 Jasper 报告的工作。由于我不了解 BIRT,所以我不知道这种方法是否也适用于 BIRT。
无论如何,我将 *.rdf 文件导出为 xml 并使用 Perl 解析输出并编写 Jasper 定义,也为 xml。对于大多数报告,这工作得很好。但是,我想到了一份无法自动翻译的报告:那是一份报告,其中 两个 查询的结果集并排排列。
【讨论】:
我还没有找到任何可以做到这一点的工具。有些人可能会称之为商机。
RDF 文件,据我所知,是一些时髦的二进制格式。为了尝试一下,我可能会先将其转换为 REX 文件,该文件应该是 portable xml。然后,就是从REX 结构转换为BIRT 结构的问题。老实说,我不知道 REX 文件是如何记录的,但也许因为您知道它从视觉方面的外观,所以您可以理解它。
祝你好运!
【讨论】: