Wiki source code of 6. Flexible Reports Guide

Version 45.2 by Iaroslav Platonov on 2026/02/06 05:05

Hide last authors
Lana 35.2 1 {{toc/}}
Lana 35.1 2
Lana 3.2 3 = 1. INTRODUCTION =
4
5 CENTO is a multifunctional software platform for data collection, processing, and display. This guide describes the flexible reporting tool in CENTO.
6
7 It is assumed that the user, having read the User's Manual, is already familiar with the basic elements of the CENTO interface.
8
9 Flexible reports in CENTO are designed to create, edit, upload/download Excel reports based on the collected data. This function allows to create reports of any form and composition.
10
11 Flexible reports can be created both within a single time unit (day, month, year) and for a period specified by the user.
12
13 The manual contains a description of the following operations:
14
15 * Creating and editing report templates in the web interface;
16 * Generating reports from templates;
17 * Viewing and editing created reports;
18 * Downloading and uploading report files in Excel is supported with version control.
19
Lana 3.3 20 = 2. QUERY LANGUAGE =
Lana 3.2 21
Lana 3.3 22 == 2.1. General information ==
23
24 The core of the flexible reports functionality is a query language that enables the extraction of archived data from the database. Excel (.xlsx) files are used to work with this data.
25
26 There are two types of files:
27
28 * A template is used to define the layout and structure of a report, including queries to archived data.
29 * A report is a ready–made document generated from a template that contains the data received as a result of filling in the cells.
30
31 The template is generated by the user in .xlsx file and then uploaded via CENTO forms. Queries are entered into the cells of the template, and the system inserts the resulting value into the cell where the query was placed.
32
33 Editing of the report template is also available through the web interface, as described in section 3.
34
35 The template can contain multiple sheets, Excel formulas, charts, conditional formatting, and a summary report. An example of the generated sheet of an .xlsx file is shown in Figure 2.1.
36
Sergei 44.1 37 [[image:1766251887280-599.png]]
38
39 Fig.2.1 – Report template
40
Lana 4.2 41 == 2.2. Timestamps ==
Lana 3.3 42
43 Timestamps can be specified in the query language. They are designed to transmit information about the date and time associated with the report.  There are four types of timestamps:
44
45 **#created** displays the date and time when the report was created.
46
47 **#related** displays the date associated with the report (in flexible reports for the period, the timestamp is ignored).
48
49 **#begin** displays the start date of the report period (only for flexible reports for the period).
50
51 **#end** displays the end date of the report period (only for flexible reports for the period).
52
53 Each timestamp should be placed in a separate cell.
54
Lana 4.2 55 == 2.3. Query format ==
Lana 3.3 56
Lana 4.2 57 The query is divided into 4 parts/groups separated by the ":" symbol.
Lana 3.3 58
Lana 4.3 59 For reports for a day, month, and year, the query is built as described in Figure 2.2.
60
Lana 35.2 61 [[image:Screenshot 2025-12-10 at 19.43.28.png||height="163" width="519"]]
Lana 4.2 62
Lana 4.3 63 Fig.2.2 – Query example
64
65 For example, the query **y-m-d:h10-m00:el-dev-30-ea_imp-3m:sum** consists of the following parts. The last part, "sum," in the example above, is optional.
66
67 1) **y-m-d:** means that the year, month, and day values from the date** **associated with the report will be inserted into the query (specified when creating the template via the web-interface). Only part of the date associated with the report can be used. For example, **y2024-m-d **means that the month and day should be substituted, while the year (2024) remains fixed as specified in the request. **y2024-m2-d **means that only the day should be substituted with the year set to 2024 and the month set to 2 (February).
68
Lana 35.2 69 It is also possible to omit **d (y-m: )**, or omit **m** and **d (y: )**, this means that we are interested in the entire interval (if only the year is specified, then the entire annual interval, if the year and month are specified, then the monthly interval).
Lana 4.3 70
Lana 35.2 71 The **d** can also be omitted (**y-m:**), or both **m** and **d** can be omitted (**y: **). This means the entire interval is considered, if only the year is specified, the entire annual interval is used, and if the year and month are specified, the monthly interval is used.
Lana 4.3 72
73 **h10-m00** means that the values for the specified hour and minute will be inserted into the query. By omitting seconds, CENTO understands that the entire minute interval is of interest. This means the sample will be from 10:00 to 10:01 (excluding data for 10:01:00, effectively from 10:00:00 to 10:00:59). To make a sample for an hour, write **h10** omitting minutes and seconds. The time does not need to be specified at all, for example, if the interest is in the data for the day. However, to ensure the query is correct, write “*” in place of the time, like this: ~*~*y-m-d::el-dev-30-ea_imp-3m:sum~*~*.
74
75 The first two parts of the query can be replaced with another, more convenient formula with **#date**, which will be described below.
76
Lana 35.1 77 2) The entry** el-dev-30-ea_imp-3m **has the following parts:
Lana 4.3 78
79 * **el** (electricity) is electrical data. Data on other measurements (heat, pressure, emissions, etc.) are requested with the entry **en** (energy);
80 * **dev-30** (device) is accessing a device with an id 30 for which data needs to be downloaded;
81
82 Instead of **dev**, **bg** (billing group) can be used to request data for a billing group, for example, **y-m-d:h10:el-bg-22-30m:sum**
83
84 * **ea_imp** is the channel of the device from which the information is taken. The following channels can be used for electricity:
85
86 * ea_imp - energy A+
87 * ea_exp - energy A-
88 * er_imp - energy R+
89 * er_exp - energy R-
90 * pa_imp - power A+
91 * pa_exp - power of A-
92 * pr_imp - power R+
93 * pr_exp - power R-
94 * ra_imp - readings of A+
95 * ra_exp - readings of A-
96 * rr_imp - readings of R+
97 * rr_exp - readings of R-
98
Lana 4.4 99 The specified channels can be renamed to their decryptions in the config.toml configuration file of the sed_channels service.
Lana 4.3 100
Lana 4.4 101 When referring to **energy** measurements instead of **electrical**, the channels are encoded with numbers. For example, it would be recorded as **en-dev-30-15-3m**, which represents 3-minute data for the channel with id = 15 in the device with id = 30.
Lana 4.3 102
103 Possible interval options include: **1m** for minute data, **3m** for 3-minute data, **15m** for 15-minute data, **20m** for 20-minute data, **30m** for 30-minute data, **1h** for hourly data, **1d** for daily data, **1m** for monthly data, as well as other intervals that the device may return.
104
105 **sum** is an aggregating function that, in this case, calculates the sum. In addition to **sum**, other functions may include **min** for minimum, **max** for maximum, and **mean** for average.
106
107 The aggregating function may be followed by an optional parameter, the coefficient, written as a k number, where the number is the coefficient value, for example, k0.1 (i.e. **sum-k0.1**): the result of query execution will be multiplied by it.
108
109 The data request form for flexible period reports is similar to reports for a day, month, or year. However, in the date block at the beginning of the query, instead of a specific date (**y-m-d**), the start and end of the report period are used as **#begin-#end**. For example, the query **#begin-#end:h10-m00:el-dev-30-ea_imp-3m:sum** means that the total active energy value (reception) is requested for the user-defined period from 10:00 a.m. at the beginning of the period (**#begin**) to 10:00 a.m. at the end of the period (**#end**) from a device with ID 30.
110
Lana 4.4 111 Queries for flexible reports for a period can be generated, indicating only the beginning of the period (**#begin**) or only the end (**#end**). In this case, CENTO will fill the cell with the value only for the specified time, ignoring the formula at the end of the query (if there is one).
Lana 4.3 112
113 Flexible period reports also allow time offsets in queries, but **only by day**. For example, **#end+2d** or **#begin-1d**.
114
Lana 4.4 115 The formulas described above can be replaced with formulas with **#date**. Using formulas with **#date** to expand the query toolkit. The comparison of queries is performed in Table 2.3. Additional queries are described in lines 13 - 16 in the specified table.
Lana 4.3 116
Lana 4.4 117 Table 2.3. Comparative table of y-m-d and #date formulas
118
Lana 35.2 119 |(% style="width:52px" %)**№**|(% style="width:332px" %)**Format with y-m-d**|(% style="width:336px" %)**Format with #date**|(% style="width:461px" %)**Description**|(% style="width:160px" %)**Type of report in which the formula is applied**
120 |(% style="width:52px" %)1|(% style="width:332px" %)y-m-d3:*:el-dev-201-ea_imp-30m:sum|(% style="width:336px" %)#date-d3:d:dev-201-ea_imp:sum|(% style="width:461px" %)Sum of all half-hours on the 3rd day of the month|(% style="width:160px" %)monthly, daily
121 |(% style="width:52px" %)2|(% style="width:332px" %)y-m-d1:h00-m30:el-dev-201-ea_imp-30m:sum|(% style="width:336px" %)#date-d1-h00-m30:*:dev-201-ea_imp|(% style="width:461px" %)Value of the half-hour is 00-30 on the first day|(% style="width:160px" %)monthly, daily
122 |(% style="width:52px" %)3|(% style="width:332px" %)y-m-d+1:h00-m30:el-dev-201-ea_imp-30m|(% style="width:336px" %)#date+1-h00-m30:*:dev-201-ea_imp|(% style="width:461px" %)Value of the half-hour is 00-30 of the day following the selected one|(% style="width:160px" %)daytime
123 |(% style="width:52px" %)4|(% style="width:332px" %)y-m-d+10:h00-m30:el-bg-42-30m|(% style="width:336px" %)#date+10-h00-m30:*:bg-42|(% style="width:461px" %)Value of the half-hour is 00-30 per day +10; checking the operation of the electro-billing group|(% style="width:160px" %)daytime
124 |(% style="width:52px" %)5|(% style="width:332px" %)y-m-d-1:h00-m30:el-dev-201-ea_imp-30m|(% style="width:336px" %)#date-1-h00-m30:*:dev-201-ea_imp|(% style="width:461px" %)Value of the 00-30 half-hour per day is -1|(% style="width:160px" %)daytime
125 |(% style="width:52px" %)6|(% style="width:332px" %)y-m-d1-1:h01-m00:el-dev-201-ea_imp-30m|(% style="width:336px" %)#date-d1-1-h01-m00:*:dev-201-ea_imp|(% style="width:461px" %)Value of the 01-00 half-hour for the last day of the previous month|(% style="width:160px" %)monthly, daily
126 |(% style="width:52px" %)7|(% style="width:332px" %)y-m-d1-2:h00-m30:el-dev-201-ea_imp-30m|(% style="width:336px" %)#date-d1-2-h00-m30:*:dev-201-ea_imp|(% style="width:461px" %)Value of the half-hour is 00-30 for the penultimate day of the previous month|(% style="width:160px" %)monthly, daily
127 |(% style="width:52px" %)8|(% style="width:332px" %)y-m-d:*:el-dev-201-ea_imp-30m:sum|(% style="width:336px" %)#date:d:dev-201-ea_imp:sum|(% style="width:461px" %)Sum of all half-hours for the selected day|(% style="width:160px" %)daytime
128 |(% style="width:52px" %)9|(% style="width:332px" %)y-m:*:el-dev-201-ea_imp-30m:sum|(% style="width:336px" %)#date:m:dev-201-ea_imp:sum|(% style="width:461px" %)Sum of all half-hours for the selected month|(% style="width:160px" %)annual, monthly, daily
129 |(% style="width:52px" %)10|(% style="width:332px" %)y:*:el-dev-201-ea_imp-30m:max|(% style="width:336px" %)#date:y:dev-201-ea_imp:max|(% style="width:461px" %)The maximum half-hour for a selected year|(% style="width:160px" %)annual, monthly, daily
130 |(% style="width:52px" %)11|(% style="width:332px" %)y-m-1m:*:el-dev-201-ea_imp-30m:min|(% style="width:336px" %)#date-1m:m:dev-201-ea_imp:min|(% style="width:461px" %)Minimum half-hour for the previous month|(% style="width:160px" %)annual, monthly
131 |(% style="width:52px" %)12|(% style="width:332px" %)y-m1:*:en-dev-220-1021-1h:mean|(% style="width:336px" %)#date-m2:m:ch-1021-1h:mean|(% style="width:461px" %)Output the average of all hours from channel 1021 at device 220 for February of the year selected by the user|(% style="width:160px" %)annual, monthly, daily
132 |(% style="width:52px" %) |(% style="width:332px" %) |(% style="width:336px" %)**New functions available only with #date**|(% style="width:461px" %) |(% style="width:160px" %)
133 |(% style="width:52px" %)13|(% style="width:332px" %) |(% style="width:336px" %)#date-h08-#date-h17:*:dev-201-ea_imp:sum|(% style="width:461px" %)Sum of energy as of the report date from 8 a.m. to 5 p.m.|(% style="width:160px" %)daytime
134 |(% style="width:52px" %)14|(% style="width:332px" %) |(% style="width:336px" %)#date+1-h08-#date+1-h17:*:dev-201-ea_imp:sum|(% style="width:461px" %)Sum of energy for the day following the reporting day from 8 a.m. to 5 p.m.|(% style="width:160px" %)daytime
135 |(% style="width:52px" %)15|(% style="width:332px" %) |(% style="width:336px" %)#date-d1-h08-#date+1-h17:*:dev-201-ea_imp:sum|(% style="width:461px" %)Sum of energy from the first day of the month at 8 a.m. to the day following the reporting day at 5 p.m.|(% style="width:160px" %)daytime
136 |(% style="width:52px" %)16|(% style="width:332px" %) |(% style="width:336px" %)#date-d1-1-h08-#date+1-h17:*:dev-201-ea_imp:sum|(% style="width:461px" %)Sum of energy from the last day of the previous month, 8 a. m. to the day following the reporting one, up to 5 p.m.|(% style="width:160px" %)daytime
Lana 4.4 137
Lana 4.5 138 == 2.4. Query examples ==
139
140 **y2019-m-d:h10:el-dev-30-ea_imp-3m:sum-k0.001**
141
142 The is data for 2019, the month and day values from the date associated with the report, the time from 10:00 a.m. to 11:00 a.m., data from the electricity table (el) for three minutes (3m), data on the device with id = 30, for the ea_imp channel, apply the sum aggregating function with the coefficient 0.001 (result is in megawatts).
143
144 **y-m1:*:en-dev-220-1021-1d:sum**
145
146 The data is for the 1st month of the year from the date associated with the report. The data is taken from the energy resources table for daily records for device 220 and channel 1021. The day is skipped here, so there will be a selection based on the range of all days from the 1st to the 2nd month. If, for example, the year is 2019, then the range is: from 2019-01-01 to 2019-02-01 excluding the 1st day of the 2nd month.
147
148 **y-m+1-d1:h00-m00:el-dev-1202-ra_imp-30m**
149
150 The data is for 00:00 on the 1st of the month following the date associated with the report. This request outputs electricity readings for a device with id = 1202. You can also write **m+2**, **m+3, y+5**, etc.
151
152 **y-m-d1-1:h10-m00:el-dev-1202-ra_imp-30m**
153
154 The data is for10:00 a.m. on the last day of the previous month of the device with Id 1202, the ra_imp channel from the database of 30 minutes.
155
156 **#begin-#end:h00-m00:el-dev-46-ea_imp-3m:sum**
157
158 The data is for the period from 00:00 of the date **#begin **to 00:00 of the date **#end**. The data is downloaded using the active received energy from the device with ID 46. The value is given as the sum of the three-minute values of the specified interval.
159
160 **#begin:h06-m30:el-dev-58-ea_exp-30m**
161
162 The data of the half-hour starting at 6:30 a.m., the date indicated at the beginning of the requested period. The data is on the output of active energy from a device with ID 58.
163
164 **#end+2d:h02-m00:el-bg-22-30m**
165
166 The data of the half-hour starting at 2:00 a.m., the date running 2 days after the end of the period requested by the user. The data is requested for the billing group with ID 22 according to the readings of the received active energy.
167
168 == 2.5. Output of information on devices to the report. Device codes and tags. ==
169
Lana 5.2 170 The request **#dev.201.IP** displays the IP address of the device with id = 201201 from the configuration in the report. Instead of the device ID, the device code can be specified.
171
172 **#dev.201.Name** displays the device name with id = 201201 from the configuration in the report. Instead of the device ID, the device code can be specified.
173
174 **#dev.201.VendorNumber** displays the serial number of the device with id = 201 from the configuration in the report. Instead of the device ID, the device code can be specified.
175
176 The serial number of the device can also be taken from the tag if the device can output its number according to any protocol. For example, the SATEC device can be queried via Modbus, and the serial number can be retrieved from the **ti11001** tag. To display this tag in the report, write the formula **y-m-d:*:ti11001 **where **ti11001** can be replaced with the tag code. In the same way, add any tags from the configuration to flexible reports.
177
178 In query formulas, device IDs can be replaced with device codes. Unlike the id, the code can contain Latin letters, which allows it to encode a lot of useful information. For example, the code P22S1Y8 may mean that the device collects data on PS22 in the first bus section in cell 8. To write the code in the request, add the channel to it, for example, Energy A+, which is encrypted as **ea_imp** by default.
179
180 Thus, the formula **y-m-d1:*:el-dev-201-ea_imp-30m:sum** can be replaced by the formula **y-m-d1:*:E123457ea_imp:sum**. A similar logic applies to all the formulas described above.
181
Lana 7.2 182 = 3. MANAGING REPORT TEMPLATES =
Lana 5.2 183
184 Flexible reports are managed in the Flexible Reports window accessible using the **Reports menu: Reports -> Flexible Reports**.
185
186 A template generated in accordance with the query language specified in Section 1 is uploaded to the Flexible Reports page (see Figure 3.1) by clicking the (Create Template) button [[image:Screenshot 2025-12-10 at 19.48.07.png||height="27" width="29"]] in the upper-right corner of the template list.
187
Lana 35.2 188 [[image:Screenshot 2025-12-10 at 19.48.44.png||height="402" width="593"]]
Lana 7.2 189
190 Figure 3.1 – Flexible Report Template Management window
191
192 After clicking the button [[image:Screenshot 2025-12-10 at 19.48.07.png||height="27" width="29"]] (see Figure 3.1), a download dialog box will open. Enter the template name, type, object, and category in this dialog box. Then, select the template file (Excel file), configure auto generation if needed, select a network resource and/or email address for saving automatically generated reports (see Figure 3.2), and click the button [[image:Screenshot 2025-12-10 at 19.49.45.png||height="23" width="46"]] to complete.
Lana 18.2 193
Lana 36.1 194 [[image:Screenshot 2025-12-10 at 19.50.16.png||height="448" width="493"]]
Lana 18.2 195
196 Fig.3.2 – Template upload form
197
198 The template** **type can be annual, monthly, daily, as well as annual for the period, monthly for the period, and daily for the period. It is selected depending on the requirements for the report. **The template type** affects the type of calendar when generating reports, the possibility of autogeneration (only annual, monthly, and daily reports are automatically generated), as well as the applicability of timestamps and query types in section 2 of this manual.
199
200 The **Object** field is used to select an object of the information model. Linking a report to an object differentiates access to reports and filter templates in the table.
201
202 The **Category** field is used to generate reports based on the "Balances" module.
203
204 All the templates can be downloaded to the PC using the "Download" button [[image:Screenshot 2025-12-10 at 19.50.54.png||height="23" width="23"]] and uploaded using the ”Select a file” button [[image:Screenshot 2025-12-10 at 19.51.40.png||height="25" width="229"]] in the template settings window, which opens when clicking on the "Template setup" button [[image:Screenshot 2025-12-10 at 19.52.09.png||height="25" width="26"]].
205
206 A template can be deleted using the "Delete selected" button [[image:Screenshot 2025-12-10 at 19.52.40.png||height="27" width="27"]] after selecting the checkboxes next to the templates in the first column of the template list (see Figure 3.1).
207
208 The **“Interactive mode”** button [[image:Screenshot 2025-12-10 at 19.53.19.png||height="28" width="27"]] enables the report mode in the web interface. When interactive mode is enabled, the report opens in the web version of Excel spreadsheets (Fig. 3.3).
209
Lana 36.1 210 [[image:Screenshot 2025-12-10 at 19.53.57.png||height="527" width="1094"]]
Lana 18.2 211
212 Fig.3.3 – Interactive mode
213
214 The interactive mode enables working with the report directly through the web interface without downloading or uploading an Excel file. In this mode, the report and all calculation results can be viewed, the display start time can be selected, the report can be downloaded as an .xlsx file, and the report can be edited using the button [[image:Screenshot 2025-12-10 at 19.54.33.png||height="21" width="68"]].
215
216 In editing mode (see Fig. 3.4), both Excel formulas and CENTO queries within the report can be viewed and edited as described in Section 2 of this manual.
217
218 [[image:Screenshot 2025-12-10 at 19.55.19.png]]
219
220 Fig.3.4 – Editing mode
221
222 In the editing mode interface, report sheets are shown in the lower-left corner, allowing switching between them (however, new sheets can only be added via Excel when uploading a template). The lower-right corner contains buttons and a zoom slider.
223
224
225 To edit the contents of a cell, double-click on the cell with the left mouse button.
226
227 After editing, the report should be saved [[image:Screenshot 2025-12-10 at 19.55.47.png||height="26" width="77"]] and switched back to view mode [[image:Screenshot 2025-12-10 at 19.56.08.png||height="27" width="120"]] to verify the results. All changes made are applied instantly, allowing immediate result checking.
228
Lana 19.2 229 = 4. MANAGING ACCESS RIGHTS TO REPORTS =
230
231 Access rights management for flexible reports is based on the information model. The configuration of the information model is detailed in the Information Model Configuration Manual.
232
233 Depending on the task, either a separate structure can be created for flexible reports, or an existing one can be used.
234
235 To link a report to an object, open the template editing form (see Fig. 3.2) by clicking the template settings button [[image:Screenshot 2025-12-10 at 20.11.01.png||height="33" width="33"]]next to a template, and select an information model object in the Object field.
236
237 Next, find the selected object in the User access rights interface (Settings – System – User Access Rights) and use the check marks in the Flexible Reports line to select which roles will have access to the flexible report bound to the object (Fig. 4.1).
Lana 21.2 238
Lana 36.1 239 [[image:Screenshot 2025-12-10 at 20.11.53.png||height="437" width="1097"]]
Lana 21.2 240
241 Figure 4.1 – Rights to flexible reports in the user settings
242
243 Users without roles that have access to flexible reports bound to an object will not see those reports in the list of available templates.
244
245 = 5. REPORT MANAGEMENT =
246
247 Reports are generated based on the uploaded templates using the "Create report" button [[image:Screenshot 2025-12-10 at 20.12.49.png||height="26" width="26"]].
248
249 Report generation can be performed in the following ways:
250
Lana 22.2 251 **~1. manually** – by clicking the "Create report" button [[image:Screenshot 2025-12-10 at 20.12.49.png||height="26" width="26"]] in the field of the template in the "Template list". In the pop-up window (see Figure 5.1), enter the report name, select **In a day** or **Per interval** for which the report(s) will be generated, and then click the button [[image:Screenshot 2025-12-10 at 20.13.37.png||height="26" width="62"]] to proceed.
252
Lana 36.1 253 [[image:Screenshot 2025-12-10 at 20.14.18.png||height="207" width="532"]]
Lana 25.2 254
255 Fig.5.1 – Create report form
256
257 **Important:** When selecting Per interval while creating a report for a day, month, or year, the system will generate multiple reports - one for each day, month, or year within the user-defined interval based on the selected template.
258
259 In reports for a period (daily, monthly, or annual), the period should always be specified when creating the report.
260
Lana 25.3 261 **2. automatically** – configuring autogeneration in the settings [[image:Screenshot 2025-12-10 at 20.14.58.png||height="32" width="32"]] of the template in the template list. In the pop-up window (see Fig. 5.2), define the report generation schedule by specifying a Cron expression, or use the UI-based Cron editor (opened by clicking the button [[image:Screenshot 2025-12-10 at 20.15.23.png||height="28" width="29"]]) to configure the schedule interactively, then confirm the settings (see Fig. 5.3). When the "Past period" switch is set, the previous day/month/year will be used when generating the report. When the "Current period" switch is set, the current day/month/year will be used when generating the report.
262
263 When generating reports automatically, reports can be saved to a network resource and/or sent by e-mail. To enable these options, select the corresponding items (see Fig. 5.2).
264
265 **Important:**
266
267 * When saving to a network resource, the CENTO server should have network access to the specified location.
268 * To send reports by e-mail, a mail server should be configured in the corresponding CENTO module. Mail server configuration is described in the Setup Manual: Mail Servers.
269
Lana 27.2 270 Then, click the button [[image:Screenshot 2025-12-10 at 20.17.04.png||height="27" width="55"]] in the Template setup window.
271
Lana 36.1 272 [[image:Screenshot 2025-12-10 at 20.17.46.png||height="555" width="496"]]
Lana 27.2 273
274 Fig.5.2 – Template setup window
275
Lana 38.2 276 [[image:5.3..png||height="493" width="492"]]
277
278 Fig.5.3 – Autogeneration of cron rules
279
Lana 30.2 280 To display reports generated using the selected templates on the right side of the screen (Report list), select the templates in the "Template list" by selecting the appropriate checkboxes (see Fig.5.4). Templates can be filtered by name and type.
281
Lana 38.2 282 [[image:Screenshot 2025-12-16 183447.png]]
283
Lana 39.2 284 Fig.5.4 – Flexible Reports Manager window
285
Lana 30.2 286 The created report can be downloaded [[image:Screenshot 2025-12-10 at 20.19.04.png||height="31" width="29"]] in Excel format or deleted [[image:Screenshot 2025-12-10 at 20.19.29.png||height="32" width="31"]] by marking the unwanted report with a checkmark.
287
288 The report created in Excel format is shown in Fig. 5.5. All formulas, charts, and cell formatting specified in the template are preserved in the report file.
289
Lana 39.2 290 [[image:Screenshot 2025-12-16 183927.png]]
291
292 Fig.5.5 – Report generated in Excel format
293
Lana 30.2 294 The report manager has tools for maintaining report versioning. When clicking the "Copy" button [[image:Screenshot 2025-12-10 at 20.20.56.png||height="28" width="28"]], the report is copied, and the suffix "- v1", "- v2", etc. is added to its name.
295
Lana 42.1 296 The created version is included in the nested list under the root report (see Fig.5.6). The new version can be renamed, copied, downloaded, uploaded, or deleted regardless of the original report.[[image:Screenshot 2025-12-16 184124.png]]
Lana 31.2 297
Lana 42.1 298 Fig.5.6 – Nested versions of the generated report
Lana 39.2 299
Lana 34.1 300 Report versions can also be created by uploading a previously downloaded and edited Excel file. To do this, click the "Download [[image:Screenshot 2025-12-10 at 20.43.44.png||height="24" width="24"]]" button on the report version, select the file of the downloaded version in the pop-up window, and click the button [[image:Screenshot 2025-12-10 at 20.44.40.png||height="26" width="47"]]. Reports created by the user can be hidden and published to other users using the "Hide/Publish" button [[image:Screenshot 2025-12-10 at 20.45.11.png||height="34" width="68"]]. Hidden reports are visible only to the user who generated them.