【问题标题】:Autohiding columns in DynamicJasperDynamicJasper 中的自动隐藏列
【发布时间】:2014-01-21 03:51:09
【问题描述】:

我想在使用 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。

【问题讨论】:

  • 还有什么问题?您可以使用 FastReportBuilder.addColumn 方法添加列 - 这取决于逻辑。
  • 样本为here
  • 嗨,Alex,这里的问题是必须构建列并保持隐藏。只有当他们取消隐藏它时,它才会显示出来。如果我要在代码中寻找一个条件,我可以选择只决定是否必须构建该列。
  • 您是否偶然找到了答案?

标签: java jasper-reports dynamic-jasper


【解决方案1】:

你可以这样试试。因为这是用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;

【讨论】:

  • 感谢您的建议。但这对我没有帮助,因为它只允许我根据条件决定是否必须构建列。我的要求是列必须在打印时构建并隐藏在 Excel 中。稍后这应该仅在我们取消隐藏时才显示。
猜你喜欢
  • 2018-12-05
  • 1970-01-01
  • 1970-01-01
  • 2010-11-28
  • 2012-01-12
  • 2016-09-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多