Você está na página 1de 7

Browse em MVC

ADVPL
Ola Galera,
Vou mostrar como a criar uma tela em MVC utilizando a ferramenta
de criao de tela daTOTVS. Neste post eu no vou abordar
configurao da ferramenta, em caso de dvida breve irei fazer um
novo post, mostrando a configurao da ferramenta de criao de
tela da TOTVS.
Primeiramente devemos criar uma funo MVC.
Para isso acesso no TDS, Arquivo > Novo -> Outras.
Selecione Nova Funo MVC Advpl informe o nome da funo
e confirme. Note que apareceu trs novas opes Source View
Design, Model Design.

Vamos criar o Model do nosso programa, o model onde fica toda a


regra de negcio a modelagem do nosso sistema.

Seleciona a opo Model Design. Logo depois selecione a


opo Field, assim que voc selecionar esta opo o TDS ira criar
a estrutura do Model Def no seu fonte, sem necessidade de
escrever uma linha de cdigo. Vamos utilizar uma tabela existente do
sistema, mas possvel tambm de trabalhar com tabela
virtual.

O sistema ir listar todas as tabelas disponveis no Protheus, neste


exemplo utilizaremos a tabela de
clientes SA1. Selecione Prximo a ferramenta carregara toda a
estrutura da tabela

automaticamente.

Logo depois selecione a opo carregar Estrutura, o sistema carrega


os ndices padres da
tabela.

Selecione a Aba Campos, nesta aba possvel alterar a estrutura


da tabela, isto quer dizer que possvel deletar campo, aumentar
tamanho, titulo etc. mas essa alterao somente no model do

programa, no alterado na estrutura do


banco.

Agora vamos criar a View do programa que tudo aquilo que


aparece na tela do nosso programa.
Acesse a Aba View Design. No Palette, selecione a
opo FormField e arraste para tela.

Na caixa de Propriedade informe em qual model esta view


pertence, no nosso caso o model filed1

Pronto!!!!
Em pouco passos voc criou uma tela de cadastro, somente
arrastado o mouse sem precisar escrever uma linha de cdigo.
Como voc pode notar o sistema no criou a chamada da funo,
ento s ser possvel chamar este fonte com o mtodo
FwExecView que simula a chamada.
FWExecView(Teste
MyFunction/*Descrio*/,MyFunction/*nome do
fonte*/,MODEL_OPERATION_INSERT/*opo do
browse*/,,{ || .T.}) //Incluso

Agora para no ficarmos preguiosos, vamos colocar a mo na


massa.
No topo da nossa funo vamos criar uma user function para chamar
a nossa tela.

1
2
3
4
5
6
7
8
9

UserFunctionMyFunction()
LocaloBrowse:=Nil
PrivateaRotina:=MenuDef()

oBrowse:=FWMBrowse():New()
oBrowse:SetAlias("SA1")//SelecionaoAliasqueestamostrabalhando.
oBrowse:SetDescription("CadastrodeClientes")//"Descrio"

//Removeosbotesdenavegaonaedioouvisualizaodomodel

10
11
12
13
14
15
16
17
18
19
20
21

oBrowse:SetUseCursor(.F.)</p><p>oBrowse:Activate()

Return
StaticFunctionMenuDef()
LocalaRotina:={}
ADDOPTIONaRotinaTITLE"Pesquisar"ACTION'AxPesqui'OPERATION1ACCESS0//"Pe
ADDOPTIONaRotinaTITLE"Visualizar"ACTION'VIEWDEF.MYFUNCTION'OPERATION2AC
ADDOPTIONaRotinaTITLE"Incluir"ACTION'VIEWDEF.MYFUNCTION'OPERATION3ACCES
ADDOPTIONaRotinaTITLE"Alterar"ACTION'VIEWDEF.MYFUNCTION'OPERATION4ACCES
ADDOPTIONaRotinaTITLE"Excluir"ACTION'VIEWDEF.MYFUNCTION'OPERATION5ACCES

ReturnaRotina

Agora sim, terminamos de criar nossa primeira rotina em MVC.


Vale lembrar que isso s um simples exemplo de uma tela
utilizando MVC.
Estou compartilhando o fonte para quem quiser dar uma olhada.
Fonte Anexo
Dvidas, sugestes??