0

JasperReportsを使用する必要がありますが、データを取得するのに苦労しています。
これが私のJava側の宣言です:

Map<String, List<TransactionBean>> shCredits = new HashMap<String, List<TransactionBean>>();

宣言されたHashMapに、トランザクションを持つクライアントを格納します。

このHashMapをレポートに渡して、クライアントごとにトランザクション グループを一覧表示しました。

JR側はこちら

<parameter name="shareHolderCreditBeans" class="java.util.HashMap">
    <defaultValueExpression><![CDATA[$P{REPORT_PARAMETERS_MAP}.get("shCreditBeans")]]></defaultValueExpression>
</parameter>
<parameter name="credits" class="java.util.List">
    <defaultValueExpression><![CDATA[$P{shareHolderCreditBeans}.get("12")]]></defaultValueExpression>
</parameter>
...
<field name="clientId" class="java.lang.String">
    <fieldDescription><![CDATA[clientId]]></fieldDescription>
</field>

私の問題は、'credits' パラメータでハードコードされたキー ("12") を使用すると、クライアント トランザクション リストを取得できることです。textFieldでclientIdフィールドを使用することもできますが、次のようなキーとしては使用できません。

$P{shareHolderCreditBeans}.get($F{clientId})

これを行うと、null が返されます。

フィールドをパラメーターキーとして使用するのは正しい方法ですか?

この問題の説明が不十分な場合はお知らせください

4

1 に答える 1