One thing off the top of my head. The Join function will create a string of selected values.
Put this in each sub report definition.
One thing to note.
All Sub reports will "fire" even if you do not have the visble flag set to true. Meaning the queries for all 6 reports will execute.
One way to cheat is add a parameter that the proc will use if its "false" then it will return an empty recordset that executes immediatelly. Or if your passing a daterange to the subreport make the endDate before the startdate, and it will execute immediatelly and return no rows. Make sense?