Browse documentation

Building Reports

Define report data sources and views and verify the selected output format.

Reports and exports

QQQ includes report metadata, data sources, views, and rendering actions. A report selects data and defines how it is rendered. A table export uses the table query and selected columns. These are related features with different configuration requirements.

Define a report

Use QReportMetaData with named QReportDataSource entries and report views. QReportDataSource uses withSourceTable and a query filter to select records. The sample report definitions and framework tests show complete view, column, and formula configuration.

Start with the report reference. Verify the output format supported by your chosen view and renderer; installing core does not promise every format or delivery integration.

Delivery and validation

Scheduling, email, SFTP, S3, and other delivery mechanisms need their own configuration and dependencies. Test the actual rendered artifact, empty results, large results, permissions, and date/number formatting. For recurring delivery, also test credentials, failures, and duplicate-delivery behavior.

Saved-report storage behavior

The 4.0 correction completes and closes the generated temporary file before opening the archive destination, so a generation failure leaves the prior archive untouched. A later copy or destination-close failure can still change that archive; this is not an atomic-replacement guarantee.

A caught delivery failure can mark the render FAILED when its history update succeeds, even if archive bytes were already stored. Cancellation requests do not guarantee that generation or delivery stops; additional report/export cancellation boundaries are deferred in #479. Inspect storage before retrying. See saved-report migration boundaries for the existing storage API and deferred history/delivery policies.

See Testing and Scheduled reports.

Powered by qqq