Filtrar DbGrid
11/01/2010
0
criei um formulário de pesquisa com um edit e um botão. Neste edit, o usuário digita um nome, ou parte dele, e, ao clicar no botão, o formulário de pesquisa se fecha. Após o fechamento do formulário, o DbGrid do formulário que está ativo deve exibir apenas os dados do nome digitado no edit. O que devo fazer pra que isso ocorra?
Grata.
Simone Grandini
Posts
11/01/2010
Pjrm1470
13/01/2010
Simone Grandini
fiz conforme seu exemplo, mas não deu certo. O dbgrid continua sem filtro. Posso digitar parte do nome ou o nome inteiro que o código apenas aponta o nome correspondente no dbgrid, não excluindo os outros nomes. O que estou fazendo errado? Segue abaixo o código:
procedure TFrmBusca.EdtNomcliChange(Sender: TObject);
begin
Dados.TbClientes.Locate('nome',EdtNomcli.text,[locaseinsensitive,lopartialkey]);
Dados.TbClientes.Refresh;
end;
procedure TFrmBusca.BtnConfirmaClick(Sender: TObject);
begin
if CdsBusca.Locate('nome',EdtNomcli.text,[locaseinsensitive,lopartialkey]) then
begin
CdsBusca.Filtered := False;
CdsBusca.Filter := 'upper(nome) like ' +uppercase(quotedstr('%' + EdtNomcli.Text + '%'));
CdsBusca.Filtered := True;
FrmBusca.Close;
end
else
begin
Application.MessageBox('Registro não encontrado!', 'Aviso', MB_ICONWarning);
EdtNomcli.Clear;
EdtNomcli.Setfocus;
CdsBusca.Filtered := False;
end;
end;
21/05/2010
Simone Grandini
var
Status: String;
begin
QrySegCli.Close;
QrySegCli.SQL.Clear;
QrySegCli.SQL.Add('Select nome, ativo, modelo, placa ');
QrySegCli.SQL.Add('from clientes inner join seguros ');
QrySegCli.SQL.Add('on clientes.codigo=seguros.cliente');
QrySegCli.Open; Status := QrySegCli.FieldByName('ativo').Value;
if Status = '0' then
LblStatus.Caption := 'Inativo'
else
LblStatus.Caption := 'Ativo'
end; Grata.
30/05/2011
Klaus
Tenho o mesmo problema que vc falou ( o 1º), mas vc não colocou a resolução dele no forum.
Será possível que alguém atualize a questão com a solução?
29/04/2013
José
Clique aqui para fazer login e interagir na Comunidade :)