 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Cesar C. Salazar Gonzalez Master


Registrado: 01 Oct 2002Mensajes: 2155Ubicación: San Cristóbal de Las Casas, Chiapas
|
Publicado: Jue 07 Jun, 2007 11:55 am Asunto: Creación de un reporte (QuickReport) con 3 DataSet |
|
|
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. _________________
 |
|
| Volver arriba |
|
 |
dobermannmx Master


Registrado: 30 Ago 2006Mensajes: 191Ubicación: Zapopan, Jal. - México
|
Publicado: Jue 07 Jun, 2007 7:26 pm Asunto: |
|
|
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 |
|
 |
Cesar C. Salazar Gonzalez Master


Registrado: 01 Oct 2002Mensajes: 2155Ubicación: San Cristóbal de Las Casas, Chiapas
|
Publicado: Jue 28 Jun, 2007 11:52 am Asunto: |
|
|
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. _________________
 |
|
| Volver arriba |
|
 |
|
|
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
|
© 2002–2026 Club Builder · Funciona con phpBB.
|