如果是依照過去習慣傳遞報表參數,也就是使用者先在HTML網頁上輸入參數值,然後再Post到後端的ASP程式上,則可以參考下面的程式範例。
SimpleParamReport.htm
ViewReportDiscreteParam_1.asp
SimpleParamReport.htm
| Code: |
<html> <head> <title>BO XI - Simple Parameter Report</title> <meta http-equiv="Content-Type" content="text/html; charset=big5"> </head> <body bgcolor="#FFFFFF" text="#000000"> <form name="form1" method="post" action="ViewReportDiscreteParam_1.asp"> 輸入參數 <input type="text" name="country" value="USA" size="20" maxlength="20"> <input type="submit" name="Submit" value="執行"> </form> </body> </html> |
ViewReportDiscreteParam_1.asp
| Code: |
<%
Dim CMS
Dim Username
Dim Password
Dim Authtype
CMS = "tom"
Username = "administrator"
Password = ""
Authtype = "secEnterprise"
ReportName = "報表名稱"
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 Reports
Dim Report
Set Reports = iStore.Query("Select * from CI_InfoObjects Where SI_ProgID = 'CrystalEnterprise.Report' and SI_NAME='" + ReportName + "'")
Report = Reports.Item(1).Properties("SI_ID")
Dim reportParameters
Dim fields
Dim parameter
Dim value
Dim country
country = request.Form("country")
Set reportParameters = Reports.Item(1).PluginInterface("Report").ReportParameters
If reportParameters.Count > 0 then
'Create a new Fields Collection Object
Set fields = CreateObject("CrystalReports.Fields")
For each parameter in reportParameters
Set paramValue = createobject("CrystalReports.ParameterFieldDiscreteValue")
Set tmpParameter = CreateObject("CrystalReports.ParameterField")
paramValue.value = country
tmpParameter.Name = parameter.ParameterName
tmpParameter.CurrentValues.Add paramValue
fields.Add tmpParameter
Next
End If
Dim rptAppFactory
Dim reportDocument
Set rptAppFactory = iStore.EnterpriseSession.Service("","PSReportFactory")
Set reportDocument = rptAppFactory.OpenReportSource(CInt(Report))
Dim Viewer
Set Viewer = CreateObject("CrystalReports.CrystalReportViewer")
With Viewer
.reportSource = reportDocument
.ParameterFields = fields
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号