DBGrid
Ola galera blz???
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
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
Curtidas 0
Respostas
Diegus
19/03/2007
No DBEDIT tem a propriedade DataSource...
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.
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
Pedro.phds
19/03/2007
certo mais o DS do Dgrid é ligado a uma query..
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
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
Michelli88
19/03/2007
Ola Pedro.
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:
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
Pedro.phds
19/03/2007
Ola Michele!!!
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
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
Diegus
19/03/2007
Vamos ver se eu entendi.
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...
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
Pedro.phds
19/03/2007
Ola Diego!!!
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
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
Marco Salles
19/03/2007
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.
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
Diegus
19/03/2007
Ahh.. to começando a entender..
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...
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
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
Pedro.phds
19/03/2007
Fiz assim ohh
[/code]DM.DS_Pessoa.DataSet:=DataSource.DataSet;With DM do
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;
[/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
Diegus
19/03/2007
Ta meio estranho...
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
Quando vc der ok...
vc vai fazer o seguinte:
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
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...
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:
Continuei meio confuso mas vê se isso ajuda...
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
Pedro.phds
19/03/2007
cara quase isso soh que para cadastrar eu uso Cliente data set..
E naum a query!!!
E naum a query!!!
GOSTEI 0
Diegus
19/03/2007
cara quase isso soh que para cadastrar eu uso Cliente data set..
E naum a query!!!
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
Pedro.phds
19/03/2007
Cara naume ntendi bem esse codigo:
Valew
queryCadastro.Locate(´CODIGO_TABELA´, ´FrmPesquisa.ID, []);
Valew
GOSTEI 0
Diegus
19/03/2007
Cara naume ntendi bem esse codigo:
Valew
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
Pedro.phds
19/03/2007
Fiz desse modo mais tem hora que funciona hora naum!!!
GOSTEI 0
Diegus
19/03/2007
Fiz desse modo mais tem hora que funciona hora naum!!!
Fala quando dá o erro...
Em qual situação..
GOSTEI 0
Pedro.phds
19/03/2007
Hora ele aponta o registro certo hora naum!!!
Valew
Valew
GOSTEI 0
Diegus
19/03/2007
Coloca o seu codigo fonte inteiro das duas telas aqui.... somente o .Pas...
Ai vou me situar melhor..
Valeu
Ai vou me situar melhor..
Valeu
GOSTEI 0
Pedro.phds
19/03/2007
Diegus Valew cara agora deu certo !!!
Desculpa a demora pra responder é que tava com uns problemas aqui...
Abraço ate a proxima.valew
Desculpa a demora pra responder é que tava com uns problemas aqui...
Abraço ate a proxima.valew
GOSTEI 0