Árvore de páginas

Versões comparadas

Chave

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

...

Bloco de código
languageactionscript3
titleMVC - Modelo3
collapsetrue
#INCLUDE 'PROTHEUS.CH'
#INCLUDE 'FWMVCDEF.CH'
#INCLUDE 'TBICONN.CH'
#INCLUDE 'TOPCONN.CH'
#INCLUDE 'TOTVS.CH'

/*/{Protheus.doc} ${User_Function}
${Descricao}
@author ${user}
@since ${date}
@version undefined
@type function
/*/
User Function ${User_Function}()

Local oBrowse as object

//Criação do objeoto Browse
oBrowse := FWMBrowse():New()

//Seta o Alias Browse
oBrowse:SetAlias('${Alias}')

//Seta a descrição do Browse
oBrowse:SetDescription('${Descricao}')

//Adicao de legendas
//oBrowse:AddLegend( "U01_STATUS =='A'", "GREEN"    , "Aluno Ativo")

//Grafico
oBrowse:SetAttach(.T.)

//Ativa o Browse
oBrowse:Activate()

Return()

//-------------------------------------------------------------------
/*/{Protheus.doc} MenuDef
${Descricao} - Menu Funcional
@author ${user}
@since ${date}
@obs     Primeiro fonte em MVC
/*/
//-------------------------------------------------------------------
Static Function MenuDef()
	Local aRotina as array

	aRotina := {}

	ADD OPTION aRotina TITLE 'Pesquisar'  ACTION 'PesqBrw'          OPERATION 1 ACCESS 0
	ADD OPTION aRotina TITLE 'Visualizar' ACTION 'VIEWDEF.${User_Function}'     OPERATION 2 ACCESS 0
	ADD OPTION aRotina TITLE 'Incluir'    ACTION 'VIEWDEF.${User_Function}'     OPERATION 3 ACCESS 0
	ADD OPTION aRotina TITLE 'Alterar'    ACTION 'VIEWDEF.${User_Function}'     OPERATION 4 ACCESS 0
	ADD OPTION aRotina TITLE 'Excluir'    ACTION 'VIEWDEF.${User_Function}'     OPERATION 5 ACCESS 0
	ADD OPTION aRotina TITLE 'Imprimir'   ACTION 'VIEWDEF.${User_Function}'     OPERATION 8 ACCESS 0
	ADD OPTION aRotina TITLE 'Copiar'     ACTION 'VIEWDEF.${User_Function}'     OPERATION 9 ACCESS 0

Return aRotina

//-------------------------------------------------------------------
/*/{Protheus.doc} ModelDef
${Descricao} - Modelo de Dados
@author ${user}
@since ${date}
@obs     Primeiro fonte em MVC
/*/
//-------------------------------------------------------------------
Static Function ModelDef()

	// Cria a estrutura a ser usada no Modelo de Dados
	Local oStru${Alias} as array
	Local oStru${Alias2} as array
	Local oModel as object

	oStru${Alias} := FWFormStruct( 1, '${Alias}', /*bAvalCampo*/,/*lViewUsado*/ )
	oStru${Alias2} := FWFormStruct( 1, '${Alias2}', /*bAvalCampo*/,/*lViewUsado*/ )

	// Cria o objeto do Modelo de Dados
	oModel := MPFormModel():New('${User_Function}M', /*bPreValidacao*/, /*bPosValidacao*/, /*bCommit*/, /*bCancel*/ )

	// Adiciona ao modelo uma estrutura de formulário de edição por campo
	oModel:AddFields( '${Alias}MASTER', /*cOwner*/, oStru${Alias}, /*bPreValidacao*/, /*bPosValidacao*/, /*bCarga*/ )

	// Adiciona ao modelo uma estrutura de Grid
	oModel:AddGrid("${Alias2}DETAIL", "${Alias}MASTER"/*cOwner*/, oStru${Alias2} , ,/*bLinePost*/,/*bPre*/,/*bPost*/,/*Carga*/)

	// Relacionamento entre os modelos
	oModel:SetRelation("${Alias2}DETAIL",{{"${Alias2}_FILIAL",'xFilial("${Alias2}")'},{"${Alias2}_CODIGO","${Alias}_CODIGO"}},${Alias2}->(IndexKey()))

	//Chave Primaria
	oModel:SetPrimaryKey( {"${Alias}_FILIAL", "${Alias}_CODIGO"})

	// Adiciona a descricao do Modelo de Dados
	oModel:SetDescription( '${Descricao}' )

	// Adiciona a descricao do Componente do Modelo de Dados
	oModel:GetModel( '${Alias}MASTER' ):SetDescription( '${Descricao}' )

Return oModel

//-------------------------------------------------------------------
/*/{Protheus.doc} ViewDef
${Descricao} - Interface com usuário
@author ${user}
@since ${date}
@version undefined

@type function
/*/
//-------------------------------------------------------------------
Static Function ViewDef()

	// Cria um objeto de Modelo de Dados baseado no ModelDef do fonte informado
	Local oModel   as object
	// Cria a estrutura a ser usada na View
	Local oStru${Alias} as array
	Local oStru${Alias2} as array
	Local oView as object

	oModel   := FWLoadModel( '${User_Function}' )
	oStru${Alias} := FWFormStruct( 2, '${Alias}', /*bAvalCampo*/)
	oStru${Alias2} := FWFormStruct( 2, '${Alias2}', /*bAvalCampo*/)

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

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

	//Adiciona no nosso View um controle do tipo FormFields(antiga enchoice)
	oView:AddField( 'VIEW_${Alias}', oStru${Alias}, '${Alias}MASTER' )

	//Adiciona no nosso View um controle do tipo Grid
	oView:AddGrid( 'VIEW_${Alias2}', oStru${Alias2}, '${Alias2}DETAIL' )

	// Criar um "box" horizontal para receber algum elemento da view
	oView:CreateHorizontalBox( 'SUPERIOR' , 50 )
	oView:CreateHorizontalBox( 'INFERIOR' , 50 )

	// Relaciona o ID da View com o "box" para exibicao
	oView:SetOwnerView( 'VIEW_${Alias}', 'SUPERIOR' )
	oView:SetOwnerView( 'VIEW_${Alias2}', 'INFERIOR' )

	// Liga a identificacao do componente
	//oView:EnableTitleView('VIEW_${Alias}','${Descricao}')

	//Indica se a janela deve ser fechada ao final da operação. Se ele retornar .T. (verdadeiro) fecha a janela
	oView:bCloseOnOK := {|| .T.}

Return oView
Bloco de código
languageactionscript3
titleUser Function
collapsetrue
#INCLUDE "TOTVS.CH"
#INCLUDE "PROTHEUS.CH"

/*/{Protheus.doc} ${name}
${description}
@author ${user}
@since ${date}
@version 1.0

@type function
/*/
User Function ${name}()

	${cursor}

Return()

...