![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
#5
|
||||
|
||||
|
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. |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|