Ver Mensaje Individual
  #5  
Antiguo 20-05-2003
Avatar de javiermorales
javiermorales javiermorales is offline
Miembro
 
Registrado: may 2003
Ubicación: Alicante
Posts: 272
Reputación: 24
javiermorales Va por buen camino
Muchas gracias por contestar. En efecto lo que se busca es actualizar el valor de varios campos.
Ejemplo:

"Cantidad" "Precio" "Importe"

Cuando Actualizo "Cantidad", en el OnValidate, llamo a una función (CalculaPrecPAR) dentro del DataModule que realiza un cálculo en cascada de los datos que se ven afectados en la misma tabla del mismo formulario:

procedure TDM.CalculaPrecPAR();
begin
//Calcula PrecioCoste=(Precio*(%MA))*(%CI)
TaPTOPAR.FieldByName('PTOPAR_PREC2').ReadOnly := false;
TaPTOPAR.FieldValues['PTOPAR_PREC2'] := ((TaPTOPAR.FieldValues['PTOPAR_PREC'] *
(1+(TaPTOPAR.FieldValues['PTOPAR_MA']/100))) *
(1+(TaPTOPAR.FieldValues['PTOPAR_CI']/100)));
TaPTOPAR.FieldByName('PTOPAR_PREC2').ReadOnly := true;
//Calcula ImporteCoste=Cantidad x Precio2
TaPTOPAR.FieldByName('PTOPAR_IMP').ReadOnly := false;
TaPTOPAR.FieldValues['PTOPAR_IMP'] := TaPTOPAR.FieldValues['PTOPAR_CAN'] *
TaPTOPAR.FieldValues['PTOPAR_PREC2'];
TaPTOPAR.FieldByName('PTOPAR_IMP').ReadOnly := true;
//Calcula ImporteOferta=ImporteCoste x K
TaPTOPAR.FieldByName('PTOPAR_OFER').ReadOnly := false;
TaPTOPAR.FieldValues['PTOPAR_OFER'] := TaPTOPAR.FieldValues['PTOPAR_IMP'] *
TaPTOPAR.FieldValues['PTOPAR_K'];
TaPTOPAR.FieldByName('PTOPAR_OFER').ReadOnly := true;
//Calcula PrecioOferta=PrecioCoste x K
TaPTOPAR.FieldByName('PTOPAR_POFER').ReadOnly := false;
TaPTOPAR.FieldValues['PTOPAR_POFER'] := TaPTOPAR.FieldValues['PTOPAR_PREC2'] *
TaPTOPAR.FieldValues['PTOPAR_K'];
TaPTOPAR.FieldByName('PTOPAR_POFER').ReadOnly := true;
end;

Muchas Gracias.
Responder Con Cita