Механизм отчетности или Собственные отчеты? - PullRequest
3 голосов
/ 20 декабря 2010

Моя текущая задача состоит в том, чтобы создать отчет о наборе довольно большого линейного набора данных (т. Е. Где значение 10 зависит от некоторых средних факторов из 9 8 7 6 5 4 3 и т. Д.

Проблема также заключается в том, чтоэта логика (теперь давайте назовем ее скользящей средней) не является фиксированной и, скорее всего, изменится. Мне нужно не только создать отчет в HTML, но и в Excel и, возможно, отправить его по электронной почте для использования автоматически (поэтому некоторые переменные будут относительными, т.е.например, создать отчет за последний месяц)

Итак, мой вопрос: использовать механизм отчетов или нет? (Jasper, Pentaho, Birt)

Мои драйверы здесь -Логика отчетов будетизменить, но это будет изменено разработчиками. Это будет сложная логика, так что это будет проще всего сделать в коде на Java. - Отчет должен быть сохранен и отправлен по электронной почте в формате Excel. - Задача отчетности будет огромной (что-тогде ETL может быть полезным) - Будущие требования к отчетности здесь не рассматриваются, система будет переписана, если это необходимоric и расширяемый.

Я мог бы просто создать объект с именем report, сохранить его тип (enum) и список параметров (из URL-адреса restful) и другие метарданные (кто создал, какую дату и т. д., гдедля отправки, и относительные параметры сохраняются) А затем, когда некоторая обработка была выполнена, сохраните ее в БД, просто чтобы получить обработанные данные для контроллера.Это значительно упрощает используемые технологии (я использую Spring MVC, и этого должно быть достаточно с небольшим количеством POI).Но мне интересно, будет ли проще использовать механизм отчетов.

Ответы [ 2 ]

2 голосов
/ 20 декабря 2010

Мой опыт работы с Джаспером и Биртом (и коммерческими Windward Reports) заключается в том, что они мало помогут вам в части отчета, касающейся чисел;они лучше всего подходят для представления данных, которые вы уже преобразовали в подходящую структуру.Отчеты Jasper, Birt и Windward могут легко обрабатывать промежуточные и средние значения, но любые вычисления более сложны, чем реальные, и могут оказаться невозможными в зависимости от ваших расчетов.Я не знаком с Pentaho.

В вашей ситуации я бы реализовал вычисления либо в пользовательском коде Java, либо в процессе ETL.

Затем можно использовать механизм отчетов для представления результатоврасчетов в форматах HTML и Excel.Но если у вас нет Jasper, Birt и т. Д., Уже интегрированных в ваше приложение, то я бы не рекомендовал добавлять один только для этого.Было бы быстрее выписать данные отчета вручную, используя JSP и POI соответственно.Отчеты Jasper и Birt довольно легко создавать, но только после того, как вы правильно интегрируете механизм отчетов!

1 голос
/ 20 декабря 2010

Я никогда не использовал Birt, но я использовал Jasper, и мой единственный комментарий был бы таков: использование механизма отчетности имеет кривую обучения и добавляет свои издержки.Так что, если вы делаете какой-то одноразовый отчет, и если фактическая форма отчета довольно проста, вы можете не получить много пользы от механизма отчетов.Но, с другой стороны, Jasper действительно хорош в таких вещах, как позволить вам написать логику один раз, а затем легко сгенерировать отчет в нескольких форматах (включая Excel).

Если существует строгое требование, чтобы сгенерированный отчет "выглядел красиво", и если он имеет действительно сложную компоновку, и если вам нужно сгенерировать много форматов, то вам может пригодиться механизм отчетов.

Если вы можете оправдать то, что потратили на это пару часов, скачайте Jasper (или Birt или что-то еще) и ознакомьтесь с некоторыми учебными пособиями / демонстрациями и почувствуйте их.Это, вероятно, будет более ценным для вас, чем все комментарии, которые вы получаете здесь.

...