Итак, вы решили, что отчеты ZuckerReports в SugarCRM должны уметь больше, чем выдавать html-файл с почти беспорядочно расположенными данными или отвечать на более сложный запрос, чем «SELECT * FROM opportunities WHERE amount_usdollar > 1000», а также уметь подать результат в виде чарта или графика. И вроде бы есть такие замечательные примеры, как Activity.jrxml, MeetingPrintout_Users.jrxml и т.д., но они не полностью удовлетворяют ваши потребности . Тогда смиритесь: графики, чарты, логотипы, разнообразие шрифтов и буйство красок графического конструктора IReport – вся эта прелесть скоро станет для вас любимым и родным. Познакомившись с ним ближе, вы поймете, что IReport не только вкусен, но и полезен.
Начнем с азов.
В конструкторе строится дизайн будущего отчета, где именно будет выводиться результат запроса, в каком виде и под какой шапкой. Он описан на языке XML, именно в таком виде его можно посмотреть и при надобности подправить, если перейти Edit -> XML Source. В некоторых случаях так даже проще и занимает меньше времени (зависит от задачи). Например, стандартная шапка отчета:
<?xml version="1.0" encoding="UTF-8" ?> <!-- Created with iReport - A designer for JasperReports --> <!DOCTYPE jasperReport PUBLIC "//JasperReports//DTD Report Design//EN" "http://jasperreports.sourceforge.net/dtds/jasperreport.dtd"> <jasperReport name="Untitled_report_1" columnCount="1" printOrder="Vertical" orientation="Portrait" pageWidth="595" pageHeight="842" columnWidth="535" columnSpacing="0" whenNoDataType="NoPages" isTitleNewPage="false" isSummaryNewPage="false"> <property name="ireport.scriptlethandling" value="2" /> <property name="ireport.encoding" value="UTF-8" /> <import value="java.util.*" /> <import value="net.sf.jasperreports.engine.*" /> <import value="net.sf.jasperreports.engine.data.*" /> </jasperReport>
После успешной компиляции создается бинарный шаблон с расширением .jasper, в который подставляются данные (информация из базы данных посредством SQL-запроса, XML-файла, CSV-файла, из JavaBean Data Source и многих других источников, названия которых нам ни о чем сейчас не говорят).
Заполненный необходимыми данными jasper-файл и есть готовый отчет, файл jrprint, который можно импортировать во множество форматов: Excel, XML, HTML, OpenOffice и др.
Мне, к примеру, нужен был PDF, потому что еще не знаю, под какой осью этими отчетами будут пользоваться, и где они будут создаваться. Но вернемся к jasper файлу. Создав отчет и добавив его в SugarCRM через «Шаблоны отчетов и запросов» -> «Новый Jasper-отчет», скорее всего, понадобится что-то в нем незначительно изменить. Нет необходимости исправлять jrxml-файл с измененным ФИО главного бухгалтера «другим шрифтом, покрасивее» и заново его добавлять, достаточно внести изменения в IReport, скомпилировать jasper- файл и заменить им старый.
Внешний вид моей версии (напомню, что я использую 3.0.0):
Работа с отчетами ZuckerReports.Часть 2.
Высказать своё мнение о статье Вы можете в комментариях, если Вас интересуют какие либо вопросы или дополнения, то обсуждение по данной теме доступно на нашем форуме.