Version 1.1 by Admin on 2019/07/18 16:55

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

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