Árvore de páginas

Versões comparadas

Chave

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

...

Repositório de Amostras do TDS (TOTVS Developer Studio) para facilitar o desenvolvimento em ADVPL.


Bloco de código
languageactionscript3
titlePosicionamento de Tabela
collapsetrue
DbSelectArea("${tabela}")
${tabela}->(DbSetOrder(${indice}))
If ${tabela}->(DbSeek(xFilial("${tabela}")+${regra}))

Else

EndIf

...

Bloco de código
languageactionscript3
titleMVC - Modelo1
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  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 oModel as object

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${Alias}_FILIAL", "U01${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   Local oModel as object
// Cria a estrutura a ser usada na View
Local oStru${Alias} as array
Local oView as object

oModel := FWLoadModel( '${User_Function}' )
oStru${Alias} := FWFormStruct( 2, '${Alias}', /*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' )

// 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_${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
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}' )
	// Cria a estrutura a ser usada na View
	Local oStru${AliasoStru${Alias} := FWFormStruct( 2, '${Alias}', /*bAvalCampo*/)
	oStru${Alias2} := FWFormStruct( 2, '${AliasAlias2}', /*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' )

	//Adiciona no nosso View um controle do tipo Grid
	oView:AddFieldAddGrid( 'VIEW_${AliasAlias2}', oStru${AliasAlias2}, '${AliasAlias2}MASTERDETAIL' )

	// Criar um "box" horizontal para receber algum elemento da view
	oView:CreateHorizontalBox( 'SUPERIOR' , 100 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_U01${Alias}','Alunos${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()

...