Atualização de Tabela (DBLookupComboBox )

29/11/2016

0

Ola pessoal.

Estou tendo um problema pra atualizar minhas tabelas no Delphi quando eu faco uma inserção.

Vamos la.

Tenho um formulário chamado de fTecidos e outro formulário chamado de fFornecedores

Imagem do formulário fTecidos
[url]http://prntscr.com/dd105l[/url]

Imagem do formulário fFornecedores
[url]http://prntscr.com/dd10mm[/url]

Vamos supor que estou fazendo um cadastro de tecido e no ato do cadastro não tenho cadastrado o fornecedor do tecido, então eu criei um atalho para abrir o formulário de Fornecedor [url]http://prntscr.com/dd1169[/url] no evento onclick do LabelFORNECEDOR coloquei o seguinte evento:
procedure TfTecidos.LabelFORNECEDORClick(Sender: TObject);
begin
fProcedures.CriarFormulario(TfFornecedores,fFornecedores);
Lookup.ibAuxFornecedores.Close;
Lookup.ibAuxFornecedores.Open;
Lookup.ibAuxFornecedores.First;
end;


É aberto o cadastro de Fornecedores. Preencho todos os campos necessários e o campo que me interessa na tabela Tecidos é o campo Fornecedor [url]http://prntscr.com/dd1274[/url]. La no formulário fTecidos coloquei um DBLookupComboBox (ele esta funcionando perfeitamente). Quando eu fecho o formulário de Fornecedor é pra ele atualizar o DBLookupComboBox correspondente ao Fornecedor dentro do formulário fTecidos.

Imagem do meu DM
[url]http://prntscr.com/dd132o[/url]

Imagem do DM que fiz pra deixar os Lookups
[url]http://prntscr.com/dd13r1[/url] (esse DM e de onde faço todas as ligações entre tabelas utilizando os DBLookupComboBox)

Comando do botão SAIR do formulário fFornecedores
procedure TfFornecedores.SpeedButtonSAIRClick(Sender: TObject);
//SAIR DA JANELA CADASTRO DE FORNECEDORES
begin
Close;
BaseDados.tabelaFornecedores.Cancel;
BaseDados.tabelaFornecedores.Refresh;
end;


Comando do botão GRAVAR do formulario fFornecedores

Comando do botão NOVO do formulário fTecidos
procedure TfTecidos.SpeedButtonNOVOClick(Sender: TObject);
//NOVO REGISTRO
begin
DBEditTECIDO.Enabled:=True; //ATIVAR OS CAMPOS PARA EDICAO
DBEditCOMPOSICAO.Enabled:=True;
DBEditLARGURA.Enabled:=True;
DBEditFORNECEDOR.Enabled:=True;
DBLookupComboBoxCOMPOSICAO.Enabled:=True;
DBLookupComboBoxFORNECEDOR.Enabled:=True;
//SMDBGrid1.Enabled:=True; // ATIVAR O DBGRID (SMDBGRID)
          try

            Lookup.ibAuxComposicoes.Open;
            Lookup.ibAuxComposicoes.Last;

            Lookup.ibAuxFornecedores.Open;
            Lookup.ibAuxFornecedores.Last;

          BaseDados.tabelaTecidos.Last;
          PageControl1.TabIndex := 1;
          DBEditTecido.SetFocus;
          BaseDados.tabelaTecidos.Append;
         except
          ShowMessage('Operação Inválida!');
         end;
end;



Quero que ao clicar no botão SAIR ou GRAVAR do formulario fFornecedor, seja atualizado o DBLookupComboBox (DBLookupComboBoxFORNECEDOR) do formulário fTecidos.

abaixo criei um link demostrando o meu problema em vídeo para um melhor entendimento.
[url]https://www.sendspace.com/file/s3vhzq[/url]

Conto com a ajuda de vocês.

meu zap é 85 996979902 (Rubens)
meu email é rubens.pena7@gmail.com
RaidCall é 10046124
Rubens Pena

Rubens Pena

Responder

Posts

29/11/2016

Rubens Pena

Boa noite. Alguém pode me ajudar....?
Responder

30/11/2016

Rubens Pena

alguem?
Responder

01/12/2016

Raimundo Pereira

Quantas query você está usando?
1 Para seu form tecidos.
1 Para seu Lookup

Por dentro de um form, você está chamando sua tela de cadastro.
Então após realizar o cadastro, tente realizar o close da tabela.
e ative novamente.

Dica: Uso uma rotina mais prática.
Ao invés de usar o Lookup, optei em criar uma função que atualiza qualquer combobox.

No seu caso só precisaria chamar a função .
Se quiser posto a função aqui
Responder

01/12/2016

Araujo Junior.

Rubens, para atualização de dados de um lookupcombobox basta atualizar o Dataset que está vinculado ao mesmo.

FFornecedor.ShowModal;
ComboxBox.ListSource.Refresh;
Responder

01/12/2016

Rubens Pena

Boa noite amigos P2 e Araujo Junior.

Araujo estou colocando o seguinte comando como segue na imagem e ao colocar o ponto (.) não me da a opção Refresh

[url]http://prntscr.com/de9uoh[/url]
Responder

01/12/2016

Raimundo Pereira

Dblookupcombobox1.ListOu.Datas.Refresh
Tente
Responder

02/12/2016

Rubens Pena

P2 tambem nao tem esse comando que voce passou acima o .listOu.Datas.Refresh

P2 me manda uma mensagem no meu email. pra eu te add

rubens.pena7@gmail.com
Responder

02/12/2016

Rubens Pena

Araujo Junior. Voce pode me add no seu seu email e me enviar um email pra eu te add no meu tambem.

rubens.pena7@gmail.com

Meu projeto continua parado por causa desse detalhe que não esta dando certo. Quase duas semanas eu pesquisando pesquisando e nada.
Responder

02/12/2016

Raimundo Pereira

rcpti.p2@gmail.com
O comando ficou incorreto ao postar.

Comando Correto
DBLookupComboBox1.ListSource.DataSet.Refresh;
Responder

02/12/2016

Rubens Pena

Boa noite P2. Nao deu certo. Te passei um email.
Responder

02/12/2016

Rubens Pena

Eu uso o firebird junto com ibexpert mais a palheta InterBase do Delphi.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

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

Aceitar