Ver Mensaje Individual
  #4  
Antiguo 09-02-2011
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.734
Reputación: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Pues yo haría campos calculados...
Agregas los campos calculados a la tabla cabecera
En el evento OnGetText de cada campo abres el detalle, lo recorres y el resultado se lo asignas a Text.

Código Delphi [-]
procedure TDataModule.TablaCabeceraTOTALGetText(Sender: TField; var Text: string; DisplayText: boolean);
var 
   Q : TQuery; {El componente que utilices para hacer Querys a MySQL}
   Total : Real;
begin
  Q := TQuery.Create(nil) ;
  try
    try
       {Seleccionas la suma del detalle que corresponda a la cabecera actual}
       SQL.Text := 'SELECT SUM(IMPORTE) FROM TABLA_DETALLE WHERE CABECERA=?CABECERA';
       Params.ByName['CABECERA'].AsInteger := TablaCabeceraCABECERA.AsInteger;
       ExecSQL;
       Total := FieldByName['SUM'].AsFloat;
    except
      Total := 0;
    end 
  finally
    Q:Free;
  end;
  Text := FormatFloat(Total);
end;
Responder Con Cita