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

За какво е 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:
Диаграмата по-горе показва четирите етапа по ред. Всеки етап създава файл, който става вход за следващия етап, поради което последователността никога не може да бъде обърната.
| Етап | Вход | Продукция | Разширение на файл |
|---|---|---|---|
| Проектиране | Решения за оформление | Шаблон за отчет | .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.
Стъпка 2) Изберете Jaspersoft Studio CE
От изданията на общността изберете Jaspersoft Studio CE.
Стъпка 3) Изтеглете Jaspersoft Studio
Преминете към това връзка и щракнете върху бутона Изтегляне, след което отворете изтегления изпълним файл за инсталиране на вашата операционна система.
Стъпка 4) Кликнете върху бутона „Съгласен“
Ще се появи следният екран. Изберете бутона „Съгласен съм“.
Стъпка 5) Изберете местоположение
Изберете мястото за инсталиране и щракнете върху бутона „Напред“.
Стъпка 6) Напредъкът върви сега
Ще видите напредъка на следващия екран.
Стъпка 7) Кликнете върху бутона за край
В следващия екран щракнете върху бутона за край.
Стъпка 8) Напредъкът е пълен
Следният екран ще се появи във вашия прозорец.
Стъпка 9) Първи стъпки
След това щракнете върху опцията „Започнете“.
Стъпка 10) Започнете работа със студио Jasper Reports
Ще се появи следният екран и можете да започнете работа със студиото на Jasper Reports.
💡 Съвет: Jaspersoft Studio е Eclipse базирано приложение и се нуждае от съвместимо Java среда за изпълнение, налична на машината. Ако инсталаторът откаже да се стартира, проверете инсталираната версия на JDK, преди да я преинсталирате.
Пример за създаване на шаблон на отчет
Сега нека научим как да създадем шаблон за отчет в JasperReports.
Файлът с шаблон за отчет, използван в JasperReports, е прост XML файл с разширение jrxml. Този файл съдържа етикета jasperReport като свой коренен елемент. Рамката JasperReports може да обработва различни типове източници на данни.
Шаблон за отчет се проектира и създава, като се използват следните стъпки.
Стъпка 1) Създаване на JRXML файл в Jaspersoft Studio.
- Отидете на опцията „Файл“.
- Изберете подменюто Ново.
- Кликнете върху опцията „Доклад на Джаспър“.
Стъпка 2) Избор на желания шаблон.
- Изберете своя шаблон, например череша.
- Щракнете върху бутона „Напред“.
Стъпка 3) Избор на родителска папка.
- Изберете папката „Моите отчети“.
- Въведете името на файла, например „Cherry Report“.
- Щракнете върху бутона „Напред“.
Стъпка 4) В прозореца „Източник на данни“ щракнете върху бутона „Нов“, за да създадете нов адаптер за данни.
Стъпка 5) Избор на адаптер за данни.
- Изберете адаптера за данни от списъка. Например, „Колекция от JavaБоб.
- Щракнете върху бутона „Напред“.
Стъпка 6) Въвеждане на данни за адаптера за данни и избор на фабричния клас.
- Въведете име за вашия адаптер.
- Изберете класа на фабриката, като щракнете върху бутона „…“.
Стъпка 7) Въвеждане на префикса или шаблона.
- Въведете префикса на името или шаблона.
- Кликнете върху съвпадащите елементи.
- Кликнете върху бутона „OK“.
Стъпка 8) Дефиниране на фабричния клас и добавяне на пътя към jar файловете.
- Въведете името на статичен метод във фабричния клас. В този пример за отчети на Jasper това е createBeanCollection.
- Ако вашият JavaДефиницията на Beans има описания на полета и ако искате да ги използвате като имена в Jaspersoft Studio, поставете отметка в квадратчето „използване на описание на полето“.
- Добавете път към вашите jar файлове.
- Кликнете върху бутона „Готово“.
Стъпка 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 е инсталиран.
- Понякога, когато редактирате отчета, той не показва същия преглед, както се показва в мрежата.






















