Página 1 de 1
SET FILTER, filtar de acordo com as informações lidas
Enviado: 21 Abr 2006 21:28
por smith
Gostaria de filtar o arquivo de acordo com as informações lidas:
estou tentando algo deste tipo mas não funciona !
IF .NOT. EMPTY(VAR1)
PESQUISA= ALLTRIM(VAR1) + " $ CAMPO1 .AND."
ENDIF
IF .NOT. EMPTY(VAR2)
PESQUISA= PESQUISA + ALLTRIM(VAR2) + " $ CAMPO2 .AND."
ENDIF
no final eu retiro os últimos 5 caracteres (.AND.) e faço:
SET FILTER TO PESQUISA
mas não retorna nada !
Alguém pode me ajudar

Desde já muito obrigado.
Enviado: 22 Abr 2006 10:50
por Jarbas
Smith, acho q o seu problema está no .AND. Pq qdo vc diz :
Set filter 'jarbas' $ campo1 .and. 'smith' $ camp2 , isto só vai dar certo se for satisfeito as duas condicoes , isto é obrigatoriamente 'jarbas' terá q estar contido no campo1 e 'smith' no campo2, tente usar o .OR.
Outra dica, pra vc nao precisar tirar o .and. ou .or. do final use assim :
IF .NOT. EMPTY(VAR1)
PESQUISA= ALLTRIM(VAR1) + " $ CAMPO1 "
ENDIF
IF .NOT. EMPTY(VAR2)
PESQUISA= PESQUISA + " .AND." + ALLTRIM(VAR2) + " $ CAMPO2 "
ENDIF
Até mais
Enviado: 22 Abr 2006 20:01
por smith
vamos por parte !
assim funciona:
SET FILTER TO alltrim(PESQNOME) $ CLIENTE
assim não:
IF .NOT. EMPTY(PESQNOME)
PESQUISA=ALLTRIM(PESQNOME) + " $ CLIENTE"
ENDIF
SET FILTER TO PESQUISA
alguém sabe porque

Enviado: 24 Abr 2006 00:38
por Stanis Luksys
Olá,
Veja a diferença na sintaxe entre as duas linhas:
SET FILTER TO alltrim(PESQNOME) $ CLIENTE
PESQUISA=ALLTRIM(PESQNOME) + " $ CLIENTE"
O operador $ seria algo como "contém em".
No primeiro caso vc verifica se o conteudo de PESQNOME está CONTIDO em CLIENTE.
Na segunda sentença você cria uma string, se por exemplo seu PESQNOME é "JOÃO", vc estará filtrando seu banco por nomes que sejam iguais a "JOÃO $ CLIENTE" e dificilmente você irá encontrar alguém com tal nome.
Ok...
Enviado: 24 Abr 2006 13:34
por digitom
Acho que se você usar um macro talvez funcione
IF .NOT. EMPTY(VAR1)
PESQUISA := ALLTRIM(VAR1) + " $ CAMPO1 "
ENDIF
IF .NOT. EMPTY(VAR2)
PESQUISA= PESQUISA + " .AND." + ALLTRIM(VAR2) + " $ CAMPO2 "
ENDIF
SET FILTER TO &PESQUISA
Enviado: 24 Abr 2006 23:32
por smith
Obrigado a todos pela ajuda !
Baseado nas informações de vc's eu resolvi ( aparentemente ) esta etapa.
Obrigado mesmo !
Até.