Отчёт с динамическим количеством колонок в JasperReports

Иногда попадаются такие отчёты, в которых количество колонок зависит от переданных параметров или данных. В этом случае придётся генерировать шаблон программно. В этом нам помогут классы, расположенные в пакете net.sf.jasperreports.engine.design:

JRDesignStaticText — статический текст.
JRDesignTextField — эквивалентвно TextField в JasperStudio.
JRDesignBand  — Title, Details, Summary и прочие band.
JRDesignExpression — вычисляемое выражение для TextField-ов, переменных и прочего.
JRDesignLine — для рисования линий.
JRDesignField — поля отчёта
JRDesignVariable — для подсчёта суммы, количества, среднего значения и т. д.
JRDesignConditionalStyle — для задания условного форматирования.

Также нам понадобится класс для указания ширины и стиля рамок из пакета net.sf.jasperreports.engine:
JRLineBox.

Пример простого отчёта:

Разумеется, генерировать шаблоны отчётов JasperReports программно имеет смысл только тогда, когда нужно сделать что-то действительно уникальное, странное. В большинстве случаев вполне можно обойтись обычным шаблоном созданным в JasperStudio.

 

Ссылка на проект на github:

https://github.com/urvanov-ru/java-examples/tree/master/jasper-reports-dynamic-columns (поставьте звезду, пожалуйста)

 

Ссылка на архив проекта:

jasper-reports-dynamic-columns

 

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *