Fórum Realizar Consultas #336972
30/01/2007
0
Estou com problema e espero q alguem me ajude,
Amigos tenho um cadastro de Clientes, e quero fazer uma pesquisa de clientes q ja estão cadastrados, quero usar o codigo de cadastro para fazer isso, como faço?
Os campos q estou usando e Edits Comuns, e não DbEdits.
De ja agradeço a resposta.
Jarabeucp
Curtir tópico
+ 0Posts
30/01/2007
Marcosrocha
StringGrid.RowCount := 2; // como se limpasse o Grid DM.QRPesq.SQL.Clear; DM.QRPesq.SQL.Add(´Select * from Clientes´); DM.QRPesq.SQL.Add(´Order by cli_nome´); DM.QRPesq.Open; if not DM.QRPesq.IsEmpty then while not DM.QRPesq.Eof do begin // antes de inserir os dados, limpa as colunas StringGrid.Cells[1,StringGrid.RowCount - 1] := ´´; StringGrid.Cells[2,StringGrid.RowCount - 1] := ´´; // entao insere StringGrid.Cells[1, StringGrid.RowCount - 1] := DM.QRPesq.FieldByName(´cad_codigo´).asString; StringGrid.Cells[2, StringGrid.RowCount - 1] := DM.QRPesq.FieldByName(´cad_nome´).asString; // se nao for o ultimo registro, entao adiciona mais uma linha if not DM.QRPesq.Eof then StringGrid.RowCount -1 := StringGrid.RowCount + 1; DM.QRPesq.Next; end;
Gostei + 0
30/01/2007
Jarabeucp
StringGrid.RowCount := 2; // como se limpasse o Grid DM.QRPesq.SQL.Clear; DM.QRPesq.SQL.Add(´Select * from Clientes´); DM.QRPesq.SQL.Add(´Order by cli_nome´); DM.QRPesq.Open; if not DM.QRPesq.IsEmpty then while not DM.QRPesq.Eof do begin // antes de inserir os dados, limpa as colunas StringGrid.Cells[1,StringGrid.RowCount - 1] := ´´; StringGrid.Cells[2,StringGrid.RowCount - 1] := ´´; // entao insere StringGrid.Cells[1, StringGrid.RowCount - 1] := DM.QRPesq.FieldByName(´cad_codigo´).asString; StringGrid.Cells[2, StringGrid.RowCount - 1] := DM.QRPesq.FieldByName(´cad_nome´).asString; // se nao for o ultimo registro, entao adiciona mais uma linha if not DM.QRPesq.Eof then StringGrid.RowCount -1 := StringGrid.RowCount + 1; DM.QRPesq.Next; end;
Amigo muito boa a dica, so que eu não quero ezibir meus dados em outro componente, quero q meus dados sejam ezibidos nos campos Edits do meu form.
entende?
Gostei + 0
31/01/2007
Marcosrocha
procedure ProximoAnterior(const Acao: ShortString); begin DM.QRPesq.SQL.Clear; DM.QRPesq.SQL.Add(´Select cad_codigo from Cadastro´); DM.QRPesq.SQL.Add(´Where cad_tipo = 1´); DM.QRPesq.SQL.Add(´Order by cad_codigo´); if Acao = ´<´ then DM.QRExec.SQL.Add(´Desc´); DM.QRExec.Open; while not DM.QRExec.Eof do begin if (Trim(MaskEdit1.Text) = DM.QRPesq.FieldByName(´cad_codigo´).asString) then begin DM.QRPesq.Next; MaskEdit1.Text := DM.QRPesq.FieldByName(´cad_codigo´).asString; Edit1.Text := DM.QRPesq.FieldByName(´cad_nome´).asString; Break; end; DM.QRPesq.Next; end; end;
Gostei + 0
31/01/2007
Jarabeucp
procedure ProximoAnterior(const Acao: ShortString); begin DM.QRPesq.SQL.Clear; DM.QRPesq.SQL.Add(´Select cad_codigo from Cadastro´); DM.QRPesq.SQL.Add(´Where cad_tipo = 1´); DM.QRPesq.SQL.Add(´Order by cad_codigo´); if Acao = ´<´ then DM.QRExec.SQL.Add(´Desc´); DM.QRExec.Open; while not DM.QRExec.Eof do begin if (Trim(MaskEdit1.Text) = DM.QRPesq.FieldByName(´cad_codigo´).asString) then begin DM.QRPesq.Next; MaskEdit1.Text := DM.QRPesq.FieldByName(´cad_codigo´).asString; Edit1.Text := DM.QRPesq.FieldByName(´cad_nome´).asString; Break; end; DM.QRPesq.Next; end; end;
Amigo sou iniciante em Delphi, desculpe mais não entendi muito bem o codigo, precizo de algo detalhado entende.
obrigado.
Gostei + 0
31/01/2007
Marcosrocha
procedure TFrmCad.ProximoAnterior(const Acao: ShortString); begin // esta procedure permite que passe para o próximo ou o registro anterior // primeiro faz-se um select trazendo os clientes por ordem de código DM.QRPesq.SQL.Clear; DM.QRPesq.SQL.Add(´Select cad_codigo from Cadastro´); DM.QRPesq.SQL.Add(´Where cad_tipo = 1´); DM.QRPesq.SQL.Add(´Order by cad_codigo´); if Acao = ´<´ then // se Acao for < entao está procurando o codigo anterior DM.QRExec.SQL.Add(´Desc´); DM.QRExec.Open; while not DM.QRExec.Eof do begin if (Trim(MaskEdit1.Text) = DM.QRPesq.FieldByName(´cad_codigo´).asString) then // se o codigo da query for o igual ao meu código begin DM.QRPesq.Next; // pega o proximo registro MaskEdit1.Text := DM.QRPesq.FieldByName(´cad_codigo´).asString; Edit1.Text := DM.QRPesq.FieldByName(´cad_nome´).asString; Break; // parar o while end; DM.QRPesq.Next; // proximo registro end; end;
Para chamar a função basta:
procedure TFrmCad.BitBtn1Click(Sender: TObject); begin ProximoAnterior(´>´); // proximo registro end; procedure TFrmCad.BitBtn2Click(Sender: TObject); begin ProximoAnterior(´<´); // registro anterior end;
Gostei + 0
31/01/2007
Martins
Gostei + 0
31/01/2007
Marcosrocha
A propósito... se você ajudou o Jarabe por MSN eu acharia muito interessante se postasse a resolução do problema aqui no fórum para ajudar a todos como diz sua assinatura... Caso contrário você estará entrando em contradição com você mesmo... =P :lol:
Gostei + 0
01/02/2007
Jarabeucp
cabeça com código, por isso ele me deu a solução via msn, mais já q é bom
p a galera saber a resposta ai vai o Código, é a dicas q ele me deu já adaptado por mim.
procedure TF_Parentesco.ECodigoExit(Sender: TObject);
begin // Verifica se o Código existe
if Dm_Agep.TParen.Locate(´Codigo´,ECodigo.Text,[])then
begin
// Se existir a tabela entra em Edição e me exibe os dados
Dm_Agep.TParen.Edit;
EDescricao.Text := Dm_agep.TParen.FieldByName(´Descricao´).AsString;
ECodigo.Enabled := False
end
else
ShowMessage(´Resgitro não Cadastrado´)
end;
=========================
F_Parentesco = Form
ECodigo = Campo do Form
EDescricao = Campo do Form
Dm_Agep = Data Module
TParen = Componente Table
Descricao = Campo da Tabela
Espero q a dica possa ajudar a todos.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)