I need to generate a serial for product that is alpha numeric. I send this function the Last Used Serial Number and have it increment it. I was wonder if anybody can come up with a more readable one
thanks
****************************************************
function tserial
LPARAMETERS lcSerial
LOCAL lnASCII
lnASCII = ASC(SUBSTRC(lcSerial,1,1))
DO CASE
CASE lnASCII = 32
return STRTRAN(lcSerial, CHR(lnASCII),CHR(48),1,1,1)
CASE lnASCII < 57
return STRTRAN(lcSerial, CHR(lnASCII), CHR(lnASCII+1), 1,1,1)
CASE lnASCII = 57
return STRTRAN(lcSerial, CHR(lnASCII), CHR(lnASCII+8), 1,1,1)
CASE lnASCII < 90
return STRTRAN(lcSerial, CHR(lnASCII), CHR(lnASCII+1), 1,1,1)
CASE lnASCII = 90
return (CHR(48) + tserial(SUBSTRC(lcSerial,2)))
ENDCASE
endfunc
*****************************************************
thanks
****************************************************
function tserial
LPARAMETERS lcSerial
LOCAL lnASCII
lnASCII = ASC(SUBSTRC(lcSerial,1,1))
DO CASE
CASE lnASCII = 32
return STRTRAN(lcSerial, CHR(lnASCII),CHR(48),1,1,1)
CASE lnASCII < 57
return STRTRAN(lcSerial, CHR(lnASCII), CHR(lnASCII+1), 1,1,1)
CASE lnASCII = 57
return STRTRAN(lcSerial, CHR(lnASCII), CHR(lnASCII+8), 1,1,1)
CASE lnASCII < 90
return STRTRAN(lcSerial, CHR(lnASCII), CHR(lnASCII+1), 1,1,1)
CASE lnASCII = 90
return (CHR(48) + tserial(SUBSTRC(lcSerial,2)))
ENDCASE
endfunc
*****************************************************