This is quite straight-forward using the Sub-Reports facility in the designer. The sample Report here includes one Main Report format - and a series of Sub-Reports for each contributing element.
HighStone imposes the following requirements:
A Sub-Report is inserted in a Parent Report by adding a Sub Report Control to the design. The Name of the added Sub Report Control must be the same as the name of the Report Object it is calling.
Each Sub Report must include a SQL Record Selection script that loads all target records for all Parent Object Records that make up the entire report. HighStone makes only one call to the connected database for each Report Object in the design - irrespective of how many Parent Object Records are needed. The SQL definition should also order the records appropriately.
A filter is used to link the required list of source records for any given Parent Record from the full loaded list, detailed below.
For Report Designs that only include one level of Sub Reports, HighStone will automatically connect each Sub Report to the top or Parent Report Object [always the first defined]. Where Sub reports run to two, three or more levels, each of these lower level Sub Report Objects must include a label control, named lblParentReport, that holds the name of it's parent Report Object in the Text property.