![]() |
Hola a todos soy completamente nuevo en esto del jasperReport, realice un sistema de captura de informacion con NetBeans y se lo envio a un archivo de excel con ayuda de las librerias de POI de jacarta, lo que nesecito hacer es que cuando se termine de capturar los datos se pueda imprimir la informacion directamente sin tener el archivo ya que se pude modificar la inf. lo he intentado con iReport pero resulta lo mismo. lo que quisiera saber es si poedo imprimir la informacion capturada desde iReport. gracias. |
Concatenar dos PDF Resuelto 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" %> |
iReport Hola a todos, veo que son muy buenos en esto, mi pregunta es si puedo colocar una marca de agua en el reporte? Otra cosa, ya me muestra el reporte en un pdf pero por alguna razon se abren dos ventanas del acrobat y en netbeans muestra el siguiente error: MonitorFilter::java.lang.IllegalStateException: getOutputStream() ya ha sido llamado para esta respuesta Les agradezco alguna sugerencia. |
JCarlos, cuando lo generas con el ireport, lo puedes mandar a imprimir una vez habra el reporte en pdf.....es decir, con el acrobat reader lo mandas a imprimir. anjaarrin, muestra el codigo a ver si te podemos ayudar ...pienso que es necesario ver el codigo, seguro hay algo redundante hay. |
buenas tardes a todos, estoy iniciandome con jasper reports apenas he podido hacer que un .pdf se ejecute en el navegador, ok este reporte no esta ligado a una bd unicamente tiene un cudro de texto si este reporte lo ejecuto dentro de el ireport se visualiza correctamente el reporte pero el problema es que cuando se muestra dentro del navegador (mediante un jsp) no muestra nada, esta en blanco, les agradecere cualquier ayuda que puedan proporcionarme. |
visualizar texto en el reporte buenas tardes a todos, estoy iniciandome con jasper reports apenas he podido hacer que un .pdf se ejecute en el navegador, ok este reporte no esta ligado a una bd unicamente tiene un cudro de texto si este reporte lo ejecuto dentro de el ireport se visualiza correctamente el reporte pero el problema es que cuando se muestra dentro del navegador (mediante un jsp) no muestra nada, esta en blanco, les agradecere cualquier ayuda que puedan proporcionarme. |
ojvm_24, fijate en todo el foro, ya se han posteado codigos para visualizar un reporte en jsp. Cual es el codigo que usas para visualizar tu reporte ? |
GRACIAS yimenz lo de el codigo si he visto los ejemplos que han puesto en foro, de hecho el codigo que estoy usando lo obtube de aqui, claro tambien checando uno que otro tutorial, mira como comento en mi post anterior he diseñado un reporte sin acceso a bd lo unico que tiene es un campo de texto en el encabezado, si lo lanzo dentro de la aplicacion si se visualiza pero si lo no se ve si lo ejecuto desde mi .jsp. este es el codigo <%@ page import="net.sf.jasperreports.engine.*" %> <%@ page import="java.util.*" %> <%@ page import="java.io.*" %> <%@ page import="javax.sql.*" %> <%@ page import="java.sql.*" %> <%@ page import="javax.naming.*" %> <% Connection conexion; String STRING = "jdbc:mysql://localhost/tesoreria"; Class.forName("com.mysql.jdbc.Driver").newInstance (); conexion = DriverManager.getConnection(STRING,"root","test"); byte[] bytes = JasperRunManager.runReportToPdf(reportFile.getPath (), null, conexion); response.setContentType("application/pdf"); response.setContentLength(bytes.length); ServletOutputStream ouputStream = response.getOutputStream(); ouputStream.write(bytes, 0, bytes.length); ouputStream.flush(); ouputStream.close(); %> muchas gracias por la ayuda que me puedas dar.. |
{yimenz} ok, ya funciono¡¡¡ solo era una opcion dentro las propiedades del proyecto, no era algo de codigo, por si te interesa la opcion es proyecto--> opciones del proyecto --> more, estando ahi en la opcion "cuando no haya datos" seleccionas blank page y listo ya aparecera el encabezado aunque el reporte no tenga datos, bien ahora la parte mas importante, que me muestre datos de la bd. ya te comentare como me fue. |
esto parece chiste pero ya funciono¡¡¡ ok, el reporte ya funciona correctamente, unicamente tengo 2 dudas. 1.- le estoy pasando un parametro a mi reporte este lo toma y me muestra los registros relacionados, aparentemente bien pero la duda es la siguiente, tengo definido un query de la siguiente forma select * from contrarecibo where nocontrarecibo LIKE '$P!{nocontrarecibo}%' si tiene el "like" si retorna datos pero si le pongo select * from contrarecibo where nocontrarecibo = '$P!{nocontrarecibo}%' no me retorna nada, el parametro se llama "nocontrarecibo" y dentro del campo"default value expresion" tengo esta expresion "new String ("L11")" no se si sea correcto ya que si se la quito me marca error. 2- la segunda duda es como le paso un parametro de manera dinamica a mi .jsp , por el momento deje hardcodeado el parametro asi. Map param = new HashMap(); param.put("nocontrarecibo","L10"); pero como puedo pasar el valor, ya vi unos ejemplos de como obtenerlo. algo asi como request.getParameter(parametro);, pero no se exactamente como enviarlo. muchas gracias y estoy feliz por que alfin pudo funcionar mi reporte, por cierto el error era, supongo yo, que el ejemplo que estaba utilizando tenia un codigo para cierta version del jasper, ayer en la noche baje la actualizacion 0.5.1 que trae la ver. 1.0.1 del jasper y una nueva del itext y asi fue como funciono. |
yimenz mira mi codigo <%@ 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="java.net.*" %> <%@ page import="java.util.*" %> <%@ page import="java.io.*" %> <%@ page import="javax.sql.*" %> <%@ page import="java.sql.*" %> <%@ page import="javax.naming.*" %> <% try { ResultSet rs = null; Statement st = null; String sql = null; String driver = "org.postgresql.Driver"; String connectString = "jdbc:postgresql://localhost:5432/HC"; String user = "postgres"; String password = "1234"; Class.forName(driver); Connection conn = DriverManager.getConnection(connectString, user, password); System.setProperty("jasper.reports.compile.class.p ath", application.getRealPath("/WEB-INF/lib/jasperreports-0.6.7.jar") + System.getProperty("path.separator") + application.getRealPath("/WEB-INF/classes/")); System.setProperty("jasper.reports.compile.temp", application.getRealPath("/reports/")); JasperCompileManager.compileReportToFile(applicati on.getRealPath("/reports/citasAtendidas.jrxml")); File reportFile = new File(application.getRealPath("/reports/citasAtendidas.jasper")); Map parameters = new HashMap(); byte[] bytes = JasperRunManager.runReportToPdf(reportFile.getPath (), parameters, conn); response.setContentType("application/pdf"); response.setContentLength(bytes.length); ServletOutputStream ouputStream = response.getOutputStream(); ouputStream.write(bytes, 0, bytes.length); ouputStream.flush(); ouputStream.close(); } catch (JRException e) { System.out.println("Error:" +e.getMessage());} catch (Exception e) { e.printStackTrace(); System.out.println("Error2:" +e.getMessage()); } %> Este es mi codigo y abre 2 ventanas del acrobat 7.0 y sale el error de: MonitorFilter::java.lang.IllegalStateException: getOutputStream() ya ha sido llamado para esta respuesta Tambien deseo saber como convierto una imagen en una marca de agua. Gracias. :adios: |
Hola Yimenz, primero que nada gracias por tu comentario, lo que queria saber es si es posible imprimir el reporte desde java sin tener que abrir acrobat, no me explique bien, ahora tengo otro problema necesito saber si es posible pasarle parametros al reporte pero NO de la base de datos, ni de una funcion, sino de un archivo. se podra? bueno muchas gracias a todos |
JCarlos24 Si se pueden pasar parametros que no contienen datos de la BD, defines en ireport los parametros en: ver - parametros del report, le das un nombre y seleccionas el tipo, en java envia el parametro con: Parameters.put("nombre_parametro","valor") De esta manera funciona bien, espero te sirva. :adios: |
buenass. una consulta con respecto a pasar una consulta completa por parámetros: ¿cómo hago para refereciar a un campo del resultado de la consulta desde el ireport ? es decir la consulta sería: $P!{consulta} y en la banda detail del ireport muestro el campo $F{nombres} (que supuestamente está en el select de la consulta) esto me da un error al compilar ya que no encuentra al campo "nombres" espero que alguien sepa como se hace esto. Desde ya muchas gracias |
ojvm_24, me alegra que hayas podido solucionar tu problema. Bueno al grano. con relacion a tu primera pregunta, a mi parecer es esencial que le pongas un valor por defecto a tu parametro, si es un String puedes hacerlo asi como lo estas haciendo "new String ("L11")" ó simplemente poniendo ""L11"" Al utilizar el "LIKE" y el "%" al final en tu consulta, "LIKE '$P!{nocontrarecibo}%" el resultado que te trae son todos los nocontrarecibo que empiecen por "L11", en el ejemplo que pones. Si cambias el "LIKE" por "=" en la misma consulta "= '$P!{nocontrarecibo}%" el resultado que se obtiene es buscar en el campo nocontrarecibo exactamente la palabra "L11%" y es por este motivo que no te devuelve nada en tu consulta, no encuentra ninguna palabra con este nombre. la segunda duda, es muy facil pasar valores por parametros de forma dinamica. te pongo un ejemplo muy sencillo: /*Declaro e inicializo la variable codigobebe, para enviarla como parametro*/ String codigobebe="0"; if (request.getParameter("codigobebe")!=null) codigobebe = request.getParameter("codigobebe"); /*<Enviamos los parametros al reporte>*/ Map parameters = new HashMap(); parameters.put("CODIGO_BEBE",codigobebe); ---------- anjaarrin2005 No me hago la idea de lo que es una "imagen en marca de agua" =) ----------- JCarlos24 Carlos imprimir el reporte desde java sin abrir el acrobat si se debe poder, habria que buscar en la documentacion de java como manipular la impresora desde java aunque pienso que resultaria mas complicado pero no imposible. Pasar parametros desde un archivo tambien se puede, mira hay el concepto seria mas o menos abrir el archivo, leerlo y enviar lo que desees como parametro al reporte. Fijate en la clase File, esta te puede ayudar. Desgraciadamente no tengo un ejemplo, hasta ahora no me he enfrentado con ninguna de las dos cituaciones que dices ----------- |
Hola a todos en especial a los que han redpondido mis mensajes, ahora voy a explicar un poco mas mi sictuacion: Numero 1.- lo que nececito hacer es una aplicacion de escritorio(nada que ver con aplicaciones web, ni con bases de datos) ,entonces, hice una aplicacion con java Swing la cual me genera un archivo de texto, pero tambien nececito que dicha aplicacion imprima el formato con los datos capturados, asi es que necesito mandarle la inf del archivo generado al formato del reporte. Numero2.- se me hace interesante lo de las bases de dato asi es que tomando codigo que an posteado en este foro hice un ejemplo el codigo es el siguiente: import net.sf.jasperreports.engine.*; import net.sf.jasperreports.engine.export.*; import net.sf.jasperreports.engine.util.*; import net.sf.jasperreports.view.*; import java.sql.*; import java.io.*; import java.util.*; public class Jasper { public Jasper() { } public static void main(String[] args) { try { //Ruta de Archivo Jasper String fileName="C:/Report.jasper"; //Ruta de archivo pdf de destino String destFileNamePdf="C:/Report.pdf"; //Ruta de archivo xls de destino String destFileNameXls="C:/Report.xls"; //Pasamos parametros al reporte Jasper. Map parameters = new HashMap(); parameters.put("sql_query", new String("select * from cat_aduanas where c_adu < '5';")); //Preparacion del reporte (en esta etapa se inserta el valor del query en el reporte). JasperPrint jasperPrint=JasperFillManager.fillReport(fileName, parameters, getConnection()); //Creación del PDF JasperExportManager.exportReportToPdfFile(jasperPr int, destFileNamePdf); //Creación del XLS JRXlsExporter exporter = new JRXlsExporter(); exporter.setParameter(JRExporterParameter.JASPER_P RINT, jasperPrint); exporter.setParameter(JRExporterParameter.OUTPUT_F ILE_NAME, destFileNameXls); exporter.setParameter(JRXlsExporterParameter.IS_ON E_PAGE_PER_SHEET, Boolean.TRUE); exporter.exportReport(); System.exit(0); } catch (Exception e) { System.out.println(e); } } /**Metodo para crear la conexion a DB*/ private static Connection getConnection() throws ClassNotFoundException, SQLException { //Configuración de la conexión. String driver = "com.mysql.jdbc.Driver"; //"org.postgresql.Driver"; String connectString = "jdbc:mysql://172.16.1.45/saaibase"; //"jdbc:postgresql://192.168.1.7:5432/bdtest"; String user = "root"; String password = ""; Class.forName(driver); Connection conn = DriverManager.getConnection(connectString, user, password); //Retornamos la conexión establecida. return conn; } } pero al momento de ejecutarlo me muestra el siguiente error: net.sf.jasperreports.engine.JRException: Error loading object from file: C:\Report.jasper ya revice las librerias y parece que todo esta en orden pero no logor hacer que funcione, si alguien me puede ayudar se los agradecere. gracias |
Marca de agua Es una imagen que esta en fondo de la pagina, algo asi como las imagenes del papel membreteado que usan algunas empresas. :-( |
gracias y disculpa. no habia ingresado a los foros desde hace unos dias, bueno, mira ya mas o menos estoy manejando lo de los reportes afortunadamente por el momento no son muy complicados (cheques y listados) probablemente para el futuro empiese con sub-reportes. voy a poner en practica el consejo que me das hacerca de la busqueda, lo de los parametros si me funciono. muchas gracias por tu tiempo y por compartir tus conocimientos con la comunidad espero pronto estar a un buen nivel para tambien aportar. |
Cita:
Las podes hacer de la siguiente manera: Edita la imagen que quieres poner en marca de agua con el Photoshop. Este programa te permite poner transparente la imagen. Pasos a seguir, Abre el Photoshop y crea un nuevo archivo (File-New) en la ventana que te sale, cambia el nombre del archivo, cambiale los campos Width, Height a tu gusto (ponlos del tamaño de la imagen) donde dice Resolution ponle 72 pixels/inch y en Background Contents coloca Transparent. dale clic en Ok. Terminado esto abre tu imagen (File-Open) una ves que la abras seleccionala y arrastrala al proyecto o archivo que creaste anteriormente. Teniendo tu imangen en el archivo que creaste al principio, ahora la opacaremos un poco para darle la apariencia de marca de agua. Ve a Layer-Layer Style-Blending Options Hay un campo que se llama Opacity, lo pones en 50 % click en Ok. Guarda la imagen (File-Save As..) Donde dice nombre ponle el que quieras y donde dice Format cambialo a JPEG. Despues da click en Guardar, Click en Ok y listo terminamos con el Photoshop. Ahora nos vamos al ireport. Todo reporte tiene una Estructura (Document structure) para realizar lo de marca de agua lo que nos interesa es la parte de background. Primero esta parte pon la del tamaño que desees (Entre mas grande mejor) una vez que tengas el espacio que quieres. Selecciona Image Tool e ingresa una imagen a tu reporte en la parte que dice background dale doble click a la imagen que ingresaste para verle las propiedades y da click en la pestaña Image y despues en Find para buscar la imagen que deseas poner en tu reporte. Busca la imagen que creamos anteriormente y dale click en OK. EN la parte de Scale Image ponle FillFrame. Ejecuta el reporte y veras como se ve con un efecto de marca de agua. Recuerda señalar el atributo de transparencia a todos los static text y textfield que vallas a ingresar. |
Gracias yimenz Hola, gracias por tu ayuda, ya pude colocar la imagen... Otra cosa, ya genero reportes en pdf y con el visor de ireport, pero necesito generarlos en HTML, si sabes cual es el codigo te agradezco tu respuesta; ademas como se hacen los gráficos estadísticos con ireport? Gracias. |
Comenzando y Aprendiendo.... Soy nuevo un poco en esto del Ireports, y aunque ya he creado un par de reportes en el, creanme que han sido tan pobres que daria lastima verlos. Pero bueno, un poco mas al grano.... le agradecería a alguien que me colaborara sobre una duda que tengo.... Me pasa lo siguiente Tengo un Encabezado Rompimiento por cliente Detalle .... El problema es que al intentar totalizar un campo que esta en la linea del detalle si me deja, peo cuando intento totalizar una linea que esta en la linea del rompimiento no me da el valor que es..... necesito totalizarlas al final del reporte... (Por cierto lo estoy haciendo con una variable) si hay otra forma me encantaria conocerla Si me pueden colaborar MIL GRACIAS............ :cool: Alejo® |
Chart tool Gracias por tu ayuda yimenz, ya pude hacerlo, sin embargo estoy con problemas con los graficos estadisticos, ya los genera ireport pero no lo hemos podido hacer desde netbeans, y sale error en la clase que genera el ireport: C:\Programa\reports\graficoestadistico.java:136: package it.businesslogic.ireport does not existC:\Programa\reports\graficoestadistico.java:9 6: package it.businesslogic.ireport does not exist Te agradezco si sabes algo de esto Bye. :pensando: |
anjaarrin2005 prueba que la version del ireport.jar y de todas las librerias que uses se han las mismas que estan en la carpeta lib del ireport. Con respecto al error del Netbeans, prueba Seteando (colocando) en el CLASSPATH el ireport.jar ó si no mira en las opciones del Netbeans a ver como agregas librerias. Espero lo soluciones con esto ---------------- Alejo Una forma que se me ocure para resolver tu problema, es utilizando parametros. Si lo haces desde un JSP, totalizas el campo detalle y lo mandas como parametro al reporte. Si no lo haces desde un JSP seria la misma historia, conectas a la base de datos, realizas tu consulta totalizas la variable detalle o la que quieras y despues la mandas por parametro al reporte. |
Gracias...! Oye Yimenz muchas gracias.... Si, eso lo entiendo, pero lo que pasa es que el problema que tengo es a la hora de ir a crear la variable que tendra el SUM del campo. porque si esta, esta dentro del detalle no me pone problema, pero si esta al mismo nivel del rompimiento me la totaliza mal.... o.... no se si es que estoy creando mal la variable..... no conozco otra forma de totalizarla mas que haciendo un sum al campo........ hay otra forma? aaa y recuerda, que el problema anexo que tengo, es que necesito que solo me salga al final del reporte, no que me salga cada rompimiento, por eso creo que debe ir hubicada en el summary o no???? :cool: Alejo® |
Para que te salga solo al final, necesitas ponerla en el Page Footer. Con la idea que tuve de pronto no me supe explicar bien, sumas todo con una consulta a la base de datos "SELECT Count(campo_tabla) total FROM tabla" el resultado que te devuelve lo guardas en una variable "variable = rs.getString("total")" y lo mandas como parametro de la siguiente forma al momento de compilar y generar el reporte /*<Enviamos los parametros al reporte>*/ Map parameters = new HashMap(); parameters.put("TOTAL_CALCULADO",variable); Y recuerda crear en el ireport la variable TOTAL_CALCULADO de tipo String |
Mil Gracias Oye Yimenz de verdad mil gracias, ya me funciono, claro, no lo hice con un count porque no necesitaba saber la cantidado de registros, sino que me toco utilizar un SUM porque necesitaba totalizar unos valores, bueno..... Muchisimas gracias :cool: Alejo® :cool: |
Hola... de nuevo yo Otra inquietud para aquellos que me puedan colaborar... Yo tengo un reporte creado en Reports6.0 en Oracle y yo quiero convertirlo en un reporte Java, asi que decidi comenzar a pasarlo por el Jasper iReports5.0 y el problema que tengo es que muchos de los campos que alli tengo son formulas, incluso algunas de ellas con Select anidados, etc. Existe alguna forma en la cual yo pueda ingresar estas "Formulas" al Ireports??????????? Gracias.... :cool: Alejo® |
Graficos con jfreechart Hola a todos, la verdad tengo serios problemas con los chart en ireport, resulta que genero un grafico con Pie Chart, Pie3D Chart, pero si deseo hacer un grafico de otro tipo necesariamente los valores X y Y deben ser numeros no strings, alguien sabe como puedo hacer un grafico que no sea Pie por ejemplo cantidad vs. producto. Gracias... :adios: |
graficos... Hola ya pude generar los graficos excepto el de tipo Line, si alguien sabe como debo hacer las series o las restricciones que tiene este tipo de gráfico le agradezco su ayuda... Bye. |
Acerca Del Scriptlet SI NO MAL ME PARECE EL SCRIPLET.JAVA LO DEBES PONER EN LA CARPETA DE CLASSES DENTRO DEL WEB-INF ya que desde ahi lo lee |
La zona horaria es GMT -6. Ahora son las 07:47. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2025, Jelsoft Enterprises Ltd.