JRBeanCollectionDataSource: как показать данные из java.util.List из JavaBean?
Возможный дубликат:
Как распечатать список строк, содержащихся в другом списке в iReport?
В моем JavaBean содержится java.util.List .
Userinfo { private String username; private String password; List listAddress; }
Как показать данные этого списка в группе Detail ?
- Можете ли вы настроить Windows на открытие файлов JAR, таких как ZIP-файлы, без стороннего инструмента?
- Как получить список текущих открытых окон / процессов с Java?
- Существуют ли встроенные функции в java?
- Является ли buildSessionFactory () устаревшим в спящем режиме 4?
- Соглашение об именах интерфейсов Java / Реализация
- Числовой текстовый фильтр для целых чисел в JavaFX 8 с TextFormatter и / или UnaryOperator
- Где задано свойство длины массива?
- Можем ли мы использовать JSch для обмена данными на основе SSH?
- Как я могу «печатать» длительность в Java?
- Проверьте, заблокирован ли файл в Java
- Простые блокировки на основе Java?
- Java AES 128 по-разному шифрует openssl
- Преобразование String для двойного использования в Java
Ваш вопрос дублирует вопрос Как распечатать список строк, содержащихся в другом списке в iReport? вопрос и связанный с передачей списка объектов примитивного типа в качестве источника данных для вопроса о субрепорте .
Вот рабочий образец.
Основные моменты этого примера:
- использование выражения
_THIS
; - с использованием компонента List (jr: list) в разделе Подробный
Фрагмент кода для генерации отчета:
public static void testBuildPdf() { try { Map params = new HashMap(); JasperReport jasperReport = JasperCompileManager.compileReport(reportSource); JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, params, getDataSource()); JasperExportManager.exportReportToPdfFile(jasperPrint, outputFileName); } catch (Exception e) { e.printStackTrace(); System.out.println(e.getMessage()); } } private static JRDataSource getDataSource() { Collection coll = new ArrayList (); BeanWithList bean = new BeanWithList(Arrays.asList("London", "Paris"), 1); coll.add(bean); bean = new BeanWithList(Arrays.asList("London", "Madrid", "Moscow"), 2); coll.add(bean); bean = new BeanWithList(Arrays.asList("Rome"), 3); coll.add(bean); return new JRBeanCollectionDataSource(coll); }
Код JavaBean:
public class BeanWithList { private List m_cities; private Integer m_id; public BeanWithList(List cities, Integer id) { m_cities = cities; m_id = id; } public List getCities() { return m_cities; } public Integer getId() { return m_id; } }
Файл jrxml:
Результатом будет: