Whenever form internally changes the value of a field that has the user
edit field set to yes, it calls your user_edit routine with the type
parameter set to U_CHANGED. The edit_name parameter points to
the name specified in the edit field name field in the field description form.
If the edit field name is blank, then the edit_name parameter points
to the field name. The old_value parameter points to the original contents
of the field. If there is no old value (when a new record is displayed, for
example), the old_value parameter is NULL. The new_value
parameter points to the current contents of the field (which could be the same
as the original contents).
Form changes the value of a field in the following situations:
When a form is displayed or cleared
When a calculation changes the value of a field
When a user_edit routine changes the value of a field with swrite.
If your user_edit routine swrites to a field that has the user edit field set to yes, swrite recursively calls your user edit routine. If your user edit routine uses U_CHANGED and swrite, it should be careful about getting into infinite recursive loops.