LOCAL lnI CREATE CURSOR crsTest (IDFld I, FName c(10)) FOR lnI = 1 TO 10 INSERT INTO crsTest (FName) VALUES ('Ken') INSERT INTO crsTest (FName) VALUES ('David') INSERT INTO crsTest (FName) VALUES ('Michael') INSERT INTO crsTest (FName) VALUES ('Robert') NEXT INDEX on fName TAG fName PRIVATE pnRec, pcName pnRec = 0 pcName = crsTest.FName *!* replace IDFld WITH IIF(crsTest.FName == m.pcName, NVL(_VFP.SetVar('pnRec', m.pnRec+1),1), ; *!* NVL(_VFP.SetVar('pcName', crsTest.FName),1) * NVL(_VFP.SetVar('pnRec', 0),1)) * (m.pnRec + 1) IN crsTest WHILE NOT EOF() replace IDFld with IIF(pcName = crsTest.fName, nvl(_VFP.SetVar('pnRec',m.pnRec+1), m.pnRec), ; nvl(_VFP.SetVar('pcName',crsTest.fName),1) * nvl(_VFP.SetVar('pnRec',1), m.pnRec)) WHILE NOT EOF() browse