2009-08-19 4 views
11

Я ищу легкий механизм сообщений Java, который будет встроен в приложение апплета.Легкий механизм отчетности Java

Моим первым вариантом был Jasper Reports, но кувшин более 2 МБ, немного слишком тяжелый (и слишком раздутый) для моих нужд. Я не знаю, есть ли модульное распределение яшмы, с функциональностью, разделенной на несколько банок (например, html-рендеринг, pdf, excel, компиляция, время выполнения и т. Д.).

Мне нужно просмотреть отчет с помощью Swing и распечатать его. Экспорт в PDF является плюсом.

ответ

1

Если вы не можете найти лучшего решения, должно быть возможно создать урезанный JAR-файл для Jasper Reports. Предполагается, что инструмент GenJar может создавать JAR-файл на основе его статических зависимостей.

Давным-давно, я использовал инструмент обфускации «Classmaster» от Zelix, который дал вам возможность удалить классы, которые не были использованы. Я думаю, что это могло бы даже лишить неиспользованные методы, хотя моя память немного туманна. (Я использовал его на закрытом исходном продукте ..., который с тех пор исчез с IP-камеры «blackhole».)

EDIT: еще один вариант - ProGuard, который выполняет обфускацию и удаление, как Classmaster, за исключением того, что он является открытым исходным кодом. (К сожалению, они, похоже, неправильно сконфигурировали ссылку на свой веб-сайт SF. Однако ссылка выше работает.)

Конечно, если Jasper Reports использует Class.forName(), вам нужно будет идентифицировать все соответствующие классы, чтобы добавить их в качестве «корневых» зависимостей для который вы используете. Кроме того, вам нужно будет посмотреть лицензию Jasper Reports, чтобы убедиться, что вам разрешено «распространять» удаленный JAR-файл.

+0

Jasper загружает классы динамически, вам нужно выяснить зависимости. – sventechie

6

Отчеты Jasper содержат банку с основной функциональностью для предварительного просмотра и печати отчетов. Он упакован как jasperreports-x.x.x-applet.jar, с около 350k.

1

Почему 2Mb слишком большой для серверной библиотеки? Докмоз имеет размер банки размером менее 500 тыс., Но требует OpenOffice на сервере, поэтому он меньше в одном направлении и больше в другом. Java не загружает 2Mb Jasper в память, если вы не используете все функции/классы.

+1

Я не использую его на стороне сервера, а на стороне клиента. Апплет загружает поток .jasper с сервера, и просмотрщик swing представляет его пользователю. – tuler

4

Я знаю, что это немного поздно, но с вашими требованиями, кажется, что идеально подходит бы решение отчетности компании я работаю тушит: i-net Clear Reports (раньше я-сеть Кристалл-Clear).

  • Легкий и простой просмотрщик (по аналогии с просмотра PDF)
  • Очень простой в использовании API
  • может экспортировать в кучу различных форматов, включая PDF
  • поддерживает любой источник данных JDBC, или также ручная настройка данных
  • Может работать Crystal Reports шаблоны
  • Мы также предлагаем бесплатный и полностью функциональный report designer

Проверьте это и сообщите нам, что вы думаете.

1

IMHO Chunk Templating engine является лучшим.Файл jar имеет только 180 KB! и поддерживать IF и итерацию. Как это круто !

+1

Для PDF-файлов я использую Chunk для генерации XML, который движок Apache FOP может преобразовывать «на лету» в PDF-файл. –

+0

Имеет ли функция Chunk Templating specyfic для отчетов? Кажется, что наиболее важна автоматическая группировка заголовков и итогов/промежуточных итогов? Я использую (в каком-то старом проекте) механизм шаблонов для сообщения «в ручном режиме», его тяжелая работа. –