8/2/11

Reportes con iReport y Netbeans [Parametros]

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:

  1. 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

    ResponderEliminar
  2. 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}

    ResponderEliminar
  3. 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

    ResponderEliminar
  4. 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

    ResponderEliminar
  5. 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

    ResponderEliminar
  6. 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

    ResponderEliminar
  7. 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

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

    ResponderEliminar
  9. 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

    ResponderEliminar
  10. 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.

    ResponderEliminar
  11. 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 .

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

    Saludos

    ResponderEliminar
  13. 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)

    ResponderEliminar
  14. 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

    ResponderEliminar
  15. 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

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

    ResponderEliminar
  17. 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.

    ResponderEliminar
  18. 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");

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

    ResponderEliminar
  20. 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

    ResponderEliminar
  21. 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

    ResponderEliminar
  22. 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

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

    ResponderEliminar
  24. 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

    ResponderEliminar
  25. 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

    ResponderEliminar
  26. 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....

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

    ResponderEliminar
  28. 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

    ResponderEliminar
  29. 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.

    ResponderEliminar
  30. 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

    ResponderEliminar
  31. 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

    ResponderEliminar
  32. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  33. 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.

    ResponderEliminar