BIRT:XMLデータソースファイルをパラメータとして指定しても機能しません

BIRTデザイナ3.7.1を使用すると、XMLファイルのデータソースのレポートを定義するだけで簡単です。ただし、入力ファイル名は最初は定数値として.rptdesignファイルに書き込まれます。最初はニースだったけど、実生活では役に立たなかった。私が望むのは、genReport.batスクリプトを介してBIRT ReportEngineを起動し、XMLデータソースファイルの名前をパラメータとして指定することです。それは些細なはずですが、それは驚くほど難しいです...

私が見つけたのは、XMLデータソースファイルをレポート定義の定数として定義する代わりに、実行時にパラメータ値に置き換えられるparams ["datasource"]。valueを使用することができます。また、BIRT Designerでは、レポートパラメータ(データソース)を定義し、デフォルト値、たとえば "file:// d:/sample.xml"を指定することができます。

しかし、それは動作しません。これはDesignerでのプレビュー試行の結果です:

Cannot open the connection for the driver: org.eclipse.datatools.enablement.oda.xml.
org.eclipse.datatools.connectivity.oda.OdaException: The xml source file cannot be found or the URL is malformed.

ReportEngineは、 'genReport.bat -p "datasource = file:// d:/sample.xmlで始まり​​ます。" xx.rptdesign "はほぼ同じです。 もちろん、XMLファイルが存在することを確認して、ファイルURLの別のスペルを試しました。だから何が問題なの?

4

1 答え

XMLデータソースファイルをレポート定義の定数として定義する代わりに、実行時にパラメータ値に置き換えられるparams ["datasource"]。valueを使用することができます。

No, it won't - at least, if you specify the value of &XML Data Source File as params["datasource"].value (instead of a valid xml file path) at design time then you will get an error when attempting to run the report. This is because it is trying to use the literal string params["datasource"].value for the file path, rather than the value of params["datasource"].value.

代わりに、イベントハンドラスクリプト、具体的には beforeOpen スクリプトを使用する必要があります。

これをする:

  • データエクスプローラでデータソースを左クリックします。
  • メインの[レポートデザイン]ペインで[レイアウト]タブではなく[スクリプト]タブをクリックします。空の beforeOpen スクリプトを表示する必要があります。
  • 次のコードをコピーしてスクリプトに貼り付けます:

this.setExtensionProperty( "FILELIST"、params ["datasource"]。value);

このレポートを実行すると、 datasource パラメータの値がXMLファイルの場所として使用されていることがわかります。

パラメータ駆動型XMLデータソースの詳細については、 BIRT Exchange を参照してください。

6
追加された
ありがとう - それは今働きます。初心者のために、自分自身のように、レポートパラメータの定義をデザイナの「レポートパラメータ」セクションに追加する必要があることを追加することもできます。
追加された 著者 user1192739,