Appearance
Reports
Last updated
License feature: Reporting ModuleReports turn alarm, downtime, quality, OEE and historian data into a printable page — a daily production summary, a weekly alarm review, a monthly OEE report for management. You lay a report out on a page grid, then generate it as a PDF or a self-contained HTML file — or export its data as a CSV file for a spreadsheet — on demand, or email it on a schedule.
Reports need the Reporting Module license feature. The sidebar entry Reports is hidden without it.
The topic is split into:
- this article — the Reports page, generating and downloading;
- Report designer — laying out a report;
- Report module reference — every module and setting, and the columns each data source provides;
- Scheduled report emails;
- How reports render, and troubleshooting.
The Reports page
Open Reports (/reports) — "Design, schedule, and email data reports". It has three tabs:
| Tab | Contents |
|---|---|
| Reports | Every report, with its number of Modules and Format, and action buttons |
| Schedules | Email schedules — see Scheduled report emails |
| History | The 50 most recently generated files, newest first |
Create a report
- On the Reports tab, click New Report.
- Type a name in the browser prompt ("Report name?") and click OK.
- The designer opens with an empty Letter portrait page and a default date range of Last 7 Days.
- Add modules, click Save, then Generate.
Report actions
Each row on the Reports tab has five buttons:
| Button | What it does |
|---|---|
| Play (Generate PDF) | Renders the saved report as a PDF and downloads it. It also appears in History |
| Spreadsheet (Download CSV) | Exports the saved report's data as a CSV file and downloads it — see CSV export below. It also appears in History |
| Calendar (Schedule) | Opens the Schedules tab with a new schedule for this report |
| Pencil (Edit) | Opens the designer |
| Trash (Delete) | Deletes the report after "Delete this report?". Its schedules are deleted with it |
Generating a PDF takes several seconds on the appliance (longer the first time, while the rendering browser starts); a CSV needs no browser and takes only as long as the data queries. If it fails, nothing downloads and an error notification shows the reason; the History tab also lists the failed run with Error and the reason as a tooltip.
CSV export
A CSV holds the data of the report, not its look. It is built from the same data the PDF shows, at the moment you generate it, so a CSV and a PDF generated together have the same numbers.
| Module | What goes in the CSV |
|---|---|
| Data Table | Its columns and rows, up to Max Rows |
| Crosstab | Row-field column, one column per column value, then Total; the Total row last (when row and column totals are on) |
| Chart | Time, then one column per chart tag (its label), one row per timestamp |
| KPI Stat | Value, plus Unit when the module has one |
| Header, Text, Image, Divider, dashboard widgets | Left out — they have no rows. Dashboard widgets fetch their data in the browser while a PDF renders, so there is nothing to export |
- With one data module, the file is a plain CSV: a header row, then the rows.
- With several, each module is a section in page order (top to bottom, then left to right): the Module Title on a line of its own, its header row, its rows, then a blank line before the next module.
- A module whose data fails (for example
InfluxDB is not available) gets a section with an Error column holding the reason, instead of stopping the export. - Values are raw: timestamps stay in ISO-8601 UTC (
2026-10-15T12:00:00.000Z), numbers keep full precision, and crosstab cells are not rounded. The words the CSV adds (Time, Value, Unit, Total, Error) are in the report creator's language. - The file is UTF-8 with a byte-order mark and standard (RFC 4180) quoting, so Excel opens it with accented text intact. Text starting with
=,+,-or@is written with a leading apostrophe so a spreadsheet shows it rather than running it as a formula; negative numbers are not affected. - A report with no Data Table, Crosstab, Chart or KPI Stat module can't be exported: "This report has no Data Table, Crosstab, Chart or KPI Stat module, so there is nothing to export as CSV."
History tab
| Column | Meaning |
|---|---|
| Report | Report name |
| Generated | When it was generated, in your browser's time zone |
| Size | File size |
| Status | generating, completed or failed |
| Download | Download icon for completed files; Error (hover for the reason) for failed ones |
The tab refreshes every 10 seconds. A run that produced more than one format (a schedule with several Formats ticked) links one file: the PDF when there is one, otherwise the first produced (HTML before CSV). The other files are saved on disk but not linked.
Where files are kept
Generated files are written to a reports folder next to the appliance's SQLite database, named <Report_name>_<timestamp>.pdf, .html or .csv. Files older than Report files under Settings → Data Retention (180 days by default) are deleted automatically, together with their History entries; set it to 0 to keep them forever. If a file has been removed from disk, downloading it answers File no longer exists.
Who can do what
| Action | Minimum role |
|---|---|
| See reports, schedules and history; download files | Any user (with the feature licensed) |
| Create, edit, delete, generate reports | Editor |
| Create, edit, delete, run schedules | Editor |
API
| Method | Endpoint | Purpose |
|---|---|---|
| GET | /api/reports/templates | List reports |
| POST | /api/reports/templates | Create a report |
| GET | /api/reports/templates/:id | Get one report and its layout |
| PUT | /api/reports/templates/:id | Update a report |
| DELETE | /api/reports/templates/:id | Delete a report |
| POST | /api/reports/:id/generate | Generate: { "formats": ["pdf", "html", "csv"] } (any of them; default ["pdf"]); returns historyId and the files. An unknown format answers 400 formats must be a list of pdf, html, csv |
| GET | /api/reports/history | Generated files (?templateId=, ?limit= up to 200) |
| GET | /api/reports/download/:historyId | Download a generated file |