Группировка JasperReports, изменяемая пользователем - PullRequest
2 голосов
/ 21 декабря 2011

Я понятия не имею, возможно ли это или нет, но я пытаюсь выяснить, возможно ли использовать iReport Designer для создания отчетов, где пользователь, просматривающий отчет, может управлять группировкой.

Например, я бы хотел, чтобы пользователь мог переупорядочить группировку, а также изменить степень группировки отчета (только по одному полю или по нескольким).

Между прочим, я не имею в виду группировку SQL, я имею в виду, например, группировку по учетной записи, а затем по агенту:

| Account  |  Agent  | Invoice  | Total |
+----------+---------+----------+-------+
| Account1 |         |          |       |
|          |   Joe   |          |       |
|          |         | Invoice2 | $600  |
|          |         | Invoice1 | $300  |
| Account2 |         |          |       |
|          |   Sam   |          |       |
|          |         | Invoice4 | $120  |
|          |         | Invoice7 | $230  |
|          |   Joe   |          |       |
|          |         | Invoice3 | $200  |
+----------+-- ------+----------+-------+

И я пытаюсь понять, можете ли вы использовать iReport для динамической группировки? То есть пользователь может сначала сгруппировать по агенту, а затем по учетной записи, а не иметь один отчет для каждой группировки, и было бы неплохо, если бы был способ сделать это с помощью iReport.

1 Ответ

1 голос
/ 22 декабря 2011

Да, должна быть возможность создавать подобные отчеты.Но в зависимости от ваших конкретных потребностей это может быть непрактичным (как указал Алекс К.).

Если вы берете только свой пример группировки по учетной записи, затем по агенту или по агенту, а затем по учетной записи, это будет просто.Есть параметр, который позволяет пользователю указать этот выбор.Вероятно, это будет выпадающий список.Тогда в отчете у вас будут такие поля:

Сегодняшняя версия: $F{Account} и $F{Agent}

Динамическая версия: $P{AcctFirst} ? $F{Account} : $F{Agent} и $P{AcctFirst} ? $F{Agent} : $F{Account}

Аналогичноопределение группы должно включать новый параметр AcctFirst.

Но он не будет расширяться.Что если два поля имеют разные типы данных?Что если вы хотите позволить пользователю выбирать из 3, 4 или N полей?Каждая из них разрешима ... но отчет становится экспоненциально более сложным.

Кстати, это довольно распространенный запрос.Вы увидите, как такие функции попадают в JasperReports.Но пока это сложный вопрос.

...