OK、いくつかの考えの後、私はこの問題が別の方法で解決できることを発見しました。
我々は、列、グループなどのプロパティsetPrintWhenExpression(DRIExpression expression)
1.が行を印刷するように処理するクラス、プリントを作成するか、または使用していないのつもり。
public class ShowExpressionDynamicReports extends AbstractSimpleExpression<Boolean> {
private String fieldName;
public ShowExpressionDynamicReports(String fieldName) {
this.fieldName = fieldName;
}
@Override
public Boolean evaluate(net.sf.dynamicreports.report.definition.ReportParameters reportParameters) {
return reportParameters.getValue(fieldName) != null;
}
}
あなたが以下に列挙されているメソッドにパラメータとして渡すためにAbstractSimpleExpressionを拡張する必要があります:ダイナミックは、これを行うための抽象クラスを持っています。
evaluate(ReportParameters rp)
がtrueを返した場合、列の値が出力されます。。
フィールドfieldName
を追加しました。これは、の他の列の状態のために、私が列を印刷できるようにしました。
2.あなた
列にプロパティを追加します。
setPrintWhenExpression(DRIExpression expression)
グループ:
.setPrintSubtotalsWhenExpression(DRIExpression expression)
または
setFooterPrintWhenExpression(DRIExpression expression)
または
setHeaderPrintWhenExpression(DRIExpression expression)
を非表示にするかに依存します。
例:製品とProductCount列:
私たちはレポートの2列を持っています。 ProductCountがnullの場合、Product列を非表示にしたいと考えています(この製品に関する情報はありません)。私は、製品の列
TextColumnBuilder<String> productColumn = col.column("Product", "Product", type.stringType())
.setPrintWhenExpression(new ShowExpressionDynamicReports("ProductCount"));
にプロパティ
PrintWhenExpression
を追加することをやることが
、