Редактировал(а) admin 2026/08/28 10:56

Скрыть последних авторов
admin 3.4 1 Для построения отчётов в программе [[АРМ НЕЙРОСС Отчеты>>doc:neyross.arm-reports.WebHome]] с помощью JasperReports Library достаточно указать в своём наборе шаблонов в файле ##reports.conf## значение параметра ##definition.class## в **##extensions.reports.GenericJasperReportDefinition##**. Это имя программного компонента (Java-класса) //базовой реализации// шаблона отчёта, который позволяет формировать отчёт средствами JasperReports Library по шаблону в форме *.jasper-файла.
Admin 1.1 2
3 Базовая реализация шаблона:
4
5 1. Анализирует *.jasper-файл шаблона отчёта и получает из него список параметров, которые должны быть заданы при формировании отчёта:
admin 3.4 6 11. в список параметров попадают те, для которых в Jasper-шаблоне задан флаг ##Is For Prompting##;
7 11. описание параметра (поле ##Description## в Jasper-шаблоне) используется для текста надписи в форме ввода параметров;
8 11. тип данных параметра определяется свойством ##Class## в Jasper-шаблоне.
Admin 1.1 9 1. Для каждого параметра выбирает оптимальное поле ввода в соответствии с заданными для параметра свойствами (см. [[#Привязка полей ввода>>doc:||anchor="БазовыйшаблонотчётасJasperReports-Привязкаполейввода"]]).
10 1. Генерирует форму ввода параметров из соответствующих полей ввода.
11 1. Обрабатывает введённые пользователем значения параметров и передаёт их JasperReports Library для генерации отчёта по шаблону.
12
13 == {{id name="БазовыйшаблонотчётасJasperReports-Требования"/}}Требования ==
14
15 В данном разделе приведены требования к шаблонам, которые используют базовую реализацию или производные от неё.
16
17 === {{id name="БазовыйшаблонотчётасJasperReports-report.conf"/}}report.conf ===
18
admin 3.4 19 При выборе базовой или производной от базовой реализации шаблона в файле ##report.conf## также должны быть заданы следующие параметры:
Admin 1.1 20
21 |=(((
22 Ключ
23 )))|=(((
24 Значение
25 )))|=(((
26 Комментарий
27 )))|=(((
28 Пример значения
29 )))
30 |(((
admin 3.4 31 {{code language="text"}}
Admin 1.1 32 definition.generic.key
33 {{/code}}
34 )))|(((
35 Уникальный идентификатор шаблона отчёта
36 )))|(((
37 В данном параметре следует указать уникальную для вашего шаблона строку, которая будет однозначно отличать данный шаблон от всех остальных.
38
admin 3.4 39 Замечание для программистов: Базовая реализация возвращает это значение в методе ##key##.
Admin 1.1 40 )))|(((
admin 3.4 41 {{code language="text"}}
Admin 1.1 42 "ultima-reports-itrium-timecontrol:timeControl"
43 {{/code}}
44 )))
45 |(((
admin 3.4 46 {{code language="text"}}
Admin 1.1 47 definition.generic.title
48 {{/code}}
49 )))|(((
50 Удобочитаемое название шаблона отчёта
51 )))|(((
52 Данное значение выводится в списке доступных шаблонов в пользовательском интерфейсе.
53
admin 3.4 54 Замечание для программистов: Базовая реализация возвращает это значение в методе ##title##.
Admin 1.1 55 )))|(((
56 Учёт рабочего времени
57 )))
58 |(((
admin 3.4 59 {{code language="text"}}
Admin 1.1 60 definition.generic.description
61 {{/code}}
62 )))|(((
63 Подробное описание шаблона отчёта
64 )))|(((
65 Подробное описание шаблона отчёта. Выводится в интерфейсе пользователя.
66
admin 3.4 67 Замечание для программистов: Базовая реализация возвращает это значение в методе ##description##.
Admin 1.1 68 )))|(((
admin 3.4 69 {{code language="text"}}
Admin 1.1 70 ""
71 {{/code}}
72 )))
73 |(((
admin 3.4 74 {{code language="text"}}
Admin 1.1 75 definition.jasper.design
76 {{/code}}
77 )))|(((
78 Перечень jasper-файлов шаблона отчёта
79 )))|(((
admin 3.4 80 В данном параметре должно быть указано имя файла с расширением ##*.jasper##, который будет использоваться для формирования отчёта. Можно указать различные файлы для предпросмотра (HTML) и основного отчёта. Для этого задайте различные значения дочерним ключам ##main## (основной отчёт) и ##html## (предпросмотр).
Admin 1.1 81 )))|(((
admin 3.4 82 {{code language="text"}}
Admin 1.1 83 {
84   main: "report.jasper",
85   html: "report.jasper"
86 }
87 {{/code}}
88 )))
89
90 === {{id name="БазовыйшаблонотчётасJasperReports-JasperReports"/}}JasperReports ===
91
admin 3.4 92 В директории шаблона в наборе должен быть размещён хотя бы один *.jasper-файл. Имя файла должно быть указано в файле ##report.conf## в параметре ##definition.jasper.design##.
Admin 1.1 93
94 Для всех Jasper-параметров в шаблоне, которые должен ввести пользователь, должен быть задан флаг Is For Prompting равный true. Для таких параметров также должно быть задано свойство с именем класса поля ввода (см. [[#Привязка полей ввода>>doc:||anchor="БазовыйшаблонотчётасJasperReports-Привязкаполейввода"]]).
95
admin 3.4 96 В Jasper-шаблоне необходимо определить системный параметр ##DEFINITION_DIR## типа ##java.lang.String##, для которого установить флаг ##Is For Prompting## равный ##false##. В данный параметр базовая реализация передаст абсолютный путь к директории с файлами шаблона (директории, в которой находятся *.jasper-файлы и другие файлы шаблона). Это значение необходимо, например, при использовании подотчётов — чтобы указать корректный путь к *.jasper-файлу подотчёта.
Admin 1.1 97
admin 3.4 98 Все Java-классы, кроме классов API и классов стандартной библиотеки, которые используются в Jasper-шаблоне (например, для форматирования вывода данных), должны быть помещены в форме *.jar-библиотек в директорию ##libs## набора шаблонов.
Admin 1.1 99
100 == {{id name="БазовыйшаблонотчётасJasperReports-Возможности"/}}Возможности ==
101
102 В данном разделе описаны возможности, которые предоставляет базовая реализация для создания шаблонов.
103
104 === {{id name="БазовыйшаблонотчётасJasperReports-Привязкаполейввода"/}}Привязка полей ввода ===
105
admin 3.4 106 Базовая реализация позволяет определять, какие именно поля ввода будут использованы на форме ввода параметров, прямо в Jasper-шаблоне. Для этого для каждого параметра, который будет выведен на форме (для которого задан атрибут ##Is For Prompting## равный ##true##) должно быть задано свойство ##ru.itrium.ultima.reports.form.field.class##. С помощью свойств также можно определить дополнительные особенности поведения поля ввода — например, в каком формате должно быть введено значение в поле выбора даты / времени.
Admin 1.1 107
108 Управление расширенными свойствами Jasper-параметра в Jaspersoft Studio (версия 6.3.0) осуществляется на вкладке Advanced:
109
110 [[image:attach:parameter-properties-1.png]]
111
112 в диалоговом окне Properties:
113
114 [[image:attach:parameter-properties-2.png]]
115
admin 3.4 116 В XML-документе шаблона такие свойства определяются следующим кодом в блоке параметра ##<parameter />##:
Admin 1.1 117
118 {{code language="xml"}}
119 <parameter name="FROM" class="java.sql.Timestamp">
120 <property name="ru.itrium.ultima.reports.form.field.class" value="extensions.reports.generic.DateTimeFormField"/>
121 <property name="ru.itrium.ultima.reports.form.field.pickTime" value="false"/>
122 <parameterDescription><![CDATA[Дата от]]></parameterDescription>
123 <defaultValueExpression><![CDATA["2018-09-05 00:00:00"]]></defaultValueExpression>
124 </parameter>
125 {{/code}}
126
127 {{info}}
admin 3.14 128 Полный список классов полей ввода, которые можно свободно использовать, а также перечень поддерживаемых ими свойств приведёны [[здесь>>doc:neyross.setup.report-control.dev-reports.jasper-param-fields.WebHome]].
Admin 1.1 129
130 Кроме полей ввода, перечисленных в списке, разработчик может также реализовать на языке Scala / Java свои собственные поля.
131 {{/info}}

Платформа НЕЙРОСС