Mejorar velccidad de carga del grip en fox 6.0
Buenas tengo el siguiente problema desde hace un tiempo acá se me puso pesada la aplicación al cargar el grip de los diferentes módulos de facturación, caja, inventario, etc, daré por ejemplo el código que tengo al accesar a caja esto en el procedimiento carga que cree y es le siguiente:
select TOP 100 caja.recibo, caja.atencion, caja.fecha_RECIB, caja.montoi, caja.montoe, caja.tipomovi, caja.n_caja ;
from caja;
where caja.n_caja = xn_caja;
order by caja.recibo desc;
into cursor xlista
select xlista
go top
thisform.grid1.recordSource = " "
thisform.grid1.RecordSourcetype = 4
thisform.grid1.recordSource = "Select * from xlista into cursor xcaja"
thisform.grid1.refresh
thisform.command1.setfocus
thisform.refresh
y este el código que coloque en el procedimiento init:
thisform.olecontrol1.Panels.Add(1,,"Usuario: "+NombreUsuario,,)
thisform.olecontrol1.Panels(1).AutoSize = 1 && sbrContents
thisform.olecontrol1.Panels.Add(2,,"Fecha: "+dtoc(date())+" ",,)
thisform.olecontrol1.Panels(2).AutoSize = 2 && sbrContents
Set Exact Off
Select Grupo_Usuario
Set Order To Codigo
Seek ("TMVC")
Do While substr(Grupo_Usuario.Codigo,1,4) = "TMVC" and !eof()
If Grupo_Usuario.Grupo = GrupoUsuario
formulario = "thisform.command"+substr(Grupo_Usuario.Codigo,5,1)+".enabled"
&formulario = .t.
EndIf
if eof()
exit
endif
skip
EndDo
Set Exact On
thisform.carga
return
Mi pregunta concisa es porque se tarda tanto en cargar y mostrar la información, la dbf que utiliza tiene ya 95841 registros al momento de postear esta pregunta, habrá otra forma de mejorar el tiempo de respuesta de la carga ya que se me hace una cola en la taquilla por lo lento del sistema cada vez que se realiza un recibo de pago y vuelve al formulario para actualizarse.
Este mismo método lo uso en otros módulos como facturación, inventario, etc.
Que idea o solución podrían darme, muy agradecido de antemano saludos.
select TOP 100 caja.recibo, caja.atencion, caja.fecha_RECIB, caja.montoi, caja.montoe, caja.tipomovi, caja.n_caja ;
from caja;
where caja.n_caja = xn_caja;
order by caja.recibo desc;
into cursor xlista
select xlista
go top
thisform.grid1.recordSource = " "
thisform.grid1.RecordSourcetype = 4
thisform.grid1.recordSource = "Select * from xlista into cursor xcaja"
thisform.grid1.refresh
thisform.command1.setfocus
thisform.refresh
y este el código que coloque en el procedimiento init:
thisform.olecontrol1.Panels.Add(1,,"Usuario: "+NombreUsuario,,)
thisform.olecontrol1.Panels(1).AutoSize = 1 && sbrContents
thisform.olecontrol1.Panels.Add(2,,"Fecha: "+dtoc(date())+" ",,)
thisform.olecontrol1.Panels(2).AutoSize = 2 && sbrContents
Set Exact Off
Select Grupo_Usuario
Set Order To Codigo
Seek ("TMVC")
Do While substr(Grupo_Usuario.Codigo,1,4) = "TMVC" and !eof()
If Grupo_Usuario.Grupo = GrupoUsuario
formulario = "thisform.command"+substr(Grupo_Usuario.Codigo,5,1)+".enabled"
&formulario = .t.
EndIf
if eof()
exit
endif
skip
EndDo
Set Exact On
thisform.carga
return
Mi pregunta concisa es porque se tarda tanto en cargar y mostrar la información, la dbf que utiliza tiene ya 95841 registros al momento de postear esta pregunta, habrá otra forma de mejorar el tiempo de respuesta de la carga ya que se me hace una cola en la taquilla por lo lento del sistema cada vez que se realiza un recibo de pago y vuelve al formulario para actualizarse.
Este mismo método lo uso en otros módulos como facturación, inventario, etc.
Que idea o solución podrían darme, muy agradecido de antemano saludos.
1 respuesta
Respuesta de tigrefox
1