you need to remove / change the parameter in the subreport that is limiting the information returned...at least that is my first thought. You probably have to move the subreport to another section...No detail main, no reason to call the subreport.
I don't use subreports very often as they are not the most effective method. Every subreport generates another hit to the database, which can cause a report to run slower. I get all the data I need in a stored proc and generate the report off of that...only 1 hit to the database.
For me, using the method as described, if there is no detail line, there is no subreport, which means that the data might need to be displayed in another section, or that the subreport will be repeated for multiple detail lines as the conditions haven't changed, so the same report is generated.
HTH