1

レポート エンジンとしてJasperを使用しています( iReport -4.0.0 を使用)
私のデータソースはXML ファイル データソースであり、レポートに入力するときにXPath式を使用します サンプル データ
の例

<StudentList>
<Student>   
    <StdntCd>cd11</StdntCd>
    <StdntNm>ee11</StdntNm>
    <Schl>Schl11</Schl>
    <Cty>Cty11</Cty>
</Student>
<Student>   
    <StdntCd>cd22</StdntCd>
    <StdntNm>ee22</StdntNm>
    <Schl>Schl22</Schl>
    <Cty>Cty22</Cty>
</Student>
</StudentList>

そして、私のXPath式はそれです

/StudentList/Student

そのようなデータがない場合に問題が発生しました

<StudentList>

</StudentList>  

詳細なしでレポートのすべてのセクションを表示する必要があります(データがないため) 「データがない
場合」プロパティを「すべてのセクション、詳細なし」で設定しますが
、まだ機能しません

データは以前の XML と同等ではありませんそれ

<StudentList>
 <Student></Student>
</StudentList>
4

1 に答える 1

3

これを回避するにprintWhenExpressionは、詳細バンドに を定義するのが最善です。

iReport で: 詳細バンドのレポート インスペクターをクリックし、プロパティ パネルで に変更printWhenExpression$F{StdntCd} != nullます。これにより、 以外のコードを持つ学生のみが表示されますnull

変数を利用する場合は、REPORT_COUNT代わりにカスタム変数を追加する必要があります。

  • タイプ:java.lang.Integer
  • 計算:Sum
  • 表現:$F{StdntCd} == null ? 0 : 1
  • 初期値:0

これにより、有効なデータが提供された場合にフィールドStdntCdが決して存在しないと仮定して、常に正しい出力が可能になります。null

レポートが groovy とは異なる言語で実行される場合は、式を調整する必要がある場合があります。

于 2013-02-05T19:14:39.700 に答える