Foros del Web » Programación para mayores de 30 ;) » Java »

Jasper Report y diseño de reporte

Estas en el tema de Jasper Report y diseño de reporte en el foro de Java en Foros del Web. Hola!! tengo que hacer un reporte que me liste el total de hectareas trabajadas para cada empleado que tenga en la bd dado un año ...
  #1 (permalink)  
Antiguo 15/08/2008, 12:06
Avatar de djagu_26  
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 518
Antigüedad: 16 años, 3 meses
Puntos: 6
Jasper Report y diseño de reporte

Hola!! tengo que hacer un reporte que me liste el total de hectareas trabajadas para cada empleado que tenga en la bd dado un año y agruparlo mes a mes, yo habia planteado hacerlo asi

Empleado Enero Febrero Marzo ......Total
----------------------------------------------------
Juan Perez 250 500 250 1000
Gonzalo A 500 100 200 800
........

El problema que no me sale asi ya que si lo meto en el detail me mete 12 filas una por cada mes y me pone le valor del mes correspondiente, la otra idea que se me ocurre es hacer un subreporte por cada mes pasandole el año y el empleado(tarea muy engorrosa) y ponerlos

alguien me puede ayudar o darme otra idea?

saludos y gracias
__________________
"La magia no existe, la programacion si"

A/P Agustin Sivoplas
[email protected]
  #2 (permalink)  
Antiguo 15/08/2008, 16:07
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 3 meses
Puntos: 260
Sonrisa Respuesta: Jasper Report y diseño de reporte

Hola,

Normalmente son reportes tipo "Cross-Tab".
iReports de JasperReports tiene un asistente para crear ese tipo de reportes.
(Aunque con las versiones anteriores todavía tenias que tocar un poquito el reporte desde iReports para que funcione bien -cambiar un par de variables-; posiblemente ya corrigieron esos detalles)

Saludos,
  #3 (permalink)  
Antiguo 15/08/2008, 16:51
Avatar de djagu_26  
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 518
Antigüedad: 16 años, 3 meses
Puntos: 6
Respuesta: Jasper Report y diseño de reporte

ok lo pruebo y despues te aviso muchas gracias
__________________
"La magia no existe, la programacion si"

A/P Agustin Sivoplas
[email protected]
  #4 (permalink)  
Antiguo 15/08/2008, 17:00
Avatar de djagu_26  
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 518
Antigüedad: 16 años, 3 meses
Puntos: 6
Respuesta: Jasper Report y diseño de reporte

hola estoy haciendolo y lo unico que he logrado obtener es este error

Código:
net.sf.jasperreports.engine.JRRuntimeException: Error incrementing crosstab dataset      at net.sf.jasperreports.engine.fill.JRFillCrosstab$JRFillCrosstabDataset.customIncrement(JRFillCrosstab.java:666)      at net.sf.jasperreports.engine.fill.JRFillElementDataset.increment(JRFillElementDataset.java:169) 

Caused by: net.sf.jasperreports.engine.JRException: Crosstab data has already been processed.      at net.sf.jasperreports.crosstabs.fill.calculation.BucketingService.addData(BucketingService.java:296)      at net.sf.jasperreports.engine.fill.JRFillCrosstab$JRFillCrosstabDataset.customIncrement(JRFillCrosstab.java:662)
sabes por donde viene?
__________________
"La magia no existe, la programacion si"

A/P Agustin Sivoplas
[email protected]
  #5 (permalink)  
Antiguo 15/08/2008, 17:19
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 3 meses
Puntos: 260
Sonrisa Respuesta: Jasper Report y diseño de reporte

Hola,

El error es demasiado genérico.

Casualmente tengo un reporte de crosstab de una tienda de un hotel que realice hace un par de meses. Voy a intentar explicarte brevemente el procedimiento de como logré que funcionara.

/* deleted */

Saludos,

Última edición por HackmanC; 15/08/2008 a las 18:55 Razón: deleted
  #6 (permalink)  
Antiguo 15/08/2008, 17:33
Avatar de djagu_26  
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 518
Antigüedad: 16 años, 3 meses
Puntos: 6
Respuesta: Jasper Report y diseño de reporte

Hola ya pude crearlo todo lo mas bien y ejecutarlo perfecto desde ireport ahora cuando voy a llamarlo desde mi programa me salta la siguiente excepcion

Cita:
net.sf.jasperreports.engine.JRException: Error loading object from URL : file:/C:/Agustin/Proyectos/SGPTSOFT%20v%202.0/SGPTSOFT/build/classes/Reportes/ListadoTotalHaEmpleadosA%c3%b1o.jasper
at net.sf.jasperreports.engine.util.JRLoader.loadObje ct(JRLoader.java:145)
at Presentacion.VentanaPrincipal.informeEmpleadosMesA ñoActionPerformed(VentanaPrincipal.java:637)
el codigo que utilizo para llamarlo es el siguiente

Cita:
String valor = JOptionPane.showInputDialog(null, "Ingrese el valor del año del cual desea realizar el reporte.");
if (valor != null && valor.length() != 0) {
try {
if (Integer.parseInt(valor) < 1990) {
JOptionPane.showMessageDialog(null, "Debe ingresar un año que sea válido (mayor a 1990).", "", JOptionPane.ERROR_MESSAGE);
} else {
try {
Connection conexion = ConexionBD.getInstancia().getConexion();
JasperReport report = (JasperReport) JRLoader.loadObject(getClass().getResource("/Reportes/ListadoTotalHaEmpleadosAño.jasper"));
Map parameters = new HashMap();
parameters.put("imagen", getClass().getResource("/Imagenes/logo.PNG").toString());
parameters.put("año", Integer.parseInt(valor));
JasperPrint print = JasperFillManager.fillReport(report, parameters, conexion);
JasperViewer jviewer = new JasperViewer(print, false);
jviewer.setVisible(true);
} catch (JRException ex) {
ex.printStackTrace();
JOptionPane.showMessageDialog(null, ex.getMessage());
}
}
} catch (NumberFormatException ex) {
JOptionPane.showMessageDialog(null, "El valor ingresado no corresponde a un número.", "", JOptionPane.ERROR_MESSAGE);
}

}

lo curioso es que recompile el reporte pero le borre el crosstab y me lo llama asi que hay algun problema con el mismo
sabes que puede estar pasando?

pd: el problema anterior es porque el crosstab tiene que estar en el summary y no en el detail

saludos y gracias de nuevo
__________________
"La magia no existe, la programacion si"

A/P Agustin Sivoplas
[email protected]

Última edición por djagu_26; 15/08/2008 a las 18:53 Razón: tema anterior solucionado
  #7 (permalink)  
Antiguo 15/08/2008, 19:01
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 3 meses
Puntos: 260
Sonrisa Respuesta: Jasper Report y diseño de reporte

Hola,

Vas mucho más rápido que yo (Cada vez que reviso tu post, hago una prueba para estar seguro que te estoy diciendo algo que va a funcionar, pero cuando ya lo tengo cambias el post ).

Bueno ... pero ... que bueno que ya tengas funcionando el crosstab, mi ejemplo que iba a mostrar era demasiado largo, desde el view en MySQL.

El código que pusiste lo puedes escribir así,

Código:
$F{mes}.equals( new Long(1) ) ? "Enero" :
  $F{mes}.equals( new Long(2) ) ? "Febrero" :
  $F{mes}.equals( new Long(3) ) ? "Marzo" : ""
Y yo llamo al reporte así,

Código:
    public JasperPrint Reporte03(java.util.Date p_fecini, java.util.Date p_fecfin) throws DataConnectionException, SQLException, JRException {
        HashMap<String, java.util.Date> m = new HashMap<String, java.util.Date>();
        m.put("p_fecini", p_fecini);
        m.put("p_fecfin", p_fecfin);
        JasperReport jasperReport = JasperCompileManager.compileReport(Main.getProperty("reportes_filepath") + "/jaspReport03.jrxml");
        JasperPrint jasperPrinter = JasperFillManager.fillReport(jasperReport, m, new DataConnection().getConnection());
        return jasperPrinter;
    }
Y lo muestro así:
Código:
        try {
            Reportes reportes = new Reportes();
            DateFormat df = DateFormat.getDateInstance();
            JasperViewer.viewReport(reportes.Reporte03(
                    df.parse(jTextField1.getText()),
                    df.parse(jTextField2.getText())),
                    false);
        } catch (Exception ex) {
            JOptionPane.showMessageDialog(this,
                    "Ha ocurrido un error al intentar imprimir el documento.\n" +
                    ex, getTitle(), JOptionPane.ERROR_MESSAGE);
        }
Main.getProperty lee de un archivo de configuracion.

Saludos,
  #8 (permalink)  
Antiguo 15/08/2008, 19:07
Avatar de djagu_26  
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 518
Antigüedad: 16 años, 3 meses
Puntos: 6
Respuesta: Jasper Report y diseño de reporte

voy a probarlo, te agregue en el msn

saludos
__________________
"La magia no existe, la programacion si"

A/P Agustin Sivoplas
[email protected]
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:50.