>My idea was to save the record with
scatter name oPrevStateRecord and then compare with the current record. But since we're in the framework environment, the task is not that trivial...
Sure you can save with
scatter name. On the other hand, VFP already saves a copy automatically, as soon as the user starts editing (which is what
oldval() checks), and
scatter name might be more difficult to integrate into the framework.
It should be a relatively trivial task to loop through all the fields in the current record, comparing every field's value with its oldval().
Difference in opinions hath cost many millions of lives: for instance, whether flesh be bread, or bread be flesh; whether whistling be a vice or a virtue; whether it be better to kiss a post, or throw it into the fire... (from Gulliver's Travels)