Ver Mensaje Individual
  #1  
Antiguo 10-10-2006
Avatar de TrUnkS
TrUnkS TrUnkS is offline
Miembro
 
Registrado: dic 2005
Posts: 93
Reputación: 19
TrUnkS Va por buen camino
Question Problema con consulta en Maestro-Detalle

Hola. Tengo un sistema de facturación. Tengo 3 tablas: CLIENTES, FACTURAS, DETALLES en Paradox. Tengo relacionadas las tablas de modo que un Cliente puede tener muchas Facturas y cada factura puede tener muchos Detalles ( de productos). Tengo un Form con DBEdits para las claves primarias de las tablas. Quisiera navegar por los registros de la tabla FACTURAS de modo que al desplazarme por la tabla me muestre en el Form el cliente que la tiene y el respectivo detalle de productos que adquirio. La relacion Maestro-Detalle es CLIENTES->FACTURAS->DETALLES. Para la consulta SQL tengo un Query que no he podido configurar correctamente, solo me puedo desplazar por la tabla CLIENTES ya que es la tabla Maestra de mas alto rango. El problema se radica en que no puedo desplazarme por la tabla FACTURAS para rescatar la clave secundaria correspondiente a la clave primaria de CLIENTES para asi poder hacer la consulta con ese valor y pasarlo como parámetro en el Query. Me gustaria que alguien me dijera si cometi algún error o me faltan cosas por declarar

Propiedades del Query:

- DataBaseName: El alias correspondiente
- DataSource:TClientes

Código SQL [-]
SELECT *FROM CLIENTES WHERE CLI_ID=:CLIENTE_ID

Código Delphi [-]
procedure TForm.BitBtn1Click(Sender: TObject);
var CLAVE_CLIENTE,CLAVE_FACTURA:String;
begin
 CLAVE_FACTURA:=FloatToStr(StrToFloat(TFacturas.FieldByName('FAC_ID').AsString) + 1); // corresponde al registro siguiente
 TFacturas.FindKey([CLAVE_FACTURA]); // supuestamente se esta posicionando en el registro siguiente de la tabla FACTURAS
 CLAVE_CLIENTE:=TFacturas.FieldByName('FAC_CLI_ID').AsString; // clave secundaria de FACTURAS que correspondiente a la clave de CLIENTES
 Query.Clear;
 Query.ParamByName('CLIENTE_ID').AsString := CLAVE_CLIENTE; 
 Query.Active:=True;
 Query.Open;

Última edición por TrUnkS fecha: 10-10-2006 a las 07:55:02.
Responder Con Cita