curso progress

Upload: fabiano-sakae-ribeiro

Post on 15-Jul-2015

425 views

Category:

Documents


11 download

TRANSCRIPT

Treinamento de Progress Desenvolvimento de Aplicaes

Introduo

Introduoy Progress um ambiente de desenvolvimento de

aplicaes completo, pois composto por:y Linguagem de Programao (4 Gerao); y Ferramenta de Programao.

y SGBD (Sistema de Gerenciamento de Banco de Dados);

Introduoy flexvel, aberto e completo. y Flexvel, pois assegura portabilidade entre plataformas; y Aberto, pois suporta padro industrial; y Completo, pois permite a construo de grandes aplicaes e possui solues Client/Server.

omponentes da Linguagemy Blocos; y Declaraes; y Funes; y Operadores; y Variveis; y Expresses; y Smbolos Especiais; y Elementos de Interface com o Usurio; y Eventos.

omponentes Lgicosy Tabelas; y Registros; y Campos; y ndices.

omponentes Fsicosy Database (Banco de Dados)

Contm os dados da

base. y Before-Image Contm imagem dos dados durante uma transao. Caso houver algum problema ou a transao for desfeita, os dados alterados sero desfeitos. y Log Contm as referncias de acesso base. y Lock Informa se a base est sendo acessada.

Tipo de Dados do ProgressTipo CHARACTER INTEGER DECIMAL LOGICAL DATE ROWID RECID>>>>>9

Formatox(10) Alfanumrico A(10) Alfabtico !x(10) Letras Maisculas >>>,>>9 Nmero sem espaos zzz,zz9 Nmero com espaos 999,999 Preenche com 0 >>>,>>9.999

Exemplox(40) String alfanumrica AAA-9999 PRO-2012 !x(20) STRING MAISCULAS >>>,>>>,>>9 2.012 zz,zzz,zz9 10 99,999,999 00.000.034 >>,>>>.>>9 2.012,970 zz,zz9.9 10,9 99,999.99 00.034,05 Yes/No No True/False True Sim/No No 99/99/9999 12/31/2011 99/99/99 12/31/11

YES/NO TRUE/FALSE Sim/No 99/99/9999 (ms/dia/ano) 99/99/99 (ms/dia/ano)

Definio de Variveisy DEFINE VARIABLE AS

FORMAT INITIAL NOUNDO.y Exemplo: DEFINE VARIABLE c-nome AS CHARACTER FORMAT x(40) .

Definio de Variveis

Message (Mensagem)y MESSAGE

UPDATE VIEW-AS ALERT-BOX BUTTONS TITLE .y UPDATE

Recebe os valores dos botes YES ou NO . y Tipo de Mensagem: INFO/WARNING/QUESTION/ERROR. y BUTTONS: OK/OK-CANCEL/YES-NO/YES-NOCANCEL/RENTRY-CANCEL. y TITLE Ttulo da caixa de mensagem.

Message (Mensagem)y Exemplo:

MESSAGE Treinamento Progress VIEW-AS ALERT-BOX INFO BUTTONS OK. MESSAGE Deseja continuar? UPDATE l-resp VIEW-AS ALERT-BOX QUESTION BUTTONS YES-NO TITLE Pergunta . MESSAGE Cliente no encontrado! VIEW-AS ALERT-BOX ERROR BUTTONS RETRY-CANCEL.

Message (Mensagem)

Funoy TODAY Retorna a data atual; y TIME y y y y

Retorna a hora atual, em segundos; DAY() Retorna o DIA da data fornecida; MONTH() Retorna o MS da data fornecida; YEAR() Retorna o ANO da data fornecida; WEEKDAY() Retorna o dia da semana, em nmeros.

Funoy Exemplo: ASSIGN dt-compra = TODAY.MESSAGE Data atual: STRING(TODAY, 99/99/9999 ) SKIP Hora atual: STRING(TIME, hh:mm:ss ) SKIP Dia: DAY(TODAY) SKIP Ms: MONTH(TODAY) SKIP Ano: YEAR(TODAY) SKIP Dia Semana: WEEKDAY(TODAY) VIEW-AS ALERT-BOX INFO BUTTONS OK TITLE Atual .

Localizao e Movimentao de Dados

Localizao dos Dados

Base de Dados

Buffer de Registro

Buffer de Tela

Movimentao de Dados

Base de Dados

Buffer de Registro

Buffer de Tela

Base de Dados

Buffer de Registro

Buffer de Tela

Entrada de Dados do Usurio

Movimentao de Dadosy Os dados da Base de Dados no sero manipulados at

que sejam movimentados para o Buffer de Registro; y Os dados do Buffer de Registro no sero manipulados pelo usurio at que movimentados para o Buffer de Tela; y Os dados manipulados pelo usurio no sero atualizados na Base de Dados at que sejam movimentados pelo Buffer de Tela e Buffer de Registro.

Manipulao de Dados

Manipulao de Dadosy CREATE

responsvel por criar um registro na Base de Dados, com valores padres inicializados e o registro ser disponibilizado no Buffer de Registro;y Exemplo: CREATE cliente.

Manipulao de Dadosy DISPLAY

responsvel por mostrar os valores em tela, movendo os dados do Buffer de Registro para o Buffer de Tela, porm os dados devem estar disponveis no Buffer de Registro.y Exemplo: DISPLAY cliente.nome.

Manipulao de Dadosy PROMPT-FOR

responsvel por solicitar a Entrada de Dados do Usurio disponvel no Buffer de Tela e o disponibiliza no mesmo.y Exemplo: PROMPT-FOR cliente.nome.

Manipulao de Dadosy ASSIGN

responsvel por atualizar os dados no Buffer de Registro, movimentando os dados do Buffer de Tela para o Buffer de Registro.y Exemplo: DEFINE VARIABLE c-nome AS CHARACTER.CREATE cliente. PROMPT-FOR c-nome. ASSIGN cliente.nome = c-nome.

Manipulao de Dadosy SET

responsvel por solicitar a Entrada de Dados do Usurio disponvel no Buffer de Tela, disponibilizla no mesmo e atualizar os dados do Buffer de Tela para o Buffer de Registro. Este comando tem a funo do PROMPT-FOR e ASSIGN.y Exemplo: CREATE cliente. SET cliente.nome.

Manipulao de Dadosy UPDATE - responsvel por solicitar a Entrada de

Dados do Usurio disponvel no Buffer de Tela, disponibiliz-la no mesmo, atualizar os dados do Buffer de Tela para o Buffer de Registro e atualizar os dados do Buffer de Registro para a Base de Dados. Este comando tem a funo do DISPLAY, PROMPT-FOR e ASSIGN.y Exemplo: CREATE cliente. UPDATE cliente.nome

Manipulao de Dadosy INSERT

responsvel por criar um novo registro na Base de Dados, disponibiliza o registro no Buffer de Registro, depois no Buffer de Tela, solicita a Entrada de Dados do Usurio, movimenta os dados para o Buffer de Registro e depois para a Base de Dados. Este comando tem a funo do CREATE, DISPLAY, PROMPT-FOR e ASSIGN.y Exemplo: CREATE cliente. INSERT cliente.

Manipulao de Dadosy DELETE

responsvel por eliminar o registro do Buffer de Registro e da Base de Dados, porm os dados devem estar disponveis no Buffer de Registro.y Exemplo: DELETE cliente.

Manipulao de Dadosy RELEASE

Ele limpa o registro do Buffer de Registro e atualiza o registro que estava disponvel no Buffer de Registro na Base de Dados.y Exemplo: CREATE cliente. UPDATE cliente.nome. RELEASE cliente.

Quadro de ComandosINSERT UPDATE SET DELETE CREATE DISPLAY PROMPT-FOR ASSIGN FIND FOR EACH RELEASE

Operadoresy NOT IF NOT cliente.ativo THEN NEXT. y AND IF cliente.ativo AND

y

y y y y y y

cliente.limite = 0 THEN ASSIGN cliente.ativo = NO. OR IF cliente.limite > 0 OR cliente.ativo THEN ASSIGN cliente.limite = cliente.limite + 10. = Igual Diferente > Maior >= Maior ou igual < Menor