About nested reports
A nested report is a report within another report.
There are two ways to create reports containing nested
reports:
-
Create a composite report using the Composite presentation
style -
Place a nested report in another report
About creating a composite
report
You can choose the Composite presentation style to create a new
report that consists entirely of one or more nested reports. This type
of report is called a composite report. A composite report is a
container for other reports.
You can use composite reports to print more than one report on a
page.
Composite report
For example, the following composite report consists of three
tabular reports. One of the tabular reports includes a graph:
Composite report in the Design
view
In the Design view, you see three boxes that represent the
individual tabular reports that are included in the composite report.
The only additional controls in this example are a title, date, and page
number:
About placing a nested report within another
report
You can place one or more reports within another report. The
report you place is called the nested report. You can place a nested
report in any type of report except crosstab. Most of the time you will
place nested reports in freeform or tabular reports.
Often, the information in the nested report depends on information
in the report in which it is placed (the base report). The nested report
and the base report are related to each other by some common data. The
base report and the nested report have a master/detail
relationship.
Freeform report with a related nested
report
For example, the following freeform report lists all information
about a customer and then includes a related nested report (which
happens to be a tabular report). The related nested report lists every
order that the customer has ever placed. The base report supplies the
customer ID to the nested report, which requires a customer ID as a
retrieval argument. This is an example of a master/detail
relationship—one customer has many orders:
What you see in the Design
view
In the Design view, you see everything in the base report plus a
box that represents the related nested report:
The difference between nested and composite
reports
There are two important differences between nesting using the
Composite style and nesting a report within a base report.
Data sources. The composite report does not have a data source—it is just a
container for nested reports. In contrast, a base report with a nested
report in it has a data source. The nested report has its own data
source.
Related nesting. The composite report cannot be used to relate reports to each
other in the database sense. One report cannot feed a value to another
report, which is what happens in a master/detail report. If you want
to relate reports to each other so that you can create a master/detail
report, you need to place a nested report within a base report.
How retrieval works
When you preview (run) a composite report, PowerBuilder retrieves
all the rows for one nested report, and then for another nested report,
and so on until all retrieval is complete.Your computer must have a
default printer specified, because composite reports are actually
displayed in print preview mode.
When you preview (run) a report with another related report nested
in it, PowerBuilder retrieves all the rows in the base report first.
Then PowerBuilder retrieves the data for all nested reports related to
the first row. Next, PowerBuilder retrieves data for nested reports
related to the second row, and so on, until all retrieval is complete
for all rows in the base report.
For information about efficiency and retrieval, see Supplying retrieval arguments to relate a nested
report to its base report.
Limitations on nesting
reports
For the most part you can nest the various types of report styles.
However, limitations apply to two of them.
Crosstabs. You cannot place a crosstab with retrieval arguments within
another report as a related nested report. However, you can include a
crosstab in a Composite report.
RichText reports. You cannot nest a RichText report in any way. You cannot place a
RichText report in another report, and you cannot include a RichText
report in a Composite report.