FILTRO

HMG en Español

Moderator: Rathinagiri

Post Reply
abinfra
Posts: 59
Joined: Sat Jan 25, 2014 7:25 am
DBs Used: DBF

FILTRO

Post by abinfra » Wed Sep 06, 2017 8:54 pm

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.

edk
Posts: 140
Joined: Thu Oct 16, 2014 11:35 am
Location: Poland
Has thanked: 39 times
Been thanked: 77 times

Post by edk » Wed Sep 06, 2017 9:34 pm

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
 

User avatar
luisvasquezcl
Posts: 1021
Joined: Thu Jul 31, 2008 3:23 am
Location: Chile
Has thanked: 11 times
Been thanked: 14 times
Contact:

Post by luisvasquezcl » Wed Sep 06, 2017 11:41 pm

Try
Ser filter to rat( cbus, concepto ) != 0

abinfra
Posts: 59
Joined: Sat Jan 25, 2014 7:25 am
DBs Used: DBF

Post by abinfra » Thu Sep 07, 2017 5:17 am

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.

ASESORMIX
Posts: 59
Joined: Thu Oct 25, 2012 8:08 pm
Location: Bqto, Venezuela
Been thanked: 4 times

Post by ASESORMIX » Fri Sep 08, 2017 4:43 pm

Hay otra opcion: Usando indice con FOR y/ó WHILE

abinfra
Posts: 59
Joined: Sat Jan 25, 2014 7:25 am
DBs Used: DBF

Post by abinfra » Sat Sep 09, 2017 6:50 am

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.

User avatar
BeGeS
Posts: 81
Joined: Fri Jul 14, 2017 10:45 am
DBs Used: DBF
Location: La Mancha, Spain
Has thanked: 15 times
Been thanked: 13 times

Post by BeGeS » Mon Sep 11, 2017 2:13 pm

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
I get by with a little help from my friends

abinfra
Posts: 59
Joined: Sat Jan 25, 2014 7:25 am
DBs Used: DBF

Post by abinfra » Tue Sep 12, 2017 3:28 pm

Gracias BeGeS.
Me funcionan las dos siguientes:

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

Saludos cordiales.

Post Reply