| Титов Александр 
 
 
 Joined: 26 Jul 2002
 Posts: 975
 Location: Титов Александр Александрович
 Occupation: Компания БЭСТ
 Interests: Москва
 
 | 
			
				|  Posted: 12 Sep 2005 14:31    Post subject: Re: Нужна функция CreateTempIndex для 11x версий |   |  
				| 
 |  
				|  	  | itman wrote: |  	  | Есть необходимость плагин с 12 на 11 перебросить. Функция CreateTempIndex, я так понял не была реализована. | 
 Она только в 12, вот ее код:
 
 
  	  | Code: |  	  | FUNCTION CreateTempIndex(cNtxKey,cForKey,cNameTag) // Создание временных индексов
 // Только по одному тэгу в бэге
 Local nStep
 Local cTagName
 Local nProces:=Proces_Ini(,17,,'Построение вспомогательного индекса')
 Local n, bForKey, bNtxKey, aIndex, nPoz
 Local cNameNtx := TempFile(m->GlobalTmpPath,'CDX')
 nStep := IIf(LastRec()==0,1,INT( 54/LASTREC()))
 cNameTag := If(cNameTag==NIL, "TMP_TAG", cNameTag)
 cForKey := IF(EMPTY(cForKey),"!DELETE()"+IF(FieldPos("DELETE") != 0,".AND.!DELETE","")+IF(FieldPos("ARXIV") != 0,".AND.!ARXIV",""),"!DELETE() .AND."+IF(FieldPos("DELETE") != 0,"!DELETE.AND.","")+IF(FieldPos("ARXIV") != 0,"!ARXIV.AND.","")+" ("+cForKey+")")
 SetKeyIndex(@cForKey,@cNtxKey,@bForKey,@bNtxKey)
 IF (nPoz := ASCAN(aIndex := BsSaveIndex(),{|cNameIdx| UPPER(cNameIdx) == UPPER(cNameNtx) })) != 0
 ADEL(aIndex,nPoz)
 ASIZE(aIndex,LEN(aIndex)-1)
 BsClearIndex()
 BsRestIndex(aIndex)
 ENDIF
 FERASE(cNameNtx)
 
 dbGoTop()
 ordCondSet(cForKey,bForKey,NIL,,;
 ,;
 1,RECNO(),,,.T.,,.F.,,.T., .F., .F., .T., .F., .F.)
 
 IF(cTagName = NIL,cTagName := TOKEN(TOKEN(UPPER(cNameNtx),":\"),".",1),NIL)
 ordCreate(cNameNtx,cTagName,cNtxKey,bNtxKey)
 
 ORDSETFOCUS(cTagName)
 
 DBGOTOP()
 ReopenDbf()
 Proces_End(nProces)
 RETURN cNameNtx
 | 
 _________________
 С уважением, Александр Титов, Компания БЭСТ, Москва, отдел разрабо
 |  |