2

BIRT レポート ライターを使用しており、同じデータ構造を持つテーブルが複数あります。レポートの設計で、クエリがレポート パラメータとして (データ セット内の mysql クエリの一部として) 使用するテーブルを選択したいのですが、わかりません。

データ セットを作成するときに、SELECT * FROM WHERE ? の形式でパラメーターを使用し、これらをレポート パラメーターに設定できるのは素晴らしいことですが、? を設定するとエラーが発生します。次のようなテーブルに

SELECT * FROM ? どこで 1

これを行う別の方法はありますか?Javaなので、構文はPreparedStatementの構文に従うと思います。BIRT 2.5 では、データ セット ダイアログの下にプロパティ バインディング オプションがあります...そしてクエリを "SELECT * FROM "+params["DataTable"].value+" WHERE 1" として設定しようとしましたが、それも同様でしたエラーになります。

4

1 に答える 1

4

BIRT Exchange で同じ質問に答えました: http://www.birt-exchange.org/forum/designing-birt-reports/19097-set-query-table-using-report-parameter.html#post62590

変更後、クエリは同じフィールドとデータ型を返さなければならないことに注意してください。テーブル構造が「少し」異なるという上記のステートメントのために、私はこれにのみ注意します。BIRT クエリの FROM 句または WHERE 句を変更することは完全に安全ですが、実際の SELECT 構造を変更することはできません。

于 2010-04-05T14:27:52.647 に答える