FoxPro/Visual FoxPro - SET FILTER EN GRID CON ERROR DE VARIABLE X1

 
Vista:
sin imagen de perfil
Val: 313
Bronce
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

SET FILTER EN GRID CON ERROR DE VARIABLE X1

Publicado por Jose Francisco (166 intervenciones) el 11/09/2018 17:36:14
Hola estimados, estuve probando un ejemplo y funciona , lo único que cuando termina de filtrar y bajo el mouse, me da el siguiente error :
No existe la variable x1. (el código está en el texto8 en interactivechange)
(Pero el filtro lo hace muy bien)
Adjunto código y foto con el error:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
x=alltrim(thisform.texto8.Value)
x=UPPER(x)
x1=UPPER(x)
Thisform.Refresh
select XPELU
if empty(x1)
 
SET FILTER TO
ELSE
 
SET FILTER TO x1$xpelu.intervin
 
ENDIF
 
go top
Thisform.Grid5.Refresh
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
sin imagen de perfil
Val: 1.011
Oro
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

SET FILTER EN GRID CON ERROR DE VARIABLE X1

Publicado por Fidel José (657 intervenciones) el 11/09/2018 23:47:39
Debes tener en cuenta que el filtro implementado con SET FILTER tiene que ser, de alguna manera PUBLIC para el entorno en que accedes a la tabla filtrada. En tu caso, x1 es una variable PRIVATE (porque no está definida) por lo que solo vale para el procedimiento que la crea y los subalternos. Cuando enfocas el grid la variable no es accesible, aún cuando siga existiendo.

No recomiendo el uso de SET FILTER salvo para cursores o tablas locales. Pero podrías intentar crear una propiedad del form.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
x = UPPER(alltrim(thisform.texto8.Value))
 
*!*	x=UPPER(x)
*!*	x1=UPPER(x)
*!*	Thisform.Refresh
 
select XPELU
if empty(x1)
	SET FILTER TO
 
ELSE
	ADDPROPERTY(thisform,"gCond_Filter",x)
	SET FILTER TO THISFORM.gCondFilter $ xpelu.intervin
ENDIF
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil
Val: 313
Bronce
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

SET FILTER EN GRID CON ERROR DE VARIABLE X1

Publicado por Jose Francisco (166 intervenciones) el 12/09/2018 00:29:20
Hola Sr Fidel, utilizo tablas locales.
Observé que ud explicó en otro caso con addproperty , pero no lo pude resolver.-
Entonces gracias a su contestación de éste, recién declaré como Public x1 en mi prg pincipal y FUNCIONÓ, no me da más el error.-
(La había probado como variable local pero no funcionaba)
Mi sistema es para una Veterinaria y por ahora programo con tablas locales.-
En entorno de Access utilicé sql pero para mi fue limitado ya que nunca pude adaptarme a Visual Basic.-
Programé bastante en Acces sólo,,pero luego fueron cambiando las arquitecturas de las PC de 32 a 64 bits.-
En cambio FOXPRO 9 es donde más me puedo adaptar más ya que antes yo programaba en clipper.-
Además foxpro 9 funciona desde windows xp al windows 10 presente donde yo actualmente programo, y en 32 y 64 bits.
A futuro programaré con tablas de base de datos y sql y necesitaré alguna instrucción.-
Gracias por resolverme el caso, un verdadero maestro.-
Saludos.-
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