Filtrar tabla en vfp 6

Tengo una tabla con 3 columnas nombre, cedula y edad abajo ejemplo.
Necesito filtrar la tabla por nombre que salgan solo las personas con nombre carlos, pero que su apellido no sea fernández y ademas que sean mayor de 30 años
gracias de antemano...
Ejemplo:
Nombres ci edad
Carlos fernández 1231231 26
Carlos perez 24324234 45
Pedro hernández 1123123 23
Carlos orozco 5345346 30

1 respuesta

Respuesta
1
Puedes usar el comando VFP SetFilter, de la siguiente forma:
set filter to left(nombres, 6) = 'carlos' and substr(nombres,8,9) <> 'fernandez' and edad > 30
GRACIAS Fernando por tu pronta respuesta.
Pero, No me filtra la tabla me coloca en cero la tabla, es decir, hago un count y esta en cero el resultado. es decir no realiza lo deseado
set filter to left(nombres, 6) = 'carlos' and substr(nombres,8,9) <> 'fernandez' and edad > 30
le cambie por su puesto los nombres de la filas ejemplo te coloco el detalle
set filter to left(nombre del campo, 5) = 'amort' and substr(nombre del campo,7,8) <> 'soporte' and nombre de campo  = '204'
Este es el código que diseñe
Saludos
daniel rangosch
Ok, en el ejemplo que me diste, yo cree una tabla con los datos que me pusiste en la pregunta inicial, y a mi si me funciona ok. Verifica bien las mayúsculas y minúsculas en los datos.
Para descartar, primero verifica el filtro por partes:
1. set filter to left(nombres, 6) = 'carlos'
Te debe mostrar todos los que se llamen carlos, asegurate bien que estén igualmente las mayúsculas y minúsculas.
2. Si el filtro anterior te arroja resultados correctos, puedes aumentar más el filtro:
set filter to left(nombres, 6) = 'carlos' and substr(nombres,8,9) <> 'fernandez', aqui te debe mostrar todos los carlos que no se apelliden fernandez.
Trata de verificar el filtro por partes, fíjate que en la DBF no tengas espacios al inicio de los nombres,
Me avisas como te va
Fernando
Gracias fernando un millón amigo... Resulta que los datos estaban todos en mayúsculas y yo lo estaba escribiendo en minúscula.
Sabes, Pero tengo un problema resulta que no hubo un estándar en el ingreso de los datos en algunos casos tengo el nombre primero y en otros de segundo. Por ejemplo
Nombres ci edad
Carlos fernández 1231231 26
Perez raul carlos 24324234 45
Pedro hernández 1123123 23
Carlos orozco 5345346 30
fernández ramón carlos 61684668 40
Y como lo estamos filtrando 'carlos' puede estar en cualquier parte de la celda al principio, en el medio o al final del nombre, menos mal que me percate...
Sabes igualmente descartando 'fernandez' puede estar en cualquier parte de la celda al principio, en el medio o al final del nombre ya que se ingresaron los datos muy desordenado...
De antemano me haz ayudado muchísimo...
Puedes usar el comparativo ', para buscar en una cadena, por ejemplo, para filtrar a todos los registros que contengan 'fernandez' en el campo nombres puedes usar esta linea:
set filter to 'fernandez' $ nombres
También puedes usar la function UPPER para convertir a mayúsculas una expression, de esta manera puedes hacer tu filtro sin importer que los datos contengan mayúsculas o minúsculas, usa el comando:
set filter to 'FERNANDEZ' $ upper(nombres)
espero te sirva
Fernando el codigo que estoy utilizando para la consulta es el siguiente
set filter to 'AMORT'$upper(art_des) and 'FORD'$upper(art_des) and co_prov = '027'
este me corre, pero a su vez necesito que me excluya una palabra Ejemplo:
set filter to 'AMORT'$upper(art_des) and 'FORD'$upper(art_des) and
 <> 'CARTUCHO'$upper(art_des) and co_prov = '027'
Es decir que me filtre los artículos con la palabra AMORT, a su vez con FORD que me excluya CARTUCHO y solo del código de proveedor 027
Pero este no me corre me dice que falta algo...
Saludos, Daniel Rangosch
Ok,
La linea (<> 'CARTUCHO' $ upper(art_des)), esta mal planteada, reemplázala por:
and ('CARTUCHO' $ upper(art_des) = .F. )
de manera que quedaria asi:
 set filter to 'AMORT'$upper(art_des) and 'FORD'$upper(art_des) and ('CARTUCHO' $ upper(art_des)) = .F.  and co_prov = '027'
Suerte,
Fernando

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas