La Web del Programador: Comunidad de Programadores
 
    Pregunta:  1898 - AYUDA EN GRID DE VFP5.0
Autor:  osbaldo ramirez
NECESITO AYUDA

TENGO UN UNOS 4 TEXTBOX PARA LLENAR UN GRID QUE ESTA ABAJO DE ELLOS,ESTE GRID TIENE UNA TABLA TENGO BOTONES GUARDAR, ELIMINAR.

LLENO LOS TEXTBOX Y OPRIMO GUARDAR ESTO HACE QUE LA INFORMACION SE ALMACENE EN LA TABLA QUE TIENE EL GRID, Y SE VISUALICE. HASTA AQUI ESTA BIEN

PROBLEMA:
ES QUE AL SELECCIONAR UN REGISTRO OPRIMO ELIMINAR Y SI ELIMINA DE LA BASE DE DATOS, PERO EL GRID NO SE ACTUALIZA, INCLUSO SE PONE TODO EN BLANCO.
Y NO SE VE NADA. YA UTILICE REFRESH Y NO FUNCIONA NECESITO AYUDA DE VERDAD HE LEIDO OTRAS AYUDAS PERO NADIE TE DICE COMO.

ESPERO UN GRANITO DE AYUDA.
GRACIAS

  Respuesta:  Carlos Julio Cardozo Santa
** Antes de cargar el programa que hace la grilla, deberá colocar:

SET DELETE OFF && Para que los registros eliminados no se visualicen
SET REFRESH TO 1,1 && Para que los intervalos de refresco en la grilla
***&& se ejecuten a este tiempo.
** ejecute el programa de grilla y me cuentas. Caho

Tema completo de ayuda.
SET REFRESH (Comando)

Vea también

Determina si su pantalla mostrará o no los cambios que hagan en los registros otros usuarios de la red.

Sintaxis

SET REFRESH TO <expN1>
[, <expN2>]

Comentarios

Las tablas pueden abrirse en una red para uso compartido. Es posible que los registros que está visualizando, estén siendo editados por otros usuarios de la red. Utilice
SET REFRESH para especificar si las ventanas Examinar se actualizarán cuando otros usuarios de la red hagan cambios.
SET REFRESH afecta a los registros visualizados en una ventana Examinar, abierta con BROWSE, CHANGE o EDIT. Los campos memo abiertos para edición en una
ventana Examinar también se modifican. SET REFRESH especifica con que frecuencia se actualizan estas ventanas.
SET REFRESH puede utilizarse también para especificar con que frecuencia se actualizan los datos de su estación de trabajo mediante el búfer local.

Cláusulas

<expN1>

La expresión numérica <expN1> especifica con qué frecuencia se actualiza una ventana de edición de memos o Examinar. <expN1> es el número de segundos entre
actualizaciones y puede ser un valor entre 0 y 3.600; el valor predeterminado es 0 segundos. Cuando <expN1> es un valor distinto de cero y otros usuarios cambian los
registros que usted está viendo, los registros que usted está viendo se actualizarán cuando transcurra el intervalo de refresco. No se actualizarán los registros que está
viendo si <expN1> es 0.
FoxPro intentará bloquear un registro cuando usted intente modificar un registro en una ventana Examinar. Independientemente del ajuste de SET REFRESH, si el
registro que intenta bloquear está bloqueado por otro usuario de la red, recibirá el registro actualizado cuando el otro usuario libere el bloqueo. También podrá aparecer
el mensaje "Registro modificado".

<expN2>

Las versiones de red de FoxPro almacenan parte de las tablas en el búfer de memoria de su estación de trabajo. <expN2> especifica con qué frecuencia se actualizan
estos búfers de datos con los datos actuales de la red. <expN2> es el número de segundos entre las actualizaciones del búfer. El valor predeterminado de <expN2> es
5; puede especificar un valor entre 0 y 36.000. Los búfers no se refrescarán nunca si <expN2> es 0.
Si especifica un valor para <expN1> distinto de 0, pero no incluye <expN2>, <expN2> se establecerá con el mismo valor que <expN1>. Sin embargo, <expN2> se
establecerá a 5 si especifica 0 para <expN1> y no incluye <expN2>.
Puede mejorarse el rendimiento aumentando el valor de <expN2>.

  Respuesta:  Levi Granda Garcia
a mi me paso lo mismo ...y realize lo siguiente para solucionar el problema:

solo debes posicionate al inicio de la tabla despues que hayas borrado el registro:

sele tabla
if recno()>0
delete
else
tablerevert(.f.)
endif
go top
thisform.grid.refresh

  Respuesta:  Antonio H. Morán
En verdad lo que esta pasando es que, durante el proceso la tabla se esta cerrando, lo que tiene que hacer es verificar en que parte del proceso se cierra la tabla, y evitar que se cierre. En los grid cuando la tabla se cierra no tiene de donde tomar la informacion por esta razon se pone en blanco...

  Respuesta:  Juan Montiel
Eso es algo muy sencillo.., con lo que estas realizando debe desaparecer el registro del Grid, claro siempre y cuando el grid este linkeado a la tabla de la que borras.

solo ejecuta
=thisform.grid.refresh()

Con eso ya no aparecera el registro borrado...., logicamente la intruccion SET DELETE debe de estar activa.(ON)

No debes tener problemas..., de ser asi escribeme.

  Respuesta:  eye
Holasssamigos:
Al parecer en vez de eliminar un registro estas eliminado la tabla. Fijate bien si eso ocurre. La solución si es que eliminar la tabla está en tus planes es:

THISFORM.Grid1.rowSource = ""
** ahora va el codigo de eliminacion

De esta forma el grid no se pondra blanco.
Si es que ese no es el problema, sería mejor que me mandes el código que utilizas para la eliminación del registro.

Chau.-