Является ли JasperReports подходящим решением для отображения отчетов в веб-приложении? - PullRequest
9 голосов
/ 12 марта 2009

Мы хотим создавать отчеты, встроенные в виде html-страниц в веб-приложение или загружаемые как pdf . Поэтому я наткнулся на JasperReports , потому что считал, что он удовлетворит эти требования.

В настоящее время мы предполагаем, что в нашем отчете будет около 50-100 страниц, состоящих из почти только гистограмм и некоторых таблиц. Данные получены из некоторых дорогих запросов из нашей БД.

После оценки этого дня у меня есть несколько сомнений относительно аспектов веб-приложения.

1) Разбиение на страницы: Конечно, я не хочу отображать все страницы на одной веб-странице. Нам нужно что-то вроде нумерации страниц. Но JasperReports , похоже, не поддерживает этот подход. Демонстрация wepp, поставляемая с JasperReports , обрисовывает путь: мне нужно создать JasperPrint , который уже является полным отчетом, выделяя ненужную память и который выполнил дорогие запросы. Тогда я мог бы отобразить одну страницу. Но делать это снова и снова для каждой страницы не представляется мне правильным решением.

2) Как уже упоминалось выше, наш отчет будет состоять в основном из диаграмм. Изображения генерируются во время экспорта JasperPrint в выходной формат. Если я все понимаю правильно, ImageServlet , который поставляется с JR , способен, но получить эти изображения будет

i) Чтение сгенерированных изображений из файловой системы
ii) экспортер сохранил их в сеансе (следовательно, в памяти).

Так как я думаю, что у нас будет много изображений, ii) это не вариант, если мы хотим сохранить объем памяти веб-приложения на низком уровне. Но с другой стороны, переполнение файловой системы файлами - тоже не лучшая идея, которую я мог себе представить. Это когда-нибудь удаляет файлы?

Я что-то не так понял? Правильно ли мое понимание?

Ответы [ 2 ]

3 голосов
/ 12 марта 2009

Разбивка

Это своего рода дизайн сервиса, как реализована ваша страница! PDF - это отдельный выходной формат для печати. Он не может читать больше данных с сервера (без Web-сервисов и расширений Reader). Таким образом, вы можете определить, что JasperReports должен только подмножество ваших данных для подкачки.

Если вы определяете наборы данных в JasperReports, вы можете использовать их повторно без выделения ненужной памяти.

Изображения

Если вы хотите, чтобы изображения в отчетах сохраняли низкий объем памяти, напишите алгоритм балансировки, который генерирует изображения, когда нагрузка на сервер ниже заданного значения (может быть динамическим значением из среднего значения загрузки за последний день).

Вам нужно создавать изображения в реальном времени? Если изображения были созданы сервлетом, они будут загружены в память. Приложение Java. можете передавать изображения в ReportGenerator.

изображения могут быть загружены из памяти, с диска или с URL увидеть; Книга отчетов Джаспера P: 170

Изображения никогда не должны сохраняться в HTTP_SESSION! Это полный антипаттерн, который вызывает вздутие живота.

0 голосов
/ 12 марта 2009

Нет. У вас будут самые разные проблемы.

Я думаю, что вы можете просто сгенерировать свои отчеты в XHTML / CSS, и если вам нужно рендеринг PDF, просто используйте Flying Saucer XHTML рендерер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...