条件に基づいてサブレポートを含めるか除外する必要があります。iReport を使用して JasperReports を作成しています。つまり、サブレポートに値がある場合、そのサブレポートを含める必要があります。誰でもサンプルを送るか、これを解決する方法を教えてください。
3 に答える
マスターレポートでデータソースからデータを取得して、サブレポートを含める必要があるかどうかを識別し、サブレポート要素の「printWhenExpression」フィールドを使用してそのデータを確認できます。
私はこれを定期的に使用しています。たとえば、printWhenExpressionフィールドには次のものが含まれている場合があります。
new Boolean($F{TOTAL_STATS}.intValue() != 0)
ここで、TOTAL_STATSは、マスターレポートのデータベースクエリからのものです。ゼロ以外の場合は、いくつかのデータの詳細を示すサブレポートを表示します。
「printWhenExpression」に関するジェイミー・ラブの答えは的を射ています。
サブレポートにデータが印刷されていない場合、ジャスパーは空白を削除します
実際、少なくともJasperReports 3.7.0には、その動作を制御するサブレポートプロパティ「空白の場合に行を削除」があります。デフォルトでは、少なくとも iReport を使用するときは、そのパラメータはオフになっています。
WEG
私の知る限り、サブレポートにデータが印刷されていない場合、ジャスパーは空白を削除します。つまり、サブレポートが通常はページの半分を占めるが、データがない場合、空のスペースは削除されます。レポートを含めたり除外したりすることで、これが何を意味するのかわかりません。
別の解決策は、サブレポートをメイン レポートに配置し、右クリック -> プロパティ -> サブレポート タブから、[サブレポートの条件] タブを選択し、そこに条件を書き込むことです。条件が true の場合、サブレポートの内容が印刷されます。それ以外の場合は印刷されません。