Fazendo um backup das linhas de grids em MVC com FWSaveRows e FWRestRows – Maratona AdvPL e TL++ 244

Nesse vídeo demonstraremos a utilização das funções FWSaveRows e FWRestRows, que servem para fazer um backup e restaurar das linhas dos browses em telas em MVC.

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

//Bibliotecas
#Include "Totvs.ch"

/*/{Protheus.doc} User Function zExe244
Armazena a posição na grid da tela e depois volta
@type Function
@author Atilio
@since 20/02/2023
@see https://tdn.totvs.com/display/public/framework/FWSaveRows e https://tdn.totvs.com/display/public/framework/FWRestRows
@obs 

    Função FWSaveRows
    Parâmetros
        + oModel         , Objeto          , Modelo de dados em memória
    Retorno
        + aRet           , Array           , Array com as posições que serão recuperadas

    Função FWRestRows
    Parâmetros
        + aIDs           , Array           , Array com as posições
        + oModel         , Objeto          , Modelo de dados
    Retorno
        Função não tem retorno

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

User Function zExe244()
    Local aArea := FWGetArea()
    Local aSaveLines := FWSaveRows()
    //Pegando os modelos de dados
    Local oModelPad  := FWModelActive()
    Local oModelGrid := oModelPad:GetModel('DA1DETAIL')

    //Adicionando uma linha
    oModelGrid:AddLine()

    FWRestRows(aSaveLines)
    FWRestArea(aArea)
Return

/*/{Protheus.doc} User Function OMSA010
Ponto de Entrada no Cadastro de Tabelas de Preço
@author Daniel Atilio
@since 28/02/2022
@version 1.0
@type function
@obs Codigo gerado automaticamente pelo Autumn Code Maker
     *-------------------------------------------------*
     Por se tratar de um p.e. em MVC, salve o nome do 
     arquivo diferente, por exemplo, OMSA010_pe.prw 
     *-----------------------------------------------*
     A documentacao de como fazer o p.e. esta disponivel em https://tdn.totvs.com/pages/releaseview.action?pageId=208345968 

     Associe "FORM" com banco de dados, com ModelDef
     Associe "MODEL" com visualização, com ViewDef
@see http://autumncodemaker.com
/*/

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, {"* Salvar e Voltar a Posição",  "", {|| u_zExe244()}, "Salv. Volt. Pos."})
		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