Búsqueda y de más de una palabra en el campo de un grid

DO case
CASE thisform.optiongroup2.option1.value=1
 SET filter to left(alltrim(NOMBRE),len(alltrim(thisform.txtbusca.value)))=;
  left(alltrim(thisform.txtbusca.value),len(alltrim(thisform.txtbusca.value)))
CASE thisform.optiongroup2.option2.value=1
 SET filter to left(alltrim(DETALLES),len(alltrim(thisform.txtbusca.value)))=;
  left(alltrim(thisform.txtbusca.value),len(alltrim(thisform.txtbusca.value)))
CASE thisform.optiongroup2.option3.value=1
Endcase
GO top
Thisform.refresh
En el grid la columna código solo contiene una sola palabra en lo que la búsqueda y filtro funciona perfecto
Pero la columna NOMBRES que tiene más palabras solo me busca por la primera palabra del grid
Ayuda por favor... Creo que no debe ser tan difícil
Por eje: campo detalles "nombres"
omar fabian humberto solo me busca por el 1er nombre
Necesito que filtre por el segundo nombre o tercero o cuarto etc
Que en el TXT al colocar fabian también me filtre este nombre... Me entienden

1 respuesta

Respuesta
1
bueno a ver si con esto podes solucionarlo
set filter to allt(thisform.txtbusca.value)$detalle
porque?
Vos con el left() solo estas buscando en el comienzo de la tira de caracteres por eno no te filtra si el dato que buscas no esta a la izquierda del campo, en el signo $ te filtra los compo donde encuentre en cualquier lugar del campo lo que escribís en el txtbusca, si lo pones el el interactivechange() del txtbusca seria más o menos como cuando buscas en el winamp algún tema, apretando la tecla J te va filtrando de la lista de temas los que coinciden con el dato de búsqueda, Fíjate si con esta forma podes solucionar tu búsqueda. Suerte
DO case
CASE thisform.optiongroup2.option1.value=1
 SET filter to left(alltrim(columna4),len(alltrim(thisform.txtbusca.value)))=;
  left(alltrim(thisform.txtbusca.value),len(alltrim(thisform.txtbusca.value)))
CASE thisform.optiongroup2.option2.value=1
 SET filter to left(alltrim(columna5),len(alltrim(thisform.txtbusca.value)))=;
  left(alltrim(thisform.txtbusca.value),len(alltrim(thisform.txtbusca.value)))
CASE thisform.optiongroup2.option3.value=1
 SET filter to alltrim(thisform.txtbusca.value)$columna6
Endcase
GO top
Thisform.refresh
Gracias.. excelente ayuda" funciona perfecto como me decís vos" al escribir lo que sea lo busca, solo que al ir borrando todo el txtbusca me queda el grid en blanco, no me refresca la tabla
otra preguntita por favor ya casi esta...
Se puede a medida que voy buscando en columna 4 cuando voy filtrando en esos campos que la tabla en el grid quede posicionada en la ultima búsqueda.
Por ejemplo que en la columna 4 filtre los que pertenecen al "grupo4" y después en la columna 5 la búsqueda solo los del grupo4 y la tabla ya no me muestra todos los grupos en la columna4, que la búsqueda se vaya haciendo cada vez más chica... noc si me hago entender... gracias
Más o menos mi correo es [email protected] agrégame y lo vemos por chat
lo que tienes que hacer es cuando vas a filtrar la columna 5, agregarle el filtro de la columna 4,
para saber que filtro esta activo usas la función filter() retorna un string con la condición de filtro actual ese string le concatenas el nuevo filtro y listo.
Ah! Cuando vas borrando si refresca la tabal lo que pasa es que si lo pusiste en el intereactivechange() sigue buscando y busca el registro que este vacío en el campo y como no lo encuentra no muestra nada.
Muchísimas gracias... excelente tu ayuda
Creo que ya casi lo tengo
Fíjate en tu mail martin te mande un ejemplo
Excelente, ya lo tengo... solo me falta una ultima cosita... como seria si tengo relacionar más de un campo... ¿agrego otra variable consulta? O en la misma...
Ademas del campo relacionar que me guarde el campo nombres... siempre situándome en el ejemplo que vos me diste...
Muchísimas gracias.. por todo... tu aporte excelente hasta aquí..
Idiay! Que poca fe con este "hasta aquí", cada campo que vos quieras filtrar tienes que agregar el txtbusca y lo trbajas sobre la misma variable consulta. Pero no entiendo lo que quieres decir con que te guarde el campo ¿?.
GENIAL... gracias por todo... tu aporte de diezl... ya lo saque a lo que faltaba... perdón con el "hasta aquí" no me quise expresar así...
De nuevo gracias... y suerte.. que andes bien

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas