如何为总条目创建序列号?

时间:2016-08-10 11:05:08

标签: java jasper-reports dynamic-jasper

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());

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

  

3
3
3
3

1 个答案:

答案 0 :(得分: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)+"")