Fórum Duvida com LOCATE #412865
16/02/2012
0
uso o LOCATE para localizar registro dentro do clientdataset, atraves do codigo do produto, e sempre para o ponteiro no primeiro registro encontrado, mas se eu quiser continuar pesquisando e localizar o proximo produto com o mesmo codigo, como posso fazer ?
Obrigado
Obrigado
Felipe Ip
Curtir tópico
+ 0
Responder
Posts
16/02/2012
Deivison Melo
Veja se esse tópico pode ajudá-lo!
https://www.devmedia.com.br/post-15429-Quick-Tips-Filter-e-Locate-no-ClientDataSet.html
https://www.devmedia.com.br/post-15429-Quick-Tips-Filter-e-Locate-no-ClientDataSet.html
Responder
Gostei + 0
17/02/2012
Alisson Santos
uso o LOCATE para localizar registro dentro do clientdataset, atraves do codigo do produto, e sempre para o ponteiro no primeiro registro encontrado, mas se eu quiser continuar pesquisando e localizar o proximo produto com o mesmo codigo, como posso fazer ?
Obrigado
Obrigado
Bom não sei se auxiliará o que estarei enviando, mais eu trabalho com locate e desenvolvi uma rotina muito legal para as minhas aplicações.
Bom Primeiramente eu desenvolvi essa rotina para consulta na minha query.
procedure pConsulta(tabela, campo, parametro: String);
begin
//Monta o sql que sera utilizado como base para as consultas
//TABELA - sera utilizado a tabela referente ao grid em questão
//CAMPO - Sera utilizado o campo de acordo com o que o usuario selecionar no grid
//Parametro - Valor passado através do edit do form
try
with qryConsulta do
begin
Close;
SQL.Clear;
SQL.Add(SELECT * FROM + tabela);
SQL.Add(WHERE + campo + LIKE + %+ parametro + %);
SQl.Add(ORDER BY + campo);
Open;
//Ativa o dataset
cdsConsulta.Active := true;
//Da um refresh no dataset para atualizar a pesquisa
cdsConsulta.Refresh;
end;
finally
//Limpa o sql da consulta anterior
qryConsulta.SQl.Text := ;
end;
end;
Após aplico da seguinte maneira essa chamada
// Onde o campo chave nas minhas tabela eu seto qual é o campo que quero efetuar a busca,
Criei uma variavel global. E nas telas que eu faço a herança onde está esse código no onActive chamo atribuo o seguinte valor.
CampoChave := CD_PRODUTO.
DataSource.DataSet.Locate(CampoChave, cdsConsulta.FieldByName(CampoChave).AsString, []);
A procedure que desenvolvi ela trata muito do like e assim quando estou digitando ele vai trazendo os valores que preciso.
Caso não entendeu ou precise de mais algo, dá um perguntada.
Lembrando que o comando acima pode ser utilizado de diversas maneiras, é como o nestom, existe mil maneiras de se fazer, invente a sua.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)