Fórum DBGrid #338952
19/03/2007
0
Minha primeira duvida!!! hehehe
Sou novado por favor naum riam de mim... heheh
seguinte faço um pesquisa atraves de um query que joga o resultado em um DBGrid, gostaria de saber como pegar um resultado dessa pesuisa e jogar para um DBEdit clicando no DBGrid.. Qual evento?? Codigo???
Abraço.........PH
Pedro.phds
Curtir tópico
+ 0Posts
19/03/2007
Diegus
No DBGRID também...
Liga o DataSource do DBEdit com o mesmo do DBGRID...
Assim q vc selecionar um registro dentro da grid o DataSource irá ponteirar para o registro selecionado...
Assim... o DBEDIT, quem tem o mesmo datasource do DBGRID... irá, automáticamente, ser alterado sem necessidade de código adicional...
Será que resolve?
Att.
Gostei + 0
19/03/2007
Pedro.phds
e ds do dbedit é ligado a um clientedataset pois são os mesmo dbedit da tela de cadastro..
Sera que o jeito que fiz esta correto???
Obrigado pela atenção
Gostei + 0
19/03/2007
Michelli88
Se voce quer jogar o q ta no DBGrid para um TEdit, nao precisa usar um TDBEdit.
no evento OnCellClick do DBGrid1, coloque o seguinte código:
Edit1.Text := DBGrid1.SelectedField.Text;
Gostei + 0
20/03/2007
Pedro.phds
Seguinte desse jeito da certo mais eu preciso é para poder editar os campos!!
E estou tentando fazer na mesma tela do cadastro...
VC sabe algum jeito.
Obrigado
Gostei + 0
20/03/2007
Diegus
Você tem uma tela com um DBGRID ligado a um datasource... que está ligado a uma query... certo....
Vc tem dbedits ligado a outro datasource.....
Não consegui entender esta parte.... esclarece mais q estou pronto pra te ajudar...
Se vc quer editar os dados do dbgrid pelo dbedit.. é só ligar no mesmo datasource...
Estamos ai...
Gostei + 0
20/03/2007
Pedro.phds
seguinte tenho uma tela de cadastro com os dbedits ligados a um Data Source por sua vez ligado a um IBCliente Data Set.
Esta funcionando bem..
Nesta tela tenho um botão pesquisar e que chama um tela de pesquisa com um dbgrid e um edit o dgrid é ligado a um data source local que é ligado a uma query para executar os comandos sql.
Quero fazer o seguinte clicar em uma linha do dbgrid e ele jogue osses valores para os dbedit da tela de cadastro para poder editalos e salvalos..
mas se eu jogo como o .text do dbedit assim que clico no dbedit ele volta pra primeira registro da minha tabela naum deixando eu editar o registro selecionado no dbgrid..
Escrevendo é foda mais acho que é isso!!
Obrigado pela atenção
Gostei + 0
20/03/2007
Marco Salles
não sei se é o seu caso mas se voce tiver usando o BDE com query , em algumas consultas mais ´complicadas´ , os Registros não são passíveis de edição.
Voce tem que usar o Componente TupdateSql para ´Libera-los´...
Gostei + 0
20/03/2007
Diegus
Faz o seguinte então: (Vê se eh isso)
Quando vc selecionar o registro da grid ele vai ter um ID.. salva essa ID numa variável global na tela de pesquisa... (Se quiser)
Quando der ok, da um locate na query da tela de cadastro...
query.locate(´CODIGO´, Pesquisa.ID, []);
Ai a query da tela de cadastro vai estar ponteirada...
Verifique se vc nao esta abrindo a query no activate da tela de cadastro..
Vê se ajuda...
Estamos ae
Gostei + 0
20/03/2007
Pedro.phds
[/code]DM.DS_Pessoa.DataSet:=DataSource.DataSet;
ai ele seta certinho o registro mais naum deixa editar os dbedts o botão editar esta com o fonte assm:
begin
if not CDS_Pessoa.Active then
begin
CDS_Pessoa.PacketRecords:= 10;
CDS_Pessoa.Open;
end;
CDS_Pessoa.Edit;
PanelNovo.Visible:=False;
PanelConfirma.Visible:=True;
BitBtnConfirma.Caption:=´&Confirma´;
F_PesqPessoa.ShowModal;
end;
Sera que tme algo errado???
Gostei + 0
20/03/2007
Diegus
Vc tem uma tela de cadastro e uma tela de pesquisa...
Na tela de cadastro vc tem os procedimentos padrões...
Editar e tal...
Na tela de pesquisa tem outra query somente para a pesquisa.. .
No cadastro tem um DataSource funcionando certo.. quando vc navega nos registros vc consegue alterar....
No botão pesquisar...
Vc vai chamar o form de pesquisa com FrmPesquisa.SHOWMODAL.. ai vai selecionar o dado que vc quer alterar la e dar OK...
O DBGRID ta ligado a esta query local da tela de pesquisa... .
Declara uma variável pública
Public ID : integer;
Quando vc der ok...
vc vai fazer o seguinte:
if querypesquisaID.asInteger <> 0 then ID := querypesquisaID.asInteger Close;
Nisso vc salvou o codigo do registro selecionado no grid e fechou a tela de pesquisa e está retornando para a linha seguinde depois do SHOWMODAL que vc deu la em cima...
Depois do ShowModal.. vc vai colocar
queryCadastro.Locate(´CODIGO_TABELA´, ´FrmPesquisa.ID, []);
No botão editar vc vai dar um EDIT normal.. pq pra editar vc tem q ter os dados na tela...
queryCadastro.Edit...
No botao salvar...
queryCadastro.Post;
Uma dica... vejo q vc ta controlando o estado dos botão em cada botão...
Vai no Evento OnEstateChange do DataSource do cadastro e coloca o seguinte:
if queryCadastro.State in [dsInsert, dsEdit] then begin BotaoNovo.Enabled := False; BotaoExcluir.Enabled := False; BotaoSalvar.Enabled := True; BotaoCancelar.Enabled := true; end else begin BotaoNovo.Enabled := True; BotaoExcluir.Enabled := True; BotaoSalvar.Enabled := false; BotaoCancelar.Enabled := false; end;
Continuei meio confuso mas vê se isso ajuda...
Gostei + 0
20/03/2007
Pedro.phds
E naum a query!!!
Gostei + 0
20/03/2007
Diegus
Não tem problema.. ao invés de query coloca o nome do CDS..
locate funciona tanto para query como para cds...
att.
Gostei + 0
20/03/2007
Pedro.phds
queryCadastro.Locate(´CODIGO_TABELA´, ´FrmPesquisa.ID, []);
Valew
Gostei + 0
20/03/2007
Diegus
queryCadastro.Locate(´CODIGO_TABELA´, ´FrmPesquisa.ID, []);
O locate faz a localização (rsrsrs)
os parâmetros são:
[b:41a0fdc577]´CODIGO_TABELA´[/b:41a0fdc577] = Nome da chave primária da sua tabela no CDS... provavelmente deve ter um CODIGO ..
[b:41a0fdc577]FrmPesquisa.ID[/b:41a0fdc577] = Nome da variável quer vc setou la na tela de pesquisa q eu coloquei para vc... quando vc declarou em Public e quando deu o OK vc setou este ID com o valor do registro selecionado....
[b:41a0fdc577][][/b:41a0fdc577] parâmetros para pesquisa... se vc quer pesquisar somente parte ou todo... no caso vazio para nao distinguir...
Estes parâmetros vc vai trocar ai de acordo com os seus dados...
Estamos a disposição!
Gostei + 0
20/03/2007
Pedro.phds
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)