私は複数選択肢を有効にしたリストボックスレポートパラメータを作成しようとしています。このパラメータに基づいてレポートをフィルタリングしようとしています。私はこのようなコードを書いていますが、動作していません。BIRT、レポートパラメータの長さを取得する方法は?
importPackage(Packages.java.util.logging);
var fileHandler = new FileHandler("/tmp/birt.log", true);
var rootLogger = Logger.getLogger("");
rootLogger.addHandler(fileHandler);
var queryString = "";
queryString = "select * from public.r_"+params["rid"]+"_0 where (r_date_1 >= '"+params["startdate"]+"' and r_date_2 <'"+params["enddate"]+"')";
queryString += " and (r_vchar_3=";
filterIPLength = reportContext.getParameterValue("filterIP").length;
Logger.getAnonymousLogger().info("Parameter Count: "+filterIPLength);
for(i = 0; i<filterIPLength; i++) {
queryString += "'"+reportContext.getParameterValue("filterIP")[i]+"'";
if (i != filterIPLength - 1) {
queryString += "or r_vchar_3=";
}
}
queryString += ")";
this.queryText = queryString;
ここでの問題は、reportContext.getParameterValue("filterIP").length;
ラインは常に私は複数のパラメータを選択して、ループが一度だけ実行されるためので、レポートには、最初に選択されたデータを示しているにもかかわらず、1を返します。
この問題の原因は何ですか?どうすればデバッグして解決できますか?
アイデアをお寄せいただきありがとうございます。
何http://stackoverflow.com/questions/3402148/how-についてbirt-in-a-birt-report-of-a-birt- –
私は別の質問があります。私は既に複数の値を使用してリストボックスのパラメータを有効にして、それを私のSQLクエリにバインドします。私の質問は、選択した値のカウントを取得している、私は前に言ったように、私はリストから5-6値を選択した場合でも常に1を返します。 –
このコードはどのイベントスクリプトにありますか?それは違いを生むかもしれません。 –