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

Reporte con iReport

Estas en el tema de Reporte con iReport en el foro de Java en Foros del Web. Hola amigos. Estoy intentando crear un reporte con iReport pero la verdad no se muy bien como hacerlo. Tengo una tabla llamada Estudiantes y una ...
  #1 (permalink)  
Antiguo 02/07/2009, 13:07
 
Fecha de Ingreso: marzo-2005
Mensajes: 309
Antigüedad: 19 años, 2 meses
Puntos: 1
Reporte con iReport

Hola amigos.

Estoy intentando crear un reporte con iReport pero la verdad no se muy bien como hacerlo.

Tengo una tabla llamada Estudiantes y una tabla llamada Notas. En la tabla Notas se guardan todas las notas que tiene un estudiante.

La idea es sacar un reporte de todos los estudiantes con sus respectivas notas, es decir un listado de estudiantes, y por cada estudiante
imprimir las notas que el mismo tiene. Seria mas o menos asi que deberia ser el reporte:

Estudiante: Pedro Lopez

Notas:
Matematica = 10
Fisica = 08
Quimica = 07

Estudiante: Maria Garcia

Notas:
Matematica = 09
Fisica = 09
Quimica = 06

Estudiante: Juan Villa

Notas:
Matematica = 08
Fisica = 10
Quimica = 10


Pero la cuestion es que no se como hacer esto con iReport.
He intengato crear un grupo, un subreporte, en fin he hecho mil cosas pero ningua me ha salido.


Espero que me puedan echar una manito.


Saludos
  #2 (permalink)  
Antiguo 02/07/2009, 21:32
 
Fecha de Ingreso: junio-2009
Mensajes: 45
Antigüedad: 14 años, 10 meses
Puntos: 1
Sonrisa Respuesta: Reporte con iReport

Bueno espero te sirva un poco esto:

Para empezar crea un nuevo reporte en iReport.

Una vez hecho esto necesitar realizar tu conexión a la BD que vas a utilizar para realizar tu reporte(en mi caso es con MySQL).

Le das clic al botón Report DataSources te mostrara una cuadro de dialogo.

En ese cuadro seleccionas New te mostrara otro cuadro ahí seleccionas Database JDBC connection y le das en Next.

En el cuadro que sigue te pide los siguientes datos:

Cita:
Información de la conexión

Name:xxxx
JDBC Driver: MySQL (com.mysql.jdbc.Driver)
jdbc: mysql://localhost/nombreBD (En nombreBD pones el nombre de tu BD)
Server Address: (lo dejas vacío)
Database: (lo dejas vacío)
Username: juanitox (Usuario del Gestor de BD)
Password: xxxxxx (Contraseña de tu usuario y seleccionas la casilla Save password)
Una vez ingresado todo lo anterior le das en Test para ver que realmente este bien nuestra conexión. Si fue satisfactoria le das en Save.


Después de eso en el apartado que dice Edit Report Query le damos clic y nos aparece un cuadro de dialogo en donde realizaremos la consulta a nuestra BD aquí te pongo un ejemplo:

Suponiendo que en tu BD tus Tablas sean así:

Cita:
estudiantes:
id
nombre
id_nota

notas:
id_nota
matemáticas
química
física
Tu consulta queda de la siguiente forma:

Cita:
Select * from estudiantes inner join notas on estudiantes.id_nota = notas.id_nota;
Ahora en ese cuadro de dialogo seleccionas la casilla que dice Automatically Retrieve Fields, y le das clic en ok.


Ahora sigue el diseño del reporte (los que se encuentran en naranja son los campos de la consulta que realizamos anteriormente, y los encontraras en la parte del reporte que dice Fields):

Cita:
Ejemplo Reporte:

Notas:

Matemáticas : 10
Física: 8
Química: 7

Estudiante: Maria Garcia
Notas(es texto estático): lo colocas en la parte que dice Title.
Matemáticas, Física, Química, Estudiante(son texto estático): los colocas en la parte de Detail.

Las calificaciones (que vendrían siendo los campos de la Tabla Notas son cajas de texto): para que no tengas ningún problema solo arrástralas con el mouse al apartado de Detail y no modifiques su nombre, esto es lo que te permitirá obtener el Nombre y las Calificaciones de las Tablas Estudiantes, Notas.

Ahora solo falta correr tu reporte para ver que todo funciona correctamente.

Espero que esto te haya servido como apoyo para tu duda.
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:48.