Hi,
Try the below process, it may help you.
In each Subreport count the "Bill of Materials" and store in a Shared Variable.
Based on the Shared Variables we need to suppress the Sub reports.
For example if a subreport contains Bill of Material values then the recordnumber will capture the count of that field.
then we need to write the suppress condition in the main report sections as
if sharedVariable >=1 then true
HTH.
--Praveen G