Versão atual:

Foco cabeçalho MVC

Senhores, Estou com um problema para montar a tela do print, quando chego no campo Observação, preciso gravar os dados no grid e limpar o cabeçalho e voltar o foco ao campo Produto.

O que não estou conseguindo fazer é a questão do foco.

Usando alguns exemplos que encontrei no fórum, o máximo que consegui e setar o foco ao carregar a tela e se clicar no grid e de volta no cabeçalho o foco vai para o campo Produto, mas nada após incluir um item no grid.

Usei a função abaixo:

//trecho da View
oView:SetAfterViewActivate({|oView| ViewActv(oView)})

Função para posicionar no campo ZA5_PROD, também tentei invocar essa função após incluir a linha, mas sem sucesso.

Static Function ViewActv(oView)

    oView:GetViewObj("ZA5MASTER")[3]:getFWEditCtrl("ZA5_PROD"):oCtrl:SetFocus()
Return

Print da tela, se alguém tiver uma dica de como pode ser feito, agradeço antecipadamente. Capturar.PNG


Edit. 18/03/2021 Consegui resolver

No evento bFocus da FWFormView, adicionei a função para posicionar o campo

Local bFocusZA6    := {|| ViewActv() }
oView:AddGrid("VIEW_ZA6", oStruZA6, "ZA6DETAIL",,{|| ViewActv() })

Também precisei de ajustar a função

Static Function ViewActv()
    oView    := FWViewActive()
    oView:Refresh('VIEW_ZA5')
    oView:GetViewObj("ZA5MASTER")[3]:getFWEditCtrl("ZA5_PROD"):oCtrl:SetFocus()
Return

Versões (2):

Ver a versão formatada

Foco cabeçalho MVC

Comentário

new question