SoloCodigo

Bases de Datos => Crystal Reports => Mensaje iniciado por: Cajami en Domingo 1 de Abril de 2007, 15:56

Título: Crear Un Reporte Utilizando Bucles
Publicado por: Cajami en Domingo 1 de Abril de 2007, 15:56
Hola amigos me a surgido un problema y desde hace dias le estoy dando vueltas y no consigo la forma de lograr ps aun no domino el CR y la verdad no se si se podrá realizar lo que quiero, les explico mi martirio  :D :

Tengo que crear un reporte un Record Académico de un determinado alumno, alli adjunto un modelo de reporte que he hecho en word para que se den una idea de como tiene que ser, si me pidieran sacar solo de un grado lo hiciera bacan pero me pidan sacar de todos los años, me expico mejor: si un alumno está en Cuarto de Secundaria estudiando y la directora por ejemplo quiere su record el reporte tiene que sacar los promedios cuando él estuvo en Primero, Segundo y  Tercero sus areas y sus respectivos promedios, cuarto y quinto no porque aun no tiene promedio, igual pasa si fuese un alumno de Primaria.

Lo he estado haciendo en codigo con bucles ps tengo que scar las areas de todos los años y sus promedios pero no se como hacer ese reporte?? alguna idea???

PD. Mi Bd está en Sql y se que en CR se trabaja con DataSet tipados, desde un formulario de VB2005 elijo el Nivel y el código del Alumno y tiene que cargarme el reporte de su Record Académico, de antemano muchas gracias, espero me puedan ayudar, toy volviendome loco con este reporte que no se como hacerlo :huh: , nos vemos  :hola:
Título: Re: Crear Un Reporte Utilizando Bucles
Publicado por: lencho en Lunes 2 de Abril de 2007, 01:00
no es necesario hacer bucles ni nada por el estilo.

Para poder ayudarte un poco mas, seria un poco conveniente ver el script de tu BD.

Eso se resolveria aplicando grupo en el reporte.

BYTE.
Título: Re: Crear Un Reporte Utilizando Bucles
Publicado por: Cajami en Lunes 2 de Abril de 2007, 02:56
Hola mira aqui está la imagen de las 3 tablas que utilzo para buscar lo que necesito...

Aunque mira en la tabla Registro no he puesto pero cada campo está relacionada con otras tablas por ejemplo Codigo_Nivel está relacionado con la tabla Nivel, Codigo_Area está relacioano con la tabla Areas_Asignaturas.

PD. espero que ha eso te refieras, nos vemos
Título: Re: Crear Un Reporte Utilizando Bucles
Publicado por: lencho en Lunes 2 de Abril de 2007, 14:15
trata de explicar un poco lo que hacen cada tabla, ya que cada persona tiene distinta forma de interpretar lo que otra hace sin previa informacion.

BYTE.
Título: Re: Crear Un Reporte Utilizando Bucles
Publicado por: Cajami en Lunes 2 de Abril de 2007, 15:45
Hola, si tienes razon sorry, haber trataré de explicar las tablas:

En la imagen hay 3 tablas, en la tala Registro, cada registro de esa tabla representa una Area que la enseña un Docente, cada año se van a crear nuevos registros, cada registro su llave primaria empieza con el año por ejemplo para este año sus Codigo_Registro de cada registro serán asi: 2007S101 que quiere decir el año 2007, S es el Nivel (S Secundaria y P Primaria), 1 es el grado de ese nivel (en el caso de primaria en vez de nuevo seria letra A, B.. hasta F ia que es hasta sexto grado) y 01 es el codigo de una determinada asignatura, y tambien en ese registro se guarda el codigo del Docente.

Ahora hay una tabla Notas, como te dije cada Registro de la tabla Registro representa una Area entonces cada Area tiene varios alumnos es por eso que la llave primaria de la tabal Registro se va como foranea a la tabla Notas (esa tabla no tiene llave primaria) y tambien la llave primaria del Alumno va a la tabla Notas, un registro en la tabla Registro se va a repetir tantas veces en la tabla Notas como alumnos haigan en esa asignatura, logico que antes ia he ingresado los alumnos para esa asignatura (registro).

Como dije io ingresando el codigo del Alumno (el codigo del alumno va a ser asi para secundaria: S200701, S200702 y si es primaria P200701, P200701) si el alumno está en 3 de secundaria  necesito sacar su record académico de 1 y 2 de secundaria, io lo hacia en codigo con bucles ps tenia primero que sacar las areas y notas de primero despues seguir con las areas y notas de segundo (porque es posible de las areas no son = para los grados) pero no he podido sacar un reporte en CR ps como dije si me pidieran sacar de un solo año puede ser pero se quiere de varios años y alli si que no se por donde empezar, espero me hayas entendido, nos vemos :hola:
Título: Re: Crear Un Reporte Utilizando Bucles
Publicado por: lencho en Lunes 2 de Abril de 2007, 17:39
supongo que en la tabla NOTAS: Nota_Primera, Nota_Segunda y Nota_Tercera y Nota_Cuarta se refiere a los Bimestres ???, lo cual su promedio final de esa materia de ese año es:
Código: Text
  1. (Nota_Primera + Nota_Segunda + Nota_Tercera + Nota_Cuarta ) / 4
  2.  


BYTE
Título: Re: Crear Un Reporte Utilizando Bucles
Publicado por: Cajami en Lunes 2 de Abril de 2007, 17:41
hola, si eso me falto, en las notas Nota_Primera hasta la nota_cuarta son enteros pero el promeido si va atener dos decimales
Título: Re: Crear Un Reporte Utilizando Bucles
Publicado por: lencho en Lunes 2 de Abril de 2007, 18:02
Partiendo de esta BD que me tuve que crear YO.
Título: Re: Crear Un Reporte Utilizando Bucles
Publicado por: lencho en Lunes 2 de Abril de 2007, 18:06
llegue a este informe, tu diras si lo sale ahi es lo que realmente queres ver , dado los datos mostrados en la anterior imagen.

Nota. No pude colocar las dos imagenes en un mismo mensaje, asi que hize otro mensaje.


BYTE.
Título: Re: Crear Un Reporte Utilizando Bucles
Publicado por: Cajami en Lunes 2 de Abril de 2007, 20:45
Hola, no es exactamente lo que necesito, necesito que el reporte sea de un solo alumno y que el grado vaya aumentando primero segundo tercero asi como en el dato adjunto que está en el primer post, nos vemos  :hola:
Título: Re: Crear Un Reporte Utilizando Bucles
Publicado por: lencho en Lunes 2 de Abril de 2007, 21:33
pucha, si tuviera tanto tiempo como para ponerle todo los datos que querej, lo haria, pero no lo tengo. Y como no se te ocurrio por lo menos pasar el SCRIPT de tu BD y mucho menos los datos, yo me hice esa BD y le puse esos datos.
Ahora lo que yo te dije era que si de acuerdo a los datos que estan en la BD el reporte estaria bien. NO te dije que los datos que estan en el informe estaban bien, por que obviamente no estarian bien, por que no tengo mucha idea de los datos que hay, por que por ejemplo, tambien deberia hacer una tabla donde agarrar el nombre de las materias, etc.

Citar
necesito que el reporte sea de un solo alumno
agregas un parametro con el nombre: Cod_Alumno.
En el editor de seleccion de registros de crystal,  ponej
Código: Text
  1. {Alumno.id} = {?Cod_Alumno}
  2.  
Con esto, ya estaria resuelto el problema de que querej que solo sea de un solo alumno.

BYTE.
Título: Re: Crear Un Reporte Utilizando Bucles
Publicado por: lencho en Lunes 2 de Abril de 2007, 21:46
Citar
y que el grado vaya aumentando primero segundo tercero
Este reporte esta echo con solo un grupo, el cual es por el Cod del alumno.
Ahora , para que tambien vaya incrementando el el grado, abria que crear otro grupo dentro del primer grupo el cual seria el GRADO.

Pero ahora fijandome en tu DOC, grado lo ponej bien en la parte de arriba, osea que seria para todo. Y como ejemplo pusiste Grado = CUARTO, y fijandome en todo su informe muestra hasta QUINTO de secundaria.
Estan mal tus datos o yo los estoy entendiendo mal ??

BYTE
Título: Re: Crear Un Reporte Utilizando Bucles
Publicado por: Cajami en Martes 3 de Abril de 2007, 01:55
Hola, el grado que se muestra en el doc es el grado en el que se encuentra el alumno, lo que aumenta es 1° Secundaria, 2° Secundaria......, 5°Secundaria, claro que si viene un alumno que ia terminó, su record va a salir completo hasta 5° Secundaria con sus promedios, te voy a mandar mi bd completa para que veas ia que una maldad de mi parte no haberla puesto antes  :D  sorry
Título: Re: Crear Un Reporte Utilizando Bucles
Publicado por: Cajami en Martes 3 de Abril de 2007, 02:47
Aqui ta la bd ia tiene registro de toda una promocion ps para poder probar el soft he tenido que agregar toda una promo (aunque aun me falta 5 año, la promo es la que el año pasado a salido), nos vemos  :hola:

Aqui ta el link (http://www.sendspace.com/file/h54j0t)
Título: Re: Crear Un Reporte Utilizando Bucles
Publicado por: lencho en Martes 3 de Abril de 2007, 05:30
que macana, luego de bajar tu BD, veo que no puedo adjuntarla, no se porque !!!, creo que tiene algo que ver la version, por si acaso yo tengo SQL Server 7. o Cuales son los pasos para adjuntar la BD ??
Seria mejor un BackUp, para asi poder restaurarla.

BYTE.
Título: Re: Crear Un Reporte Utilizando Bucles
Publicado por: Cajami en Martes 3 de Abril de 2007, 05:33
Cita de: "lencho"
que macana, luego de bajar tu BD, veo que no puedo adjuntarla, no se porque !!!, creo que tiene algo que ver la version, por si acaso yo tengo SQL Server 7. o Cuales son los pasos para adjuntar la BD ??
Seria mejor un BackUp.

BYTE.
hola, mi bd esta en sql express 2005, como BackUp?????
Título: Re: Crear Un Reporte Utilizando Bucles
Publicado por: lencho en Martes 3 de Abril de 2007, 05:45
La desatachaste la base de datos antes de enviarla ??

Creo que por medio de Adjuntar Base de Datos no podre por el tema de las versiones, probemos si se puede por medio de Restaurar Base de datos.

En el Administrador Corporativo, seleccionas la Base de Datos, click derecho, Todas las tareas-> Copia de Seguridad de la Base de datos y ahi colocas el nombre del archivo y listo.

Umm, ahora no se si se podra en el 2005.


BYTE.
Título: Re: Crear Un Reporte Utilizando Bucles
Publicado por: Cajami en Martes 3 de Abril de 2007, 06:09
Hola, a que te refieres con desatachaste??? no entiendo que quieres que haga con la bd, Administrador Corporativo????, sorry por la ignorancia
Título: Re: Crear Un Reporte Utilizando Bucles
Publicado por: lencho en Martes 3 de Abril de 2007, 15:43
Como separar (http://msdn2.microsoft.com/es-es/library/ms191491.aspx)
Como Adjuntar (http://msdn2.microsoft.com/es-es/library/ms190209.aspx)

BYTE.
Título: Re: Crear Un Reporte Utilizando Bucles
Publicado por: Cajami en Martes 3 de Abril de 2007, 18:41
Hola, ia separé la bd del manager de sql, tambien he hecho un backUp y alli entrá dento del archivo en la pagina, espero no haberme equivocado:

Aqui (http://www.sendspace.com/file/s82er2)

nos vemos y gracias por estar respondiendome  :hola:
Título: Re: Crear Un Reporte Utilizando Bucles
Publicado por: lencho en Miércoles 4 de Abril de 2007, 03:23
Umm, que macana, no pude ni Restaurarla, ni adjuntarla.


No se como lo haras tu los informes, pero yo los hago empezando desde un informe en blanco, y luego le doy los toques que yo quiero en cuanto a imagenes, cuadros, etc.

Pasos que sigo.
Agrego la Base de datos.
Agrego las Tablas que quiero que participen en mi reporte.
Las relaciono como se deben, ya que Crystal las relaciona de acuerdo a la igualda de sus atributos por el nombre.
Del Explorador de campos, Arrastro los campos que deseo que muestre, en este caso el DETALLE llegaria a ser: Asignacion y Nota, ya que estas dos son las claves en GRAL.
Luego Crearia un grupo que seria por Codigo del alumno, para eso me voy a Insertar->Nuevo Grupo, y selecciono que sea por el id del alumno.
Luego en el encabezado de ese grupo agrego los demas campos que queria que se muestren junto a el, como ser:NOmbre delALumno, Nivel, grado, etc.
Luego vuelvo a crear otro grupo, pero esta vez por Grados.

Esto segun pienso que esta bien te traeria todo lo que quieres, pero para todos los alumnos.
Ahora tu solo quieres que sea de un solo alumno, entonces, crear un parametro llamado idAlumno.
Dejpuej vete al Editor de formulas de seleccion de grupo y coloca.
Código: Text
  1. {Alumno.IdAlumno}= {?idAlumno}
  2.  

BYTE.
Título: Re: Crear Un Reporte Utilizando Bucles
Publicado por: Cajami en Miércoles 4 de Abril de 2007, 17:40
Hola, io tambien hago mis informes en blanco.

Citar
Agrego la Base de datos.
Agrego las Tablas que quiero que participen en mi reporte.

que io sepa aqui no se puede agregar la bd, asi que lo que he hecho es crear un dataset tipado ya alli he puesto las tablas.

Citar
Del Explorador de campos, Arrastro los campos que deseo que muestre, en este caso el DETALLE llegaria a ser: Asignacion y Nota, ya que estas dos son las claves en GRAL.

Te refieres a Asignatura y su nota????

Citar
Luego Crearia un grupo que seria por Codigo del alumno, para eso me voy a Insertar->Nuevo Grupo, y selecciono que sea por el id del alumno.
Luego en el encabezado de ese grupo agrego los demas campos que queria que se muestren junto a el, como ser:NOmbre delALumno, Nivel, grado, etc.

okis eso lo comprendo agrego en el encabezado de ese grupo que se ha creado.

Citar
Luego vuelvo a crear otro grupo, pero esta vez por Grados.

¿¿¿¿¿¿¿¿¿¿¿¿¿???????????

lo que se tendria que repetir en el reporte es:

                                                               Datos del Alumno
__________________________________________________________

1° Secundaria                                   Promedio
Area 1                                                            15
Area 2                                                            16
Area 3                                                            14
...                                                                  ...

2° Secundaria                                   Promedio
Area 1                                                            15
Area 2                                                            16
Area 3                                                            14
...                                                                  ...

3° Secundaria                                   Promedio
Area 1                                                            15
Area 2                                                            16
Area 3                                                            14
...                                                                  ...

_________________________________________________________________

ahora ese dataset hay que filtrarlo, entonces desde codigo se debe hacer eso y mandar ese dataset al reporte (por codigo)

Código: Text
  1. Dim info As New crProductByCategory
  2.             info.SetDataSource(DataSet1)
  3.  

Aqui (http://www.elguille.info/colabora/puntoNET/ericeec_InformeConCrystalReportDataset.htm)

lo que no se es como hacer apra que no se repita las areas (si es que de un grado a otro no son =les) de 1° secundaria con 2° secundaria .... = en los promedios
Título: Re: Crear Un Reporte Utilizando Bucles
Publicado por: lencho en Miércoles 4 de Abril de 2007, 19:39
Citar
PD. se que en CR se trabaja con DataSet tipados
Citar
que io sepa aqui no se puede agregar la bd, asi que lo que he hecho es crear un dataset tipado ya alli he puesto las tablas.
, pues yo utilizo el Crystal Report 8.5, y si se puede Agregar la BD, incluso si lo haces utilizando el crystal que tiene incluido  visual tambien puedes hacerlo, pero tu prefieres usar dataset que tambien esta permitido.
Citar
Te refieres a Asignatura y su nota????
si.

Citar
lo que se tendria que repetir en el reporte es:

Datos del Alumno
__________________________________________________________

1° Secundaria Promedio
Area 1 15
Area 2 16
Area 3 14
... ...

2° Secundaria Promedio
Area 1 15
Area 2 16
Area 3 14
... ...

3° Secundaria Promedio
Area 1 15
Area 2 16
Area 3 14
... ...
Claro, te entiendo, es por eso que debes de crear el PRIMER GRUPO por Alumno, Dentro de este grupo el SEGUNDO GRUPO por GRADOS (eso se llama esto no: 1° Secundaria Promedio, 2° Secundaria Promedio,3° Secundaria Promedio , etc ??), y dentro de estos dos grupo poner el detalle lo cual seria AREA O ASIGNATURA Y NOTA.

Citar
ahora ese dataset hay que filtrarlo, entonces desde codigo se debe hacer eso y mandar ese dataset al reporte (por codigo)
 Hay metodos para poder filtrar los datos contenidos dentro de dataset, datatables, dataview. enlace (http://www.elguille.info/colabora/NET2005/bcapuano_Filtrar_Datos_en_un_DataTable.htm)


Citar
lo que no se es como hacer apra que no se repita las areas (si es que de un grado a otro no son =les) de 1° secundaria con 2° secundaria .... = en los promedios
No te entiendo.

BYTE.
Título: Re: Crear Un Reporte Utilizando Bucles
Publicado por: Cajami en Jueves 5 de Abril de 2007, 00:34
Hola, muchas gracias por fin pude resolver ese problema utilizando grupos, te lo agradezco infinitamente, mira alli adjunto un archivo pdf del reporte, queria saber si habrá alguna manera de que en una hoja saldan los 3 primeros años y en otra salgan los 2 restantes (si fuera secundaria) ó los 3 restantes (si fuera primaria) es que es posible de que en algunos reportes salgan algunos cursos con sus notas en la otra hoja, no se si se pordra eso??

PD. a ese reporte le falta los titulos y ordenarlos y eso haría que Primero vaya mas abajo y puede como dije que algunos cursos se vean en otra hoja
Título: Re: Crear Un Reporte Utilizando Bucles
Publicado por: lencho en Jueves 5 de Abril de 2007, 15:46
Citar
es que es posible de que en algunos reportes salgan algunos cursos con sus notas en la otra hoja, no se si se pordra eso??
En la ventana en la que creas el nuevo grupo, hay unos checkBoxs que dicen: Mantener siempre Junto el Grupo, Repetir el encabezado del grupo si es que sobrepasa la hoja. (Creo que son esos, no los recuerdo ahurita), chequealo el que te convenga.


BYTE.
Título: Re: Crear Un Reporte Utilizando Bucles
Publicado por: Cajami en Jueves 5 de Abril de 2007, 19:13
Hola, muchas gracias, ia puede solucionar el problema de los grupos con las opciones que me dijistes.

Tengo que realizar otro reporte (mi profesor bien espeso :D ) adjunto el modelo del reporte como debería quedar, pero no se como empezar ia que no creo que se utilize grupos, alguna sugerencia como empezar con el reporte??? de antemano muchas gracias
Título: Re: Crear Un Reporte Utilizando Bucles
Publicado por: lencho en Martes 10 de Abril de 2007, 01:39
uff, de vuelta nuevamente, me perdi unos dias y ahora regreso. Estaba con problemas de la vista.

Si todavia no solucionaste tu problema, solucionalo con formulas.

BYTE.
Título: Re: Crear Un Reporte Utilizando Bucles
Publicado por: lencho en Martes 10 de Abril de 2007, 01:57
supongo que solamente el problema son con los que estan en recuadro rojo y azul no ??, ya que lo demas son campos que estan en tu BD.

Coloca una formula, llamada PROMEDIO y escribe en ella
Citar
{NOMBRE_TABLA.PROMEDIO_1} + {NOMBRE_TABLA.PROMEDIO_2} + ... + {NOMBRE_TABLA.PROMEDIO_N}
.
y otra formula llamada promedio Ponderado y escribi en ella
Citar
{NOMBRE_TABLA.PROMEDIO_1} + {NOMBRE_TABLA.PROMEDIO_2} + ... + {NOMBRE_TABLA.PROMEDIO_N} / N
.
y Listo.

Nos vemos cajami.


BYTE.
Título: Re: Crear Un Reporte Utilizando Bucles
Publicado por: Cajami en Sábado 14 de Abril de 2007, 12:57
Hola lencho, antes que naa espero que ia estés mejor de tus vistas, muchas gracias ia pude resolver el problema