Melhorando a busca no combobox
Pessoal da uma dica , como fazer esse busca de uma maneira mais pratica
[#VIDEO-191#]
[#VIDEO-191#]
Carlos Faria
Curtidas 0
Respostas
Wesley Yamazack
30/06/2010
Carlos.
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
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
Carlos Faria
30/06/2010
Vou tentar aqui , nao sabia que podeira programar a query direto no campo lookup
GOSTEI 0
Wesley Yamazack
30/06/2010
Carlos,
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
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
Carlos Faria
30/06/2010
Entao voce verifica aqueles outros vou pesquisar isso aqui,acho que nao e isso o que estou querendo mas vou analizar seu codigo !
GOSTEI 0
Wesley Yamazack
30/06/2010
Carlos,
Deixa cmg
Att,
Wesley Y
Deixa cmg
Att,
Wesley Y
GOSTEI 0
Wesley Yamazack
30/06/2010
Carlos, como estamos com este chamado ?
Att,
Wesley Y
Att,
Wesley Y
GOSTEI 0