OK, here's a little bit more detail about
the proposed solution:
Imagine you have a report showing for each
customer all their orders and all the line items.
You can't create it as a Main report for Customer and within that subreport for Orders, and within that subreport another subreport for line items. This is because a subreport cannot conain another subreport.
As a side note, we can obviously use grouping levels and avoid the need for subreports in this case. This is just for demonstration purposes. However, in many cases what seems like a need for a subreport can be removed by better SQL and grouping.
Now assuming we must separate Customers/Orders/Line Items into a main report and subreports, we can still achieve this using what I call a "middle-out" approach:
1. Make the middle layer (Orders) the main report.
2. Make the top layer (Customer) a subreport inserted in the group header of each Order. This subreport will return only one Customer for each order. If needed, you can suppress it (using a shared variable) if the previous order had the same customer.
3. Make the low layer (Line Items) a subreport
in the group footer of the Orders. This subreport would show all line items for a given order.
I hope this clarifies things.
Cheers,
- Ido ixm7@psu.edu