2010-05-28 36 views
1

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

,其中这可能是有用的实施例:

  • 空白(空)柱:一个评论或票据列中向下的报告的一个侧面。
  • 空白(空)单元格:数独拼图打印输出。

非常感谢。 DynamicJasper真棒!感谢dj团队。

问候, 皮特

+0

我认为使用闭合应该做的伎俩,而不是宣布新一类的。如果可以的话,我会尝试一下并发布我的代码。 – 2011-04-12 16:46:18

回答

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中不推荐使用)

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

希望这对你也有帮助。

问候, 皮特