Boa Noite Pessoal,
Estou com o seguinte problema,
Preciso filtrar informações e setar informações de conexão na minha pagina, com o crystal reports.
Porem ate o momento não consegui realizar isto, alguem poderia me ajudar.
Estou fazendo deste modo.
<%@ 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" %>
<%@ page import="com.br.dao.ParametrosDao" %>
<%@ page import="com.br.model.Parametros" %>
<%@ page import="java.util.ArrayList"%>
<%@ page import="java.util.List"%>
<%@ page import="com.br.dao.RelatorioDao" %>
<%@ page import="com.br.model.Relatorio" %>
<%@ page import="com.br.util.funcoesArquivos" %>
<%
//Reports can be opened from the relative location specified in the CRConfig.xml, or the report location
//tag can be removed to open the reports as Java resources or using an absolute path (absolute path not recommended
//for Web applications).
RelatorioDao relDao = new RelatorioDao();
Relatorio rel = new Relatorio();
List<Parametros> listaParam = new ArrayList<Parametros>();
ParametrosDao paramDao = new ParametrosDao();
Parametros param = new Parametros();
List<Relatorio> listaRel = new ArrayList<Relatorio>();
List<String> vColunas = new ArrayList<String>();
List<String> vValores = new ArrayList<String>();
String pCodReport;
funcoesArquivos arq = new funcoesArquivos();
//pCodReport = session.getAttribute("pCodReport").toString();
pCodReport = "1";
vColunas.clear();
vValores.clear();
vColunas.add("COD_REPORT");
vValores.add(pCodReport);
listaRel = relDao.select(vColunas,vValores);
listaParam = paramDao.select(null,null);
rel = listaRel.get(0);
param = listaParam.get(0);
//rel.getNOM_REPORT()
final String REPORT_NAME = param.getDSC_PATH_REPORT()+"\\"+"relatorio"+".rpt";
final String EXPORT_FILE = rel.getNOM_REPORT()+".pdf";
final String EXPORT_LOC = "C:\\";
//Open report.
ReportClientDocument crpe = new ReportClientDocument();
String connectString = ""; // jdbc:sybase:Tds:DBSERVERNAME:9812/DBNAME?ServiceName=DBNAME
String driverName = ""; // com.sybase.jdbc3.jdbc.SybDriver
String JNDIName = "DS_APP";
String userName = "";
String password = "";
//ReportClientDocument.inprocConnectionString = "D00COMIS";
//crpe.setReportAppServer(ReportClientDocument.inprocConnectionString);
//System.out.println(ReportClientDocument.inprocConnectionString);
crpe.open(REPORT_NAME, 0);
//crpe.setRecordSelectionFormula("{VW_REL_COMIS_ALL_CANAIS.COD_REVENDA} = 'IL1S'");
//crpe.setRecordSelectionFormula("{APRESENTACAO_PORTIFOLIO.COD_APRE_POR} = 8");
// Tipo de Exportação do relatorio
//ByteArrayInputStream byteArrayInputStream = (ByteArrayInputStream)crpe.getPrintOutputController().export(ReportExportFormat.MSExcel);
ByteArrayInputStream byteArrayInputStream = (ByteArrayInputStream)crpe.getPrintOutputController().export(ReportExportFormat.PDF);
//Release report.
crpe.close();
//Manda Abrir no navegador.
arq.getWriteToBrowser(byteArrayInputStream, response, "application/pdf", EXPORT_FILE);
//WriteToBrowser(byteArrayInputStream, response, "application/pdf", EXPORT_FILE);
//Write file to disk...
//String EXPORT_OUTPUT = EXPORT_LOC + EXPORT_FILE
//out.println("Exporting to " + EXPORT_OUTPUT);
//writeToFileSystem(byteArrayInputStream, EXPORT_OUTPUT);
%>
Alguem saberia como me ajudar ?
Pessoal consegui resolver
desta maneira
Classe que será usada na visualização
package com.br.util;
import java.util.ArrayList;
import java.util.List;
import com.br.dao.MenuDao;
import com.br.model.Menu;
public class funcoesMenuLateralEsquedo {
private StringBuilder vCodeLine = new StringBuilder();
private String geraJQuery(){
vCodeLine.append("<script language=\"JavaScript\" src=\"jquery/jquery-1.3.2.js\" type=\"text/javascript\"></script>\n");
vCodeLine.append("<script language=\"JavaScript\" type=\"text/javascript\">\n");
vCodeLine.append(" $(function() {\n");
// Evento de clique do elemento: ul#menu li.parent > a
vCodeLine.append(" $('ul#menu li.parent > a').click(function() {\n");
// Expande ou retrai o elemento ul.sub-menu dentro do elemento pai (ul#menu li.parent)
vCodeLine.append(" $('ul.sub-menu', $(this).parent()).slideToggle('fast', function() {\n");
// Depois de expandir ou retrair, troca a classe 'aberto' do <a> clicado
vCodeLine.append(" $(this).parent().toggleClass('aberto');\n");
vCodeLine.append(" });\n");
vCodeLine.append(" return false;\n");
vCodeLine.append(" });\n");
vCodeLine.append(" });\n");
vCodeLine.append("</script>\n");
return vCodeLine.toString();
}
private String geraMenu(int pMenu){
String vOrder = null;
vCodeLine.setLength(0);
vCodeLine.append("<ul id=\"menu_esquerdo\" style=\"position:relative; top:65px;\">\n");
/*Variaveis */
List<Menu> listaMenu = new ArrayList<Menu>();
List<String> vColunas = new ArrayList<String>();
List<String> vValores = new ArrayList<String>();
/* Objetos*/
MenuDao menuDao = new MenuDao();
Menu menu = new Menu();
/* Operacao */
vColunas.add("COD_MENU_PAI");
vColunas.add("SIT_NIVEL");
vValores.add(Integer.toString(pMenu));
vValores.add("2");
vOrder = "SIT_ORDER";
listaMenu = menuDao.select(vColunas, vValores, vOrder);
vCodeLine.append("<td><img src=\"img/Menu-Esquerdo_01.gif\" width=\"200\" height=\"50\" alt=\"\"></td>\n");
for (int i = 0; i < listaMenu.size(); i++){
menu = listaMenu.get(i);
//if (menu.getDSC_MENU().toUpperCase().equals("CONSULTA")){
vCodeLine.append("<li><a href=\""+menu.getDSC_ACAO()+"\">"+menu.getDSC_MENU()+"</a></li>\n");
//}else{
// vCodeLine.append("<li><a href=\"#\" title=\"\">"+menu.getDSC_MENU()+"</a></li>\n");
//}
}
vCodeLine.append("<td><img src=\"img/Menu-Esquerdo_04.gif\" width=\"200\" height=\"50\" alt=\"\"></td>\n");
vCodeLine.append("</ul>\n");
return vCodeLine.toString();
}
/*
private String getMenuEsquedo(){
String vCodeline = null;
return vCodeline;
}*/
public String getJQuery(){
return geraJQuery();
}
public String getMenu(int pMenu){
return geraMenu(pMenu);
}
}
Pagina que ira exibir
<%@page import="com.br.model.Parametros"%>
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="ISO-8859-1" %>
<%@ page import="com.businessobjects.CRJavaHelper"%>
<%@ page import="com.crystaldecisions.report.web.viewer.CrystalReportViewer"%>
<%@ page import="com.crystaldecisions.sdk.occa.report.application.OpenReportOptions"%>
<%@ page import="com.crystaldecisions.sdk.occa.report.application.ReportClientDocument"%>
<%@ page import="com.crystaldecisions.sdk.occa.report.lib.ReportSDKExceptionBase"%>
<%@ page import="java.sql.Connection"%>
<%@ page import="java.sql.DriverManager"%>
<%@ page import="java.sql.ResultSet"%>
<%@ page import="java.sql.SQLException"%>
<%@ page import="java.sql.Statement"%>
<%@ page import="com.br.util.funcoesCrystalReports"%>
<%@ page import="java.util.logging.Logger"%>
<%
// This sample code calls methods from the CRJavaHelper class, which
// contains examples of how to use the BusinessObjects APIs. You are free to
// modify and distribute the source code contained in the CRJavaHelper class.
funcoesCrystalReports crystal = new funcoesCrystalReports();
Parametros param = crystal.getParametros();
Logger logger = Logger.getLogger("br.com.log");
String reportName = "report/"+crystal.getReport(request)+".rpt";
ReportClientDocument clientDoc = (ReportClientDocument) session.getAttribute(reportName);
// Report can be opened from the relative location specified in the CRConfig.xml, or the report location
// tag can be removed to open the reports as Java resources or using an absolute path
// (absolute path not recommended for Web applications).
clientDoc = new ReportClientDocument();
clientDoc.setReportAppServer(ReportClientDocument.inprocConnectionString);
// Open report
clientDoc.open(reportName, OpenReportOptions._openAsReadOnly);
// ****** BEGIN POPULATE WITH RESULTSET SNIPPET ****************
{
// **** POPULATE MAIN REPORT ****
{
// Connection Info for fetching the resultSet
String connectStr = param.getDSC_STRING_CONNECTION();
String driverName = param.getDSC_DRIVER_NAME();
String userName = param.getDSC_USER();
String password = param.getDSC_PASSWORD();
//Ensure this query is valid in your database. An exception will be thrown otherwise. 21006176
//String query = "SELECT CUSTOMER_NAME FROM APP.CUSTOMER WHERE COUNTRY = 'Australia'"; '
String query = crystal.getConsulta(request);
logger.info("Consulta do Relatorio : " + query);
// As long the Resultset schema has the same field names and types,
// then the Resultset can be used as the datasource for the table
String tableAlias = crystal.getAlias(request); // Change to correct table alias
// Push the Java ResultSet into the report (this will then be the datasource of the report)
CRJavaHelper.passResultSet(clientDoc, crystal.getfetchResultSet(driverName, connectStr, userName, password, query),
tableAlias, "");
}
}
// Store the report document in session
session.setAttribute(reportName, clientDoc);
// ****** BEGIN CONNECT CRYSTALREPORTPAGEVIEWER SNIPPET ****************
{
// Create the CrystalReportViewer object
CrystalReportViewer crystalReportPageViewer = new CrystalReportViewer();
String reportSourceSessionKey = reportName+"ReportSource";
Object reportSource = session.getAttribute(reportSourceSessionKey);
//if (reportSource == null)
//{
reportSource = clientDoc.getReportSource();
session.setAttribute(reportSourceSessionKey, reportSource);
//}
// set the reportsource property of the viewer
crystalReportPageViewer.setReportSource(reportSource);
// Apply the viewer preference attributes
// Process the report
crystalReportPageViewer.processHttpRequest(request, response, application, null);
}
// ****** END CONNECT CRYSTALREPORTPAGEVIEWER SNIPPET ****************
%>
Se alguém precisar de ajuda e só dar um toque.