sexta-feira, 19 de setembro de 2008

Como atualizar subform usando Event

Nos deparamos com o seguinte problema, temos um programa de Ordem de Serviço que possui dois subforms, um para os itens e outro dentro deste para as atividades do item. Quando estávamos posicionados nas atividades do item (3ª task), realizamos algumas alterações nos registros e queríamos atualizar os dados dos itens (2ª task) sem sair da task de atividades, ou seja, precisamos atualizar o dataview da task pai. Para isso encontrei uma solução que gostaria de compartilhar.




Tenho a seguinte estrutura no programa, a task principal abre a tabela Ordem de Serviço no Main Table. Nesta task tenho um form onde tenho alguns campos da O.S. e também um subform para os itens da O.S.
Na task filha, temos a abertura da tabela Itens da OS, no form desta task alguns campos do Item e também um subform para as atividades do Item da OS.
Na task Atividade da OS, também temos alguns campos no form e um botão chamado Atualizar Item. Quando clicar neste botão, vou atualizar todos os Itens da OS, neste caso, já vou querer ver as alterações nos registros.









Para resolver este problema, vamos criar um Evento (CTRL+U) na task inicial (O.S.) chamado AtualizarSubForm, adicionando um parâmetro neste evento que iremos chamar de p_nomeForm




Vamos implementar o evento na task e dentro do evento vamos adicionar um Raise Event SubForm Refresh, passando como parâmetro a variável p_nomeForm.



Para finalizar vamos alterar a propriedade do Event para Propagate=Yes

Agora quando estivermos posicionados nas atividades da O.S. conseguiremos disparar o evento da task inicial, passando como parâmetro o nome do subForm que desejamos atualizar, no meu caso ‘FormItem´.



Agora basta implementar em seus programas.

Boa sorte.

Maurício Ouriques

Nenhum comentário: