Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Logo abaixo é apresentado uma tabela que será preenchida por Campos que serão utilizados no Filtro da Consulta da Rotina. Esses campos obrigatoriamente tem de ser da Rotina indicada no campo Rotina MVCA Rotina MVC obrigatoriamente tem de ter um Modelo com o pós fixo "MASTER" conforme exemplo abaixo. Se a rotina não tiver um modelo MASTER o sistema não irá encontrar a estrutura.

Obs: A rotina precisa estar publicada e disponível para consultas REST apontando para a Classe JPagPfsModel. Para disponibilizar o modelo siga a documentação do FWRestModel.

Bloco de código
languagevb
themeRDark
titleExemplo de MVC
collapsetrue
#INCLUDE "PROTHEUS.CH"
#INCLUDE "FWMVCDEF.CH"

// Publicando o fonte
PUBLISH USER MODEL REST NAME RSB001 SOURCE RSB001 RESOURCE OBJECT JPagPfsModel //Modelo Teste

//-------------------------------------------------------------------
/*/{Protheus.doc} MenuDef
Menu Funcional

/*/
//-------------------------------------------------------------------
Static Function MenuDef()
Local aRotina := {}

Return aRotina

//-------------------------------------------------------------------
/*/{Protheus.doc} ViewDef
Modelo de exemplo
/*/
//-------------------------------------------------------------------
Static Function ViewDef()
Local oStruct := FWFormStruct(2, "Z01")
Local oModel := FWLoadModel("RSB001")
Local oView := Nil

	oView := FWFormView():New()
	oView:SetModel(oModel)
	oView:AddField("RSB001_VIEW", oStruct, "Z01MASTER")
	oView:CreateHorizontalBox("FORMFIELD", 100)
	oView:SetOwnerView("RSB001_VIEW", "FORMFIELD")
	oView:SetDescription("Teste Rotinas Customizadas - Contas a Pagar")

Return (oView)

//-------------------------------------------------------------------
/*/{Protheus.doc} ModelDef
Modelo de exemplo
/*/
//-------------------------------------------------------------------
Static Function Modeldef()
Local oStruct := FWFormStruct(1, "Z01")
Local oModel := NIL

	oModel:= MPFormModel():New("RSB001", /*Pre-Validacao*/, {|oModel| RSB1TOK(oModel)}/*Pos-Validacao*/, /*Commit*/, /*Cancel*/)
	oModel:AddFields("Z01MASTER", Nil, oStruct, /*Pre-Validacao*/, /*Pos-Validacao*/)
	oModel:SetDescription("Teste Rotinas Customizadas - Contas a Pagar")
	oModel:GetModel("Z01MASTER"):SetDescription("Teste Rotinas Customizadas - Contas a Pagar")

	oModel:SetPrimaryKey({'Z01_FILIAL','Z01_CODIGO'})

Return (oModel)

//-------------------------------------------------------------------
/*/{Protheus.doc} JMDCPGOK
Exemplo de Validação de modelo

/*/
//-------------------------------------------------------------------
Static function RSB1TOK(oModel)
Local lRet := .T.
Local nOpc := oModel:GetOperation()
Local oModelZ01 := oModel:GetModel("Z01MASTER")

	If nOpc < 5
		If Upper(AllTrim(oModelZ01:GetValue("Z01_SETOR"))) == "ERROR"
			lRet := JurMsgErro(EncodeUTF8("Erro de validação do campo"))
		EndIf
	EndIf

Return lRet

...


Orientação para o cadastro das rotinas:

...