Резюме группы в JasperReports iReport - PullRequest
1 голос
/ 30 ноября 2011

У меня есть отчет, похожий на журнал работ сотрудника.Для каждого сотрудника создается группа, которая содержит подробный список всех выполненных ими работ.В конце каждого сотрудника общее количество отработанных часов и заработанная сумма отображаются в нижнем колонтитуле группы.В конце всего отчета отображаются общие часы и заработки всех сотрудников.

У меня также есть отдельный отчет, который представляет собой сводку этой же информации, но без подробностей.Это отчет, в котором перечислены сотрудники, отработанные часы и общий заработок в каждой строке таблицы.По сути это та же информация, которая отображается в нижнем колонтитуле группы другого отчета.

В обоих отчетах используется одна и та же команда SQL.Я хотел бы объединить их в один отчет, который сначала создает подробный рабочий журнал, а затем подробное резюме в конце.Но я не вижу способа сделать это.

На самом деле, может быть, я мог бы превратить оба моих отчета в подотчеты и создать основной отчет, который содержит их оба.Это лучший подход?Или есть лучшее решение?

1 Ответ

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

Вы, безусловно, можете поместить их обоих в один и тот же отчет.

Вам нужно будет выполнить SQL-запрос дважды. † Включение сводного отчета в сводную полосу подробного отчета в качестве подотчетасамое простое решение.Вы будете использовать то же соединение SQL, тогда подотчет выполнит свой собственный запрос (который просто совпадает с запросом в основном отчете).

Альтернативные решения включают:

  • Один почти пустой отчет, содержащий два подотчета.Это может быть хорошим решением для сложных отчетов.Но, учитывая ваши требования, он создает немного больше работы без какой-либо выгоды.

  • Использование компонента таблицы (или компонента списка) в сводной полосе, а не в подотчете.Я вообще предпочитаю это.Если вы еще не создали два отчета, я, вероятно, рекомендую это.Но переписывание вашего отчета как компонента таблицы снова будет дополнительной работой без реальной выгоды.

† Это не является фундаментальным требованием.Если вы решили, что SQL-запрос чрезвычайно длительный и не подлежит дальнейшей настройке, то, несомненно, можно будет выполнить все за один проход набора результатов.Для этого потребуется дополнительная хитрость, чтобы собрать всю информацию, которая вам нужна в этой отдельной итерации, а затем отобразить ее в сводке.Это было бы значительно больше работы, чем другие варианты.

...