Урок за JasperReports: За какво е Jasper Report Java?

⚡ Умно обобщение

JasperReports за Java е система за отчитане с отворен код, която превръща данните от приложенията в перфектни документи. Тази статия обяснява жизнения цикъл на отчитане, инсталирането на Jaspersoft Studio, създаването на шаблони за отчети, структурата на лентите, сравнението с Pentaho и практическите ограничения, с които се сблъскват екипите.

  • 📊 Основна дефиниция: JasperReports е Java библиотека с класове, която рендира данни на екран, принтер, PDF, HTML, XLS, RTF, CSV, XML, ODT и TXT.
  • 🔄 Етапи на жизнения цикъл: Четири етапа се изпълняват последователно, а именно проектиране на JRXML, компилирането му в .jasper файл, попълването му с данни и експортиране на резултата.
  • ️ Дизайнерска среда: Jaspersoft Studio Community Edition предоставя визуалния дизайнер, а версия 6.21.3 е текущата версия за общността.
  • 🧩 Структура на лентата: Заглавието, заглавието на страницата, заглавието на колоната, детайлите, долния колонтитул на колоната, долния колонтитул на страницата и лентите с резюме контролират къде се отпечатва всеки елемент.
  • 🔌 Гъвкавост на данните: Един отчет може да комбинира JavaКолекции от Beans, SQL резултати, XML файлове и персонализирани адаптери за данни.
  • ️ Сравнение на платформата: Jaspersoft е лидер в документацията и мобилния бизнес анализ, докато Pentaho е лидер в таблата за управление и извличането на данни.
  • ⚠️ Известно ограничение: Отчетите трябва да бъдат компилирани преди изпълнение, така че всеки разработчик на отчети се нуждае от пълен Java SDK е инсталиран.

Урок за JasperReports

За какво е JasperReports Java?

JasperReports е инструмент за докладване с отворен код за Java който се използва за отчитане на приложения. Този инструмент за отчитане помага за писане на богато съдържание на екрана, на принтера или в различни файлове като HTML, PDF, XLS, RTF, CSV, XML, ODT и TXT. JasperReports може да се използва и за Java-активирани приложения като Java EE или уеб приложения за генериране на динамично съдържание.

В повечето дискусии се появяват заедно три имена на продукти, а ранното им разделяне предотвратява объркване по-късно на тази страница.

Име Какво е Кой го използва
Библиотека JasperReports - Java библиотека, която компилира, попълва и експортира отчети Java разработчици, вграждащи отчети в приложение
Джаспърсофт Студио - Eclipse базиран визуален дизайнер, който създава JRXML файлове Дизайнерите на доклади изграждат оформления
JasperReports сървър Самостоятелен сървър, който съхранява, планира и доставя отчети Екипи, разпространяващи отчети до бизнес потребители

Тази страница се фокусира върху библиотеката и върху Jaspersoft Studio, защото тези два компонента са всичко, което е необходимо за проектиране и изпълнение на първи отчет. Обърнете внимание, че изданието за общността вече обхваща само тези два компонента, тъй като JasperReports Server вече не се предлага като изтегляне от общността.

Защо да използвате Jasper Reports?

Ето много причини да използвате инструмент за отчети на Jasper:

  • Той предлага производителност при генериране на отчети и доставка до потребителите.
  • Помага ви да представите данните си в текстов или графичен формат.
  • Това е самостоятелен и вграден сървър за отчитане за компилиране и изпълнение на отчитане.
  • Той позволява базиран на роли контрол на достъпа до всички отчети в хранилището.
  • Предлага се рамка Spring Security за интеграция с вътрешни системи за удостоверяване.
  • Той предлага сигурен, планиран и автоматично доставян интерактивен механизъм за отчитане.
  • Можете да вграждате отчети в Java или не-Java приложения.
  • Могат да се експортират различни формати на отчети.
  • Той може да генерира водни знаци, които се поставят върху основното изображение.
  • Предлага пълен комплект от SOAP, REST и уеб услуги.
  • Позволява ви да използвате данни от един отчет от множество източници на данни.

Тъй като библиотеката е издадена под лиценз LGPL, тя може да бъде включена в търговски продукти без такса за работно място, което е причината много... Java екипите го избират пред собствени системи за отчитане.

Характеристики на Jasper Reports

Сега ще разгледаме характеристиките на JasperReports.

Ето важните характеристики на инструмента Jasper Reports:

  • Предлага гъвкаво оформление на отчета в ленти, колони и региони със свободна форма.
  • Разработчиците могат да предоставят данни по множество начини, включително JavaКолекции от Beans, SQL заявки и XML документи.
  • Няколко източника на данни могат да бъдат комбинирани в един отчет чрез подотчети и адаптери за данни.
  • Водни знаци могат да се прилагат и върху основното изображение.
  • Можете да генерирате подотчети, които са вложени в родителско оформление.
  • Помага ви да експортирате отчети в различни формати като PDF, HTML, RTF и Microsoft Excel файлове.
  • Механизмът позволява дефинициите на отчетите да включват диаграми като стълбовидни, кръгови, линейни и времеви серии.
  • Изразите за отчети могат да бъдат написани в Java, Groovy или JavaСценарий.

Тези възможности се разкриват чрез фиксирана последователност на обработка, която следващият раздел описва стъпка по стъпка.

Жизнен цикъл на JasperReports

Сега ще научим за жизнения цикъл на JasperReports.

Следва общият поток от жизнения цикъл на Jasper Reports:

Жизнен цикъл на JasperReports

Диаграмата по-горе показва четирите етапа по ред. Всеки етап създава файл, който става вход за следващия етап, поради което последователността никога не може да бъде обърната.

Етап Вход Продукция Разширение на файл
Проектиране Решения за оформление Шаблон за отчет .jrxml
Компилиране .jrxml файл Компилиран двоичен шаблон .jasper
Изпълнение .jasper файл плюс данни Попълнен отчет .jrprint
Експорт .jrprint файл Окончателен документ .pdf, .html, .xls и други

Проектиране на доклада

Това ще бъде първата стъпка, в която създаваме JRXML файла. Това е прост XML документ, който определя оформлението на отчета. Можете да разработите този файл с помощта на произволен текстов редактор или дизайнер на отчети.

Ако обаче използвате дизайнера на отчети, можем да визуализираме оформлението на отчета и реалната структура на JRXML може да бъде игнорирана.

Съставяне на доклада

В този етап от жизнения цикъл, JRXML, който е изграден на първия етап, се компилира и се генерира двоичен обект, наречен Jasper файл (файл с разширение jasper).

Тази компилация се прави, за да се получи по-добра производителност по време на изпълнение. Тези генерирани Jasper файлове трябва да бъдат изпратени заедно с вашето приложение за изпълнение на отчетите.

Изпълнение на доклада

На този етап данните от приложението се събират и попълват във формата на съставения отчет. Има клас, наречен net.sf.jasperreports.engine.JasperFillManager, който предлага функции за попълване на данните в отчетите.

Резултатът ще бъде съхранен в Jasper файл за печат (файл с разширение jrprint), който може да се използва за печат или експортиране на отчета.

Експортиране на отчета в желания формат

В този последен етап трябва да експортирате файла за печат на Jasper, който е създаден по-рано, във всеки формат, като използвате класа JasperExportManager. Тъй като Jasper предлага множество формати за експортиране, можем да използваме един и същ вход, за да създадем различни представяния на данните.

Как да инсталирате Jasper Reports – Настройка на средата

Сега нека да разгледаме стъпка по стъпка процеса за настройка на средата на JasperReports. Снимките на екрана по-долу са заснети с инсталатора версия 6.9. Текущата версия на общността е 6.21.3, публикувана на 23 април 2024 г., а последователността на екраните е непроменена, въпреки че номерът на версията в името на файла е различен.

Стъпка 1) Изтеглете изданието на общността на докладите на Джаспър
Преминете към това връзка и щракнете върху опцията „Изтегли сега“, за да инсталирате Jasper Reports Community edition.

Инсталирайте Jasper Reports - Настройка на средата

Стъпка 2) Изберете Jaspersoft Studio CE
От изданията на общността изберете Jaspersoft Studio CE.

Инсталирайте Jasper Reports - Настройка на средата

Стъпка 3) Изтеглете Jaspersoft Studio
Преминете към това връзка и щракнете върху бутона Изтегляне, след което отворете изтегления изпълним файл за инсталиране на вашата операционна система.

Инсталирайте Jasper Reports - Настройка на средата

Стъпка 4) Кликнете върху бутона „Съгласен“
Ще се появи следният екран. Изберете бутона „Съгласен съм“.

Инсталирайте Jasper Reports - Настройка на средата

Стъпка 5) Изберете местоположение
Изберете мястото за инсталиране и щракнете върху бутона „Напред“.

Инсталирайте Jasper Reports - Настройка на средата

Стъпка 6) Напредъкът върви сега
Ще видите напредъка на следващия екран.

Инсталирайте Jasper Reports - Настройка на средата

Стъпка 7) Кликнете върху бутона за край
В следващия екран щракнете върху бутона за край.

Инсталирайте Jasper Reports - Настройка на средата

Стъпка 8) Напредъкът е пълен
Следният екран ще се появи във вашия прозорец.

Инсталирайте Jasper Reports - Настройка на средата

Стъпка 9) Първи стъпки
След това щракнете върху опцията „Започнете“.

Инсталирайте Jasper Reports - Настройка на средата

Стъпка 10) Започнете работа със студио Jasper Reports
Ще се появи следният екран и можете да започнете работа със студиото на Jasper Reports.

Инсталирайте Jasper Reports - Настройка на средата

💡 Съвет: Jaspersoft Studio е Eclipse базирано приложение и се нуждае от съвместимо Java среда за изпълнение, налична на машината. Ако инсталаторът откаже да се стартира, проверете инсталираната версия на JDK, преди да я преинсталирате.

Пример за създаване на шаблон на отчет

Сега нека научим как да създадем шаблон за отчет в JasperReports.

Файлът с шаблон за отчет, използван в JasperReports, е прост XML файл с разширение jrxml. Този файл съдържа етикета jasperReport като свой коренен елемент. Рамката JasperReports може да обработва различни типове източници на данни.

Шаблон за отчет се проектира и създава, като се използват следните стъпки.

Стъпка 1) Създаване на JRXML файл в Jaspersoft Studio.

  1. Отидете на опцията „Файл“.
  2. Изберете подменюто Ново.
  3. Кликнете върху опцията „Доклад на Джаспър“.

Пример за създаване на шаблон на отчет

Стъпка 2) Избор на желания шаблон.

  1. Изберете своя шаблон, например череша.
  2. Щракнете върху бутона „Напред“.

Пример за създаване на шаблон на отчет

Стъпка 3) Избор на родителска папка.

  1. Изберете папката „Моите отчети“.
  2. Въведете името на файла, например „Cherry Report“.
  3. Щракнете върху бутона „Напред“.

Пример за създаване на шаблон на отчет

Стъпка 4) В прозореца „Източник на данни“ щракнете върху бутона „Нов“, за да създадете нов адаптер за данни.

Пример за създаване на шаблон на отчет

Стъпка 5) Избор на адаптер за данни.

  1. Изберете адаптера за данни от списъка. Например, „Колекция от JavaБоб.
  2. Щракнете върху бутона „Напред“.

Пример за създаване на шаблон на отчет

Стъпка 6) Въвеждане на данни за адаптера за данни и избор на фабричния клас.

  1. Въведете име за вашия адаптер.
  2. Изберете класа на фабриката, като щракнете върху бутона „…“.

Пример за създаване на шаблон на отчет

Стъпка 7) Въвеждане на префикса или шаблона.

  1. Въведете префикса на името или шаблона.
  2. Кликнете върху съвпадащите елементи.
  3. Кликнете върху бутона „OK“.

Пример за създаване на шаблон на отчет

Стъпка 8) Дефиниране на фабричния клас и добавяне на пътя към jar файловете.

  1. Въведете името на статичен метод във фабричния клас. В този пример за отчети на Jasper това е createBeanCollection.
  2. Ако вашият JavaДефиницията на Beans има описания на полета и ако искате да ги използвате като имена в Jaspersoft Studio, поставете отметка в квадратчето „използване на описание на полето“.
  3. Добавете път към вашите jar файлове.
  4. Кликнете върху бутона „Готово“.

Пример за създаване на шаблон на отчет

Стъпка 9) Щракнете върху бутона „Напред“.

Пример за създаване на шаблон на отчет

Стъпка 10) Поздравления! Успешно добавихте цялата необходима информация за създаване на отчет. Кликнете върху бутона „Готово“.

Пример за създаване на шаблон на отчет

Отчетът ще бъде генериран, както е показано на екрана по-долу.

Пример за създаване на шаблон на отчет

Горният файл изисква компилация в двоичен формат на JasperReport, който се нарича jasper файл.

Интерфейсът net.sf.jasperreports.engine.design.JRCompiler, който е част от библиотеката JasperReports, играе важна роля при компилирането на този файл с шаблон за отчет.

Реализацията на този интерфейс може да бъде написана в Java, JavaСценарий, Groovy, или всеки друг скриптов език.

Можете да компилирате JRXML файл, като използвате следните два метода:

  • Програмна компилация от Java код.
  • Компилация с помощта на Apache Ant задача.

Фрагментът по-долу показва програмния маршрут, където един ред компилира шаблона, а втори ред го запълва с JavaКолекция от боб.

import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;

public class ReportRunner {

    public static void main(String[] args) throws JRException {

        // 1. Compile the JRXML template into a .jasper file
        JasperReport report = JasperCompileManager.compileReport("CherryReport.jrxml");

        // 2. Fill the compiled template with a collection of beans
        JRBeanCollectionDataSource source =
                new JRBeanCollectionDataSource(EmployeeFactory.createBeanCollection());

        JasperPrint print = JasperFillManager.fillReport(report, null, source);

        // 3. Export the filled report to PDF
        JasperExportManager.exportReportToPdfFile(print, "CherryReport.pdf");

        System.out.println("Report exported successfully");
    }
}

Изход:

Report exported successfully

Разбиране на различните ленти за отчети

Оформлението на JasperReports е разделено на хоризонтални секции, наречени ленти. Всяка лента има фиксирано правило за печат и разбирането на тези правила позволява на дизайнера да контролира точно къде се появява дадена стойност в готовия документ.

Следват стандартните групи за отчети, възприети от повечето инструменти за генериране на търговски отчети.

  • Заглавие
  • Заглавка на страницата
  • Заглавка на колона
  • детайл
  • Долен колонтитул
  • Долен колонтитул на страница
  • Долен колонтитул на последната страница
  • Oбобщение
  • Заглавка на групата
  • Долен колонтитул на групата
  • История
  • Няма данни

Нека разгледаме подробно всяка от групите за отчитане.

Заглавие

Тази лента се показва в началото на отчета. Тя може да бъде поставена на собствена първа страница чрез задаване на атрибута isTitleNewPage="true".

Заглавка на страницата

Лентата на заглавието на страницата се показва в началото на всяка страница. Тя изключва първата страница, ако се използва лентата за заглавие, и последната страница, ако се използва лентата за обобщение с настройката isSummaryWithPageHeaderAndFooter="false".

Заглавка на колона

Заглавките на колоните се появяват преди лентата с подробности на всяка страница.

детайл

Секцията с подробности се итерира за всеки запис в предоставения източник на данни. Също така е позволено да има няколко групи с подробности (1, 2 и т.н.).

Долен колонен колон

Този раздел се показва под лентата с подробности на всяка страница, където тя е налична. Настройката по подразбиране е краят на страницата, но това може да се промени, за да се намира под последната лента с подробности, като се зададе атрибутът isFloatColumnFooter="true".

Долен колонтитул на страницата

Този раздел ще се показва в края на всяка страница, с изключение на резюме лентата, заглавната лента и последната нерезюме лента.

Долен колонтитул на последната страница

Този раздел се появява на последната страница, на мястото на нормалния долен колонтитул на страницата, когато не е дадена обобщаваща лента.

Oбобщение

Разделът с обобщението се появява само в края на отчета на нова страница, когато isSummaryNewPage="true" е зададено, и с горен и долен колонтитул на страницата, когато isSummaryWithPageHeaderAndFooter="true" е зададено.

Заглавка на групата

Този раздел се появява само когато е дефиниран, всеки път, когато груповият израз се промени, преди лентата с детайли.

Долен колонтитул на групата

Този раздел се показва само ако е дефинирана група, всеки път преди промяната на груповия израз, след лентата с детайли.

История

Показва се на всички страници като фон за всички останали ленти за отчитане.

Няма данни

Тази лента ще се появи, когато не е подаден източник на данни или източникът на данни е празен и whenNoDataType="NoDataSection" е зададено.

Джаспър срещу Пентахо

Сега ще научим за разликата между Джаспър и Пентахо.

Ето основните разлики между Джаспър и Пентахо:

параметри Яспис Пентахо
Доклади Джаспър използва Jaspersoft Studio за проектиране на отчетите. Използва дизайнера на отчети Pentaho.
ETL поддръжка Jaspersoft използва версията на Talend Open Studio за ETL цели. Той използва Pentaho Data Integrator по подразбиране ETL инструмент.
Табло Функционалността на таблото за управление е налична само в Enterprise изданието на Jaspersoft. Pentaho предлага широка гама от функции в своите табла за управление.
Мобилно бизнес разузнаване Jaspersoft има по-добра мобилна BI поддръжка. Pentaho трябва да разчита на инструмент на трета страна, за да подобри мобилното бизнес изживяване.
документация По-добър маркетинг, сайтове и документация. Подкрепата с документация е лоша.
Най-добра функция По-лесно за проучване и намиране на това, от което се нуждаете. Предлага извличане на данни и интеграция с iPhone.
Платена версия Платената версия предлага функции като ad hoc заявка уеб потребителски интерфейс и уеб потребителски интерфейс за създаване на табло за управление. Предлага функции като LDAP интеграция, SSO и одит.

Отборите вече са инвестирали в Java stack обикновено избира Jasper, докато екипи, които се нуждаят от сериозна интеграция на данни, наред с отчетността, често избират Пентахо.

Предизвикателства при създаването на JasperReports

Ето няколко предизвикателства, с които ще се сблъскате, докато създавате отчети на Jasper:

  • Основни промени – когато бизнес правилата се променят или подобряват, е необходимо да се промени основната логика на отчета.
  • Сложни отчети – подотчетите и отчетите с кръстосани раздели са добри примери.
  • Диаграмни отчети или визуални диаграми, например графики, XY линейни, кръгови, стълбовидни, времеви серии и измервателни диаграми.

Недостатъци на използването на Jasper Reports

Ето недостатъците на използването на Jasper Reports.

  • След като започнете да правите каквито и да е промени в части от пакета и да премахвате функции, е много трудно да се върнете към настройката по подразбиране на пакета.
  • Твърде е твърдо и редактирането на линии и създаването на кръстосани разделители е трудна задача.
  • Някои често срещани задачи, като например задаване на междинни суми за групиран отчет, са по-лесни в други дизайнери на отчети.
  • Jasper изисква да съставите отчети, преди да ги стартирате. Това означава, че разработчиците на отчети трябва да имат цялата Java SDK е инсталиран.
  • Понякога, когато редактирате отчета, той не показва същия преглед, както се показва в мрежата.

Въпроси и Отговори

Файлът .jrxml е четливият от човек XML шаблон, който дизайнерите редактират. Файлът .jasper е компилираният двоичен файл, създаден от него, и само компилираният файл се изпълнява по време на изпълнение.

Библиотеката JasperReports и Jaspersoft Studio Community Edition са издадени под лиценз с отворен код и могат да бъдат вградени в търговски продукти. Таблата за управление, планирането и функциите за сигурност изискват платеното издание.

Да. Създайте JDBC адаптер за данни в Jaspersoft Studio, предоставете JAR файла на драйвера и низа за свързване, след което напишете заявката в отчета. Параметрите се предават със синтаксиса на долар и скоби.

Да. Добавете зависимостта jasperreports, поставете компилираните .jasper файлове в пътя на класовете и извикайте JasperFillManager от сервизен клас. Експортираните байтове могат да бъдат предавани поточно директно към HTTP отговор.

Асистентите с изкуствен интелект могат бързо да създават JRXML скелети и синтаксис на изрази. Винаги отваряйте генерирания файл в Jaspersoft Studio, тъй като височините на лентите и координатите на елементите често се нуждаят от ръчна корекция.

Той обработва перфектните до пиксела оперативни документи, които AI таблата не генерират, като например фактури и отчети. Изходните данни от модела се записват в база данни, а Jasper ги рендира за разпространение.

Обобщете тази публикация с: