You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

97 lines
3.0 KiB

<% Option Explicit
Response.ExpiresAbsolute = Now() - 1
Session.CodePage = 65001 ' UTF-8
Const ACTION_VIEWREPORT = "viewReport"
Const ACTION_REFRESH = "refresh"
Const SMARTTAGACTIONATTR = "smarttagaction"
Function OutputReport()
Dim smarttagAction, reportSource
Dim dataContext, objectName
Dim viewer
Dim smartTagInfoParser
Dim requestMethod
requestMethod = UCase(Request.ServerVariables("REQUEST_METHOD"))
Select Case requestMethod
Case "POST"
smarttagAction = Request.Form(SMARTTAGACTIONATTR)
Case "GET"
smarttagAction = Request.QueryString(SMARTTAGACTIONATTR)
Case Else
smarttagAction = Empty
End Select
' Initialize the Smart Tag info parser
Set smartTagInfoParser = CreateObject("CrystalReports.CrystalReportSmartTagInfoParser")
call smartTagInfoParser.Init(request)
reportSource = smartTagInfoParser.ReportSource
If (smarttagAction = ACTION_REFRESH) Then
' Refresh
If (Not IsEmpty(reportSource)) Then
Set viewer = CreateObject("CrystalReports.CrystalReportPartsViewer")
With viewer
.ReportParts = smartTagInfoParser.ReportParts
.RecordNumber = 1
.IsOwnPage = true
.IsDisplayTitle = false
.IsDisplayHeadings = false
.EnableLogonPrompt = false
.EnableParameterPrompt = false
.DatabaseLogOnInfos = smartTagInfoParser.ConnectionInfos
.ParameterFields = smartTagInfoParser.ParameterFields
' .EnterpriseLogon = smartTagInfoParser.EnterpriseLogon
.ReportSource = reportSource
.Name = "SmartTagViewer"
End With
Call viewer.Refresh()
End If
Else
' View report
If (IsEmpty(reportSource) OR (Len(reportSource) = 0)) Then
' This is not from the SmartTag. Use the HTML page viewer to view the report
reportSource = Session("CrystalReportSmartTagReportSource")
End If
If (IsEmpty(reportSource)) Then
Call Err. Raise (vbObjectError + 1, "Crystal Report Smart Tag Viewer", "Report source is not defined")
Else
dataContext = smartTagInfoParser.DataContext
objectName = smartTagInfoParser.ObjectName
Session("CrystalReportSmartTagReportSource") = reportSource
Set viewer = CreateObject("CrystalReports.CrystalReportViewer")
With viewer
.ReportSource = reportSource
.IsOwnPage = true
.Name = "HTML Page Viewer"
End With
If (Not (IsEmpty(objectName) OR (Len(objectName) = 0))) Then
Call viewer.NavigateTo(dataContext, objectName)
End If
End If
End If
Call viewer.ProcessHttpRequest(Request, Response, Session)
if Err.number <> 0 then
Response.Write Err.Description
Err.Clear
end if
Set smartTagInfoParser = nothing
Set viewer = nothing
End Function
%>
<% OutputReport%>