Hi,
the approach using sub reports is fine if you plan to run the reports p1a_quotation, p1b_quotationlinesummary, p1c_quotationlinestandards and p1d_quotationlinesizechart also as standalone reports or as sub reports of other reports.
If they are used only for this report then I would prefer printing the data directly in the main report. That way you have only one report, one design file and you can see the whole design at one glance in the report designer.
>The desired output report is a covering letter which summarizes all of the products and their cost. Then for each product a series of pages is required showing the product in more detail including the additional information.
The solution you have chosen (looping over the data twice) seems fine to me (If you don't mind the fact that the data can have changed between the first and the second loop).
You can replace the sub reports p1b_quotationlinesummary, p1c_quotationlinestandards and p1d_quotationlinesizechart which have identical arguments by a single "PRINT qthd.*, qtln.*". In the design you can then print three sections from that information and use the variable content several times. Unlike the duplicated list, there is no need to ship the variable values more than once in this case.
>I am not even sure if the attached code extract is valid, i.e. can you start and stop sub reports from within a loop?
I didn't test but the code looks valid to me but as said I would replace all "START REPORT", "OUTPUT TO REPORT xyz" and "FINISH REPORT"s by "PRINT xyz".
Regards,
Alex