Desenvolvendo Aplicações em Progress CHAR

download Desenvolvendo Aplicações em Progress CHAR

of 67

Transcript of Desenvolvendo Aplicações em Progress CHAR

  • 7/29/2019 Desenvolvendo Aplicaes em Progress CHAR

    1/67

    1

    Tecnologia

    Progress DCADesenvolvendo Aplicaes Caracter

    Parte 1

  • 7/29/2019 Desenvolvendo Aplicaes em Progress CHAR

    2/67

    2

    Parte 1

    9 Introduo ao Progress9 Movimentao dos Dados

    9 Manipulando os Dados

    9 Blocos

    9 Localizando Registros

    9 Variveis

    9 Processamento Condicional

    Parte 2

    9 Frames9 Includes

    9 Relatrios

    9 Programao Orientada a Eventos

    Agenda

  • 7/29/2019 Desenvolvendo Aplicaes em Progress CHAR

    3/67

    3

    9 Widgets

    9 Tipos de Widgets9 Menus

    9 Tabelas Temporrias (TEMP-TABLE)

    Parte 3

    9 Procedures

    9 Compartilhamento de Dados

    9 Importao e Exportao de Dados

    9 Tratamento de Erros

    9 Transaes

    9 Bloqueio de Registro9 Funes

    Agenda

  • 7/29/2019 Desenvolvendo Aplicaes em Progress CHAR

    4/67

    4

    INTRODUO AO PROGRESS

    Introduo ao Progress

  • 7/29/2019 Desenvolvendo Aplicaes em Progress CHAR

    5/67

    5

    9 Completo ambiente de desenvolvimento de aplicaes.

    9 composto por:Sistema Gerenciador de Banco de Dados Relacional.

    Linguagem de 4a. Gerao.

    Ferramentas de Programao.

    Introduo ao Progress

  • 7/29/2019 Desenvolvendo Aplicaes em Progress CHAR

    6/67

    6

    ABERTOFLEXVEL

    COMPLETO

    Benefcios

  • 7/29/2019 Desenvolvendo Aplicaes em Progress CHAR

    7/67

    7

    9 Flexvel

    Assegura portabilidade das aplicaes em outras plataformas.

    9 AbertoSuporta o padro industrial.

    Assegura opes de desenvolvimento heterogneo.

    9 CompletoPermite construo de grandes aplicaes.

    Produz solues Client/Server.

    Benefcios

  • 7/29/2019 Desenvolvendo Aplicaes em Progress CHAR

    8/67

    8

    Componentes Lgicos

    9 Base de Dados

    Tabela Registro

    Campo

    ndice

  • 7/29/2019 Desenvolvendo Aplicaes em Progress CHAR

    9/67

    9

    Cliente Empresa Banco

    = Base Dados

    Componentes Lgicos

  • 7/29/2019 Desenvolvendo Aplicaes em Progress CHAR

    10/67

    10

    Tabela

    Registro

    CampoNome

    ndice

    Componentes Lgicos

  • 7/29/2019 Desenvolvendo Aplicaes em Progress CHAR

    11/67

    11

    .DB

    .LG.BI .LK

    Componentes Fsicos

  • 7/29/2019 Desenvolvendo Aplicaes em Progress CHAR

    12/67

    12

    .DB

    BEFORE-IMAGE: Contm a imagem dos dados de umatransao.BI

    DATABASE: Contm os dados atuais e descries dabase

    Componentes Fsicos

  • 7/29/2019 Desenvolvendo Aplicaes em Progress CHAR

    13/67

    13

    .LG

    LOCK: Informa se a base est sendo acessada..LK

    LOG: Contm as referncias dos usurios, hora de entrada,sada e programas acessados (histrico).

    Componentes Fsicos

  • 7/29/2019 Desenvolvendo Aplicaes em Progress CHAR

    14/67

    14

    Componentes da Linguagem

    9 Blocos

    9 Declaraes

    9 Funes

    9 Operadores

    9 Variveis

    9 Expresses

    9Smbolos especiais

    9 Elementos da interface com o usurio (atributos e mtodos

    9 Eventos

  • 7/29/2019 Desenvolvendo Aplicaes em Progress CHAR

    15/67

    15

    Tipos de Dados do Progress

    Tipo Formato Exemplo

    Character x(8)Aceita: A Alfabetico

    ! Maiusculas

    x(40) > string alfanumrica AAA-9999 > MCZ-9283 !x(10) > STRING ALFANUMRICA

    Integer >>>,>>9Aceita: z espao

    9 mostra 0

    >>>,>>9 > 1.500 999,999 > 001.500 zzz,zz9 > 1.500

    Decimal >>>,>>9.99 >>>,>>9.99 > 1.500,45 999,999.99 > 001.500,45 zzz,zz9.99 > 1.500,45

    Logical Yes/NoAceita: True/False

    YesNo

    Date MM/DD/AAAA 12/31/9999

    Rowid ----

    Recid >>>>>9

  • 7/29/2019 Desenvolvendo Aplicaes em Progress CHAR

    16/67

    16

    MOVIMENTAO DOS DADOS

    Movimentao dos Dados

  • 7/29/2019 Desenvolvendo Aplicaes em Progress CHAR

    17/67

    17

    BASE DE DADOS

    BUFFER REGISTRO

    BUFFER TELA

    Localizao dos Dados

  • 7/29/2019 Desenvolvendo Aplicaes em Progress CHAR

    18/67

    18

    BASE DE DADOS BUFFER REGISTROBUFFER TELA

    BASE DE DADOS TELA

    Movimentando Dados

  • 7/29/2019 Desenvolvendo Aplicaes em Progress CHAR

    19/67

    19

    BASE DE

    DADOS

    BUFFER

    REGISTRO

    BUFFER

    TELAENTRADAUSURIO

    Movimentando Dados

    TELA BASE DE DADOS

  • 7/29/2019 Desenvolvendo Aplicaes em Progress CHAR

    20/67

    20

    Regras para Movimentao de Dados

    9 Os programas no podem manipular os dados da base de dados

    at que eles sejam copiados para o buffer de registro.

    9 O usurio no pode interagir com os dados at que eles sejamcopiados do buffer de registro para o buffer de tela.

    9 As alteraes que so feitas no buffer de tela ou buffer de registrono so atualizadas automaticamente em outro buffer. Deve-seprogramar o controle de movimentao entre os buffers.

  • 7/29/2019 Desenvolvendo Aplicaes em Progress CHAR

    21/67

    21

    UPDATE

    UsurioBuffer de TelaBuffer de RegistroBanco de DadosComando

    ASSIGNCREATE

    DELETE

    DISPLAY

    ENABLE

    FIND

    FOR EACH

    GET

    INSERT

    PROMPT-FORRELEASE

    SET

    Comandos de Movimentao de Dados

  • 7/29/2019 Desenvolvendo Aplicaes em Progress CHAR

    22/67

    22

    MANIPULANDO OS DADOS

    Manipulando os Dados

  • 7/29/2019 Desenvolvendo Aplicaes em Progress CHAR

    23/67

    23

    Insert

    9 Cria um novo registro no banco, permite que o usurio faaalteraes e atualiza as informaes no banco.

    9 Executa as aes de CREATE, DISPLAY, PROMPT-FOR e ASSIGN.

    9 Ex.: I NSERT cust omer .

  • 7/29/2019 Desenvolvendo Aplicaes em Progress CHAR

    24/67

    24

    Create

    9 Cria um novo registro no banco, inicializa com os valores defaults

    (padros) e deixa uma cpia do registro no buffer de registro.

    9 Ex.: CREATE cust omer .

  • 7/29/2019 Desenvolvendo Aplicaes em Progress CHAR

    25/67

    25

    Update

    9 Mostra os valores, permite ao usurio alterar e atualiza os dados

    no banco.

    9 Executa as aes de DISPLAY, PROMPT-FOR e ASSIGN.

    9 Ex.: UPDATE cust omer .UPDATE cust omer EXCEPT cust - num.

  • 7/29/2019 Desenvolvendo Aplicaes em Progress CHAR

    26/67

    26

    Display

    9 Mostra os valores na Tela.

    9 Move os dados do Buffer de Registro para o Buffer de Tela.

    9 Os dados devem sempre ter sido previamente movidos para oBuffer de Registro.

    9 Ex.: DI SPLAY cust omer .DI SP cust omer . cust - num.

  • 7/29/2019 Desenvolvendo Aplicaes em Progress CHAR

    27/67

    27

    Set

    9 Permite que o usurio altere as informaes e atualiza o banco de

    dados.9 Executa as aes de PROMPT-FOR e ASSIGN.

    9 Ex.: SET cust omer .SET cust omer . name.

  • 7/29/2019 Desenvolvendo Aplicaes em Progress CHAR

    28/67

    28

    Prompt-For

    9 Solicita uma entrada de dados ao usurio e disponibiliza no buffer

    de tela.

    9 Ex.: PROMPT- FOR cust omer . cust - num.FI ND cust omer WHERE

    cust omer . cust - num = I NPUTcust omer . cust - num NO- ERROR.

    I F AVAI LABLE cust omer THENDI SPLAY cust omer

    EXCEPT cust omer . comment sWI TH 1 COLUMN.

  • 7/29/2019 Desenvolvendo Aplicaes em Progress CHAR

    29/67

    29

    Assign

    9 Atualiza a informao no Banco de Dados.

    9 Copia os dados do buffer de tela para seus respectivos campose/ou variveis no buffer de registro.

    9 Ex.: DEF VAR i - cust- num AS i nt eger NO- UNDO.PROMPT- FOR i - cust - num.FI ND FI RST cust omer EXCLUSI VE- LOCK.ASSI GN cust omer . cust - num = i - cust - num.

  • 7/29/2019 Desenvolvendo Aplicaes em Progress CHAR

    30/67

    30

    Delete

    9 Elimina um registro do buffer de registro e do banco de dados.

    9 Os dados devem sempre ter sido previamente movidos para o Bufferde Registro.

    9 Ex.: REPEAT:PROMPT- FOR cust omer . cust - num.FI ND cust omer USI NG cust omer. cust - num.DELETE cust omer .

    END.

  • 7/29/2019 Desenvolvendo Aplicaes em Progress CHAR

    31/67

    31

    Quadro de Comandos

    SET

    ASSIGNPROMPT-FORDISPLAY

    UPDATE

    CREATE

    INSERT

  • 7/29/2019 Desenvolvendo Aplicaes em Progress CHAR

    32/67

    32

    insert customer.

    create customer.update customer.

    create customer.

    display customer.prompt-for customer.assign customer.

    Observe a Movimentao

  • 7/29/2019 Desenvolvendo Aplicaes em Progress CHAR

    33/67

    33

    SET

    ASSIGNDISPLAY

    UPDATE

    CREATE

    INSERT

    DELETE PROMPT-FOR FIND FOR EACH RELEASE

    Quadro de Comandos

  • 7/29/2019 Desenvolvendo Aplicaes em Progress CHAR

    34/67

    34

    LABORATRIO 1

    Exerccio disponvel nomaterial de apoio

    Laboratrio 1

  • 7/29/2019 Desenvolvendo Aplicaes em Progress CHAR

    35/67

    35

    BLOCOS

    Blocos

  • 7/29/2019 Desenvolvendo Aplicaes em Progress CHAR

    36/67

    36

    Tipos de Blocos

    9 REPEAT

    9 FOR EACH

    9 DO

    9 PROCEDURES

    9 TRIGGERS

  • 7/29/2019 Desenvolvendo Aplicaes em Progress CHAR

    37/67

    37

    Repeat

    9 Lao (repetio) automtico. Continua a interagir at encontrar

    um END-ERROR ou outra condio de trmino definida pelousurio.

    9 Ex:REPEAT WI TH 1 COLUMN:

    CREATE cust omer .UPDATE cust omer .

    END.

  • 7/29/2019 Desenvolvendo Aplicaes em Progress CHAR

    38/67

    38

    For Each

    9 L um registro a cada interao do bloco e copia os dados do

    banco para o buffer de registro.

    9 Ex:

    FOR EACH cust omer :

    DI SPLAY cust omer . cust - num

    cust omer . name.

    END.

  • 7/29/2019 Desenvolvendo Aplicaes em Progress CHAR

    39/67

    39

    Do

    9 Individualiza um grupo de comandos dentro de um bloco

    simples.

    9 Ex:

    FOR EACH cust omer :

    DI SPLAY cust omer . cust - num.

    I F credi t - l i mi t > 15000 THEN DO:

    UPDATE cust omer . name

    cust omer . addr ess.

    MESSAGE "Regi str o Al t er ado".

    END.END.

  • 7/29/2019 Desenvolvendo Aplicaes em Progress CHAR

    40/67

    40

    Desvio de Execuo de Blocos

    9 Forma de desviar a seqncia de execuo de determinado bloco.

    9 Comandos: NEXT

    LEAVE

    9 Ex: FOR EACH cust omer :

    DI SPLAY cust omer. cust - num.

    I F credi t - l i mi t > 15000 THEN

    NEXT.

    I F credi t - l i mi t = 10000 THEN

    LEAVE.

    UPDATE cust omer . name

    cust omer. addr ess.

    END.

  • 7/29/2019 Desenvolvendo Aplicaes em Progress CHAR

    41/67

    41

    LABORATRIO 2

    Exerccio disponvel nomaterial de apoio

    Laboratrio 2

  • 7/29/2019 Desenvolvendo Aplicaes em Progress CHAR

    42/67

    42

    LOCALIZANDO REGISTROS

    Localizando Registros

  • 7/29/2019 Desenvolvendo Aplicaes em Progress CHAR

    43/67

    43

    Find

    9 Busca apenas um registro em uma tabela.

    FI RST (primeiro)

    LAST (ltimo)

    NEXT (prximo)

    PREV (anterior)

    9 Ex.: FI ND FI RST cust omer

    WHERE cust omer . credi t - l i mi t > 15000

    NO- ERROR.

    I F AVAI LABLE cust omer THENDI SPLAY cust omer WI TH 1 COLUMN.

  • 7/29/2019 Desenvolvendo Aplicaes em Progress CHAR

    44/67

    44

    Where

    9 Limita os registros a serem mostrados em uma leitura de uma

    determinada tabela.

    9 Ex: FOR EACH cust omer

    WHERE cust omer . credi t - l i mi t > 15000:

    DI SPLAY cust omer . cust - num

    cust omer . credi t - l i mi t .

    END.

    9 OPERADORES:NOT > =

  • 7/29/2019 Desenvolvendo Aplicaes em Progress CHAR

    45/67

    45

    9 Substitui o WHERE, utilizando o dado informado no buffer de tela.

    9 Ex: REPEAT WI TH 1 COLUMN:PROMPT- FOR cust omer . cust - num.

    FI ND cust omer

    USI NG cust omer. cust - num.DI SPLAY cust omer .

    END.

    WHERE cust omer . cust - num = I NPUT cust omer . cust - num

    Using

  • 7/29/2019 Desenvolvendo Aplicaes em Progress CHAR

    46/67

    46

    9 Substitui o WHERE, utilizando o ndice para fazer o

    relacionamento entre tabelas.

    9 Ex: FI ND FI RST cust omer .

    FOR EACH order OF cust omer :

    DI SPLAY or der . or der - num

    END.

    WHERE or der . cust - num = cust omer . cust - num

    Of

  • 7/29/2019 Desenvolvendo Aplicaes em Progress CHAR

    47/67

    47

    By

    9 Usa-se a opo BY para classificao de registros por um campo

    no indexado.

    9 Ex: FOR EACH cust omer

    BY bal ance DESCENDI NG:

    DI SPLAY cust omer. bal ance

    cust omer . name

    cust omer . phone.

    END.

    9 Default: ordenao ascendente

  • 7/29/2019 Desenvolvendo Aplicaes em Progress CHAR

    48/67

    48

    Use-Index

    9 A opo USE-INDEX permite que voc escolha qualquer ndice

    definido para selecionar registros.

    9 Ex: FOR EACH cust omer USE- I NDEX name:

    DI SPLAY cust omer. bal ance

    cust omer . name

    cust omer . phone.

    END.

  • 7/29/2019 Desenvolvendo Aplicaes em Progress CHAR

    49/67

    49

    Begins

    9 Verifica se a 1 expresso inicia com a 2 expresso.

    9 Utiliza um ndice caso exista.

    9 Ex: FOR EACH cust omerWHERE cust omer . name BEGI NS S:

    DI SPLAY cust omer . cust - num

    cust omer . name

    cust omer . phone.

    END.

  • 7/29/2019 Desenvolvendo Aplicaes em Progress CHAR

    50/67

    50

    Matches

    9 Compara uma expresso do tipo caracter com um padro e

    retorna o valor verdadeiro se a expresso for atendida.9 No utiliza ndice.

    9 Ex: FOR EACH cust omer

    WHERE cust omer. addr ess MATCHES *st:

    DI SPLAY cust omer . cust - num

    cust omer . name

    cust omer. addr ess.

    END.

  • 7/29/2019 Desenvolvendo Aplicaes em Progress CHAR

    51/67

    51

    Contains

    9 Faz a busca por determinada palavra ou combinao delas, em

    atributos do tipo word-index.

    9 Ex: FOR EACH i t em

    WHERE i t em. i t em- name CONTAI NS bal l :

    DI SPLAY i t em. i t em- num

    i t em. i t em- name

    i t em. pr i ce.

    END.

  • 7/29/2019 Desenvolvendo Aplicaes em Progress CHAR

    52/67

    52

    Buffer

    9 Funciona como um espelho da tabela.

    9 Ex: DEFI NE BUFFER bf - cl i ente FOR cust omer .

    FI ND FI RST cust omer .

    UPDATE cust omer . cust - num

    cust omer . name.

    FI ND bf - cl i ente

    WHERE bf - cl i ent e. cust - num = cust omer . cust - num.

    DI SPLAY bf - cl i ent e. name

    bf - cl i ent e. phone.

    UPDATE cust omer. addr ess.

  • 7/29/2019 Desenvolvendo Aplicaes em Progress CHAR

    53/67

    53

    Query

    9 Pesquisa agrupada de registro do banco de dados.

    9 Exemplos:

    Definir a query:

    DEFI NE QUERY nome- da- quer y

    FOR t abel a SCROLLI NG.

    Abrir a query:

    OPEN QUERY nome- da- quer y FOR EACH t abel a.

    Acessar os registros:

    GET FI RST nome- da- quer y.

  • 7/29/2019 Desenvolvendo Aplicaes em Progress CHAR

    54/67

    54

    Get

    9 Retorna um registro de uma query previamente aberta.

    9 Ex: GET FI RST nome- da- quer y.

    GET NEXT nome- da- quer y.

    GET PREV nome- da- quer y.

    GET LAST nome- da- quer y.

  • 7/29/2019 Desenvolvendo Aplicaes em Progress CHAR

    55/67

    55

    Exemplo: Query + Get

    DEFI NE QUERY qr - cust

    FOR cust omer SCROLLI NG.

    OPEN QUERY qr - cust FOR EACH cust omer .

    GET FI RST qr - cust .

    REPEAT:

    DI SP cust omer .

    GET NEXT qr - cust .

    END.

  • 7/29/2019 Desenvolvendo Aplicaes em Progress CHAR

    56/67

    56

    LABORATRIO 3

    Exerccio disponvel nomaterial de apoio

    Laboratrio 3

  • 7/29/2019 Desenvolvendo Aplicaes em Progress CHAR

    57/67

    57

    VARIVEIS

    Variveis

  • 7/29/2019 Desenvolvendo Aplicaes em Progress CHAR

    58/67

    58

    Variveis

    9 Ex.: DEFI NE VARI ABLE nome- var i avel

    AS Ti po de dadoLI KE Tabel a. at r i but o

    I NI TI AL ABC NO- UNDO.

    9 Ex.: DEFI NE VARI ABLE c- cust omer

    AS char NO- UNDO.

    DEF VAR i - cust- num

    LI KE cust omer . cust - num NO- UNDO.

  • 7/29/2019 Desenvolvendo Aplicaes em Progress CHAR

    59/67

    59

    Message

    9 Envia uma mensagem para a tela.

    9 Sintaxe:

    MESSAGE texto

    [ UPDATE var i avel ]

    [ VI EW- AS ALERT- BOX

    [ QUESTI ON | I NFORMATI ON | WARNI NG | ERROR ]

    ]

    [ BUTTONS YES- NO | YES- NO- CANCEL |

    OK | OK- CANCEL | RETRY- CANCEL ][ TI TLE t t ul o ] .

  • 7/29/2019 Desenvolvendo Aplicaes em Progress CHAR

    60/67

    60

    Exemplo: Message

    DEF VAR l - resp AS l ogi calI NI TI AL no

    NO- UNDO.

    MESSAGE Conf i r ma At ual i zao?

    UPDATE l - resp

    VI EW- AS ALERT- BOX QUESTI ON

    BUTTONS YES- NO

    TI TLE At ual i zao de Dados.

  • 7/29/2019 Desenvolvendo Aplicaes em Progress CHAR

    61/67

    61

    LABORATRIO 4

    Exerccio disponvel nomaterial de apoio

    Laboratrio 4

  • 7/29/2019 Desenvolvendo Aplicaes em Progress CHAR

    62/67

    62

    PROCESSAMENTO CONDICIONAL

    Processamento Condicional

  • 7/29/2019 Desenvolvendo Aplicaes em Progress CHAR

    63/67

    63

    Processamento Condicional

    SOLICITA NUM. CLIENTE

    BUSCA REGISTRO NOBANCO DE DADOS

    ENCONTROU?

    ALTERA INFORMAES ADICIONA NOVO

    SIM NO

  • 7/29/2019 Desenvolvendo Aplicaes em Progress CHAR

    64/67

    64

    Processamento Condicional: IF

    I F expr essi on THEN

    comando.

    ELSE DO:

    comando.

    comando.

    comando.

    END.

    BLOCO

  • 7/29/2019 Desenvolvendo Aplicaes em Progress CHAR

    65/67

    65

    Processamento Condicional: Case

    CASE expr essi on:WHEN val ue THEN

    comando.WHEN val ue THEN DO:

    bl oco.END.WHEN val ue THEN

    comando.OTHERWI SE DO:

    bl oco.

    END.END CASE.

  • 7/29/2019 Desenvolvendo Aplicaes em Progress CHAR

    66/67

    66

    LABORATRIO 5

    Exerccio disponvel nomaterial de apoio

    Laboratrio 5

  • 7/29/2019 Desenvolvendo Aplicaes em Progress CHAR

    67/67

    Este material de propriedade da DATASUL S.A., sendo proibida a sua reproduo em qualquer meio, total ouparcial, sem aprovao por escrito. Todos os direitos esto reservados. A informao contida aqui confidencial

    e no pode ser utilizada fora da empresa ou das franquias que fazem parte da nossa rede, no podendo serdivulgada para clientes, parceiros ou outra empresa ou indivduo sem o prvio consentimento de um diretor da

    DATASUL S.A. As opinies expressas aqui esto sujeitas a modificao sem aviso prvio.

    [email protected]

    http://universidade.datasul.com.br

    [email protected]

    http://universidade.datasul.com.br

    Obrigada!

    Agradecimento