Связанные элементы управления данных не используют отражение, но TypeDescriptor для получения свойств от источника данных. В TypeDescriptor. Метод GetProperties , можно считать следующее:
свойства для компонента могут отличаться от свойств класса, потому что сайт может добавить или удалить свойства, если компонент расположен.
, По-видимому, реализация по умолчанию только возвратит прямые свойства из Интерфейса а не наследованных.
К счастью этот механизм расширяем, и можно записать класс TypeConverter с пользовательской реализацией информации о свойстве. См. комментарии в документации TypeConverter для реализации логики свойства.
реализация GetProperties Вашего пользовательского класса TypeConverter может назвать TypeDescriptor. GetProperties (Тип) в Вашем интерфейсе и всем это - наследуемые интерфейсы. Но возможно Вы могли даже записать универсальный TypeConverter, который найдет все унаследованные свойства при помощи отражения.
Затем Вы присоединяете этот пользовательский TypeConverter к своему интерфейсу с атрибутом TypeConverterAttribute.
И затем, как волшебство, источник данных найдет все свойства. ;-)
Этот вопрос касается нескольких способов создания отчетов с использованием API JasperReports (прямо или косвенно):
DynamicReports (DR) и DynamicJasper (DJ) - это два бесплатных программных инструмента с открытым исходным кодом, которые абстрагируют (и упрощают) общие задачи с API JasperReports. Если вы планируете разрабатывать отчеты программно, эти инструменты могут сократить время разработки.
Пакеты DR и DJ API имеют следующие общие особенности:
iReport - это пользовательский интерфейс, который скрывает сложность прямого вызова методов JasperReports. Другими словами, iReport - это модный и удобный способ создания отчетов, чем кодирование вызовов Java вручную. Конечный результат тот же: файл скомпилированного отчета (.jasper).
JasperReports API предоставляет программистам набор классов Java, чтобы компьютер мог создавать отчеты на основе потребностей бизнеса. API позволяет, например, разработать веб-сайт, который позволяет пользователям выбирать нужные столбцы в отчете, а затем создавать шаблон отчета на лету. После того, как шаблон готов, пользователь может запустить отчет, чтобы увидеть результаты.
Одной особенностью, которой не хватает в iReport, является возможность динамического изменения ширины столбцов. Используя API JasperReports напрямую, программисты могут создать шаблон отчета с оптимальной шириной столбца для набора результатов отчета.
Проблема в том, что API JasperReports чрезвычайно сложен, и его части могут использовать больше документации.
Веб-сайт DynamicJasper отмечает следующие преимущества по сравнению с JasperReports API:
Примеры API показывают хорошую работу с объектно-ориентированными принципами. Веб-сайт предлагает много примеров, и Javadocs редко комментируются. Форум более активен, чем DynamicReports.
Обновление: Проект сейчас на GitHub . Больше нет форума, но вы можете запросить Профессиональную поддержку
Веб-сайт DynamicReports отмечает следующие преимущества по сравнению с JasperReports API:
Веб-сайт предлагает много примеров, но, к сожалению, у Javadocs нет большого количества комментариев. Кроме того, форум выглядит менее активным, чем JasperReports или DynamicJasper.
Если вы довольны DynamicReports, я бы сказал, придерживайтесь его, в противном случае попробуйте DynamicJasper.