ReportWorkshop Overview | Definitions

<< Click to display table of contents >>

ReportWorkshop Overview | Definitions

Below you can find a list of definitions of key terms used by Report Workshop.

This list may be used as an introduction to Report Workshop: if you read this topic, you receive a general understanding how it works.


Report template: a documents containing fields and report tables. This document can be saved in RVF format.

Final report: a document produced by a report generator from a report template.

Field: a part of text (enclosed in curly brackets) that are processed by a report generator specially. There are five types of fields:

data field,



cross-tab header field,

aggregate function,


Report generator: a component that processes a TRichView component containing a report template to produce a final report.

Data provider: a component providing data for a report generator. These data are needed when calculating values of data fields. A data provider receives a data query and creates a query processor to process it.

Data query: a text string containing a query that are processed by a query processor. Data queries are contained in the report itself, in report table row generation rules, and in cells. Example: SQL SELECT query.

Query processor: a class that processes a data query. As a result, a query processor provides data in a tabular format. Columns correspond to data fields and are identified by names. Rows contain resulting data. Example: a query processor may be a wrapper for a TDataSet-based component.

Report table: a document object (item) for insertion in report templates. It is based on a TRichView table item. A report table has a list of row generation rules, and a list of variables. Cells in report tables may have an associated data query.

Row generation rule: a rule containing a data query that are applied to a range of rows of a report table specified in this rule. A report generator replicates these rows as many times as many records a query processor returns for this query. Data fields in these rows are replaced with values from the corresponding record. Row generation rules may have names. Optionally, a rule may define source cells. In this case, content of these cells are replicated from left to right within row(s), and only then new rows are added.

Report table cells: a cell of a report table. It may have an associated data query. In this case, a report generator replicates a content of this cell as many times as many records a query processor returns for this query.

Data field: one of types of fields in a report template. A report generator replaces a data field code with a value returned by a query processor. By default, the most recent query processor is used, but a data field may refer to a specific row generation rule (by its name); in this case, a query processor created for this rule's data query is used.

Variable: one of types of fields in a report template. A report generator has a list of variables. Each report tables has its own list of local variables. A report generator replaces a variable code with a value of this variable.

Command: one of types of fields in a report template; commands invoke some special operations.

Background visualizer: an object allowing to visualize values associated with report table cells on these cells' background.

Background color changer: an object allowing to visualize values associated with report table cells by changing these cells' background colors and opacity.

Definitions for cross-tab reports

A cross-tab report allows displaying data as a grid, with rows representing one group of data (row fields), columns representing another group of data (column fields), and intersection of rows and columns containing the summarized information (value fields).

Column fields work like a filter: for each record, values from value fields are written to the column corresponding to the specific set of values of column fields. These columns are called data columns. Cross-tab columns may include data columns and summary columns.

Column fields are listed in an order, this order creates cross-tab levels (the first column field corresponds to the highest level, the last column field corresponds to the lowest level). Levels allow grouping data columns: a group of data columns corresponds to the same values of column fields in higher cross-tab levels. A summary column (if exists for this cross-tab level) allows calculating aggregate functions on values from this group of data. Functions can also be inserted in columns outside the cross-tab columns, in this case they calculate on data from all cross-tab columns.

The structure of columns of a cross-tab report is defined in a cross-tab header. A header defines which cross-tab levels have summary columns, how many summary columns they have, how many data columns in the lowest cross-tab level. Cells in a cross-tab header may have special fields for displaying column captions.

Like for normal reports, data for cross-tab report are provided by row generation rules.

Rows below the cross-tab header, not belonging to any row generation rule, can be summary rows: functions inserted in cells of these rows calculate on data from their columns.


There may be a confusion because the word "table" is used for two different types of objects:

tables of a relational database, consisting of records and fields

tables (grids) in TRichView documents, displaying text in rows and columns; in the Report Workshop, the most important type of these tables is report tables.

In this documentation, we refer the first type of tables as "database tables", the second type of tables are "report tables". Please do not confuse these terms.