Ver Mensaje Individual
  #831 (permalink)  
Antiguo 09/04/2007, 17:48
aheredia
 
Fecha de Ingreso: abril-2007
Mensajes: 1
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: Jasper Report + iReport + NetBeans 4

Hola a todos, soy nueva en jasper report y jsp y tengo un problema al pasar un parámetro desde un jsp a mi reporte en jasper, mi código es el siguiente:

<%@ page import="net.sf.jasperreports.engine.export.*"%>
<%@ page import="net.sf.jasperreports.engine.*"%>
<%@ page import="net.sf.jasperreports.engine.fill.*" %>
<%@ page import="net.sf.jasperreports.view.*"%>
<%@ page import="java.util.*" %>
<%@ page import="javax.sql.*" %>
<%@ page import="java.sql.*" %>
<%@ page import="javax.naming.*" %>
<%@ page import="java.io.*" %>
<%@ page import="java.lang.*" %>
<%@ page contentType="text/html; charset=iso-8859-1" language="java"import="java.sql.*" errorPage="" %>
<%@ include file="Connections/oracle.jsp" %>

<%
//Recepción de parámetros generales
String reporte = request.getParameter("reporte");
String usuario = request.getParameter("user");
String fecha = request.getParameter("fecha");
String strtmp = request.getParameter("str1");
//Conexión
Driver Drivercon_report = (Driver)Class.forName(MM_oracle_DRIVER).newInstanc e();
Connection Conncon_report = DriverManager.getConnection(MM_oracle_STRING,MM_or acle_USERNAME,MM_oracle_PASSWORD);

//Consulta a la base de datos
PreparedStatement Statementcon_report = Conncon_report.prepareStatement("SELECT * FROM gedetrep WHERE pdrnom = upper('"+reporte+"') order by pdrord");

ResultSet con_report = Statementcon_report.executeQuery();

boolean con_report_isEmpty = !con_report.next();
boolean con_report_hasData = !con_report_isEmpty;
Object con_report_data;
int con_report_numRows = 0;
int Repeat1__numRows = 10;
int Repeat1__index = 0;
con_report_numRows += Repeat1__numRows;


//Preparacion del reporte (en esta etapa se inserta el nombre del reporte).
String filejasper = reporte+".jasper";
String JasperFilesSource = "/reportes/";

//Asignación de Parámetros
Map parameters = new HashMap();
String TIPO = "NUMBER";

if (TIPO == "NUMBER"){
parameters.put("ARTCOD", strtmp);

}

//Cargamos la definicion del reporte *.jasper
File reportFile = new File(application.getRealPath("/reportes/"+reporte+".jasper"));
JasperPrint jasperPrint=JasperFillManager.fillReport(reportFil e.getPath(), parameters, Conncon_report);

//Nombre archivo resultado.
String PdfFilesSource = "/reportes/"+usuario+"_"+reporte+fecha+".pdf";

//Creacion del html
JRPdfExporter exporter = new JRPdfExporter();
exporter.setParameter(JRExporterParameter.JASPER_P RINT, jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_F ILE_NAME,application.getRealPath(PdfFilesSource));
exporter.exportReport();


//Leer el archivo.
File f = new File (application.getRealPath(PdfFilesSource));

//Obtener el Nombre del archivo.
String name = f.getName().substring(f.getName().lastIndexOf("/") + 1,f.getName().length());

//Configurar cabecera y nombre de archivo a desplegar en DialogBox.
response.setHeader("Content-Disposition", "attachment; filename=\" " + name + "\"");

InputStream in = new FileInputStream(f);
ServletOutputStream outs = response.getOutputStream();

int bit = 256;
int i = 0;

while ((bit) >= 0) {
bit = in.read();
outs.write(bit);
}
outs.flush();
outs.close();
in.close();
%>

<%
con_report.close();
Statementcon_report.close();
Conncon_report.close();
%>

Mi problema es que en el "parameters.put("ARTCOD", strtmp);" si yo le envío directamente el valor del parámetro, el reporte me genera normalmente, pero si le envío el valor con la variable que almacena el valor recibido desde el url no me retorna ningún valor en el pdf.

Por favor ayudenme urgente que ya voy varios días en esto, seguramente es una bobada pero no consigo solucionar el problema.

Saludos a todos