Amiguinho,
O
dbSetFilter precisa de
dois parametros:
Teste:
DbSetFilter( )
Código: Selecionar todos
? cSetFilter := ac1$acao
dbSetFilter( {|| &cSetFilter. }, &cSetFilter. )
Agora mostre-nos trecho do código que cria sua variável
ac1$acao. Já estamos tendo de adivinhar pra dar resposta.
Coloque o trecho acima no seu programa e nos diga qual foi o conteudo mostrado na linha
? cSetFilter := ac1$acao.
Se a filtragem não esta resultado em registros é porque nada que valha a filtragem está sendo passado para o comando.
E também já estou velho, nem lembro o porque do uso que voce faz de
$, em
{|| ac1$acao }.
Pelo que entendi:
Voce tem uma variável chamada
ACL e está criticando o conteúdo do campo
acao.
Pois bem:
Voce não terá filtragem nenhuma porque, se a variável
acl retornar
falso caso não seja encontrada no campo
acao.
Para usar o operador
$ voce estará perguntando:
procure ACL dentro de ACAO
O que esta ocorrendo é que o comando de filtragem está recebendo somente,
.T. ou
.F. puros, ou seja:
ou:
Isto não irá fazer nenhum efeito.
Voce deve passar uma expressão que valha a pena, exemplo:
Voce que pesquisar por um código dentro de um campo e filtrar tudo relativo:
Código: Selecionar todos
nNumero := "123"
cSetFilter := "TABELA->CODIGO = " + strZero( nNumero, 5 )
dbSetFilter( {|| &cSetFilter. }, &cSetFilter. )
Ou:
Código: Selecionar todos
cNome := "ROCHA"
cSetFilter := "upper(TABELA->NOME) = " + upper( cNome )
dbSetFilter( {|| &cSetFilter. }, &cSetFilter. )