Solucion de consulta de dos fechas para reporte de IREPORT

Es sencillo solo debes colocar los parametros en DATE como muestra en el siguiente cuadro:

Captura solucion

luego el siguiente codigo para generar el reporte:

try{
Resumen2 = (JasperReport) JRLoader.loadObject(getClass().getResource(«resumen_compra2.jasper»));
}catch(JRException ex){
System.out.println(«error cargando la Resumen»);
}

   java.sql.Date date1 = new java.sql.Date(jDateChooser2.getDate().getTime());
              java.sql.Date date2 = new java.sql.Date(jDateChooser3.getDate().getTime());
              
               Map fechas = new HashMap();
               
               fechas.put(«fecha_ini», date1);
               fechas.put(«fecha_fin», date2);
JasperPrint printResumen = JasperFillManager.fillReport(Resumen2, fechas, xn);
JasperViewer Jviewer = new JasperViewer(printResumen, false);
Jviewer.setTitle(«Resumen de compras»);
Jviewer.setVisible(true);
this.dispose();

Fijense exclusivamente en el texto en negritas eso le dara compatibilidad para la consulta y generacion del reporte de lo contrario les botará una pagina en blanco.

Autor: Ing. Juan Mancilla

Les doy la bienvenida a mi blog para que disfruten cada una de mis publicaciones y técnicas de emprendimiento!!

15 opiniones en “Solucion de consulta de dos fechas para reporte de IREPORT”

      1. muchisimas gracias me ayudarias muchisimo te lo agradesco y lo esperare puesto que estoy desarrollando un sistema que tiene que realizar esta funcion y as sido el unico q me a ayudado mas

  1. Hola, soy nuevo en esto de crear reportes con Ireport, me gustaria me ayudaras a entender si puedes varias cosas.
    ¿El codigo en donde lo pones en Ireport?
    ¿en el query?
    ¿en el xml?
    Otra duda que tengo es: en mi proyecto estoy manejando una base de datos por conección ODBC, en la cual usa un campo tipo dete de 10 caracteres, cuando abro mi base de datos la veo esta forma dd/mm/yyyy.
    en mi query lo tengo mas o memos así:
    SELECT *
    FROM ‘nombre_tabla’ nombre_tabla //(esta parte tampo la entiendo)
    WHERE campo_fecha = 18/09/2017
    y me dice pagina sin resultados.
    Camie a:
    WHERE campo_fecha =$P!{fecha}
    creando un parametro «fecha» con parameter class java.util.DATE
    y me da el siguente error:

    Caused by: java.sql.SQLException: [Microsoft][Controlador ODBC dBASE] Error de sintaxis (falta operador) en la expresión de consulta ‘campo_fecha = Mon Sep 18 00:00:00 CDT 2017’.
    De ante mano te agradezco la atención y espero me puedas explicar. Gracias.

    1. hola!!, lamento la demora, en primer lugar debes buscar la sintaxys del controlador ODBC que haz instalado y segundo la sentencia sql que pusistes esta bien pero tiene diversos errores de concatenacion y las fechas debes hacer una conversion. te pasare un link donde podras descargar un archivo.java donde esta la estructura de dicho ejercicio y esta expresado la conversion de las fechas, por que asi directamente no se puede hacer y menos en java.

      http://clkmein.com/q9leAN

  2. Buenas una consulta: tengo diseñada una pantalla html donde ingreso un rango de fechas(Desde-Hasta). Utilizo un archivo JSP donde recibo los parámetros de fechas en formato String y luego ejecuto un Ireport (conectado a una base de sql server 2005), Ej. el rango a consultar seria : 05-01-2017 al 05-01-2017. Al ejecutar en el JSP:
    **desde_id y hasta_id= parametros recibido del HTML

    String fecini= request.getParameter(«desde_id»);
    String fecfin= request.getParameter(«hasta_id»);
    SimpleDateFormat ft= new SimpleDateFormat(«yyyy-mm-dd»);
    Date DESDE= null;
    Date HASTA= null;
    try {
    DESDE= ft.parse(fecini);
    HASTA= ft.parse(fecfin);
    }catch (ParseException ex){
    System.out.print(«Error al convertir fecha:»+ ex);
    }

    convierte ambas fechas a 01-01-2017 y 01-31-2017 respectivamente. Cual sería el inconviente ?
    Desde ya muchas gracias.

Deja un comentario