Re: PROBLEMAS CON ProgressDlg
Publicado: Jue Feb 11, 2010 12:30 am
Hola.
Yo realizo una ordenacion de la siguiente forma y la barra se muestra
correctamente. En XP y 7
oBarra es TProgressBar
oArchivo es TLabel
Cargo cOrigen con
Aadd( aOrigen,
{AppData:OrigendeDatos+"AFILIADO","NUMERO","NUMERO+ADHERENTE "})
Aproximadamente con 600 archivos. Tal vez por eso no noto nada mal, porque
el incremento de cada archivo es un porcentaje muy bajo.
Luego:
nCantidad := Len( aOrigen)
::oBarra:nMin := 1
::oBarra:nMax := nCantidad
cActual := ""
For nI := 1 to nCantidad
::oBarra:nValue := nI
cArchivo := aOrigen[nI][1]
cIndice := aOrigen[nI][1]+".CDX"
cTag := aOrigen[nI][2]
cClave := aOrigen[nI][3]
::oArchivo:cText := cArchivo
ProcessMessages()
If cActual != cArchivo // porque hay varios indices para el mismo
DBF
If File( cIndice )
fErase( cIndice )
EndIf
EndIf
cActual := cArchivo
// msgbox( cArchivo+chr(13)+cClave+chr(13)+cTag+chr(13)+cIndice )
If NetdbUSE(cArchivo,"TMP",3,,.T.,.F.)
INDEX ON &(cClave) TAG &(cTag) TO &(cIndice)
EndIf
dbCloseAll()
Next
MsgInfo("Ordenamiento completo","Ordenamiento")
::Close()
Espero que te sirva
Saludos
Juan Castañeda
Yo realizo una ordenacion de la siguiente forma y la barra se muestra
correctamente. En XP y 7
oBarra es TProgressBar
oArchivo es TLabel
Cargo cOrigen con
Aadd( aOrigen,
{AppData:OrigendeDatos+"AFILIADO","NUMERO","NUMERO+ADHERENTE "})
Aproximadamente con 600 archivos. Tal vez por eso no noto nada mal, porque
el incremento de cada archivo es un porcentaje muy bajo.
Luego:
nCantidad := Len( aOrigen)
::oBarra:nMin := 1
::oBarra:nMax := nCantidad
cActual := ""
For nI := 1 to nCantidad
::oBarra:nValue := nI
cArchivo := aOrigen[nI][1]
cIndice := aOrigen[nI][1]+".CDX"
cTag := aOrigen[nI][2]
cClave := aOrigen[nI][3]
::oArchivo:cText := cArchivo
ProcessMessages()
If cActual != cArchivo // porque hay varios indices para el mismo
DBF
If File( cIndice )
fErase( cIndice )
EndIf
EndIf
cActual := cArchivo
// msgbox( cArchivo+chr(13)+cClave+chr(13)+cTag+chr(13)+cIndice )
If NetdbUSE(cArchivo,"TMP",3,,.T.,.F.)
INDEX ON &(cClave) TAG &(cTag) TO &(cIndice)
EndIf
dbCloseAll()
Next
MsgInfo("Ordenamiento completo","Ordenamiento")
::Close()
Espero que te sirva
Saludos
Juan Castañeda