DUVIDA SOBRE ATUALIZAR DADOS DOS FORMS
Na aplicação que estou fazendo, o usuário pode abrir vários forms ao mesmo tempo.
O Form1 altera dados que também aparecem em Form2.
Gostaria que Form2 mostrasse as novas informações imediatamente, mas ele só faz isso se for fechado e reaberto.
Um outro problema é que se em Form2 um registro estiver em edição e o usuário alterar algo em Form1, vai ficar difÃcil atualizar Form2 sem perder os dados que estão em edição.
Fico meio confuso com essa situação. Alguém teria alguma ideia?
Obrigado.
Citação::
Voce pode declarar uma variavel publica e jogar os valores nela e atualizar com timer
Será que isso não vai sobrecarregar o banco de dados e o sistema se o intervalo entre as atualizações for pequeno?
E o caso em que Form2 está em edição de um registro? Qualquer atualização pode implicar na perda dos dados digitados.
Citação::
Se você tem uma ordem em que os dados devem ser incluÃdos, ela deve ser respeitada. Se os dados do form2 dependem dos dados do form1, ao fechar o form1, os dados do form2 seriam perdidos. Isso deve ser feito para preservar a estrutura dos dados.
Verdade.
Mas ainda estou em dúvida sobre como fazer a atualização do Form2.
Estou até pensando em impedir alterações em Form1 se Form2 estiver aberto, mas também não acho que seja uma solução decente e sim um quebra-galho.
Mais ideias?
Citação:Estou até pensando em impedir alterações em Form1 se Form2 estiver aberto, mas também não acho que seja uma solução decente e sim um quebra-galho.
Bem pelo contrário, registro aberto para alteração, é transação iniciada, ou seja, ninguém mais pode alterar esse registro até que quem o abriu primeiro conclua a operação, seja cancelando ou gravando...
Citação::
Estou até pensando em impedir alterações em Form1 se Form2 estiver aberto, mas também não acho que seja uma solução decente e sim um quebra-galho.
Bem pelo contrário, registro aberto para alteração, é transação iniciada, ou seja, ninguém mais pode alterar esse registro até que quem o abriu primeiro conclua a operação, seja cancelando ou gravando...
é que o Form1 altera seu próprio cadastro e, de forma indireta, alteraria o registro mostrado em Form2, que pertence a outro cadastro.
Citação:registro aberto para alteração, é transação iniciada
Exatamente, não se pode alterar um registro sendo que a insercão do mesmo ainda não foi concluÃda, seria como o KERPLUNK falo mesmo, se um é dependente do outro pode se usar a logica que fechando um form atualiza o outro, agora se voce quer que atualize imediatamente após inserido o registro usa o timer que fica verificando a variavel, assim que ela for atualizada os dados do form também serão, resumindo, faca os testes cara..
Também, quando a exibição de dados, caso estes já estejam sendo exibidos em um form, somente devem ser exibidos no outro se for muito necessário e vale sempre a situação dos dados de quando o form foi chamado.
Citação::
O ideal é fazer a manutenção de dados (inclusão, alteração e exclução) em apenas um unico formulário e não em vários, pois isso gera redundancias de programação e você vai ter mais trabalho quando precisar adicionar, alterar ou excluir algum campo dessa manutenção.
Também, quando a exibição de dados, caso estes já estejam sendo exibidos em um form, somente devem ser exibidos no outro se for muito necessário e vale sempre a situação dos dados de quando o form foi chamado.
Penso que não expliquei muito bem a situação.
Form1 atua sobre um Cadastro de Bancos/Agências e Form2 atua sobre um Cadastro de Clientes e os dois forms podem ser abertos na tela.
O usuário percebe que o nome da agência no registro que está vendo em Form2 (Clientes) possui um erro de digitação e deseja corrigir.
Isso ele faz em Form1 (Bancos). Quando ele salva os dados corrigidos da agência (Form1), essa informação deveria aparecer em Form2 (Clientes) que está aberto na tela. Mas isso só acontece se Form2 (Clientes) for fechado e reaberto, quando deveria aparecer logo após a correção.
Então, como atualizar essa informação em Form2 (Clientes) e como fazer isso sem perder os dados já digitados, caso seja um registro novo?
Essa é toda a questão. Talvez eu não tenha explicado muito bem no inÃcio do tópico.
Tem alguma outra ideia?