2009-07-09 2 views
0

請求書明細のリストを表示するJasperレポートがあります。これらの明細は、請求期間、品目が請求かクレジットかによってグループ化されます。請求があってもクレジットがない請求期間については、その期間のクレジットグループに「クレジットなし」という静的テキストフィールドを表示したいと考えています。これはどうすればできますか?JasperReportsで空グループではなくスタティックテキストを表示

編集の追加:これは、データソースをカスタマイズするのではなく、SQLクエリを使用していると仮定しています。私がデータソースをカスタマイズした場合は、レポートに到達する前に前処理でこれを処理できますが、グループ基準を満たす行がないグループをスキップするJasperの動作を回避する方法を発見したいと考えていました。

答えて

1

データソースで、各グループの合計クレジット数がある場合は、静的テキストで 'print when expression'プロパティを使用できます。例えば:それはグループの詳細セクションには動作しないよう

new Boolean ($F{total_credits}.equals(0)); 

静的なテキストは、グループヘッダーまたはフッターに移動する必要があります(それが複数回をプリントアウトするだろう)。

$F{total_credits}の代わりに変数を直接作成する必要があるかもしれません。JasperReportsがグループフッターのフィールドにアクセスする方法についてはわかりません。また、グループヘッダーでは正しいtotal_creditがピックアップされ、グループフッターでは表示されないことがあります。

もう1つの方法は、グループ内の合計クレジット数をカウントする変数を持つことです。変数の「リセットタイプ」を「グループ」に設定してから、リセットグループを設定する必要があります。変数式は次のようなものになるだろう:

$V{myvariable} + 
($F{credit_or_debit}.equals("credit") ? new Integer(1) : new Integer(0)) 

と初期値式は、静的テキスト上の変数を見てあなたは「式の時にプリント」を使用することができ、グループフッターに次にnew Integer(0)

だろう。

関連する問題