【问题标题】:Converting Oracle Reports (.rdf) to BIRT reports将 Oracle 报告 (.rdf) 转换为 BIRT 报告
【发布时间】:2011-01-14 20:13:11
【问题描述】:

我有一些 Oracle 报告 (.rdf),我正在考虑将其转换为 BIRT 报告。有没有办法将 .rdf 文件转换为 BIRT 报告设计文件?

【问题讨论】:

  • 这些答案有帮助吗,@shikarishambu?

标签: oracle report birt


【解决方案1】:

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

  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/tiger@xe
done

提取

第二步也比较简单,使用starlet(将xml.exe重命名为starlet.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% 的解决方案可以显着减少转换报告所需的单调且容易出错的工作量。

【讨论】:

    【解决方案2】:

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

    无论如何,我将 *.rdf 文件导出为 xml 并使用 Perl 解析输出并编写 Jasper 定义,也为 xml。对于大多数报告,这工作得很好。但是,我想到了一份无法自动翻译的报告:那是一份报告,其中 两个 查询的结果集并排排列。

    【讨论】:

    • @Rene: 你能告诉我如何将 jasper 定义写入 xml,因为我正在尝试将 rdf 转换为 jrxml,所以我选择的方法是将 rdf 转换为 xml,然后再转换为 xml对于 Jrxml,如果您有任何方法,请您帮我解决,因为我的方法看起来有点乏味。
    【解决方案3】:

    我还没有找到任何可以做到这一点的工具。有些人可能会称之为商机

    RDF 文件,据我所知,是一些时髦的二进制格式。为了尝试一下,我可能会先将其转换为 REX 文件,该文件应该是 portable xml。然后,就是从REX 结构转换为BIRT 结构的问题。老实说,我不知道 REX 文件是如何记录的,但也许因为您知道它从视觉方面的外观,所以您可以理解它。

    祝你好运!

    【讨论】:

    • 我看过那篇文章,但不知道 XML Publisher 输出是否对 BIRT 有用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多