Programação ADVPL Avançado

Aula 01

Aula 1
     

Introdução a O.O. Herança ADVPL O.O. 1e Conversão de sintaxe Exercícios Homework

Aula 2
ADVPL O.O. 2  Dimensionamento de objetos  Exercícios  Homework

Aula 3 Recursos ADVPL para Topconnect  Embeded SQL  Exercícios  Homework  .

Aula 4 Dimensionamento de objetos  Objetos de manipulação de e-mail  Funcionalidades para o ERP  Exercícios  Avaliação  .

Oficina de Programação Pesquisa Pesquisa p/ o Avançado Estudar os fontes da oficina de Programação e avaliar as sintaxes de objetos que substituíram as sintaxes clássicas neles utilizadas. .

Objetos em ADVPL Classes Pesquisa p/ o Avançado Avaliar no DEM as classes visuais disponíveis para a Linguagem ADVPL .

Introdução a Orientação a Objetos  Conceitos  Objetos em ADVPL  Assistente de Diálogo  Exercícios Apostila: ADVPL Avançado – página XX .

Introdução a Orientação a Objetos  Conceitos  Objetos em ADVPL  Assistente de Diálogos  Exercícios Apostila: ADVPL Avançado – página XX .

Introdução a Orientação a Objetos  Conceitos Objeto Método Herança Encapsulamento Atributos Classe Abstração Instância .

Introdução a O. na forma de variáveis tradicionais. Conceitos  Objeto: Tipo especial de variável formado por:  Atributos: informações referentes ao objeto.O.  Métodos: funções (ações) que aquele objeto desempenha. .

.Introdução a O. Conceitos  Objeto: Modelo de uma entidade do mundo real ou de uma entidade de solução de software que combina atributos (dados) e métodos (operações / comportamentos) em um único local.O.

aluno. equipamento. ... conta corrente .Introdução a O. list-box..O..  Entidades de software: janela. combo .  Entidades conceituais do domínio: ação. automóvel . Conceitos  Os objetos modelam:  Entidades concretas do domínio: professor...

Introdução a O.O. Conceitos  Classe: Abstração de objetos:  Identifica características comuns a partir de muitos exemplos  Funciona como uma fábrica de “novos” Objetos .

Introdução a O.  Utilizado como MOLDE (template) para criar novos objetos (classes ou instâncias) . Conceitos  Classe:  Representação genérica (abstração) para um conjunto de objetos específicos e similares.  Define ATRIBUTOS e MÉTODOS compartilhados por todas as suas instâncias.  Um objeto criado a partir de uma classe é denominado uma INSTÂNCIA desta classe.O.

O. .Introdução a O. na qual estes recebem os atributos e métodos definidos em sua superclasse quando são instanciados. Conceitos  Herança: Propriedade de classes e objetos.

Conceitos Pessoa Nome Idade Sexo Classe Atributos Métodos RG Ler() CPF Escrever() Andar() Pensar() .Introdução a O.O.

Introdução a O. Conceitos Pessoa Nome Idade Sexo RG Ler() CPF Escrever() Pessoa 01 João 35 M YY.YY XX.XX Ler() Escrever() Andar() Pensar() Andar() Pensar() Classe Instância Objeto .O.

ignorando características menos importantes ou acidentais.O. uma classe é uma abstração de entidades existentes no domínio do sistema de software.Introdução a O. Em modelagem orientada a objetos. . Conceitos  Abstração: Habilidade de concentrar nos aspectos essenciais de um contexto qualquer.

Em termos intuitivos uma classe é vista como um "molde" que gera instâncias de um certo tipo.Introdução a O. Conceitos  Instância: Significa a concretização de uma classe. . Um objeto é uma instância. Um objeto é uma classe valorada.O.

Conceitos  Encapsulamento: Em programação orientada a objetos.Introdução a O. .O. encapsulamento é a propriedade de um objeto que permite separar um mecanismo de sua funcionamento de uma interface.

Esta propriedade utiliza dois princípios: .O.Introdução a O. Conceitos  Encapsulamento: O encapsulamento protege o acesso direto (referência) aos atributos de uma instância fora da classe onde estes foram declarados.

O. Utilizar modificadores de acesso mais restritivos sobre os atributos definidos na classe.Introdução a O. Criar métodos para que a interface manipule de forma indireta os atributos da classe. Conceitos  Encapsulamento: 1. 2. .

Introdução a O.O. Conceitos

Aluno
Nome Idade Sexo

Encapsulamento
Somente por métodos Construtor

RG

CPF

Matrícula Novo() Cadastrar() Consultar()

Altera atributos Retorna atributos

Introdução a O.O. Conceitos  Encapsulamento:
O conceito de encapsulamento não está implementado na Linguagem ADVPL pois a mesma não possui modificadores de acesso / escopo para os atributos de uma classe.

Introdução a O.O. Conceitos  Objetos

 Atributos
 Métodos

 Classes
 Instâncias

 Herança

Introdução a Orientação a Objetos  Conceitos  Objetos em ADVPL  Assistente de Diálogos  Exercícios Apostila: ADVPL Avançado – página XX .

Objetos em ADVPL Classes 1. Definição da Classe  CLASS <Nome_da_Classe>  DATA <Nome_do_Atributo>  METHOD New() CONSTRUCTOR <Parâmetros do método>  ENDCLASS .

Objetos em ADVPL Classes 2. Definição de Métodos  METHOD <Nome_do_Método()> CLASS <Nome_da_Classe>  ::<Nome_do_Atributo>  <Codificação_do_Método>  <Retorno_do_Método> .

Objetos em ADVPL Classes 3. Método Construtor  METHOD New() CLASS <Nome_da_Classe>  ::<Nome_do_Atributo>  <Codificação_do_Método>  Return Self .

Objetos em ADVPL Classes Exercício 01 Implementar a Classe Aluno com os métodos: New() Inscrever() Avaliar() .

Objetos em ADVPL  Herança  MsCheckBox Apostila: ADVPL Avançado – página XX .

Objetos em ADVPL Herança entre classes 1. Definição da Classe  CLASS <Nome_da_Classe> FROM <Nome_da_Superclasse>  DATA <Nome_do_Atributo>  METHOD New() CONSTRUCTORMETHOD <Parâmetros do método>  ENDCLASS .

Objetos em ADVPL Herança entre classes 2. Método Construtor  METHOD New() CLASS <Nome_da_Classe>  Execução do Construtor() da classe superior  ::<Nome_do_Atributo>  <Codificação_do_Método>  Return Self .

Herança entre classes Classe MsCheckBox CLASS MSCheckBox FROM TWBROWSE DATA oBmp DATA oSay DATA cBmpRes1 DATA cBmpRes2 DATA bSetGet METHOD METHOD METHOD METHOD METHOD ENDCLASS New() SetBmp() BmpClick() Refresh() SetText() .

nWidth.0.. bSetGet.oWnd. nCol.0.... lStretch ) CLASS MSCheckBox :New( 0... oFont...Herança entre classes Classe MsCheckBox METHOD New(nRow.bValid) Local cBmpRes Local bBloco . Return Self ........ bValid.. cCaption... nHeight.... oWnd.0.

Marcado .Marca com BitMap .Marca com BitMap .Herança entre classes MsCheckBox Objeto MsCheckBox .Desmarcado Objeto MsCheckBox .

Introdução a Orientação a Objetos  Conceitos  Objetos em ADVPL  Assistente de Diálogos  Exercícios Apostila: ADVPL Avançado – página XX .

Parametrização dos objetos .Assistente de Diálogo Recursos  Funcionalidade: .Novo Arquivo de Diálogo (.PRV)  Barra de ferramentas: .Palheta de Componentes  Editor de Propriedades .

Assistente de Diálogo Homework Homework 1 Desenvolver um Diálogo para interagir com a classe Aluno implementada anteriormente. .

03 Pontos Extras .ADVPL Orientado a Objetos Projeto Projeto 01 Desenvolver uma aplicação de cadastro utilizando a classe Aluno e os métodos disponíveis para a mesma.

Aplicações com Objetos  Enchoice e MsMGet  MsNewGetDados  EnchoiceBar Apostila: ADVPL Avançado – página XX .

Aplicações com Objetos  Enchoice e MsMGet  MsNewGetDados  EnchoiceBar Apostila: ADVPL Avançado – página XX .

consulta ou exclusão. Seja na inclusão. . este componente pode ser usado para manipular os campos de uma tabela de dados definida no dicionário (SX3).Aplicações com Objetos Enchoice A Enchoice() é o modelo mais utilizado para realizar a manutenção de cadastros do sistema. alteração.

 Destaque de campos de preenchimento obrigatório e bloqueio para campos somente de leitura. .Aplicações com Objetos Enchoice  Propriedades da Enchoice:  Disposição e alinhamento automático dos campos em duas colunas seguindo a ordem definida no dicionário de dados SX3.  Agrupamento de campos por painéis. definidos no arquivo SXA e associados em cada campo do dicionário.

etc) e permite o uso de gatilhos (SX7) . F3-pesquisa em outras tabelas etc)  Aplicação das propriedades dos campos de dicionário (X3_RELACAO. X3_VALID. listas de opções. X3_F3.Aplicações com Objetos Enchoice  Propriedades da Enchoice:  Considera os tipos de campos e suas propriedades (calculadora para números. X3_USADO. calendários para datas. X3_CBOX.

cMensagem. lProperty )  Parâmetros Obrigatórios  Não utilizados . oWnd. nReg. nModelo. aAlterEnch. cTexto. nColMens. aPos. lNoFolder. aCRA. cTudoOk. cLetra. caTela. nOpc. lColumn. lMemoria.Aplicações com Objetos Enchoice  Enchoice ( cAlias. aCpoEnch. lF3.

Aplicações com Objetos Enchoice Exercício 02 Implementar uma Enchoice para o cadastro de produtos (SB1). .

nReg.Aplicações com Objetos MsMGet  MsMGet ( cAlias. lNoFolder. nOpc. aAlterEnch. lMemoria. nModelo. cLetra. lProperty )  Parâmetros Obrigatórios . lF3. cMensagem. lColumn. nColMens. aCRA. cTexto. aPos. oWnd. caTela. cTudoOk. aCpoEnch.

Aplicações com Objetos MsMGet Exercício 03 Converter o cadastro desenvolvido no exercício 02 para que o mesmo utilize o objeto MsMGet .

Aplicações com Objetos Enchoice DEM – Enchoice DEM – MsMGet .

Aplicações com Objetos  Enchoice e MsMGet  MsNewGetDados  EnchoiceBar Apostila: ADVPL Avançado – página XX .

calendários para datas. F3-pesquisa em outras tabelas etc). alteração e exclusão de linhas  Inclusão de número seqüencial automático (identificador de item)  Considera os tipos de campos e suas propriedades (calculadora para números. listas de opções. Algumas das propriedades são:  Inclusão. .Aplicações com Objetos MsGetDados A MSGetDados() é o componente mais utilizado para a construção de grids de digitação/exibição.

etc) e permite o uso de gatilhos (SX7). . X3_F3.  Aplicação das propriedades dos campos de dicionário (X3_VALID. X3_CBOX.Aplicações com Objetos MsGetDados  Propriedades da MsGetDados  Validação por linha e validação após todo o preenchimento.

cIniCpos. cTudoOk. aHeader. nDireita. nOpc. nFreeze. oDLG. nInferior. aAlterGDa. cDelOk. nEsquerda.Aplicações com Objetos MsGetDados MsNewGetDados (nSuperior. nMax. cSuperDel. aCols)  Parâmetros Obrigatórios . cLinOk. cFieldOk.

Aplicações com Objetos MsGetDados Exercício 04 Desenvolver uma interface de cadastro que combine os objetos MsMGet e MsNewGetDados causando o efeito de uma Modelo3(). .

Aplicações com Objetos MsGetDados DEF – Classe MsNewGetDados .

Aplicações com Objetos  Enchoice e MsMGet  MsNewGetDados  EnchoiceBar Apostila: ADVPL Avançado – página XX .

e os botões “OK” e “Cancelar”. . personalizados para cada funcionalidade. e permite a inclusão de novos botões.  Esta barra contém os botões de funcionalidades como “Copiar”.Aplicações com Objetos EnchoiceBar  A EnchoiceBar é a barra de botões de um objeto de diálogo padrão do Protheus. “Colar” e “Calculadora”.

bCancel. aButtons. "Texto"})  Parâmetros Obrigatórios . {|| Rotina()}. bOk. lMsgDel. cAlias)  Aadd( aButtons. nRecno.Aplicações com Objetos EnchoiceBar  EnchoiceBar (oDlg. {“IMAGEM".

.Aplicações com Objetos EnchoiceBar Exercício 05 Adicionar na interface de cadastro desenvolvida no exercício anterior uma EnchoiceBar com um botão de usuário que exiba o AxCadastro de um item utilizado na interface.

Aplicações com Objetos EnchoiceBar DEM – EnchoiceBar DEF .Bitmaps .

Oficina de Programação  Apresentação da Oficina de Programação  Estudo dos principais fontes  Conversão para sintaxe orientada a objeto Apostila: ADVPL Avançado – página XX Autor: Robson Luiz Estefani Gonçalves .

prw para orientação a objetos. .Oficina de Programação Conversão de sintaxe Exercício 06 Converter o fonte dialog_objetos.

03 Pontos Extras .Oficina de Programação Projeto Projeto 02 Converter os fontes do pacote de oficina de programação para orientação a objetos.

Objetos em ADVPL Pesquisa Para conhecimento: Avaliar os seguintes recursos nos fontes da Oficina de programação: DbTree MsExplorer ButtonBar 01 Ponto Extra .