jef2_tim Posted April 29, 2004 Report Share Posted April 29, 2004 ola amigos... estou precisando de uma ajuda pra criar minha rotina de reindexacao do sisitema... estou meio sem material pra ver ond .. um help... se alguem puder me mandar um exemplo ou algo assim... valeu jef2_timber@hotmail.com Quote Link to comment Share on other sites More sharing options...
vagner Posted April 30, 2004 Report Share Posted April 30, 2004 Olá jef2_tim, aqui vai a rotina q uso, lógico q eu uso com a VMeter Executa a ordenação dos arquivos Ordena("Feriados" ,cArqu_Geral+"\Feriados",{cArqu_Geral+"\Feriados" },{"Filial+DtoS(Feriad)"},.T.) /*****************************************************************************/ /* Reorganizacao dos Arquivos */ /* Programador - Vagner Wirts */ /* Programa - Reorgani.Prg - Desenvolvimento 12/99 */ /*****************************************************************************/ // #Include "FiveWin.Ch" #Include "VMeter.Ch" Static nAtual1 := 0,nAtual2 := 0 Static oMeter1,oMeter2 /*--------------- Funcao para Reorganizar Arquivos DBF's -----------------*/ /* Parametros - cOpc_Reo - Titulo do Arquivo */ /* - cArq_Reo - Nome do Arquivo */ /* - cInd_Reo - Nome do Arquivo Indice */ /* - aTag_Reo - Nome dos Tags */ /* - aCha_Reo - Matriz Contendo as Variaveis dos Indexados */ /* - lFaz_Tem - Se Cria Arquivo Temporario ou Nao */ /* - aCon_Reo - Condicoes da Indexacao */ /*------------------------------------------------------------------------*/ Func Ordena(cOpc_Reo,cArq_Reo,cInd_Reo,aTag_Reo,aCha_Reo,lFaz_Tem,aCon_Reo) Local cTit_Reo Local oFon_Reo,oBmp_Reo,oTmr_Reo Default aCon_Reo := Array(Len(aCha_Reo)) nAtual1 := 0 nAtual2 := 0 Define Font oFon_Reo Name "Ms Sans Serif" Size 6 ,7 Define Font oFon_Cab Name "BaskerVille Win95BT" Size 12,24 Italic lFaz_Tem := Iif(ValType(lFaz_Tem)=="U",.T.,lFaz_Tem) cTit_Reo := "Ordenando : "+AllTrim(cOpc_Reo) Define BitMap oBmpRef Name "Papel" Define Dialog oReor From 0, 0 To 95,393 Title "Ordenando : "+cOpc_Reo Font oFon_Reo Pixel Style ( DS_MODALFRAME+WS_POPUP ) oReor:bPainted := { | hDC | PalBmpDraw( hDC, oReor:nLeft, oReor:nTop, oBmpRef:hBmpPal,oReor:nRight+2,oReor:nBottom+2),; Ordenar(cOpc_Reo,cArq_Reo,cInd_Reo,aTag_Reo,aCha_Reo,lFaz_Tem,aCon_Reo) } @ 01,01 SSay "Ordenando : "+cOpc_Reo Pixel Size 192,12 Center Of oReor Font oFon_Cab Color nRgb(191,191,191) Transparent @ 00,00 SSay "Ordenando : "+cOpc_Reo Pixel Size 192,12 Center Of oReor Font oFon_Cab Color nRgb(0,0,190) Transparent @ 12,02 VBitMap oBmp_Reo Name "Ordenaca" NoBorder Pixel Of oReor Size 34,34 lPri := .T. nPos := 1 Define Timer oTmr_Reo OF oWnd Interval 100 Action(nPos := oBmp_Reo:NovaPos(++nPos)) Activate Timer oTmr_Reo @ 22,42 VMeter oMeter1 Var nAtual1 Total 100 Size 150,14 Font oFon_Reo Of oReor Pixel BarColor nRgb(0,0,0),nRgb(255,0,0) Activate Dialog oReor Center Valid(!GetKeyState(VK_ESCAPE)) oFon_Reo:End() oFon_Cab:End() oBmp_Reo:End() oTmr_Reo:End() Close Data Retu("") /*---- Funcao para Ordenar Arquivos ----*/ Static Func Ordenar(cOpc_Reo,cArq_Reo,cInd_Reo,aTag_Reo,aCha_Reo,lFaz_Tem,aCon_Reo) Local cDrive := DbSetDriver() CursorWait() Do Whil .T. DbUseArea(.T.,Iif(cDrive=="DBFCDX","DbfCdx",""),cArq_Reo,"ArquAuxi",.F.) If Used() cAr1_Reo := oSistema:cArqu_Tempo+"\"+Right(cInd_Reo,8)+Iif(cDrive=="DBFCDX",".Cdx",".Ntx") cCh1_Reo := aCha_Reo[1] If lFaz_Tem oMeter1:nClrBar1 := nRgb(0,0,0) oMeter1:nClrBar2 := nRgb(0,255,0) oMeter1:cText := "Arrumando Arquivo" oMeter1:nTotal := LastRec() Inde On &cCh1_Reo To &cAr1_Reo Eval(CursorWait(),oMeter1:Set(Recno()),SysRefresh()) oMeter1:Set(0) SysRefresh() Endif If lFaz_Tem oMeter1:nClrBar1 := nRgb(0,0,0) oMeter1:nClrBar2 := nRgb(255,0,0) oMeter1:cText := "Arquivo Temporário" oMeter1:nTotal := LastRec() nNr_Maxi := LastRec() cArq := oSistema:cArqu_Tempo+"\Arq_A"+oSistema:cNr_Usuario Copy To (cArq) Whil Nr_Record() <= nNr_Maxi For !Deleted() Close ArquAuxi cAr0_Reo := cArq_Reo+".Dbf" Eras &cAr0_Reo SysRefresh() Endif cAr1_Reo := cInd_Reo+Iif(cDrive=="DBFCDX",".Cdx",".Ntx") Eras &cAr1_Reo If lFaz_Tem Rena (cArq+".Dbf") To &cAr0_Reo Endif DbUseArea(.T.,Iif(cDrive=="DBFCDX","DbfCdx",""),cArq_Reo,"ArquAuxi",.F.) oMeter1:nClrBar1 := nRgb(0,0,128) oMeter1:nClrBar2 := nRgb(128,255,255) For nXxx_Reo := 1 To Len(aCha_Reo) oMeter1:cText := AllTrim(Str(nXxx_Reo,3))+"º Arquivo Ãndice" oMeter1:Set(0) SysRefresh() oMeter1:nTotal := LastRec() cAr1_Reo := cInd_Reo cTag_Reo := aTag_Reo[nXxx_Reo] cCh1_Reo := aCha_Reo[nXxx_Reo] cCo1_Reo := aCon_Reo[nXxx_Reo] If ValType(cCo1_Reo) # "U" .and. cCo1_Reo # Nil .and. !Empty(cCo1_Reo) Inde On &cCh1_Reo Tag &cTag_Reo To &cAr1_Reo For (!Deleted() .and. &cCo1_Reo) Eval(CursorWait(),oMeter1:Set(Recno()),SysRefresh()) Else Inde On &cCh1_Reo Tag &cTag_Reo To &cAr1_Reo For !Deleted() Eval(CursorWait(),oMeter1:Set(Recno()),SysRefresh()) Endif Next Close ArquAuxi Exit Endif Enddo CursorArrow() oReor:End() Retu("") *---- Funcao para Colocar numero de Registros na Meter ----* Static Func Nr_Record() CursorWait() oMeter1:Set(Recno()) SysRefresh() Retu(Recno()) Espero q lhe ajude Abraços Vagner Wirts São Paulo-Brasil Quote Link to comment Share on other sites More sharing options...
jef2_tim Posted April 30, 2004 Author Report Share Posted April 30, 2004 Valeu vagner.. vou mexer la... obrigado Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.