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.