Como faço para minha aplicaçao WEB acessar relatorios feitos no Cristal Reports?
esse codigo transforma para PDF e abre no browser o relatorio
[code]<%@ page language="java" %>
<%@ page import="com.crystaldecisions.report.web.viewer." %>
<%@ page import="com.crystaldecisions.sdk.occa.report.application." %>
<%@ page import="java.util.Locale" %>
<%@ page import="java.sql." %>
<%@ page import="java.util.Locale" %>
<%@ page import="java.lang.String" %>
<%@ page import="javax.servlet.http.HttpSession" %>
<%@ page import="com.crystaldecisions.sdk.occa.report.data." %>
<%@ page import="com.crystaldecisions.sdk.occa.report.exportoptions.ReportExportFormat" %>
<%@ page import="java.io.*" %>
<%@ page contentType="text/html; charset=ISO-8859-1" %>
<html>
<head>
<title>Relatorio</title>
</head>
<body>
<%
String NomeRel = "ReportTempAmbiente.rpt";
ReportClientDocument clientDoc = new ReportClientDocument();
String path = "rassdk://C:/jakarta-tomcat-4.1.27/webapps/MTN/relatorio/temperatura/";
ReportAppSession ra = new ReportAppSession();
ra.createService("com.crystaldecisions.sdk.occa.report.application.ReportClientDocument");
// Indica o servidor que está o cristal reports
ra.setReportAppServer("127.0.0.1");
ra.initialize();
clientDoc.setReportAppServer(ra.getReportAppServer());
clientDoc.open (path + NomeRel, OpenReportOptions._openAsReadOnly);
clientDoc.refreshReportDocument();
//Especifica o formato para a exportação
ByteArrayInputStream byteIS = (ByteArrayInputStream) clientDoc.getPrintOutputController().export(ReportExportFormat.PDF);
// Exporta o relatório
//Cria um byte[] (mesmo tamanho do exportado ByteArrayInputStream)
byte[] buf = new byte[2000 * 1024];
int nRead = 0;
//Set response headers to indicate pdf MIME type and inline file
response.reset();
response.setContentType("application/pdf");
response.setHeader("Content-Disposition", "inline;filename=teste.pdf");
//Envia o Byte Array para o cliente
while ((nRead = byteIS.read(buf)) != -1)
{
response.getOutputStream().write(buf, 0, nRead);
}
//Flush the output stream
response.getOutputStream().flush();
//Close the output stream
response.getOutputStream().close();
%>
</body>
</html>[/code]