*    TabLists    Leasing   
*
*TableName (10) -   ( DBF)   
*LastID I -        
*
*************************************************************
*         alias
*************************************************************
*
*tcAlias -          ID
*************************************************************
* 
*   ,   ID
*  ,   NULL
*************************************************************
*
*       NOT NULL, 
*    ID      
*  ID    
*************************************************************
FUNCTION NewID(tcAlias)
  LOCAL lcAlias
  IF TYPE("tcAlias")<>"C" OR EMPTY(m.tcAlias)=.T.
    lcAlias = UPPER(ALIAS())
  ELSE
    lcAlias = UPPER(AllTrim(m.tcAlias))
  ENDIF

  LOCAL lnNewID
  lnNewID=NULL
  
  *     
  LOCAL lcReprocess, lnArea, lcError, llIsUsedTabLists
  lnArea = SELECT()
  lcReprocess = SET('REPROCESS')
  SET REPROCESS TO 3
  lcError=ON("ERROR")
  ON ERROR *	&&     
  llIsUsedTabLists=USED("TabLists")
  
  *     ,   
  IF m.llIsUsedTabLists=.F.
    USE Leasing!TabLists IN 0
  ENDIF
  
  *         TabLists.TableName
  *      
  IF USED("TabLists")=.T. AND LEN(m.tcAlias)<LEN(TabLists.TableName)
  	m.tcAlias=PADR(m.tcAlias,LEN(TabLists.TableName))
  ENDIF

  * ,        
  *       ID  
  *         
  *        
  *  ActiveX 
  IF USED("TabLists")=.T. AND SEEK(m.lcAlias,"TabLists","TableName")=.T. AND ;
  		ISRLOCKED(RECNO("TabLists"),"TabLists")=.F. AND RLOCK("TabLists")=.T.
    SELECT TabLists
    REPLACE TabLists.LastID WITH TabLists.LastID+1
	IF CursorGetProp('buffering','TabLists')>1 AND TableUpdate(.F.,.T.,'TabLists')=.F.
	  *          
	  *  ,    ,     
	  *   
      TableRevert(.F.,'TabLists')
    ELSE
	  lnNewID=TabLists.LastID
	ENDIF
	UNLOCK RECORD RECNO("TabLists") IN TabLists
  ENDIF
  
  *    
  IF m.llIsUsedTabLists=.F.
  	USE IN TabLists
  ENDIF
  SELECT (m.lnArea)
  SET REPROCESS TO m.lcReprocess
  ON ERROR &lcError
  
  RETURN m.lnNewID
ENDFUNC
*************************************************************
*          alias
*************************************************************
