12

自然にデータセットを持つiReportにテーブルがあり、テーブルのデータセットで定義および初期化された変数があり、値を返します(テーブルの範囲外ではなく、テーブルの範囲内で使用します)。テーブルを保持するメイン レポート。

どうすればそれを行うことができますか、または代替手段はありますか?

4

6 に答える 6

12

を使用してコンポーネントから値を返す正しい方法 (ジャスパー レポート v.5/v.6)subDatasetは、変数を使用し、メイン レポートと の両方で変数を定義することですsubDataset

(テーブルのレコード数をメインレポートに返す)

  1. メインレポートで変数を定義します

    <variable name="TABLE_COUNT" class="java.lang.Integer" resetType="None">
       <initialValueExpression><![CDATA[0]]></initialValueExpression>
    </variable>
    
  2. 変数を定義します (例ではsubdataset、組み込み変数が使用されます$V{REPORT_COUNT})。

  3. datasetRunどのsubDataset変数 ( fromVariable) がどのメイン レポート変数 ( toVariable)に返されるかを示します。

    <datasetRun subDataset="tableData" uuid="fa5df3de-f4c5-4bfc-8274-bd064e8b81e6">
       <connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression>
       <returnValue fromVariable="REPORT_COUNT" toVariable="TABLE_COUNT"/>
    </datasetRun>
    

その後、変数をメイン レポートで使用できます。ただし、正しいEvaluationTimeTABLE_COUNTを設定することを忘れないでください。

値を表示します(メイン レポートで)

<textField evaluationTime="Report">
    <reportElement x="0" y="0" width="100" height="20" uuid="d67ddb3e-b0cc-4fae-9e05-f40eb0f7e059"/>
    <textFieldExpression><![CDATA[$V{TABLE_COUNT}]]></textFieldExpression>
</textField>
于 2016-01-20T00:31:32.723 に答える
1

合理的に聞こえます...しかし、それが可能かどうかはわかりません。これは、有用な拡張要求になる可能性があります。

別の方法は、サブレポートを使用することです。テーブルで可能なことは、サブレポートでも可能です。サブレポートには戻り値があり、必要な情報を返すことができます。

于 2012-05-02T23:03:41.103 に答える
0

テーブルのデータセットからメインレポートに変数を返すことはできませんが、その逆は可能です。代替案は、mdahlmanによって提案されたとおりにすることができます。代わりにサブレポートを使用してください。

于 2012-05-03T10:37:34.860 に答える
0

Map Type の場合、table-set からメイン レポートに値を返す残りの型は使用できません。

値を返すためのオプションがあるため、サブレポートを使用できますが、可能であれば、テーブルの代わりにサブレポートを使用してみてください。

于 2015-07-29T06:28:07.527 に答える
0

テーブルのデータセットからメイン レポートに値を返すことができるようになりました。

テーブルjasper studio 6.0.1,Iのデータセットという名前のプロパティが見つかった場合、戻り値が設定されています。しかし、セットに入ると、「戻り値を構成する」という形式が間違っていることがわかりました.jasperスタジオは「変数から変数へ」で間違っています.stuioは2つの変数を逆にします. 「変数から」はテーブルのローカル変数であり、「値へ」はメインレポート変数です。ソースで手動編集し、削除する必要があります"incrementerFactoryClass=""".

私はテストしました、それは大丈夫です。戻り値はメインレポートに出力されます。

次は私のjrxmlの一部です。

<jr:table xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd">
					<datasetRun subDataset="workscore" uuid="307278bc-db98-4de2-9b50-dea5dc69b496">
						<connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression>
						<returnValue fromVariable="returnscore" toVariable="workscore"/>
					</datasetRun>

于 2015-06-05T10:00:26.693 に答える