Escolar Documentos
Profissional Documentos
Cultura Documentos
ADVPL II - MVC
ADVPL II - MVC
ndice
I)
II)
III)
IV)
V)
VI)
Framework
Informaes tcnicas
Contedo Programtico
Exerccios
MVC Designer
Reviso
Framework
ADVPL II - MVC
Consulta
estado
Muda
estado
Seleciona a View
View
Controller
Ao do usurio
ADVPL II - MVC
Framework
Nosso modelo
Smartclient
FwFormBrowse
Browse
DHTML
FwFormField
Enchoice/GetFixo
Outros front-end
FwFormGrid
GetDados
FwFormContainer
Toolbar/Painis
GDP
Business Objects
ViewDef
Designer
ModelDef
Regras de negcio
Persistncia
(FWCommit)
SchedDef
ReportDef
MenuDef
Analista
Toda soluo cria novos problemas - Murphy
5
ADVPL II - MVC
View
Define como o usurio interage com o modelo de dados. Capturando os
dados informados pelo usurio, fornecendo ao BO e apresentando o
resultado.
A interface pode ser baseada totalmente ou parcialmente em um metadados, permitindo:
Reaproveitamento do cdigo da interface
Simplicidade no desenvolvimento de interfaces complexas
Agilidade no desenvolvimento
Personalizao de interface sem efeito-colateral. O usurio v, aquilo que quer!
Mais de uma interface por BO, poderemos ter interfaces diferentes para cada
variao de um segmento de mercado como o varejo.
ADVPL II - MVC
FWBrowse - View
FWBrowse
Classe padro dos Grids
Possui todas as funcionalidades de Grid, como pesquisa, filtros, cores, etc...
No possui dependncia do dicionrio de dados ou ambiente Protheus
FWFormBrowse
Classe padro do Browse Protheus
Possui os botes laterais de acesso e o rodap (footer) com os principais dados do
formulrio
No possui dependncia do dicionrio de dados ou ambiente Protheus
FWMBrowse
Classe padro do Browse Protheus com uso de dicionrio de dados.
FWMarkBrowse
Classe padro de Browse de seleo do Protheus
Possibilitando a reutilizao de cdigo de interface
7
ADVPL II - MVC
FWBrowse - View
FWMBrowse
FWFormBrowse
FWBrowse
Dicionrio de dados
ADVPL II - MVC
FWFormField
FWFormField - View
Modelo1
Modelo 2
Modelo 3
Pergunte
LookUp (F3)
Modelo X
Desenvolvido para:
Substituir todos os componentes de edio de campos
Possibilitar sua utilizao em qualquer container de interface
Reduzir o tempo de manuteno, em caso de adio de um novo requisito
Ser independente do ambiente Microsiga Protheus
Melhorias implementas:
Novos padres de agrupamento (Groups e Docks)
Novo padro de orientao de ttulos dos campos ( esquerda ou acima)
Padro de fontes personalizvel Deficiente visual
Melhor aproveitamento da rea de visualizao (no estar limitada a duas colunas)
Novos componentes (Radio e Edio de Imagem)
Possibilitando a reutilizao de cdigo de interface
9
ADVPL II - MVC
FWFormField - View
FWFormField
FWEditPanel
ADVPL II - MVC
FWFormGrid
FWFormGrid - View
Modelo2
Modelo 3
Modelo X
Desenvolvido para:
Substituir todos os componentes de edio em grid
Possibilitar sua utilizao em qualquer container de interface
Utilizar como base as caractersticas do componentes FWBrowse
Ser independente do ambiente Microsiga Protheus
Melhorias implementas:
Todas as relacionadas no FWBrowse
ADVPL II - MVC
FWFormGrid - View
FWFormFieldView
FWFormGridView
FWBrowse
ADVPL II - MVC
FWFormContainer
FWFormContainer - View
Modelo1
Modelo2
Modelo 3
Modelo X
EnchoiceBar/ToolBar
Desenvolvido para:
Substituir a EnchoiceBar
Possibilitar a diviso dos componentes de meta-dado em containers
Ser independente do ambiente Microsiga Protheus
Melhorias implementas:
Possibilidade de rearranjo da interface sem necessidade de codificao pelo cliente
ADVPL II - MVC
FWFormContainer - View
Box
Box
FWFormCursor
ADVPL II - MVC
ModelDef
Define o modelo da estrutura e persistncia de dados, utilizando o modelo
padronizado de codificao
Possui as regras de validao definidas pelo analista, independentes dos
eventos da interface. Esta independncia permite a reutilizao de cdigo,
performance e previsibilidade de comportamento.
Este modelo de codificao garante que todos os programas de edio
tenham os recursos, abaixo, sem a necessidade adicional de codificao:
Web Services
Rotina automtica
Ponto de integrao, comum, entre as GDPs
Ambiente interativo para execuo de teste funcional
Pontos de entrada padronizados.
Relatrio personalizvel
Importao/Exportao de dados ( XML/XSD )
Mais recursos, menos esforo
15
Informaes tcnicas
ADVPL II - MVC
Diagrama de Classe
Main Function
ModelDef
FWFormModel
FWMBrowse
+SetAlias()
+SetLocate()
+Activate()
+AddLegend()
FWFormModelStruct
-aFields
-aTriggers
+addField()
+RemoveField()
+LoadFields()
+addTrigger()
+LoadTrigger()
+getFields()
-cId
-bPost
-bPre
-bCommit
-bCancel
-aModelStruct
-aModeRules
+GetModel ()
+AddRules()
+GetFormData()
+LoadXmlData()
+SetRelation()
+SetValue()
+GetValue()
+SetOperation()
+VldData()
+CommitData()
+CancelData()
ViewDef
FwFormView
+SetModel()
+SetOwner()
+SetOwnerView()
+MakeControlBar()
+GetValue()
+getValidMsg()
+AddField()
+AddGrid ()
+Activate ()
+DeActivate()
+setOperation()
+EnableControlBar()
+createVerticalBox()
+createHorizontalBox()
FWFormViewStruct
MPFormModel
+AddFields()
+AddGrid()
-aFields
-aTriggers
+addField()
+RemoveField()
+LoadFields()
+getFields()
17
Contedo Programtico
ADVPL II - MVC
Contedo Programtico
Browse
Criar Browse
(FwMBrowse)
Criar Legendas
(AddLegend)
Validao de Ativao do Model
(SetVldActive)
Criar Filtro
(SetFilterDefault)
Criar Browse com marcao
(MarkBrowse)
ADVPL II - MVC
Contedo Programtico
Visualizao dos Dados (VIEW)
Criar botes
(AddUserButton)
Criar Folder(s) no fonte
(CreateFolder)
Usar Outros Objetos no MVC
(AddOtherObject)
FORMGRID
GetValue / SetValue / LoadValue
AddLine / DeleteLine / UnDeleteLine
IsDeleted / IsUpdated / IsInserted
GoLine
GetQtdLin
SetNoDeleteLine / SetNoUpdateLine / SetNoInsertLine
Estrutura de Campos (STRUCT)
Selecionar campos para a estrutura
Criar estrutura manualmente
20
ADVPL II - MVC
Contedo Programtico
Geral
(FwExecView)
(Antiga Rotina Automtica)
21
Exerccios
ADVPL II - MVC
23
ADVPL II - MVC
24
ADVPL II - MVC
25
ADVPL II - MVC
26
ADVPL II - MVC
27
ADVPL II - MVC
28
ADVPL II - MVC
29
ADVPL II - MVC
30
ADVPL II - MVC
31
ADVPL II - MVC
32
ADVPL II - MVC
33
ADVPL II - MVC
Exerccios Aula 01
Criar a rotina EXERC01, EXERC02 e EXERC03 para efetuar a
manuteno (Incluso, Alterao, Excluso, etc. ) das tabelas:
TURMAS (ZB1), ALUNOS ( ZB2) e DISCIPLINAS (ZB3). Dica:
Estrutura com tabela simples.
Criar a rotina EXERC04 para efetuar a manuteno (Incluso,
Alterao, Excluso, etc. ) CABEALHO TURMA/ALUNO (ZB5) e
ALUNOS TURMA/ALUNO (ZB6). Dica: Estrutura Pai/Filho.
34
ADVPL II - MVC
Exerccios Aula 02
Alterar a rotina EXERC04 para:
Lanar notas acrescentando a tabela NOTAS TURMA x ALUNO (ZB7).
Verificar se as notas so vlidas ( >= 0 e <= 10 ) por validao de linha
da fwformgrid
No permitir que uma nota seja alterada aps a incluso
35
ADVPL II - MVC
Exerccios Aula 03
Alterar EXERC04 para s deixar alterar turmas com a situao
ATIVA
Alterar EXERC04 para exibir mltiplas browses com as tabelas
CABEALHO TURMA/ALUNO (ZB5) e ALUNOS TURMA/ALUNO
(ZB6) e NOTAS TURMA x ALUNO (ZB7).
36
ADVPL II - MVC
Exerccios Aula 04
Alterar EXERC04 para exibir a informao de quantidade de
linhas lanadas.
Criar a rotina EXERC05 utilizando uma Markbrowse na tabela
ALUNOS( ZB2). Utilizar o campo ZB2_OK como marcador. Criar
uma rotina de processamento que exiba a quantidade de alunos
marcados.
37
MVC Designer
ADVPL II - MVC
Num objetivo de facilitar o desenvolvimento, deixando o mais fcil e mais rpido, foi pensado em
desenvolver um RAD(Rapid Application Development), que possibilita a construo de rotina
MVC, de maneira fcil e intuitiva.
39
ADVPL II - MVC
As principais caractersticas do desenhador j disponvel:
Desenvolvimento do Model;
Leitura do dicionrio de dados para construo de modelos baseados no mesmo.
Desenvolvimento do View;
Renderizao da View em Preview;
Leitura do cdigo fonte;
OutLine;
Folding para funes;
TextOver :
Para o CH do MVCDEF;
Para defines do prprio fonte;
TextOver de String de Traduo;
40
Reviso
ADVPL II - MVC
ReportDef
Rotinas de processamento:
SchedDef
FWGridProcess
42
ADVPL II - MVC
Questes
Palestrante
Departamento
e-mail@totvs.com.br
43