I use both Crystal 9 & 8.5. Here is the code that I use --- there is one line that is different between reports (this one is a v9 report), but the samples that Crystal has on their site should help you too. Look at the parms that you can use on the call --- THAT will help a bit.
<%@ Language=VBScript %>
<%
basePath = Request.ServerVariables("PATH_TRANSLATED"

While (Right(basePath, 1) <> "\" And Len(basePath) <> 0)
iLen = Len(basePath) - 1
basePath = Left(basePath, iLen)
Wend
baseVirtualPath = Request.ServerVariables("PATH_INFO"

While (Right(baseVirtualPath, 1) <> "/" And Len(baseVirtualPath) <> 0)
iLen = Len(baseVirtualPath) - 1
baseVirtualPath = Left(baseVirtualPath, iLen)
Wend
If Not IsObject(session("oApp"

) Then
Set session("oApp"

= Server.CreateObject("CrystalRuntime.Application.9"

If Not IsObject(session("oApp"

) Then
response.write "Error: Could not instantiate the Crystal Reports automation server."
response.end
End If
End If
If IsObject(session("oRpt"

) Then
set session("oRpt"

= nothing
End If
Set session("oRpt"

= session("oApp"

.OpenReport(basePath & "PurchaseOrder.rpt", 1)
If Err.Number <> 0 Then
Response.Write "Error Occurred creating Report Object: " & Err.Description
Set Session("oRpt"

= Nothing
Set Session("oApp"

= Nothing
Session.Abandon
Response.End
End If
session("oRpt"

.DiscardSavedData
session("oRpt"

.MorePrintEngineErrorMessages = False
session("oRpt"

.EnableParameterPrompting = False
set crtable = session("oRpt"

.Database.Tables.Item(1)
crtable.SetLogonInfo cstr("*ODBC CONNECTION NAME*"

, cstr("*SQL DATABASE NAME*"

, cstr("*sql login HERE*"

, cstr("*sql pwd here*"

if not crtable.TestConnectivity then
response.write "ReCrystallize Warning: Unable to connect to data source using the following information.<BR><BR>"
response.write "Server / ODBC data source: *ODBC CONNECTION NAME*<BR>"
response.write "Database / Table: *SQL DATABASE NAME*<BR>"
response.write "User Name: " & "*sql login HERE*<BR>"
response.write "Please verify the database user password in this ASP file.<BR><BR>"
end if
set session("ParamCollection"

= Session("oRpt"

.Parameterfields
set Param1 = session("ParamCollection"

.Item(1)
ParamValue1 = Request("PO_Number"

Call Param1.SetCurrentValue (CDbl(ParamValue1), 7)
If IsObject (session("oPageEngine"

) Then
set session("oPageEngine"

= nothing
End If
set session("oPageEngine"

= session("oRpt"

.PageEngine
%>
<HTML>
<HEAD>
<TITLE>
TITLE FOR PAGE
</TITLE>
</HEAD>
<BODY BGCOLOR=C6C6C6 LANGUAGE=VBScript ONLOAD="Page_Initialize" ONUNLOAD="CallDestroy()" leftmargin=0 topmargin=0 rightmargin=0 bottommargin=0>
<OBJECT ID="CRViewer"
CLASSID="CLSID:2DEF4530-8CE6-41c9-84B6-A54536C90213"
WIDTH=100% HEIGHT=100%
CODEBASE="/viewer9/activeXViewer/activexviewer.cab#Version=9,2,0,442" VIEWASTEXT>
<PARAM NAME="EnableRefreshButton" VALUE=0>
<PARAM NAME="EnableGroupTree" VALUE=0>
<PARAM NAME="DisplayGroupTree" VALUE=0>
<PARAM NAME="EnableExportButton" VALUE=1>
<PARAM NAME="EnablePrintButton" VALUE=1>
<PARAM NAME="EnableDrillDown" VALUE=1>
<PARAM NAME="EnableAnimationControl" VALUE=1>
<PARAM NAME="EnableZoomControl" VALUE=1>
<PARAM NAME="EnableSearchControl" VALUE=1>
<PARAM NAME="DisplayToolbar" VALUE=1>
<PARAM NAME="EnableProgressControl" VALUE=1>
<PARAM NAME="EnableStopButton" VALUE=1>
<PARAM NAME="EnableCloseButton" VALUE=1>
<PARAM NAME="EnableNavigationControls" VALUE=1>
<PARAM NAME="PromptOnRefresh" VALUE=0>
<PARAM NAME="EnablePopupMenu" VALUE=1>
<PARAM NAME="DisplayBackgroundEdge" VALUE=1>
<PARAM NAME="DisplayBorder" VALUE=1>
<PARAM NAME="DisplayTabs" VALUE=1>
</OBJECT>
<SCRIPT LANGUAGE="VBScript">
<!--
zoomTimer = window.setInterval("setZoom",250)
Sub setZoom()
if not CRViewer.IsBusy then
window.clearInterval(zoomTimer)
CRViewer.Zoom(100)
end if
End Sub
Sub Page_Initialize
On Error Resume Next
Dim webBroker
Set webBroker = CreateObject("WebReportBroker9.WebReportBroker"

if ScriptEngineMajorVersion < 2 then
window.alert "Internet Explorer 3.02 users running Windows NT 4 should get the latest version of VBScript or install IE 4.01 SP1. IE 3.02 users running Windows 95 need DCOM95 and the latest version of VBScript, or install IE 4.01 SP1. These files are available at Microsoft's web site."
CRViewer.ReportName = Location.Protocol + "//" + Location.Host + <% response.write( chr(34) & baseVirtualPath & chr(34)) %> + "rptserver.asp"
else
Dim webSource
Set webSource = CreateObject("WebReportSource9.WebReportSource"

webSource.ReportSource = webBroker
webSource.URL = Location.Protocol + "//" + Location.Host + <% response.write( chr(34) & baseVirtualPath & chr(34)) %> + "rptserver.asp"
webSource.PromptOnRefresh = False
CRViewer.ReportSource = webSource
end if
CRViewer.ViewReport
End Sub
-->
</SCRIPT>
<script language="javascript">
function CallDestroy()
{
window.open("Cleanup.asp","Cleanup","top=2000"

;
}
</script>
</BODY>
</HTML>