Nesse vídeo demonstraremos a utilização das funções FWFldGet e FWFldPut, sendo que a primeira serve para buscar o valor de um campo e a segunda para atualizar o valor de um campo, ambas 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 zExe219 Exemplo de função que pega ou atribui um valor em um campo em MVC @type Function @author Atilio @since 20/02/2023 @see https://tdn.totvs.com/display/public/framework/FWFldGet e https://tdn.totvs.com/display/public/framework/FWFldPut @obs Função FWFldGet Parâmetros + cCampo , Caractere , Nome do Campo + nLinha , Numérico , Número da linha (quando se esta em uma GRID) + oModel , Objeto , Variável contendo o Modelo de Dados ativo na memória + lShowMsg , Lógico , .T. se exibe mensagem de erro ao tentar buscar o campo ou .F. se não Retorno + xRet , Indefinido , Conteúdo inserido no campo Função FWFldPut Parâmetros + cCampo , Caractere , Nome do Campo + xConteudo , Indefinido , Conteúdo que será atribuído + nLinha , Numérico , Número da linha (quando se esta em uma GRID) + oModel , Objeto , Variável contendo o Modelo de Dados ativo na memória + lShowMsg , Lógico , .T. se exibe mensagem de erro ao tentar preencher o campo ou .F. se não + lLoad , Lógico , .T. se força a atribuição de conteúdo no campo ou .F. se não Retorno + lRet , Lógico , .T. se o conteúdo foi atribuído ou .F. se não **** Apoie nosso projeto, se inscreva em https://www.youtube.com/TerminalDeInformacao **** /*/ User Function zExe219() Local aArea := FWGetArea() //Mostra a pergunta If FWAlertYesNo("Deseja utilizar as Funções (clique em Sim) ou deseja utilizar os métodos (clique em Não)?", "Atenção") fUsaFuncao() Else fUsaMetodo() EndIf FWRestArea(aArea) Return Static Function fUsaFuncao() Local aPergs := {} Local cDescri := FWFldGet("DA0_DESCRI") //Adicionando os parametros que serão digitados aAdd(aPergs, {1, "Descrição", cDescri, "", "NaoVazio()", "", ".T.", 80, .T.}) If ParamBox(aPergs, "Informe os parâmetros", , , , , , , , , .F., .F.) //Atualiza o valor cDescri := MV_PAR01 FwFldPut("DA0_DESCRI", cDescri) EndIf Return Static Function fUsaMetodo() Local aPergs := {} Local oModelPad := FWModelActive() Local cDescri := oModelPad:GetValue("DA0MASTER", "DA0_DESCRI") //Adicionando os parametros que serão digitados aAdd(aPergs, {1, "Descrição", cDescri, "", "NaoVazio()", "", ".T.", 80, .T.}) If ParamBox(aPergs, "Informe os parâmetros", , , , , , , , , .F., .F.) //Atualiza o valor cDescri := MV_PAR01 oModelPad:SetValue("DA0MASTER", "DA0_DESCRI", cDescri) EndIf 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, {"* Atualizar Descrição", "", {|| u_zExe219()}, "Atu. Descr"}) EndIf EndIf FWRestArea(aArea) Return xRet
Bom pessoal, por hoje é só.
Abraços e até a próxima.