Olá Cardoso, tudo bem?
Eu tenho alguns relatórios que possuem subreport.
Para passar os parâmetros para os subreports eu crieu um função FuncConfiguraSubRelatorio aonde você passa o nome do subterport e o parâmetro que quer passar. Dessa maneira, você pode passar parâmetros para quantos subreport você quiser, é só chamar a função várias vezes.
Segue o código abaixo. Espero ter ajudado.
With Principal_Form.CrystalReport1
.ReportFileName = "...REL_PRINCIPAL.RPT"
.SubreportToChange = ""
.Connect = GConnect
.StoredProcParam(0) = [P1]
FuncConfiguraSubRelatorio "SUBREPORT.rpt", [P1]
.WindowState = crptMaximized
.WindowTitle = title
.Action = 1
.SubreportToChange = ""
End With
Public Sub FuncConfiguraSubRelatorio(ByVal WRelatorio As String, ByVal WParam As String)
With Principal_Form.CrystalReport1
.SubreportToChange = WRelatorio
.StoredProcParam(0) = WParam
End With
End Sub