Fórum Melhorando a busca no combobox #380391
30/06/2010
0
[#VIDEO-191#]
Carlos Faria
Curtir tópico
+ 0Posts
01/07/2010
Wesley Yamazack
Você ja tem a solução , por que não implementa uma tela de pesquisa como o FrmTrajetoGRupo ? Só que para o Campo Rua ? Este campo é um Lookup, correto ?
Faça uma tela de pesquisa como o FrmTrajetoGrupo, porém o clientdataset de pesquisa vai ser o que contém os dados da rua. Quando você selecionar o endereço, correto, mude no ClientDataSet que contém o Lookup o valor da rua, e irá funcionar, da mesma forma.
Att,
Wesley Y
Gostei + 0
01/07/2010
Carlos Faria
Gostei + 0
01/07/2010
Wesley Yamazack
Não é programar a query do Lookup, mas sim fazer a busca, em cima do CDS no qual você tem a lista de ruas, no momento que você achar a rua a seu Lookup tem que ser posicionado naquela rua.
Veja uma rotina que eu faço exatamente isso que você quer.
Eu tenho um formulário de Pesquisa onde ele contem :
TDataSource = DSPesquisa
TDBGrid
TButton - BtnLocalizar//Veja abaixo a implementação deste botao
TEdit - EdtConteudo
procedure TFrmPadrao.LocalizarLookup(xDSOrigem, xLookupDataSet: TDataSet;
xDescricaoLookup, xCodigo, xDescricao: String);
begin
Try
FrmPesquisa := TFrmPesquisa.Create(Self);
With FrmPesquisa do
begin
DSPesquisa.DataSet := xDSOrigem.FieldByName(xDescricaoLookup).LookupDataSet;
GridPesquisa.Columns[0].FieldName := xCodigo;
GridPesquisa.Columns[1].FieldName := xDescricao;
xCampoPesquisa := xDescricao;
ShowModal;
if FrmPesquisa.ModalResult = mrOk then
if xDSOrigem.State in [dsInsert,dsEdit] then
xDSOrigem.FieldByName(xCodigo).AsString := DSPesquisa.DataSet.FieldByName(xCodigo).AsString;
end;
Finally
FreeAndNil(FrmPesquisa);
End;
end;
//Implementação do Botao pesquia
procedure TFrmPesquisa.BtnPesquisaClick(Sender: TObject);
begin
With TClientDataSet(DSPesquisa.DataSet) do
begin
Filtered := False;
case TipoPesquisa of
TPString:
Filter := UpperCase(xCampoPesquisa + ' Like ' + QuotedStr
('%' + EdtConteudo.Text + '%'));
TPNumero:
Filter := xCampoPesquisa + ' = ' + EdtConteudo.Text;
TPData:
Filter := xCampoPesquisa + ' = ' + EdtConteudo.Text;
end;
Filtered := True;
Open;
end;
end;
Veja se isso irá clariar suas ideiais.
Att,
Wesley Y
Gostei + 0
04/07/2010
Carlos Faria
Gostei + 0
05/07/2010
Wesley Yamazack
Deixa cmg
Att,
Wesley Y
Gostei + 0
16/07/2010
Wesley Yamazack
Att,
Wesley Y
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)