barra de progreso

09/08/2004 - 19:04 por David Ponce | Informe spam
Hola, encontré esta excelente barra de progreso:

http://www.portalfox.com/modules.ph...le&sid…0

Pero quiero implementarla en un procedimiento como este: (que no hace falta
que lo revisen todo, solo es para actualizar saldos), lo que pasa es que
solo lo hace una vez y en el progress bar, está para iteraciones, ¿como
puedo adaptarlo para que me haga la actualización en las tablas?

SELECT * from vcgcompro WHERE !aplicado INTO CURSOR test
IF _tally>0
thisform.fun1.msg("Existen partidas sin mayorizar, aplíquelas o
elimínelas")
ELSE
SELECT * from vcgcompro WHERE !cuadra INTO cursor test2
IF _tally>0
thisform.fun1.msg("Existen partidas sin cuadrar, arréglelas o elimínelas")
ELSE
WAIT WINDOW NOWAIT "Trasladando movimientos a archivos históricos"
SELECT vcgcompro
GO top
DO WHILE !EOF()
SCATTER memvar
SELECT vcghcompr
APPEND BLANK
GATHER memvar
SELECT vcgcompro
SKIP
ENDDO
SELECT vcgmovimi
GO top
DO WHILE !EOF()
SCATTER memvar
SELECT vcghmovim
APPEND BLANK
GATHER memvar
SELECT vcgmovimi
SKIP
ENDDO
&&Fomrando nombres de campo con los meses
me=vempresa.mesejer
mm=LEFT(thisform.fun1.meses(me),3)
cargosm="C"+mm
abonosm="A"+mm
&&Actualizando el Histórico
WAIT WINDOW NOWAIT "Actualizando Saldos"
SELECT vcgcatalogo
DO WHILE !EOF()
SCATTER memvar
&&las siguientes 3 líneas las agregue para que actualice
&&los campos del catalogo de cuentas para los reportes historicos
REPLACE &mm WITH saldo_ant
replace &cargosm WITH m.cargos
REPLACE &abonosm WITH m.abonos
SELECT vcghisto
LOCATE FOR codigo=m.codigo
IF FOUND()
replace &cargosm WITH m.cargos
REPLACE &abonosm WITH m.abonos
REPLACE posteable WITH m.posteable
REPLACE natura WITH m.natura
REPLACE tipo WITH m.tipo
ELSE
INSERT INTO vcghisto
(empresa,codigo,nombre,posteable,&cargosm,&abonosm,tipo,natura) values;

(vempresa.numero,m.codigo,m.nombre,m.posteable,m.cargos,m.abonos,m.tipo,m.na
tura)
ENDIF
SELECT vcgcatalogo
skip
ENDDO

SELECT vempresa
REPLACE corr WITH 0.00
REPLACE mesejer WITH mesejer+1
IF me
REPLACE anoejer WITH anoejer+1
REPLACE mesejer WITH 1
ENDIF

SELECT vcgcatalogo
REPLACE ALL saldo_ant WITH (saldo_ant + saldo_mes)
REPLACE ALL egreso_ano WITH (egreso_ano + egreso_mes)
REPLACE ALL cargos_dia WITH 0.00
REPLACE ALL abonos_dia WITH 0.00
REPLACE ALL cargos WITH 0.00
REPLACE ALL abonos WITH 0.00
REPLACE ALL saldo_mes WITH 0.00
REPLACE ALL egreso_mes WITH 0.00

IF me
WAIT WINDOW NOWAIT "Efectuando cierre anual"
SELECT vcgcatalogo
GO TOP
DO WHILE !EOF()
SCATTER memvar
SELECT vcghisto
LOCATE FOR codigo=m.codigo
IF FOUND()
REPLACE saldo_ant WITH m.saldo_ant
ENDIF
SELECT vcgcatalogo
skip
ENDDO
SELECT cghisto

REPLACE cene WITH 0.00, cfeb WITH 0.00, cmar with 0.00, cabr WITH 0.00,;
cmay WITH 0.00, cjun WITH 0.00, cjul WITH 0.00, cago WITH 0.00, csep WITH
0.00,;
coct WITH 0.00, cnov WITH 0.00, cdic WITH 0.00

REPLACE aene WITH 0.00, afeb WITH 0.00, amar with 0.00, aabr WITH 0.00,;
amay WITH 0.00, ajun WITH 0.00, ajul WITH 0.00, aago WITH 0.00, asep WITH
0.00,;
aoct WITH 0.00, anov WITH 0.00, adic WITH 0.00

SELECT vcgcatalogo

REPLACE egreso_ano WITH 0.00 FOR tipo="R"
REPLACE saldo_ant WITH 0.00 FOR tipo="R"

SELECT vempresa
REPLACE corr WITH 0.00
endif

SELECT vcgcompro
DELETE ALL
SELECT vcgmovimi
DELETE all
WAIT WINDOW NOWAIT "Aplicando registros"
=TABLEUPDATE(.t.,.t.,"vcgcatalogo")
=TABLEUPDATE(.t.,.t.,"vcgcompro")
=TABLEUPDATE(.t.,.t.,"vcgmovimi")
=TABLEUPDATE(.t.,.t.,"vcghisto")
=TABLEUPDATE(.t.,.t.,"vcghmovim")
=TABLEUPDATE(.t.,.t.,"vcghcompr")
=TABLEUPDATE(.t.,.t.,"vempresa")

WAIT WINDOW "Fin del Proceso" TIMEOUT 2
ENDIF
ENDIF


gracias

David
 

Leer las respuestas

#1 Ana María Bisbé York
09/08/2004 - 23:05 | Informe spam
Hola David:

Mira por acá, quizás lo puedas adaptar.

Luis María Guayán

Como mostrar el porcentaje de ejecución de un comando SELECT o USE VIEW
Enviado por: Luis Maria Guayán
http://www.portalfox.com/article.php?sidF




Saludos,

Ana
www.amby.net

"David Ponce" escribió en el mensaje
news:
Hola, encontré esta excelente barra de progreso:




http://www.portalfox.com/modules.ph...&sid=8
50

Pero quiero implementarla en un procedimiento como este: (que no hace


falta
que lo revisen todo, solo es para actualizar saldos), lo que pasa es que
solo lo hace una vez y en el progress bar, está para iteraciones, ¿como
puedo adaptarlo para que me haga la actualización en las tablas?

SELECT * from vcgcompro WHERE !aplicado INTO CURSOR test
IF _tally>0
thisform.fun1.msg("Existen partidas sin mayorizar, aplíquelas o
elimínelas")
ELSE
SELECT * from vcgcompro WHERE !cuadra INTO cursor test2
IF _tally>0
thisform.fun1.msg("Existen partidas sin cuadrar, arréglelas o


elimínelas")
ELSE
WAIT WINDOW NOWAIT "Trasladando movimientos a archivos históricos"
SELECT vcgcompro
GO top
DO WHILE !EOF()
SCATTER memvar
SELECT vcghcompr
APPEND BLANK
GATHER memvar
SELECT vcgcompro
SKIP
ENDDO
SELECT vcgmovimi
GO top
DO WHILE !EOF()
SCATTER memvar
SELECT vcghmovim
APPEND BLANK
GATHER memvar
SELECT vcgmovimi
SKIP
ENDDO
&&Fomrando nombres de campo con los meses
me=vempresa.mesejer
mm=LEFT(thisform.fun1.meses(me),3)
cargosm="C"+mm
abonosm="A"+mm
&&Actualizando el Histórico
WAIT WINDOW NOWAIT "Actualizando Saldos"
SELECT vcgcatalogo
DO WHILE !EOF()
SCATTER memvar
&&las siguientes 3 líneas las agregue para que actualice
&&los campos del catalogo de cuentas para los reportes historicos
REPLACE &mm WITH saldo_ant
replace &cargosm WITH m.cargos
REPLACE &abonosm WITH m.abonos
SELECT vcghisto
LOCATE FOR codigo=m.codigo
IF FOUND()
replace &cargosm WITH m.cargos
REPLACE &abonosm WITH m.abonos
REPLACE posteable WITH m.posteable
REPLACE natura WITH m.natura
REPLACE tipo WITH m.tipo
ELSE
INSERT INTO vcghisto
(empresa,codigo,nombre,posteable,&cargosm,&abonosm,tipo,natura) values;




(vempresa.numero,m.codigo,m.nombre,m.posteable,m.cargos,m.abonos,m.tipo,m.na
tura)
ENDIF
SELECT vcgcatalogo
skip
ENDDO

SELECT vempresa
REPLACE corr WITH 0.00
REPLACE mesejer WITH mesejer+1
IF me
REPLACE anoejer WITH anoejer+1
REPLACE mesejer WITH 1
ENDIF

SELECT vcgcatalogo
REPLACE ALL saldo_ant WITH (saldo_ant + saldo_mes)
REPLACE ALL egreso_ano WITH (egreso_ano + egreso_mes)
REPLACE ALL cargos_dia WITH 0.00
REPLACE ALL abonos_dia WITH 0.00
REPLACE ALL cargos WITH 0.00
REPLACE ALL abonos WITH 0.00
REPLACE ALL saldo_mes WITH 0.00
REPLACE ALL egreso_mes WITH 0.00

IF me
WAIT WINDOW NOWAIT "Efectuando cierre anual"
SELECT vcgcatalogo
GO TOP
DO WHILE !EOF()
SCATTER memvar
SELECT vcghisto
LOCATE FOR codigo=m.codigo
IF FOUND()
REPLACE saldo_ant WITH m.saldo_ant
ENDIF
SELECT vcgcatalogo
skip
ENDDO
SELECT cghisto

REPLACE cene WITH 0.00, cfeb WITH 0.00, cmar with 0.00, cabr WITH


0.00,;
cmay WITH 0.00, cjun WITH 0.00, cjul WITH 0.00, cago WITH 0.00, csep


WITH
0.00,;
coct WITH 0.00, cnov WITH 0.00, cdic WITH 0.00

REPLACE aene WITH 0.00, afeb WITH 0.00, amar with 0.00, aabr WITH


0.00,;
amay WITH 0.00, ajun WITH 0.00, ajul WITH 0.00, aago WITH 0.00, asep


WITH
0.00,;
aoct WITH 0.00, anov WITH 0.00, adic WITH 0.00

SELECT vcgcatalogo

REPLACE egreso_ano WITH 0.00 FOR tipo="R"
REPLACE saldo_ant WITH 0.00 FOR tipo="R"

SELECT vempresa
REPLACE corr WITH 0.00
endif

SELECT vcgcompro
DELETE ALL
SELECT vcgmovimi
DELETE all
WAIT WINDOW NOWAIT "Aplicando registros"
=TABLEUPDATE(.t.,.t.,"vcgcatalogo")
=TABLEUPDATE(.t.,.t.,"vcgcompro")
=TABLEUPDATE(.t.,.t.,"vcgmovimi")
=TABLEUPDATE(.t.,.t.,"vcghisto")
=TABLEUPDATE(.t.,.t.,"vcghmovim")
=TABLEUPDATE(.t.,.t.,"vcghcompr")
=TABLEUPDATE(.t.,.t.,"vempresa")

WAIT WINDOW "Fin del Proceso" TIMEOUT 2
ENDIF
ENDIF


gracias

David


Preguntas similares