Ver Mensaje Individual
  #1  
Antiguo 11-08-2012
mjjj mjjj is offline
Miembro
 
Registrado: mar 2007
Posts: 652
Reputación: 18
mjjj Va por buen camino
TClientDataSet + Campo Tipo Aggregate

Estimados, tengo el siguiente problema, tengo una tabla en un clientdataset con los campos: id, cantidad, unitario y descuento (que se van almacenar en la tabla de firebird). Además agregue al clientdateset los campos de tipo float: subtotal y afecto, tal que estos ultimo sean calculados desde los anteriores como sigue:

clientdataset1subtotal = clientdataset1cantidad * clientdataset1unitario;
clientdataset1afecto = clientdataset1cantidad * clientdataset1unitario - clientdataset1descuento;

En codigo anterior lo inclui en el evento beforepost del clientdateset, y funciona sin problema.

Por otro lado, agregue 3 campos del tipo fkaggregate, tal que me entregue la sumatoria de todos los registros, en su propiedad expression quedo asi:

TOTAL_SUBTOTAL = sum(cantidad * unitario)
TOTAL_DESCUENTO = sum(descuento)
TOTAL_AFECTO = sum(cantidad * unitario) - sum(descuento)

Hasta aqui todo va bien, el problema surgue cuando deo agregar un parametro externo al clientdataset, es decir, el IVA. Con este debo obtener 2 nuevos valores.

var IVA: double;

IVA = TOTAL_AFECTO.asfloat * IVA
TOTAL = TOTAL_AFECTO.asfloat - TOTAL_AFECTO.asfloat * IVA

Intenté agregar este codigo, pero me arroja error al ejecutar que no puede acceder al campo TOTAL_AFECTO como un float.

Como puedo resolver esto?
Responder Con Cita