Fórum DataModule x MDI Forms #194655
12/11/2003
0
Pessoal, tenho uma dúvida cruel relacionado a centralizar tabelas em um datamodule em uma aplicação MDI.
Vou tentar dar um exemplo prático.
Vamos supor que na aplicacao eu tenha um DataModule e que uma das tabelas seja ´tblClientes´ por exemplo.
Essa tabela eh aberta logo que a aplicacao se inicia.
O formulario principal é do tipo ´MDIForm´.
Agora que entra o problema. Esta aplicacao tem um formulario MDIChild chamado ´frmClientes´ que é o cadastro de clientes. Se eu chamar este formulario ´frmClientes.Show´ nao ´ShowModal´, quando aberto ele ira mostrar os dados do registro atual da tabela ´tblClientes´.
Se eu chamar outro formulario MDIChild ´frmPedido.Show´ por exemplo, e neste formulario eu tiver um DBLookupCombobox que lista os registros de ´tblClientes´. Vale lembrar que estes formularios estao abertos ao mesmo tempo ´.Show´.
Quando eu selecionar um cliente no DBlookupComboBox, o formulario ´frmClientes´ tambem muda, ou seja, ele posiciona para o registro que eu selecionei no dbLookupcombobox que esta em outro formulario.
Eu dei este exemplo para tentar demostrar a minha duvida. Agora eu pergunto. Existe uma maneira de criar uma aplicacao MDI que utilize um DataModule para centralize as tabelas, e varios formularios que utilizem uma tabela sem que as alteracoes feitas em um formulario influenciem outro formulario que utilize a mesma tabela ?
Pode parecer confuso, mais eu realmente queria ter uma explicacao sobre esse assunto ou ateh mesmo uma caminho.
Desde já agradeço!
[]´s
Thiago
Vou tentar dar um exemplo prático.
Vamos supor que na aplicacao eu tenha um DataModule e que uma das tabelas seja ´tblClientes´ por exemplo.
Essa tabela eh aberta logo que a aplicacao se inicia.
O formulario principal é do tipo ´MDIForm´.
Agora que entra o problema. Esta aplicacao tem um formulario MDIChild chamado ´frmClientes´ que é o cadastro de clientes. Se eu chamar este formulario ´frmClientes.Show´ nao ´ShowModal´, quando aberto ele ira mostrar os dados do registro atual da tabela ´tblClientes´.
Se eu chamar outro formulario MDIChild ´frmPedido.Show´ por exemplo, e neste formulario eu tiver um DBLookupCombobox que lista os registros de ´tblClientes´. Vale lembrar que estes formularios estao abertos ao mesmo tempo ´.Show´.
Quando eu selecionar um cliente no DBlookupComboBox, o formulario ´frmClientes´ tambem muda, ou seja, ele posiciona para o registro que eu selecionei no dbLookupcombobox que esta em outro formulario.
Eu dei este exemplo para tentar demostrar a minha duvida. Agora eu pergunto. Existe uma maneira de criar uma aplicacao MDI que utilize um DataModule para centralize as tabelas, e varios formularios que utilizem uma tabela sem que as alteracoes feitas em um formulario influenciem outro formulario que utilize a mesma tabela ?
Pode parecer confuso, mais eu realmente queria ter uma explicacao sobre esse assunto ou ateh mesmo uma caminho.
Desde já agradeço!
[]´s
Thiago
Flessak
Curtir tópico
+ 0
Responder
Posts
13/11/2003
Danielclubedelphi
ola.
Acho q isso esta ocorrendo pq vc usa a mesma tabela para os dois formulários.
Eu prefiro deixar no datamodule apenas o Database e as querys nos formulários. Acaba ficando um pouco mais trabalhoso mas dá pra ter um controle um pouco maior usando SQL dinâmicos, etc.
Acho q isso esta ocorrendo pq vc usa a mesma tabela para os dois formulários.
Eu prefiro deixar no datamodule apenas o Database e as querys nos formulários. Acaba ficando um pouco mais trabalhoso mas dá pra ter um controle um pouco maior usando SQL dinâmicos, etc.
Responder
Gostei + 0
13/11/2003
Mitsalito
frmClientes.Show no MDI é incorreto tente
frmClientes := TfrmClientes.Create(self);
Depois quando vc chama outro formulário o registro que está sendo alterado é o mesmo por isso toda mudança que acontecer um dos formul´arios de clientes poderam ser vistas no outro formulário, eu diria para vc não permitir que se abra dois formulários para clientes, mas caso vc tenha a nescessidade de abrir os dois formulários tente deixar a tabela no formulario de cliente.
o que vc quer fazer não pode ... ou melhor é inviavel e incorreto
frmClientes := TfrmClientes.Create(self);
Depois quando vc chama outro formulário o registro que está sendo alterado é o mesmo por isso toda mudança que acontecer um dos formul´arios de clientes poderam ser vistas no outro formulário, eu diria para vc não permitir que se abra dois formulários para clientes, mas caso vc tenha a nescessidade de abrir os dois formulários tente deixar a tabela no formulario de cliente.
o que vc quer fazer não pode ... ou melhor é inviavel e incorreto
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)