2011-07-20 7 views
1

年からbirtレポートツールを使用しています。そのクールな製品は非常に良い。レポートの読み込み時にmysqlユーザ変数を設定する方法Birt

今日は問題があります。私はいくつかのいずれかがこの問題で私を助けることができる私は、私は答えを得るcouldnotこれを行うには、いくつかの方法を試してみましたSET @user="USR009";

例として時にレポートのロードmysqlのユーザーvaribleを設定することは、非常にこの上で立ち往生フル

イムに感謝します問題

よろしく ロシャン

答えて

2

問題はSP

delimiter // 
Create PROCEDURE abcd(param INT) 
    BEGIN 
     SET @USER=param; 
     SELECT @USER; 

END// 

そしてvaribleでSPを呼び出すクエリ内の作成解決しました。

作品の魅力

2

レポートパラメータを使用して、クエリで値を設定し、スクリプトでそれを初期化することができます。

  1. レポートパラメータ(PARAMETER_1)
  2. を追加 "@user = QUERY_PARAMETERを設定します。"データセットのselect文の前に
  3. データセットが選択されている間に、スクリプトタブを選択し、 "beforeOpen"ドロップダウンを探します。ここには、行を追加してください:this.queryText = this.queryText.replace("QUERY_PARAMETER", params["PARAMETER_1"].value);

このスクリプトは、QUERY_PARAMETERのすべてのインスタンスをテキストに置き換えます。 set文の中で引き続き引用符が必要な場合があります(SET @user = "QUERY_PARAMETER"など)。

Parameter List

Edit Data List

Script

+0

ありがとうございました。この方法で試しましたが、エラーが発生しました。 次の項目にはエラーがあります。 テーブル(id = 142): - 結果セットのメタデータを取得できません。 org.eclipse.birt.report.data.oda.jdbc.JDBCException:SQL文はResultSetオブジェクトを返しません。 SQLエラー#1:SQL構文にエラーがあります。あなたのMySQLサーバのバージョンに対応するマニュアルをチェックし、右側の構文が3行目の 'select * from vw_hs_hr_ello'の近くで使用するようにしてください。 ; –

+0

エラーは、SQLが有効でないことを意味します。 QUERY_USERの前後に引用符を付ける必要があるので、SET @ USER = "QUERY_USER"と読みます。また、あなたのレポートパラメータにあるテキストでQUERY_USERを置き換えてmysqlでクエリを実行し、そこで動作することを確認してください。 –

+0

スクラッチ - それは、birtが好きではない選択前のクエリです。 –