這個範例和Java 範例程式要表達的是一模一樣,透過ASP 程式在報表產生之前將資料連結的位址置換,以達成一般專案中測試環境資料與正式上線環境資料的聯結。
SimpleChangeDbase_OLEDB.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
%>
|
浙公网安备 33010602011771号