DynamicJasper(在Grails上)有目的地将列或字段留空(空)

时间:2010-05-28 07:42:46

标签: grails jasper-reports dynamic-jasper

我想生成一个pdf报告,其中列(或单元格/字段)有意留空(空)。这个列实际上有一个值,但我选择不显示它。列标题仍然需要显示。

这可能有用的示例:

  • 空白(空)列:报告一侧的注释或备注列。
  • 空白(空)单元格:数独拼图打印输出。

非常感谢。 DynamicJasper太棒了!感谢dj团队。

此致 皮特

1 个答案:

答案 0 :(得分:1)

很高兴地宣布,添加“空”列的解决方案 - 简而言之,就是创建一个customExpression。

def cb = ColumnBuilder.getInstance()
cb = cb.setTitle("Notes")
cb = cb.setCustomExpression(new BlankExpression())
AbstractColumn columnNotes = cb.build()

然后将其添加到报告的其余部分。

类BlankExpression是

public class BlankExpression implements CustomExpression {

    public BlankExpression() {    }

    public Object evaluate(Map fields, Map variables, Map parameters) {
        return " ";
    }

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

但是有一些与使用customExpressions和grails有关的问题。

第1期:“getNew()” - DJ网站上提供的示例均使用“getNew()” http://dynamicjasper.sourceforge.net/docs/HOWTO%20Create%20Custom%20Expressions.html是DynamicJasper v3.1.3的一个示例,其中Grails插件基于v.3.0.6,它只有一个getInstance()方法(在3.1.3中已弃用)

第2期:据我所知,groovy不允许java风格的内联类实现,因此迫使我们创建一个单独的类文件。但这不是一个大问题。我可能错了,请纠正我。

希望这对你也有帮助。

此致 皮特