2010-12-03 50 views
0

我使用的是調用水晶報表的功能:傳遞水晶報表名稱作爲參數

ShowReport(報表1)

在顯示報告ShowReport:

Dim repDoc As New Report1 **' here i am want to assign crytalReport name** 
repDoc.SetDatabaseLogon("username", "*****") 
CrystalReportViewer1.ReportSource = repDoc 
CrystalReportViewer1.Visible = True 

我怎樣才能做到這一點 ?

+1

你的意思是報告文件名,即filename.rpt – Saar 2010-12-03 13:40:37

回答

1

我已經在過去做過這樣的事情,你可能可以用於你的目的。通常情況下,我使用下拉列表或列表框來允許用戶選擇他們想要查看的文件,然後使用項目索引傳遞給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 
+0

Thanx。它工作得很好。 – Preeti 2010-12-07 05:06:11