Pessoal, tenho uma tela construída em MVC onde adicionei alguns grids sendo que em um destes grids eu informo o código de um cadastro customizado e no grid abaixo eu gostaria de carregar algumas informações relacionadas a este código que informei, porém preciso que este grid de baixo seja somente leitura e seja atualizado conforme navego no grid de cima. Já montei o model com os relacionamentos, porém ao incluir um novo registro, quando eu informo os códigos no grid acima eu não consigo atualizar o grid de baixo em tempo de execução. Há alguma forma de fazer um "reload" no grid abaixo para que ele mostre as informações relacionadas a linha que estou editando no grid de cima?
Vou colocar a imagem da minha tela para demonstrar melhor a minha necessidade.
Atenção: Esta publicação foi transferida automaticamente do fórum antigo, mas os anexos não foram incluídos.
Esse esquema de atualizar direto você vai conseguir manipulando diretamente os objetos dos grids criados:
_oModel := FWModelActive()
_oModelDET := _oModel:GetModel('nome do grid criado na funcao viewdef')
_oModelDET:Goline(numerodalinhadogrid)
_oModelDET:LoadValue("nome do campo da grid","conteudo a ser apresentado")
Após manipular os dados dos grids faça um refresh na view inteira para garantir que a tela seja atualizada:
_oview := FWViewActive()
_oview:Refresh()
Acrescente esse código na validação de cada campo do cabeçalho que você precisa que atualize os grids
Vou testar dessa forma. Obrigado Josué.
Bom dia,
Use o SETFIELDACTION no campo que precisa disparar a ação de preencher os grids abaixo ( oView:SetFieldAction('ZYF_CODPER', {|oView, cIDView, cField, xValue| fLoadGrid(oView, cIDView, cField, xValue )}) ) e utilize o SETVALUE para preencher ou apenas um REFRESH.