下面介紹使用BOE XI COM SDK 在ASP 程式中,將資料庫聯結的帳號及密碼傳入報表中。

ChangeDBLogon.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 oConnInfos = Session("oClientDoc").DatabaseController.GetConnectionInfos()
 	oConnInfos.Item(0).UserName = "sa"
 	oConnInfos.Item(0).Password = "flikwang"
 	Session("oClientDoc").DatabaseController.SetConnectionInfos oConnInfos
 
 	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:22  James Wong   阅读(329)  评论(0编辑  收藏  举报