NewID Function
Expand/Collapse source code of procedure NewID Source Code
  LPARAMETERS tcAlias
  LOCAL lcAlias, ;
        lcID, ;
        lcOldReprocess, ;
        lnOldArea

  lnOldArea = SELECT()

  IF PARAMETERS() < 1
    lcAlias = UPPER(ALIAS())
  ELSE
    lcAlias = UPPER(tcAlias)
  ENDIF

  lcID = ""
  lcOldReprocess = SET('REPROCESS')

  *-- Lock until user presses Esc
  SET REPROCESS TO AUTOMATIC

  IF !USED("SETUP")
    USE tastrade!setup IN 0
  ENDIF
  SELECT setup

  IF SEEK(lcAlias, "setup", "key_name")
    IF RLOCK()
      lcID = setup.value
      REPLACE setup.value WITH ;
              STR(VAL(ALLT(lcID)) + 1, LEN(setup.value))
      UNLOCK
    ENDIF
  ENDIF

  SELECT (lnOldArea)
  SET REPROCESS TO lcOldReprocess

  RETURN lcID