Changes for page 6. Flexible Reports Guide
Last modified by Iaroslav Platonov on 2026/06/08 15:20
From version 34.1
edited by Lana
on 2025/12/10 23:45
on 2025/12/10 23:45
Change comment:
There is no comment for this version
To version 46.1
edited by Iaroslav Platonov
on 2026/06/08 15:20
on 2026/06/08 15:20
Change comment:
There is no comment for this version
Summary
-
Page properties (3 modified, 0 added, 0 removed)
-
Attachments (0 modified, 5 added, 0 removed)
Details
- Page properties
-
- Parent
-
... ... @@ -1,1 +1,1 @@ 1 -CENTO onboarding.WebHome1 +CENTO Manuals.WebHome - Author
-
... ... @@ -1,1 +1,1 @@ 1 -XWiki. Lana1 +XWiki.Iaroslav - Content
-
... ... @@ -1,282 +1,543 @@ 1 -= CONTENT = 1 +{{html clean="false"}} 2 +<style> 3 +/* Disable XWiki heading counters */ 4 +.doc-content h1::before,.doc-content h2::before, 5 +.doc-content h3::before,.doc-content h4::before, 6 +.doc-content h5::before,.doc-content h6::before { content:none !important; display:none !important; } 7 +.doc-content { counter-reset:none !important; } 2 2 3 -= 1. INTRODUCTION = 9 +/* Reading progress bar */ 10 +#rn-prog { position:fixed;top:0;left:0;height:3px;width:0;background:#005AB4;z-index:9999;pointer-events:none; } 4 4 5 -CENTO is a multifunctional software platform for data collection, processing, and display. This guide describes the flexible reporting tool in CENTO. 12 +/* Page layout */ 13 +.doc-wrap { position:relative; } 14 +.doc-content { margin-right:224px; border-left:1px solid #E8E8E8; border-right:1px solid #E8E8E8; padding:0 32px; } 6 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. 16 +/* Right TOC */ 17 +.doc-toc { position:absolute;top:0;right:0;width:200px;font-size:12.5px;line-height:1.55;padding:20px 0 20px 16px; } 18 +.doc-toc.is-fixed { position:fixed;width:200px;overflow-y:auto;z-index:10; } 19 +.toc-header { display:flex;justify-content:space-between;align-items:center;margin-bottom:10px; } 20 +.toc-header strong { font-size:13px;font-weight:700;color:#222; } 21 +.toc-toggle { background:none;border:none;cursor:pointer;color:#555;font-size:14px;padding:0 2px;line-height:1; } 22 +.toc-toggle:hover { color:#222; } 23 +.doc-toc ul { list-style:none;margin:0;padding:0; } 24 +.doc-toc li { margin:0; } 25 +.doc-toc a { display:block;padding:3px 0;color:#555;text-decoration:none;border-left:2px solid transparent;transition:color .12s; } 26 +.doc-toc a:hover { color:#222;text-decoration:underline; } 27 +.doc-toc a.toc-on { color:#222;font-weight:700;border-left:2px solid #005AB4;padding-left:5px; } 28 +.tl1 > a { font-weight:600;color:#222; } 29 +.tl2 > a { padding-left:14px; } 30 +.tl3 > a { padding-left:26px;font-size:12px; } 8 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. 32 +/* Typography */ 33 +.doc-content h2 { font-size:1.15em;font-weight:700;color:#222;margin:36px 0 10px 0;display:flex;align-items:baseline;gap:7px;scroll-margin-top:16px; } 34 +.doc-content h3 { font-size:1em;font-weight:700;color:#222;margin:22px 0 8px 0;display:flex;align-items:baseline;gap:6px;scroll-margin-top:16px; } 35 +.doc-content p { font-size:.93em;color:#333;line-height:1.75;margin:0 0 12px 0; } 36 +.doc-content ul, .doc-content ol { font-size:.93em;color:#333;line-height:1.75;margin:0 0 12px 0;padding-left:24px; } 37 +.doc-content li { margin-bottom:4px; } 38 +.doc-content strong { color:#222; } 39 +.doc-content code { background:#f5f5f5;border:1px solid #E8E8E8;border-radius:3px;padding:1px 5px;font-family:Menlo,Monaco,Consolas,"Courier New",monospace;font-size:.82em;color:#222;line-height:1; } 40 +.doc-content pre { background:#f5f5f5;border:1px solid #E8E8E8;border-radius:4px;padding:12px 16px;font-family:Menlo,Monaco,Consolas,"Courier New",monospace;font-size:.82em;color:#222;overflow-x:auto;margin:8px 0 16px 0;line-height:1.7; } 10 10 11 -Flexible reports can be created both within a single time unit (day, month, year) and for a period specified by the user. 42 +/* Anchor icon */ 43 +.anchor-icon { color:#E8E8E8;text-decoration:none;opacity:0;transition:opacity .15s;vertical-align:middle;margin-left:4px;display:inline-flex;align-items:center; } 44 +h2:hover .anchor-icon,h3:hover .anchor-icon { opacity:1; } 45 +.anchor-icon:hover { color:#005AB4; } 12 12 13 -The manual contains a description of the following operations: 47 +/* Callouts */ 48 +.note { border-radius:6px;padding:12px 16px;margin:14px 0;border:1px solid transparent; } 49 +.note-info { background:#e1f1f9 !important;border-color:#b3d4ee !important;border-left:4px solid #005AB4 !important; } 50 +.note-warning { background:#fff4ec !important;border-color:#f5cba7 !important;border-left:4px solid #DD5600 !important; } 51 +.note-tip { background:#e5f3df !important;border-color:#b7dba5 !important;border-left:4px solid #73A839 !important; } 52 +.note-hd { font-weight:700;font-size:.85em;display:flex;align-items:center;gap:5px;margin-bottom:5px; } 53 +.note-info .note-hd { color:#003d80 !important; } 54 +.note-warning .note-hd { color:#a03d00 !important; } 55 +.note-tip .note-hd { color:#3d6b1a !important; } 56 +.note-body { font-size:.875em;color:#222 !important;line-height:1.65; } 14 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. 58 +/* Section index */ 59 +.section-index { list-style:disc;padding-left:20px;margin:0 0 20px 0; } 60 +.section-index li { margin-bottom:12px; } 61 +.section-index li a { color:#005AB4;font-weight:600;font-size:.93em;text-decoration:underline; } 62 +.section-index li p { margin:3px 0 0 0;font-size:.875em;color:#333;line-height:1.6; } 19 19 20 -= 2. QUERY LANGUAGE = 64 +/* Parent topic */ 65 +.parent-topic { font-size:.82em;color:#555;margin:18px 0 24px 0;border-top:1px solid #E8E8E8;padding-top:10px; } 66 +.parent-topic a { color:#005AB4; } 21 21 22 -== 2.1. General information == 68 +/* Inline icons */ 69 +img.inline-icon { display:inline-block;height:28px;width:auto;vertical-align:middle;border:1px solid #E8E8E8;border-radius:4px;margin:0 3px;box-shadow:0 1px 2px rgba(0,0,0,.08); } 23 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. 71 +/* Figures */ 72 +.fig { margin:12px auto 24px auto;width:fit-content;max-width:100%; } 73 +.fig img { border-radius:4px 4px 0 0;border:1px solid #E8E8E8;display:block;cursor:zoom-in;max-width:100%;box-shadow:0 1px 4px rgba(0,0,0,.10);transition:box-shadow .15s; } 74 +.fig img:hover { box-shadow:0 3px 12px rgba(0,90,180,.18); } 75 +.fig-cap { font-size:.78em;color:#555;margin:0;padding:5px 8px;background:#f5f5f5;border:1px solid #E8E8E8;border-top:none;border-radius:0 0 4px 4px;display:block;width:100%;box-sizing:border-box; } 25 25 26 - There are two types of files: 77 +/* Lightbox */ 78 +#rn-lb { display:none;position:fixed;inset:0;z-index:9998;background:rgba(0,0,0,.8);cursor:zoom-out;align-items:center;justify-content:center; } 79 +#rn-lb.open { display:flex; } 80 +#rn-lb-wrap { position:relative;cursor:default;max-width:92vw;max-height:90vh; } 81 +#rn-lb-wrap img { max-width:100%;max-height:90vh;border-radius:5px;display:block; } 82 +#rn-lb-x { position:absolute;top:-13px;right:-13px;background:#005AB4;color:#fff;width:26px;height:26px;border-radius:50%;border:none;cursor:pointer;font-size:15px;display:flex;align-items:center;justify-content:center; } 83 +#rn-lb-cap { position:fixed;bottom:18px;left:50%;transform:translateX(-50%);color:#ddd;font-size:.78em;background:rgba(0,0,0,.55);padding:3px 12px;border-radius:14px;pointer-events:none; } 27 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. 85 +/* Back to top */ 86 +#rn-top { position:fixed;bottom:60px;right:60px;z-index:9997;width:36px;height:36px;border-radius:50%;background:#005AB4;color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transform:translateY(8px);transition:opacity .22s,transform .22s;pointer-events:none;box-shadow:0 2px 8px rgba(0,90,180,.3); } 87 +#rn-top.on { opacity:1;transform:translateY(0);pointer-events:auto; } 88 +#rn-top:hover { background:#0066cc; } 30 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. 90 +/* Toast */ 91 +.rn-toast { position:fixed;bottom:66px;right:24px;z-index:9999;background:#222;color:#fff;font-size:.74em;padding:4px 11px;border-radius:4px;pointer-events:none;opacity:0;transition:opacity .18s; } 92 +.rn-toast.on { opacity:1; } 32 32 33 -Editing of the report template is also available through the web interface, as described in section 3. 94 +/* Tables */ 95 +.rn-table { width:100%;border-collapse:collapse;margin:8px 0 18px 0;font-size:.82em; } 96 +.rn-table th { background:#f5f5f5;text-align:left;padding:7px 10px;font-size:.78em;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#555;border-bottom:2px solid #E8E8E8; } 97 +.rn-table td { padding:7px 10px;border-bottom:1px solid #E8E8E8;color:#333;vertical-align:top;line-height:1.55; } 98 +.rn-table tr:last-child td { border-bottom:none; } 99 +.rn-table tr:hover td { background:#f5f5f5; } 100 +.rn-table code { background:#f0f0f0;border:1px solid #E0E0E0;border-radius:3px;padding:1px 4px;font-size:.88em; } 101 +.tbl-wrap { overflow-x:auto;margin:8px 0 18px 0; } 102 +</style> 34 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. 104 +<div id="rn-prog"></div> 105 +<div id="rn-lb"> 106 + <div id="rn-lb-wrap"> 107 + <button id="rn-lb-x" onclick="closeLightbox()">✕</button> 108 + <img id="rn-lb-img" src="" alt=""/> 109 + </div> 110 + <div id="rn-lb-cap"></div> 111 +</div> 112 +<button id="rn-top" onclick="window.scrollTo({top:0,behavior:'smooth'})" title="Back to top"> 113 + <svg width="14" height="14" viewBox="0 0 16 16" fill="currentColor"><path d="M8 4l5 5H3z"/></svg> 114 +</button> 115 +<div class="rn-toast" id="rn-toast">Link copied ✓</div> 36 36 37 -== 2.2. Timestamps == 117 +<div class="doc-wrap"> 118 +<div class="doc-content"> 119 + <!-- NOTE: Do NOT add <h1> or rn-meta here — XWiki renders title and date natively --> 38 38 39 -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: 121 + <ul class="section-index"> 122 + <li><a href="#s-intro">1. Introduction</a> 123 + <p>Overview of the flexible reporting tool in CENTO — purpose, capabilities, and scope.</p></li> 124 + <li><a href="#s-query">2. Query Language</a> 125 + <p>Syntax for extracting archived data: timestamps, query format, aggregation functions, device codes, and tags.</p></li> 126 + <li><a href="#s-templates">3. Managing Report Templates</a> 127 + <p>Uploading, configuring, editing, and deleting report templates in the Flexible Reports window.</p></li> 128 + <li><a href="#s-access">4. Managing Access Rights to Reports</a> 129 + <p>Linking reports to information model objects and configuring role-based access rights.</p></li> 130 + <li><a href="#s-reports">5. Report Management</a> 131 + <p>Generating reports manually and automatically, versioning, downloading, and publishing reports.</p></li> 132 + </ul> 40 40 41 -**#created** displays the date and time when the report was created. 42 42 43 - **#related** displaysthedateassociatedwiththereport(inflexiblereports fortheperiod,thetimestampisignored).135 + <h2 id="s-intro">1. Introduction<a class="anchor-icon" href="javascript:void(0)" onclick="copyAnchor('s-intro')" title="Copy link"><svg width="12" height="12" viewBox="0 0 16 16" fill="currentColor"><path d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"/></svg></a></h2> 44 44 45 - **#begin**displaysthestartdateof thereport period(onlyfor flexible reportsforthe period).137 + <p>CENTO is a multifunctional software platform for data collection, processing, and display. This guide describes the flexible reporting tool in CENTO.</p> 46 46 47 - **#end**displays the enddateofthereportperiod(only forflexiblereportsfortheperiod).139 + <p>It is assumed that the user, having read the User Manual, is already familiar with the basic elements of the CENTO interface.</p> 48 48 49 - Eachtimestampshouldbe placed in aseparate cell.141 + <p>Flexible reports in CENTO are designed to create, edit, upload, and download Excel reports based on collected data. This function allows reports of any form and composition to be created.</p> 50 50 51 - ==2.3.Query format==143 + <p>Flexible reports can be created both within a single time unit (day, month, year) and for a period specified by the user.</p> 52 52 53 -The query is divided into 4 parts/groups separated by the ":" symbol. 145 + <p>The manual describes the following operations:</p> 146 + <ul> 147 + <li>Creating and editing report templates in the web interface</li> 148 + <li>Generating reports from templates</li> 149 + <li>Viewing and editing created reports</li> 150 + <li>Downloading and uploading report files in Excel format with version control</li> 151 + </ul> 54 54 55 -For reports for a day, month, and year, the query is built as described in Figure 2.2. 56 56 57 - [[image:Screenshot 2025-12-10 at19.43.28.png]]154 + <h2 id="s-query">2. Query Language<a class="anchor-icon" href="javascript:void(0)" onclick="copyAnchor('s-query')" title="Copy link"><svg width="12" height="12" viewBox="0 0 16 16" fill="currentColor"><path d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"/></svg></a></h2> 58 58 59 - Fig.2.2–Query example156 + <h3 id="s-query-general">2.1. General information<a class="anchor-icon" href="javascript:void(0)" onclick="copyAnchor('s-query-general')" title="Copy link"><svg width="12" height="12" viewBox="0 0 16 16" fill="currentColor"><path d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"/></svg></a></h3> 60 60 61 - Forexample,thequery**y-m-d:h10-m00:el-dev-30-ea_imp-3m:sum**consistsofthefollowingparts.Thelastpart,"sum,"inthe example above,is optional.158 + <p>The core of the flexible reports functionality is a query language that enables extraction of archived data from the database. Excel (.xlsx) files are used to work with this data.</p> 62 62 63 -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). 160 + <p>There are two types of files:</p> 161 + <ul> 162 + <li><strong>Template</strong> — defines the layout and structure of a report, including queries to archived data.</li> 163 + <li><strong>Report</strong> — a ready-made document generated from a template that contains the data received as a result of filling in the cells.</li> 164 + </ul> 64 64 65 -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). 66 66 67 -The **d** canalsobeomitted(**y-m:**),or both**m**and**d**canbe omitted(**y:**).Thismeansthe entire intervalisconsidered,if onlythe yearisspecified,theentireannualinterval isused,andiftheyear andmontharespecified,the monthlyintervalisused.167 + <p>The template is generated by the user as an .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. Editing of the report template is also available through the web interface, as described in section 3.</p> 68 68 69 - **h10-m00**meansthatthevalues forthespecifiedhourandminute will beinserted into thequery. By omittingseconds,CENTO understands that the entire minute intervalis ofinterest. Thismeansthe sample will be from 10:00to10:01 (excludingdata for 10:01:00, effectively from 10:00:00 to 10:00:59). To make a sampleforan hour, write **h10** omittingminutesandseconds.The timedoes not needto bespecified at all, for example,if theinterest is inthedata for theday.However, to ensure thequeryis correct,write “*” inplaceofthe time,likethis:~*~*y-m-d::el-dev-30-ea_imp-3m:sum~*~*.169 + <p>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.</p> 70 70 71 -The first two parts of the query can be replaced with another, more convenient formula with **#date**, which will be described below. 171 + <div class="fig"> 172 + <img src="https://wiki.centosoftware.com/xwiki/bin/download/CENTO%20Manuals/3.%20Flexible%20Reports%20Guide/WebHome/1766251887280-599.png" alt="Report template" style="max-width:100%;" onclick="openLightbox(this)"/> 173 + <p class="fig-cap">Figure 2.1. Report template</p> 174 + </div> 72 72 73 - 2)Theentry**el-dev-30-ea_imp-3m**has thefollowingparts:176 + <h3 id="s-query-timestamps">2.2. Timestamps<a class="anchor-icon" href="javascript:void(0)" onclick="copyAnchor('s-query-timestamps')" title="Copy link"><svg width="12" height="12" viewBox="0 0 16 16" fill="currentColor"><path d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"/></svg></a></h3> 74 74 75 -* **el** (electricity) is electrical data. Data on other measurements (heat, pressure, emissions, etc.) are requested with the entry **en** (energy); 76 -* **dev-30** (device) is accessing a device with an id 30 for which data needs to be downloaded; 178 + <p>Timestamps can be specified in the query language to transmit information about the date and time associated with the report. There are four types of timestamps:</p> 179 + <ul> 180 + <li><code>#created</code> — displays the date and time when the report was created.</li> 181 + <li><code>#related</code> — displays the date associated with the report (in flexible reports for a period, the timestamp is ignored).</li> 182 + <li><code>#begin</code> — displays the start date of the report period (only for flexible reports for a period).</li> 183 + <li><code>#end</code> — displays the end date of the report period (only for flexible reports for a period).</li> 184 + </ul> 77 77 78 -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** 79 79 80 - ***ea_imp**is the channelofthedevicefrom which theinformation istaken.The followingchannelscanbeused for electricity:187 + <div class="note note-info"><div class="note-hd"><span>ℹ</span> Note</div><div class="note-body">Each timestamp should be placed in a separate cell.</div></div> 81 81 82 -* ea_imp - energy A+ 83 -* ea_exp - energy A- 84 -* er_imp - energy R+ 85 -* er_exp - energy R- 86 -* pa_imp - power A+ 87 -* pa_exp - power of A- 88 -* pr_imp - power R+ 89 -* pr_exp - power R- 90 -* ra_imp - readings of A+ 91 -* ra_exp - readings of A- 92 -* rr_imp - readings of R+ 93 -* rr_exp - readings of R- 189 + <h3 id="s-query-format">2.3. Query format<a class="anchor-icon" href="javascript:void(0)" onclick="copyAnchor('s-query-format')" title="Copy link"><svg width="12" height="12" viewBox="0 0 16 16" fill="currentColor"><path d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"/></svg></a></h3> 94 94 95 -The specifiedchannelscanberenamedtotheirdecryptions in theconfig.tomlconfigurationfileofthesed_channels service.191 + <p>The query is divided into 4 parts/groups separated by the <code>:</code> symbol. For reports for a day, month, and year, the query is built as described in Figure 2.2.</p> 96 96 97 -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. 193 + <div class="fig"> 194 + <img src="https://wiki.centosoftware.com/xwiki/bin/download/CENTO%20Manuals/3.%20Flexible%20Reports%20Guide/WebHome/Screenshot%202025-12-10%20at%2019.43.28.png" alt="Query format example" style="max-width:100%;" onclick="openLightbox(this)"/> 195 + <p class="fig-cap">Figure 2.2. Query format example</p> 196 + </div> 98 98 99 -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. 198 + <p>For example, the query <code>y-m-d:h10-m00:el-dev-30-ea_imp-3m:sum</code> consists of the following parts. The last part, <code>sum</code>, is optional.</p> 199 + <ol> 200 + <li> 201 + <p><strong><code>y-m-d:</code></strong> — means the year, month, and day values from the date associated with the report will be inserted into the query. Only part of the date can be used. For example, <code>y2024-m-d</code> fixes the year to 2024 while substituting month and day. <code>y2024-m2-d</code> fixes the year to 2024, the month to February, and substitutes only the day.</p> 202 + <p>The <code>d</code> can be omitted (<code>y-m:</code>), or both <code>m</code> and <code>d</code> can be omitted (<code>y:</code>), meaning the entire interval is considered: the full annual interval if only the year is specified, or the full monthly interval if the year and month are specified.</p> 203 + <p>The first two parts of the query can be replaced with the <code>#date</code> formula as described in Table 2.3 below.</p> 204 + </li> 205 + <li> 206 + <p><strong><code>h10-m00</code></strong> — means that values for the specified hour and minute will be inserted. Omitting seconds means the entire minute interval is of interest (from 10:00:00 to 10:00:59). To sample an hour, write <code>h10</code> omitting minutes and seconds. To omit time entirely (e.g. for daily data), write <code>*</code> in place of the time: <code>y-m-d::el-dev-30-ea_imp-3m:sum</code>.</p> 207 + </li> 208 + <li> 209 + <p><strong><code>el-dev-30-ea_imp-3m</code></strong> has the following parts:</p> 210 + <ul> 211 + <li><code>el</code> — electrical data. Other measurements (heat, pressure, etc.) use <code>en</code> (energy).</li> 212 + <li><code>dev-30</code> — device with ID 30. Instead of <code>dev</code>, use <code>bg</code> for billing groups (e.g. <code>el-bg-22-30m</code>).</li> 213 + <li><code>ea_imp</code> — the data channel. Available electricity channels: 214 + <code>ea_imp</code>, <code>ea_exp</code>, <code>er_imp</code>, <code>er_exp</code>, 215 + <code>pa_imp</code>, <code>pa_exp</code>, <code>pr_imp</code>, <code>pr_exp</code>, 216 + <code>ra_imp</code>, <code>ra_exp</code>, <code>rr_imp</code>, <code>rr_exp</code>.</li> 217 + <li><code>3m</code> — interval. Options include <code>1m</code>, <code>3m</code>, <code>15m</code>, <code>20m</code>, <code>30m</code>, <code>1h</code>, <code>1d</code>, and others supported by the device.</li> 218 + </ul> 219 + <p>For energy (<code>en</code>) measurements, channels are encoded by number: <code>en-dev-30-15-3m</code> requests 3-minute data for channel ID 15 on device 30.</p> 220 + <p>In query formulas, device IDs can be replaced with device codes. Device codes can contain Latin letters, e.g. <code>P22S1Y8</code>. The formula <code>y-m-d1:*:el-dev-201-ea_imp-30m:sum</code> can be written as <code>y-m-d1:*:E123457ea_imp:sum</code>.</p> 221 + </li> 222 + <li> 223 + <p><strong><code>sum</code></strong> — aggregation function. Available functions: <code>sum</code>, <code>min</code>, <code>max</code>, <code>mean</code>. An optional coefficient can follow: <code>sum-k0.1</code> multiplies the result by 0.1.</p> 224 + </li> 225 + </ol> 100 100 101 -**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. 102 102 103 - Theaggregatingfunction maybe followedby anoptionalparameter,the coefficient,writtenas ak number,wherethenumberis the coefficientvalue,for example,k0.1(i.e. **sum-k0.1**): theresult ofqueryexecutionwillbemultipliedbyit.228 + <p>For flexible <strong>period</strong> reports, use <code>#begin-#end</code> instead of a specific date (<code>y-m-d</code>). For example, <code>#begin-#end:h10-m00:el-dev-30-ea_imp-3m:sum</code> sums the active energy from device 30 from 10:00 at the start to 10:00 at the end of the user-defined period.</p> 104 104 105 - Thedatarequest form for flexibleperiod reportsis similar toreportsfor a day, month, or year. However,in thedate block at the beginning ofthequery,insteadofaspecificdate(**y-m-d**), thestart andendof thereportperiodareused as **#begin-#end**. Forexample,the query **#begin-#end:h10-m00:el-dev-30-ea_imp-3m:sum**meansthat the total active energyvalue(reception) is requestedforthe user-definedperiodfrom 10:00 a.m. at thebeginningof theperiod(**#begin**)to10:00 a.m. atthe endof theperiod(**#end**)froma devicewith ID 30.230 + <p>Period reports also support time offsets by day: <code>#end+2d</code> or <code>#begin-1d</code>. Queries using only <code>#begin</code> or <code>#end</code> will fill the cell with the value for that point in time only.</p> 106 106 107 - Queriesforflexiblereportsfora periodcanbegenerated, indicating only thebeginningofthe period(**#begin**) or onlytheend(**#end**). In thiscase,CENTO will fill the cell with the value onlyfor thespecifiedtime, ignoring the formulaatthe end of the query (ifthereis one).232 + <p>The <code>#date</code> formula provides an extended query toolkit. The comparison between <code>y-m-d</code> and <code>#date</code> formats is shown in Table 2.3.</p> 108 108 109 -Flexible period reports also allow time offsets in queries, but **only by day**. For example, **#end+2d** or **#begin-1d**. 234 + <div class="tbl-wrap"> 235 + <table class="rn-table"> 236 + <caption style="text-align:left;font-size:.8em;color:#555;padding:6px 0;font-weight:700;">Table 2.3. Comparative table of y-m-d and #date formulas</caption> 237 + <thead> 238 + <tr> 239 + <th style="min-width:28px;">#</th> 240 + <th>Format with y-m-d</th> 241 + <th>Format with #date</th> 242 + <th>Description</th> 243 + <th>Report type</th> 244 + </tr> 245 + </thead> 246 + <tbody> 247 + <tr><td>1</td><td><code>y-m-d3:*:el-dev-201-ea_imp-30m:sum</code></td><td><code>#date-d3:d:dev-201-ea_imp:sum</code></td><td>Sum of all half-hours on the 3rd day of the month</td><td>monthly, daily</td></tr> 248 + <tr><td>2</td><td><code>y-m-d1:h00-m30:el-dev-201-ea_imp-30m:sum</code></td><td><code>#date-d1-h00-m30:*:dev-201-ea_imp</code></td><td>Value of the 00:30 half-hour on the first day</td><td>monthly, daily</td></tr> 249 + <tr><td>3</td><td><code>y-m-d+1:h00-m30:el-dev-201-ea_imp-30m</code></td><td><code>#date+1-h00-m30:*:dev-201-ea_imp</code></td><td>Value of the 00:30 half-hour of the day following the selected one</td><td>daytime</td></tr> 250 + <tr><td>4</td><td><code>y-m-d+10:h00-m30:el-bg-42-30m</code></td><td><code>#date+10-h00-m30:*:bg-42</code></td><td>Value of the 00:30 half-hour per day +10; checking billing group operation</td><td>daytime</td></tr> 251 + <tr><td>5</td><td><code>y-m-d-1:h00-m30:el-dev-201-ea_imp-30m</code></td><td><code>#date-1-h00-m30:*:dev-201-ea_imp</code></td><td>Value of the 00:30 half-hour per day −1</td><td>daytime</td></tr> 252 + <tr><td>6</td><td><code>y-m-d1-1:h01-m00:el-dev-201-ea_imp-30m</code></td><td><code>#date-d1-1-h01-m00:*:dev-201-ea_imp</code></td><td>Value of the 01:00 half-hour for the last day of the previous month</td><td>monthly, daily</td></tr> 253 + <tr><td>7</td><td><code>y-m-d1-2:h00-m30:el-dev-201-ea_imp-30m</code></td><td><code>#date-d1-2-h00-m30:*:dev-201-ea_imp</code></td><td>Value of the 00:30 half-hour for the penultimate day of the previous month</td><td>monthly, daily</td></tr> 254 + <tr><td>8</td><td><code>y-m-d:*:el-dev-201-ea_imp-30m:sum</code></td><td><code>#date:d:dev-201-ea_imp:sum</code></td><td>Sum of all half-hours for the selected day</td><td>daytime</td></tr> 255 + <tr><td>9</td><td><code>y-m:*:el-dev-201-ea_imp-30m:sum</code></td><td><code>#date:m:dev-201-ea_imp:sum</code></td><td>Sum of all half-hours for the selected month</td><td>annual, monthly, daily</td></tr> 256 + <tr><td>10</td><td><code>y:*:el-dev-201-ea_imp-30m:max</code></td><td><code>#date:y:dev-201-ea_imp:max</code></td><td>The maximum half-hour value for the selected year</td><td>annual, monthly, daily</td></tr> 257 + <tr><td>11</td><td><code>y-m-1m:*:el-dev-201-ea_imp-30m:min</code></td><td><code>#date-1m:m:dev-201-ea_imp:min</code></td><td>Minimum half-hour for the previous month</td><td>annual, monthly</td></tr> 258 + <tr><td>12</td><td><code>y-m1:*:en-dev-220-1021-1h:mean</code></td><td><code>#date-m2:m:ch-1021-1h:mean</code></td><td>Average of all hours from channel 1021 at device 220 for February of the selected year</td><td>annual, monthly, daily</td></tr> 259 + <tr><td colspan="5" style="background:#f5f5f5;font-weight:700;color:#555;">New functions available only with #date</td></tr> 260 + <tr><td>13</td><td>—</td><td><code>#date-h08-#date-h17:*:dev-201-ea_imp:sum</code></td><td>Sum of energy on the report date from 8:00 to 17:00</td><td>daytime</td></tr> 261 + <tr><td>14</td><td>—</td><td><code>#date+1-h08-#date+1-h17:*:dev-201-ea_imp:sum</code></td><td>Sum of energy for the following day from 8:00 to 17:00</td><td>daytime</td></tr> 262 + <tr><td>15</td><td>—</td><td><code>#date-d1-h08-#date+1-h17:*:dev-201-ea_imp:sum</code></td><td>Sum from the 1st of the month at 8:00 to the following day at 17:00</td><td>daytime</td></tr> 263 + <tr><td>16</td><td>—</td><td><code>#date-d1-1-h08-#date+1-h17:*:dev-201-ea_imp:sum</code></td><td>Sum from the last day of the previous month at 8:00 to the following day at 17:00</td><td>daytime</td></tr> 264 + </tbody> 265 + </table> 266 + </div> 110 110 111 -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. 112 112 113 -Table 2.3. Comparative table of y-m-d and #date formulas 269 + <h3 id="s-query-examples">2.4. Query examples<a class="anchor-icon" href="javascript:void(0)" onclick="copyAnchor('s-query-examples')" title="Copy link"><svg width="12" height="12" viewBox="0 0 16 16" fill="currentColor"><path d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"/></svg></a></h3> 270 + <pre><code>y2019-m-d:h10:el-dev-30-ea_imp-3m:sum-k0.001</code></pre> 114 114 115 -|**№**|(% style="width:161px" %)**Format with y-m-d**|(% style="width:134px" %)**Format with #date**|(% style="width:198px" %)**Description**|(% style="width:106px" %)**Type of report in which the formula is applied** 116 -|1|(% style="width:161px" %)y-m-d3:*:el-dev-201-ea_imp-30m:sum|(% style="width:134px" %)#date-d3:d:dev-201-ea_imp:sum|(% style="width:198px" %)Sum of all half-hours on the 3rd day of the month|(% style="width:106px" %)monthly, daily 117 -|2|(% style="width:161px" %)y-m-d1:h00-m30:el-dev-201-ea_imp-30m:sum|(% style="width:134px" %)#date-d1-h00-m30:*:dev-201-ea_imp|(% style="width:198px" %)Value of the half-hour is 00-30 on the first day|(% style="width:106px" %)monthly, daily 118 -|3|(% style="width:161px" %)y-m-d+1:h00-m30:el-dev-201-ea_imp-30m|(% style="width:134px" %)#date+1-h00-m30:*:dev-201-ea_imp|(% style="width:198px" %)Value of the half-hour is 00-30 of the day following the selected one|(% style="width:106px" %)daytime 119 -|4|(% style="width:161px" %)y-m-d+10:h00-m30:el-bg-42-30m|(% style="width:134px" %)#date+10-h00-m30:*:bg-42|(% style="width:198px" %)Value of the half-hour is 00-30 per day +10; checking the operation of the electro-billing group|(% style="width:106px" %)daytime 120 -|5|(% style="width:161px" %)y-m-d-1:h00-m30:el-dev-201-ea_imp-30m|(% style="width:134px" %)#date-1-h00-m30:*:dev-201-ea_imp|(% style="width:198px" %)Value of the 00-30 half-hour per day is -1|(% style="width:106px" %)daytime 121 -|6|(% style="width:161px" %)y-m-d1-1:h01-m00:el-dev-201-ea_imp-30m|(% style="width:134px" %)#date-d1-1-h01-m00:*:dev-201-ea_imp|(% style="width:198px" %)Value of the 01-00 half-hour for the last day of the previous month|(% style="width:106px" %)monthly, daily 122 -|7|(% style="width:161px" %)y-m-d1-2:h00-m30:el-dev-201-ea_imp-30m|(% style="width:134px" %)#date-d1-2-h00-m30:*:dev-201-ea_imp|(% style="width:198px" %)Value of the half-hour is 00-30 for the penultimate day of the previous month|(% style="width:106px" %)monthly, daily 123 -|8|(% style="width:161px" %)y-m-d:*:el-dev-201-ea_imp-30m:sum|(% style="width:134px" %)#date:d:dev-201-ea_imp:sum|(% style="width:198px" %)Sum of all half-hours for the selected day|(% style="width:106px" %)daytime 124 -|9|(% style="width:161px" %)y-m:*:el-dev-201-ea_imp-30m:sum|(% style="width:134px" %)#date:m:dev-201-ea_imp:sum|(% style="width:198px" %)Sum of all half-hours for the selected month|(% style="width:106px" %)annual, monthly, daily 125 -|10|(% style="width:161px" %)y:*:el-dev-201-ea_imp-30m:max|(% style="width:134px" %)#date:y:dev-201-ea_imp:max|(% style="width:198px" %)The maximum half-hour for a selected year|(% style="width:106px" %)annual, monthly, daily 126 -|11|(% style="width:161px" %)y-m-1m:*:el-dev-201-ea_imp-30m:min|(% style="width:134px" %)#date-1m:m:dev-201-ea_imp:min|(% style="width:198px" %)Minimum half-hour for the previous month|(% style="width:106px" %)annual, monthly 127 -|12|(% style="width:161px" %)y-m1:*:en-dev-220-1021-1h:mean|(% style="width:134px" %)#date-m2:m:ch-1021-1h:mean|(% style="width:198px" %)Output the average of all hours from channel 1021 at device 220 for February of the year selected by the user|(% style="width:106px" %)annual, monthly, daily 128 -| |(% style="width:161px" %) |(% style="width:134px" %)**New functions available only with #date**|(% style="width:198px" %) |(% style="width:106px" %) 129 -|13|(% style="width:161px" %) |(% style="width:134px" %)#date-h08-#date-h17:*:dev-201-ea_imp:sum|(% style="width:198px" %)Sum of energy as of the report date from 8 a.m. to 5 p.m.|(% style="width:106px" %)daytime 130 -|14|(% style="width:161px" %) |(% style="width:134px" %)#date+1-h08-#date+1-h17:*:dev-201-ea_imp:sum|(% style="width:198px" %)Sum of energy for the day following the reporting day from 8 a.m. to 5 p.m.|(% style="width:106px" %)daytime 131 -|15|(% style="width:161px" %) |(% style="width:134px" %)#date-d1-h08-#date+1-h17:*:dev-201-ea_imp:sum|(% style="width:198px" %)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:106px" %)daytime 132 -|16|(% style="width:161px" %) |(% style="width:134px" %)#date-d1-1-h08-#date+1-h17:*:dev-201-ea_imp:sum|(% style="width:198px" %)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:106px" %)daytime 272 + <p>Data for 2019, substituting month and day from the report date, time from 10:00 to 11:00, electrical 3-minute data, device ID 30, channel <code>ea_imp</code>, sum aggregation with coefficient 0.001 (result in megawatts).</p> 273 + <pre><code>y-m1:*:en-dev-220-1021-1d:sum</code></pre> 133 133 134 -== 2.4. Query examples == 275 + <p>Data for the 1st month of the year from the report date. Energy resources table, daily records, device 220, channel 1021. Since the day is omitted, the full monthly range is sampled (e.g. 2019-01-01 to 2019-02-01, excluding the first day of the second month).</p> 276 + <pre><code>y-m+1-d1:h00-m00:el-dev-1202-ra_imp-30m</code></pre> 135 135 136 -**y2019-m-d:h10:el-dev-30-ea_imp-3m:sum-k0.001** 278 + <p>Data for 00:00 on the 1st of the month following the report date. Electricity readings for device ID 1202. Arithmetic like <code>m+2</code>, <code>m+3</code>, <code>y+5</code> is also supported.</p> 279 + <pre><code>y-m-d1-1:h10-m00:el-dev-1202-ra_imp-30m</code></pre> 137 137 138 -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). 281 + <p>Data for 10:00 on the last day of the previous month for device 1202, channel <code>ra_imp</code>, 30-minute database.</p> 282 + <pre><code>#begin-#end:h00-m00:el-dev-46-ea_imp-3m:sum</code></pre> 139 139 140 -**y-m1:*:en-dev-220-1021-1d:sum** 284 + <p>Data for the period from 00:00 of <code>#begin</code> to 00:00 of <code>#end</code>. Active received energy from device ID 46, summed from 3-minute values.</p> 285 + <pre><code>#begin:h06-m30:el-dev-58-ea_exp-30m</code></pre> 141 141 142 -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. 287 + <p>Half-hour value starting at 6:30 on the start date of the period. Active energy output from device ID 58.</p> 288 + <pre><code>#end+2d:h02-m00:el-bg-22-30m</code></pre> 143 143 144 - **y-m+1-d1:h00-m00:el-dev-1202-ra_imp-30m**290 + <p>Half-hour starting at 2:00, two days after the end of the user-specified period. Data for billing group ID 22, received active energy.</p> 145 145 146 - Thedataisfor00:00onthe1stofthemonthfollowingthedateassociatedwith the report. Thisrequestoutputs electricityreadingsforadevicewithid= 1202.Youcanalsowrite**m+2**,**m+3,y+5**,etc.292 + <h3 id="s-query-devices">2.5. Output of device information. Device codes and tags<a class="anchor-icon" href="javascript:void(0)" onclick="copyAnchor('s-query-devices')" title="Copy link"><svg width="12" height="12" viewBox="0 0 16 16" fill="currentColor"><path d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"/></svg></a></h3> 147 147 148 -**y-m-d1-1:h10-m00:el-dev-1202-ra_imp-30m** 294 + <p>The following requests display device attributes directly in report cells:</p> 295 + <ul> 296 + <li><code>#dev.201.IP</code> — displays the IP address of device ID 201. A device code can be used instead of the ID.</li> 297 + <li><code>#dev.201.Name</code> — displays the device name.</li> 298 + <li><code>#dev.201.VendorNumber</code> — displays the device serial number.</li> 299 + </ul> 149 149 150 -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. 151 151 152 - **#begin-#end:h00-m00:el-dev-46-ea_imp-3m:sum**302 + <p>The serial number can also be retrieved from a tag if the device supports it. For example, for a SATEC device queried via Modbus, write <code>y-m-d:*:ti11001</code> where <code>ti11001</code> is the tag code. Any tag from the configuration can be added to flexible reports in the same way.</p> 153 153 154 - Thedata isfortheperiodfrom00:00of thedate**#begin**to 00:00ofthedate**#end**.The dataisdownloadedusingtheactivereceivedenergyfromthedevicewithID46.Thevalueisgivenasthesumofthethree-minutevaluesofthespecifiedinterval.304 + <h2 id="s-templates">3. Managing Report Templates<a class="anchor-icon" href="javascript:void(0)" onclick="copyAnchor('s-templates')" title="Copy link"><svg width="12" height="12" viewBox="0 0 16 16" fill="currentColor"><path d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"/></svg></a></h2> 155 155 156 - **#begin:h06-m30:el-dev-58-ea_exp-30m**306 + <p>Flexible reports are managed in the <strong>Flexible Reports</strong> window, accessible via <strong>Reports → Flexible Reports</strong>.</p> 157 157 158 - Thedataofthehalf-hourstartingat6:30 a.m.,thedate indicatedat the beginningoftherequested period.Thedata is on theoutput ofactive energy fromadevicewith ID 58.308 + <p>A template prepared according to the query language in section 2 is uploaded by clicking the <strong>Create Template</strong> button <img class="inline-icon" src="https://wiki.centosoftware.com/xwiki/bin/download/CENTO%20Manuals/3.%20Flexible%20Reports%20Guide/WebHome/Screenshot%202025-12-10%20at%2019.48.07.png" alt="Create Template"/> in the upper-right corner of the template list.</p> 159 159 160 -**#end+2d:h02-m00:el-bg-22-30m** 310 + <div class="fig"> 311 + <img src="https://wiki.centosoftware.com/xwiki/bin/download/CENTO%20Manuals/3.%20Flexible%20Reports%20Guide/WebHome/Screenshot%202025-12-10%20at%2019.48.44.png" alt="Flexible Report Template Management window" style="max-width:100%;" onclick="openLightbox(this)"/> 312 + <p class="fig-cap">Figure 3.1. Flexible Report Template Management window</p> 313 + </div> 161 161 162 - Thedataofthehalf-hourstartingat2:00a.m.,thedaterunning2daysafter the end ofthe periodrequestedby theuser.Thedata isrequestedforthebillinggroupwithID 22according to the readingsofthereceived active energy.315 + <p>After clicking <img class="inline-icon" src="https://wiki.centosoftware.com/xwiki/bin/download/CENTO%20Manuals/3.%20Flexible%20Reports%20Guide/WebHome/Screenshot%202025-12-10%20at%2019.48.07.png" alt="Create Template"/> (see Figure 3.1), a dialog box opens. Enter the template name, type, object, and category, then select the Excel template 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 <img class="inline-icon" src="https://wiki.centosoftware.com/xwiki/bin/download/CENTO%20Manuals/3.%20Flexible%20Reports%20Guide/WebHome/Screenshot%202025-12-10%20at%2019.49.45.png" alt="Save"/> to complete.</p> 163 163 164 -== 2.5. Output of information on devices to the report. Device codes and tags. == 317 + <div class="fig"> 318 + <img src="https://wiki.centosoftware.com/xwiki/bin/download/CENTO%20Manuals/3.%20Flexible%20Reports%20Guide/WebHome/Screenshot%202025-12-10%20at%2019.50.16.png" alt="Template upload form" style="max-width:100%;" onclick="openLightbox(this)"/> 319 + <p class="fig-cap">Figure 3.2. Template upload form</p> 320 + </div> 165 165 166 -The re quest**#dev.201.IP**displaysthe IPaddressofthe device with id= 201201 fromtheconfigurationin thereport.InsteadofthedeviceID,the devicecodecanbe specified.322 + <p>The <strong>template type</strong> can be annual, monthly, daily, or for-the-period (annual, monthly, or daily). It affects the calendar type used when generating reports, availability of auto-generation (only annual, monthly, and daily reports are auto-generated), and the applicability of timestamps and query types described in section 2.</p> 167 167 168 - **#dev.201.Name**displaysthedevice name with id = 201201 from theconfigurationin the report.InsteadofthedeviceID,thedevice codecanbespecified.324 + <p>The <strong>Object</strong> field links the report to an information model object, differentiating access rights and filter templates in the table.</p> 169 169 170 - **#dev.201.VendorNumber**displaysthe serial number ofthe device with id = 201 fromtheconfiguration inthe report.InsteadofthedeviceID,thedevicecodecan be specified.326 + <p>The <strong>Category</strong> field enables report generation based on the Balances module.</p> 171 171 172 - Theserialnumber ofthedevice canalsobetakenfrom the tagifthedevice canoutput its numberaccordingtoany protocol.Forexample, theSATECdevicecanbequeriedviaModbus, andthe serialnumbercanberetrieved fromthe **ti11001** tag. Todisplay thistaginthe report,writethe formula**y-m-d:*:ti11001 **where**ti11001**canbereplaced withthetagcode. In the sameway, add anytagsfromthe configuration toflexiblereports.328 + <p>All templates can be downloaded to a PC using the <strong>Download</strong> button <img class="inline-icon" src="https://wiki.centosoftware.com/xwiki/bin/download/CENTO%20Manuals/3.%20Flexible%20Reports%20Guide/WebHome/Screenshot%202025-12-10%20at%2019.50.54.png" alt="Download template"/> and uploaded using the <strong>Select a file</strong> button <img class="inline-icon" src="https://wiki.centosoftware.com/xwiki/bin/download/CENTO%20Manuals/3.%20Flexible%20Reports%20Guide/WebHome/Screenshot%202025-12-10%20at%2019.51.40.png" alt="Select a file"/> in the template settings window, which opens by clicking the <strong>Template setup</strong> button <img class="inline-icon" src="https://wiki.centosoftware.com/xwiki/bin/download/CENTO%20Manuals/3.%20Flexible%20Reports%20Guide/WebHome/Screenshot%202025-12-10%20at%2019.52.09.png" alt="Template setup"/>.</p> 173 173 174 - Inqueryformulas, deviceIDscan bereplacedwithdevicecodes. Unliketheid, thecodecancontainLatinletters,which allowsit toencode alot ofusefulinformation. Forexample, the code P22S1Y8 may meanthatthedevicecollectsdataon PS22in thefirst bus sectionincell8. Towrite thecode in the request,add thechanneltoit,forexample,Energy A+, which isencryptedas**ea_imp** by default.330 + <p>A template can be deleted using the <strong>Delete selected</strong> button <img class="inline-icon" src="https://wiki.centosoftware.com/xwiki/bin/download/CENTO%20Manuals/3.%20Flexible%20Reports%20Guide/WebHome/Screenshot%202025-12-10%20at%2019.52.40.png" alt="Delete selected"/> after selecting the checkboxes next to the templates in the first column of the template list (see Figure 3.1).</p> 175 175 176 -Th us, theformula**y-m-d1:*:el-dev-201-ea_imp-30m:sum**canbe replaced bythe formula**y-m-d1:*:E123457ea_imp:sum**. A similarlogicapplies toalltheformulasdescribedabove.332 + <p>The <strong>Interactive mode</strong> button <img class="inline-icon" src="https://wiki.centosoftware.com/xwiki/bin/download/CENTO%20Manuals/3.%20Flexible%20Reports%20Guide/WebHome/Screenshot%202025-12-10%20at%2019.53.19.png" alt="Interactive mode"/> opens the report in the web version of Excel spreadsheets (Figure 3.3).</p> 177 177 178 -= 3. MANAGING REPORT TEMPLATES = 334 + <div class="fig"> 335 + <img src="https://wiki.centosoftware.com/xwiki/bin/download/CENTO%20Manuals/3.%20Flexible%20Reports%20Guide/WebHome/Screenshot%202025-12-10%20at%2019.53.57.png" alt="Interactive mode" style="max-width:100%;" onclick="openLightbox(this)"/> 336 + <p class="fig-cap">Figure 3.3. Interactive mode</p> 337 + </div> 179 179 180 - Flexible reportsaremanagedin theFlexibleReportswindow accessibleusingthe**Reportsmenu:Reports ->FlexibleReports**.339 + <p>Interactive mode enables working with the report directly in the web interface without downloading or uploading an Excel file. In this mode, you can view all calculation results, select the display start time, download the report as .xlsx, and edit the report using the <img class="inline-icon" src="https://wiki.centosoftware.com/xwiki/bin/download/CENTO%20Manuals/3.%20Flexible%20Reports%20Guide/WebHome/Screenshot%202025-12-10%20at%2019.54.33.png" alt="Edit"/> button.</p> 181 181 182 - Atemplategeneratedin accordancewith the query language specifiedin Section1 is uploadedto the Flexible Reports page(seeFigure 3.1) by clickingthe(Create Template)button [[image:Screenshot2025-12-10at 19.48.07.png||height="27"width="29"]]in theupper-right cornerof the templatelist.341 + <p>In editing mode (Figure 3.4), both Excel formulas and CENTO queries within the report can be viewed and edited as described in section 2.</p> 183 183 184 -[[image:Screenshot 2025-12-10 at 19.48.44.png]] 343 + <div class="fig"> 344 + <img src="https://wiki.centosoftware.com/xwiki/bin/download/CENTO%20Manuals/3.%20Flexible%20Reports%20Guide/WebHome/Screenshot%202025-12-10%20at%2019.55.19.png" alt="Editing mode" style="max-width:100%;" onclick="openLightbox(this)"/> 345 + <p class="fig-cap">Figure 3.4. Editing mode</p> 346 + </div> 185 185 186 - Figure3.1–FlexibleReportTemplateManagementwindow348 + <p>Report sheets are shown in the lower-left corner of the editing mode interface for switching between them (new sheets can only be added via Excel when uploading a template). The lower-right corner contains buttons and a zoom slider. To edit a cell’s contents, double-click it.</p> 187 187 188 -After clicking thebutton[[image:Screenshot2025-12-10at19.48.07.png||height="27"width="29"]](see Figure 3.1),adownloaddialog boxwill open. Enter thetemplate name, type, object,andcategoryinthis dialogbox. Then,select the templatefile(Excelfile), configure auto generationif needed,selecta networkresourceand/oremailaddress for saving automatically generated reports(see Figure 3.2), and click thebutton [[image:Screenshot2025-12-10at19.49.45.png||height="23"width="46"]]tocomplete.350 + <p>After editing, save the report <img class="inline-icon" src="https://wiki.centosoftware.com/xwiki/bin/download/CENTO%20Manuals/3.%20Flexible%20Reports%20Guide/WebHome/Screenshot%202025-12-10%20at%2019.55.47.png" alt="Save"/> and switch back to view mode <img class="inline-icon" src="https://wiki.centosoftware.com/xwiki/bin/download/CENTO%20Manuals/3.%20Flexible%20Reports%20Guide/WebHome/Screenshot%202025-12-10%20at%2019.56.08.png" alt="Back to view"/> to verify the results. All changes are applied instantly.</p> 189 189 190 - [[image:Screenshot 2025-12-10 at19.50.16.png]]352 + <h2 id="s-access">4. Managing Access Rights to Reports<a class="anchor-icon" href="javascript:void(0)" onclick="copyAnchor('s-access')" title="Copy link"><svg width="12" height="12" viewBox="0 0 16 16" fill="currentColor"><path d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"/></svg></a></h2> 191 191 192 - Fig.3.2–Template upload form354 + <p>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. Depending on the task, a separate structure can be created for flexible reports, or an existing structure can be reused.</p> 193 193 194 - Thetemplate****typecan be annual, monthly,daily,as well as annual fortheperiod,monthlyfor the period, anddaily fortheperiod. Itis selecteddepending onthe requirementsforthe report.**The templatetype** affects thetypeofcalendar whengeneratingreports,thepossibilityofautogeneration(onlyannual, monthly, and daily reportsare automaticallygenerated),aswellasthe applicabilityoftimestamps andquerytypesin section2 ofthis manual.356 + <p>To link a report to an object, open the template editing form (see Figure 3.2) by clicking the template settings button <img class="inline-icon" src="https://wiki.centosoftware.com/xwiki/bin/download/CENTO%20Manuals/3.%20Flexible%20Reports%20Guide/WebHome/Screenshot%202025-12-10%20at%2020.11.01.png" alt="Template settings"/> next to a template, and select an information model object in the <strong>Object</strong> field.</p> 195 195 196 - The**Object**fieldis usedtoselectanobjectoftheinformationmodel.Linkingareporttoan objectdifferentiatesaccess toreportsandfiltertemplatesin thetable.358 + <p>Next, find the selected object in <strong>Settings → System → User Access Rights</strong> and use the checkmarks in the <strong>Flexible Reports</strong> row to select which roles will have access to the flexible report bound to the object (Figure 4.1).</p> 197 197 198 -The **Category** field is used to generate reports based on the "Balances" module. 360 + <div class="fig"> 361 + <img src="https://wiki.centosoftware.com/xwiki/bin/download/CENTO%20Manuals/3.%20Flexible%20Reports%20Guide/WebHome/Screenshot%202025-12-10%20at%2020.11.53.png" alt="Rights to flexible reports in the user settings" style="max-width:100%;" onclick="openLightbox(this)"/> 362 + <p class="fig-cap">Figure 4.1. Rights to flexible reports in the user settings</p> 363 + </div> 199 199 200 - Allthetemplatescanbedownloadedto thePC using the "Download"button [[image:Screenshot2025-12-10at 19.50.54.png||height="23" width="23"]] anduploaded usingthe ”Select afile”button [[image:Screenshot2025-12-10at19.51.40.png||height="25"width="229"]]in thetemplatesettingswindow,which openswhen clickingonthe"Templatesetup" button [[image:Screenshot 2025-12-10 at 19.52.09.png||height="25" width="26"]].365 + <div class="note note-info"><div class="note-hd"><span>ℹ</span> Note</div><div class="note-body">Users without roles that have access to flexible reports bound to an object will not see those reports in the list of available templates.</div></div> 201 201 202 - Atemplatecanbedeletedusingthe"Deleteselected"button[[image:Screenshot 2025-12-10at19.52.40.png||height="27"width="27"]]afterselectingthecheckboxesnexttothetemplatesinthefirstcolumnofthetemplatelist(seeFigure3.1).367 + <h2 id="s-reports">5. Report Management<a class="anchor-icon" href="javascript:void(0)" onclick="copyAnchor('s-reports')" title="Copy link"><svg width="12" height="12" viewBox="0 0 16 16" fill="currentColor"><path d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"/></svg></a></h2> 203 203 204 -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). 369 + <p>Reports are generated from uploaded templates using the <strong>Create report</strong> button <img class="inline-icon" src="https://wiki.centosoftware.com/xwiki/bin/download/CENTO%20Manuals/3.%20Flexible%20Reports%20Guide/WebHome/Screenshot%202025-12-10%20at%2020.12.49.png" alt="Create report"/>. Report generation can be performed in two ways:</p> 370 + <p><strong>1. Manually</strong> — click the <strong>Create report</strong> button <img class="inline-icon" src="https://wiki.centosoftware.com/xwiki/bin/download/CENTO%20Manuals/3.%20Flexible%20Reports%20Guide/WebHome/Screenshot%202025-12-10%20at%2020.12.49.png" alt="Create report"/> in the template row in the Template list. In the pop-up window (Figure 5.1), enter the report name, select <em>In a day</em> or <em>Per interval</em>, and click <img class="inline-icon" src="https://wiki.centosoftware.com/xwiki/bin/download/CENTO%20Manuals/3.%20Flexible%20Reports%20Guide/WebHome/Screenshot%202025-12-10%20at%2020.13.37.png" alt="Proceed"/>.</p> 205 205 206 -[[image:Screenshot 2025-12-10 at 19.53.57.png]] 372 + <div class="fig"> 373 + <img src="https://wiki.centosoftware.com/xwiki/bin/download/CENTO%20Manuals/3.%20Flexible%20Reports%20Guide/WebHome/Screenshot%202025-12-10%20at%2020.14.18.png" alt="Create report form" style="max-width:100%;" onclick="openLightbox(this)"/> 374 + <p class="fig-cap">Figure 5.1. Create report form</p> 375 + </div> 207 207 208 -Fig.3.3 – Interactive mode 377 + <div class="note note-warning"><div class="note-hd"><span>⚠</span> Important</div><div class="note-body">When selecting <em>Per interval</em> while creating a report for a day, month, or year, the system generates multiple reports — one for each day, month, or year within the user-defined interval. In reports for a period (daily, monthly, or annual), the period must always be specified when creating the report.</div></div> 378 + <p><strong>2. Automatically</strong> — configure auto-generation in the template settings <img class="inline-icon" src="https://wiki.centosoftware.com/xwiki/bin/download/CENTO%20Manuals/3.%20Flexible%20Reports%20Guide/WebHome/Screenshot%202025-12-10%20at%2020.14.58.png" alt="Autogenerate settings"/>. In the pop-up window (Figure 5.2), define the report generation schedule using a Cron expression or the UI-based Cron editor <img class="inline-icon" src="https://wiki.centosoftware.com/xwiki/bin/download/CENTO%20Manuals/3.%20Flexible%20Reports%20Guide/WebHome/Screenshot%202025-12-10%20at%2020.15.23.png" alt="Cron editor"/> (Figure 5.3), then confirm with <img class="inline-icon" src="https://wiki.centosoftware.com/xwiki/bin/download/CENTO%20Manuals/3.%20Flexible%20Reports%20Guide/WebHome/Screenshot%202025-12-10%20at%2020.17.04.png" alt="Confirm"/>.</p> 209 209 210 - Theinteractive mode enablesworking withthe report directly through the webinterface withoutdownloading oruploadingan Excel file. In thismode, thereport and all calculation resultscanbe viewed,thedisplay starttimecan beselected,thereport canbedownloadedas an .xlsx file, andthe reportcanbe editedusingthebutton [[image:Screenshot2025-12-10 at 19.54.33.png||height="21"width="68"]].380 + <p>When <strong>Past period</strong> is set, the previous day/month/year is used when generating the report. When <strong>Current period</strong> is set, the current period is used.</p> 211 211 212 - Ineditingmode (see Fig. 3.4), both Excelformulasand CENTO queries within the report can be viewedand editedasdescribedinSection2 ofthismanual.382 + <p>Automatically generated reports can be saved to a network resource and/or sent by email. Select the corresponding items in the settings window (Figure 5.2).</p> 213 213 214 - [[image:Screenshot2025-12-10at19.55.19.png]]384 + <div class="note note-warning"><div class="note-hd"><span>⚠</span> Important</div><div class="note-body"><ul style='margin:4px 0 0 0;padding-left:18px;'><li>When saving to a network resource, the CENTO server must have network access to the specified location.</li><li>To send reports by email, a mail server must be configured in the corresponding CENTO module. Mail server configuration is described in the Setup Manual: Mail Servers.</li></ul></div></div> 215 215 216 -Fig.3.4 – Editing mode 386 + <div class="fig"> 387 + <img src="https://wiki.centosoftware.com/xwiki/bin/download/CENTO%20Manuals/3.%20Flexible%20Reports%20Guide/WebHome/Screenshot%202025-12-10%20at%2020.17.46.png" alt="Template setup window" style="max-width:100%;" onclick="openLightbox(this)"/> 388 + <p class="fig-cap">Figure 5.2. Template setup window</p> 389 + </div> 217 217 218 -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. 391 + <div class="fig"> 392 + <img src="https://wiki.centosoftware.com/xwiki/bin/download/CENTO%20Manuals/3.%20Flexible%20Reports%20Guide/WebHome/5.3..png" alt="Autogeneration cron rules" style="max-width:100%;" onclick="openLightbox(this)"/> 393 + <p class="fig-cap">Figure 5.3. Autogeneration cron rules</p> 394 + </div> 219 219 396 + <p>To display reports generated from the selected templates on the right side of the screen (Report list), select the templates in the Template list using the appropriate checkboxes (Figure 5.4). Templates can be filtered by name and type.</p> 220 220 221 -To edit the contents of a cell, double-click on the cell with the left mouse button. 398 + <div class="fig"> 399 + <img src="https://wiki.centosoftware.com/xwiki/bin/download/CENTO%20Manuals/3.%20Flexible%20Reports%20Guide/WebHome/Screenshot%202025-12-16%20183447.png" alt="Flexible Reports Manager window" style="max-width:100%;" onclick="openLightbox(this)"/> 400 + <p class="fig-cap">Figure 5.4. Flexible Reports Manager window</p> 401 + </div> 222 222 223 -A fterediting, the reportshouldbe saved[[image:Screenshot2025-12-10at19.55.47.png||height="26"width="77"]]andswitchedbacktoviewmode[[image:Screenshot2025-12-10at19.56.08.png||height="27"width="120"]]toverify the results.Allchangesmadeare appliedinstantly, allowing immediateresultchecking.403 + <p>A created report can be downloaded <img class="inline-icon" src="https://wiki.centosoftware.com/xwiki/bin/download/CENTO%20Manuals/3.%20Flexible%20Reports%20Guide/WebHome/Screenshot%202025-12-10%20at%2020.19.04.png" alt="Download report"/> in Excel format or deleted <img class="inline-icon" src="https://wiki.centosoftware.com/xwiki/bin/download/CENTO%20Manuals/3.%20Flexible%20Reports%20Guide/WebHome/Screenshot%202025-12-10%20at%2020.19.29.png" alt="Delete report"/> by marking the unwanted report with a checkmark. The generated Excel file preserves all formulas, charts, and cell formatting specified in the template (Figure 5.5).</p> 224 224 225 -= 4. MANAGING ACCESS RIGHTS TO REPORTS = 405 + <div class="fig"> 406 + <img src="https://wiki.centosoftware.com/xwiki/bin/download/CENTO%20Manuals/3.%20Flexible%20Reports%20Guide/WebHome/Screenshot%202025-12-16%20183927.png" alt="Report generated in Excel format" style="max-width:100%;" onclick="openLightbox(this)"/> 407 + <p class="fig-cap">Figure 5.5. Report generated in Excel format</p> 408 + </div> 226 226 227 - Accessrightsmanagementforflexible reportsisbasedontheinformationmodel.Theconfigurationoftheinformationmodelisdetailed in theInformationModelConfigurationManual.410 + <p>The report manager supports versioning. Clicking the <strong>Copy</strong> button <img class="inline-icon" src="https://wiki.centosoftware.com/xwiki/bin/download/CENTO%20Manuals/3.%20Flexible%20Reports%20Guide/WebHome/Screenshot%202025-12-10%20at%2020.20.56.png" alt="Copy report"/> copies the report, adding the suffix “– v1”, “– v2”, etc. to its name. The new version appears in a nested list under the root report (Figure 5.6) and can be renamed, copied, downloaded, uploaded, or deleted independently.</p> 228 228 229 -Depending on the task, either a separate structure can be created for flexible reports, or an existing one can be used. 412 + <div class="fig"> 413 + <img src="https://wiki.centosoftware.com/xwiki/bin/download/CENTO%20Manuals/3.%20Flexible%20Reports%20Guide/WebHome/Screenshot%202025-12-16%20184124.png" alt="Nested versions of the generated report" style="max-width:100%;" onclick="openLightbox(this)"/> 414 + <p class="fig-cap">Figure 5.6. Nested versions of the generated report</p> 415 + </div> 230 230 231 - Tolinka reportto an object,openthetemplate editingform (seeFig.3.2) byclickingthe templatesettingsbutton[[image:Screenshot2025-12-10at20.11.01.png||height="33"width="33"]]next toatemplate, andselectan informationmodelobjectin theObjectfield.417 + <p>Report versions can also be created by uploading a previously downloaded and edited Excel file: click the <strong>Download</strong> <img class="inline-icon" src="https://wiki.centosoftware.com/xwiki/bin/download/CENTO%20Manuals/3.%20Flexible%20Reports%20Guide/WebHome/Screenshot%202025-12-10%20at%2020.43.44.png" alt="Download"/> button on the report version, select the file in the pop-up window, and click <img class="inline-icon" src="https://wiki.centosoftware.com/xwiki/bin/download/CENTO%20Manuals/3.%20Flexible%20Reports%20Guide/WebHome/Screenshot%202025-12-10%20at%2020.44.40.png" alt="Upload"/>.</p> 232 232 233 - Next,findtheselectedobjectinthe Useraccessrightsinterface(Settings–System– UserAccessRights)andusethecheckmarksintheFlexibleReportslinetoselect whichroleswillhaveaccess to theflexible report boundto the object(Fig.4.1).419 + <p>Reports created by a user can be hidden from or published to other users using the <strong>Hide/Publish</strong> button <img class="inline-icon" src="https://wiki.centosoftware.com/xwiki/bin/download/CENTO%20Manuals/3.%20Flexible%20Reports%20Guide/WebHome/Screenshot%202025-12-10%20at%2020.45.11.png" alt="Hide/Publish"/>. Hidden reports are visible only to the user who generated them.</p> 234 234 235 - [[image:Screenshot2025-12-10at20.11.53.png]]421 + <div class="parent-topic">Parent topic: <a href="[[CENTO Manuals>>doc:CENTO Manuals.WebHome]]">CENTO Manuals</a></div> 236 236 237 - Figure4.1 – Rights toflexible reports intheuser settings423 +</div><!-- /doc-content --> 238 238 239 -Users without roles that have access to flexible reports bound to an object will not see those reports in the list of available templates. 425 +<nav class="doc-toc"> 426 + <div class="toc-header"> 427 + <strong>On This Page</strong> 428 + <button class="toc-toggle" id="toc-tog" title="Collapse">«</button> 429 + </div> 430 + <ul id="toc-list"> 431 + <li class="tl1"><a href="#s-intro" data-toc>1. Introduction</a></li> 432 + <li class="tl1"><a href="#s-query" data-toc>2. Query Language</a></li> 433 + <li class="tl2"><a href="#s-query-general" data-toc>2.1. General information</a></li> 434 + <li class="tl2"><a href="#s-query-timestamps" data-toc>2.2. Timestamps</a></li> 435 + <li class="tl2"><a href="#s-query-format" data-toc>2.3. Query format</a></li> 436 + <li class="tl2"><a href="#s-query-examples" data-toc>2.4. Query examples</a></li> 437 + <li class="tl2"><a href="#s-query-devices" data-toc>2.5. Device codes and tags</a></li> 438 + <li class="tl1"><a href="#s-templates" data-toc>3. Managing Templates</a></li> 439 + <li class="tl1"><a href="#s-access" data-toc>4. Access Rights</a></li> 440 + <li class="tl1"><a href="#s-reports" data-toc>5. Report Management</a></li> 441 + </ul> 442 +</nav> 240 240 241 - =5.REPORT MANAGEMENT =444 +</div><!-- /doc-wrap --> 242 242 243 -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"]]. 446 +<script> 447 +(function(){ 448 + var bar = document.getElementById('rn-prog'); 449 + var top = document.getElementById('rn-top'); 450 + window.addEventListener('scroll', function(){ 451 + var d = document.documentElement; 452 + var pct = d.scrollTop / (d.scrollHeight - d.clientHeight); 453 + bar.style.width = (pct*100)+'%'; 454 + d.scrollTop > 280 ? top.classList.add('on') : top.classList.remove('on'); 455 + }, {passive:true}); 244 244 245 -Report generation can be performed in the following ways: 457 + var links = Array.from(document.querySelectorAll('[data-toc]')); 458 + var secs = links.map(function(a){ return {el:document.getElementById(a.getAttribute('href').slice(1)),a:a}; }).filter(function(s){return s.el;}); 459 + var busy = false; 460 + var obs = new IntersectionObserver(function(entries){ 461 + if(busy)return; 462 + entries.forEach(function(e){ 463 + if(!e.isIntersecting)return; 464 + var i=secs.findIndex(function(s){return s.el===e.target;}); 465 + if(i<0)return; 466 + secs.forEach(function(s){s.a.classList.remove('toc-on');}); 467 + secs[i].a.classList.add('toc-on'); 468 + var toc=document.querySelector('.doc-toc'); 469 + var link=secs[i].a; 470 + toc.scrollTop=link.offsetTop-toc.offsetTop-toc.clientHeight/2+link.clientHeight/2; 471 + }); 472 + },{rootMargin:'-8% 0px -60% 0px',threshold:0}); 473 + secs.forEach(function(s){obs.observe(s.el);}); 474 + links.forEach(function(a){ 475 + a.addEventListener('click',function(e){ 476 + var id=a.getAttribute('href').slice(1); 477 + var el=document.getElementById(id); 478 + if(!el)return; 479 + e.preventDefault(); 480 + busy=true; 481 + secs.forEach(function(s){s.a.classList.remove('toc-on');}); 482 + a.classList.add('toc-on'); 483 + el.scrollIntoView({behavior:'smooth',block:'start'}); 484 + setTimeout(function(){busy=false;},900); 485 + }); 486 + }); 246 246 247 -**~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. 488 + var tocList=document.getElementById('toc-list'); 489 + var togBtn=document.getElementById('toc-tog'); 490 + var collapsed=false; 491 + togBtn&&togBtn.addEventListener('click',function(){ 492 + collapsed=!collapsed; 493 + tocList.style.display=collapsed?'none':''; 494 + togBtn.textContent=collapsed?'\u00bb':'\u00ab'; 495 + }); 248 248 249 -[[image:Screenshot 2025-12-10 at 20.14.18.png]] 497 + var lb=document.getElementById('rn-lb'); 498 + var lbI=document.getElementById('rn-lb-img'); 499 + var lbC=document.getElementById('rn-lb-cap'); 500 + window.openLightbox=function(img){lbI.src=img.src;lbI.alt=img.alt;lbC.textContent=img.alt;lb.classList.add('open');document.body.style.overflow='hidden';}; 501 + window.closeLightbox=function(){lb.classList.remove('open');document.body.style.overflow='';}; 502 + lb.addEventListener('click',function(e){if(e.target===lb)closeLightbox();}); 503 + document.addEventListener('keydown',function(e){if(e.key==='Escape')closeLightbox();}); 250 250 251 -Fig.5.1 – Create report form 505 + var toast=document.getElementById('rn-toast'); 506 + var t; 507 + window.copyAnchor=function(id){ 508 + var url=location.href.split('#')[0]+'#'+id; 509 + if(navigator.clipboard)navigator.clipboard.writeText(url).catch(function(){}); 510 + else{var x=document.createElement('textarea');x.value=url;document.body.appendChild(x);x.select();document.execCommand('copy');document.body.removeChild(x);} 511 + toast.classList.add('on');clearTimeout(t);t=setTimeout(function(){toast.classList.remove('on');},1600); 512 + }; 252 252 253 - **Important:**Whenselecting Per interval while creating a reportfor a day, month, or year, the system will generate multiple reports - one for each day, month, or year within the user-defined interval basedonthe selected template.254 - 255 - Inreportsforaperiod(daily, monthly, or annual), theperiod should always bespecifiedwhencreating the report.256 - 257 - **2.automatically**–configuringautogenerationinthe settings [[image:Screenshot 2025-12-10at 20.14.58.png||height="32" width="32"]]of the templateinthe template list.In the pop-up window (see Fig. 5.2), define thereport generation scheduleby specifying a Cron expression, or usethe UI-based Cron editor(openedby clicking the button [[image:Screenshot 2025-12-10at 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/yearwill be used when generating the report. When the "Current period" switch is set,thecurrent day/month/year will be usedwhen generating the report.258 - 259 - Whengeneratingreportsautomatically, reportscanbesaved to a network resource and/or sentbye-mail.Toenabletheseoptions,selectthecorresponding items (see Fig. 5.2).260 - 261 - **Important:**262 - 263 - *Whensavingtoanetworkresource,theCENTO servershouldhavenetwork accesstothe specifiedlocation.264 - *Tosendreportsbye-mail,amailservershould be configured inthe corresponding CENTO module.Mail server configuration is described intheSetupManual: Mail Servers.265 - 266 - Then,clickthebutton [[image:Screenshot2025-12-10at20.17.04.png||height="27"width="55"]]inthe Templatesetupwindow.267 - 268 - [[image:Screenshot2025-12-10at20.17.46.png]]269 - 270 - Fig.5.2–Templatesetup window271 - 272 - Todisplayreportsgeneratedusingtheselected 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.273 - 274 - Thecreatedreportcanbe downloaded [[image:Screenshot2025-12-10 at 20.19.04.png||height="31" width="29"]] in Excel formatordeleted [[image:Screenshot2025-12-10 at 20.19.29.png||height="32" width="31"]] bymarking theunwanted report with a checkmark.275 - 276 - ThereportcreatedinExcelformatis showninFig. 5.5. All formulas, charts, andcell formattingspecified inthetemplatearepreserved inthereport file.277 - 278 - Thereportmanagerhastools 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.279 - 280 - The created version is included in the nested list under the root report(see Fig.5.7). The new version can be renamed, copied, downloaded, uploaded, or deleted regardless of the original report.281 - 282 - 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.514 + (function(){ 515 + var toc=document.querySelector('.doc-toc'); 516 + var wrap=document.querySelector('.doc-wrap'); 517 + if(!toc||!wrap)return; 518 + var navbar=document.querySelector('.navbar,nav.navbar,#topBar,header'); 519 + var navH=navbar?navbar.offsetHeight:0; 520 + var footer=document.querySelector('footer,.xwikifooter,#xwikifooter,.bottombar,.sticky-container'); 521 + function update(){ 522 + var wr=wrap.getBoundingClientRect(); 523 + if(wr.top<=navH){ 524 + var footerTop=footer?footer.getBoundingClientRect().top:window.innerHeight; 525 + var h=Math.max(0,Math.min(window.innerHeight,footerTop)-navH); 526 + toc.classList.add('is-fixed'); 527 + toc.style.top=navH+'px'; 528 + toc.style.left=(wr.right-200)+'px'; 529 + toc.style.height=h+'px'; 530 + }else{ 531 + toc.classList.remove('is-fixed'); 532 + toc.style.top=toc.style.left=toc.style.height=''; 533 + } 534 + } 535 + requestAnimationFrame(function(){requestAnimationFrame(function(){ 536 + update(); 537 + window.addEventListener('scroll',update,{passive:true}); 538 + window.addEventListener('resize',update,{passive:true}); 539 + });}); 540 + })(); 541 +})(); 542 +</script> 543 +{{/html}}
- 1766251887280-599.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Sergei - Size
-
... ... @@ -1,0 +1,1 @@ 1 +63.2 KB - Content
- 5.3..png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Lana - Size
-
... ... @@ -1,0 +1,1 @@ 1 +27.5 KB - Content
- Screenshot 2025-12-16 183447.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Lana - Size
-
... ... @@ -1,0 +1,1 @@ 1 +127.4 KB - Content
- Screenshot 2025-12-16 183927.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Lana - Size
-
... ... @@ -1,0 +1,1 @@ 1 +47.7 KB - Content
- Screenshot 2025-12-16 184124.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Lana - Size
-
... ... @@ -1,0 +1,1 @@ 1 +26.0 KB - Content