2017-01-05 42 views
-2

我有一個現有的水晶報告接受一個參數。我想使用VB.Net或C#打開報告,傳遞一個參數,然後將其作爲PDF導出。vb.net將參數傳遞給現有的水晶報告並導出

此外,這需要一個簡單啓動的控制檯應用程序。這並不需要在網站上。無需用戶界面。

任何幫助將不勝感激。從最近一次嘗試

代碼:

Imports CrystalDecisions.CrystalReports.Engine 
Imports CrystalDecisions.ReportSource 
Imports CrystalDecisions.shared 
Imports CrystalDecisions.Windows.Forms 
Imports System.Windows.Forms 
Imports CrystalDecisions.Web 
Imports CrystalDecisions.CrystalReports 
Imports System.IO 
Imports System.Net 

Module Module1 
Sub main() 
    Dim myReport As New ReportDocument 
    Dim crystalreportviewer As New CrystalReportViewer 
    Dim param1Fileds As New CrystalDecisions.Shared.ParameterFields 
    Dim param1Field As New CrystalDecisions.Shared.ParameterField 
    Dim param1Range As New CrystalDecisions.Shared.ParameterDiscreteValue 
    Dim CRYRpt1 As New CrystalReportViewer 

    Dim myParams = New ParameterFields() 
    Dim myParam = New ParameterField() 
    Dim myDiscreteValue = New ParameterDiscreteValue() 

    myParam.ParameterFieldName = "@SerialNumber" 
    myDiscreteValue.Value = "DA1714625" 
    myParam.CurrentValues.Add(myDiscreteValue) 

    myParams.Add(myParam) 

    Dim cryRpt As ReportDocument 

    cryRpt = New ReportDocument() 

    cryRpt.Load("c:\users\cjniva\6850.rpt") 


    Dim CrExportOptions As ExportOptions 
    Dim CrDiskFileDestinationOptions As New DiskFileDestinationOptions() 
    Dim CrFormatTypeOptions As New PdfRtfWordFormatOptions() 
    CrDiskFileDestinationOptions.DiskFileName = "C:\\Data\\Data1\\DemoDates.pdf" 

    CrExportOptions.ExportDestinationType = ExportDestinationType.DiskFile 
    CrExportOptions.ExportFormatType = ExportFormatType.PortableDocFormat 
    CrExportOptions.DestinationOptions = CrDiskFileDestinationOptions 
    CrExportOptions.FormatOptions = CrFormatTypeOptions 
    cryRpt.Export() 

End Sub 

最新版本:

Sub main() 

    'Private Sub RunReport() 
    Dim report As New ReportDocument 
    report.Load("c:\users\cjniva\desktop\6850.rpt") 
    report.SetDatabaseLogon("dba", "pw") 
    report.SetParameterValue("SerialNumber", "DA3EEXQTO") 
    'report.ReadRecords() 
    Dim exportFilename As String 
    exportFilename = "test.pdf" 
    ExportCrystalReport(report, ExportFormatType.PortableDocFormat, exportFilename) 
End Sub 

Private Sub ExportCrystalReport(ByRef report As ReportDocument, ByVal exportType As CrystalDecisions.Shared.ExportFormatType, ByVal exportFilename As String) 
    Dim expFilename As String = Path.Combine("c:\users\cjniva\desktop\", exportFilename) 
    Dim diskOpts As CrystalDecisions.Shared.DiskFileDestinationOptions = CrystalDecisions.Shared.ExportOptions.CreateDiskFileDestinationOptions() 
    diskOpts.DiskFileName = expFilename 
    Dim exportOpts As CrystalDecisions.Shared.ExportOptions = New CrystalDecisions.Shared.ExportOptions() 
    exportOpts.ExportFormatType = exportType 
    exportOpts.ExportDestinationOptions = diskOpts 
    exportOpts.ExportDestinationType = CrystalDecisions.Shared.ExportDestinationType.DiskFile 
    report.Export(exportOpts) 

End Sub 
+0

太棒了,你有什麼代碼嗎?你有沒有下載CR所需的DLL?這完全是可行的。 – OneFineDay

+0

請參閱原始發帖 – crystalnoob

回答

0

下面是一個簡單的佈局,包括出口部分。

Private Sub RunReport() 
    report.Load(filename) 
    report.SetDatabaseLogon(?,?,?,?) 
    report.SetParameterValue("nameOfParam", paramValueOrVariable) 
    report.ReadRecords() 
    Dim exportFilename As String = {some path output name.pdf} 
    ExportCrystalReport(report, ExportFormatType.PortableDocFormat, exportFilename) 
    report.close() 
    report.Dispose() 
End Sub 

Private Sub ExportCrystalReport(ByRef report As ReportDocument, exportType As CrystalDecisions.Shared.ExportFormatType, exportFilename As String) 
    Dim expFilename As String = Path.Combine({someDirectory}, exportFilename) 
    Dim diskOpts As CrystalDecisions.Shared.DiskFileDestinationOptions = CrystalDecisions.Shared.ExportOptions.CreateDiskFileDestinationOptions() 
    diskOpts.DiskFileName = expFilename 
    Dim exportOpts As CrystalDecisions.Shared.ExportOptions = New CrystalDecisions.Shared.ExportOptions() 
    exportOpts.ExportDestinationOptions = diskOpts 
    exportOpts.ExportFormatType = exportType 
    exportOpts.ExportDestinationType = CrystalDecisions.Shared.ExportDestinationType.DiskFile 
    report.Export(exportOpts) 
End Sub 
+0

如何聲明「報告」?作爲水晶還是報告對象? – crystalnoob

+0

另外,dirTiburon沒有聲明。它應該是什麼? – crystalnoob

+0

這是我使用的目錄。只需在你的機器上使用一個目錄來輸出文件。 – OneFineDay