下面介紹使用BOE XI COM SDK 在ASP 程式中,將資料庫聯結的帳號及密碼傳入報表中。
ChangeDBLogon.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 %> |