Я на самом деле думаю, что алгоритм выглядит примерно так (упрощение и использование синтаксиса Java):
while(dataSource.next()) {
for (JRField field : reportFields)
currentValues.put(field, dataSource.getFieldValue(field));
}
Поля объявляются в файле jrxml независимо от того, где они отображаются.
Однако, насколько мне известно, по умолчанию только раздел подробностей создается (рисуется или обновляется) для каждой записи. Другими словами, вам придется сделать что-то необычное, если вам нужно обновить информацию в верхнем или нижнем колонтитуле страницы.
Я полагаю, что есть атрибут evaluationTime
, который может быть использован в нескольких элементах , который может быть полезен в этом отношении, или вы можете изучить функции подотчета , в зависимости от на сколько данных вам нужно работать.
Лично я обнаружил, что примеры проектов JasperReports полезны, хотя для их извлечения требуется много усилий. Я бы также указал на Полное руководство по JasperReports , имя которого является ложью, но оно служит достойным (а в остальном полностью отсутствует) справочным руководством.