powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / jasperreports subreport
2 сообщений из 2, страница 1 из 1
jasperreports subreport
    #38674457
Nixic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не могу воткнуть данные в подотчет :)
Создал два файла отчета, мастер и сабрепорт с "implements JRDataSource" и всеми вытекающими отсюда методами.
в jrxml тоже создал два файла, в один вставил второй как подотчет.
Прописал в первом параметр "SubDataSource" типа Object.
Нагуглил, что можно передавать через этот параметр подотчет. Который подставляется через хешмап, типа так:

Код: java
1.
 map.put("SubDataSource", new ReportFinanceInfoToXLS_sub());



Но! Структура всего отчета примерно такая, самая простая:
Счет №1
Платеж 1
Платеж 2
Платеж 3
Счет №2
Платеж 1
Платеж 2
Платеж 3
Счет №3
Платеж 1
Платеж 2
Платеж 3

Платежи эти в сабрепорте, сами счета в основном отчете.

если передавать параметры через мап, как в примере кода выше, то передается только платежи от одного счета, что естественно, ведь я его один раз вызвал.
В самом подотчете использовать SQL не хочется.
Не знаю куда подставить вытаскивание в массив всех платежей по айди счета. Все примеры такие, что там данные заливаются в массив из данных, которые тут же прописаны. У меня же... ладно пойду еще гуглить, если кто-то понял о чем я, напишите, пожалуйста :)

Скорее всего не понял схему построения таких отчетов.
...
Рейтинг: 0 / 0
jasperreports subreport
    #38674600
Nixic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем победил я эту штукенцию))
Не надо создавать второй класс с имплементированным JRDataSource
Достаточно в основном java-классе собрать в методе next() все платежи и поместить их List
В моем случае это:
Код: java
1.
private List<Payment> paysL = new ArrayList<Payment>();



В основном jrxml создать поле, например paysList типа java.util.List

А в свойствах элемента сабрепорт в главном jrxml в качестве Data Source Expression указать
Код: java
1.
new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{paysList})



В самом сабрепорте в jrxml нужно создавать поля с именами из сущности/класса Payment,
например у меня это summ типа java.math.BigDecimal

Спасибо этому видео :)
YouTube Video
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / jasperreports subreport
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]