Interceptando modelo ou view em MVC com FWModelActive e FWViewActive – Maratona AdvPL e TL++ 233

Nesse vídeo demonstraremos a utilização das funções FWModelActive e FWViewActive, que servem para buscar o modelo de dados e a visão abertos em memória.

Abaixo o código fonte desenvolvido para o exemplo em vídeo acima:

//Bibliotecas
#Include "Totvs.ch"
#Include "FWMVCDef.ch"

/*/{Protheus.doc} User Function zExe233
Busca o Modelo ou a Visualização em memória
@type Function
@author Atilio
@since 20/02/2023
@see https://tdn.totvs.com/display/public/framework/FWModelActive e https://tdn.totvs.com/display/public/framework/FWViewActive
@obs 

    **** Apoie nosso projeto, se inscreva em https://www.youtube.com/TerminalDeInformacao ****
/*/

User Function zExe233()
    Local aArea       := FWGetArea()
    Local oModel      := FWModelActive()
    Local oModelGrid  := oModel:GetModel("DA1DETAIL")
    Local oView       := FWViewActive()

    //Altera um campo da memória
    oModel:SetValue("DA0MASTER", "DA0_DESCRI", "Olá - " + Time())

    //Posiciona na terceira linha e atualiza a tela
    oModelGrid:GoLine(3)
    oView:Refresh()

    FWRestArea(aArea)
Return

/*/{Protheus.doc} User Function OMSA010
Ponto de Entrada na Tabela de Preços em MVC
@author Atilio
@since 09/10/2022
@version 1.0
/*/

User Function OMSA010()
	Local aArea := FWGetArea()
	Local aParam := PARAMIXB 
	Local xRet := .T.
	Local oObj := Nil
	Local cIdPonto := ""
	Local cIdModel := ""
	
	//Se tiver parametros
	If aParam != Nil
		
		//Pega informacoes dos parametros
		oObj := aParam[1]
		cIdPonto := aParam[2]
		cIdModel := aParam[3]

		//Para a inclusao de botoes na ControlBar 
		If cIdPonto == "BUTTONBAR" 
			xRet := {} 
			aAdd(xRet, {"* Atualizar Tela",        "", {|| u_zExe233()}, "Atu. Tela"})
		EndIf
		
	EndIf
	
	FWRestArea(aArea)
Return xRet

Bom pessoal, por hoje é só.

Abraços e até a próxima.

Dan (Daniel Atilio)
Cristão de ramificação protestante. Especialista em Engenharia de Software pela FIB, graduado em Banco de Dados pela FATEC Bauru e técnico em informática pelo CTI da Unesp. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor e mantenedor do portal Terminal de Informação.

Deixe uma resposta

Terminal de Informação