JasperReports и пользовательские источники данных - PullRequest
5 голосов
/ 04 августа 2009

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

То, на что я хочу обратить внимание, - это написать какую-то оболочку для существующего слоя доступа к данным (, написанную для облегчения нашей жизни в разговоре с вышеупомянутым древним и сложным db ). У кого-нибудь есть опыт написания пользовательских источников данных для JasperResports или выполнения чего-либо подобного?

Обновлено

Полагаю, я, наверное, не совсем понял свой вопрос - возможно, потому, что мои требования тоже не ясны. Я хочу предоставить способ, которым конечные пользователи могут использовать что-то вроде iReport для создания отчетов по базе данных, а затем использовать JasperReportServer для планирования / просмотра отчетов. Тем не менее, база данных очень, очень неприятная и никогда не была разработана для такого использования. У нас есть слой доступа вокруг него, который веб-приложение использует для общения с ним. Я хочу, чтобы мои конечные пользователи были полностью отделены от БД, и идея нестандартного источника данных, использующего уровень доступа, казалась хорошим вариантом. Однако я нашел очень мало документации о том, как это сделать. Может быть, это намного проще, чем я думаю, и я просто пытаюсь сделать чертовски простую вещь слишком сложной.

Обновлено

Спасибо за ответы. Я не думаю, что моя проблема была решена, но я думаю, что ответы помогли проинформировать фазу требований.

Ответы [ 2 ]

4 голосов
/ 04 августа 2009

Отчеты Jasper позволяют использовать источник данных «JavaBean». Вы можете загрузить свои данные в любую структуру Java Bean и построить отчеты по этому. Хорошо работает.

См. Раздел «Пользовательский источник данных» здесь .

3 голосов
/ 04 августа 2009

Каждый шаблон JasperReports может иметь два разных источника данных. Один из них - подключить его непосредственно к базе данных с помощью какого-либо драйвера jdbc или, в вашем случае, предоставить набор Java-бинов (POJO), обычно список.

Шаблон JasperReports аналогичен определению метода. У него есть имя, то есть скомпилированный объект JR и параметры (источник данных и список входных параметров некоторых наиболее популярных типов Java).

Мое предложение - использовать инструмент iReport. Откройте некоторый пример, который входит в комплект JasperReports, проанализируйте его и настройте. Это не так сложно.

UPDATE

Предоставление клиентам возможности создавать шаблоны JasperReports, компилировать и добавлять их в classpath означает, что вам потребуется слишком много открывать вашу систему. Обычно клиенты предоставляют описание нужного отчета, а разработчик (и) создают источник данных и проектируют шаблон. JasperReports может иметь параметры. Если эти параметры предоставляются через пользовательский интерфейс, пользователи могут изменить поведение отчетов во время выполнения.

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

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