Fórum Consulta de Pesquisar #357631

25/04/2008

0

Ola eu mandei um tópico aqui , mais to tentando fazer de outro geito tb

procedure TfrmConsulCidades.edtBusIncleChange(Sender: TObject);
var
Palavra:string;
Tamanho:integer;
begin
Palavra := ´ CIDADE´;
Tamanho := Length(edtBusIncle.Text);
edtBusIncle.text := palavra;
edtBusIncle.SelStart := Tamanho;
edtBusIncle.SelLength := Length(edtBusIncle.text) - Tamanho;

Só que quando eu vou digitar no edit para procurar no DBGrid
só aparece a palavra CIDADE, ou seja tudo que eu escrevo no
comando .
palavra := ´CIDADE´
aparece apenas a palavra CIDADE dentro do Edit.
como eu posso fazer para poder digitar qualquer palavra para efetivar a
busca?


Rodlima

Rodlima

Responder

Posts

28/04/2008

Mazzi

Ola, isso esta acontecendo porque vc definiu a variavel PALAVRA com uma constante ´CIDADE´, ou seja sempre que vc iniciar essa funcao a var PALAVRA esta sendo iniciada erroneamente pela string ´CIDADE´.

O certo se vc quer passar por paramentro qq coisa eh criar um metodo, uma funcao, que permita isso. Ex:

function pegarString (campo_Texto:String):Boolean
begin

if ((campo_Texto <> Null) and (campo_Texto <>´´)) then

result := campo_Texto;
// ou edit1.text := campo_Texto;

end;

Tente ver se deu pra dar uma clareada na ideia, senao, eu vc me posta e eu te ajudo passo-a-passo.
VC vera que criar metodos assim ajudam muito posteriormente.
Abraços.


Responder

Gostei + 0

29/04/2008

Rodlima

Ola, isso esta acontecendo porque vc definiu a variavel PALAVRA com uma constante ´CIDADE´, ou seja sempre que vc iniciar essa funcao a var PALAVRA esta sendo iniciada erroneamente pela string ´CIDADE´. O certo se vc quer passar por paramentro qq coisa eh criar um metodo, uma funcao, que permita isso. Ex: function pegarString (campo_Texto:String):Boolean begin if ((campo_Texto <> Null) and (campo_Texto <>´´)) then result := campo_Texto; // ou edit1.text := campo_Texto; end; Tente ver se deu pra dar uma clareada na ideia, senao, eu vc me posta e eu te ajudo passo-a-passo. VC vera que criar metodos assim ajudam muito posteriormente. Abraços.


Bom Dia Amigo!
Olha dentro do edtPesquisa eu coloquei o Segundo Código.

procedure TfrmPesquisaCidade.edtPesquisaChange(Sender: TObject);
var
Palavra:string;
Tamanho:integer;
begin
Palavra := ´ CIDADE´;
Tamanho := Length(edtPesquisa.Text);
edtPesquisa.text := palavra;
edtPesquisa.SelStart := Tamanho;
edtPesquisa.SelLength := Length(edtPesquisa.text) - Tamanho;
end;

function TfrmPesquisaCidade.pegarString(campo_Texto: String): Boolean;
begin
if ((campo_Texto <> Null) and (campo_Texto <>´´)) then
edtPesquisa.Text := campo_texto;
//result := campo_Texto;
// ou edit1.text := campo_Texto;
end;

caro amigo eu fiz a function que voce falo.
só que estou Citando a Palavra CIDADE ainda o que eu posso fazer pq ela
continua aparecendo dentro do edit quando eu digito qualquer coisa só aparece esse campo CIDADE .
Muito Obrigado


Responder

Gostei + 0

29/04/2008

Mazzi

Pois eh... mas analise o codigo comigo...
vc está iniciando um [i]evento[/i] OnChange no editPesquisa.
-1) isso indica que tudo que vc digitar lah vai acionar esse método;
Ex:[b]procedure TfrmPesquisaCidade.edtPesquisaChange(Sender: TObject); [/b]

-2) Vc criou DENTRO desse Evento uma variavel Palavra do Tipo String;
-3) Vc inicializou essa palavra com uma String ´CIDADE´;
-4)Ex:
[b]procedure TfrmPesquisaCidade.edtPesquisaChange(Sender: TObject);
var
Palavra:string;
Tamanho:integer;
begin
Palavra := ´ CIDADE´; [/b]


-5) Vc está acionando o conteudo da variavel Palavra para o componente EdtPesquisa.text
Ex:
[b]edtPesquisa.text := palavra;[/b]

Portanto sempre vai acontecer isso mesmo, vai sempre aparecer a String ´ Cidade´.

--------------------------------------------------------------------------------

COMO COLOCAR UM CONTEUDO DINAMICO :P
--------------------------------------------------------------------------------

1- Insira um EditPesquisa(até ai OK)
2- Insira um DbGrid, e coloque um DataSet nele que seja uma Query que busque os dados que vc queira, Ex:
SELECT * FROM CIDADES;


3-Teste a sua SQL com a sua Tabela e veja se dá algum erro, se sim, retorne a SQL e corrija.
3.1- Conecte corretamente o DataSource para a DbGrid

4- Dentro do EditPesquisa , no evento onChange, insira:

Query.Close;
Query.SQL.CLear;
Query.SQL.ADD(´SELECT * FROM CIDADE WHERE CIDADE=´+QuotedStr(edtPesquisa.text));
Query.Open;

Pronto!
Ao vc ir digitando irá aparecer na sua Grid as cidades que vc quer.

------------------------------------------------------------------------------
Outra Forma use um DBLoockupComboBox (Palheta DataControls, ou use o component da RxLib) que fazem isso pra vc sem muito trabalho.
só basta conectar ao mesmo DataSource, tanto no dbLoockupComboBox, qto ao DataSource no dbGrid
------------------------------------------------------------------------------

Espero ter ajudado.

Abraços++


Responder

Gostei + 0

29/04/2008

Rodlima

Pois eh... mas analise o codigo comigo... vc está iniciando um [i:dce7789a88]evento[/i:dce7789a88] OnChange no editPesquisa. -1) isso indica que tudo que vc digitar lah vai acionar esse método; Ex:[b:dce7789a88]procedure TfrmPesquisaCidade.edtPesquisaChange(Sender: TObject); [/b:dce7789a88] -2) Vc criou DENTRO desse Evento uma variavel Palavra do Tipo String; -3) Vc inicializou essa palavra com uma String ´CIDADE´; -4)Ex: [b:dce7789a88]procedure TfrmPesquisaCidade.edtPesquisaChange(Sender: TObject); var Palavra:string; Tamanho:integer; begin Palavra := ´ CIDADE´; [/b:dce7789a88] -5) Vc está acionando o conteudo da variavel Palavra para o componente EdtPesquisa.text Ex: [b:dce7789a88]edtPesquisa.text := palavra;[/b:dce7789a88] Portanto sempre vai acontecer isso mesmo, vai sempre aparecer a String ´ Cidade´. -------------------------------------------------------------------------------- COMO COLOCAR UM CONTEUDO DINAMICO :P -------------------------------------------------------------------------------- 1- Insira um EditPesquisa(até ai OK) 2- Insira um DbGrid, e coloque um DataSet nele que seja uma Query que busque os dados que vc queira, Ex: SELECT * FROM CIDADES; 3-Teste a sua SQL com a sua Tabela e veja se dá algum erro, se sim, retorne a SQL e corrija. 3.1- Conecte corretamente o DataSource para a DbGrid 4- Dentro do EditPesquisa , no evento onChange, insira: Query.Close; Query.SQL.CLear; Query.SQL.ADD(´SELECT * FROM CIDADE WHERE CIDADE=´+QuotedStr(edtPesquisa.text)); Query.Open; Pronto! Ao vc ir digitando irá aparecer na sua Grid as cidades que vc quer. ------------------------------------------------------------------------------ Outra Forma use um DBLoockupComboBox (Palheta DataControls, ou use o component da RxLib) que fazem isso pra vc sem muito trabalho. só basta conectar ao mesmo DataSource, tanto no dbLoockupComboBox, qto ao DataSource no dbGrid ------------------------------------------------------------------------------ Espero ter ajudado. Abraços++


Boa Tarde Grande Amigo!
eu colei uma Query dentro do DBGrid e colequei um SQL assim:
SELECT
ID_CODIGO, CIDADE, UF
FROM CAD_CIDADE
ORDER BY CIDADE

Dentro do EditPesquisa , no evento onChange eu coquei esse código aqui:

procedure TfrmPesquisaCidade.edtPesquisaChange(Sender: TObject);
begin
SQLQuery1.Close;

SQLQuery1.SQL.CLear;

//acho que nao eh assim é o de baixo
//SQLQuery1.SQL.ADD(´SELECT * FROM CIDADE WHERE CIDADE=´+QuotedStr(edtPesquisa.text));

//acho que é assim que usa
//SQLQuery1.SQL.ADD(´SELECT CIDADE, UF FROM CAD_CIDADE WHERE=´+QuotedStr(edtPesquisa.text));

//Eu do um Bleak Group só que nesse ultimo código aqui ele da problema: aparece uma menssagem de erro: Return value of function ´TfrmPesquisaCidade.pegarString´might be undefined
SQLQuery1.Open;

SQLQuery1.Close;
SQLQuery1.SQL.CLear;
SQLQuery1.SQL.ADD(´SELECT CIDADE, UF FROM CAD_CIDADE WHERE=´+QuotedStr(edtPesquisa.text));
SQLQuery1.Open; //Erro Aqui.


Responder

Gostei + 0

29/04/2008

Facc

Amigo...
Tente assim

[code]SQLQuery1.SQL.ADD(´SELECT CIDADE, UF FROM CAD_CIDADE WHERE CIDADE = ´+QuotedStr(edtPesquisa.text));[\code]


Responder

Gostei + 0

29/04/2008

Rodlima

Ei Amigos
Muito Obrigado!
Agora deu Certo aqui!!!

ficou assim!!

procedure TfrmPesquisaCidade.edtPesquisaChange(Sender: TObject);
begin
cdsCidade.Close;
qryCidade.Close;
qryCidade.SQL.CLear;
qryCidade.SQL.ADD(´SELECT * FROM CAD_CIDADE WHERE UPPER(CIDADE) LIKE ´+
UpperCase(quotedStr(´¬´+edtPesquisa.text+´¬´)+´ORDER BY CIDADE ASC´));
qryCidade.Open;
cdsCidade.Open;


end;

Valeu!!!

Rodolfo Lima


Responder

Gostei + 0

29/04/2008

Mazzi

Que legal, parabens!

agora acho q ficou show mesmo!

Abraços++


Responder

Gostei + 0

30/04/2008

Rodlima

Que legal, parabens! agora acho q ficou show mesmo! Abraços++


Grande Amigo!!
Boa Tarde Gostaria dee mais uma ajuda Para a Finalizãção do Processo!
Eu Tenho um Formulario de Cadastro de Remetente, dentro dele tem um Edit Para voce colocar o nome da Cidade ,Mais voce tem a alternativa de ir Consultar a cidade, Quando vou ao formulario de consultas de Cidade,
eu tenho um edit que busca a cidade dentro de um DBGrid até então esta certo. só que logo quando eu Busca a Cidade Certa eu Gostaria de Clicar em um botão e Levar o campo com o nome da Cidade que escolhi para o edit do primeiro form.

Tente me Ajudar!!
Muito Obrigado!!!


Responder

Gostei + 0

01/05/2008

Dbergkamps10

Olá rodlima,
Para tentar resolver o seu problema, tente utilizar DBLookCombobox, para carregar os nomes da cidades já cadastradas.

Att
Dalton


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar