Page 1 of 1

FILTRO

Posted: Wed Sep 06, 2017 8:54 pm
by abinfra
Buenas.
Tengo una aplicación recuperada de Clipper y desearía saber como hacer un filtrado de los registro de una base de datos que contengan unos caracteres. Por ejemplo tengo la base de datos "Almacen" (de artículos) y deseo hacer un filtrado de todos los registros que el campo "Concepto" contenga la palabra "tubo".

Había pensado en:
PRIVATE cBus:="Tubo"
Almacen es el nombre de la base de datos.

SET FILTER TO Almacen-->(DBSEEK(cBus))

Pero no funciona.

Re: FILTRO

Posted: Wed Sep 06, 2017 9:34 pm
by edk
Try:

Code: Select all

SET FILTER TO LIKE( "*TUBO", Upper( concepto ) )
Or
SET FILTER TO "TUBO"$Upper( concepto )
Or
SET FILTER TO At( "TUBO", Upper( concepto ) )>0
 

Re: FILTRO

Posted: Wed Sep 06, 2017 11:41 pm
by luisvasquezcl
Try
Ser filter to rat( cbus, concepto ) != 0

Re: FILTRO

Posted: Thu Sep 07, 2017 5:17 am
by abinfra
Gracias edk y luis.

edk, de las tres opciones la única que me funciona es la última:
SET FILTER TO At( Upper(cBus), Upper( concepto ) )>0

Luis, tu opción solo toma uno de los varios registros que contiene lo que busco, en este caso "tubo".

Saludos cordiales.


P.D.
No se si tiene algo que ver que esté utilizando DBEDIT(), para que no me funcionen todas vuestras sugerencias.

Re: FILTRO

Posted: Fri Sep 08, 2017 4:43 pm
by ASESORMIX
Hay otra opcion: Usando indice con FOR y/ó WHILE

Re: FILTRO

Posted: Sat Sep 09, 2017 6:50 am
by abinfra
Hola ASESORMIX, entiendo lo de FOR y/o WHILE, pero que instrucción o función se usaría para ir añadiendo registros al filtro?
Saludos cordiales.

Re: FILTRO

Posted: Mon Sep 11, 2017 2:13 pm
by BeGeS
No sé si ya lo habrás solucionado. Por si acaso, yo lo haría así:

SELECT Almacen

SET FILTER TO "TUBO" $ UPPER(Almacen->Concepto)

[[AQUÍ, LAS FUNCIONES DE LECTURA DEL FICHERO, DONDE SOLO SALDRÍAN TUS "TUBOS" :mrgreen: ]]

SET FILTER TO

Re: FILTRO

Posted: Tue Sep 12, 2017 3:28 pm
by abinfra
Gracias BeGeS.
Me funcionan las dos siguientes:

SET FILTER TO AT(cBusCon, UPPER( Concepto ) )>0
SET FILTER TO cBusCon $ UPPER(Almacen->Concepto)

Saludos cordiales.