Categorias

Como visualizar um relatório .RPT na WEB

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" %>


<%
'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

%>