Below is the exactly code to access a report object and view report. Hope it help
<%@ LANGUAGE="VBSCRIPT" %>
<title></title>
<%
'=======================================================================
' WORKING WITH THE REPORT DESIGNER COMPONENT AND ASP TO PREVIEW A REPORT
'=======================================================================
reportname = "logotest.rpt"
' - 1 -
' CREATE THE APPLICATION OBJECT
If Not IsObject (session("oApp"

) Then
Set session("oApp"

= Server.CreateObject("CrystalRuntime.Application"

End If
Path = Request.ServerVariables("PATH_TRANSLATED"
While (Right(Path, 1) <> "\" And Len(Path) <> 0)
iLen = Len(Path) - 1
Path = Left(Path, iLen)
Wend
If IsObject(session("oRpt"

) then
Set session("oRpt"

= nothing
End if
Response.Write Path & reportname
session("oApp"

.LogonServer "PDSODBC.DLL", Cstr("GEMSquotetest"

, Cstr("REWARDS_SCALING"

, Cstr("RWDTSTS1"

, "Scaling2002"
Set session("oRpt"

= session("oApp"

.OpenReport(path & "\New reports\CLALogo\" & reportname, 1)
'Session("oRpt"

.ParameterFields.GetItemByName("RTQNumber"

.AddCurrentValue(CStr("tedCORPRHOgq531"

)
'This Section suppress the subreport area dynamically
Dim RptSection
Dim supSection
Dim SectionOptions
'Get Report Section collection object
'Set RptSection = Session("oRpt"

.sections
session("oRpt"

.MorePrintEngineErrorMessages = False
session("oRpt"

.EnableParameterPrompting = False
'====================================================================================
' Retrieve the Records and Create the "Page on Demand" Engine Object
'====================================================================================
On Error Resume Next
session("oRpt"

.ReadRecords
If Err.Number <> 0 Then
Response.Write "An Error has occured on the server in attempting to access the data source"
Else
If IsObject(session("oPageEngine"

) Then
set session("oPageEngine"

= nothing
End If
set session("oPageEngine"

= session("oRpt"

.PageEngine
End If
%>
<HTML>
<HEAD>
<TITLE>Seagate ActiveX Viewer</TITLE>
</HEAD>
<BODY BGCOLOR=C6C6C6 LANGUAGE=VBScript ONLOAD="Page_Initialize">
<OBJECT ID="CRViewer"
CLASSID="CLSID:C4847596-972C-11D0-9567-00A0C9273C2A"
WIDTH=100% HEIGHT=95%
codebase="/viewer/activeXViewer/activexviewer.cab#Version=8,0,0,224">
<PARAM NAME="EnableRefreshButton" VALUE=0>
<PARAM NAME="EnableGroupTree" VALUE=1>
<PARAM NAME="DisplayGroupTree" VALUE=1>
<PARAM NAME="EnablePrintButton" VALUE=1>
<PARAM NAME="EnableExportButton" VALUE=1>
<PARAM NAME="EnableDrillDown" VALUE=1>
<PARAM NAME="EnableSearchControl" VALUE=1>
<PARAM NAME="EnableAnimationControl" VALUE=1>
<PARAM NAME="EnableZoomControl" VALUE=1>
</OBJECT>
<SCRIPT LANGUAGE="VBScript">
<!--
Sub Page_Initialize
On Error Resume Next
Dim webBroker
Set webBroker = CreateObject("WebReportBroker.WebReportBroker"

if ScriptEngineMajorVersion < 2 then
window.alert "IE 3.02 users on NT4 need to get the latest version of VBScript or install IE 4.01 SP1. IE 3.02 users on Win95 need DCOM95 and latest version of VBScript, or install IE 4.01 SP1. These files are available at Microsoft's web site."
CRViewer.ReportName = "rptserver.asp"
else
Dim webSource
Set webSource = CreateObject("WebReportSource.WebReportSource"

webSource.ReportSource = webBroker
webSource.URL = "rptserver.asp"
webSource.PromptOnRefresh = True
CRViewer.ReportSource = webSource
end if
CRViewer.ViewReport
End Sub
-->
</SCRIPT>
</BODY>
</HTML>
After you understand this. you need to integrate your own code to customize it base on user requirement.
Ted