* Function......: GetNextID * Description...: Assigns the next highest primary key value. * Notes.........: * Parameters....: tcEntityName - name of the table to assign key value * Return........: integer LPARAMETERS tcEntityName, tlClearFirst, tnNewValue LOCAL liReturn ASSERT PCOUNT() > 0 ASSERT TYPE('tcEntityName') = 'C' ASSERT !EMPTY(tcEntityName) tcEntityName = UPPER(ALLTRIM(tcEntityName)) SEEK tcEntityName ORDER ENTITYNAME IN NEXTID liReturn = -1 IF FOUND('NEXTID') IF THISFORM.RecLock('NEXTID') IF tlClearFirst IF tnNewValue > 0 liReturn = tnNewValue ELSE liReturn = 0 ENDIF REPLACE NEXTID.ivalue WITH liReturn IN NEXTID ELSE liReturn = NEXTID.ivalue + 1 REPLACE NEXTID.ivalue WITH liReturn IN NEXTID ENDIF UNLOCK IN NEXTID ENDIF ELSE liReturn = 1 INSERT INTO NEXTID (centitynam, ivalue) VALUES (tcEntityName, liReturn) ENDIF RETURN liReturn