Version 1.1 by pugachevskaya_elena on 2026/01/19 13:34

Show last authors
1 В данной статье мы на примере разберём, как с нуля создать шаблон отчёта с помощью JasperReports Library, создать набор шаблонов и установить его в [[Платформу НЕЙРОСС>>doc:neyross.WebHome]].
2
3 Перед чтением данной статьи рекомендуем ознакомиться с [[руководством разработчика>>doc:neyross.Настройка Платформы НЕЙРОСС.Настройка функций подготовки отчётов.Руководство разработчика | Отчёты.WebHome]].
4
5 **Оглавление**
6
7 {{toc/}}
8
9 == {{id name="Каксоздатьсвойнаборшаблонов-Общиесведения"/}}Общие сведения ==
10
11 Отчёт будем строить по реляционной PostgreSQL базе данных. Для примера возьмём отчёт, в котором выведем список таблиц выбранной базы данных и размер, занимаемый этими таблицами на диске.
12
13 За основу отчёта возьмём запрос из [[документации на PostgreSQL>>url:https://wiki.postgresql.org/wiki/Disk_Usage||shape="rect"]]:
14
15 {{code language="sql"}}
16 SELECT *
17 , pg_size_pretty(total_bytes) AS total
18 , pg_size_pretty(index_bytes) AS INDEX
19 , pg_size_pretty(toast_bytes) AS toast
20 , pg_size_pretty(table_bytes) AS TABLE
21 FROM (
22 SELECT *, total_bytes-index_bytes-COALESCE(toast_bytes,0) AS table_bytes FROM (
23 SELECT c.oid,nspname AS table_schema, relname AS TABLE_NAME
24 , c.reltuples AS row_estimate
25 , pg_total_relation_size(c.oid) AS total_bytes
26 , pg_indexes_size(c.oid) AS index_bytes
27 , pg_total_relation_size(reltoastrelid) AS toast_bytes
28 FROM pg_class c
29 LEFT JOIN pg_namespace n ON n.oid = c.relnamespace
30 WHERE relkind = 'r'
31 ) a
32 ) a;
33 {{/code}}
34
35 Дополним SQL-запрос двумя фильтрами — по размеру таблицы и по имени PostgreSQL-схемы. Это позволит включить в отчёт только таблицы, занимающие на диске существенный объём, а также  получить отчёт только по таблицам в выбранной схеме (чтобы, например, исключить системные таблицы в схемах {{code language="none"}}pg_catalog{{/code}} и {{code language="none"}}information_schema{{/code}}). Итоговый SQL-запрос выглядит следующим образом:
36
37 {{code language="sql"}}
38 SELECT *
39 , pg_size_pretty(total_bytes) AS total
40 , pg_size_pretty(index_bytes) AS INDEX
41 , pg_size_pretty(toast_bytes) AS toast
42 , pg_size_pretty(table_bytes) AS TABLE
43 FROM (
44 SELECT *, total_bytes-index_bytes-COALESCE(toast_bytes,0) AS table_bytes FROM (
45 SELECT c.oid,nspname AS table_schema, relname AS TABLE_NAME
46 , c.reltuples AS row_estimate
47 , pg_total_relation_size(c.oid) AS total_bytes
48 , pg_indexes_size(c.oid) AS index_bytes
49 , pg_total_relation_size(reltoastrelid) AS toast_bytes
50 FROM pg_class c
51 LEFT JOIN pg_namespace n ON n.oid = c.relnamespace
52 WHERE relkind = 'r'
53 ) a
54 ) a WHERE table_schema = 'public' AND a.total_bytes >= 10000 ORDER BY table_name;
55 {{/code}}
56
57 Поехали!
58
59 == {{id name="Каксоздатьсвойнаборшаблонов-СозданиешаблонавJaspersoftStudio"/}}Создание шаблона в Jaspersoft Studio ==
60
61 Запускаем Jaspersoft Studio (в примере используется версия 6.3.0):
62
63 [[image:attach:jaspersoft-studio-launch.png||height="250"]]
64
65 === {{id name="Каксоздатьсвойнаборшаблонов-Созданиепроекта"/}}Создание проекта ===
66
67 Создадим новый JasperReports проект:
68
69 [[image:attach:new-project.png]]
70
71 Выбираем тип проекта «JasperReports Project»:
72
73 [[image:attach:new-project-2.png]]
74
75 Вводим название проекта и завершаем работу мастера:
76
77 [[image:attach:new-project-3.png]]
78
79 Проект создан. Его содержимое можно просматривать на вкладке Project Explorer:
80
81 [[image:attach:project-explorer.png]]
82
83 === {{id name="Каксоздатьсвойнаборшаблонов-Созданиешаблона"/}}Создание шаблона ===
84
85 Добавим в проект шаблон отчёта. Для этого нажмите правой кнопкой мыши на элементе проекта в дереве Project Explorer. В открывшемся контекстном меню выберите New → Jasper Report:
86
87 [[image:attach:new-report.png]]
88
89 В открывшемся диалоговом окне выберите шаблон Blank A4:
90
91 [[image:attach:new-report-2.png||thumbnail="true" height="250"]]
92
93 Нажимаем Next. На следующем шаге работы мастера выбираем наш проект (Example) и указываем имя создаваемого файла шаблона отчёта (example.jrxml):
94
95 [[image:attach:new-report-3.png||height="250"]]
96
97 На следующем шаге можно добавить источник данных (Data Source), но мы сделаем это позже. Поэтому нажимаем Finish, файл шаблона появляется среди файлов проекта.
98
99 [[image:attach:new-report-4.png]]
100
101 В центре окна представлен визуальный редактор нового шаблона:
102
103 [[image:attach:editor-1.png||height="250"]]
104
105 === {{id name="Каксоздатьсвойнаборшаблонов-Выборсекций"/}}Выбор секций ===
106
107 Нам потребуются не все секции, а только Title, Column Header, Detail 1, Page Footer и Background. Отключим / удалим ненужные секции на вкладке Outline. Для этого откройте контекстное меню на ненужной секции и выберите пункт Delete. И так для каждой ненужной секции:
108
109 [[image:attach:delete-band.png||height="250"]]
110
111 В результате макет страницы будет выглядеть следующим образом:
112
113 [[image:attach:editor-2.png||height="250"]]
114
115 === {{id name="Каксоздатьсвойнаборшаблонов-Параметры"/}}Параметры ===
116
117 Входными параметрам для шаблона будут:
118
119 1. {{code language="none"}}SCHEMA_NAME{{/code}} — строковой параметр для фильтрации по PostgreSQL-схеме.
120 1. {{code language="none"}}MIN_TABLE_SIZE{{/code}} — числовой параметр для фильтрации таблиц в отчёте по минимальному размеру, занимаемому на диске.
121
122 Добавим соответствующие параметры. Для этого на вкладке Outline выберите в списке Parameters и создайте параметр через контекстное меню:
123
124 [[image:attach:create-parameter.png]]
125
126 В списке появится новый параметр с именем Parameter1. На вкладке Properties для данного параметра укажите имя (SCHEMA_NAME), описание (Схема) и значение по умолчанию ("public", в кавычках). Тип данных параметра (поле Class) оставьте без изменения — java.lang.String.
127
128 [[image:attach:create-parameter-2.png]]
129
130 Сохраните шаблон: [[image:attach:save.png]]
131
132 Повторите процедуру для второго параметра. Только в данном случае установите тип данных параметра (Class) в java.lang.Integer (числовой параметр):
133
134 [[image:attach:create-parameter-3.png]]
135
136 Сохраните шаблон. В списке параметров помимо системных теперь присутствуют два созданных нами параметра:
137
138 [[image:attach:create-parameter-4.png||thumbnail="true" height="250"]]
139
140 === {{id name="Каксоздатьсвойнаборшаблонов-Источникданных"/}}Источник данных ===
141
142 Теперь добавим источник данных — мы будем работать с реляционной PostgreSQL базой данных. Это может быть любая существующая база данных. В статье используется база данных с именем ultima.
143
144 На вкладке Repository Explorer выберите Data Adapters и в контекстном меню выберите Create Data Adapter.
145
146 [[image:attach:data-source-1.png]]
147
148 В открывшемся диалоговом окне выберите Database JDBC Connection.
149
150 [[image:attach:data-source-2.png||height="250"]]
151
152 Нажимаем Next. На следующем шаге укажите название источника данных (Example Database), выберите драйвер подключения к PostgreSQL (org.postgresql.Driver), укажите корректную строку подключения к базе данных (например, jdbc:postgresql:~/~/localhost:5432/ultima для подключения к базе данных ultima на той же машине, где используется Jaspersoft Studio), укажите имя пользователя и пароль подключения к базе данных. Проверьте корректность введённых параметров — нажмите Test для проверки подключения к базе данных. После чего нажмите Finish.
153
154 [[image:attach:data-source-3.png||height="250"]]
155
156 Новый источник данных появился в списке на вкладке Repository Explorer.
157
158 === {{id name="Каксоздатьсвойнаборшаблонов-SQL-запрос"/}}SQL-запрос ===
159
160 Теперь зададим для шаблона целевой SQL-запрос. Для этого в редакторе нажмите на соответствующую кнопку:
161
162 [[image:attach:edit-query-1.png]]
163
164 В открывшемся диалоговом окне вставьте целевой SQL-запрос:
165
166 {{code language="sql"}}
167 SELECT *
168 , pg_size_pretty(total_bytes) AS total
169 , pg_size_pretty(index_bytes) AS INDEX
170 , pg_size_pretty(toast_bytes) AS toast
171 , pg_size_pretty(table_bytes) AS TABLE
172 FROM (
173 SELECT *, total_bytes-index_bytes-COALESCE(toast_bytes,0) AS table_bytes FROM (
174 SELECT c.oid,nspname AS table_schema, relname AS TABLE_NAME
175 , c.reltuples AS row_estimate
176 , pg_total_relation_size(c.oid) AS total_bytes
177 , pg_indexes_size(c.oid) AS index_bytes
178 , pg_total_relation_size(reltoastrelid) AS toast_bytes
179 FROM pg_class c
180 LEFT JOIN pg_namespace n ON n.oid = c.relnamespace
181 WHERE relkind = 'r'
182 ) a
183 ) a WHERE table_schema = $P{SCHEMA_NAME} AND a.total_bytes >= $P{MIN_TABLE_SIZE} ORDER BY table_name
184 {{/code}}
185
186 [[image:attach:edit-query-2.png||height="250"]]
187
188 Обратите внимание, что в данном случае мы заменили константы имени схемы и минимального размера на выражения {{code language="none"}}$P{SCHEMA_NAME}{{/code}} и {{code language="none"}}$P{MIN_TABLE_SIZE}{{/code}} — таким образом в SQL-запрос будут подставлены значения созданных нами ранее параметров.
189
190 Не закрывайте диалоговое окно. Теперь мы добавим поля (fields), которые хотим вывести в отчёте. Jaspersoft Studio позволяет построить список полей автоматически, выполним запрос к источнику данных.
191
192 === {{id name="Каксоздатьсвойнаборшаблонов-Поля"/}}Поля ===
193
194 Выбираем в списке вверху (где написано ~-~- No Data Adapter ~-~-) созданный нами ранее источник данных:
195
196 [[image:attach:fields-1.png]]
197
198 После чего в правом верхнем углу нажимаем кнопку Read Fields. Если источник данных указан правильно, к нему есть доступ, и SQL-запрос составлен верно, то в списке внизу окна автоматически будут созданы поля:
199
200 [[image:attach:fields-2.png]]
201
202 В отчёт мы включим не все поля, а только table_name (название таблицы), row_estimate (количество строк) и total (общий размер таблицы на диске). Остальные поля можно удалить, выбрав их в списке и нажав кнопку Delete.
203
204 Также измените тип (Class Type) поля row_estimate с {{code language="none"}}java.lang.Float{{/code}} на {{code language="none"}}java.lang.Long{{/code}}.
205
206 [[image:attach:fields-3.png]]
207
208 Нажмите ОК, чтобы применить изменения и закрыть диалоговое окно.
209
210 === {{id name="Каксоздатьсвойнаборшаблонов-Внешнийвид"/}}Внешний вид ===
211
212 Для последующего использования шаблона в программе НЕЙРОСС Отчёты необходимо определить стиль по умолчанию с поддерживаемым шрифтом. На момент написания данной статьи НЕЙРОСС Отчёты поддерживается шрифт Arial.
213
214 Для добавления стиля на вкладке Outline выберите Style и в контекстном меню выберите Create Style. На вкладке Properties для созданного стиля откройте секцию настроек Style, отметьте флаг Default Style и укажите имя шрифта Arial:
215
216 [[image:attach:style.png||height="250"]]
217
218 Сохраните шаблон.
219
220 {{info}}
221 Если использовать неподдерживаемый шрифт, то кириллический текст в отчёте, сгенерированном в программе НЕЙРОСС Отчёты по данному шаблону, не будет отображаться.
222 {{/info}}
223
224 Теперь наполним отчёт содержимым. В визуальном редакторе разместим на макете надпись с названием отчёта, названия колонок, поля (созданные на предыдущем шаге). Дополним нижний колонтитул номером страницы.
225
226 Для названия переместите (drag & drop) с панели Palette элемент Text Field в секцию Title и измените его размер до границ полей секции по ширине и высоте:
227
228 [[image:attach:visual-headline.png||height="250"]]
229
230 Для выбранного текстового поля на вкладке Properties в секции Text Field укажите для Expression выражение
231
232 {{code language="java"}}
233 "Размер таблиц в схеме " + $P{SCHEMA_NAME}
234 {{/code}}
235
236 Таким образом в заголовке будет выведен текст вида «Размер таблиц в схеме public» (то есть вместо {{code language="none"}}$P{SCHEMA_NAME}{{/code}} при генерации отчёта будет подставлено значение параметра).
237
238 Также задайте выравнивание текста по центру (по середине ширины и высоты) и установите размер шрифта в заголовке на 16:
239
240 [[image:attach:visual-headline-2.png||height="250"]]
241
242 Уменьшите высоту секции Title: выберите на вкладке Outline секцию Title, во вкладке Properties, в секции Appearance установите высоту (поле Height) в 50px.
243
244 Сохраните документ. В результате макет должен выглядеть так:
245
246 [[image:attach:visual-preview0.png]]
247
248 Добавим заголовок таблицы в отчёте. Перетащите из вкладки Palette три элемента Static Text в секцию Column Header:
249
250 1. Выберите первый элемент и на вкладке Properties:
251 11. в секции Appearance установите для него Location x=0 px, y=0 px, Size w=300px, h=30px;
252 11. в секции Borders выберите отображение всех внешних границ, Padding left=5;
253 11. в секции Static Text выровняйте текст по центру по высоте, установите жирное начертание (кнопка B), в поле Text впишите //Таблица//.
254 1. Выберите второй элемент и на вкладке Properties:
255 11. в секции Appearance установите для него Location x=300 px, y=0 px, Size w=150px, h=30px;
256 11. в секции Borders выберите отображение всех внешних границ, Padding left=5;
257 11. в секции Static Text выровняйте текст по центру по высоте, установите жирное начертание (кнопка B), в поле Text впишите //Количество строк//.
258 1. Выберите третий элемент и на вкладке Properties:
259 11. в секции Appearance установите для него Location x=450 px, y=0 px, Size w=100px, h=30px;
260 11. в секции Borders выберите отображение всех внешних границ, Padding left=5;
261 11. в секции Static Text выровняйте текст по центру по высоте, установите жирное начертание (кнопка B), в поле Text впишите //Размер на диске//.
262
263 Уменьшите высоту секции Column Header: выберите на вкладке Outline секцию Column Header, во вкладке Properties, в секции Appearance установите высоту (поле Height) в 30px.
264
265 Сохраните документ. В результате макет должен выглядеть так:
266
267 [[image:attach:visual-preview1.png]]
268
269 Добавим отображение созданных ранее полей в секцию Detail 1. Перетащите из вкладки Palette три элемента Text Field в секцию Detail 1:
270
271 1. Выберите первый элемент и на вкладке Properties:
272 11. в секции Appearance установите для него Location x=0 px, y=0 px, Size w=300px, h=30px;
273 11. в секции Borders выберите отображение всех внешних границ, Padding left=5;
274 11. в секции Text Field выровняйте текст по центру по высоте, в поле Expression впишите выражение {{code language="none"}}$F{table_name}{{/code}}
275 1. Выберите второй элемент и на вкладке Properties:
276 11. в секции Appearance установите для него Location x=300 px, y=0 px, Size w=150px, h=30px;
277 11. в секции Borders выберите отображение всех внешних границ, Padding left=5;
278 11. в секции Text Field выровняйте текст по центру по высоте, в поле Expression впишите выражение {{code language="none"}}$F{row_estimate}{{/code}}
279 1. Выберите третий элемент и на вкладке Properties:
280 11. в секции Appearance установите для него Location x=450 px, y=0 px, Size w=100px, h=30px;
281 11. в секции Borders выберите отображение всех внешних границ, Padding left=5;
282 11. в секции Text Field выровняйте текст по центру по высоте, в поле Expression впишите выражение {{code language="none"}}$F{total}{{/code}}
283
284 Уменьшите высоту секции Detail 1: выберите на вкладке Outline секцию Detail 1, во вкладке Properties, в секции Appearance установите высоту (поле Height) в 30px.
285
286 Сохраните документ. В результате макет должен выглядеть так:
287
288 [[image:attach:visual-preview2.png]]
289
290 Добавим вывод номера страницы в секцию Page Footer (нижний колонтитул). Перетащите из вкладки Palette один элемент Text Field в секцию Page Footer.
291
292 Выберите элемент и на вкладке Properties:
293
294 1. в секции Appearance установите для него Location x=450 px, y=10 px, Size w=100px, h=20px;
295 1. в секции Text Field выровняйте текст по центру по высоте, выровняйте по правому краю, в поле Expression впишите выражение: {{code language="none"}}"Страница " + $V{PAGE_NUMBER}{{/code}}
296
297 В данном случае для вывода номера страницы мы используем переменную {{code language="none"}}PAGE_NUMBER{{/code}}, которую автоматически предоставляет JasperReports Library.
298
299 Уменьшите высоту секции Page Footer: выберите на вкладке Outline секцию Page Footer, во вкладке Properties, в секции Appearance установите высоту (поле Height) в 30px.
300
301 Сохраните документ. В результате макет должен выглядеть так:
302
303 [[image:attach:visual-preview3.png]]
304
305 === {{id name="Каксоздатьсвойнаборшаблонов-Предпросмотр"/}}Предпросмотр ===
306
307 Ну что же, макет отчёта закончен. Можно посмотреть, как он будет выглядеть.
308
309 Для этого перейдите на вкладку Preview:
310
311 [[image:attach:preview.png||height="250"]]
312
313 Убедитесь, что вверху в списке выбран источник данных Example Database, после чего нажмите на зелёную кнопку предпросмотра. Спустя пару секунд окне вы увидите результат:
314
315 [[image:attach:preview-2.png||height="250"]]
316
317 === {{id name="Каксоздатьсвойнаборшаблонов-Привязкаполейввода"/}}Привязка полей ввода ===
318
319 Для того, чтобы пользователь в программе НЕЙРОСС Отчёты мог задать входные параметры, необходимо к этим параметрам в Jasper-шаблоне привязать соответствующие поля ввода данных — текстовое для ввода имени схемы, числовое для ввода ограничения на размер таблицы на диске.
320
321 Выберите на вкладке Outline параметр SCHEMA_NAME. На вкладке Properties в секции Advanced на строке Properties нажмите на кнопку «...».
322
323 [[image:attach:property-properties-1.png||height="250"]]
324
325 В открывшемся диалоговом окне с помощью кнопки Add добавьте два свойства:
326
327 1. Property Name: {{code language="none"}}ru.itrium.ultima.reports.form.field.class{{/code}} Value: {{code language="none"}}extensions.reports.generic.InputFormField{{/code}}
328 1. Property Name: {{code language="none"}}ru.itrium.ultima.reports.form.field.inputType{{/code}} Value: {{code language="none"}}text
329 {{/code}}
330
331 [[image:attach:property-properties-2.png||height="250"]]
332
333 Нажмите Finish.
334
335 Повторите процедуру для параметра MIN_TABLE_SIZE. Установите для параметра следующие свойства:
336
337 1. Property Name: {{code language="none"}}ru.itrium.ultima.reports.form.field.class{{/code}} Value: {{code language="none"}}extensions.reports.generic.InputFormField{{/code}}
338 1. Property Name: {{code language="none"}}ru.itrium.ultima.reports.form.field.inputType{{/code}} Value: {{code language="none"}}number{{/code}}
339
340 Сохраните шаблон.
341
342 === {{id name="Каксоздатьсвойнаборшаблонов-Компиляцияшаблона"/}}Компиляция шаблона ===
343
344 Итак, мы почти закончили редактирование шаблона в Jaspersoft Studio. Осталось скомпилировать шаблон.
345
346 Для этого, выберите файл шаблона на вкладке Project Explorer и в контекстном меню выберите команду Compile:
347
348 [[image:attach:compile.png||height="250"]]
349
350 В директории Jasper-проекта рядом с файлом example.jrxml появится файл example.jasper. Этот файл потребуется при создании набора шаблонов.
351
352 == {{id name="Каксоздатьсвойнаборшаблонов-Созданиенаборашаблоновотчётов"/}}Создание набора шаблонов отчётов ==
353
354 Для того, чтобы созданным шаблоном можно было пользоваться из [[Платформы НЕЙРОСС>>doc:neyross.WebHome]], его необходимо упаковать в //набор шаблонов//. Набор шаблонов — это zip-архив, содержащий один или более шаблонов и соответствующие файлы-описания.
355
356 Создайте пустую директорию {{code language="none"}}exampleModule{{/code}} на диске {{code language="none"}}C:\{{/code}}. Это корневая директория будущего набора шаблонов.
357
358 В директории {{code language="none"}}C:\exampleModule{{/code}} создайте вложенную директорию {{code language="none"}}definitions{{/code}} ({{code language="none"}}C:\exampleModule\definitions{{/code}}). В этой директории будут храниться шаблоны отчётов (в нашем случае — один шаблон).
359
360 В директории {{code language="none"}}C:\exampleModule\definitions{{/code}} создайте вложенную директорию {{code language="none"}}exampleReport{{/code}} ({{code language="none"}}C:\exampleModule\definitions\exampleReport{{/code}}). Это корневая директория шаблона.
361
362 Скопируйте из Jaspersoft Studio с вкладки Project Explorer полученный ранее файл {{code language="none"}}report.jasper{{/code}} (откройте на элементе контекстное меню и выберите команду Copy) в директорию {{code language="none"}}C:\exampleModule\definitions\exampleReport{{/code}}.
363
364 Создайте в этой же директории файл {{code language="none"}}report.conf{{/code}} со следующим содержимым:
365
366 {{code language="none"}}
367 definition.class=extensions.reports.GenericJasperReportDefinition
368 definition.htmlPaging=false
369 definition.supportedFormats=["pdf","xls"]
370
371 definition.generic.key="org.example.module:exampleReport"
372 definition.generic.title="Размер таблиц на диске"
373 definition.generic.description=""
374
375 definition.jasper.design = {
376 main: "example.jasper",
377 html: "example.jasper"
378 }
379 {{/code}}
380
381 Создайте файл-определение набора шаблонов {{code language="none"}}deployment.conf{{/code}} в директории {{code language="none"}}C:\exampleModule{{/code}} следующего содержания:
382
383 {{code language="none"}}
384 deployment.key=org.example.module
385 deployment.title="Новый набор шаблонов"
386 deployment.version=0.1.0
387 {{/code}}
388
389 {{info title="ВНИМАНИЕ"}}
390 Текстовые файлы {{code language="none"}}report.conf{{/code}} и {{code language="none"}}deployment.conf{{/code}} должны быть созданы в кодировке UTF-8. В противном случае в интерфейсе Платформы НЕЙРОСС соответствующий текст может отображаться некорректно.
391 {{/info}}
392
393 Перейдите в проводнике Windows в директорию {{code language="none"}}C:\exampleModule{{/code}}, выберите файл {{code language="none"}}deployment.conf{{/code}} и директорию {{code language="none"}}definitions{{/code}} и в контекстном меню выберите пункт Отправить → Сжатая ZIP-папка.
394
395 В директории {{code language="none"}}C:\exampleModule{{/code}} появится новый zip-файл. Измените его имя на {{code language="none"}}exampleModule-0.1.0.zip{{/code}}.
396
397 Это файл набора шаблонов отчётов. Его можно загрузить в Платформу НЕЙРОСС.
398
399 == {{id name="Каксоздатьсвойнаборшаблонов-Установканаборашаблонов"/}}Установка набора шаблонов ==
400
401 Осталось установить созданный набор шаблонов в Платформу НЕЙРОСС.
402
403 Для установки набора шаблонов откройте интерфейс Платформы, авторизуйтесь и перейдите в раздел «Отчёты → Наборы шаблонов отчётов».
404
405 Выберите файл набора шаблонов и нажмите кнопку «Загрузить». В таблице установленных наборов шаблонов должна появиться новая запись c названием «Новый набор шаблонов» (это название набора шаблонов из файла {{code language="none"}}deployment.conf{{/code}}):
406
407 [[image:attach:result-1.png]]
408
409 Вернитесь в начало и добавьте подключение к PostgreSQL базе данных в разделе «Источники данных».
410
411 Перейдите в раздел «Отчёты».
412
413 Выберите в списке источник данных (подключение в PostgreSQL базе данных). В списке доступных шаблонов должна присутствовать опция «Размер таблиц на диске» (это название шаблона из файла {{code language="none"}}report.conf{{/code}}). Выберите этот шаблон.
414
415 Программа отобразит в интерфейсе форму ввода параметров с полями для ввода имени схемы и ограничения по размеру таблицы.
416
417 Укажите требуемые параметры и сформируйте отчёт.
418
419 [[image:attach:result-3.png||height="250"]] [[image:attach:result-2.png||height="250"]]
420
421 PDF-файл: [[attach:Размер таблиц на диске (16-09-2018 15-58).pdf]]
422
423 == {{id name="Каксоздатьсвойнаборшаблонов-Материалы"/}}Материалы ==
424
425 Пример набора шаблонов, созданного в соответствии с приведённой инструкцией, доступен [[по ссылке>>attach:exampleModule-0.1.0.zip]].
426
427 Архив также содержит исходный код Jasper-шаблона в директории {{code language="none"}}definitions\exampleReport{{/code}} — это файл {{code language="none"}}example.jrxml{{/code}}.