星期一, 8月 15, 2005

利用crystal report 直接匯出pdf檔給client

'''利用crystal report 直接匯出pdf檔給client
'''在作業目錄底下新建一個reports目錄,權限設定為everyone可讀寫
'''記得要imports 以下兩項
'''Imports CrystalDecisions.CrystalReports.Engine
'''Imports CrystalDecisions.Shared
'''
Dim RptDoc As New ReportDocument
Dim rptFile As String = Server.MapPath("license.rpt")
'''
RptDoc.Load(rptFile)
''' 登入資料庫
Dim logonInfo As New TableLogOnInfo
Dim rptTable As Table
For Each rptTable In RptDoc.Database.Tables
logonInfo = rptTable.LogOnInfo
With logonInfo.ConnectionInfo
.ServerName = "localhost"
.DatabaseName = "ff"
.UserID = "aa"
.Password = "aa"
End With
rptTable.ApplyLogOnInfo(logonInfo)
Next

'RptDoc.ExportOptions.ExportFormatType = ExportFormatType.WordForWindows
RptDoc.ExportOptions.ExportFormatType = ExportFormatType.PortableDocFormat
RptDoc.ExportOptions.FormatOptions = New PdfRtfWordFormatOptions
''' 設定參數
Dim Paravalues As New ParameterValues
Dim ParaDisValue As New ParameterDiscreteValue
'ParaDisValue = New ParameterDiscreteValue
ParaDisValue.Value = 6
Paravalues.Add(ParaDisValue)

RptDoc.DataDefinition.ParameterFields("License_Num").ApplyCurrentValues(Paravalues)

Dim crExportOptions As ExportOptions
Dim crDiskFileDestinationOptions As DiskFileDestinationOptions
Dim fname As String
fname = Server.MapPath("exports/") & Session.SessionID.ToString & ".pdf"
crDiskFileDestinationOptions = New DiskFileDestinationOptions
crDiskFileDestinationOptions.DiskFileName = fname
crExportOptions = RptDoc.ExportOptions
With crExportOptions
.DestinationOptions = crDiskFileDestinationOptions
.ExportDestinationType = ExportDestinationType.DiskFile
.ExportFormatType = ExportFormatType.PortableDocFormat
End With
RptDoc.Export()
Response.ClearContent()
Response.ClearHeaders()
Response.ContentType = "application/pdf"
Response.WriteFile(fname)
Response.Flush()
Response.Close()
System.IO.File.Delete(fname)

沒有留言: