#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
//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 := {}
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} := FWFormStruct( 1, '${Alias}', /*bAvalCampo*/,/*lViewUsado*/ )
Local oModel
// 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*/ )
//Chave Primaria
oModel:SetPrimaryKey( {"U01_FILIAL", "U01_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 := FWLoadModel( '${User_Function}' )
// Cria a estrutura a ser usada na View
Local oStru${Alias} := FWFormStruct( 2, '${Alias}', /*bAvalCampo*/)
Local oView
// 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' )
// Criar um "box" horizontal para receber algum elemento da view
oView:CreateHorizontalBox( 'SUPERIOR' , 100 )
// Relaciona o ID da View com o "box" para exibicao
oView:SetOwnerView( 'VIEW_${Alias}', 'SUPERIOR' )
// Liga a identificacao do componente
//oView:EnableTitleView('VIEW_U01','Alunos')
//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 |