Retroceder   Foros del Web > Programación para sitios web > Java y JSP

Respuesta
 
Herramientas Desplegado
Antiguo 23-ago-2007, 12:53   #901 (permalink)
RicardoJB ha deshabilitado el karma
 
Fecha de Ingreso: abril-2007
Mensajes: 5
Re: Jasper Report + iReport + NetBeans 4

Buenas gente!! Como les va? Bueno, escribo porque necesito que alguien me de una mano con un reporte con el que estoy trabajando. Les cuento mi problema: tengo un reporte que va a mostrar items de una tabla "cabecera" y por cada uno de estos items debo mostrar a continuación los items de "detalle_cabecera", no se si se me entiende, a ver, podriamos decir que debo mostrar un registro de una tabla como puede ser FACTURA y a continuación debo mostrar todos los registros de la tabla FACTURA_DETALLE que corresponde, y así sucesivamente por cada uno de los registros de la tabla padre. Esto lo estoy haciendo pasandole al reporte un 'JRBeanCollectionDataSource' y donde paso por parametro un java.util.List de los bean que representan la cabecera (cada uno de estos bean tiene una property que retorna otro java.util.List con el detalle de ese bean).

Bueno tenia pensado impletar este requerimiento con un report que en la band detail me itere mis beans y que ahi tambien llame a un subreport que se encargaría de iterar sobre el detalle de cada bean.

Bueno, el problema es que no se como decirle a un subreport que por cada bean me tome la property que me devuelve los detalle del mismo.

Por favor, si alguien me puede ayudar se lo agradecería enormemente, es importante.

Gracias, y disculpen la molestia (ah, y también la redundancia).
RicardoJB está desconectado   Responder Citando
Antiguo 23-ago-2007, 15:33   #902 (permalink)
kalafyan ha deshabilitado el karma
 
Fecha de Ingreso: agosto-2007
Mensajes: 1
Re: Jasper Report + iReport + NetBeans 4

hola, necesito saber si hay alguna forma de evitar el desbordamiento en los campos de textos de la herramienta iReport, el tema es que cuando se hace el diseño utilizando iReport si usted a un a campo de texto le pone ancho 100 px y a la hora de darle valores a eso el texto es mas lango, pues sentillamente habra una parte de ese texto que no se mostrara, existe alguna forma de ajustar los campos de texto al tamaño de su contenido ?
kalafyan está desconectado   Responder Citando
Antiguo 27-ago-2007, 21:13   #903 (permalink)
mariojava2007 ha deshabilitado el karma
 
Fecha de Ingreso: mayo-2007
Mensajes: 23
Re: Jasper Report + iReport + NetBeans 4

Hola,
ya pude hacer mi reporte en ireport, y abrirlo desde mi aplicacion swing, ahora el problema es q cuando exporto a excel o a html no me pasa los datos ligados a la base de datos( mysql ), y cuando los exporto a pdf si pasa el reporte completo.

Pense que era mi aplicacion, asi que genere el reporte directamente de ireport 2.0.1 a excel y tampoco me exporta los datos que estan ligados a la base de datos.

Si alguien me pudiera ayudar le agredeceria mucho.
mariojava2007 está desconectado   Responder Citando
Antiguo 28-ago-2007, 20:19   #904 (permalink)
mariojava2007 ha deshabilitado el karma
 
Fecha de Ingreso: mayo-2007
Mensajes: 23
Re: Pasar un qry como parametro a un reporte.

Hola:

Quice hacer eso de enviar una consulta de sql como parametro pero no he tenido exito, 1ro no tengo idea de como poner el parametro en ireport-cuando lo pongo como valor por defaul 'select campo1,campo2 from mitabla', me muestra un error al compilarlo-
mariojava2007 está desconectado   Responder Citando
Antiguo 28-ago-2007, 20:30   #905 (permalink)
mariojava2007 ha deshabilitado el karma
 
Fecha de Ingreso: mayo-2007
Mensajes: 23
Re: Jasper Report + iReport + NetBeans 4

eso q no podia ver los datos en excel, y html,ya lo solucione gracias, lo qui hice fue quitar las instalaciones anteriores de irepot, copiar el tools.jar ...y los pasos siguientes basicamente empece de nuevo y ahora a funcionado bien gracias de todas maneras
mariojava2007 está desconectado   Responder Citando
Antiguo 31-ago-2007, 13:35   #906 (permalink)
varonmarcos no se puede cailificar en este momento
 
Avatar de varonmarcos
 
Fecha de Ingreso: agosto-2007
Ubicación: Colombia
Mensajes: 4
Re: Jasper Report + iReport + NetBeans 4

Hola soy nuevo el Foro, pero trabajo Java hace rato pero nunca habia utilizado IReports y JasperReports, la verdad de este foro descargue un codigo de un servlet para llamar el alchivo *.jrxml el cual tiene la configuraci
varonmarcos está desconectado   Responder Citando
Antiguo 03-sep-2007, 14:43   #907 (permalink)
jucardo ha deshabilitado el karma
 
Avatar de jucardo
 
Fecha de Ingreso: agosto-2007
Mensajes: 30
Re: Jasper Report + iReport + NetBeans 4

Hola como están todos. Necesito si es posible por favor me den una manito.
Cual es mi problema

Tengo en una base de datos todos los registros que conforman la hoja de vida de mis clientes pero deseo exportar todos esos datos a un archivo pdf usando ireport. La idea es que cada cliente quede en una pagina o las que requiera pero una vez cambien de cliente inicie una nueva página.
Si existe alguna forma de hacerlo les agradecería me lo hagan saber
jucardo está desconectado   Responder Citando
Antiguo 04-sep-2007, 11:03   #908 (permalink)
varonmarcos no se puede cailificar en este momento
 
Avatar de varonmarcos
 
Fecha de Ingreso: agosto-2007
Ubicación: Colombia
Mensajes: 4
Triste Re: Jasper Report + iReport + NetBeans 5.5

Hola ya logre exportar el reporte a PDF con el codigo de este foro puesto en un princicio por destruktor, pero la dirrfrencia es que yono paso la conexion por parametro ya que paso los pojo directamente como parametros, pero el reporte me salio vacio(en blanco), y creo que era por q' cargaba el jasper sin ccompilar antes el jrxml, ahora les envio mi codigo y luego el error!!

/
Código:
***************codigo************************************/

<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%@ page import="net.sf.jasperreports.engine.*" %>
<%@ page import="net.sf.jasperreports.engine.data.*" %>
<%@ page import="net.sf.jasperreports.engine.fill.*" %>
<%@ page import="net.sf.jasperreports.engine.export.*" %>
<%@ page import="net.sf.jasperreports.engine.util.*" %>
<%@ page import="net.sf.jasperreports.engine.*" %>
<%@ page import="net.sf.jasperreports.view.*" %>
<%@ page import="net.sf.jasperreports.view.JasperViewer"%>
<%@ page import="net.sf.jasperreports.engine.xml.JRXmlLoader"%>
<%@ page import="net.sf.jasperreports.engine.JasperCompileManager"%>
<%@ page import="net.sf.jasperreports.engine.JasperFillManager"%>
<%@ page import="net.sf.jasperreports.engine.JasperPrint"%>
<%@ page import="net.sf.jasperreports.engine.design.JasperDesign"%>
<%@ page import="net.sf.jasperreports.engine.JasperReport" %>

<%@ page import="java.net.*" %>
<%@ page import="java.util.*" %>
<%@ page import="java.io.*" %>
<%@ page import="javax.sql.*" %>
<%@ page import="java.sql.*" %>
<%@ page import="javax.naming.*" %>
<%@ page import="javax.naming.Context"%>
<%@ page import="javax.naming.InitialContext"%>
<%@page import="alcohol.*"%>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>REPORTE DE PRUEBA</title>
    </head>
<% PruebaTDB Dpru = new PruebaTDB((ConeccionDB) application.getAttribute ("BaseDatos"));%>
<% Prueba Pru = null;%>
<% TerminalTDB Dter = new TerminalTDB((ConeccionDB) application.getAttribute ("BaseDatos"));%>
<% Terminal ter = null;%>
<% EmpresaTDB Demp = new EmpresaTDB((ConeccionDB) application.getAttribute ("BaseDatos"));%>
<% Empresa Empr = null;%>
<% ConductorTDB Dcon = new ConductorTDB((ConeccionDB) application.getAttribute ("BaseDatos"));%>
<% Conductor Con = null;%>
<% Usuario_operadorTDB Dusu = new Usuario_operadorTDB((ConeccionDB) application.getAttribute ("BaseDatos"));%>
<% Usuario_operador Usu = null;%>
<% OperadorTDB Dope = new OperadorTDB((ConeccionDB) application.getAttribute ("BaseDatos"));%>
<% Operador Ope = null;%>
    <body>
<form action="" method="post" name="Insertion" id="Insertion">
    <input name="prueba" type="text" id="prueba" style="display:none" value="<%=request.getParameter("prueba")%>">
</form>    
<% 

                Pru = Dpru.getPrueba(Integer.parseInt(request.getParameter("prueba")));
                  System.out.println(""+request.getParameter("prueba"));
                  if (Pru != null){
                       Con = Dcon.getConductor(Pru.getCedula(),0);
                       if (Con != null){
                           Empr = Demp.getEmpresa(Pru.getCod_empresa(),0);
                            if (Empr != null){
                                ter = Dter.getTerminal(Pru.getCod_terminal(),0);
                                 if (ter != null){
                                    Usu = Dusu.getUsuario_operador(Pru.getCod_usuario(),0);
                                     if (Usu != null){
                                         Ope = Dope.getOperador(Usu.getCod_operador(),0);
                                      }
                                  }
                               }
                            }
                         }
                        
        //net.sf.jasperreports.engine.JasperPrint print =null;
                //String ruta = "/reportes/reporte_prueba.jrxml";
                File sourceFile = new File(application.getRealPath("reportes/reporte_prueba.jrxml"));
                JasperDesign jasperDesign = JRXmlLoader.load(sourceFile);
                JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);

                /*Context init = new InitialContext();
                Context context = (Context) init.lookup("java:comp/env");
                DataSource dataSource =(DataSource)context.lookup("ctal_alcohol");
                Connection conexion = dataSource.getConnection();*/

                //File sourceFile = new File(application.getRealPath("/reportes/reporte_prueba.jasper"));
                //System.out.println("ESTADO DEL REPORTE "+sourceFile.exists()+" "+sourceFile.canRead()+" "+sourceFile.length()+" "+sourceFile.getPath());

                /*Context c = new InitialContext();
                DataSource dataSource =(DataSource)c.lookup("java:comp/env/alcoholDB2");
                Connection conexion = dataSource.getConnection();*/

                //Se crea un mapa de parametros para pasar el reporte
                Map parameters = new HashMap();
        parameters.put("operador", Ope.getNombre());
                parameters.put("terminal", ter.getNombre());
                parameters.put("numero", Pru.getNum_prueba());
                parameters.put("fecha", Pru.getFecha());
                parameters.put("hora", Pru.getHora());
                parameters.put("cedula", Pru.getCedula());
                parameters.put("nombre_cedula", Con.getNombre());
                parameters.put("empresa", Empr.getNombre());
                parameters.put("placa", Pru.getPlaca());
                parameters.put("aprobado", Pru.getAprobado());
                parameters.put("resultado", Pru.getResultado());
                parameters.put("usuario", Usu.getNombre());


        try{
                //out.print("No hay error...");
                //JasperPrint print = JasperFillManager.fillReport(sourceFile.getPath(), parameters);
                JasperPrint print = JasperFillManager.fillReport(jasperReport, parameters);

                byte[] bytes = JasperRunManager.runReportToPdf(jasperReport, parameters); 
                System.out.println("Si se ve este mensaje se compilo correctamente el REPORTE");
                response.setContentType("application/pdf");
                response.setContentLength(bytes.length);
                ServletOutputStream ouputStream = response.getOutputStream();
                ouputStream.write(bytes, 0, bytes.length);
                ouputStream.flush();
                ouputStream.close(); 
        }catch(Exception ex){
            out.print("ERROR AL CARGAR .... ");
        }




        JasperReport master=null;
        //master=(JasperReport) JRLoader.loadObject(urlMaestro);
%>

    </body>
</html>

/********************************fin codigo*********************/
Cita:
/**********************error*********************** *************/

avax.servlet.ServletException: Errors were encountered when compiling report expressions class file:
C:\Archivos de programa\netbeans-5.5\enterprise3\apache-tomcat-5.5.17\bin\reporte_prueba_1188924664546_385463.jav a:4: package net.sf.jasperreports.engine does not exist
import net.sf.jasperreports.engine.*;
^
C:\Archivos de programa\netbeans-5.5\enterprise3\apache-tomcat-5.5.17\bin\reporte_prueba_1188924664546_385463.jav a:5: package net.sf.jasperreports.engine.fill does not exist
import net.sf.jasperreports.engine.fill.*;
^
C:\Archivos de programa\netbeans-5.5\enterprise3\apache-tomcat-5.5.17\bin\reporte_prueba_1188924664546_385463.jav a:14: package net.sf.jasperreports.engine does not exist
import net.sf.jasperreports.engine.*;
^
C:\Archivos de programa\netbeans-5.5\enterprise3\apache-tomcat-5.5.17\bin\reporte_prueba_1188924664546_385463.jav a:15: package net.sf.jasperreports.engine.data does not exist
import net.sf.jasperreports.engine.data.*;
^
C:\Archivos de programa\netbeans-5.5\enterprise3\apache-tomcat-5.5.17\bin\reporte_prueba_1188924664546_385463.jav a:21: cannot find symbol
symbol: class JREvaluator
public class reporte_prueba_1188924664546_385463 extends JREvaluator
^
C:\Archivos de programa\netbeans-5.5\enterprise3\apache-tomcat-5.5.17\bin\reporte_prueba_1188924664546_385463.jav a:28: cannot find symbol
symbol : class JRFillParameter
location: class reporte_prueba_1188924664546_385463
private JRFillParameter parameter_REPORT_RESOURCE_BUNDLE = null;
^
C:\Archivos de programa\netbeans-5.5\enterprise3\apache-tomcat-5.5.17\bin\reporte_prueba_1188924664546_385463.jav a:29: cannot find symbol
symbol : class JRFillParameter
location: class reporte_prueba_1188924664546_385463
private JRFillParameter parameter_REPORT_CLASS_LOADER = null;
^
C:\Archivos de programa\netbeans-5.5\enterprise3\apache-tomcat-5.5.17\bin\reporte_prueba_1188924664546_385463.jav a:30: cannot find symbol
symbol : class JRFillParameter
location: class reporte_prueba_1188924664546_385463
private JRFillParameter parameter_terminal = null;


///////************************************************/
asi sucesivamente es basicamente como si no tomara las librerias del pryecto para compilar el jrxml.

y ya las cargue todas aal proyecto!!

estoy trabajando NetBeans 5.5 JDK 1.5.0_12, IReports 1.2.5 y JasperReports 1.2.5
me he recorrido el for esta vida y la otra muy bueno y todo pero porfa Ayudenme si tienen algua Idea!!!!!!

PD: mi correo por si algo: varonmarcos@gmail.com
varonmarcos está desconectado   Responder Citando
Antiguo 04-sep-2007, 14:29   #909 (permalink)
varonmarcos no se puede cailificar en este momento
 
Avatar de varonmarcos
 
Fecha de Ingreso: agosto-2007
Ubicación: Colombia
Mensajes: 4
Re: Concatenar dos PDF Resuelto

Cita:
Iniciado por yimenz Ver Mensaje
Desktructor ya pude concatenar dos pdf en Uno.

De este modo se pueden hacer dos reportes diferentes y unirlos en uno solo, aca les dejo el codigo, esta explicado.

Codigo:
Código:
<%@ page import = "BaseDatos.Acceso" %>
<jsp:useBean id = "acceso" scope="page" class="BaseDatos.Acceso"/>

<%@ page import="net.sf.jasperreports.engine.*" %> 
<%@ page import="net.sf.jasperreports.engine.design.*" %> 
<%@ page import="net.sf.jasperreports.engine.data.*"%> 
<%@ page import="net.sf.jasperreports.engine.export.*"%> 
<%@ page import="net.sf.jasperreports.engine.util.*"%> 
<%@ page import="net.sf.jasperreports.view.*"%> 
<%@ page import="net.sf.jasperreports.view.save.*"%> 
<%@ page import="com.lowagie.text.pdf.PdfCopyFields"%> 
<%@ page import="com.lowagie.text.pdf.PdfReader"%> 

<%@ page import="java.sql.Connection"%> 
<%@ page import="java.util.*" %> 
<%@ page import="java.io.*" %> 

<html> 
<head><title>Generando Reporte Historia de Ingreso...............</title>
<head> 

<%
/*Declaro e inicializo la variable codigobebe, para enviarla como parametro*/
String codigobebe="0";
if (request.getParameter("codigobebe")!=null)
	codigobebe = request.getParameter("codigobebe");
/*FIN Declaro e inicializo la variable codigobebe, para enviarla como parametro*/			

try{
	String ResultadoConexion = acceso.Conectar();
	if ("Ok".equals(ResultadoConexion))
	{
			/*<Obtengo una conexión de la Base de datos>*/
		Connection conn = acceso.getConexion();

			/*<Cargamos el jasperreports-0.6.7.jar OK>*/
		System.setProperty("jasper.reports.compile.class.path", application.getRealPath("/WEB-INF/lib/jasperreports-0.6.7.jar") + 
					System.getProperty("path.separator") + 
					application.getRealPath("/WEB-INF/classes/"));

	/*<Primer reporte>*/
		/*<Compilamos el primer reporte historiaIngreso.jrxml>*/
			System.setProperty("jasper.reports.compile.temp", application.getRealPath("/WEB-INF/reportes/")); 
			JasperCompileManager.compileReportToFile(application.getRealPath("/WEB-INF/reportes/historiaIngreso.jrxml"));
		/*<FIN de compilar el primer reporte historiaIngreso.jrxml>*/
			
		/*<Obtenemos el archivo .jasper historiaIngreso.jasper>*/
			File reportFile = new File(application.getRealPath("/WEB-INF/reportes/historiaIngreso.jasper")); 
		
		/*<Enviamos los parametros al reporte, en este ejemplo utilizo los mismos parametros para los dos reportes>*/
			Map parameters = new HashMap(); 
			parameters.put("CODIGO_BEBE",codigobebe);
		
		/*<Generamos el reporte en PDF, se guarda en una variable tipo bytes>*/
			byte[] bytes = JasperRunManager.runReportToPdf( reportFile.getPath(), parameters, conn ); //Generar reporte PDF
	/*<FIN Primer reporte>*/
	
	/*<Segundo reporte>*/
 		/*<Compilamos el segundo reporte historiaIngreso2.jrxml>*/
			JasperCompileManager.compileReportToFile(application.getRealPath("/WEB-INF/reportes/historiaIngreso2.jrxml"));
		/*<FIN de compilar el segundo reporte historiaIngreso2.jrxml>*/
		
		/*<Obtenemos el archivo .jasper historiaIngreso2.jasper>*/
			File reportFile2 = new File(application.getRealPath("/WEB-INF/reportes/historiaIngreso2.jasper")); 
		
		/*<Generamos el reporte en PDF, se guarda en una variable tipo bytes>*/
			byte[] bytes2 = JasperRunManager.runReportToPdf( reportFile2.getPath(), parameters, conn ); //Generar reporte PDF
	/*<FIN Segundo reporte>*/
		
		/*<Concatenamos los dos reportes>*/
			PdfReader reader1 = new PdfReader(bytes);
			PdfReader reader2 = new PdfReader(bytes2);
			PdfCopyFields copy = new PdfCopyFields(new FileOutputStream(application.getRealPath("/WEB-INF/reportes/historiaIngreso3.pdf")));
			copy.addDocument(reader1);
			copy.addDocument(reader2);
			copy.close();
		/*<Concatenamos los dos reportes>*/
		
		/*<Ahora debemos leer el reporte que creamos en /WEB-INF/reportes/ y enviarlo al navegador para su descarga>*/
		
			/*<Se manda como tipo pdf al navegador>*/
				response.setContentType("application/pdf");
			/*<Se envia como adjunto, para que aparesca la ventana de Abrir con ó Guardar como>*/
				response.setHeader ("Content-Disposition", "attachment;filename=\"historiaIngreso3.pdf\"");

			/*<Se lee el Archivo pdf que creamos>*/
				InputStream archivo = new FileInputStream(application.getRealPath("/WEB-INF/reportes/historiaIngreso3.pdf")); 
			/*<Se crea una variable de salida para el navegador>*/
				ServletOutputStream outs = response.getOutputStream();
			
			/*<Se lee el contenido del Archivo PDF y se envia a la variable de salida>*/
				int bit = 256;
				int i = 0;
		
				while ((bit) >= 0) {
				bit = archivo.read();
				outs.write(bit);
				}
				
			/*<Forzamos a enviar los datos al navegador>*/
				outs.flush(); 
			/*<Se cierra la variable de salida y el archivo PDF>*/
				outs.close();
				archivo.close();
   }
   if ("NO OK".equals(ResultadoConexion))
		out.println("<font color = 'red'>No se pudo conectar a la base de datos, comuniquese con el desarrollador de la aplicación.</font>");
}catch (JRException e)
{out.println("Error:" +e.getMessage());}
catch (Exception e)
{e.printStackTrace(); out.println("Error2:" +e.getMessage());
}
%>
<body onLoad="window.document.close();"> 
</body>
</html>
Este codigo basicamente lo que hace es lo siguiente: carga el jasperreports.jar para luego compilar y ejecutar dos reportes, despues concatena estos dos reportes en un pdf y finalmente lo envia al navegador.
Hola, probe tu codigo y me funciono pero me bota el reporte PDf en blanco, pero seteo los parametros y estan bien no se que pasa!!!, te encargo una ayuda, mi codigo esta en la ultima pagina de este foro!!!

gracias!!!
varonmarcos está desconectado   Responder Citando
Antiguo 04-sep-2007, 16:58   #910 (permalink)
jucardo ha deshabilitado el karma
 
Avatar de jucardo
 
Fecha de Ingreso: agosto-2007
Mensajes: 30
Re: Jasper Report + iReport + NetBeans 4

Me podrian decir que paquete contiene estos dos archivos o donde los puedo bajar

com.lowagie.text.pdf.PdfCopyFields
com.lowagie.text.pdf.PdfReader

gracias
jucardo está desconectado   Responder Citando
Antiguo 06-sep-2007, 08:12   #911 (permalink)
urreasuarezjose ha deshabilitado el karma
 
Fecha de Ingreso: septiembre-2007
Mensajes: 1
Re: Jasper Report + iReport + NetBeans 4

Hola todos:
Estoy iniciandome en JaperReport pero tengo una dificultad. Hice un reporte en iReport 2.0, el reporte tiene dos campos (field) que son visualizados en el detalle del reporte.

Luego desarrolle una aplicacion en java para ejecutar el reporte mas o menos asi:

if(rsData != null){

ResultSetDataSource dataSource = new JRResultSetDataSource(rsData);
jp = JasperFillManager.fillReport(archivoJasper, hmParametros, dataSource);
}else{
jp = JasperFillManager.fillReport(archivoJasper, hmParametros, new JREmptyDataSource());
}

la rsData la lleno de la siguiente forma:

cConn = obtenerConexion();
Statement stQuery = cConn.createStatement();
ResultSet rsData = stQuery.executeQuery("SELECT IDAREA CODIGO, NOMBRE FROM PRUEBA");

ya me asegure que retorne datos.

Ahora cuando ejecuto la aplicacion me sale este mensaje:
net.sf.jasperreports.engine.JRException Unable to get next record.

y sigue ademas esto.....

07/09/05 11:31:04 at co.com.trebol.util.reports.JasperReport.generarJas perPrint(JasperReport.java:66)
07/09/05 11:31:04 at co.com.trebol.util.reports.GenerarArchivoPdf.gener arArchivoPdf(GenerarArchivoPdf.java:61)
07/09/05 11:31:04 at pruebas.EjemploReport.generarReportes(EjemploRepor t.java:130)
07/09/05 11:31:04 at _jspEjemploReport._jspService(_jspEjemploReport.ja va:49)
07/09/05 11:31:04 at com.orionserver.http.OrionHttpJspPage.service(Orio nHttpJspPage.java:59)
07/09/05 11:31:04 at oracle.jsp.runtimev2.JspPageTable.service(JspPageT able.java:462)
07/09/05 11:31:04 at oracle.jsp.runtimev2.JspServlet.internalService(Js pServlet.java:594)
07/09/05 11:31:04 at oracle.jsp.runtimev2.JspServlet.service(JspServlet .java:518)
07/09/05 11:31:04 at javax.servlet.http.HttpServlet.service(HttpServlet .java:856)
07/09/05 11:31:04 at com.evermind.server.http.ServletRequestDispatcher. invoke(ServletRequestDispatcher.java:713)
07/09/05 11:31:04 at com.evermind.server.http.ServletRequestDispatcher. forwardInternal(ServletRequestDispatcher.java:370)
07/09/05 11:31:04 at com.evermind.server.http.HttpRequestHandler.doProc essRequest(HttpRequestHandler.java:871)
07/09/05 11:31:04 at com.evermind.server.http.HttpRequestHandler.proces sRequest(HttpRequestHandler.java:453)
07/09/05 11:31:04 at com.evermind.server.http.HttpRequestHandler.serveO neRequest(HttpRequestHandler.java:221)
07/09/05 11:31:04 at com.evermind.server.http.HttpRequestHandler.run(Ht tpRequestHandler.java:122)
07/09/05 11:31:04 at com.evermind.server.http.HttpRequestHandler.run(Ht tpRequestHandler.java:111)
07/09/05 11:31:04 at oracle.oc4j.network.ServerSocketReadHandler$SafeRu nnable.run(ServerSocketReadHandler.java:260)
07/09/05 11:31:04 at oracle.oc4j.network.ServerSocketAcceptHandler.proc ClientSocket(ServerSocketAcceptHandler.java:239)
07/09/05 11:31:04 at oracle.oc4j.network.ServerSocketAcceptHandler.acce ss$700(ServerSocketAcceptHandler.java:34)
07/09/05 11:31:04 at oracle.oc4j.network.ServerSocketAcceptHandler$Acce ptHandlerHorse.run(ServerSocketAcceptHandler.java: 880)
07/09/05 11:31:04 at com.evermind.util.ReleasableResourcePooledExecutor $MyWorker.run(ReleasableResourcePooledExecutor.jav a:298)
07/09/05 11:31:04 at java.lang.Thread.run(Thread.java:595)

Estoy usando jasperreports-2.0.1

Alguien sabe porque se produce esto? ya probe cambiando el reporte en el iReport usando el query directamente en el reporte y enviandole la conexion como parametro y me funciona bien, de la unica forma que no me funciona es enviadole el DataSource.


Cualquier aporte que me puedan hacer se los agradezco.

Saludos

Jose Luis Urrea
urreasuarezjose está desconectado   Responder Citando
Antiguo 07-sep-2007, 07:53   #912 (permalink)
jucardo ha deshabilitado el karma
 
Avatar de jucardo
 
Fecha de Ingreso: agosto-2007
Mensajes: 30
Re: Concatenar dos PDF Resuelto

Varonmarcos gracias por este ejemplo tan claro; precisamente estaba investigando la forma de concatener pdf. Ha sido muy util el ejemplo que nos diste. Nuevamente mil gracias.
jucardo está desconectado   Responder Citando
Antiguo 08-sep-2007, 09:40   #913 (permalink)
jucardo ha deshabilitado el karma
 
Avatar de jucardo
 
Fecha de Ingreso: agosto-2007
Mensajes: 30
Re: Jasper Report + iReport + NetBeans 4

buenos dias a todos.
Alguno conoce la forma de cargar imagnes de forma dinamica con jasper-ireport
de tal forma que pueda darme una manito?
jucardo está desconectado   Responder Citando
Antiguo 10-sep-2007, 05:56   #914 (permalink)
ashmedai82 ha deshabilitado el karma
 
Fecha de Ingreso: septiembre-2007
Mensajes: 1
Re: Jasper Report + iReport + NetBeans 4

Cita:
Iniciado por pacowar Ver Mensaje
Alguien que domine un poquito de subreports a ver si me puede echar un cable.

Tengo 1 report y 1 subreport. El subreport relleno la información mediante un datasource (en vez de una conexión). El subreport lo compilo, lo pruebo y va bien.

El problema viene cuando lo tengo que mostrar en el report Manager (el principal). No da error pero no se me muestra nada del subreport.

Alguien podría explicarme como se puede mostrar un subreport en un report utilizando un datasource y no una conexión??

PD: He mirado el manual de Francesc Rosés, pero no explica como usar con un datasource.

Gracias ;)
Hola, me parece haber leido más adelante en este foro que conseguiste solucionar este problema.
Yo creo estar ante un problema similar. Dispongo de un report y un subreport, cada cual debe obtener la información de un datasource distinto. En realidad el dataSource es el mismo fichero XML pero con distinta XPath, lo que CREO significa tener dos dataSources distintos. El caso es que individualmente funcionan pero no logro mostrar el report con el subreport en su interior.

Utilizando el ireport2.0.1 creo en el masterReport el cuadro donde debe aparecer el subinforme. Creo dos parametros, SUBREPORT de tipo JasperReport y MyDataSource de tipo JRDataSource.

Luego con un doble click sobre el informe, lo edito: En la pestaña 'subinforme (otros)' coloco la expresión del Subreporte: $P{SUBREPORT} del tipo JasperReport

En la pestaña 'subinforme' modifico el tipo de conexión a fuente de datos y añado: $P{MyDatasource}

No sé qué hago mal, si hay algo más que añadir o que?¿?¿

Se agradece de antemano cualquier sugerencia.

Saludos.
ashmedai82 está desconectado   Responder Citando
Antiguo 11-sep-2007, 11:37   #915 (permalink)
jazpiroz ha deshabilitado el karma
 
Fecha de Ingreso: septiembre-2007
Mensajes: 18
Re: Jasper Report + iReport + NetBeans 4

hola a todos
problema con fechas

estoy usando iReport para crear algunos reportes
la situacion es la siguiente:

select * from nacimientos where nacimientos.fecha
>=$P{pFecha}+285

donde pFecha es un parametro de tipo string
la consulta no da error pero tampoco tiene el cuenta
la suma de 285 dias

el motor de base de datos es access

desde ya muchas gracias

juanma
jazpiroz está desconectado   Responder Citando
Antiguo 11-sep-2007, 13:39   #916 (permalink)
marcko_23 ha deshabilitado el karma
 
Fecha de Ingreso: septiembre-2007
Mensajes: 1
java.lang.OutOfMemoryError en formato xls

destruktor
no todo puede ser buenas noticias, al momento de que realizo mi reporte, me marca la siguiente exception java.lang.OutOfMemoryError.
Me imagino que es por el numero de registros que encuentra.
Lo genera bien en pdf , rtf , html y xls
Realiza un reporte en XLS Excel, me lo muestra cuando son menos de 1000 registros, pero cuando son 3000 reg. me marca el error que les comento.
El reporte debe estar en una sola pagina de excel sin realizar paginacion
Mi codigo es



public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
IObjectPersisterService service = (IObjectPersisterService) ServiceLocator.getInstance().getService(IObjectPer sisterService.class);

service.open();
Session session = service.getSession();

if (form != null){
InformeAlumnoForm alForm = (InformeAlumnoForm) form;
UserView uv = (UserView) request.getSession().getAttribute("USUARIO");

String reportType = alForm.getTipo();
String informeAlumno = alForm.getNombre();
String centro = alForm.getCentro();
String curso = alForm.getCurso();
try {
//cargar los parametros para el reporte
HashMap reportParams = new HashMap();
reportParams.put("User", uv.getNombre() + " " + uv.getApellidos());
String criterio = "";
if (centro.equals("")){
centro = "Todos los centros";
}else {//Selecciona un solo centro
criterio = "co.codigo = '" + centro + "' and ";
}

reportParams.put("Centro", centro);
ItemView iv= new ItemView();

String info ="";
String query;
if (informeAlumno.equals("AluCentro")){
iv.setId("AluCentro");
iv.setDescripcion("Alumnos por Centro");
info = "Alumnos por Centro";
query="select co.codigo as codcentro, co.nombre as nombrecentro, co.direccion as direccioncentro, al.dni as dni, aludata.nombre as nombrealu, aludata.apellidos as apellidosalu, aludata.fanacimiento as fnacimientoalu, aludata.domicilio as domicilioalu, aludata.provincia as provinciaalu, aludata.cp as cpalu, aludata.sexo as sexoalu from centroocupacional co, alumno al, datosalumno aludata where " + criterio + " co.codigo = al.codigocentro and al.dni = aludata.dni order by co.codigo, aludata.dni";
}else if (informeAlumno.equals("EdicionCurso")){
iv.setId("EdicionCurso");
iv.setDescripcion("Ediciones de Cursos por Centro");
info = "Ediciones de Cursos por Centro";
query="SELECT cur.codigo AS codcurso, cur.nombre AS nombrecurso, edi.codigo AS codedicion, edi.finicio AS fechainiedi, edi.ffin AS fechafinedi, edi.alumnosi AS aluiniedi, edi.alumnosf AS alufinedi FROM curso cur, edicionescurso edi, centroocupacional co WHERE " + criterio + "cur.codigo = edi.codigocurso AND edi.codigocentro = co.codigo " +
"GROUP BY edi.codigo, cur.codigo, cur.nombre, edi.finicio, edi.ffin, edi.alumnosi, edi.alumnosf ";
} else { //if (informeAlumno.equals("AluEdiciones"))
iv.setId("AluEdiciones");
iv.setDescripcion("Alumnos de Ediciones");
info = "Alumnos de Ediciones";
query="SELECT cur.codigo AS codcurso, cur.nombre AS nombrecurso, edi.codigo AS codedicion, edi.finicio AS fechainiedi, edi.ffin AS fechafinedi, edi.alumnosi AS aluiniedi, edi.alumnosf AS alufinedi, alu.dni AS dni, aludata.nombre AS nombrealu, aludata.apellidos AS apellidosalu, aludata.fanacimiento AS fnacimientoalu, aludata.domicilio AS domicilioalu, aludata.provincia AS provinciaalu FROM curso cur, edicionescurso edi, alumnosporcurso aluxcur, alumno alu, datosalumno aludata, centroocupacional co where " + criterio + "cur.codigo = edi.codigocurso AND alu.dni = aluxcur.codigoalumno AND aluxcur.codigoediciones = edi.codigo AND alu.codigocentro = edi.codigocentro AND alu.dni = aludata.dni AND edi.codigocentro = co.codigo " +
"GROUP BY cur.codigo, cur.nombre, edi.codigo, edi.finicio, edi.ffin, edi.alumnosi, edi.alumnosf, alu.dni, aludata.nombre, aludata.apellidos, aludata.fanacimiento, aludata.domicilio, aludata.provincia ";
}
reportParams.put("Info", info);
reportParams.put("Query", query);


String path = super.getPathReportes();

//Create Datasource

String inputXML = path + informeAlumno + ".xml";
reportParams.put("Path", path);
logger.debug("query"+query);
logger.debug("query"+query);
logger.debug("Type"+reportType);


ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
CreateReport aStreamReport = new CreateReport(inputXML, reportType, byteArrayOutputStream, reportParams, session.connection());


sendData(response,byteArrayOutputStream,"ReporteAl umnos." + reportType.toLowerCase());


} catch (Exception e) {
e.printStackTrace();
}

}
return mapping.findForward("showReport");

}

Última edición por marcko_23; 11-sep-2007 a las 14:16. Razón: informacion
marcko_23 está desconectado   Responder Citando
Antiguo 11-sep-2007, 15:35   #917 (permalink)
glomer ha deshabilitado el karma
 
Avatar de glomer
 
Fecha de Ingreso: septiembre-2007
Mensajes: 4
Re: Archivos EXCEL

Cita:
Iniciado por DestruKtor Ver Mensaje
Para todos lo que siguen preguntando por privado como exportar a Excel desde un JSP, la cosa es asi:

Código:
//Cargamos la definicion del reporte *.jasper
java.io.File reportFile = new java.io.File(JasperFilesSource + filejasper );
     
//cargamos parametros del reporte (si tiene).
Map parametros = new HashMap();
			 
//Generar XLS. 
//Preparacion del reporte (en esta etapa se inserta el valor del query en el reporte).

JasperPrint jasperPrint=JasperFillManager.fillReport(reportFile.getPath(), parametros, conexion);
                
//Nombre archivo resultado.
//Sugerencia: traten de generar un nombre dinamico concatenando fecha y hora para evitar se pisen los reportes al tener el mismo nombre.
 String xlsFileName = "archivo.xls";
               
                
//Creacion del XLS
JRXlsExporter exporter = new JRXlsExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
                exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME,xlsFilesSource + xlsFileName);
                exporter.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET, Boolean.TRUE);
exporter.exportReport();

//En este punto ya esta Creado el XLS
				
				
//Ahora lo Voy a Leer Y A forzar al Navegador Muestre Dialogo Para descargar el archivo
//Funciona En IE y Firefox
           
				
//Leer el archivo.
File f = new File (xlsFilesSource + xlsFileName);
				
//Configurar el tipo de archivo.
response.setContentType ("application/vnd.ms-excel");
				
//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=\"" + xlsFileName + "\"");
				
				
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();
Noten que tras generar el archivo lo leeo y envio al browser para su descarga al pd del cliente desplegando el dialogo de descarga. para quien preguntaba si era necesario configurar algo en el reporte para generarlo en exel, pues no, uno al crear el reporte el reporte se genera en el formato que uno desee, dependiendo el metodo de exportacion que utilize. nada más. lo que tienen que tener en cuenta es que cuando exporten a exell solo se exporta el texto, NO las imagenes, asi que diseñen el reporte teniendo en cuenta estos detalles

Saludos a tododos!!
glomer está desconectado   Responder Citando
Antiguo 11-sep-2007, 15:42   #918 (permalink)
glomer ha deshabilitado el karma
 
Avatar de glomer
 
Fecha de Ingreso: septiembre-2007
Mensajes: 4
Re: Jasper Report + iReport + NetBeans 4

Hola me parece muy buena la logica de el archivo en excel, yo soy nuevo en esto y estoy tratando de entenderle, espero me puedas ayudar.
Yo genero el pdf y me lo guarda en el disco del servidor pero no logro invocarlo para abrirlo y poderlo ver, hay unas soluciones ya en el foro lo malo es que todas la clase que lo corre esta la sesion del servidor y yo le pasa la consulta y no el parametro asi que lo hago en una clase y luego la mando a traer.
Ahora el excel no lo he genera en tu logica me puedes decir que es xlsFilesSource
o como lo generas como paso ese parametro?
Gracias
anexo el codigo

public void ReporteRolTurnoM(int folio) throws JRException,SQLException,Exception
{
conn = getConexion();
stmt = conn.createStatement();
StringBuffer sb = new StringBuffer();
Map mapa = new HashMap();
try
{
if(!conn.isClosed())
{
FileInputStream file = new FileInputStream("C:\\Archivos de programa\\JasperSoft\\iReport-1.3.3\\RolTurnoM.jasper");
String pdffile = "C:\\Archivos de programa\\JasperSoft\\iReport-1.3.3\\RolTurnoM.pdf";
String xlsFileName = "C:\\Archivos de programa\\JasperSoft\\iReport-1.3.3\\RolTurnoM.xls";
sb.append("SELECT t1.i35_folrol, t1.i35_numpla, t1.d35_fecini, t1.d35_fecfin, t1.i35_tiprol, t1.c35_starol, ");
sb.append(" t2.i42_numemp, t2.i42_cvetno, t2.i42_diauno, t2.i42_diados, t2.i42_diatre, t2.i42_diacua, ");
sb.append("t2.i42_cvemov, t2.d42_fecini, t2.d42_fecfin, t2.i42_cvepto, t3.c20_nomemp, t3.c20_apater, t3.c20_amater,");
sb.append("t4.c34_destip, t5.c19_nompla, t6.c21_destno, t7.c33_desmot, t8.c36_desdia a, t9.c36_desdia b,");
sb.append("t10.c36_desdia c, t11.c36_desdia d");
sb.append(" FROM t35_roltno t1, t42_emprol t2, t20_emplea t3, t34_tiprol t4,t19_plazas t5,t21_turnos t6 ");
sb.append(",t33_motivo t7,t36_semana t8,t36_semana t9, t36_semana t10, t36_semana t11");
sb.append(" WHERE t1.i35_folrol = ");
sb.append(folio);
sb.append(" and t1.c35_starol = 'A' ");
sb.append(" and t3.i20_cveemp = ( SELECT t2.i42_numemp FROM t42_emprol t1 WHERE t1.i42_numemp = t3.i20_cveemp ");
sb.append(" and t1.i42_cverol = ");
sb.append(folio);
sb.append(")");
sb.append(" and (t2.i42_cvepto = 11 or t2.i42_cvepto = 12 or t2.i42_cvepto = 13 or t2.i42_cvepto = 25 or t2.i42_cvepto = 26 or t2.i42_cvepto = 27 or t2.i42_cvepto = 33 or t2.i42_cvepto = 34 or t2.i42_cvepto = 38 or t2.i42_cvepto = 35 or t2.i42_cvepto = 39 or t2.i42_cvepto = 18 or t2.i42_cvepto = 20 or t2.i42_cvepto = 30)");
sb.append(" and t4.i34_cvetip = (SELECT t1.i35_tiprol FROM t35_roltno t1 WHERE t1.i35_folrol = ");
sb.append(folio);
sb.append(")");
sb.append(" and t5.i19_cvepla = (SELECT t1.i35_numpla FROM t35_roltno t1 WHERE t1.i35_folrol = ");
sb.append(folio);
sb.append(")");
sb.append(" and t6.i21_cvetno = ( SELECT t2.i42_cvetno FROM t42_emprol t1 WHERE t1.i42_cverol = t1.i35_folrol and t1.i42_numemp = t3.i20_cveemp)");
sb.append(" and t7.i33_cvemot = ( SELECT t2.i42_cvemov FROM t42_emprol t1 WHERE t1.i42_cverol = t1.i35_folrol and t1.i42_numemp = t3.i20_cveemp)");
sb.append(" and t8.i36_cvedia = ( SELECT t2.i42_diauno FROM t42_emprol t1 WHERE t1.i42_cverol = t1.i35_folrol and t1.i42_numemp = t3.i20_cveemp)");
sb.append(" and t9.i36_cvedia = ( SELECT t2.i42_diados FROM t42_emprol t1 WHERE t1.i42_cverol = t1.i35_folrol and t1.i42_numemp = t3.i20_cveemp)");
sb.append(" and t10.i36_cvedia = ( SELECT t2.i42_diatre FROM t42_emprol t1 WHERE t1.i42_cverol = t1.i35_folrol and t1.i42_numemp = t3.i20_cveemp)");
sb.append(" and t11.i36_cvedia = ( SELECT t2.i42_diacua FROM t42_emprol t1 WHERE t1.i42_cverol = t1.i35_folrol and t1.i42_numemp = t3.i20_cveemp)");
sb.append(";");

trace(sb.toString());

ResultSet rs = stmt.executeQuery(sb.toString());

JasperReport jr = (JasperReport)JRLoader.loadObject(file);
JRResultSetDataSource jrRS = new JRResultSetDataSource(rs);
JasperPrint jp = JasperFillManager.fillReport(jr,mapa,jrRS);

JasperExportManager.exportReportToPdfFile(jp, pdffile);


JRXlsExporter exporter = new JRXlsExporter();
exporter.setParameter(JRExporterParameter.JASPER_P RINT, jp);
exporter.setParameter(JRExporterParameter.OUTPUT_F ILE_NAME,xlsFilesSource + xlsFileName);
exporter.setParameter(JRXlsExporterParameter.IS_ON E_PAGE_PER_SHEET, Boolean.TRUE);
exporter.exportReport();


// JasperViewer.viewReport(jp);
JasperViewer.viewReport(jp,false);
// JasperPrintManager jpm = new JasperPrintManager();
// jpm.printReport(jp,false);
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
glomer está desconectado   Responder Citando