SoloCodigo

Programación General => Visual FoxPro => Mensaje iniciado por: Leon en Viernes 6 de Junio de 2003, 08:01

Título: Re: Aplicacion de Filtros
Publicado por: Leon en Viernes 6 de Junio de 2003, 08:01
Hola de nuevo soy yo otra vez, ahora con lo suguiente, tengo una tabla de alumnos, pero en cierto momento necesito, aplicar tres filtros, a la tabla al mismo tiempo. Uno para clave de la materia, otro de periodoy otro de año, los tres juntos me dan, como resultado la lista de alumnos de una materia especifica. El problema es que solo me respeta un filtro no importa cual sea, simpre es uno, no los tres al mismo tiempo.

Este es el codigo que utilizo:

select alumnos
go top

if !empty(mperiodofil)
   set filter to ALLTRIM(UPPER(periodo))=ALLTRiM(UPPER(mperiodofil))
endif

if !empty(mcve_actfil)
   set filter to ALLTRIM(Upper(cve_act))=ALLTRIM(UPPER(mcve_actfil))
endif

if !empty(mañofil)
   set filter to año=mañofil
endif
thisform.release

Se supone que una vez aplicado el filtro, se mantiene anque se cierre el formulario donde se genero.
Título: Re: Aplicacion de Filtros
Publicado por: Plinio en Sábado 7 de Junio de 2003, 02:19
Estas cerrando el formulario la tabla?

Por si acaso estas usando el Data Enviroment?
Título: Aplicacion de Filtros
Publicado por: SUMANDO en Jueves 28 de Agosto de 2003, 15:43
Hola, cambié un poco tu código, revisa si esto te sirve:

SELECT ALUMNOS
GO TOP
XFILTER = ""
IF !EMPTY(MPERIODOFIL)
   XFILTER = "ALLTRIM(UPPER(PERIODO))=ALLTRIM(UPPER(MPERIODOFIL))"
ENDIF
IF !EMPTY(MCVE_ACTFIL)
   XFILTER = IIF(EMPTY(XFILTER),""," AND ")+;
      "ALLTRIM(UPPER(CVE_ACT))=ALLTRIM(UPPER(MCVE_ACTFIL))"
ENDIF
IF !EMPTY(MAÑOFIL)
   XFILTER = IIF(EMPTY(XFILTER),""," AND ")+;
      "AÑO=MAÑOFIL"
ENDIF
SET FILTER TO &XFILTER
THISFORM.RELEASE

=============================
PREGUNTA: ¿No te conviene más usar vistas?