Hi and welcome.
If I understand you, you have an Estimate business object, a material item business object, and a component business object, and I presume that each is owned by the former, i.e., components are owned by manufactured items and manufactured items are owned by Estimates. Whether or not that's correct won't matter too much, just follow this concept and apply it to what you have.
Make an "estimate" report, as you have probably done. This would only contain the attributes of the estimate business object, like the date and the customer, etc.
Now make another "item" report that contains the manufactured item attributes, such as name, item number, etc.
Now make another "component" report that contains the attributes of the components.
In your "item" report, include the "component" report as a sub report, and in your "estimate" report, include the "item" report as a sub report.
Each sub report has it's own query, just set that up so that each relates to the other. For example, the query for the component report would be something like "component.item.id=thisitem.id".
There are a few things to monkey with that you should be able to handle. Good luck.