Jump to content
Fivewin Brasil

Barra prograciva de reindexacao


jef2_tim

Recommended Posts

Olá jef2_tim,

aqui vai a rotina q uso, lógico q eu uso com a VMeter icon_smile.gif

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 icon_smile_big.gif

Abraços

Vagner Wirts

São Paulo-Brasil

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...