FoxPro/Visual FoxPro - Update refresh del grid

   
Vista:

Update refresh del grid

Publicado por Pablo (Argentina) (433 intervenciones) el 05/06/2009 14:22:07
Hola Amigos, Bueno les comento que el tema del update ya lo solucione, pero lo que no puedo solucionar y seguro es un tema de ubicacion correcta del codigo en un refresh al grid para que solo que me queden los datos que quiero despues de haber echo el update, ¿se entiende?. Me explico mejor

En el Init del form llamo a thisform.refrescagrilla, ahi adentro tengo el codigo del select para filtrar los datos del grid y los mando a un curso pagos, despues yo en el grid en un campo logico selecciono cual me pago .T. o cual no .F. y hago un update en un boton de comando que esta en el form para que se me graben los datos, hasta ahi funciona todo bien.
Ahora el tema es que cuando yo grabo los datos con un boton de comando mediante el update, despues quiero refrescar el grid y que solo me queden los datos del campo logico que yo quiero de acuerdo .T. o .F., pero no lo puedo hacer funcionar,

Donde tengo que poner el codigo para que me refresque el grid, en refresh del grid, en el del form o donde. Porque yo venia intentanto llamando de nuevo al thisform.refrescagrilla que a donde esta el select inicial que seria como me tendria que quedar de nuevo el grid una vez grabados los datos pero lo hace como a medias, eso quiere decir que le tengo que hacer 2 click al boton de guardar donde tengo el update, porque sera, que hago mal.

Bueno, desde ya muchas gracias a todos

Pablo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Update refresh del grid

Publicado por Jose Gamboa (33 intervenciones) el 08/06/2009 18:07:20
Hola!
Para resolver algo como comentas, lo que posiblemente este pasando es lo siguiente
En el metodo Init creas una tabla obviamente mediante una condicion where dentro de tu select
INIT:
select * from tablaX where tablaX.modificado = .F. into cursor Tabla2
donde el recordsource del grid en el form es el alias tabla2

cuando se actualiza el campo modificado por el valor .T. en el cursor tabla2 (cursor temporal) y en el cursor tablaX (que es la original) lo que se muestra en el formulario no cambia por la razon que el grid muestra toda la tabla2, para que solo muestre modificado = .F. se tiene que agregar una condicion general antes de hacer el refresh en el grid por ejemplo
select tabla2
set filter to modificado = .F.
thisform.refresh

o si se utiliza la opcion delete from tabla2 where modificado = .T. se tiene que agregar a la condicion general
set delete on
para que no muestre los registros borrados y de esta manera no se muestre en la tabla ya que mientras SET delete se encuentre en off los registros borrados se van a mostrar ya sea en un grid o ejecutando un browse una consulta o como sea
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar