J'ai fait quelque chose comme ça dans le passé que vous pourriez utiliser pour vos besoins. Normalement, j'utilise une liste déroulante ou une zone de liste pour permettre à l'utilisateur de sélectionner le fichier qu'il veut voir, puis d'utiliser l'index des éléments pour intFileId.
Private Sub OpenCR(ByVal intfileId As Integer)
Dim aReport As ReportDocument
Select Case intfileId
Case 0 : aReport = New CountSheets
Case 1 : aReport = New CategoryVariance
Case 2 : aReport = New DollarVariance
Case 3 : aReport = New CategoryVarianceAdmin
Case 4 : aReport = New DollarVarianceAdmin
Case 5 : aReport = New PhysicalCount
Case 6 : aReport = New BookToPhysicalCount
Case 7 : aReport = New MissingItemCodes
End Select
aReport.Refresh()
aReport.SetParameterValue("isAmtsShown", isAmtsShown)
aReport.SetParameterValue("parStoreID", StoreID)
aReport.SetDatabaseLogon("username", "password", "server", "table")
crvReports.ReportSource = aReport
End Sub
Pour répondre à la question spécifique concernant la transmission du nom comme argument. Vous pouvez le faire avec quelque chose comme ceci:
Private Sub RunReportbyName()
' The Crystal Report name in
' this project is MyReport.rpt
Dim aReport As ReportDocument = New MyReport
OpenCR(aReport)
End Sub
Private Sub OpenCR(ByVal RepDoc As ReportDocument)
'RepDoc.SetDatabaseLogon("","","","")
CrystalReportViewer1.ReportSource = RepDoc
CrystalReportViewer1.Visible = True
End Sub
Voulez-vous dire le nom du fichier de rapport à savoir filename.rpt – Saar