*!* Define OFF para SET DELETED e armazena o valor atual em cDele cDele = SET("DELETED") SET DELETED OFF *!* Armazena o nome da área de trabalho atual cArea = ALLTRIM(ALIAS()) *!* Armazena em cChave o nome do primeiro campo da tabela *!* Isto porque a função foi escrita de forma genérica para *!* ser utilizada com qualquer tabela. Neste caso, o campo de *!* chave primaria deve ser sempre o primeiro campo. cChave = ALLTRIM(FIELD(1)) cCampo = cArea + '.'+ cChave DECLARE cMaiorValor(1) cMaiorValor(1) = '0' *:*Utiliza uma instrucito SQL para encontrar c maior código *!*, na tabela e soma + 1 ao maior valor encontrado SELECT MAX(.&cCampo) FROM &cArea INTO ARRAY cMaiorValor *:* cRetorno = PADL(VAL(cMaiorValor(1))+1,LEN(GcCampo),'0') nMascara = Len(&cCampo) cMascara = "@L" + Replicate("9",nMascara) cRetorno = Transform(Val(cMaiorValor(1))+1,cMascara) *!*Define c Status Original de SET DELETED SET DELETED &cDele Return cRetorno