Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   Como Usar Master / Detail? (https://www.clubdelphi.com/foros/showthread.php?t=83642)

negrokau 10-07-2013 15:24:31

Como Usar Master / Detail?
 
Hola amigos... disculpen las molestias... tengo un inconveniente con unos detalles en el quick report, (ejemplo: tengo una factura con muchos detalles)... estuve buscando y lei mucho sobre master / detail que es lo que necesito, pero no lo puedo hacer funcionar, o no se si lo estoy haciendo bien, les agradeceria si me dan una ayuda de como funciona... uso delphi 7, quick report y query... gracias por su tiempo... un abrazo...

ElDioni 10-07-2013 16:52:02

Hola,

no aclaras muy bien lo que has intentado hacer, donde tienes los inconvenientes.

De todas formas te pongo este enlace donde puede que te aclare algo de lo que necesitas.

http://www.clubdelphi.com/foros/showthread.php?t=49605

Saludos.

negrokau 10-07-2013 17:04:19

gracias por contestar, la verdad, no me sale nada de lo que hago, es por eso que le pido el favor de enseñarme lo basico desde el comienzo de un master /detail... tengo 2 query, query1 para la cabecera y query2 los detalle... no logro hacer que me muestres la cabecera y debajo los detalles de esa cabecera, me muestra todos los detalles en la cabecera como tambien en los detalles...

ecfisa 10-07-2013 17:33:51

Hola negrokau.

En este enlace: Master-detail relationships, está explicado con detalle.

Por otro lado, ¿ Que motor de bd y que componentes estas usando ?

Saludos. :)

negrokau 10-07-2013 18:00:44

gracias ecfisa, interbase como motor, delphi 7, quick report y query

ecfisa 10-07-2013 18:02:47

Hola.
Cita:

Empezado por negrokau (Mensaje 463612)
gracias ecfisa, interbase como motor, delphi 7, quick report y query

Correcto, ¿ El componente query es TIBQuery ?

Saludos. :)

negrokau 10-07-2013 18:25:18

si, TIBQUERY....

ecfisa 10-07-2013 18:30:39

Hola.

Ajusta las siguientes propiedades de los IBQuerys (reemplazando por los nombres de tus tablas y campos):

IBQueryMaster:
Código:

Database    <- IBDatabase
SQL.Text    <- 'SELECT * FROM TABLA_MASTER';
Transaction <- IBTransaction

IBQueryDetail:
Código:

Database    <- IBDatabase
SQL.Text    <- 'SELECT * FROM TABLA_DETALLE WHERE MASTER_ID = :ID';
DataSource  <- dsMaster (DataSource asociado a IBQueryMaster)
Transaction <- IBTransaction

  • MASTER_ID = Nombre del campo referencia en TABLA_DETALLE
  • :ID = Nombre del campo clave en TABLA_MASTER

Saludos. :)

negrokau 12-07-2013 21:56:46

y en los QRsubdetail como los configuro?

ecfisa 12-07-2013 23:07:56

Cita:

Empezado por negrokau (Mensaje 463823)
y en los QRsubdetail como los configuro?

Hola negrokau.

Revisa en este enlace: Quick Reports Tutorial, buscá por: Sorting & Grouping.


Saludos. :)

negrokau 15-07-2013 01:30:55

sabes, les comento que no puedo hacer funcionar el master / detail
para que esten mas informados sobre mi consulta es sobre el movimiento de gruas de una fecha a otra.

-uso 2 subdetail, subdetail1 para la cabecera y subdetail2 para el detalle.
-tambien 2 query, query1 para la cabecera y query2 para el detalle.

en el sql de query1 (cabecera) pongo la siguiente consulta:
Código SQL [-]
select * from ORDEN_SALIDA WHERE ESTADO<>'ANULADO' AND GRUA2=:CON AND FECHA_LLEGADA between :FECHA1 AND :FECHA2 ORDER BY FECHA_LLEGADA

en el sql de query2 (detalle) pongo la siguiente consulta:
Código SQL [-]
select * from DET_ORDEN_SALIDA WHERE COD_DET=:CON

-en el dataset del subdetail1 le asigno el query1 de la cabecera y en el dataset del subdetail2 le asigno el query2 del detalle.
-en la propiedad master del subdetail2 le asigno el subdetail1.
-en el evento afterprint del subdetail1 le asigno los parametros del query2

Código Delphi [-]
procedure TF_REPORTES.QRSubDetail1AfterPrint(Sender: TQRCustomBand;
BandPrinted: Boolean);
begin
Query2.Close;
Query2.Params[0].Value:=Q_ORDENES1.FieldValues['COD_ORDEN'];
Query2.Open;
End;

-en el la propiedad dataset del reporte le asigno el query1 y en el evento StartPage asigno los parametros del query1.

Código Delphi [-]
procedure TF_REPORTES.QuickRep1StartPage(Sender: TCustomQuickRep);
begin
Query1.Close;
Query1.Params[0].Value:=F_REP_ORDEN.DBLookupComboBox1.Text;
Query1.Params[1].Value:=F_REP_ORDEN.MASKEDIT1.Text;
Query1.Params[2].Value:=F_REP_ORDEN.MASKEDIT2.Text;
Query1.Open;
end;

mi problema es que en el reporte genera las paginas sin parar....
me darian un consejo amigos.... xq ya intente todo lo que me indicaron pero hasta aca llegue...

negrokau 15-07-2013 15:59:10

ya lo solucione, solo tenia que asignar los parametros del query1 en el boton imprmir del formulario y ahi ya deja de generar paginas de mas en el reporte.... espero que le sirva a otros...


La franja horaria es GMT +2. Ahora son las 18:33:26.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi