Veja se isto serve:
Este é um exemplo da chamada de um relatório (RPT) via ASP na versão 9
do Crystal Reports:
1) Crie um diretório virtual
2) Caso seja necessário, entre no IIS, e veja se as
definições deste diretório virtual, se estão corretas
-------------------------------------------------
<%@ LANGUAGE="VBSCRIPT" %>
<html>
<%
'Variável que define o nome do relatório
reportname = "relat.rpt"
' Cria o objeto de aplicação (carrega o RDC) - para esta sessão
If Not IsObject (session("oApp")) Then
Set session("oApp") =
Server.CreateObject("CrystalRuntime.Application")
End If
' Cria o caminho físico do relatório
Path = Request.ServerVariables("PATH_TRANSLATED")
While (Right(Path, 1) <> "" And Len(Path) <> 0)
iLen = Len(Path) - 1
Path = Left(Path, iLen)
Wend
'Cria o objeto de relatório (mas destroí o objeto caso este já exista)
If IsObject(session("oRpt")) then
Set session("oRpt") = nothing
End if
On error resume next
Set session("oRpt") = session("oApp").OpenReport(path & reportname, 1)
'Verifica erros na criação do objeto RDC
If Err.Number <> 0 Then
Response.Write "Erros ocorreram durante a criação do objeto de
relatório: " & Err.Description
Set Session("oRpt") = nothing
Set Session("oApp") = nothing
Session.Abandon
Response.End
End If
session("oRpt").MorePrintEngineErrorMessages = False
session("oRpt").EnableParameterPrompting = False
session("oRpt").DiscardSavedData
' Retorna os registros, e cria o serviço de Page on demand
On Error Resume Next
session("oRpt").ReadRecords
'Verifica erros na leitura dos registros
If Err.Number <> 0 Then
Response.Write "Ocorreram erros na leitura dos registros: " &
Err.Description
Set Session("oRpt") = nothing
Set Session("oApp") = nothing
Session.Abandon
Response.End
Else
If IsObject(session("oPageEngine")) Then
set session("oPageEngine") = nothing
End If
set session("oPageEngine") = session("oRpt").PageEngine
End If
'Dispara o Navegador ActiveX
%>
<!-- #include file="SmartViewerActiveX.asp" -->
</html>
ALF-Sistemas(Araujo Lindolfo Filho)