>>>IF CURSORGETPROP("Buffering") = 1 && Table is not buffered, update status >>> REPLACE cLast_Updated_User WITH getuserid(), tLast_Updated_Date WITH DATETIME() >>>ELSE____________________
>>acti screen >>?getfldstate(-1) >>>>
>>>FUNCTION UpdateUserAndTime() >>>* Function..........: UpdateUserAndTime >>>* Author............: Gregory Adam thread #988451 / Nadya Nosonovsky / James Weil >>>* Project...........: Visual Collections >>>* Created...........: 02/02/2005 15:17:53 >>>* Copyright.........: (c) Jzanus, LTD, 2005 >>>* Major change list.: >>> >>>LOCAL lcFieldState, lnPos, lnOccurance >>>IF CURSORGETPROP("Buffering") = 1 && Table is not buffered, update status >>> REPLACE cLast_Updated_User WITH getuserid(), tLast_Updated_Date WITH DATETIME() >>>ELSE >>> >>> lcFieldState = SUBSTR(GETFLDSTATE(-1),2) && The first character returns deletion status >>> lnOccurance = 1 >>> >>> lnPos = AT('2', m.lcFieldState, m.lnOccurance) >>> >>> DO WHILE m.lnPos > 0 >>> DO CASE >>> CASE !FieldChanged(FIELD(m.lnPos)) >>> >>>&& not changed >>> CASE INLIST(UPPER(FIELD(m.lnPos)), UPPER("cLast_Updated_User"), ; >>> UPPER("tLast_Updated_Date")) >>> >>>&& ignore >>> OTHERWISE >>> REPLACE cLast_Updated_User WITH getuserid(), tLast_Updated_Date WITH DATETIME() >>> lnPos = 0 >>> ENDCASE >>> IF m.lnPos > 0 >>> lnOccurance = m.lnOccurance + 1 >>> lnPos = AT('2', m.lcFieldState, m.lnOccurance) >>> ENDIF >>> ENDDO >>>ENDIF >>> >>>ENDFUNC >>>*-------------------------------------------------------------------------- >>> >>>FUNCTION FieldChanged(tcFieldName) >>> >>>LOCAL llReturn >>> >>>DO CASE >>>CASE ISNULL(OLDVAL(m.tcFieldName)) OR ISNULL(EVALUATE(m.tcFieldName)) >>> llReturn = (ISNULL(OLDVAL(m.tcFieldName)) <> ISNULL(EVALUATE(m.tcFieldName)) ) >>>OTHERWISE >>> llReturn = (OLDVAL(m.tcFieldName) <> EVALUATE(m.tcFieldName)) >>>ENDCASE >>> >>>RETURN m.llReturn >>> >>>ENDFUNC >>>