sql >> データベース >  >> RDS >> Oracle

Oracle Reports(.rdf)からBIRTレポートへの変換

    完全に自動化されたソリューションはおそらく不可能です。次のように、変換プロセスを部分的に自動化できます。

    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 を使用すると、2番目のステップも比較的簡単です。 (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
    

    フォーマット変換

    3番目のステップは挑戦的です。 RDFレイアウトを読み取るXSLテンプレートを作成します(例:<displayInfo x="0.74377" y="0.97913" width="1.29626" height="1.62695" /> )。次に、これらのレイアウトを、宛先レポートエンジンで使用される対応する形式(BIRTやJasperReportsなど)に変換します。

    100%のソリューションは得られませんが、80%のソリューションを使用すると、レポートの変換に必要な単調でエラーが発生しやすい作業の量を大幅に減らすことができます。



    1. WordPressリンクはすべてダブルURLにリダイレクトされます

    2. MYSQLエラー2049(HY000):古い(4.1.1より前の)認証プロトコル参照を使用した接続が使用されました(クライアントオプション'secure_auth'が有効)

    3. Laravelのユーザーごとに一意のランダム値を生成してデータベースに追加する方法

    4. インデックスがインデックス付きビューに適用されていません