Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Impresión
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 25-10-2007
mifiar mifiar is offline
Registrado
 
Registrado: nov 2005
Posts: 9
Poder: 0
mifiar Va por buen camino
Master / Detail Quickreport

Hola comunidad, espero me puedan ayudar con lo siguiente: tengo una duda con un reporte de este tipo, tengo 3 tablas (Clientes, Prestamos, Abonos); con una relacion entre las 3, abonos con prestamos y esta a su vez con clientes.
El problema está en que quiero hacer un reporte con el(los) prestamo(s) que tiene determinado cliente; este préstamo a su vez puede contener uno o varios abonos. solo que no me aparecen los abonos de forma correcta, lo maximo que he logrado es que me aparezca un abono (aun cuando el prestamo tenia 3) por lo que opté por empezar de nuevo, pero sigue sin funcionar.

Algo más gráfico sería de la siguiente forma:
P1................
A1
A2
A3
P2................
A1
A2
P3................

Esa sería la forma en la que quiero que aparezcan los datos del reporte; he intentado poniendo las bandas detail, subdetail, o incluso el componente qrsubdetail.

Puse el siguiente codigo que recopilé de una busqueda en el foro:
Código:
procedure TFrmRepCli.QRSubDetail2AfterPrint(Sender: TQRCustomBand;
  BandPrinted: Boolean);
begin
    with MDOQuery2 do
      begin
            Close;
            SQL.Clear;
            SQL.Add('select * from abonos');
            SQL.Add('Where id_ptmo = :Variable');
            ParamByName('Variable').AsInteger := MDOQuery1['id_ptmo'];
            Open;
      end;
end;
Código:
with FrmRepCli.MDOQuery1 do
      begin
            //Active:=false;
            Close;
            SQL.Clear;
            SQL.Add('select id_ptmo, fecha, concepto, tipo_tasa, tasa, cargo, interes, saldo');
            SQL.Add('from prestamos');
            SQL.Add('where id_cliente = '''+id+'''');
            Open;
            Active:=true;
            //FrmBuscaClientes.DBGrid1.SelectedField.FieldName

      end;
Espero haberme explicado lo suficiente; no se si estén bien con las bandas que estoy utilizando, he probado con detail y subdetail e inclusive con dos subdetails. De antemano gracias.
Responder Con Cita
  #2  
Antiguo 25-10-2007
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
La idea aquí, sería que hicieras una sola consulta uniendo los valores de las tres tablas:

Código SQL [-]
Select P.Prestamo, C.NombreCliente, A.NumeroAbono, A.Cantidad
From Prestamos P
join Cliente C on P.Cliente = C.Cliente
join Abonos A on P.Prestamo = A.Prestamo
where ....


De esta forma, tendrías todos los préstamos con sus respectivos abonos y sus cliente. Obviamente no conozco como están definidas tus tablas, pero la idea es tener todo en una sola consulta.

Y finalmente, en el reporte enlazado a esta consulta, lo que harías sería agrupar por préstamo. Utilizando bandas TQRGroup. De esa forma aparecerá la información como tu quieres.
__________________

Responder Con Cita
  #3  
Antiguo 02-11-2007
mifiar mifiar is offline
Registrado
 
Registrado: nov 2005
Posts: 9
Poder: 0
mifiar Va por buen camino
Hola ContraVeneno, gracias por tu respuesta, ya corregí la consulta y quedó de este modo:

Código Delphi [-]
SQL.Add('select p.id_ptmo, p.fecha, p.concepto, p.tipo_tasa, p.tasa, p.cargo, p.interes, p.saldo, a.fecha, a.cantidad, a.bonificacion');
SQL.Add('from prestamos p');
SQL.Add('join Abonos A on P.id_ptmo = A.id_ptmo');


Ejecuto la consulta en el editor del IBExpert y funciona; pero sigo con el problema de que no me muestra correctamente la informacion en el reporte; si me pudieras explicar un poco mas qué bandas utilizar tanto para los prestamos y los abonos.
En este momento tengo un QrGroup en el cual pongo las cabeceras de los datos del prestamos, tengo una banda tipo detail en la que pongo los QRDBText que contienen los datos del prestamo.
Así como una banda para los Abonos en la que tengo activada la propiedad hasheader para poner las cabeceras del abono y en la banda Subdetail tengo los QRDBText correspondientes al Abono. He intentado varias combinaciones de bandas pero sin éxito; espero me puedan ayudar. Gracias de antemano.
Responder Con Cita
  #4  
Antiguo 02-11-2007
mifiar mifiar is offline
Registrado
 
Registrado: nov 2005
Posts: 9
Poder: 0
mifiar Va por buen camino
Solucionado , era cuestión de acomodo de las bandas, gracias por la ayuda.
Responder Con Cita
  #5  
Antiguo 05-11-2007
mifiar mifiar is offline
Registrado
 
Registrado: nov 2005
Posts: 9
Poder: 0
mifiar Va por buen camino
hola, molestando de nuevo; tengo otro problema relacionado con la consulta asociada al reporte la cual tiene el detalle de mostrarme todos los prestamos pero únicamente los que tienen abonos, los préstamos sin abono no salen, he estado intentando modificar la consulta pero no lo he podido hacer; a ver si me pueden orientar un poco, gracias de antemano.
Responder Con Cita
  #6  
Antiguo 05-11-2007
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
Código SQL [-]
Select P.Prestamo, C.NombreCliente, A.NumeroAbono, A.Cantidad
From Prestamos P
join Cliente C on P.Cliente = C.Cliente
left outer join Abonos A on P.Prestamo = A.Prestamo
where ....
__________________

Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
DBLookupComboBoxs Master/Detail o Detail/Master yusnerqui OOP 5 29-07-2005 18:40:20
master/detail, imprimiendo master en cada hoja acalderonr Impresión 4 29-11-2003 14:46:07
master detail marcelofabiani Firebird e Interbase 5 01-11-2003 22:21:28
interbase:¿como crear un master-detail-detail? ElSanto24 Firebird e Interbase 2 22-10-2003 10:24:45
Master/Detail/Detail/Detail/etc... hgiacobone Tablas planas 2 24-07-2003 17:20:31


La franja horaria es GMT +2. Ahora son las 17:05:59.


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
Copyright 1996-2007 Club Delphi