在DynamicJasper中自动隐藏列

时间:2014-01-20 14:30:01

标签: java jasper-reports dynamic-jasper

我想在使用 DynamicJasper 生成报告时隐藏列 我不知道该怎么做。我试图得到一些功能,但我无法弄清楚,因为我是一个技术。

这是我的基本代码:

AbstractColumn myColumn = ColumnBuilder.getNew().setColumnProperty(ConstantsClass.REPORT_COLUMN_PROPERTY[0], String.class.getName())
        .setFixedWidth(true)
        .setTitle(ConstantsClass.REPORT_COLUMN_COLUMN_HEAD[0]).setWidth(new Integer(100))
        .setHeaderStyle(myStyle)
        .build();

FastReportBuilder drb = new FastReportBuilder();
drb.addColumn(myColumn);
DynamicReport dr = drb.build();

return dr;

假设此列是excel表的B列,则应在生成报告时自动隐藏。在列A之后,只应显示C.取消隐藏时,应显示B.

1 个答案:

答案 0 :(得分:0)

你可以尝试这样。因为这是用java编写的,所以你可以试试这个。

if(ConditionForBColumn) {
AbstractColumn myColumn = ColumnBuilder.getNew().setColumnProperty(ConstantsClass.REPORT_COLUMN_PROPERTY[0], ValueOfB String.class.getName())
    .setFixedWidth(true)
    .setTitle(ConstantsClass.REPORT_COLUMN_COLUMN_HEAD[0]).setWidth(new Integer(100))
    .setHeaderStyle(myStyle)
    .build();
} else {
AbstractColumn myColumn = ColumnBuilder.getNew().setColumnProperty(ConstantsClass.REPORT_COLUMN_PROPERTY[0], String.class.getName())
    .setFixedWidth(true)
    .setTitle(ConstantsClass.REPORT_COLUMN_COLUMN_HEAD[0]).setWidth(new Integer(100))
    .setHeaderStyle(myStyle)
    .build();
}

FastReportBuilder drb = new FastReportBuilder();
drb.addColumn(myColumn);
DynamicReport dr = drb.build();

return dr;