4

IN 句で使用する List パラメータを受け取るレポートがあります。

$X{IN, personID, _personID}

レポートは、Web アプリケーションまたは iReport のリモート リポジトリ ビューを介して実行すると機能します。

次に、REST API を使用して呼び出す必要があります。リソース記述子でリスト値を渡す方法をいくつか試しましたが、どれもうまくいきませんでした。

<resourceDescriptor name="Test_Report" wsType="reportUnit" uriString="/Test/Test_Report" isNew="false">

    <parameter name="_personId" isListValue="true"><![CDATA[1]]></parameter>

</resourceDescriptor>

上記の例では、次のエラーが返されます。

Invalid type java.lang.String for parameter _personId used in an IN clause; the value must be an array or a collection.

私も次のことを試しました:

<parameter>
<name>_personId</name>
<value isListValue="true">
    3
</value>
</parameter>

しかし、これは Id=3 の人だけでなく、すべてのレコードを含むレポートを返します。

4

2 に答える 2

4

この問題に対する私の回避策は、JasperServer の REST V2 サービスを使用することでした。

これに加えて、V2 にはサービスの最初のバージョンよりも 2 つの利点があります。

  • リソース記述子は必要ありません
  • 単一の GET リクエストでレポートを実行およびエクスポートします

レポートの実行とエクスポートに必要なすべての情報は、リクエスト URL を介して渡されます。次に例を示します。

<host>/rest_v2/reports/Test/TestReport.html?_personId=3&_personId=4&_personId=5&_personId=6

于 2013-09-13T13:00:41.750 に答える