Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Obtener suma total en campos calculado (https://www.clubdelphi.com/foros/showthread.php?t=92674)

wilcg 28-12-2017 15:12:09

Obtener suma total en campos calculado
 
Que tal amigos del foro,
Tengo un TMemTableEh es como un TClientDataset para los que no esten familiarizados con el componente. tengo unos campo: CANTIDAD, PRECIO, DESCUENTO y un campo calculado TOTAL para sumar el total de cada fila utilizó este codigo, hasta aqui todo bien.

en el DBGrid asociado manipulo la cantidad el precio, descuento etc y el TOTAL va cambiando en relacion
a la operacion todo bien aqui...

Código Delphi [-]
procedure TFTPVOrdVenta.temp_TPV001CalcFields(DataSet: TDataSet);
begin
  with temp_TPV001 do
    FieldByName('TOTAL').AsFloat := (FieldByName('PRECIO').AsFloat *
                FieldByName('CANTIDAD').AsInteger) - FieldByName('DESCUENTO').AsFloat;
end;

el gran problema es cuando quiero mostrarlo en un TEdit la SUMA del TOTAL, he probado con un campo Aggregate y no funciona. Alguien puede ayudarme ú orientarme a una solución. gracias por su ayuda.

pkcito 28-12-2017 22:53:20

El campo calculado debe ser InternalCalc ( FieldKind := fkInternalCalc; Calculated := False; ) para poder ser usado en un campo agregado.
Ten en cuenta que los valores de los campos agregados no se calculan automáticamente sino sobre demanda con código similar al siguiente:

Código Delphi [-]
Edit1.Text := CurrToStr(ClientDataSet1.Aggregates.[0].Value);

Otra opción es que la expresión del campo agregado se la suma de la expresión del campo calculado, algo así en tu caso:

Código Delphi [-]
SUM(PRECIO * CANTIDAD - DESCUENTO)

Espero que te sirva.

Saludos, Pablo.

wilcg 29-12-2017 00:21:53

pkcito gracias por tu aporte es de mucha ayuda.


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

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