FoxPro/Visual FoxPro - Limpiar Grid

 
Vista:

Limpiar Grid

Publicado por RobertoM (5 intervenciones) el 28/07/2003 09:53:19
Por favor:
He puesto la propiedad RecordSourceType de una Grid a 1 (alias)
La he definido con 2 columnas (con sus respectivos TEXT) en tiempo de diseño.
Lleno ;a la grid a traves de un boton de comando en el evento click de éste donde genero el cursor a traves de un "Select * from tabla into cursor micursor".
La primera vez carga normal y puedo usar el evento CLICK de los TEXT, pero la segunda vez que cargo la grid los TEXT de ls 2 columnas se han destruido a pesar de que se visualizan los datos. Pero yo necesito seguir usando el vento click de los TEXT,
Si algien puede sugerirme lguna solución le agradeceré mucho.
Gracias.
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:Limpiar Grid

Publicado por Carlos Restrepo (113 intervenciones) el 28/07/2003 17:29:42
Ahi te envio la forma como yo lo hago:
create dos metodos en la grilla
PreservarColumnas y RestaurarColumnas.

El código de cada método es el siguiente:

*-- Grid::PreservarColumnas
LOCAL lo
FOR EACH lo IN THIS.COLUMNS
STORE lo.CONTROLSOURCE TO ("lo."+lo.CURRENTCONTROL+".Tag")
ENDFOR
THIS.TAG = THIS.RECORDSOURCE
THIS.RECORDSOURCE=""

*-- Grid::RestaurarColumnas
LPARAMETERS lcAlias && si no está en la grilla debe especificarse acá
LOCAL lo, lc
THIS.RECORDSOURCE = IIF(NOT EMPTY(lcAlias),lcAlias,THIS.TAG)
FOR EACH lo IN THIS.COLUMNS
lc = EVAL("lo."+lo.CURRENTCONTROL+".Tag")
IF NOT EMPTY(lc)
IF NOT '.'$lc && sin alias asignado: lo asigna ahora
lc = THIS.RECORDSOURCE+'.'+lc
ENDIF
lo.CONTROLSOURCE = lc
ENDIF
ENDFOR

Entonces el código en nuestro formulario conteniendo la grilla quedaría de la siguiente manera:

ThisForm.Grid1.PreservarColumnas()
ThisForm.Grid1.Tag = ThisForm.Grid1.RecordSource
ThisForm.Grid1.RecordSource = ""

SELECT .... FORM ... INTO CURSOR ...
*-- o PACK

ThisForm.Grid1.RecordSource = ThisForm.Grid1.Tag

ThisForm.Grid1.RestaurarColumnas()
ThisForm.Grid1.Refresh

espero te sirva
chao
carlos restrepo
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