【问题标题】:How to create a Serial Number for total entries?如何为总条目创建序列号?
【发布时间】:2016-08-10 11:05:08
【问题描述】:

我是DynamicReportBuilder 的新手,想添加一个新列来列出来自数据库的总行的序列号。

目前我已经通过ColumnBuilder进行了研究

但是,无法找到可行的解决方案。这个我已经试过了,

ColumnBuilder serialNo = ColumnBuilder.getNew();
serialNo.setTitle("S No.");
serialNo.setWidth(60);
serialNo.setFixedWidth(true);
logger.info(count+" Total Records");//Count is the total no of rows
for (int j=1;j<count;j++) {
    serialNo.setColumnProperty(j+"",String.class.getName(),j+"");
}
dynamicReportBuilder.addColumn(serialNo.build());

但问题是,它只显示序列号行中的最后一个计数。像这样的东西: 编号

3
3
3
3

【问题讨论】:

  • 不,暂时还有疑问。我还在等着试试。会让你知道

标签: java jasper-reports dynamic-jasper


【解决方案1】:

如果您想显示数据源的行数,jasper 报告中的变量是REPORT_COUNT,您可以使用CustomExpression 来在报告填写时显示。

serialNo.setCustomExpression(new CustomExpression() {
    private static final long serialVersionUID = 1L;

    @Override
    public Object evaluate(Map fields, Map variables, Map parameters) {
        return (Integer) variables.get("REPORT_COUNT");
    }

    @Override
    public String getClassName() {
        return Integer.class.getName();
    }
});

注意:您当前的代码只是循环所有行并更改 列的propertyNamedescription,因此结果是 serialNo.setColumnProperty((count-1)+"",String.class.getName(),(count-1)+"")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-30
    • 2017-04-15
    • 1970-01-01
    • 1970-01-01
    • 2012-04-30
    • 2022-01-11
    • 1970-01-01
    相关资源
    最近更新 更多