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!
0 comentário