Подтвердить что ты не робот

DynamicReports против DynamicJasper

Фон

Разработка приложения Java EE с DynamicReports, и пока это достаточно для меня. Недавно я нашел DynamicJasper, и я хотел бы знать, может ли это быть лучшим выбором.

Я вижу, что DynamicReports может иметь лучшую поддержку и сообщество.

Вопросы

  • Каковы были ваши опыты с обеими библиотеками?
  • Что предлагает более функциональные возможности?
  • Каковы сильные и слабые стороны друг друга?

Спасибо!

4b9b3361

Ответ 1

Этот вопрос затрагивает несколько способов создания отчетов с использованием JasperReports API (прямо или косвенно):

DynamicReports (DR) и DynamicJasper (DJ) - это два бесплатных инструментальных средства с открытым исходным кодом, которые абстрагируют (и упрощают) общие задачи с API JasperReports. Если вы планируете разрабатывать отчеты программно, эти инструменты могут сократить время разработки.

Пакеты DR и DJ API имеют следующие общие черты:

  • Динамический дизайн
  • Динамические ширины столбцов
  • Стабильный
  • Смешать шаблоны iReport с кодом

иРепорт

iReport - это пользовательский интерфейс, который скрывает сложность прямого вызова методов JasperReports. Другими словами, iReport - это причудливый и более дружелюбный способ разработки отчетов, чем кодирование Java-вызовов вручную. Конечный результат тот же: скомпилированный отчет (.jasper).

API JasperReports

API JasperReports предоставляет программистам набор классов Java для создания отчетов на основе бизнес-потребностей. API позволяет, например, создать веб-сайт, который позволяет пользователям выбирать столбцы, которые они хотят в отчете, а затем создавать шаблон отчета "на лету". После того, как шаблон готов, пользователь может запустить отчет, чтобы увидеть результаты.

Одна функция, которой не хватает iReport, - это возможность динамического изменения ширины столбцов. Используя API JasperReports напрямую, программисты могут создать шаблон отчета с оптимальной шириной столбца для набора результатов отчета.

Проблема заключается в том, что API JasperReports чрезвычайно сложный, и его части могут использовать дополнительную документацию.

DynamicJasper

Веб-сайт DynamicJasper отмечает следующие преимущества над API JasperReports:

  • Автоматическая компоновка
  • штрихкоды
  • Чистая поддержка Excel.
  • Поддержка Struts и Grails

Примеры API демонстрируют хорошую работу объектно-ориентированных принципов. Веб-сайт предлагает множество примеров, и Javadocs редко комментируются. Форум более активен, чем DynamicReports.

Обновление: Проект теперь находится на GitHub. Больше нет форума, но вы можете запросить Профессиональная поддержка

DynamicReports

Веб-сайт DynamicReports отмечает следующие преимущества по API JasperReports:

  • Унаследованные проекты

Веб-сайт предлагает множество примеров, но, к сожалению, Javadocs не имеет большого количества комментариев. Кроме того, forum выглядит менее активным, чем JasperReports или DynamicJasper.

Резюме

Если вы довольны DynamicReports, я бы сказал, придерживайтесь его, иначе попробуйте DynamicJasper.

Ответ 2

Я потратил несколько дней на использование и оценку различных параметров отчетности выше, и подумал, что добавлю 2 цента в микс. Я создал тот же отчет (прибыль и убыток) в JRXML, Dynamic Jasper и Dynamic Reports. Мне было необходимо решение, которое бы хорошо отображалось как в форматах PDF, так и в формате excel и имело возможность обрабатывать динамические столбцы.

Вот что я нашел:

JRXML

Было очень утомительно использовать с iReport и без него. Раньше у меня был опыт использования JRXML, и я до сих пор считал, что это настоящая битва, чтобы отчет корректно отображался в PDF и Excel. Мне пришлось использовать много обходных решений, скрывая и отображая некоторые поля на основе, если это будет PDF или Excel. Динамические столбцы плохо обрабатываются.

Динамическая яшма

Сначала я находил Dynamic Jasper очень хорошим для работы, но имел некоторые проблемы с абсолютным контролем над макетом и добавлением дополнительных элементов управления в отчет. Кажется, что если ваш отчет основан на столбце, он отлично работает. Я не мог понять, как добавить подчиненный раздел в подробный раздел и добавить его в заголовок или нижний колонтитул.

Динамические отчеты

По моему мнению, Dynamic Reports - самый гибкий и простой способ создания динамических отчетов о яшме. Синтаксис прост и интуитивно понятен, и я очень быстро встал и работал. Вы делаете отчет, основанный на столбцах, как Dynamic Jasper, но также имеете возможность отбрасывать компоненты в заголовке, детали или в других областях отчета. Он использует раскладку потока, поэтому вы просто отбрасываете компоненты в отчет и на дисплей в указанном порядке. Экспорт в PDF и Excel был согласован.

Последнее и самое значительное преимущество Dynamic Reports - это поддержка и обновление. DynamicJasper не имеет активности или поддержки на форуме уже более полугода, а DynamicReports не только активно обновляется, но и разработчик (Ricardo Mariaca) активно отслеживает форум и быстро отвечает на вопросы.

Ответ 3

Примерно год назад я встретил ди-джея. Мой опыт работы с диджеем был лучшим, так как было несколько незначительных сбоев, которые нуждались в обходных решениях. Тем не менее, я нашел эти проблемы, когда проект был почти завершен, и поскольку эти обходные пути уже существовали, я продолжал использовать DJ.

Через несколько месяцев я нашел DR и узнал, что DR имеет лучшую структуру, чем DJ. Мой следующий проект определенно будет использовать DR.

Чтобы быть откровенным, я использую серии DJ 3.1.x и не пытаюсь использовать более новую версию. Я также еще не использовал DR еще.

Ответ 4

Я большой поклонник DynamicJasper, но недавно я переключился на DynamicReports 4.0.1 (в то время последняя версия DynamicJasper 5.0.3). Благодаря значительно лучшему API с точки зрения удобочитаемости и удобства использования DynamicReports обеспечивает гораздо большую гибкость при разработке отчетов "на лету". На его веб-сайте также имеется множество образцов, которые способствуют новым идеям и некоторым учебным пособиям, которые помогут вам начать быстро. Эта ссылка является хорошей отправной точкой.

Единственная проблема, с которой я начал использовать DynamicReports, заключалась в том, что с JasperReports и DynamicJasper я был использован для создания JasperReport сначала (дизайн), а затем передал объект JasperReport вместе с источником данных для метода JasperFillManager.fillReport(...) для создания объекта JasperPrint. С помощью JasperPrint единственное, что нужно сделать, - установить источник данных до создания метода JasperPrint методом report() toJasperPrint(). Вы можете найти способы использования компоновщика компонентов или любой утилиты в своем исходном коде, чтобы узнать, как использовать специальную функцию.