接著介紹第二種匯出報表的程式寫法,也就是藉由BOE XI COM SDK 提供的CrystalReports.CrystalReportExportControl 元件來達成。

CE10_RPT_ReportExport2.asp
Code:
 <%@ Language=VBScript CodePage=65001 %>
 
 <%
 	Dim CMS
 	Dim Username
 	Dim Password
 	Dim Authtype
 
 	CMS 	   = "tom"
 	Username   = "administrator"
 	Password   = ""  
 	Authtype   = "secEnterprise"
 
 	Dim oEnterpriseSessionMgr
 	Dim ceSession
 	Dim iStore
 
 	Set oEnterpriseSessionMgr = Server.CreateObject("CrystalEnterprise.SessionMgr")
 
 	Set ceSession = oEnterpriseSessionMgr.Logon(Username, Password, CMS, Authtype)
 
 	Set iStore = ceSession.Service("","InfoStore")
 
 	Dim rptappfactory
 	Dim ReportName
 	Dim Reports
 	Dim Report
 	Dim oConnInfos
 
 	ReportName = "報表名稱"
 
 	Set Reports = iStore.Query("SELECT SI_ID, SI_NAME FROM CI_INFOOBJECTS WHERE SI_PROGID = 'CrystalEnterprise.Report' and SI_NAME='" + ReportName + "'")
 	Report = Reports.Item(1).Properties("SI_ID")
 
 	Set rptappfactory = iStore.EnterpriseSession.Service("", "RASReportFactory")
 	Set Session("oClientDoc") = rptAppFactory.openDocument(Reports.item(1))
 
 	Set oConnInfos = Session("oClientDoc").DatabaseController.GetConnectionInfos()
 	oConnInfos.Item(0).UserName = "sa"
 	oConnInfos.Item(0).Password = "flikwang"
 	Session("oClientDoc").DatabaseController.SetConnectionInfos oConnInfos
 
 	Dim crReportExportFormatCrystalReports
 	Dim crReportExportFormatMSWord
 	Dim crReportExportFormatMSExcel
 	Dim crReportExportFormatRTF
 	Dim crReportExportFormatPDF
 	Dim crReportExportFormatRecordToMSExcel
 	Dim crExportFormatText
 	Dim crReportExportFormatCharacterSeparatedValues
 	
 	crReportExportFormatCrystalReports = 0			'Crystal Report
 	crReportExportFormatMSWord  = 1 			'Microsoft Word
 	crReportExportFormatMSExcel = 2				'Microsoft Excel
 	crReportExportFormatRTF = 3				'Rich Text Format
 	crReportExportFormatPDF = 5				'Adobe PDF
 	crReportExportFormatRecordToMSExcel = 6			'Microsoft Excel (Data Only)
 	crExportFormatText = 7					'Plain Text
 	crReportExportFormatCharacterSeparatedValues = 8	'Comma Separated Values
 
 	ExportReport Session("oClientDoc").ReportSource, crReportExportFormatPDF
 %>
 
 <%
 	Sub ExportReport(reportSource, format)
 
 		Dim objectFactory
 		Dim expOpt
 		Dim formatOpt
 		Set objectFactory = CreateObject("CrystalReports11.ObjectFactory.1")
 		Set expOpt = objectFactory.CreateObject("CrystalReports.ExportOptions")
 		
 		Select Case CDbl(format)
 			Case crReportExportFormatCrystalReports
 				'No options.
 			Case crReportExportFormatMSWord
 				Set formatOpt = objectFactory.CreateObject("CrystalReports.RTFWordExportFormatOptions")
 				expOpt.FormatOptions = formatOpt
 			Case crReportExportFormatMSExcel
 				Set formatOpt = objectFactory.CreateObject("CrystalReports.ExcelExportFormatOptions")
 				expOpt.FormatOptions = formatOpt
 			Case crReportExportFormatRTF
 				Set formatOpt = objectFactory.CreateObject("CrystalReports.RTFWordExportFormatOptions")
 				expOpt.FormatOptions = formatOpt
 			Case crReportExportFormatPDF
 				Set formatOpt = objectFactory.CreateObject("CrystalReports.PDFExportFormatOptions")
 				expOpt.FormatOptions = formatOpt
 			Case crReportExportFormatRecordToMSExcel
 				'No options.
 			Case crReportExportFormatText
 				'No options.
 			Case crReportExportFormatCharacterSeparatedValues
 				'No options.
 		End Select
 
 		Dim exportControl
 		Set exportControl = objectFactory.CreateObject("CrystalReports.CrystalReportExportControl")
 		expOpt.ExportFormatType = CDbl(format)
 
 		With exportControl
 			.ReportSource = reportSource
 			.IsOwnForm = true
 			.IsOwnPage = true
 			.ExportOptions = expOpt
 			.ExportAsAttachment = True
 		End With
 
 		Call exportControl.ProcessHttpRequest(Request, Response, Session)
 	End Sub
 %>
posted on 2005-11-10 13:22  James Wong   阅读(577)  评论(0)    收藏  举报