Рад сообщить, найденное решение для добавления «пустого» столбца - и в общем, это создать 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 и Грааль.
первый вопрос: «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-стиля, что заставляет нас создавать отдельный файл класса , Но это не большая проблема. Возможно, я ошибаюсь, и, пожалуйста, поправьте меня.
Надеюсь, это тоже поможет.
С уважением, Пит
Я думаю, что с помощью закрытия следует сделать трюк вместо того, чтобы объявить новый класс. Я попробую это и опубликую свой код, если это сработает. – 2011-04-12 16:46:18