Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Creación de un reporte (QuickReport) con 3 DataSet

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Bases de Datos
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Creación de un reporte (QuickReport) con 3 DataSet Responder citando

ahora me toca preguntar a mi, jeje

alguien a realizado una impresion con un QuickReport usando lo siguiente:

Tengo 1 Dataset que funciona como Maestro para 2 Mas que dependen de él.

ire por pasos, para ser lo mas explicado posible
1.- DataSet Maestro: tiene un ID, Descripcion, Cantidad
2.- los otros dos DataSet contienen
DataSet1 - Detalle: id, id_Maestro, cantidad_salida.
DataSet2 - Detalle: id, id_Maestro, cantidad_entrada
3.- el campo del DataSet Maestro genera la relacion con los campos ID_Maestro de los dos DataSet siguiente.

sin ningun problema, para mostrar los datos, es decir me muevo en un registro del Maestro y se actualizan los datos de los "DataSet Detalle"
Esto es en un form.

Uso FIREBIRD, como gestor de la base de datos.

en si el problema es que no he podido realizar la siguiente presentación dentro de un QuickReport.
por cada registro del maestro detalle, imprimir en la parte de abajo, la cantidad de salida y la cantidad de entrada.
algo como esto


Código:
| ==============================================
| 1.- Jamon
| ----------------------------------------------
| Entrada  Fecha            Salida     Fecha
| ==============================================
|     20    <fecha>
|     30    <fecha>           10       <fecha>  // aqui es la misma fecha de entrada
|    etc      etc             etc        etc
|    etc      etc             etc        etc
|    etc      etc             etc        etc
| ==============================================
| 1.- vino
| ----------------------------------------------
| Entrada  Fecha            Salida     Fecha
| ==============================================
|     10    <fecha>            2       <fecha>
|      5    <fecha>            1       <fecha>  // aqui es la misma fecha de entrada
|    etc      etc             etc        etc
|    etc      etc             etc        etc
|    etc      etc             etc        etc
//---------------------------------------------------------------------------


Entrada y Fecha (las 2 primeras columas son del DataSet1)
Salida y Fecha (las 2 ultimas columas son del DataSet2)

la parte de Jamon y Vino, son del DataSet Maestro.

he intentado usar uniones, joins, inner join, para crear una vista
y generar los datos. pero no me arroja los resultados.
estratosfericamente me avienta mas de 5 millones de registros al hacerlo
con un create view en la base.

bueno la pregunta, es, alguien pudo realizar esta accion desde 3 Dataset Diferentes?

ando agotado por ello creo no doy con la solución.

Gracias, por leer el post

la parte conformate seria, que salieran los 3 data Sets en una misma hoja, es decir en un bloque.
puede ser Detail, SubDetail etc etc.

recuerdo, haber ayudado a alguien hacer algo como esto, pero no encuentro el enlace, y al parecer tampoco encuentro el enlace que ha puesto _Leo sobre los reportes dinámicos.

por que esa seria una solucion mas factible de crear las cadenas y enviarles a un solo subDetail, e imprimir los registros de los DataSet - Detalle

Bien saludos... si alguien ha visto el link que me haga saber.

por la atencion prestada un saludo.
_________________
Cool
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Responder citando

César, aqui el problema es que el numero de registros que tienes para cada DataSet no siempre es igual, es decir tus entradas pueden ser mayores o menores a tus salidas y viceversa, por ello por más selects, joins y demás que hagas no podrás tener una matriz cuadrada de entradas y salidas; porque o te quita o te duplica registros. Además para la forma que quieres visualizar el reporte tampoco puedes hacerlo con más de un dataset ya que una banda solo puedes asociarla a SOLO UN dataset.
Por lo tanto lo unico que se me ocurre es que generes una tercera tabla en tiempo de ejecución, donde tu llenes la tabla al numero mayor de entradas o salidas, y completes con valores en nulo o vacios los que salen sobrado, asi tendrás tu matriz cuadrada y en un SOLO dataset que puedes asociar perfectamente a una banda en tu reporte.

Salu2 y espero haberte ayudado con tu duda
_________________
ISC
Dobermannmx
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email Visitar sitio web del autor MSN Messenger
Mensaje    Asunto: Responder citando

la solucion, ha sido crear en tiempo de diseño el reporte usando la propiedad de los componetes, BeforePrint, y en un componete QRLabel, he puesto correctamente, la informacion.

es decir la solcuion, ha quedado
Abro la tabla maestra, recorro los registros, en los DataSet que son los detalles y por cada Data Set, lo unico que hago es ir llenando de manera manual por cada campo expuesto arriba una Cadena de Texto que contien losdatos a imprimir

Saudos.


la relacion se conoce como "doble relacion maestro-detalle", en mi caso, son como 5 o 6 tablas, que dependen de un maestro. y en cada una se trata de diferente manera, la información de los datos.

asi, que haciendo las cosas sencillas y sin compliaciones es preferible hacerlo dentro de los eventos BeforPrint de la Banda Detail que funciona como la maestra y usando 1 sola banda SubDetail ( que para ello sirven ) insert un compoente QRLabel y en el imprimo el armo la cadena de texto que quiero presentar.
_________________
Cool
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.