Skip to content

Reports ​

Last updated

License feature: Reporting Module

Reports 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:

The Reports page ​

Open Reports (/reports) — "Design, schedule, and email data reports". It has three tabs:

TabContents
ReportsEvery report, with its number of Modules and Format, and action buttons
SchedulesEmail schedules — see Scheduled report emails
HistoryThe 50 most recently generated files, newest first

Create a report ​

  1. On the Reports tab, click New Report.
  2. Type a name in the browser prompt ("Report name?") and click OK.
  3. The designer opens with an empty Letter portrait page and a default date range of Last 7 Days.
  4. Add modules, click Save, then Generate.

Report actions ​

Each row on the Reports tab has five buttons:

ButtonWhat 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.

ModuleWhat goes in the CSV
Data TableIts columns and rows, up to Max Rows
CrosstabRow-field column, one column per column value, then Total; the Total row last (when row and column totals are on)
ChartTime, then one column per chart tag (its label), one row per timestamp
KPI StatValue, plus Unit when the module has one
Header, Text, Image, Divider, dashboard widgetsLeft 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 ​

ColumnMeaning
ReportReport name
GeneratedWhen it was generated, in your browser's time zone
SizeFile size
Statusgenerating, completed or failed
DownloadDownload 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 ​

ActionMinimum role
See reports, schedules and history; download filesAny user (with the feature licensed)
Create, edit, delete, generate reportsEditor
Create, edit, delete, run schedulesEditor

API ​

MethodEndpointPurpose
GET/api/reports/templatesList reports
POST/api/reports/templatesCreate a report
GET/api/reports/templates/:idGet one report and its layout
PUT/api/reports/templates/:idUpdate a report
DELETE/api/reports/templates/:idDelete a report
POST/api/reports/:id/generateGenerate: { "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/historyGenerated files (?templateId=, ?limit= up to 200)
GET/api/reports/download/:historyIdDownload a generated file

See also ​

Scada.Ink Help Center