progress dca -...
TRANSCRIPT
![Page 1: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/1.jpg)
PROGRESS DCADesenvolvendo Aplicações Caracter
![Page 2: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/2.jpg)
Completo ambiente de
desenvolvimento de aplicações,
composto por :
- Sistema Gerenciador de BD Relacional
- Linguagem de 4a. Geração
- Ferramentas de Programação
![Page 3: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/3.jpg)
Benefícios
AbertoFlexível
Completo
![Page 4: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/4.jpg)
Benefícios Flexível
– Assegura
portabilidade das
aplicações em
outras plataformas
Aberto– Suporta o padrão
industrial
– Assegura opções
de desenvolvimento
heterogêneoCompleto
– Permite construção
de grandes
aplicações
– Produz soluções
Client/Server
![Page 5: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/5.jpg)
Componentes Lógicos
Base de Dados
–Tabela
Registro
Campo
– Índice
![Page 6: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/6.jpg)
Componentes Lógicos
Cliente Empresa Banco
= Base Dados
![Page 7: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/7.jpg)
= Tabela
= Registro
= CampoNome
C
O
M
P
O
N
E
N
T
E
S
L
Ó
G
I
C
O
S
= Índice
![Page 8: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/8.jpg)
Componentes Físicos
.DB
.BI .LG .LK
![Page 9: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/9.jpg)
Componentes Físicos
.DB
-> Before-Image
contém a imagem dos dados de uma transação.BI
-> Database
contém os dados atuais e descrições da base
![Page 10: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/10.jpg)
Componentes Físicos
.LG
-> Lock
Informa se a base está sendo acessada..LK
-> Log
contém as referências dos usuários , hora de
entrada, saída e programas acessados (histórico).
![Page 11: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/11.jpg)
Outros Arquivos Importantes
Progress.INI -> Configurações do Progress.Contém informações importantes sobre a sessão e localização de arquivos do progress.
[Startup]
ImmediateDisplay=yes
Use-3D-Size=No
Keep3DFillinBorder=yes
DLC=c:\dlc82
PROCFG=c:\dlc82\PROGRESS.CFG
PROMSGS=c:\dlc82\promsgs
PROPATH=.,c:\dlc82\gui,c:\dlc82,c:\dlc82\bin
![Page 12: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/12.jpg)
-> Configurações da Sessão e conexões das
bases de dados.
• Os parâmetros de conexão das base de dados
que serão utilizados no aplicativo ficam setados
aqui;
• Temos também os parâmetros da sessão que
será executada.
.PF
Outros Arquivos Importantes
![Page 13: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/13.jpg)
Acessando o Progress
• Criar um diretório de trabalho no winchester;
• Criar um atalho com:
Objeto: C:\DLC82\bin\prowin32.exe -p _desk.p
Iniciar em: C:\<diretório de trabalho>
![Page 14: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/14.jpg)
Acessando o Progress
Principais parâmetros:-1 carga do banco de dados monousuário-d formato de data (-d dmy)-E formato europeu de ponto decimal-T diretório dos arquivos temporários-db nome físico do banco a ser conectado-ld nome lógico do banco-H nome da máquina onde está o banco-S nome do serviço no servidor para o banco-N protocolo de comunicação (-N TCP)-pf arquivo de parâmetros-ininame nome do arquivo .INI utilizado-basekey utiliza .INI ou o Registry do Windows (INI)-cpstream mapa de caracteres a ser utilizado (ibm850)-p programa a ser executado
![Page 15: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/15.jpg)
Acessando o Progress
1 2 3 4 5 6
Onde:
1) Data Dictionary
2) Procedure Editor
3) User Interface Builder (UIB)
4) Results (Não utilizado)
5) Reporter Builder (Não utilizado)
6) Application Debugger
![Page 16: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/16.jpg)
Acessando o Dicionário
Progress
![Page 17: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/17.jpg)
Criando/Conectando
Banco de Dados
![Page 18: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/18.jpg)
![Page 19: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/19.jpg)
![Page 20: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/20.jpg)
![Page 21: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/21.jpg)
![Page 22: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/22.jpg)
![Page 23: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/23.jpg)
Índices
Razões para definição de índice:
• Retorno rápido do registro;
• Ordenação automática dos
registros;
• Rápido processamento entre
arquivos;
• Força a unicidade.
![Page 24: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/24.jpg)
![Page 25: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/25.jpg)
LABORATÓRIO 1
Criar a tabela CLIENTES com as seguintes características:
Atributos---- Tipo---------- Formato----- Label--------------
Código integer >>>9 Código
Nome character x(40) Nome
Endereco character x(40) Endereço
Bairro character x(20) Bairro
Cidade character x(20) Cidade
CEP character 99.999-999 CEP
Estado character x(2) UF
Índice: Código -> Atributo: Código -> Primário e Único
![Page 26: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/26.jpg)
Acessando o Procedure Editor
![Page 27: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/27.jpg)
- Blocos
- Declarações
- Funções
- Operadores
- Variáveis
- Expressões
- Símbolos especiais
- Elementos da interface com o usuário
(atributos e métodos)
- Eventos
Componentes da
Linguagem
![Page 28: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/28.jpg)
Localização dos Dados
Base de Dados
Buffer Registro
Buffer tela
![Page 29: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/29.jpg)
Movimentando dados
Base de Dados Tela
Base de
Dados
Buffer
Registro
Buffer
tela
![Page 30: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/30.jpg)
Movimentando dados
Tela Base de Dados
Base de
Dados
Buffer
RegistroBuffer
Tela
Entrada
Usuário
![Page 31: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/31.jpg)
Regras para Movimentação
de Dados
Os programas não podem manipular os
dados da base de dados até que eles
sejam copiados para o buffer de registro;
O usuário não pode interagir com os
dados até que eles sejam copiados do
buffer de registro para o buffer de tela;
![Page 32: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/32.jpg)
Regras para Movimentação
de Dados
As alterações que são feitas no buffer de
tela ou buffer de registro não são
atualizadas automaticamente em outro
buffer. Deve-se programar o controle de
movimentação entre os buffers.
![Page 33: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/33.jpg)
Comando Banco de
Dados
Buffer de
Registro
Buffer de Tela Usuário
ASSIGN
CREATE
DELETE
DISPLAY
ENABLE
FIND
FOR EACH
GET
INSERT
PROMPT-FOR
RELEASE
SET
UPDATE
![Page 34: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/34.jpg)
Criando e Modificando Registros
CREATE - Cria um novo registro no banco,
inicializa com os valores defaults e deixa uma
cópia do registro no buffer de registro.
Ex.: CREATE customer.
UPDATE - Executa as ações de DISPLAY,
PROMPT-FOR e ASSIGN.
Ex.: UPDATE customer.
UPDATE customer EXCEPT cust-num.
![Page 35: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/35.jpg)
INSERT - Executa as ações de CREATE,
DISPLAY, PROMPT-FOR e ASSIGN.
Ex.: INSERT customer.
ASSIGN - Copia os dados do buffer de tela para o
buffer de registro.
Ex.: ASSIGN customer.cust-num.
Criando e Modificando Registros
![Page 36: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/36.jpg)
SET - Executa as ações de PROMPT-FOR e
ASSIGN.
Ex.: SET customer.
DELETE - Elimina um registro do buffer de registro
e do banco de dados.
Ex.: DELETE customer.
Criando e Modificando Registros
![Page 37: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/37.jpg)
ASSIGN - Copia os dados do buffer de tela para
seus respectivos campos e/ou variáveis no buffer
de registro.
Ex.: 1. ASSIGN customer.cust-num.
2. DEF VAR i-cust-num AS integer NO-UNDO.
PROMPT-FOR i-cust-num.
FIND FIRST customer EXCLUSIVE-LOCK.
ASSIGN customer.cust-num = i-cust-num.
Criando e Modificando Registros
![Page 38: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/38.jpg)
INSERT
UPDATE
Create
Comandos que substituem
Comandos
![Page 39: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/39.jpg)
Comandos que substituem
Comandos
UPDATE
SET
Create Display
INSERT
![Page 40: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/40.jpg)
Comandos que substituem
Comandos
INSERT
UPDATE
SET
Create Display AssignPrompt-for
![Page 41: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/41.jpg)
Quadro de Comandos
INSERT
UPDATE
SET
Delete Create DisplayPrompt-
forAssign Find
For
Each Release
![Page 42: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/42.jpg)
Tipo Formato Exemplo
Character x(8)Aceita: A – Alfabetico ! – Maiusculas
“x(40)” –> string alfanumérica“AAA-9999” –> MCZ-9283“!x(10)” –> STRING ALFANUMÉRICA
Integer >>>,>>9Aceita: z – espaço 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/AAA
Rowid ----
Recid >>>>>9
Tipos de Dados do Progress
![Page 43: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/43.jpg)
Observe a movimentação
insert customer.
create customer.
update customer.
create customer.
display customer.
prompt-for customer
assign customer.
![Page 44: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/44.jpg)
Tipos de Blocos
• REPEAT
• FOR EACH
• DO
• PROCEDURES
• TRIGGERS
![Page 45: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/45.jpg)
REPEAT
Laço (repetição) automático. Continua a
interagir até encontrar um END-ERROR ou
outra condição de término definida pelo
usuário.
Ex: REPEAT WITH 1 COLUMN:
CREATE customer.
UPDATE customer.
END.
![Page 46: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/46.jpg)
FOR EACH
Lê um registro a cada interação do bloco
e copia os dados do banco para o buffer de
registro, e do buffer de registro para o buffer de
tela.
Ex: FOR EACH customer:
DISPLAY cust-num.
END.
![Page 47: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/47.jpg)
DO
Individualiza um grupo de comandos dentro
de um bloco simples.
Ex: FOR EACH customer:
DISPLAY cust-num.
IF credit-limit > 5000 THEN DO:
UPDATE name address.
MESSAGE "Registro Alterado".
END.
END.
![Page 48: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/48.jpg)
FIND
Busca apenas um registro em uma tabela.
FIRST (primeiro) LAST (último)
NEXT (próximo) PREV (anterior)
Ex.: FIND FIRST customer.
DISPLAY customer.
![Page 49: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/49.jpg)
PROMPT-FOR
Solicita uma entrada e disponibiliza no buffer
de tela.
Ex.: PROMPT-FOR customer.cust-num.
FIND customer
WHERE customer.cust-num = INPUT
customer.cust-num.
DISPLAY customer WITH 1 COLUMN.
![Page 50: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/50.jpg)
Substituindo "WHERE"
PROMPT-FOR customer.cust-num.
FIND customer USING customer.cust-num.
DISPLAY customer WITH 1 COLUMN.
WHERE customer.cust-num = INPUT customer.cust-num.
![Page 51: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/51.jpg)
REPEAT
Laço (repetição) automático. Continua a
interagir até encontrar um END-ERROR ou
outra condição de término definida pelo
usuário.
Ex: REPEAT WITH 1 COLUMN:
PROMPT-FOR customer.cust-num.
FIND customer USING customer.cust-num.
DISPLAY customer.
END.
![Page 52: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/52.jpg)
BEGINS
Verifica se a 1. expressão inicia com a 2.
expressão.
Ex: FOR EACH customer
WHERE customer.name BEGINS “S”:
DISPLAY customer.cust-num
customer.name
customer.phone.
END.
![Page 53: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/53.jpg)
MATCHES
Compara uma expressão do tipo caracter com
um padrão e retorna o valor verdadeiro se a
expressão for atendida.
Ex: FOR EACH customer
WHERE customer.address MATCHES “*st”:
DISPLAY cust-num name address.
END.
![Page 54: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/54.jpg)
CONTAINS
Faz a busca por determinada palavra ou
combinação delas, em atributos do tipo word-
index.
Ex: FOR EACH item
WHERE item-name CONTAINS “ball”:
DISPLAY item-num item-name price.
END.
![Page 55: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/55.jpg)
QUERY
Busca registros no banco de dados. É utilizada
com widgets browses ou declaração GET.
- Definir a query
Ex.: DEFINE QUERY query-name FOR table
- Abrir a query
Ex.: OPEN QUERY query-name FOR EACH table
- Acessar os registros
GET ou BROWSE
![Page 56: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/56.jpg)
GET
Retorna um registro de uma query previamente
aberta.
GET FIRST query-name.
NEXT
LAST
PREV
![Page 57: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/57.jpg)
BROWSE
Interface para a query.
Ex:
DEFINE QUERY query-name FOR customer.
DEFINE BROWSE browse-name QUERY query-name
DISPLAY customer.cust-num
customer.name
WITH 15 DOWN TITLE “Browse de Clientes”.
OPEN QUERY query-name FOR EACH customer.
UPDATE browse-name WITH FRAME f1.
![Page 58: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/58.jpg)
BY
Usa-se a opção BY para classificação de registros
por um campo não indexado.
Ex:
FOR EACH customer BY balance DESCENDING:
DISPLAY balance name phone.
END.
Default : ordenação ascendente
![Page 59: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/59.jpg)
USE-INDEX
A opção USE-INDEX permite você escolher
qualquer índice definido, para selecionar registros.
Ex:
FOR EACH customer USE-INDEX name:
DISPLAY balance name phone.
END.
![Page 60: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/60.jpg)
LABORATÓRIO 2
3-58
Página 3-58
![Page 61: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/61.jpg)
Processamento Condicional
Solicita num. cliente
Busca registro no BD
Encontrou?
Altera informações Adiciona novo
Sim Não
![Page 62: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/62.jpg)
IF expression THEN
bloco
ELSE DO:
bloco
END.
Processamento Condicional
![Page 63: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/63.jpg)
Processamento Condicional
CASE expression:
WHEN value THEN
bloco
WHEN value THEN DO:
bloco
END.
WHEN value THEN
bloco
OTHERWISE
END CASE.
![Page 64: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/64.jpg)
Eliminando Registros
Elimina o registro da tabela onde o ponteiro estiver
posicionado.Ex:
REPEAT:
PROMPT-FOR customer.cust-num.
FIND customer USING cust-num.
DELETE customer.
END.
![Page 65: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/65.jpg)
Variáveis
DEFINE VARIABLE variable-name
AS Tipo de dado
LIKE Tabela.atributo
INITIAL “xxxx”
NO-UNDO
Ex.: DEFINE VARIABLE c-customer AS char NO-UNDO.
DEF VAR i-cust-num LIKE customer.cust-num
NO-UNDO.
![Page 66: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/66.jpg)
LABORATÓRIO 3
4-29
Página 4-29
Página 5-32
![Page 67: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/67.jpg)
FRAMES
É uma área retangular dentro da tela do Progress
usada para mostrar informações.
Layout default para seus dados.
Espaço disponível:
Frame (21 linhas)
Mensagens (2 linhas)
Linha de status (1 linha)
![Page 68: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/68.jpg)
FRAMES
As frames default do progress ocorrem nos
seguintes blocos :
Procedure
Repeat
For each
Do with frame
![Page 69: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/69.jpg)
FRAMES
DISPLAY “Relatório de Clientes”
WITH FRAME abc CENTERED.
FOR EACH customer:
DISPLAY cust-num name
WITH FRAME xxx DOWN.
END.
one-down: dados de uma única interação do bloco
down: dados de múltiplas interações do bloco.
![Page 70: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/70.jpg)
Define uma frame para uso por um procedimento ou
por diversos procedimentos.
Ex.: DEFINE FRAME xxx
customer.cust-num SKIP(2)
customer.name AT 5 SKIP
customer.address AT 5
WITH SIDE-LABELS OVERLAY.
DEFINE FRAME
![Page 71: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/71.jpg)
AT - Alinhamento pela direita. F1: Short
Fld2: Medium
Field3: Long
COLON - Alinhamento pelos dois pontos.
F1: Short
Fld2: Medium
Field3: Long
TO - Alinhamento pela esquerda.
F1: Short
Fld2: Medium
Field3: Long
OPÇÕES DE POSICIONAMENTO
![Page 72: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/72.jpg)
VIEW - apresenta uma frame.
Ex.: VIEW FRAME frame-name.
PAUSE - suspende a execução até que uma tecla
seja pressionada ou um certo tempo passar.
Ex.: PAUSE.
PAUSE 5.
HIDE - apaga uma frame.
Ex.: HIDE FRAME frame-name NO-PAUSE.
![Page 73: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/73.jpg)
LABORATÓRIO 4
Página 6-29
![Page 74: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/74.jpg)
Em tempo de compilação PROGRESS lê estes
arquivos include como sendo parte do programa.
Vantagem: reutilização de código.
Ex.: {i-valida.i}
{i-valida.i “Código Inválido”}
/* i-valida.i */
MESSAGE “{1}” VIEW-AS ALERT-BOX.
INCLUDES
![Page 75: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/75.jpg)
myprog.p
mycode.i
{mycode.i} DO:
...
Display record.
...
END.{mycode.i}
Código Modular com Arquivos de Includes
![Page 76: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/76.jpg)
Includes São Expansões em Tempo de Compilação
myprog.p
mycode.iDO:
...
Display record.
...
END.DO:
...
Display record.
...
END.
![Page 77: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/77.jpg)
Usando Arquivos de Include para Definir Variáveis
prog1.p
{mycode.i}
mycode.i
DEFINE VARIABLE...
prog2.p
{mycode.i}
![Page 78: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/78.jpg)
{i-valida.i &table=“customer”
&field=“cust-num}
/* i-valida.i */
FOR EACH {&table}:
DISPLAY {&field}.
END.
Exemplo de Includes
![Page 79: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/79.jpg)
LABORATÓRIO 5
• Criar um programa que possua uma include
genérica para mostrar dados de uma determinada
tabela, onde sejam passados como parâmetros
o nome da tabela e uma lista com 3 atributos.
• Este programa deverá chamar esta include para
as seguintes tabelas customer e state.
![Page 80: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/80.jpg)
REDIRECIONANDO A SAÍDA
OUTPUT TO nome-arq
PRINTER
TERM
![Page 81: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/81.jpg)
STREAM - Define canais adicionais de saída
Ex.: DEFINE STREAM s1.
OUTPUT [STREAM xxx] TO arquivo.txt
VALUE(c-arquivo)
[APPEND].
PUT [STREAM xxx]
PUT [STREAM xxx] UNFORMATTED+ SKIP
![Page 82: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/82.jpg)
TOTAL
COUNT
MAXIMUM
MINIMUM
AVERAGE
Os labels são mostrados na ordem especificada
acima.
FUNÇÕES
![Page 83: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/83.jpg)
ACCUMULATE - Calcula uma ou mais
expressões de totalização dentro de um bloco
de interação.
ACCUM - Acessa os valores acumulados pela
função accumulate.
TOTALIZANDO VALORES
![Page 84: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/84.jpg)
Define categorias de quebra.
Represent. Num Cliente Limite Crédito
aaa 1 60.000
aaa 3 3.000
63.000 TOTAL
bbb 4 5.000
bbb 8 50.000
55.000 TOTAL
118.000 TOTAL
BREAK
![Page 85: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/85.jpg)
FIRST-OF - Retorna verdadeiro se a iteração atual
for a primeira do grupo de quebra.
LAST-OF - Retorna verdadeiro se a iteração atual
for a última do grupo de quebra.
Ex.: FOR EACH customer
BREAK BY customer.sales-rep:
IF FIRST-OF(customer.sales-rep) THEN
DISPLAY customer.sales-rep
customer.name.
END.
FUNÇÕES
![Page 86: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/86.jpg)
Opção HEADER
PAGE-TOP
PAGE-BOTTOM
na definição da frame.
Ativar/Desativar frames - VIEW / HIDE
PAGE-SIZE - número de linhas por página.
PAGE-NUMBER - retorna o número da página.
CABEÇALHOS E RODAPÉS
![Page 87: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/87.jpg)
LABORATÓRIO 6
Página 7-32
![Page 88: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/88.jpg)
PROGRAMAÇÃO
ORIENTADA A EVENTOS
Usuário dirige a execução através do
acionamento dos componentes da interface.
A interface é composta por
widgets, que geram diferentes
eventos.
![Page 89: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/89.jpg)
COMPORTAMENTO DOS
PROGRAMAS
Procedural Eventos
Comandos...
Comandos
Gatilho 2
Gatilho 3Gatilho 1
Programa
![Page 90: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/90.jpg)
Ações do usuário ou do Progress que
ocorrem durante a execução de uma
aplicação.
Tipos de Eventos:
- Eventos causados pelo usuário (acesso a
elementos da interface)
- Eventos relacionados ao banco de dados
EVENTOS
![Page 91: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/91.jpg)
Comandos de Construção de Blocos
![Page 92: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/92.jpg)
Passos para Utilizar um Objeto
Passo Sintaxe
Definir o objeto e mostrá-lo DEFINE...
Definir os triggers para oobjeto
ON event OF object DO: ...END.
Mostrar o objeto na frame DISPLAY...WITH FRAME...
Executar o bloco principal doprograma
WAIT-FOR event OF object
![Page 93: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/93.jpg)
Existem 4 tipos básicos :
- Window Widget: espaço de trabalho da aplicação.
Criada quando a aplicação for iniciada.
- Frame Widget: recipiente para outros widgets.
- Data Widget: forma de representação dos dados.
São eles: fill-in, text, editor, combo-box, etc.
- Action Widget: forma de representar os
comandos. Botões e menus compõem os widgets
de ação. Esses widgets permitem que o usuário
dirija a operação de sua aplicação.
WIDGETS
![Page 94: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/94.jpg)
ATRIBUTOSApresentam/modificam as características dos
WIDGETS.
Ex.: ASSIGN wgh_retang1:bgcolor IN FRAMEf_dados = 8.
MÉTODOS
Retornam/adicionam informações/dados dos WIDGETS. OBS: Normalmente retorna um expressão
lógica.Ex.: ASSIGN v_log_stat = v_cod_estab:load-
mouse-pointer(“cross.ico”) IN FRAME f_dados = 8.
WIDGETS
![Page 95: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/95.jpg)
Bloco de código executado sempre que um evento
ocorre.
ON event-list OF widget-list
trigger-block
Ex.: ON choose OF bt-cancela DO:
MESSAGE “Botão de Cancela” VIEW-AS
ALERT-BOX INFORMATION.
QUIT.
END.
TRIGGERS
![Page 96: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/96.jpg)
Objetos Gráficos
ImageWindow
Frame
Rectangle
Combo box
Selection ListRadio set
Toggle box
Button
Fill in
![Page 97: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/97.jpg)
Use VIEW-AS para especificar os widgets de
representação dos dados.
Ex. DEFINE VARIABLE l-estudante AS logical
VIEW-AS TOGGLE-BOX LABEL
“Estudante?”.
VIEW-AS
![Page 98: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/98.jpg)
DEFINE VARIABLE c-name AS character
VIEW-AS FILL-IN LABEL “Nome”
FORMAT “x(30)”.
FILL-IN
Atributos
•Format
•Label
•Screen-value
•Sensitive
•Visible
•Tooltip
Métodos
•Load-mouse-pointer
Eventos
•Entry
•Leave
![Page 99: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/99.jpg)
Ao mudar o valor
marcado o Progress
executa a trigger
value-changed
DEFINE VAR l-cobertura1 AS logical LABEL
“Chocolate” VIEW-AS TOGGLE-BOX.
DEFINE VAR l-cobertura2 AS logical LABEL
“Morango” VIEW-AS TOGGLE-BOX.
TOGGLE-BOX
![Page 100: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/100.jpg)
TOGGLE-BOX
Atributos
•Label
•Screen-value
•Sensitive
•Visible
•Tooltip
Métodos
•Load-mouse-pointer
Eventos
•Entry
•Leave
•Value-changed
![Page 101: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/101.jpg)
RADIO-SET
DEF VAR i-num-bolas AS integer
LABEL "Quantas bolas?"
VIEW-AS RADIO-SET HORIZONTAL
RADIO-BUTTONS "1 Bola", 1 , "2 Bolas", 2.
Ao mudar o valor
marcado o Progress
executa a trigger
value-changed
![Page 102: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/102.jpg)
RADIO-SET
Atributos
•Label
•Screen-value
•Sensitive
•Visible
•Tooltip
•Horizontal
•List-items
Métodos
•Load-mouse-pointer
•Add-last
•Delete
•Disable
•Enable
•Replace
Eventos
•Entry
•Leave
•Value-changed
![Page 103: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/103.jpg)
SELECTION-LIST
DEF VAR c-coberturas AS character
LABEL "Cobertura"
VIEW-AS SELECTION-LIST MULTIPLE
LIST-ITEMS "Chantily ",
"Creme ",
"Mel ",
"Morango "
SCROLLBAR-VERTICAL
INNER-CHARS 12 INNER-LINES 4 SORT.
![Page 104: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/104.jpg)
SELECTION-LIST
Atributos
•Label
•Screen-value
•Sensitive
•Visible
•Tooltip
•Multiple
•Num-items
•List-items
Métodos
•Load-mouse-pointer
•Add-last
•Add-first
•Delete
•Entry
•Replace
•Lookup
Eventos
•Entry
•Leave
•Value-changed
•Default-action
![Page 105: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/105.jpg)
DEF VAR c-editor AS char FORMAT "x(3000)"
LABEL "Editor de Textos"
VIEW-AS EDITOR INNER-LINES 10
INNER-CHARS 20
SCROLLBAR-VERTICAL
SCROLLBAR-HORIZONTAL.
EDITOR
![Page 106: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/106.jpg)
EDITOR
Atributos
•Label
•Screen-value
•Sensitive
•Visible
•Tooltip
•Num-lines
•Read-only
•Scrollbar-vertical
•Scrollbar-horizontal
Métodos
•Load-mouse-pointer
•Read-file
•Save-file
Eventos
•Entry
•Leave
![Page 107: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/107.jpg)
DEF VAR c-coberturas AS character
LABEL "Cobertura" VIEW-AS COMBO-BOX
LIST-ITEMS "Chantily ",
"Creme ",
"Mel ”,
”Morango ”.
COMBO-BOX
![Page 108: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/108.jpg)
COMBO-BOX
Atributos
•Format
•Label
•Screen-value
•Sensitive
•Visible
•Tooltip
•List-items
•num-items
Métodos
•Load-mouse-pointer
•Add-first
•Add-last
•Delete
•Entry
•Lookup
•Replace
Eventos
•Entry
•Leave
•Value-changed
![Page 109: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/109.jpg)
DEF BUTTON btn-sair LABEL "Sair” AUTO-ENDKEY.
DEF BUTTON btn-ok LABEL ”Ok” AUTO-GO.
DEF BUTTON btn-atualizar LABEL "Atualizar".
DEF BUTTON btn-desfazer LABEL "Desfazer”
IMAGE FILE “im-undo”.
BOTÕES
![Page 110: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/110.jpg)
BOTÕES
Atributos
•Label
•Sensitive
•Visible
•Tooltip
Métodos
•Load-mouse-pointer
•Load-image
•Load-image-down
•Load-image-up
•Load-image-insensitive
Eventos
•Entry
•Leave
•Choose
![Page 111: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/111.jpg)
DEF IMAGE im-logo FILE ”datasul.bmp” SIZE 10 BY 1.
IMAGE
Atributos
•Sensitive
•Visible
•Tooltip
Métodos
•Load-mouse-pointer
Eventos
•Load-image
![Page 112: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/112.jpg)
DEF RECTANGLE rt-key SIZE 70 BY 5
EDGE-PIXELS 3
BGCOLOR 3 FGCOLOR 15.
RECTANGLE
Atributos
•Filled
•Sensitive
•Visible
•Tooltip
Métodos
•Load-mouse-pointer
Eventos
•Entry
•Leave
•Choose
![Page 113: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/113.jpg)
BROWSE
Atributos
•Multiple
•Sensitive
•Visible
•Separators
•Title
•Num-selected-rows
Métodos
•Fetch-selected-row
•Is-row-selected
•Select-row
•Load-mouse-pointer
Eventos
•Entry
•Leave
•Default-action
•Value-changed
![Page 114: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/114.jpg)
Representação de
Campos
Tipo de dados
Widget Caracter Numerico Logico
Combo-Box x x x
Editor x
Fill-in x x x
Radio-set x x x
Selection-list x
Toggle-box x
Text x x x
![Page 115: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/115.jpg)
LABORATÓRIO 7
Página 8-34
![Page 116: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/116.jpg)
PRINCIPAIS EVENTOS
CHOOSE (buttons, menus)
ENTRY
LEAVE
VALUE-CHANGED (toggle-box, radio-set,
selection-list, browse)
![Page 117: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/117.jpg)
ENABLE - ativa o widget na tela.
Ex.: ENABLE bt-inclui WITH FRAME f-cliente.
DISABLE - desativa o widget na tela.
Ex.: DISABLE bt-mod WITH FRAME f-cliente.
MANIPULANDO WIDGETS
![Page 118: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/118.jpg)
widget-name:attribute-name
Ex.: DISP c-name:label WITH FRAME f-ª
widget-name:attribute-name IN FRAME
frame-name = value
Ex. ASSIGN c-name:help IN FRAME f-a =
“Informe aqui o nome do cliente”.
ATRIBUTOS DOS WIDGETS
![Page 119: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/119.jpg)
LABORATÓRIO 8
Página 8-59
![Page 120: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/120.jpg)
MENUS
ASSIGN DEFAULT-WINDOW:MENUBAR =
MENU mbar:HANDLE.
![Page 121: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/121.jpg)
DEFINE SUB-MENU sm-Reports
MENU-ITEM mi-Labels LABEL "Customer Labels"
MENU-ITEM mi-Names LABEL "Customer Names"
RULE
MENU-ITEM mi-Balances LABEL "Order Totals"
MENU-ITEM mi-Today LABEL "Order Items".
DEFINE MENU mbar MENUBAR
SUB-MENU sm-Table LABEL "Tables"
SUB-MENU sm-Reports LABEL "Reports"
SUB-MENU sm-Help LABEL "Help".
![Page 122: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/122.jpg)
ON CHOOSE OF MENU-ITEM mi-item IN MENU
menu-name DO:
bloco
END.
DEF SUB-MENU sm-sair
MENU-ITEM mi-sair LABEL "Sai&r"
TRIGGERS:
ON CHOOSE APPLY "window-close" TO
current-window.
END TRIGGERS.
TRIGGERS PARA MENU
![Page 123: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/123.jpg)
LABORATÓRIO 9
Página 9-22
![Page 124: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/124.jpg)
DEFINE VARIABLE
NEW
NEW GLOBAL
SHARED
DEFINE SHARED FRAME
DEFINE BUFFER
DEFINE STREAM
COMPARTILHANDO DADOS
![Page 125: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/125.jpg)
É o espelho de uma tabela.
Ex. DEFINE BUFFER bf-cliente FOR customer.
define buffer b-aux for customer.
find first customer.
update customer.cust-num
customer.name.
find b-aux
where b-aux.cust-num = customer.cust-num.
display b-aux.name
b-aux.phone.
update customer.address.
BUFFER
![Page 126: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/126.jpg)
INPUT: recebe um valor do procedimento que o
chamou. Ex.: run prog2.p (c-name).
OUTPUT: retorna um valor para o procedimento
que o chamou. Ex.: run prog2.p (output i-cont).
INPUT-OUTPUT: recebe e retorna um valor para
o procedimento que o chamou. Ex. run (input-
output c-name).
RETURN: armazena o valor retornado de uma
rotina DLL (somente é válido no ambiente MS-
Windows)
PARÂMETROS
![Page 127: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/127.jpg)
•Bloco de código que você define dentro de um
procedimento PROGRESS.
•Pode-se chamá-lo de qualquer ponto do
programa. Acessam os mesmos dados do
procedimento, sem a necessidade de
compartilhamento.
PROCEDURES INTERNAS
![Page 128: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/128.jpg)
Programa com Procedures Internasproc1.pmyprog.p
RUN proc1.p
RUN proc2
PROCEDURE proc2:
END.
![Page 129: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/129.jpg)
FOR EACH customer:
DISPLAY customer.cust-num
customer.name.
RUN pi-mostra-pedidos.
END.
PROCEDURE pi-mostra-pedidos:
FOR EACH order OF customer:
DISPLAY order.order-num.
END.
END.
![Page 130: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/130.jpg)
RUN {extern-procedure}[PERSISTENT [SET handle]][ (parameter [ , parameter ] . . .) ][ argument ] . . . [ NO-ERROR ]
Ex.:RUN pi-calculo (INPUT 45,
OUTPUT v_perc).
RUN w-proces.w PERSISTENT SET hproces.
RUN pi-digito IN hproces (INPUT 382,OUTPUT v_digit).
EXECUTANDO PROCEDURES INTERNAS/PROGRAMAS
![Page 131: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/131.jpg)
INPUT [STREAM xxx] FROM arquivo.txt.
•Se o arquivo de entrada conter mais campos
que o procedimento usa, PROGRESS ignora os
campos excedentes.
•Se o arquivo de entrada conter menos campos
que o esperado, PROGRESS processa a linha
do arquivo, mas não seta os campos que ficaram
sem entrada.
INPUT FROM
![Page 132: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/132.jpg)
INPUT FROM cust.txt.
REPEAT:
CREATE customer.
SET customer.cust-num
customer.name
customer.sales-rep.
END.
INPUT FROM
![Page 133: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/133.jpg)
DEF VAR i-cust AS integer NO-UNDO.
DEF VAR c-name AS character NO-UNDO.
DEF VAR c-rep AS character NO-UNDO.
INPUT FROM cust.txt.
REPEAT:
IMPORT i-cust c-name c-rep.
MESSAGE i-cust SKIP
c-name SKIP
c-rep VIEW-AS ALERT-BOX.
END.
IMPORT
![Page 134: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/134.jpg)
OUTPUT TO c:/tmp/state.d.
FOR EACH state:
EXPORT state.
END.
"AK" "Alaska" "West"
"AL" "Alabama" "South"
"AR" "Arkansas" "Central"
"AZ" "Arizona" "West"
"CA" "California" "West"
"CO" "Colorado" "West"
EXPORT
![Page 135: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/135.jpg)
- Erro de sistema
- Erro gerado pelo procedimento - a busca de
um registro falha ou o procedimento tenta
criar um registro com chave duplicada.
- Erro de interrupção de processamento -
quando o usuário pressiona as teclas de
ERROR, ENDKEY ou END-ERROR.
TRATAMENTO DE ERROS
![Page 136: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/136.jpg)
- Unidade completa de trabalho.
- A transação é um trabalho que se for
terminada a sua execução de forma anormal,
será completamente desfeito, ou seja, todo
realizado ou nada feito.
Procedimento
REPEAT
FOR EACH
TRANSAÇÕES
Blocos que tem
processamento de
transação
![Page 137: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/137.jpg)
Uma transação é uma interação do bloco mais
externo que contiver declarações que alterem
diretamente o banco de dados, ou a leitura de
registros com a opção EXCLUSIVE-LOCK.
Escopo de uma transação determina a
quantidade de trabalho que PROGRESS
desfaz em eventos de falha do sistema.
TRANSAÇÕES
![Page 138: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/138.jpg)
REPEAT:
CREATE customer.
UPDATE cust-num name phone.
END.
DO TRANSACTION:
REPEAT:
CREATE customer.
UPDATE cust-num name phone.
END.
END.
TRANSACTION
![Page 139: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/139.jpg)
NO-LOCK
SHARE-LOCK (Não pode ser utilizado)
EXCLUSIVE-LOCK
BLOQUEIO DE REGISTROS
![Page 140: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/140.jpg)
LABORATÓRIO 10
Página 13-13
![Page 141: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/141.jpg)
FUNÇÕES
- CAN-DO: verifica uma string dentro de uma
lista separada por vírgulas.
IF NOT CAN-DO(lista,string) THEN ...
- CAN-FIND: retorna verdadeiro se um registro
foi encontrado.
Ex.: IF CAN-FIND(customer
WHERE customer.cust-num =
i-cust-num) THEN ...
![Page 142: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/142.jpg)
LOOKUP: retorna um valor inteiro indicando a posição da string dentro de uma lista. Separador default: “,”.LOOKUP(string,lista,[separador]).Ex.: LOOKUP(“sc”,”am,pr,sc”)
ENTRY: retorna uma string caracter
baseada em uma lista, a partir de uma
posição inteira. Separador default: “,”.
ENTRY(posição,lista,[separador]).
Ex.: ENTRY(2,c-lista,“/”).
FUNÇÕES
![Page 143: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/143.jpg)
- NUM-ENTRIES: retorna o número de itens
de uma lista. Separador default: “,”.
NUM-ENTRIES(lista,[separador])
Ex.: NUM-ENTRIES(c-lista,“.”).
- SUBSTRING: extrai uma porção de
caracteres de uma string.
SUBSTR(string,posição-inicial,posição-final)
Ex.: SUBSTR(c-nome,2,10).
SUBSTR(c-address,10).
FUNÇÕES
![Page 144: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/144.jpg)
- STRING: converte dados não caracter para o tipo
de dado caracter.
STRING(source,[format]).
Ex.: STRING (customer.cust-num).
STRING (customer.postal-code,”99999”).
FUNÇÕES
![Page 145: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/145.jpg)
- INDEX: retorna um inteiro, indicando a posição
de uma expressão dentro de uma string.
INDEX(string,expressão,posição-inicial p/procura).
Ex.: INDEX(“curso de progress”, “de”).
INDEX(“curso de progress”, “pr”, 10).
- RECID: endereço do registro.
Ex.: FIND customer
WHERE RECID(customer) = 3848 NO-ERROR.
FUNÇÕES
![Page 146: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/146.jpg)
• São iguais as tabelas;
• Possuem índice;
• Podem denegrir a performance, caso tenham muitos
registros e não possuam índice adequado;
DEF TEMP-TABLE tt_name [NO-UNDO]
[LIKE table-name
[USE-INDEX index-name [AS PRIMARY]] ... ]
[FIELD field-name {AS data-type | LIKE field}] ...
[INDEX index-name
[IS [UNIQUE] [PRIMARY] [WORD-INDEX ]]
{index-field [ASCENDING|DESCENDING]}...]...
TABELAS TEMPORÁRIAS
![Page 147: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/147.jpg)
Ex.:DEF TEMP-TABLE tt_cliente NO-UNDO
LIKE customer FIELD cod_fornec AS character FORMAT “x(5)”
LABEL “Fornecedor”FIELD region LIKE state.region INDEX fornec IS PRIMARY cod_fornec.
INSERT tt_cliente EXCEPT comments WITH 1 COLUMN.
FOR EACH tt_cliente NO-LOCK:DISP tt_cliente EXCEPT comments
WITH SIDE-LABELS.END.
TABELAS TEMPORÁRIAS
![Page 148: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/148.jpg)
LABORATÓRIO 11
• Criar a tabela temporária que seja igual a
tabela ORDER;
• Adicionar o atributo name, este deverá ser
igual ao atributo da tabela CUSTOMER;
• O programa deverá ler todos os
CUSTOMERS, todas os ORDERS dos
mesmos a atualizar a temp-table, alimentando
os atributos: cust-num, name, order-date,
order-num e sales-rep.
• Mostrar uma listagem que mostre os atributos
acima e todos os registros da temp-table.
![Page 149: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/149.jpg)
Dump/Load da Base de Dados
![Page 150: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/150.jpg)
Dump/Load da Base de Dados
![Page 151: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/151.jpg)
Dump/Load da Base de Dados
12
3
4
![Page 152: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/152.jpg)
LABORATÓRIO 12
• Criar uma base de dados com o nome de vocês;
• Fazer o DUMP da base de dados SPORTS;
• Fazer um LOAD dos dados na base de dados de
vocês.
![Page 153: PROGRESS DCA - sanderlei.com.brsanderlei.com.br/PDF/Totvs-Datasul/TOTVS-Datasul-Progress-0198.pdf · -1 carga do banco de dados monousuário ... e do banco de dados. Ex.: DELETE customer](https://reader034.vdocuments.net/reader034/viewer/2022051011/5bf03a6809d3f22e178b502b/html5/thumbnails/153.jpg)
DÚVIDAS ?