lparameters tcFieldName,tcNewValue,tcCascadeParent local llRetVal llRetVal=.t. IF ISRLOCKED() OR !RLOCK() llRetVal=.F. ELSE IF EVAL(tcFieldName)<>tcNewValue PRIVATE pcCascadeParent pcCascadeParent=upper(iif(type("tcCascadeParent")<>"C","",tcCascadeParent)) REPLACE (tcFieldName) WITH tcNewValue llRetVal=pnerror=0 ENDIF values don't already match ENDIF it's locked already, or I was able to lock it UNLOCK RECORD (RECNO()) return llRetVal