Function myaudit (tctriggertype) local lnfield, lcfieldname, lctable, lcusername, lcchanges, lcimacid lcusername = substr(alltrim(sys(0)),1,atc(" ",alltrim(sys(0)))-1) lctable = juststem(dbf()) lcchanges = "" lcimacid = 0 do case case tctriggertype = "I" for lnfield = 1 to fcount() lcfieldname = field(lnfield) if Upper(lcfieldname) = "IMAC_ID" then lcimacid = curval(lcfieldname) endif if oldval(lcfieldname) <> eval(lcfieldname) then lcfieldname = field(lnfield) lcchanges = lcchanges + lcfieldname + ": "; + transform(eval(lcfieldname)) ; + chr(13) + chr(10) endif next case tctriggertype = "U" for lnfield = 1 to fcount() lcfieldname = field(lnfield) if Upper(lcfieldname) = "IMAC_ID" then lcimacid = curval(lcfieldname) endif if oldval(lcfieldname) <> eval(lcfieldname) then lcchanges = lcchanges + lcfieldname + ": " ; + transform(oldval(lcfieldname)) + " -> " ; + transform(eval(lcfieldname)) ; + chr(13) + chr(10) endif next endcase if empty(lcchanges) = .f. then insert into myaudit; (tablename, username, trigtype, whenchang, changes, imac_id); values; (lctable, lcusername, tctriggertype, datetime(), lcchanges, lcimacid) endif endproc