DynamicJasper (на Grails) Целенаправленно оставляйте столбец или поле пустым (пустым) - PullRequest
1 голос
/ 28 мая 2010

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

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

  • Пустой (пустой) столбец: столбец комментариев или заметок на одной стороне отчета.
  • Пустая (пустая) ячейка: распечатка головоломки Судоку.

Очень ценится. DynamicJasper - это круто! Спасибо ди-джею.

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

1 Ответ

1 голос
/ 03 июня 2010

Рада объявить, найдено решение для добавления «пустого» столбца - и вкратце, это создание пользовательского выражения.

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

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

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

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

...