1

SQL Server 2008R2バックエンド用のレポートを開発しようとしてiReport 5.0を使用しています。

ユーザーがリストからの選択を混合/一致できるようにする (複数選択) ことが重要です。複数選択は、 iReportのクエリが SQL であるか、ソースとしてビューを持って いる場合にうまく機能します

この場合、WHERE $X{IN,<colname>,<iReport parameter>}複数選択を有効にするために正常に動作します: http://community.jaspersoft.com/questions/519185/using-x-query-parameter-type-not-supporte

ただし、すべての入力をiReportクエリのSQL Server ストアド プロシージャに渡したいと考えています。この場合、単一値の入力はすべて正常に機能しますが、iReportの複数選択パラメーターを次のように定義する必要があるため、複数選択の使用方法がわかりません。 java.util.Collection -- 「クエリでサポートされていないパラメータ タイプ」というメッセージが表示されます。 $X{}

誰かが私が欠けているものを指摘したり、回避策を提案したりできますか?

4

1 に答える 1

1

わかりました-これについてもう少し進んで、何がうまくいったかを示すことができます:配列SPパラメーターを機能させるには(つまり、入力パラメーターのすべてのコンマ区切り要素が入るWHERE IN()句を使用してクエリの()):

1 – iReport の呼び出しからパラメーターの名前を削除 – 問題を混乱させる可能性があります …</p>

2 – iReport を作成します パラメータ: CLINSTAGEGROUP_MULTI タイプ: java.util.Collection

3 – Jasperserver の場合: /usr/local/jasperreports-server-cp-4.5.0/apache-tomcat/webapps/jasperserver/WEB-INF/classes/esapi/security-config.properties security.validation.sql をオフにします。の上 :

security.validation.sql.on=false

これにより、array/collection パラメーターを使用して iReport をインストールおよび実行する際の 6626 エラーが解消されます。

4 – SQL Server に fn_Split() をダウンロードしてインストールします: http://sqlmag.com/stored-procedures/treat-yourself-fnsplit

5 – Jasperserver に iReport .jrxml ファイルをインストールする

6 – Jasperserver INPUT オブジェクトを作成します – clinstagegroup のリストを取得するためのクエリ、および複数選択クエリ タイプの INPUT CONTROL (パラメーター名を CLINSTAGEGROUP_MULTI に設定 – 同じ名前の iReport パラメーターを認識できるようにするため)。

7 – SQL Server でストアド プロシージャをセットアップします。CLINSTAGEGROUP_MULTI パラメータが SQL Server ストアド プロシージャに渡され、@ClinStageGroup_Multi varchar(4000) になります。

結果セットを iReport に返すクエリの例:

a、b、c、...nを選択

FROM VW_SpecimenAccessions

WHERE クリンステージグループ

IN(SELECT [値] FROM dbo.fn_split(@ClinStageGroup_Multi, ','))

8 – jasperserver レポートで clinstagegroup (複数) の選択を切り替えて、適切な結果セットを画面に戻すことができるようになりました。

9 – そのハードルを越えて – 次へ…</p>

于 2013-04-23T20:57:19.833 に答える