2010-05-28 5 views
1

Я хочу сгенерировать отчет в формате PDF, в котором столбец (или ячейка/поле) будет пустым (пустым). Этот столбец действительно имеет значение, но я решил не отображать его. Заголовок столбца все еще должен отображаться.DynamicJasper (на Grails) Целесообразно сохранить столбец или поле пустым (пусто)

Пример того, где это может быть полезно:

  • Blank (пустая) колонка: A комментарии или примечания колонки вниз с одной стороны отчета.
  • Пустая (пустая) ячейка: Sudoku puzzle print-out.

Большое значение. 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 и Грааль.

первый вопрос: «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-стиля, что заставляет нас создавать отдельный файл класса , Но это не большая проблема. Возможно, я ошибаюсь, и, пожалуйста, поправьте меня.

Надеюсь, это тоже поможет.

С уважением, Пит

Смежные вопросы