我已經在過去做過這樣的事情,你可能可以用於你的目的。通常情況下,我使用下拉列表或列表框來允許用戶選擇他們想要查看的文件,然後使用項目索引傳遞給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
回答關於傳遞名稱作爲參數的具體問題。你可以這樣做:
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
你的意思是報告文件名,即filename.rpt – Saar 2010-12-03 13:40:37