2017-01-05 40 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