LOCAL ix FOR ix = 1 TO FCOUNT('myAlias') IF GETFLDSTATE(m.ix,'myAlias') % 2 = 0 ? FIELD(m.ix,'myAlias') + ' has changed' endif endforProblem with getfldstate: If you modify a field but before saving restore the old value, the field is still detected as modified (you can override with SetFldState but cumbersome IMHO).
scatter name thisform.oRecordBuffer memoWhere a detetction is needed (instead of GetFldState):
local loRecord scatter name loRecord memo if compobj(loRecord, thisform.oRecordBuffer) && they're same no change *... else local ix, luOld, luCur for ix = 1 to fcount() luOld = eval("loRecord."+field(m.ix)) luNew = eval("thisform.oRecordBuffer."+field(m.ix)) if !( (isnull(m.luOld) and isnull(m.luNew)) or m.luOld == m.luNew) ? FIELD(m.ix) + ' has changed' endif endfor endifPS: Please note that code is the top off my head, Would be enhanced and made part of a generic routine.