Ver Mensaje Individual
  #2  
Antiguo 10-01-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Reputación: 28
Lepe Va por buen camino
En tu primer código veo algunas cosas:

La query de Clientes es : SELECT * FROM TABLACLIENTES
La de Facturas SELECT * FROM TABLAFACTURAS where Cliente = :Cliente

Se supone que la tabla cliente tiene un campo que se llama "Cliente" es decir, exactamente igual que el parámetro que he añadido en el Where. Esto se hace para que al seleccionar un cliente, automáticamente salgan en CDSFactura sólo las facturas de ese cliente, y la relación Maestro-detalle funcione correctamente.

Por lo general, primero se abre la tabla Maestra y después la tabla detalle.

Código Delphi [-]
CDCliente.Close;
CDFacturas.close;
//Si es false sale todo este código bien, pero con todos los clientes y sus facturas
CDFacturas.MasterSource := dataSourceCLIENTES;
CDFacturas.MasterField := 'CLIENTE';
CDFacturas.indexName := 'CLIENTE'; // indice que ordena por Clientes,necesario

CDClientes.open;
CDFacturas.Open;

Este código puede estar en el evento OnCreate del Form, ya que solo hace falta ejecutarlo una vez. Desde ahora, al hacer clic en el grid de clientes, ya se mostrará las facturas de ese cliente seleccionado.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita