LPARAMETERS tcCursor, tlSingleRecord ****************************************************************** * FUNCTION NAME: IsChanged * * INPUT PARAMETERS: * tcCursor - Cursor to test * tlSingleRecord - Pass in .T. and it will only test the * current record. * OUTPUT PARAMETERS: * .T. - Cursor is changed ****************************************************************** LOCAL lnRecno, ; loSelect, ; lcState, ; llChanged llChanged = .F. IF !USED(tcCursor) RETURN llChanged ENDIF * You can replace this line with a SELECT (tcCursor) loSelect = CREATEOBJECT("CSelect", tcCursor) lRecno = RECNO(tcCursor) IF tlSingleRecord lcState = GETFLDSTATE(-1, tcCursor) llChanged = "2" $ lcState OR "3" $ lcState OR "4" $ lcState ELSE SCAN lcState = GETFLDSTATE(-1, tcCursor) llChanged = "2" $ lcState OR "3" $ lcState OR "4" $ lcState IF llChanged EXIT ENDIF ENDSCAN ENDIF TRY GOTO lnRecno IN (tcCursor) CATCH ENDTRY RETURN llChanged