Post Anteriores:

1-Escopo do projeto aqui.

2-Introdução ao MVC aqui.

3-Criar update aqui.

Nos posts anteriores criamos toda a estrutura necessária para começarmos nosso projeto, nesse post criaremos a primeira rotina em MVC, essa rotina será responsável por disponibilizar os códigos de Despesas e Receitas para nós.

Prescisaremos incluir no nosso menu a rotina SPFIN01 – Cad. Despesa e Receita

O código está documentado para ajudar o entendimento da rotina, abaixo o código utilizado

 

#INCLUDE "PROTHEUS.CH"
#INCLUDE "FWMBROWSE.CH"
#INCLUDE "FWMVCDEF.CH"

/*/{Protheus.doc} SPFIN01
Tela de cadastro de despesa
@author
@since
@version 1.0
@project
/*/
User Function SPFIN01()
Local oBrowse   as Object
Private aRotina as ARRAY

// Instanciamento da Classe de Browse
oBrowse := FWMBrowse():New()

// Definição da tabela do Browse
oBrowse:SetAlias('ZRA')

// Titulo da Browse
oBrowse:SetDescription('Cadastro de Despesa ou Receita')

// Ativação da Classe
oBrowse:Activate()

Return Nil


/*/{Protheus.doc}
MenuDef definition
@author
@since
@version 1.0
@project
*/
Static Function MenuDef()
Local aRotina as array

aRotina := {}
ADD OPTION aRotina Title "Vizualizar" 	Action 'VIEWDEF.SPFIN01'	OPERATION MODEL_OPERATION_VIEW ACCESS   0 //View
ADD OPTION aRotina Title "Incluir"	    Action 'VIEWDEF.SPFIN01'	OPERATION MODEL_OPERATION_INSERT ACCESS 0 //Add
ADD OPTION aRotina Title "Alterar"      Action 'VIEWDEF.SPFIN01'   	OPERATION MODEL_OPERATION_UPDATE ACCESS 0 //Change
ADD OPTION aRotina Title "Deletar" 	    Action 'VIEWDEF.SPFIN01'    OPERATION MODEL_OPERATION_DELETE ACCESS 0 //Delete

/*
maneira simplificada
Será criado um menu padrão com as opções: Visualizar, Incluir, Alterar, Excluir, Imprimir e Copiar

Static Function MenuDef()
Return FWMVCMenu( 'SPFIN01' ))
*/

Return aRotina


/*/{Protheus.doc}
ModelDef definition
@author
@since
@version 1.0
@project
/*/
Static Function ModelDef()
Local oStrZRA 		as Object
Local oModel 		as Object  // Modelo de dados que será construído

oModel 		:= MPFormModel():New("_SPFIN01") // Cria o objeto do Modelo de Dados
oStrZRA		:= FWFormStruct(1, "ZRA") // Cria a estrutura a ser usada no Modelo de Dados
oModel:AddFields("ZRAMASTER",, oStrZRA)// Adiciona ao modelo um componente de formulário

// Adiciona a descrição do Modelo de Dados
oModel:SetDescription( 'Cadastro despesa ou receita' )

// Retorna o Modelo de dados
Return oModel


/*/{Protheus.doc}
ViewDef definition
@author
@since
@version 1.0
@project
/*/
Static Function ViewDef()
// Cria um objeto de Modelo de dados baseado no ModelDef() do fonte informado
Local oModel := FWLoadModel( 'SPFIN01' )

// Cria a estrutura a ser usada na View
Local oStruZRA := FWFormStruct( 2, 'ZRA')

// Interface de visualização construída
Local oView

// Cria o objeto de View
oView := FWFormView():New()

// Define qual o Modelo de dados será utilizado na View
oView:SetModel( oModel )

// Adiciona no nosso View um controle do tipo formulário  // (antiga Enchoice)
oView:AddField( 'VIEW_ZRA', oStruZRA, 'ZRAMASTER' )

// Criar um "box" horizontal para receber algum elemento da view
oView:CreateHorizontalBox( 'TELA' , 100 )

// Relaciona o identificador (ID) da View com o "box" para exibição
oView:SetOwnerView( 'ZRAMASTER', 'TELA' )

Return oView

 

 

Não deixe de assinar a nossa newsletter e fica por dentro de todos os post.

O código fonte desse e outros exemplos podem ser encontrados em nosso git.

Post interessantes:

Aprenda a instalar o Protheus aqui.

Retornar datas por extenso aqui.

Barras de progresso aqui.

Dúvidas e sugestões, entre em contato.

Obrigado e até a próxima!

Categorias: ADVPL - MVC

0 comentário

Deixe um comentário