Capturar webcam con VB.NET

¿Que haremos? Crearemos una aplicación en Visual Studio, la cual hará uso de una webcam para capturar el video en frames independientes y depositarlos en memoria para despues mostralos al usuario a través de un picturebox y un Timer para crear la ilusión de movimiento. ¿Porque lo haremos? Porque es justo y necesario ¿Que necesitamos? [...]

Envío de correo con JavaMail/Netbeans

JavaMail es una expansión de Java que facilita el envío y recepción de e-mail desde código java. JavaMail implementa el protocolo SMTP (Simple Mail Transfer Protocol) así como los distintos tipos de conexión con servidores de correo -TLS, SSL, autentificación con usuario y password, etc [Según SantaWikipedia] ¿Qué necesitamos? JavaMail 1.4.5 Java y Netbeans 6.9 [...]

Proyecto de base de datos Firebird VB

En este proyecto realizaremos una aplicación de base de datos Firebird con el lenguaje de programación de Visual Basic de Microsoft, este proyecto tendrá las funciones básicas de gestión INSERT, DELETE, UPDATE y una interfaz de usuario para utilizarlas. ¿Que necesitamos? Visual Studio 2008 o superior Firebird última versión Firebird ADO.NET Data Provider. Conocimientos básicos [...]

Imprimir imagen con Print

La siguiente clase hace uso de PRINT para imprimir una imagen que se encuentra en un variable de tipo FileInputStream, esta clase a su vez es implementada desde una interfaz que hace fácil su uso, la clase así como todo el proyecto esta comentado. import java.io.File; import javax.print.Doc; import java.io.IOException; import javax.print.DocFlavor; import javax.print.SimpleDoc; import java.io.FileInputStream; [...]

8/2/11

Reportes con iReport y Netbeans [Parametros]

JAN29

Como se vio en tutoriales anteriores:

Donde se utilizo la herramienta Jaspert Report para la creaciones de los informes y su posterior uso en un IDE como Netbeans, tambien es necesario que en algunos informes se utilicen parametros de entrada para ejecutar las consultas SQL, esto se vio en el videotutorial Reportes con iReport, donde en uno de los ejemplos, se creo un informe que utilizaba un parametro de entrada de tipo String el cual nos permitia ejecutar una consulta para buscar registros con apellidos paternos que empiecen con una letra de A-Z.

Pues, ahora se dara continuacion a ese tutorial, se explica como enviar esos parametros a iReport desde el IDE de Java Netbeans.

Nos creamos una clase  informe_con_parametros.java y pegamos el siguiente codigo:


/* librerias de ireport*/
import java.net.URL;
import java.util.HashMap;
import java.util.Map;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.util.JRLoader;
import net.sf.jasperreports.view.JasperViewer;
/**
*  @web http://jc-mouse.blogspot.com/
 * @author Mouse
 */
public class informe_con_parametros {
//se estable una conexion con la base de datos
    private conexion con = new conexion();    
    
    public informe_con_parametros(){}
    
     /* reporte sencillo con conexion a base de datos MySQL, 
      * el reporte cuenta con un parametro de entrada */    
     public void ver_informe_con_parametros(String parametro){         
     JasperReport reporte;
     JasperPrint reporte_view;     
     try{
         //direccion del archivo JASPER
          URL  in = this.getClass().getResource("jcReport_Sample1.jasper");
          reporte = (JasperReport) JRLoader.loadObject( in );     
          //Se crea un objeto HashMap
          Map <String,String> parametros = new HashMap<String,String>();             
          parametros.clear();     
          //el nombre que se dio al parametro en JasperReport fue "p1", y se debe llamar desde Java con
          //ese mismo nombre, a su lado se pasa el valor del parametro
          parametros.put( "p1", parametro );               
          //-----------------------------------
          reporte_view= JasperFillManager.fillReport( reporte, parametros, con.getConnection() );
          JasperViewer.viewReport( reporte_view ); 
          //terminamos la conexion a la base de datos
          con.desconectar();
   }catch (JRException E){
     E.printStackTrace();
          }
    }
}

El codigo para llamar esta clase desde el Main es:


public class Main {
    
    public static void main(String[] args) {
        //se genera un informe con parametro de entrada con valor "b"
        new informe_con_parametros().ver_informe_con_parametros("b");
        //se genera un informe con parametro de entrada con valor "m"                
        new informe_con_parametros().ver_informe_con_parametros("m");        
    }
    
}

Esto nos da como resultados


Para descargarte el codigo fuente del proyecto + la base de datos y los archivos Jasper, clic en el siguiente enlace:
Click para descargar

34 comentarios:

Gustavo dijo...

HOla que tal? muy bueno esto de los reportes, pero en esta ocación necesito pedirte un favor, soy relativamente nuevo en java y estoy necesitando si podes que hagas un tuto, que explique como hacer una aplicación de escritorio en java que permita acceder a paguinas web. La verdad es un tema que llevo investigando hace un tiempo y hasta el día de hoy no se como hacerlo :S

Marcos Aguilera Ely dijo...

Hola amgo, soy Marcos Aguilera, lo que sucede es que necesito pasar 2 parametros por una consulta en iRepor 4 (jasper report) lo que sucede es que me pide los parametros, pero el segundo no lo toma, y me sale "THIS DOCUMENTO HAS NO PAGES!" te dejo el QUERY y los parametros, ambos son tipo STRING, sera que estoy haciendo algo mal?¿ podria sorientarme!


----------------------
SELECT
Persona.`Apellido1` AS Persona_Apellido1,
Persona.`Apellido2` AS Persona_Apellido2,
Persona.`Nombre1` AS Persona_Nombre1,
Persona.`Nombre2` AS Persona_Nombre2,
Persona.`Id_Persona` AS Persona_Id_Persona,
Aprendizaje.`Aprendizaje` AS Aprendizaje_Aprendizaje,
Aprendizaje.`Fecha_Esperada` AS Aprendizaje_Fecha_Esperada,
Asignatura.`Asignatura` AS Asignatura_Asignatura,
Asignatura.`Id_Asignatura` AS Asignatura_Id_Asignatura,
Calificaciones.`Calificacion` AS Calificaciones_Calificacion,
Calificaciones.`Calificacion_Num` AS Calificaciones_Calificacion_Num,
Calificaciones.`Comentario` AS Calificaciones_Comentario,
Calificaciones.`Fecha_Logro` AS Calificaciones_Fecha_Logro,
Calificaciones.`Insc_Alum_Aprendizaje_Id_Insc_Alum_Aprendizaje` AS Calificaciones_Insc_Alum_Aprendizaje_Id_Insc_Alum_Aprendizaje,
Insc_Alum_Aprendizaje.`Aprendizaje_Id_Aprendizaje` AS Insc_Alum_Aprendizaje_Aprendizaje_Id_Aprendizaje,
Insc_Alum_Aprendizaje.`Persona_Id_Persona` AS Insc_Alum_Aprendizaje_Persona_Id_Persona,
Insc_Alum_Aprendizaje.`Insc_Alum_Curso_Id_Insc_Alum_Curso` AS Insc_Alum_Aprendizaje_Insc_Alum_Curso_Id_Insc_Alum_Curso,
Aprendizaje.`Subtopico_Id_Subtopico` AS Aprendizaje_Subtopico_Id_Subtopico,
Aprendizaje.`Id_Aprendizaje` AS Aprendizaje_Id_Aprendizaje,
Insc_Alum_Aprendizaje.`Id_Insc_Alum_Aprendizaje` AS Insc_Alum_Aprendizaje_Id_Insc_Alum_Aprendizaje,
Insc_Alum_Curso.`Persona_Id_Persona` AS Insc_Alum_Curso_Persona_Id_Persona,
Insc_Alum_Curso.`Id_Insc_Alum_Curso` AS Insc_Alum_Curso_Id_Insc_Alum_Curso,
Subtopico.`Id_Subtopico` AS Subtopico_Id_Subtopico,
Unidad.`Id_Unidad` AS Unidad_Id_Unidad,
Unidad.`Asignatura_Id_Asignatura` AS Unidad_Asignatura_Id_Asignatura,
Subtopico.`Unidad_Id_Unidad` AS Subtopico_Unidad_Id_Unidad,
Curso.`Id_Curso` AS Curso_Id_Curso,
Curso.`Curso` AS Curso_Curso,
Insc_Alum_Curso.`Curso_Id_Curso` AS Insc_Alum_Curso_Curso_Id_Curso
FROM
`Aprendizaje` Aprendizaje INNER JOIN `Insc_Alum_Aprendizaje` Insc_Alum_Aprendizaje ON Aprendizaje.`Id_Aprendizaje` = Insc_Alum_Aprendizaje.`Aprendizaje_Id_Aprendizaje`
INNER JOIN `Persona` Persona ON Insc_Alum_Aprendizaje.`Persona_Id_Persona` = Persona.`Id_Persona`
INNER JOIN `Insc_Alum_Curso` Insc_Alum_Curso ON Insc_Alum_Aprendizaje.`Insc_Alum_Curso_Id_Insc_Alum_Curso` = Insc_Alum_Curso.`Id_Insc_Alum_Curso`
INNER JOIN `Calificaciones` Calificaciones ON Insc_Alum_Aprendizaje.`Id_Insc_Alum_Aprendizaje` = Calificaciones.`Insc_Alum_Aprendizaje_Id_Insc_Alum_Aprendizaje`
AND Persona.`Id_Persona` = Insc_Alum_Curso.`Persona_Id_Persona`
INNER JOIN `Curso` Curso ON Insc_Alum_Curso.`Curso_Id_Curso` = Curso.`Id_Curso`
INNER JOIN `Subtopico` Subtopico ON Aprendizaje.`Subtopico_Id_Subtopico` = Subtopico.`Id_Subtopico`
INNER JOIN `Unidad` Unidad ON Subtopico.`Unidad_Id_Unidad` = Unidad.`Id_Unidad`
INNER JOIN `Asignatura` Asignatura ON Unidad.`Asignatura_Id_Asignatura` = Asignatura.`Id_Asignatura`

--es aqui donde esta mal, ya que solo me toma un parametro, eg. el de Curso
WHERE Curso=$P{curso} and Asignatura=$P{asignatura}

Mouse dijo...

sobre tu consulta no puedo decirte mucho :) no conosco tu base de datos. Solo puedo ver que estas realizando la consulta con el ayudante de jasperreprot, te aconsejaria que pruebes esa consulta desde el servidor de base de datos haber si tienes datos que mostrar, respecto a los parametros, la sintaxis es la correcta

Anónimo dijo...

hola son muy buenos los tutos ke ases...yo tengo un problemita..trabajo con netbeans 6.1 y este tiene acoplado el ireport 3.1 y en un reporte lo ke ago es imprimir un codigo pero yo kiero ke este codigo este en la fuente de codigo de barras le pongo preview y me muestra bien con la fuente de codigo de barras pero a la hora de exportar a pdf no me reconoce la fuente ya intente varias cosas y nada agradeceria tu ayuda...mi correo es tur_kito@hotmail.com o aki por el foro gracias

cescchili dijo...

Hola!,

Sabrías decirme como poner datos en un report de más de dos tablas, me dice lo de Document has no pages

Si tengo las tablas:
- Clientes - > numcliente, nombrecliente, ...
- Ordrenes -> numorden, fknumcliente, ...
- Ofertas -> numoferta, fknumordren, ...
- LineasFacturacion -> numlinia, fknumoferta, ...

Todas relacionadas en cascada...

Como puedo mostrar reportes con esta estructura:

Datos Cliente1
Datos Linea Facturacion1
Datos Linea Facturacion2...
Datos Linea FacturacionN
Datos Cliente2
Datos Linea Facturacion1
Datos Linea Facturacion2...
Datos Linea FacturacionN
...
Datos Cliente2
Datos Linea Facturacion1
Datos Linea Facturacion2...
Datos Linea FacturacionN

Saludos! masmola tu blog

Anónimo dijo...

Me gustaria que hicieras un ejemplo sencillo de un reporte solo me muestre los datos de una sola persona
y no de una lista de ellas.Te lo agardeceria bastante

cescchili dijo...

Para listar una sola persona solo tienes que poner en la consulta SQL (en editQuery) algo asi: SELECT nombre, apellidos, ... , datos FROM trabajadores WHERE numeroTrabajador = $P{numTrabajador} (parametro creado en el report)
--------------------------------

a ver si alguien sabe como hacer listas jerárquicas con ireport

tipo :

-Trabajador 1
---Tarea1
---Tarea2
...
---TareaN
-Trabajador 2
---Tarea1
---Tarea2
...
---TareaN
...
-TrabajadorN
---Tarea1
---Tarea2
...
---TareaN

aso260 dijo...

muchas gracias x el aporte me sirvio de mucho..el tuto...:)

Anónimo dijo...

Hola, Mouse: tal vez podrias ayudarme con un problema que tengo con el iReport. Estoy tratando de crear un reporte de una tabla Valores que tiene los campos año, mes, item, total además de otros. Un consulta simple daria:
ITEM AÑO MES TOTAL
1 2010 1 15
1 2010 2 18
2 2010 1 20
2 2010 2 24

Quiero mostrar el reporte de la siguiente forma:
ITEM MES1 MES2
1 15 18
2 20 24

Intenté con esta consulta:
SELECT item,
CASE WHEN mes = 1 THEN total ELSE 0 END as "Enero",
CASE WHEN mes = 2 THEN total ELSE 0 END as "Febrero"
FROM Valores
WHERE año = 2010
GROUP BY item
ORDER BY mes

El problema es que en este tipo de consulta (GROUP BY) sólo se muestran datos que incluyan una funcion de agrupacion (SUM, COUNT, AVG, ..) y yo quiero mostrar los valores sin agruparlos. Para que esta consulta funcione hay que sacarle el GROUP BY, pero el resultado no es bueno. Te agredeceria cualquier sugerencia que tengas. Gracias

Anónimo dijo...

Hola, soy el que hizo la consulta del 20/9/2011 04:23 y como encontré una solución quisiera compartirla con todos:

SELECT ITEM,
MAX (DECODE (MES, 1, TOTAL, 0)) ENE,
MAX (DECODE (MES, 2, TOTAL, 0)) FEB,
MAX (DECODE (MES, 3, TOTAL, 0)) MAR,
MAX (DECODE (MES, 4, TOTAL, 0)) ABR,
MAX (DECODE (MES, 5, TOTAL, 0)) MAY,
MAX (DECODE (MES, 6, TOTAL, 0)) JUN,
MAX (DECODE (MES, 7, TOTAL, 0)) JUL,
MAX (DECODE (MES, 8, TOTAL, 0)) AGO,
MAX (DECODE (MES, 9, TOTAL, 0)) SEPT,
MAX (DECODE (MES, 10, TOTAL, 0)) OCT,
MAX (DECODE (MES, 11, TOTAL, 0)) NOV,
MAX (DECODE (MES, 12, TOTAL, 0)) DIC
FROM (SELECT MES, ITEM, TOTAL FROM VALORES)
/*si se pasan parametros */
/*FROM (SELECT MES, ITEM, TOTAL FROM VALORES WHERE */
/*ANNO = param1 AND COD1 = param2 AND COD2 = param3)*/
GROUP BY ITEM
ORDER BY ITEM

De todos modos, agradezco a quienes se hayan interesado en buscar una solución.

Anónimo dijo...

Maestro mis respeto soy un joven estudiante y me alegro aver encontrado tu pagina asi puedo ampliar un poco mas mis conocimientos y muchas gracias por compartir tus conocimientos .

MEREY16 dijo...

Muy buen aporte amigo, tengo una duda y es que quisiera saber si desde dreamweaver php se puede abrir un reporte jasper...

Saludos

Andy dijo...

Hola Amigo de MOUSE..... Bueno ante todo felicitarte por todos los aportes que vienes dando, aparte de que aprendí mucho estoy frustrado con tu código que pusiste en eso de facturas, ya e echo de todo pero me aparece una excepción que me tiene por los cojo....... ya voy 2 días tratando de ver que pasa pero nada acá te mando dicha excepción, espero que me ayudes por favor.
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:158)
at PKG_Clases.iFactura.ver_Factura(iFactura.java:24)
at PKG_Ventanas.INT_FRM_Detalle_Inventario.jButton2ActionPerformed(INT_FRM_Detalle_Inventario.java:871)
at PKG_Ventanas.INT_FRM_Detalle_Inventario.access$2000(INT_FRM_Detalle_Inventario.java:24)
at PKG_Ventanas.INT_FRM_Detalle_Inventario$16.actionPerformed(INT_FRM_Detalle_Inventario.java:696)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6267)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6032)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4630)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2478)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

mouse dijo...

Andy, no debes copiar todo el error que te sale, las primeras lineas es suficiente, el error que te sale es que NO ESTA ENCONTRANDO ALGO, revisa que las librerias sean lsa correctas y tambien te puede fallar la version del jasperreprot, yo creo que uso una version ya antigua, revisa eso ok

Anónimo dijo...

hola mas que nada muchas gracias por compartir tus conocimientos pero la verdad e estdo chcando paso a paso a paso tu tuto y la no es posible que genere demasiados erorres estoy llamandole ala libreria de jasper (reporte) tengo todo bien de igual manera mi conexion ala base de datos es buena y me salen demasiados erorres ojala y me pudieras ayudar por favor

Anónimo dijo...

Hola, Buenisimos tus aportes. Descargue el de Reportes iReport2 y dice que falta la biblioteca reportes.

Andy dijo...

Hola Amigo Mouse, Bueno mi duda es que el otro día descargue el LAUNCH4J para hacer mi instalador, y lo pase a otra maquina don el jdk las librerías y todo...... me funcionó correctamente pero cuando quise ver mis reportes no me los jalaba ademas que cuando estoy haciendo mantenimiento de datos me sale el error de "to many connection" o algo asi dame una manito en estas consultas.

boris dijo...

Que tal amigo Mause,que puedo hacer cuando los reportes se quieren en una red por ejemplo tengo mi reporte vacaciones y esta en el servidor y la aplicacion en otra maquina


URL archivo = this.getClass().getResource("\\server/reportes/vacciones.jasper");

LOS CRUZETAS F.C dijo...

Muy buenos tus tutoriales amigo, me gustaría saber como puedo agregar un reporte a un JdesktopPane o a un Jpanel.

Anónimo dijo...

Hola quisiera que me ayudaran con mi duda, cuando ejecuto un primer reporte reporte se ejecuta correctamente pero a la segunda vez me aparece que no hay datos, es necesario desconectar la coneccion hacia la base de datos en la clase de jasper para el reporte.

en las imagenes explico mejor
http://fotos.subefotos.com/87a3052901a48b51ba5bcfbecf183ef2o.jpg

http://fotos.subefotos.com/310e3ec1234bf421d565d40a58ec8f15o.jpg

http://fotos.subefotos.com/53bd03bad2fe652726a96778757f61b5o.jpg

Porfavor respondanme a ivanmauricio_gomez@hotmail.com

Gracias

mOUSE dijo...

cuando llamas a tu reporte, despues te estas desconectando de la base de datos, si haces eso, cuando vuelvas a llamar al reporte debes verificar que exista una conexion activa, sino es asi, debes conectarte nuevamente, es por eso tu error

Anónimo dijo...

Hola que tal, muy bueno el tutorial, es algo que andaba buscando desde hace mucho, solo que al tratar de ejecutar me sale el siguiente error:

init:
Deleting: C:\Users\BLACK-ICE\Documents\NetBeansProjects\iReport_sample2\build\built-jar.properties
deps-jar:
Updating property file: C:\Users\BLACK-ICE\Documents\NetBeansProjects\iReport_sample2\build\built-jar.properties
Compiling 1 source file to C:\Users\BLACK-ICE\Documents\NetBeansProjects\iReport_sample2\build\classes
compile-single:
run-single:
Exception in thread "main" java.lang.NullPointerException
at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:141)
at informe_con_parametros.ver_informe_con_parametros(informe_con_parametros.java:40)
at Main.main(Main.java:10)
Java Result: 1


ojala puedas ayudarme

mouse dijo...

el error dice que esta borrando un archivo de propiedades :/ nose, tal vez sea la version de metbeans que estes usando

Taretsuna dijo...

que tal amigo, mouse , antes que nada quiero felicitarte por los exelentes aportes, y quisiera que me ayudes con una problema que me muestra cuando trato de llamar al reporte
y es esto:
Exception occurred during event dispatching:
java.lang.NoClassDefFoundError: org/codehaus/groovy/runtime/callsite/CallSiteArray

Anónimo dijo...

gracias buen tutorial

Anónimo dijo...

Buenas hermano excelentes tutoriales, una pregunta, como hago para que desde una ventana principal generar varios reportes, me explico, si deseo obtener reportes de asisteste, de los ponenetes y las ponencias. pero no quiero todo en un mismo reporte sino por reportes separados y que sea llamado desde una vista principal

Martin Mendoza dijo...

para pasar varios parametros, tengo entendido asi...

parametro.put("p_CodArticulo",this.txtCodArticulo.getText());
parametro.put("p_CodPais",this.cboPais);
parametro.put("p_CodLine",this.cboCodLine);

y mandarlo asi..

JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parametro, this.WinPadre.db.getCn());

del lado del reporte, crear esas mismas variables.... para tomarla, mi duda es... que pasa si ninguno de ellos contiene algo, por ejemplo que no se cree el where...

algo asi como...


select * from paises WHERE CodPais = $P{!p_CodPais}

que el parametro CodPais vaya vacio.

Es pero alguien nos pueda ayudar....

Anónimo dijo...

puedes controlar qeu no sea NULL antes de enviar a jasper para que siempre te envie un dato, por ejemplo una cadena vacia

Anónimo dijo...

Hola amigo estoy queriendo imprimir datos de un buscador que cree el buscador esta perfecto por ej. si poco el codigo uno me trae todo los detalles y quisiera imprimir ese detalle con un boton imprimir, ya cree en irereport el modelo del inforne cn el parametro y funciona hay espectacular pero lo que pasa q al programar el boton imprimir me lanza una excepcion for input string y no se cm resolverlo trabajo en netbeans 6.9.1

rafael matinez dijo...

Oye estoy muy agradecido contigo, muchas gracias por tantos aportes, me has motivado a crear un foro tambien para ayudar a otras personas que estan en el camino.

Ban Midou dijo...

Holas

Antes que nada mil gracias por el apoyo y los tutoriales 100 puntos a todo tu trabajo...

Pero aoriivechando la ocasion para abusar de tus conocimientos quisiera que me saques de una duda..

Resulta que tengo varios reportes creados con ireport que corren de maravilla en netbeans... el problema surge cuando creo el jar.

Intento abrir los reportes y no me muestra nada ademas de que inmediatamente se cierra la aplicacion.. otro problema que tengo es que el archivo jar tampoco reconoce el lookand feel que le pongo...

Una evz mas mil gracias por todo

Anónimo dijo...

buenas tardes mouse
antes que nada agradecerte por tus aportes me han servido mucho en el aprendizaje.
Tengo una duda como le hago para que el reporte con jasper report aparezca dentro de la aplicacion mdi y llamarlo desde un menu.

gracias

Himys dijo...
Este comentario ha sido eliminado por el autor.
Himys dijo...

Gracias JC, solo un detalle por si acaso a alguien le ocurre, me daba error en esta linea:

reporte_view =JasperFillManager.fillReport(reporte, parametros, con.getConnection());

lo resolví cambiando esta linea:
Map (Corchete angular que abre)String,String(Corchete angular que cierra) parametros = new HashMap(Corchete angular que abre)String,String(Corchete angular que cierra)();

por esta linea:
Map (Corchete angular que abre)String,Object(Corchete angular que cierra) parametros = new HashMap(Corchete angular que abre)String,Object(Corchete angular que cierra)();

De nuevo JC, muchas gracias... éxitos...
Tuve que usarlo así porque no me los mostraba en los comentarios
(Corchete angular que abre)
(Corchete angular que cierra)
se usan los símbolos como tal.

Post recomendado