Show or hide

  Creating Reports in Report Workshop for Delphi and C++Builder

Basic Reports

To make a simple report, associate a data table with a document, insert some fields in text and run the report generation. Alternatively, you can associate a data table not with the whole document, but with a report table (grid).

It's as simple as it's shown in this video:

Master/Detail Reports, Banded Reports

To make a master/detail reports, associate a master data query with a larger part of your document, and a detail data query with its fragment.

The following cases are possible:

  • master: the whole document, detail: report table rows
  • master: report table rows, detail: report table cell
  • master: report table rows, detail: subset of cells belonging to these rows
  • master: report table cell, detail: rows of a nested report table

The list above shows only relations between the closest document layers. Any layer may be omitted, for example you can build a master/detail relationship between rows of a root report table and a nested report table.

In addition, details can be represented by Query() function in expressions. Moreover, Query() can be called from Query(), making master/details reports by itself.

Which data queries can define a master/detail relationship?

There are several possibilities:

  • the detail query may refer to values of the master query (for example, if SQL is used: “select * from DetailTable where DetailTable.MasterID = {MasterID}”)
  • if the master query has a dataset field, you can specify it as a detail query (for example, “field:FieldName”)
  • if data are provided from existing datasets (using a universal DB data provider), they may already have master/detail relation established, and this relation is used by the report automatically

The videos below show how to make master/detail reports using different parts of documents.

Introduction and how to use a document/table relation:

How to use table row/cell, table/nested table relations:

How to use rows/subset of rows relation; how to use a cross tabulation to build a master/detail report.

The detail object can be a master for another, sub-detail object. So you can add sub-detail, sub-sub-detail, and so on, whithout limitations.

There are may be multiple details for the same master.

The video below shows how to build four-level master/detail report having two details at one of levels:

Report Wizard

ReportWorkshop includes a wizard dialog (implemented as an action) that can generate complex master-detail reports from data.

The videos below show this wizard in action.

All types of single-level report, an example of master-detail report:

Another master-detail report (4 levels):

One more master-detail report (5 levels):