Jump to content

Filtro não Funciona


InfoMan
 Share

Recommended Posts

Bom Dia para Todos!

Tenho uma tabela chamada NINDNET.dbf onde existe um campo chamado ID_AGRAVO que contém os códigos dos casos registrados no banco de dados.

Estou tentando filtrar o campo para que no relatório exibido conste apenas ID_AGRAVO='B019'. Uso um componente TDBF para acessar as tabelas DBF do meu sistema. Este TDBF chama-se DADOS.

Já tentei várias formas, tais como:

dados.filter := 'ID_AGRAVO=B019';
dados.filtered := true;

Só que não funciona. O relatório está exibindo todos os casos do banco de dados e não apenas os que contém ID_AGRAVO = B019.

Por favor, me ajudem. Muito obrigado a todos.

Link to comment
Share on other sites

Bem, quando fazes um filtro com uma string constante tens de usar aspas. Ou seja:

dados.filter := 'ID_AGRAVO=[b]"[/b]B019[b]"[/b]';
dados.filtered := true;

caso contrário queres comparar o campo ID_AGRAVO com o campo B019 da tabela.

Se o campo tiver espaços à esquerda tens de contar com isso ("  B019" <> "B019").

Link to comment
Share on other sites

Bem se não faz a bem... Porque é que não fazes como te disse com as datas nulas ? Se te resolveu o problema das datas também terá de funcionar com isso. Para quem não viu os últimos episódios :

TForm1.Tabela1OnFilterEvent(Sender : TObject; var Accept : Boolean)
begin
     Accept := Copy(Trim(Tabela1ID_AGRAVO.AsString),1,4) = 'B019';
end;

Este código só deixa aceder a registos cujo campo ID_AGRAVO tenha o conteúdo com os primeiros quatro caracteres, excluindo espaços, iguais a 'B019'.

Link to comment
Share on other sites

Mais uma vez, muito obrigado pela sua ajuda. Graças a sua valiosíssima colaboração consegui resolver mais estre problema.

Tinha tentado adaptar o comando que me mostrou antes (data em branco) para este caso mas não tinha dado certo.

Curiosamente, a primeira forma de filtro...

dados.Filter := 'ID_AGRAVO="B019"';

...funciona corretamente com o dbgrid mas não com o LazReport.

Só tenho que agradecer a este fórum e a você pelo que tem feito por mim. Muito obrigado.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.