這個範例和Java 範例程式要表達的是一模一樣,透過ASP 程式在報表產生之前將資料連結的位址置換,以達成一般專案中測試環境資料與正式上線環境資料的聯結。

SimpleChangeDbase_OLEDB.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 ReportName
 	Dim Reports
 	Dim Report
 
 	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 OLEDB connect from Northwind to Northwind-Production
 	dataSource 	= "tom"
 	initialCatalog 	= "Xtreme-Production"
 	username 	= "xtremep"
 	password 	= "xtremep"
 	
 	Set oDBInfo = Session("oClientDoc").DatabaseController.GetConnectionInfos().Item(0)
 	Set pbLevel1 = oDBInfo.Attributes
 	pbLevel1.Item("QE_ServerDescription") = dataSource
 	Set pbLevel2 = pbLevel1.item("QE_LogonProperties")
 	
 	With pbLevel2
 		.Item("Data Source") = dataSource
 		.Item("Initial Catalog") = initialCatalog
 	End With
 	
 	pbLevel1.Item("QE_LogonProperties") = pbLevel2
 	oDBInfo.Attributes = pbLevel1
 	oDBInfo.UserName   = username
 	oDBInfo.Password   = password
 	
 	Set Tables = Session("oClientDoc").DataDefController.Database.Tables
 	For Each table in Tables
 		Set newTable = Table.Clone
 		newTable.ConnectionInfo = oDBInfo
 		newTable.QualifiedName = Table.Name
 		Session("oClientDoc").DatabaseController.SetTableLocation table, newTable
 	Next
 
 	Dim Viewer
 	Set Viewer = CreateObject("CrystalReports.CrystalReportViewer")
 	
 	With Viewer
   		.ReportSource = Session("oClientDoc").ReportSource
   		.EnterpriseLogon = iStore.EnterpriseSession
 	End With
 
 	On error resume next
 	Viewer.ProcessHTTPRequest Request, Response, Session
 	
 	if err.number <> 0 then
 	  response.write "Failed to view report" & "</BR>"
 	  response.write "error number: " & err.number & "</BR>"
 	  response.write "error description: " & err.description
 	end if
 %>
posted on 2005-11-10 13:23  James Wong   阅读(399)  评论(0编辑  收藏  举报