Fórum duvida dbgrid + edit #479483

19/05/2014

0

boa tarde gente, gostaria da ajuda de vcs

tenho um formularios de cadastro onde a pessoa tem q cliar num botao q abre um form para selecionar o cliente.

como eu posso fazer para quando a pessoa apetar enter na dbgrid o nome do cliente aparecer no edit?


grato desde ja.
Pedro Henrique

Pedro Henrique

Responder

Posts

19/05/2014

Ricardo

Digamos que esse DBGrid esteja ligado a um ClientDataSet(mas pode ser outro componente, ou o que você esta usando),

No evento OnCellClick do DBGrid(para clicar com o mouse) / OnKeyPress do DBGrid(para tecla enter) você coloca: edit.Text :='ClientDataSetnome_do_campo.AsString';

ou

edit.Text :='ClientDataSet.FieldByName('nome_do_campo').AsString';


Lembrando que o AsString você usa se estiver trabalhando com um campo do tipo string. Se for outro tipo tem que converter.
Responder

Gostei + 0

19/05/2014

Pedro Henrique

meu dbgrib ra ligado a um datasouce.
Responder

Gostei + 0

19/05/2014

Romulo Silva

edit.Text := SuaQuelry.FieldByName('nomedocampo').AsString'
Responder

Gostei + 0

19/05/2014

Ricardo

meu dbgrib ra ligado a um datasouce.


Certo, mas o Dataset do seu DataSource esta ligado a que? é esse componente que você vai colocar no código.
Responder

Gostei + 0

19/05/2014

Pedro Henrique

no caso a minha dbgrid ta ligada com o datasource q ta ligado com uma Zreadonlyquery do componente Zeos
Responder

Gostei + 0

20/05/2014

Ricardo

Putz nunca precisei usar o Zeus pra nada, por isso nem conheço os seus componentes direito.

Mas enfim, se ele for equivalente a uma query por exemplo, pode ser que funcione ou não se você colocar

Zreadonlyquery.FieldByName('campo').AsXXXXX

Enfim tenho que procurar mais informações sobre o componente para ser mais preciso, mas mesmo assim tenta aí.
Responder

Gostei + 0

21/05/2014

Pedro Henrique

deu certo nao, sempre da esse erro. segue imagem[img]http://arquivo.devmedia.com.br/forum/imagem/359568-20140521-123252.png[/img]
Responder

Gostei + 0

21/05/2014

Deivison Melo

O erro que está ocorrendo agora é devido o delphi está tentando abrir um objeto que já está aberto e na memória, sendo necessário verificar com o comando: Assigned antes de abrir novamente ou está tentando acessar um objeto que ainda não foi instanciado pelo delphi.

Já referente a sua dúvida:

E algum dos eventos do DBGrid vc coloca o comando abaixo, ou no DblClick (quando houver um duplo clique):

edtCodCli.Text := dbgConsulta.Columns[0].Field.AsString; // onde o 0 é o index da coluna
edtNomeCli.Text := dbgConsulta.Columns[1].Field.AsString; // onde o 1 é o index da coluna

Abração e bons códigos, espero ter ajudado!

Qualquer dúvida postar para ajudarmos da melhor forma possível!!
Responder

Gostei + 0

22/05/2014

Pedro Henrique

mt obrigado Deivison, sua dica deu certo. vlw cara :)
Responder

Gostei + 0

22/05/2014

Pedro Henrique

desculpe encher o saco de vcs, quando eu fiz a parte de edita um cadastro passando os dados por parametro deu o seginte erro(imagem) nao consigo encontrar o erro. sera q vcs poderiam me ajudar?
[img]http://arquivo.devmedia.com.br/forum/imagem/359568-20140522-135527.png[/img]

codigo:
with DM.DataM.ZQueryCadCli do
              begin
                SQL.Clear;
                SQL.Add('UPDATE cliente SET)');
                SQL.Add(' nomecli = :nomecli,)');
                SQL.Add(' telcli = :telcli,)');
                SQL.Add(' endcli = :endcli,)');
                SQL.Add(' obscli = :obscli,)');
                SQL.Add(' idadecli = :idadecli,)');
                SQL.Add(' dtnasccli = :dtnasccli)');
                SQL.Add('WHERE codcli = :codcli)');
                ParamByName('nomecli').AsString := EditNomeCli.Text;
                ParamByName('telcli').AsString := EditTelCli.Text;
                ParamByName('endcli').AsString := EditEndCli.Text;
                ParamByName('obscli').AsString := MemoObsCli.Text;
                ParamByName('idadecli').AsInteger := StrToInt(EditIdadeCli.Text);
                ParamByName('dtnasccli').AsDate :=  DtNascEdit.Date;
                ParamByName('codcli').AsInteger :=  StrToInt(LabelCodCli.Caption);
                ExecSQL;
              end;
Responder

Gostei + 0

22/05/2014

Lourival Queiroz

Eu passei por esse problema a tempo, e resolvi criando um padrão de pesquisa e outro de manutenção. A ideia é facilitar a manutenção do sistema e ter apenas um Form para pesquisa e outro para manutenção (Incluir/Alterar). Nos Forms padrões eu faço todos os códigos básicos (Abertura de query, tratamento enter, help, botões, etc), e as exceções ficam no Form herdado. Abaixo um exemplo simples de ambos.

Form de Pesquisa (Exclui/Imprime nesse form) (Inclui/Altera efetua chamada no form de manutenção):
[img]http://arquivo.devmedia.com.br/forum/imagem/318028-20140522-151813.png[/img]

Form de Manutenção (Inclusão/Alteração) os campos são associados a query do form de pesquisa:
[img]http://arquivo.devmedia.com.br/forum/imagem/318028-20140522-151759.png[/img]

Com isso economizei tempo pra desenvolver o sistema.

Espero que vc possa solucionar teu problema.
Responder

Gostei + 0

22/05/2014

Pedro Henrique

criei um form para cadastrar,editar e excluir cada funcao separada por uma tab.

pra editar eh assim: o operador seleciona o cliente numa dbgrib e as informacoes aparece direto nos edits, dai edito como quer ai depois do um Update no banco passando as novas infor pro parametro.
Responder

Gostei + 0

24/05/2014

Ricardo Araujo

conseguiu resolver o seu problema ?
Responder

Gostei + 0

24/05/2014

Pedro Henrique

ainda nao, da o mesmo erro ainda. ele nao ta encontrando as info. nem no update nem do delete.
Responder

Gostei + 0

27/05/2014

Nelson Santos

ganhe dinheiro com softwares 3D com Delphi 7
http://www.3dsistemas.com.br
Responder

Gostei + 0

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

Aceitar