Skip to content
Docs

Printable Tabular Reports

The report runner produces printable tabular reports in the Access sense: a source query, group bands with subtotals, grand totals, page headers and footers, and a print stylesheet. Reports persist as saved objects (type: report).

A report’s definition names a source (a saved query or a table + filter), the columns to show, one or more group bands ({ column, sortDir, totals: [{ column, op }] }), grand totals, and page header/footer text.

The correctness rule: every subtotal and grand total originates from a grouped aggregate query, not from summing the rows currently on screen. A two-level grouped report’s subtotals and grand total match an equivalent hand-written GROUP BY query exactly. Group bands request a stable server ordering before adjacent-row boundaries are derived, so interleaved groups cannot split a band.

  • Print CSS emits a repeating <thead> per printed page and page-break-inside: avoid on band boundaries. Print through window.print — the report renders in whatever engine hosts the page: a desktop browser, or the platform-native webview the Photino desktop shell embeds (WebView2/Chromium on Windows, WebKitGTK on Linux, WKWebView/WebKit on macOS).
  • CSV export flattens the full result set across every page (via paged fetch), so the exported row count and cell values match what a full scroll would show — see export.