Estabelecer filtro em tabela PARADOX.

Delphi

02/03/2005

A quem possa estar lendo esta dúvida.


Estou usando um componente Table. Tenho um dbGrid onde listo as informações deste table. Essas informações de minha (table) são ordenadas através de algumas opções de índices que criei, para isso, utilizo o comando findkey.

Minha dúvida é a seguinte:

Como posso estabelecer alguns filtro, em seguida ordenar a tabela, para as informações que são exibidas pelo dbGrid?

Por exemplo, tenho meu cadastro de produto. Ordeno a tabela (table) pelo código do produto (findkey), mas gostaria de antes, filtrar todos os itens desta tabela cuja sua unidade seja igual a “KT&8221;.

Espero que tenho sido claro em minha dúvida.

Antecipadamente agradeço,

José Eduardo

jalbuque@hotmail.com


Jalbuque

Jalbuque

Curtidas 0

Respostas

Alexpaes

Alexpaes

02/03/2005

Algumas dicas...

1) o Comando FINDKEY serve para efetuar pesquisa e naum deixar em ordem...
Para deixar em ordem voce deve criar os índices, e depois os adcionar da forma que quiser ordenar, na propriedade INDEXNAME da table..

estou dizendo isso, pois é da forma que faço....

2) Para realizar o filtro vc deve:

vc adiciona esse código no evento OnClick do botão filtrar:
var
Filtro:String;
begin
Filtro := ´Unidade=´´´ + ´KT´ + ´´´´;
Filtro := Filtro + ´ and ´;
Filtro := Filtro + ´Data>=´´´ + Datai.Text + ´´´´;
Filtro := Filtro + ´ and ´;
Filtro := Filtro + ´Data<=´´´ + Dataf.Text + ´´´´;
Table.Filtered := false;
Table.Filter := Filtro;
Table.Filtered := true;
end;

Perceba que:
Onde tem a instrução ´KT´, vc pode adicionar um combobox com as opções para seu cliente selecionar qual unidade ele deseja, dae vc substitui desta forma o + ´KT´ + = + combobox1.text +;
Datai.text e Dataf.text são dois Maskedits que eu renomeie. Essa opção das datas servem para quando vc precisar filtrar alguns registro de um período x a y.

Valeu, espero ter ajudado, qualquer dúvida entre em contato pelo msn.


GOSTEI 0
POSTAR