Dominando Progress
-
Upload
hiltonjrxp -
Category
Documents
-
view
168 -
download
0
Transcript of Dominando Progress
-
5/21/2018 Dominando Progress
1/302
Escrito por Mrcio Brener - http:/ / www.geocities.com/marcio-brener
Dominando o ProgressEscrito por Mrcio Brener Costa
Reviso Tcnica
Fernanda Magalhes Favilla
Paulo Afonso Israel Freire
Patrcia Alves de Freitas
Daniela Martino dos Santos
Agradeo a todos os meus amigos da CASSI pelo insentivo ecompanheirismo que sempre recebi para realizao desta obra.
Obrigado em especial aos meus Amigos da juventude, GiulerAlberto, Jlio Pacheco e Roberto Catanhede e a minha famlia pelaajuda nos meus primeiros passos na descoberta do Mundo daInformtica.
Um grande abrao para todos amigos de Braslia!.
-
5/21/2018 Dominando Progress
2/302
Dominando o Progress
Escrito por Mrcio Brener - http:/ / www.geocities.com/ marcio-brener
Faa o que certo ainda que seja o mais difcil.
-
5/21/2018 Dominando Progress
3/302
Dominando o Progress
Escrito por Mrcio Brener - http:/ / www.geocities.com/ marcio-brener
Copyright2000 Mrcio Brener
Todos os direitos reservados para o autor desta obra.
Toda ou qualquer parte desta publicao poder serreproduzida ou transmitida por qualquer meio, seja esteeletrnico, mecnico, de fotocpia, de gravao ou outrossem prvia autorizao, desde que citado o Autor (MrcioBrener Costa [email protected]).
Progress, Report Builder, AppServer e WebSpeed so Marcas
Registradas da ProgressSoftware Corporation EUA.
IBM/DB2 Marca Registra da International Bussines Machine -IBM.
Oracle Marca Registrada da OracleInc.
Windows 3.11, Windows 95, Windows 98, Windows NT, Windows
2000 so Marcas Registradas da Microsoft.
NetTerm Marca Registrada da InterSoft International Inc.
KeaX! Marca Registrada da Attachmate
Vipper e PCase so Marcas Registradas da 4Tool Software
OpenLink Marca Registrada da OpenLink
-
5/21/2018 Dominando Progress
4/302
Dominando o Progress
Escrito por Mrcio Brener - http:/ / www.geocities.com/ marcio-brener
ndice
Captulo 1 ............................................................ 20Apresentando o Progress........................................ 20
O que o Progress? .......................................................20
Como funciona?..............................................................21
Instalando o software.....................................................22
Apresentando os aplicativos............................................26Captulo 2 ............................................................ 33
Configurao do Produto ........................................ 33Configurao do Progress no Windows ...........................33
O arquivo progress.ini ...................................................35
Listagem do Arquivo progress.ini .................................... 36Configurando o Progress para UNIX................................42
Variveis de ambiente ....................................................42
Arquivos .........................................................................47
Arquivos comuns .......................................................... 47
Arquivos temporrios .................................................... 47
Banco de Dados............................................................48
Sesso cliente ..............................................................49
Protocolos disponveis.....................................................49
Captulo 3 ............................................................ 50
Criando & Definindo os Dados................................. 50
Criando um banco de dados ...........................................50
-
5/21/2018 Dominando Progress
5/302
Dominando o Progress
Escrito por Mrcio Brener - http:/ / www.geocities.com/ marcio-brener
Como funciona o Banco de Dados...................................52
Criando tabelas, campos, ndices, etc..............................53
Criando uma tabela.........................................................55
Criando os campos .........................................................59
Validando os Campos......................................................61
A propriedade Validation................................................62
Triggers..........................................................................63
O que um Trigger?........................................................63Criando ndices ...............................................................65
Aparncia do Campo (View-As).......................................69
Sequences ......................................................................70
O que so Sequences?...................................................70
Como usar um Sequence?..............................................70Metaschema ...................................................................71
O que o Metaschema?.................................................71
Captulo 4 .............................................................73
Aprendendo a linguagem.........................................73Desenvolvendo o cdigo .................................................73
O primeiro programa.....................................................73
Como fazer a interface com o usurio? ............................73
Conectando o banco de dados ........................................74
Aprendendo a sintaxe .....................................................77
Definindo variveis........................................................77
View-As .......................................................................83Definindo Frames..........................................................86
-
5/21/2018 Dominando Progress
6/302
Dominando o Progress
Escrito por Mrcio Brener - http:/ / www.geocities.com/ marcio-brener
Definindo Queries ...........................................................95
O qu uma Query?.....................................................95
BROWSES.......................................................................97
Utilizando a Query no Browse ....................................... 103
OPEN QUERY ............................................................. 103
ASSIGN ..................................................................... 105
Comandos de Impresso e Manipulao de Arquivos .... 106
OUTPUT .................................................................... 106PARMETROS............................................................. 106
INPUT ....................................................................... 110
Eventos ........................................................................ 114
Lista de Eventos ......................................................... 114
Preprocessadores ......................................................... 143
O que so preprocessadores?....................................... 143
Utilizao................................................................... 143
&SCOPED-DEFINE....................................................... 143
&GLOBAL-DEFINE....................................................... 144
&UNDEFINE ............................................................... 145
DIRETIVAS PREPROCESSADAS ..................................... 145Operadores................................................................... 146
&IF, &THEN, &ELSEIF, &ELSE, &ENDIF ......................... 146
MESSAGE ..................................................................... 147
PARMETROS............................................................. 147
Criando MENUS ............................................................ 150MENU........................................................................ 150
-
5/21/2018 Dominando Progress
7/302
Dominando o Progress
Escrito por Mrcio Brener - http:/ / www.geocities.com/ marcio-brener
BOTES........................................................................155
PARMETROS...............................................................159
Importao e Exportao de Dados ..............................162
Limites do Progress.......................................................163
Banco de Dados..........................................................163
VARIVEIS ................................................................. 164
NOMENCLATURAS.......................................................165
Funes........................................................................166ABSOLUTE ................................................................. 166
ACCUM ...................................................................... 166
ALIAS ........................................................................ 167
AMBIGUOUS............................................................... 167
ASC........................................................................... 168
AVAILABLE................................................................. 168
CAN-DO.....................................................................169
CAN-FIND ..................................................................169
CAN-QUERY ...............................................................170
CAN-SET....................................................................171
ENCODE.....................................................................171CHR...........................................................................172
CODEPAGE-CONVERT..................................................172
CONNECTED...............................................................173
COUNT-OF ................................................................. 173
CURRENT-CHANGED ...................................................174
CURRENT-LANGUAGE..................................................175
-
5/21/2018 Dominando Progress
8/302
Dominando o Progress
Escrito por Mrcio Brener - http:/ / www.geocities.com/ marcio-brener
CURRENT-RESULT-ROW.............................................. 175
CURRENT-ROW-MODIFIED .......................................... 176
CURRENT-VALUE ........................................................ 176
DATASERVERS ........................................................... 176
DATE......................................................................... 176
DAY .......................................................................... 177
DBCODEPAGE............................................................. 177
DBCOLLATION............................................................ 178DBNAME.................................................................... 178
DBPARAM .................................................................. 178
DBRESTRICTIONS....................................................... 179
DBTASKID.................................................................. 179
DBTYPE..................................................................... 180
DBVERSION ............................................................... 180
DECIMAL ................................................................... 181
DEFINED ................................................................... 181
DYNAMIC-FUNCTION .................................................. 182
ENTERED................................................................... 183
ENTRY....................................................................... 183ETIME ....................................................................... 184
EXP........................................................................... 184
EXTENT..................................................................... 184
FILL .......................................................................... 185
FIRST........................................................................ 185
FIRST-OF................................................................... 186FRAME-COL................................................................ 187
-
5/21/2018 Dominando Progress
9/302
Dominando o Progress
Escrito por Mrcio Brener - http:/ / www.geocities.com/ marcio-brener
FRAME-DB..................................................................187
FRAME-DOWN ............................................................187
FRAME-FIELD .............................................................188
FRAME-FILE ...............................................................188
FRAME-INDEX ............................................................188
FRAME-LINE...............................................................189
FRAME-NAME.............................................................189
FRAME-ROW ..............................................................189FRAME-VALUE ............................................................190
GATEWAYS ................................................................190
GET-BYTE ..................................................................190
GET-CODEPAGES........................................................190
GET-COLLATIONS.......................................................191
GET-DOUBLE..............................................................191
GET-FLOAT ................................................................192
GET-LONG..................................................................192
GET-POINTER-VALUE .................................................. 192
GET-SHORT................................................................192
GET-SIZE...................................................................192GET-STRING...............................................................193
GET-UNSIGNED-SHORT...............................................193
INDEX .......................................................................193
INTEGER....................................................................193
IS-ATTR-SPACE ..........................................................194
KBLABEL....................................................................194KEYCODE...................................................................195
-
5/21/2018 Dominando Progress
10/302
Dominando o Progress
Escrito por Mrcio Brener - http:/ / www.geocities.com/ marcio-brener
KEYFUNCTION............................................................ 195
KEYLABEL.................................................................. 196
KEYWORD.................................................................. 197
KEYWORD-ALL ........................................................... 197
LAST ......................................................................... 197
LASTKEY.................................................................... 198
LAST-OF .................................................................... 198
LC............................................................................. 198LDBNAME .................................................................. 198
LEFT-TRIM................................................................. 199
LENGTH..................................................................... 199
LINE-COUNTER .......................................................... 199
LIST-EVENTS.............................................................. 199
LIST-QUERY-ATTRS .................................................... 200
LIST-SET-ATTRS......................................................... 200
LIST-WIDGETS........................................................... 200
LOCKED..................................................................... 201
LOG .......................................................................... 201
LOOKUP..................................................................... 201MAXIMUM.................................................................. 202
MESSAGE-LINES......................................................... 202
MINIMUM .................................................................. 202
MONTH ..................................................................... 203
NEW.......................................................................... 203
NEXT-VALUE .............................................................. 203NOT ENTERED............................................................ 203
-
5/21/2018 Dominando Progress
11/302
Dominando o Progress
Escrito por Mrcio Brener - http:/ / www.geocities.com/ marcio-brener
NUM-ALIASES.............................................................204
NUM-DBS...................................................................204
NUM-ENTRIES ............................................................204
NUM-RESULTS............................................................205
OPSYS .......................................................................205
OS-DRIVES.................................................................206
OS-ERROR ................................................................. 206
OS-GETENV................................................................206PAGE-NUMBER ...........................................................207
PAGE-SIZE ................................................................. 207
PDBNAME ..................................................................207
PROGRAM-NAME.........................................................208
PROGRESS................................................................. 208
PROMSGS ..................................................................208
PROPATH...................................................................209
PROVERSION..............................................................209
QUERY-OFF-END.........................................................209
RANDOM....................................................................210
RECID........................................................................211RECORD-LENGTH........................................................212
REPLACE....................................................................212
RETRY .......................................................................213
RETURN-VALUE ..........................................................214
RIGHT-TRIM...............................................................214
R-INDEX ....................................................................214ROUND......................................................................215
-
5/21/2018 Dominando Progress
12/302
Dominando o Progress
Escrito por Mrcio Brener - http:/ / www.geocities.com/ marcio-brener
ROWID...................................................................... 215
SCREEN-LINES ........................................................... 215
SDBNAME .................................................................. 215
SEARCH..................................................................... 216
SEEK ......................................................................... 216
SETUSERID................................................................ 216
SQRT ........................................................................ 216
STRING ..................................................................... 217SUBSTITUTE .............................................................. 217
SUBSTRING................................................................ 218
TERMINAL ................................................................. 219
TIME......................................................................... 219
TODAY ...................................................................... 220
TO-ROWID................................................................. 220
TRANSACTION ........................................................... 220
TRIM......................................................................... 221
TRUNCATE................................................................. 221
USERID ..................................................................... 221
VALID-EVENT............................................................. 222VALID-HANDLE........................................................... 222
WEEKDAY .................................................................. 222
WIDGET-HANDLE ....................................................... 223
YEAR......................................................................... 223
Captulo n ...........................................................224
Utilitrios & Parmetros do Banco de Dados Progress 224
-
5/21/2018 Dominando Progress
13/302
Dominando o Progress
Escrito por Mrcio Brener - http:/ / www.geocities.com/ marcio-brener
Utilitrios do Banco de Dados Progress .........................224
PARMETROS.............................................................226
Parmetro..................................................................230
Descrio...................................................................230
-1..............................................................................230
-a arquivo ..................................................................230
-aibufs n ....................................................................230
-aistall .......................................................................231-b..............................................................................231
-basekey texto ............................................................ 231
-B n...........................................................................232
-bibufs n ....................................................................232
-brl............................................................................233
-Bt n..........................................................................233
-C qualificador ............................................................233
-c n ...........................................................................233
-cache arquivo ............................................................ 234
-charset Cdigo de Pgina............................................234
-checkdbe ..................................................................234-convmap arquivo........................................................234
-cp parmetros ou arquivo ........................................... 235
-cpcase tabela.............................................................235
-cpcoll coleo ............................................................ 235
-cpdb Cdigo Pgina....................................................236
-cpinternal Cdigo Pgina ............................................. 236
-
5/21/2018 Dominando Progress
14/302
Dominando o Progress
Escrito por Mrcio Brener - http:/ / www.geocities.com/ marcio-brener
-cpprint Cdigo Pgina ................................................ 236
-cprcodein Cdigo Pgina............................................. 236
-cprcodeout Cdigo Pgina ........................................... 237
-cpstream .................................................................. 237
-cpterm ..................................................................... 237
-cs n, i ....................................................................... 237
-ct n .......................................................................... 238
-d mdy....................................................................... 238-D n .......................................................................... 238
-db banco de dados .................................................... 239
-debug ...................................................................... 239
-decdtm..................................................................... 239
-dictexps.................................................................... 239
-directio..................................................................... 240
-dt ............................................................................ 240
-E ............................................................................. 240
-esqllog ..................................................................... 241
-esqlnopad................................................................. 241
-evtlevel parmetro ..................................................... 241-F.............................................................................. 241
-fc n .......................................................................... 241
-fldisable.................................................................... 242
-g arquivo.................................................................. 242
-G n .......................................................................... 242
-h n........................................................................... 242-H servidor................................................................. 243
-
5/21/2018 Dominando Progress
15/302
Dominando o Progress
Escrito por Mrcio Brener - http:/ / www.geocities.com/ marcio-brener
-H servidor ................................................................. 243
-hardlimit ...................................................................243
-hs s..........................................................................243
-i...............................................................................244
-ininame arquivo ......................................................... 244
-inp n ........................................................................245
-is .............................................................................245
-k..............................................................................245-L n ...........................................................................246
-ld nome ....................................................................246
-lng linguagem............................................................247
-logfile arquivo............................................................247
-logname arquivo ........................................................ 247
-m1...........................................................................247
-m2...........................................................................247
-m3...........................................................................248
-Ma n.........................................................................248
-maxport n................................................................. 248
-Mf n ......................................................................... 248-Mi n..........................................................................249
-minport n..................................................................249
-Mm n........................................................................249
-mmax n....................................................................249
-Mn ...........................................................................249
-Mp n ........................................................................250-Mpb n.......................................................................250
-
5/21/2018 Dominando Progress
16/302
Dominando o Progress
Escrito por Mrcio Brener - http:/ / www.geocities.com/ marcio-brener
-Mr n......................................................................... 250
-Mv n ........................................................................ 250
-Mxs n ....................................................................... 250
-n n........................................................................... 251
-N protocolo............................................................... 251
-nb n......................................................................... 251
-Nd device ................................................................. 251
-NL............................................................................ 252-Nn Cliente................................................................. 252
-Nv n......................................................................... 252
-o impressora............................................................. 252
-p procedure .............................................................. 253
-P senha .................................................................... 253
-param texto .............................................................. 253
-pf arquivo ................................................................. 253
-plm.......................................................................... 253
-pls ........................................................................... 254
-populate................................................................... 254
-pp diretrio............................................................... 254-pwqdelay.................................................................. 254
-pwqmin n ................................................................. 254
-pwscan n .................................................................. 255
-pwsdelay n ............................................................... 255
-pwwmax n................................................................ 255
-q ............................................................................. 255-Q............................................................................. 256
-
5/21/2018 Dominando Progress
17/302
Dominando o Progress
Escrito por Mrcio Brener - http:/ / www.geocities.com/ marcio-brener
-Q2 ...........................................................................256
-r ..............................................................................256
-rand n ......................................................................256
-rg.............................................................................257
-RO ...........................................................................257
-rptint n .....................................................................257
-rq.............................................................................257
-rr .............................................................................257-s n ...........................................................................258
-S servio...................................................................258
-Sn servio................................................................. 259
-spin n.......................................................................259
-stream Cdigo Pgina.................................................259
-stsh n.......................................................................259
-SYBc n......................................................................259
-SYBt n ......................................................................260
-t ..............................................................................260
-T diretrio.................................................................260
-TB n......................................................................... 260-TM n ........................................................................260
-tok n ........................................................................261
-trig diretrio..............................................................261
-tstamp......................................................................261
-usrcount n ................................................................261
-U usurio..................................................................261-vw ...........................................................................262
-
5/21/2018 Dominando Progress
18/302
Dominando o Progress
Escrito por Mrcio Brener - http:/ / www.geocities.com/ marcio-brener
-VO verso................................................................. 262
-v6colon .................................................................... 262
-v6q .......................................................................... 262
-xc coleo................................................................. 262
-y.............................................................................. 263
-yc ............................................................................ 263
-yd............................................................................ 263
-yx ............................................................................ 264-yy ano...................................................................... 265
Banco de Dados MultiVolumes..............................266
O que o banco multi-volumes?................................... 266
Por que usar Banco Multi-Volumes? .............................. 267
Criando a estrutura multi-volumes ................................ 268
Formao do arquivo de estrutura ................................ 268
Criando o Banco ........................................................... 269
MAGNUS.............................................................272
Apresentao................................................................ 272
Como o MAGNUS funciona? .......................................... 272
Lista de Diretrios do MAGNUS (principais).................... 273
Funcionamento do MENU.............................................. 274
Validando o acesso ao Programa .................................. 276
Bancos Histricos ......................................................... 277
Desenvolver em Windows para usar no UNIX... ............ 279
Criar Bancos para Testes/Desenvolvimento................... 284Criando os bancos....................................................... 284
-
5/21/2018 Dominando Progress
19/302
Dominando o Progress
Escrito por Mrcio Brener - http:/ / www.geocities.com/ marcio-brener
UNIX AIX ...................................................................286
Windows NT...............................................................287
Utilizando zoom de cadastro Datasul.............................289
Captulo n ...........................................................293
Softwares, Utilitrios & Sites diversos......................293NetTerm .......................................................................293
Configure as teclas de acordo com o MAGNUS................ 294
Kea!X............................................................................295PCase ...........................................................................296
Viper.............................................................................297
ERWin ..........................................................................297
Sites sobre Progress .....................................................299
-
5/21/2018 Dominando Progress
20/302
Escrito por Mrcio Brener - http:/ / www.geocities.com/ marcio-brener
Captulo 1
Apresentando o Progress
O que o Progress?A linguagem Progress foi desenvolvida pela empresa
Progress Software Corporation em 1984, inicialmentepara sistema operacional UNIX com uso em mainframespara processamento de grande volume de dados, comoalternativa para outras linguagens da poca como Cobol,Adabas, Natural, Clipper, etc, que exigiam doprogramador escrever um cdigo muito extenso paraqualquer aplicao. Tambm uma alternativa como Bancode Dados Relacional de alta performance e segurana,embutido em um nico produto.
A Progress Corporation tem sua sede em Bedford,Massachusetts USA, com filiais em diversos pases. NoBrasil sua representante a Progress do Brasil/SP.
Uma das maiores atrativos do Progress suaportabilidade e independncia de plataforma. Ele funcionaem praticamente todos os sistemas operacionaisexistentes como DOS, Windows 3x,95,NT, UNIX, OS/2,Novell, VMS, Motif, Xenix, CTOS entre diversos outros,isso utilizando o mesmo cdigo fonte.
Seu Banco de Dados Relacional de altssimaperformance e extrema segurana, igual ou at mesmo
-
5/21/2018 Dominando Progress
21/302
Apresentando o Progress
Escrito por Mrcio Brener - http:/ / www.geocities.com/ marcio-brener
21superior ao bancos mais populares do mercado comoOracle, DB/2 IBM, Sybase, MS-SQL Server, entre outros.
A perfeita integrao entre linguagem e banco dedados fazem do Progress uma excelente ferramenta paraconstruo de qualquer aplicao comercial. Isso porqueas camadas de desenvolvimento - regras de negcios,dados e interface esto totalmente interligadas, o queevita qualquer redundncia ou retrabalho em qualquercamada da aplicao.
A atualizao e distribuio dos aplicativos emProgress tambm bastante simplificada. Um sistemapode ser totalmente centralizado para acesso de vriosclientes simultneos e atualizado a qualquer tempo,parcialmente ou completamente sem gerar qualquer erroou necessitar de uma parada momentnea do sistema.
Como funciona o Progress?O funcionamento do Progress bastante simples. A
configurao tpica e mais comum a instalao earmazenamento centralizado do Progress servidor ecliente, bancos de dados e aplicaes em um servidordisponvel para acesso de diversos clientes em rede.
H tambm diversas outras configuraes possveis parauma aplicao Progress: mltiplos servidores, bancos dedados distribudos entre servidores e/ou plataformasdistintas, como ser visto no captulo Arquiteturas deaplicao. A figura a seguir exemplifica melhor umaconfigurao mais simples.
-
5/21/2018 Dominando Progress
22/302
Dominando o Progress
Escrito por Mrcio Brener - http:/ / www.geocities.com/ marcio-brener
22
Arquitetura deaplicao
Servidor de rede cominstalao do Progressserver e client;Sesso multi-usuriodos bancos de dados;
Aplicativos em Progress
Instalando o software
Ser apresentada a instalao do Provision para Windows
Os pr-requisitos para instalao so apenas mdia(s) elicena(s) para comear a usar.
Tela inicial de instalaoEste a primeira tela para instalao
do Progress verso 8.x para sistemaoperacional Microsoft Windows95/98/NT
-
5/21/2018 Dominando Progress
23/302
Apresentando o Progress
Escrito por Mrcio Brener - http:/ / www.geocities.com/ marcio-brener
23Ser preciso especificar na tela de instalao o
Nome da Empresa, o Nmero de Srie e Cdigos de
Controle para validar o produto e prosseguir a instalao.
Voc pode tambm acrescentar outros produtos mesma instalao, especificando os nmeros de sries e
validadores.Informe os dados e clique no boto Additional
Products para acrescentar lista de programas,conforme mostrado na figura acima destacado em azul
A prxima tela solicita a localizao para instalaodo Progress, voc pode especificar o drive o diretrio
aonde sero copiados os arquivos. Por padro o diretriosugerido "DLC", mas voc pode alter-lo para outro desua escolha. Todos os dados informados na instalaosero includos na configurao do Progress contida noarquivo DLC/progress.cfg, o qual validar a execuo detodos os aplicativos Progress.
JJ Como padro do Progress o diretrio DLC toda sualiteratura o cita por padro tambm. Ento saiba que a
-
5/21/2018 Dominando Progress
24/302
Dominando o Progress
Escrito por Mrcio Brener - http:/ / www.geocities.com/ marcio-brener
24nomenclatura DLC sempre se refere localizao deinstalao do Progress.
A prxima tela solicita o grupo de programas a sercriado no servidor e o diretrio padro aonde o Progresssalvar arquivos de programas, temporrios entre outros.
-
5/21/2018 Dominando Progress
25/302
Apresentando o Progress
Escrito por Mrcio Brener - http:/ / www.geocities.com/ marcio-brener
25
Aps o trmino da instalao sero criados essescones no grupo de programas informado na instalao,como a figura abaixo:
A figura acima demonstra os utilitrios do Progress
Provision, um tipo de licena full da Progress similar porexemplo ao Microsoft Visual Basic Professional ou DelphiClient/Server.
-
5/21/2018 Dominando Progress
26/302
Dominando o Progress
Escrito por Mrcio Brener - http:/ / www.geocities.com/ marcio-brener
26
Apresentando os aplicativos
Desktop
um aplicativo desenvolvido em Progress 4GLmodo grfico que apresenta os botes dosaplicativos Progress disponveis.
Arquivo:_desk.p
Procedure Editor
Aplicativo em Progress 4GL para escrita do cdigofonte, execuo de procedures, debuger, compilao equalquer procedimento por meio de cdigo.
Arquivo_edit.p
-
5/21/2018 Dominando Progress
27/302
Apresentando o Progress
Escrito por Mrcio Brener - http:/ / www.geocities.com/ marcio-brener
27
Data Administration
Aplicativo desenvolvido em Progress 4GL paraadministrao e manuteno dos bancos de dados.
Com ele voc pode:
Criar, conectar e alterar definies de bancos de dados;
Visualizar relatrios de estruturas de tabelas, campos,ndices;
Definir segurana dos dados, salvar definies e contedo
dos dados, editar parmetros, etc.Arquivo:_admin.p
-
5/21/2018 Dominando Progress
28/302
Dominando o Progress
Escrito por Mrcio Brener - http:/ / www.geocities.com/ marcio-brener
28
Data Dictionary
Com Dicionrio de Dados voc pode modelar aestrutura de tabelas, campos, ndices, seqncias etriggers.
Tambm um aplicativo totalmente em Progress 4GL
Arquivo:_dict.p
-
5/21/2018 Dominando Progress
29/302
Apresentando o Progress
Escrito por Mrcio Brener - http:/ / www.geocities.com/ marcio-brener
29
Application Compiler
Como o prprio nome diz um aplicativo paracompilao de procedures (programas).
Ele possibilita compilar um diretrio ou uma rvorede diretrios, especificar arquivos iniciados por uma sub-
palavra ou apenas extenso, confirmar sobreposio deprocedures j existentes, etc.
Tambm desenvolvido em Progress 4GL
Arquivo:_comp.p
-
5/21/2018 Dominando Progress
30/302
Dominando o Progress
Escrito por Mrcio Brener - http:/ / www.geocities.com/ marcio-brener
30
User Configuration
Utilitrio desenvolvido em Progress 4GL para criaoe edio de scripts de conexo e/ou de inicializao doProgress.
Arquivo:_script.p
-
5/21/2018 Dominando Progress
31/302
Apresentando o Progress
Escrito por Mrcio Brener - http:/ / www.geocities.com/ marcio-brener
31
Report Builder
Utilitrio do Progress para criao de relatriototalmente grficos em MS-Windows.
Com ele voc pode usar tabelas, inserir grficos,usar e criar funes definidas pelo usurio.
Este aplicativo Progress disponvel apenas paraambiente MS-Windows 3.x/95 ou NT.
-
5/21/2018 Dominando Progress
32/302
Dominando o Progress
Escrito por Mrcio Brener - http:/ / www.geocities.com/ marcio-brener
32
UIB (User Interface Builder)
O User Inteface Builder um utilitrio desenvolvidoem Progress 4GL para edio rpida e grfica deprogramas baseados no Windows.
Ele foi introduzido a partir da verso 7 paraWindows trazendo consigo diversas inovaes e conceitos
quanto orientao a objetos, encapsulamento,polimorfismo e hereditriedade, como um incio paraentrada da linguagem Progress na Quarta Gerao, daProgress 4GL.
Arquivo:_uib.p
Este utilitrio no far parte da abordagem deste livro.
-
5/21/2018 Dominando Progress
33/302
Captulo 2
Configurao do Software
Configurao do Progress no WindowsO Progress por abranger diversos sistemas
operacionais tem algumas diferenas quanto configurao do ambiente para funcionar adequadamente.Por exemplo, em UNIX, MS-DOS e Novell asparametrizaes so estabelecidas por meio de linha decomando e definies de variveis de ambiente, noWindows 95 ou NT os parmetros so registrados pormeio de arquivos INIs, ou ainda na Registry como onovo padro introduzido pela verso 8.2 e superiores.
A instalao do Progress 8.x para Windows grava asinformaes relativas s propriedades do aplicativo naRegistry do Windows, e tambm em arquivo INI chamadoprogress.ini como na verso 7.x, localizado no diretrioDLC/bin.
As entradas na Registry estaro nos diretriosHKEY_CURRENT_USER ou HKEY_LOCAL_MACHINE nestaseqncia, na pasta Software, em uma sub-pastachamada PSC(Progress Software Corporation), conformemostra a figura abaixo:
-
5/21/2018 Dominando Progress
34/302
Dominando o Progress34
Configurao na Registry
As configuraes contidas na Registry tambmesto no arquivo INI e podem ser usada para definir aspropriedades para o funcionamento e aparncia dasaplicaes.
Voc tambm pode registrar as configuraescontidas em um arquivo INI para a Registry do Windowsde uma mquina cliente, atravs do um aplicativo emDLC\bin\ini2reg.exe, veja a figura a seguir:
-
5/21/2018 Dominando Progress
35/302
Configurao do 35
Inclui um arquivo INI na Registry do Windows
O arquivo progress.ini
Os parmetros V6Display, V6Colon, V6Frame,V6FKeys, V6Keys, DefaultFont FixedSys,DefaultFixedFont FixedSys definem uma aparnciapara a aplicao igual a utilizada na verso Progress 6,com tela na dimenso de 80 linhas por 21 colunas, reade mensagens e rea de status e fonte proporcional, de
-
5/21/2018 Dominando Progress
36/302
Dominando o Progress36acordo com a configurao para funcionamento doMAGNUSverso I.
Caso voc no conhea, o MAGNUS um Sistema deGesto Empresarial, o mais popular no Brasil.Desenvolvido totalmente em Progress pela Datasul,uma empresa brasileira sediada em Joinvile SantaCatarina.
Listagem do Arquivo progress.ini
[Startup]
V6Display=no
V6Colon=no
V6Frame=no
V6FKeys=no
V6Keys=no
ImmediateDisplay=yesMultitaskingInterval=100
DefaultFont=FixedSysDefaultFixedFont=FixedSys
DLC=C:\DLCUse-3D-Size=YesPROBUILD=C:\DLC\PROBUILDPROPATH=.,D:\MAGNUS,C:\DLC\PROBUILD\EUCAPP\EUC.PL,C:\DLC\PROBUILD\EUCAPP,C:\DLC\gui,C:\DLC,C:\DLC\binOLD-PROPATH=.,C:\DLC\PROBUILD\EUCAPP\EUC.PL,C:\DLC\PROBUILD\EUCAPPPROCFG=C:\DLC\PROGRESS.CFGPROMSGS=C:\DLC\PROMSGS
PROMON=C:\TEMP\ESTAT.LST
[Colors];********************************************************************; THE DEFINITION OF COLOR 0 THROUGH 15 IS PRIVATE TO THE PROGRESS ADE.; MODIFYING COLORS 0 THROUGH 15 MAY PREVENT THE PROGRESS ADE FROM RUNNING.
; The following color definitions correspond to the ADE standards.; 0 to 15 - reservedcolor0=0,0,0color1=0,0,128color2=0,128,0
color3=0,128,128color4=128,0,0color5=128,0,128
-
5/21/2018 Dominando Progress
37/302
Configurao do 37color6=128,128,0color7=128,128,128color8=192,192,192
color9=0,0,255color10=0,255,0color11=0,255,255color12=255,0,0color13=255,0,255color14=255,255,0color15=255,255,255color16=255,255,0
NORMAL=0,15
INPUT=15,0MESSAGES=15,1
[Default Window]
;x=;y=;rows=;columns=
[fonts]
;***********************************************************************; THE DEFINITION OF FONT 0 THROUGH 7 IS PRIVATE TO THE PROGRESS ADE.; MODIFYING FONTS 0 THROUGH 7 MAY PREVENT THE PROGRESS ADE FROM RUNNING.; The following fonts definitions correspond to the ADE standards.; ? - DefaultFont from Startup Section; 0 - DefaultFixedFont from Startup Section (1 char per PPU); 1 - Proportional System Font; 2 - Editor Font for 4GL program entry; 3 - TTY Simulator (should be fixed); 4 - Dynamically-sized widgets, eg status-line, selection-list; 5 - Static widgets, eg. combo-boxes; 6 - Dynamic, bold (TranMan2); 7 - Reserved
font0=Courier New, size=8font1=MS Sans Serif, size=8font2=Courier New, size=8font3=Courier New, size=8font4=MS Sans Serif, size=8font5=MS Sans Serif, size=10font6=MS Sans Serif, size=8, boldfont7=MS Sans Serif, size=8font8=Courier New, size=12font9=MS Sans Serif, size=8
font10=Garamond, size=20font11=MS Sans Serif, size=8
-
5/21/2018 Dominando Progress
38/302
Dominando o Progress38[WinChar Startup]
DLC=C:\DLCPROBUILD=C:\DLC\PROBUILD
PROPATH=.,C:\DLC\PROBUILD\EUCAPP\EUC.PL,C:\DLC\PROBUILD\EUCAPP;DLC=;PROCFG=;PROMSGS=;PROPATH=
[WinChar Colors]
color0=WHITE/BLUE "NORMAL"color1=BLACK/GRAY "INPUT, UNDERLINE"color2=BLACK/GRAY "MESSAGES, REVERSE"
color3=BLUE/WHITE "HIGHLITE, HELP"color4=BLINK-RED/WHITE "URGENT"
;NORMAL=WHITE/BLUE;INPUT=BLACK/GRAY;MESSAGES=BLACK/GRAY
[WinChar Default Window]
;rows=25;rows=50
[WinChar Keys]
;GO=F1,CTRL-X
[Debug-Init];******************************************************************************; THE FOLLOWING INFORMATION IS PRIVATE TO THE DEBUGGER. IT SHOULD NEVER BE; MODIFIED EXCEPT BY THE DEBUGGER PROGRAM.
Location=1,146,15,460,464Pane0=1,46," "Pane1=1,14,""
Pane2=1,16,"Commands in Queue: 0"Pane3=1,25,""DebuggerName=PRODEBUG.EXE
[Debug-Macros]
Macro0=r, run &fileMacro1=c, continueMacro2=s, stepMacro3=n, nextMacro4=b, break &file &line
Macro5=cb, cancel break &file &lineMacro6=sb, show breaksMacro7=ss, show stack
-
5/21/2018 Dominando Progress
39/302
Configurao do 39Macro8=u, upMacro9=d, downMacro10=di, display &text
Macro11=sm, show macros
[Debug-Buttons]
Button0=Run,run &fileButton1=Cont,continueButton2=Step,stepButton3=Next,nextButton4=Break,break &file &lineButton5=Stack,show stackButton6=Up,up
Button7=Down,downButton8=Disp,display &textButton9=Exit,exit
[ProADE]
;DividerFgColor=15;DividerBgColor=1;OKBoxFgColor=1;OKBoxBgColor=8;FillinFgColor=0
;FillinBgColor=8;Editor4GLFgColor=DEFAULT;Editor4GLBgColor=DEFAULT;Editor4GLFgSmallColor=0;Editor4GLBgSmallColor=8;FixedFont=0;StandardFont=1;Editor4GLFont=2;EditorTabStop=4
[Proedit]SaveSettings=yesBufList=ExitWarning=yesSaveBufList=noMinimizeBeforeRun=noRestoreAfterRun=yesPauseAfterRun=yesAutoCleanup=yesEditorFont=8
New=SHIFT-F3Open=F3Close=F8
-
5/21/2018 Dominando Progress
40/302
Dominando o Progress40NewProcedureWindow=CTRL-F3Save=F6SaveAs=SHIFT-F6
Undo=CTRL-ZCut=CTRL-XCopy=CTRL-CPaste=CTRL-VFind=CTRL-FFindNext=F9FindPrevious=SHIFT-F9Replace=CTRL-RGotoLine=CTRL-GList=CTRL-L
NextBuffer=F7PreviousBuffer=SHIFT-F7Run=F1CheckSyntax=SHIFT-F2Debug=SHIFT-F4CompilerMessages=CTRL-E
[RBStartup]
;RBSTARTUP=
[ReportBuilderSaveList]ActionBar=1FormatBar=1FieldNames=0SortFieldNames=0ShowHiddenTables=0PasteArgs=1ShHzRul=1ShVtRul=1ShGrd=1
Maximize=1NotFirstTime=1Library=Report=Teste
[ReportBuilderPreferences]
InstantRep=2PromptFields=1ScrBarHz=1ScrBarVt=1
PromptConnection=0
[ReportBuilderDefaults]
-
5/21/2018 Dominando Progress
41/302
Configurao do 41DefMeas=1PgLM=1BotM=50
LeftM=50RightM=50TopM=50RulPit=10VRulPit=10Pts=120SnapTo=1Color=0WidthRep=1WidthColor=8
FaceName=ArialLogF=NoLogT=YesLibDir=DatabaseDir=ImgDir=UDFDirectory=MemExt=TXTImgExt=BMPImageQuality=0
[uib]
[Procomp]
SaveSettings=yesFileSpec01=.,*.p *.wDefFileSpec=*.p *.wLogFile=compile.logShowStatus=yesRemoveOldRs=yes
IfNoR=noSubDirs=yesSaveNewRs=yesXrefAppend=noListAppend=noPageLength=60PageWidth=80V6Frame=yesStreamIO=no
A listagem acima a utilizada para o funcionamentodo MAGNUS verso I em Windows.
-
5/21/2018 Dominando Progress
42/302
Dominando o Progress42
Configurando o Progress para UNIX
Aps a instalao por meio de fita ou CD, apenasedite a(s) profile(s) setando as variveis de ambiente.
Exemplo de script
TERM=vt220 ; export TERMDLC=/sistemas/dlc ; export DLCPATH=/usr/bin:$DLC:$DLC/bin:/sistemas/magnus ; export PATHPROCFG=$DLC/progress.cfg ; export PROCFG
PROMSGS=$DLC/promsgs ; export PROMSGSPROPATH=$DLC,$DLC/bin,$DLC/tty,/sistemas/magnusexport PROPATH$DLC/bin/mpro pf magnus.pf
Variveis de ambiente
Varivel Definio
ACCESS Especifica quem ter permisso noProControl em ambiente Windows NT
Exemplo
ACCESS=Administrator
DLC Informa a localizao da instalao do
ProgressExemplo
SET DLC=C:\DLC (DOS/Windows)
DLC=/app/dlc ; export DLC (UNIX)
DLCRES Informa a localizao do aplicativoProgress Results
-
5/21/2018 Dominando Progress
43/302
Configurao do 43
Exemplo
DLC=/usr/myres ; export DLCEVTLEVEL Especifica o nvel de informaes a serem
gravadas no Event Log em Windows NT
Parmetros
NONE - nenhuma informao;
BRIEF- apenas erros e alertas;
NORMAL - erros, alertas e os mesmosgravados no arquivo .lg;
FULL- todas mensagens
Exemplo
EVTLEVEL=BRIEF
PATH Lista de diretrios para uso do SistemaOperacional
Exemplo
(UNIX)PATH=$PATH:$DLC:$DLC/bin:/magnus:/rhplus
export PATH
(DOS/Windows)SET PATH=%PATH%;%DLC%;%DLC%/bin;M:\MAGNUS;M:\RHPLUS
PROAPSV Localizao do executvel do ProgressApplication Server
Exemplo
PROAPSV=/$DLC/bin/_proapsv (UNIX)
PROAPSV=%$DLC%\bin\_proapsv.exe (Windows NT)
-
5/21/2018 Dominando Progress
44/302
Dominando o Progress44
PROCFG Localizao do arquivo de configuraodo Progress
Exemplo
PROCFG=C:\DLC\PROGRESS.CFG
PROCONV Localizado arquivo de Cdigos dePginas a ser utilizado na sesso cliente
Exemplo
PROCONV=C:\DLC\CONVMAP.CP
PROEXE Localizao do arquivo executvel doProgress
Exemplo
SET PROEXE=c:\dlc\prowin32.exe
PROLOAD Localizao do diretrio de instalao doaplicativo ProBuild
Exemplo
SET PROLOAD=%DLC%\probuildPROMSGS Localizao do arquivo de mensagens
Progress
Exemplo
PROMSGS=$DLC/prolang/promsgs.por
(arquivo de mensagens em portugus)
-
5/21/2018 Dominando Progress
45/302
Configurao do 45
PROPATH Lista de diretrios a ser utilizado pelasesso Progress
Exemplo
(DOS/Windows)SET PROPATH=%PATH%;%DLC%;%DLC%\BIN;M:\MAGNUS
(UNIX)PROPATH=/usr/bin:$PATH:$DLC:$DLC/bin:/magnusexport PROPATH
PROSRV Localizao do arquivo executvel doservidor de dados
Exemplo
PROSVR=%DLC%\bin\_mprosrv.exe(DOS/Windows)
PROSTARTUP Define o arquivo de parmetros (.pf) aser usado como padro pela sessoProgress, caso omitido o padroassumido ser o arquivo startup.pf dentrodo diretrio do Progress.
Exemplo
(DOS/Windows)
PROSTARTUP=M:\magnus\magnus.pf
(UNIX)PROSTARTUP=/magnus/magnus.pfexport PROSTARTUP
PROTERMCAP Define o arquivo de configurao determinal para sesso em ambientecaracter. Caso omitido ser assumido
como padro o arquivo proterm dentro dodiretrio do Progress
-
5/21/2018 Dominando Progress
46/302
Dominando o Progress46
Exemplo
PROTERMCAP=$DLC/protermcap ; export PROTERMCAPTERM Define o tipo de terminal de uma sesso
cliente
Exemplo
(UNIX)TERM=vt200 ; export TERM
PROMON Define o arquivo para gravao deestatsticas de programas
II Lembre-se que em UNIX as variveis so case-sensitive, isto , h distino entre maisculas eminscula, como tambm para o valores das variveis!
-
5/21/2018 Dominando Progress
47/302
Configurao do 47
Arquivos
Arquivos comuns
progress.cfg Configurao do Progress
PROMSGS Mensagens do Progress
.pf Parmetros sesso servidor/cliente
.cp Definio de Cdigos de Pgina
.df Definio de estrutura de bancos/tabelas
.d Dados de tabelas
.fd Descries do Bulk loader
.csh Contedo ou cache do Metaschema
.rpt Licena de uso de relatrios
.v Validao
.pl Biblioteca de procedures
Arquivos temporrios
.lbi Before-Image local de transaes
.dbi Definies de tabelas temporrias
.ped Procedures temporrias
JJ Quando voc edita uma procedure,
-
5/21/2018 Dominando Progress
48/302
Dominando o Progress48seja no Procedure Editor ou UIB asalteraes so salvas em um arquivo
temporrio com extenso .PED nodiretrio temporrio definido nasesso a cada execuo da mesma.Ento se houver algum problema e asesso seja incerrada sem que antesvoc salve suas alteraes, procureno diretrio temporrio os arquivos.PED, um deles contm a procedure
at o momento da ltima execuo.
.srt Organizao de registros.
Geralmente criado quando ordenadocampos que no sejam indexados.
.trp Definies do Dicionrio de Dados
temporrias, antes de serem confirmadas(Commit) no banco.
Banco de Dados
.db Banco de Dados
.dn Arquivo extendido de bancomultivolumes
.bi Before-Image
.bn Arquivo extendido do Before-Imagemultivolumes
.ai AfterImage
.na Arquivo extendido do After-Image
-
5/21/2018 Dominando Progress
49/302
Configurao do 49multivolumes
.lg Log de eventos do Banco
.lk Lock de conexo do Banco
.tl Log de transaes
.ds Descrio de estruturas
Sesso cliente
.p Procedure
.w Procedure UIB (Windows)
.i Arquivo include
Protocolos disponveisNETBIOS TCP/IP
SNA DECnet
SPX TLI
WIPC (Servidor/ClienteWindows) DDE
CTOS
-
5/21/2018 Dominando Progress
50/302
Escrito por Mrcio Brener - http:/ / www.geocities.com/ marcio-brener
Captulo 3
Criando & Definindo osDados
Criando um banco de dados
Existem trs maneiras de criar um banco de dados emProgress, como ser mostrado baixo:
1No Data Administrator menu Database opo Create,ento informe a localizao e o nome do novo bancode dados a ser criado.
-
5/21/2018 Dominando Progress
51/302
Criando & Definindo os Dados
Escrito por Mrcio Brener - http:/ / www.geocities.com/ marcio-brener
51Voc tem a opo criar um banco de dados vazio, umacpia do sports (um banco de exemplo do Progress)
ou a partir de um outra j existente.2 Atravs de utilitrio de banco de dados ProDB, em
linha de comando.
Exemplo:
C:\DLC\bin\prodb.exe cadastro
Ento ser solicitado a partir de qual banco de dadosser criado, com as mesma opes do DataAdministration, conforme abaixo:
C:\ARQUIVOS>C:\DLC\BIN\PRODB cadastrodemo to get the system demonstration database, orsports to get the sports demonstration database, orisportsto get the international sports database, orempty to get the system empty database, or
anynameto get a copy of that database. :
Lembre-se que a varivel de ambiente DLC deve estarconfigurada adequadamente para pode criar o novobanco de dados.
3 Por cdigo fonte no Procedure Editor, conforme ocdigo abaixo:
create database "c:\arquivos\cadastro" replace no-error.
-
5/21/2018 Dominando Progress
52/302
Dominando o Progress
Escrito por Mrcio Brener - http:/ / www.geocities.com/ marcio-brener
52
Como funciona o Banco de Dados
Em Progress o bancode dados constitudode, pelo menos, doisarquivos bsicos, oprprio Banco de Dadoscom extenso DB e oControle de Transaescom extenso BI(Before-Image).
Estes dois arquivos funcionam em conjunto paragerenciar todos as solicitaes dos aplicativos a elesligados.
O arquivo de "Image Anterior" (Before Image) tem um
papel importantssimo de assegura a total e completaintegridade fsica e referencial dos dados, como porexemplo ndices, validaes, tipos e formatos atravs do"ENGINE DATABASE" e confirmar estas transaes paragravao e/ou deleo no banco de dados aps umacompleta consistncia dos dados existentes.
Os mtodos para criao de um banco de dadosmostrados se aplicam apenas para Bancos de Volumenico ou Simples, existem tcnicas em Progress maissofisticadas para criao de bancos de dados emMltiplos Volumes, conforme ser mostrado no captuloPerformance.
-
5/21/2018 Dominando Progress
53/302
Criando & Definindo os Dados
Escrito por Mrcio Brener - http:/ / www.geocities.com/ marcio-brener
53
Criando tabelas, campos, ndices, etc
Para modelagem de dados utilizado o aplicativo DataDictionary que pode ser executado de diversos modos,por meio de linha de comando ou menu.
Linha de comando: DLC/bin/prowin32.exe p _dict.p
Sempre que informado uma localizao de aplicativopara o Progress esta ser apresentada com barrainvertida, como padro do UNIX e tambm padroProgress, ainda que em Windows.
ProWin32 refere-se apenas ao Progress em ambientegrfico(MS-Windows, OSF/Motif e outros).
No Procedure Editor escolha o menu Tools opo DataDictionary.A figura abaixo descreve cada detalhe doutilitrio.
-
5/21/2018 Dominando Progress
54/302
Dominando o Progress
Escrito por Mrcio Brener - http:/ / www.geocities.com/ marcio-brener
54
Habilita a manipulaes dos bancos de dadosconectados, conforme a listagem Databases;
Habilita a manipulao de tabelas, conforme o bancode dados selecionado na listagem Databases;
Habilita a manipulao de SEQUENCESpara o bancode dados selecionado. Ser explicado o Sequenceneste captulo;
Habilita a edio de tabelas conforme o banco dedados selecionado;
Habilita a edio de ndices conforme a tabelaselecionada na listagem Tables;
Disponibiliza as opes conforme os itens acimaescolhidos.
-
5/21/2018 Dominando Progress
55/302
Criando & Definindo os Dados
Escrito por Mrcio Brener - http:/ / www.geocities.com/ marcio-brener
55
Criando uma tabela
A figura abaixo mostra a janela de propriedades da tabelano Data Dictionary.
-
5/21/2018 Dominando Progress
56/302
Dominando o Progress
Escrito por Mrcio Brener - http:/ / www.geocities.com/ marcio-brener
56
As propriedades abaixo definem cada opo da figuraanterior.
Propriedade Descrio
Table Name Define o nome da tabela a ser criada.
Este nome deve ser iniciado por uma letrade A a Z, com no mximo 32 caracteres eno conter nenhum caracter invlido, tipo
asterisco, vrgula, parnteses, entre outros
II No Progress voc pode inserir "-"(hfen) para nomear tabelas, campos,variveis e outros.
Dump File Informa o nome do arquivo de DUMP para
exportao das definies e dos dados databela.
Este nome poder ter at 8 caracteresalfanumricos e tambm no deveapresentar sinais invlidos noreconhecidos para o nome de arquivo, deacordo com os princpios dos Sistemas
Operacionais em geral, exemplo(*,?,%,&,etc).
Independente da plataforma oarquivo para DUMP ser sempretamanho 8 e por padro o Progressao exportar o arquivo definir aextenso D(arquivo de dados =
dump.d) e DF(arquivo de definies =dum .df . Isso ara manter
-
5/21/2018 Dominando Progress
57/302
Criando & Definindo os Dados
Escrito por Mrcio Brener - http:/ / www.geocities.com/ marcio-brener
57compatibilidade do banco de dadoscaso seja mudado para outro sistema
operacional.
Hidden Oculta a tabela da listagem. Esta opono disponvel no momento de criao,mas pode ser selecionada aps aconfirmao de gravao da tabela nobanco.
Frozen Voc pode congelar as definies da tabelaaps a concluso e gravao no banco dedados.
Label Define um nome de at 30 caracteresquaisquer para exibio de informaes deavisos ou erros para a tabela em tempo deexecuo do aplicativo, como por exemplo
a informao de travamento de umatabela por outro usurio, exemplo:
Tabela customer tem o label Customer, oqual ser mostrado no aviso, conforme afigura abaixo:
Description Texto descritivo para informaes ouanotaes a respeito da tabela.
-
5/21/2018 Dominando Progress
58/302
Dominando o Progress
Escrito por Mrcio Brener - http:/ / www.geocities.com/ marcio-brener
58
Replication Informa uma outra tabela destino que ser
espelho desta tabela.
-
5/21/2018 Dominando Progress
59/302
Criando & Definindo os Dados
Escrito por Mrcio Brener - http:/ / www.geocities.com/ marcio-brener
59
Criando os campos
A figura abaixo mostra as propriedades para a criao deum campo.
Propriedade Descrio
Field Name Nome do campo com at 32 caracteresalfanumricos, sem acentos ou sinaisinvlidos.
Data Type Define o tipo de dado do campo em:INTEGER, DECIMAL, CHARACTER,LOGICAL, DATE, RAW ou RECID.
-
5/21/2018 Dominando Progress
60/302
Dominando o Progress
Escrito por Mrcio Brener - http:/ / www.geocities.com/ marcio-brener
60
II Aps o campo ser criado o Tipo deDado no poder ser alterado,como tambm no poder serremovido caso exista algum ndiceda tabela a que partena.
Format Define um formato ou mscara deacordo com o tipo de dado para entradae visualizao do campo.
Exemplos:->>>,>>9.99 (DECIMAL)999 (INTEGER)99/99/9999 (DATE)Masculino/Feminino (LOGICAL yes/no)
Label Define um texto informativo a serexibido com o campo, tanto para
apresentao em coluna, lateral etambm em informaes como regrasde ndices e outros.
Column Label Define um texto informativo paraapresentao quando em coluna.
Initial Value Atribui um valor inicial para o campo
aps o registro ser criado.
Order Define ama ordem do campo dentro databela.
Por padro esta ordem incrementadade 10 em 10 e no pode repetir, maspode ser alterada e conter qualquer
intervalo de nmero inteiro.Decimals Define o nmero de casas decimais num
-
5/21/2018 Dominando Progress
61/302
Criando & Definindo os Dados
Escrito por Mrcio Brener - http:/ / www.geocities.com/ marcio-brener
61limite de 10 e mnimo de 0 para dadosdo tipo DECIMAL
Description Texto descritivo ou informativo para ocampo.
Help Text Informa um texto de Ajuda ouInformao sobre o campo para serexibido na rea de status da aplicaoquando este estiver sendo editado.
Mandatory Define o preenchimento de um campocomo obrigatrio.
Case-Sensitive Informa que um campo tipoCHARACTER far distino entre letrasmaisculas e minsculas se utilizado emum ndice ou para uma comparao.
Extent Define o campo como um array de nelementos, nomendo-os como:
CAMPO[n elemento]
II Esta propriedade do campo nopoder ser alterada aps o campo
criado!
Validando os Campos
Voc pode validar os dados e eventos para umcampo atravs da propriedade Validation ou por meio deTriggers.
-
5/21/2018 Dominando Progress
62/302
Dominando o Progress
Escrito por Mrcio Brener - http:/ / www.geocities.com/ marcio-brener
62
A propriedade Validation
O meio mais fcil e rpido para validao apropriedade Validation do campo.
Voc especifica as clusulas de validao paravalores permitidos e uma mensagem de retorno a serinformada para o usurio caso as clusulas no sejamsatisfeitas, conforme a prxima figura demonstra.
As verificaes so executadas durante aatualizao do campo com o "feedback" de mensagens ehelp deste para o usurio, mostrados na barra de statusna janela da aplicao.
JJ Voc pode, tambm, incluir uma Include na validaodo campo. Exemplo: {inc/empresa.inc}, esta Includedeve retornar um erro para a validao do campo,
RETURN ERROR, caso as condies no foremsatisfeitas!
-
5/21/2018 Dominando Progress
63/302
Criando & Definindo os Dados
Escrito por Mrcio Brener - http:/ / www.geocities.com/ marcio-brener
63
Validao doCampo
A validao permiteapenas a gravaose o usurio for Admou Super, casocontrrio informa aousurio "Usuarioinvalido! Apenaspermitido para Admou Super".
Triggers
O que um Trigger?
Um Trigger, como na prpria traduo da palavra, um "gatilho" que disparado para eventos da tabela oucampo como CREATE, UPDATE e DELETE, e a partir daverso 8 do Progress estes mesmos eventos paraReplicao de dados.
O Trigger um mecanismo mais sofisticado ecompleto para validao de CAMPOS ou TABELAS. Ele uma procedure em Progress, um arquivo a parte do bancode dados que disparado para os eventos de CRIAO,DELECO de uma tabela ou ATUALIZAO de um campo.
II Os Triggers em Progress so arquivos no armazenadosno banco de dados. As informaes armazenadas soapenas localizao e verificao do contedo aocontrrio de outros bancos como MS-SQL Server, DB/2ou Oracle. Ento sempre mantenha os Trigger bemarmazenados e seguros!
A prxima tela exemplifica a sintaxe de um Trigger.
-
5/21/2018 Dominando Progress
64/302
Dominando o Progress
Escrito por Mrcio Brener - http:/ / www.geocities.com/ marcio-brener
64
Propriedades do Trigger
Evento/Propriedade Descrio
Event Define qual o evento executara otrigger: ASSIGN, DELETE ouUPDATE
Procedure Informa o arquivo do Trigger
JJ Use sempre a localizaodefinida pelo PROPATH combarra do ti o UNIX
-
5/21/2018 Dominando Progress
65/302
Criando & Definindo os Dados
Escrito por Mrcio Brener - http:/ / www.geocities.com/ marcio-brener
65exemplo: inc/cliente.p
Check CRC Verifica se o Trigger foi alteradodepois de definido no banco dedados.
Overridable Informe se o Trigger pode sereditado ou modificado mesmodurante utilizao.
II A ordem de execuo dos procedimentos no banco dedados Progress : Validao do Campo (Validation),Trigger do Campo e Trigger da Tabela do banco dedados, respectivamente nesta ordem.
Criando ndices
-
5/21/2018 Dominando Progress
66/302
Dominando o Progress
Escrito por Mrcio Brener - http:/ / www.geocities.com/ marcio-brener
66
A criao, bem como a manuteno de ndices emProgress totalmente simplificada. Ao contrrio de outrosbancos de dados como MS-SQL Server, por exemplo, vocno precisa especificar diversos parmetros e atributoscomo taxa de crescimento, organizao fsica, e outrosapenas atributos bsicos.
Propriedade Descrio
Index Name Nome do ndice para identificao comat 32 caracteres alfanumricos. Deveiniciar por uma letra, no deve conter
letras invlidas como , , , comotambm caracteres reservados.
-
5/21/2018 Dominando Progress
67/302
Criando & Definindo os Dados
Escrito por Mrcio Brener - http:/ / www.geocities.com/ marcio-brener
67
Description Texto descritivo ou informativo para o
ndicePrimary Define que o ndice ser o padro
utilizado para procuras ou ordenao databela.
Pode haver apenas um ndice primriopara a tabela, e esse ndice tambm nopode ser excludo.
Para excluir um ndice primrio vocdeve definir qual outro ndice serprimrio antes de efetuar a excluso.
Active Define o ndice como Ativo ou Inativo.
Caso o ndice esteja inativo ele no ser
atualizado automaticamente, comotambm no poder ser utilizado parapesquisa ou ordenao.
Unique Informa que no ser aceita duplicaode valores no ndice.
MMCaso voc defina um campo tipoCHARACTER como case-sensitive ecrie um ndice nico para estecampo, ele aceitar valoresduplicados, ainda que no idnticos,exemplo: Maria/maria, Joao/joao,etc
Lembre-se que o ndice nico sempre a Chave Primria (PrimaryKe ara o relacionamento entre
-
5/21/2018 Dominando Progress
68/302
Dominando o Progress
Escrito por Mrcio Brener - http:/ / www.geocities.com/ marcio-brener
68tabelas!
Word Index Define um ndice para campo do tipoCHARACTER organizado por palavrascontidas em cada registro.
Este ndice consome bastanteespaos em disco, como tambmonera bastante a performance dobanco, sendo aconselhado apenasse realmente no houver uma outrasoluo.
Abbreviated Cria um ndice abreviado para campo tipoCHARACTER utilizando apenas algumaspalavras ou caracteres iniciais docontedo do campo.
Ascending ou
Desceding
Define a ordem para um campo dentrodo ndice.
Como padro inicial todos os campos sodefinidos como ascendentes.
-
5/21/2018 Dominando Progress
69/302
Criando & Definindo os Dados
Escrito por Mrcio Brener - http:/ / www.geocities.com/ marcio-brener
69
Aparncia do Campo (View-As)
Em Progress os campos so objetos intrnsecos,com caractersticas como tipo de visualizao, ou emoutras palavras tipo de objeto.
Voc pode definir por exemplo que o campo lgicosexo seja uma TOGGLE-BOX para exibio e atualizao,sem necessidade de nenhuma linha de cdigo para tal.
Depois de definido o tipo de visualizao para ocampo faa o teste com o cdigo abaixo:
Exemplo:
create cliente.update cliente.sexo.
-
5/21/2018 Dominando Progress
70/302
Dominando o Progress
Escrito por Mrcio Brener - http:/ / www.geocities.com/ marcio-brener
70Tipos disponveis: COMBO-BOX, EDITOR, SELECTION-LIST, FILL-IN, TEXT e RADIO-SET
Sequences
O que so Sequences?
Um Sequence nada mais que um contador quepode ser atribudo a um campo de uma tabela, igual a
campo tipo IDENTY SQL ANSI.Como usar um Sequence?
Utilize um Sequence em uma Trigger CREATEutilizando uma as funes NEXT-VALUE ou CURRENT-VALUE.
Exemplo:
TRIGGER PROCEDURE FOR Create OF Customer.
/* Automaticamente define um novo cdigo para o cliente*/
ASSIGN Customer.Cust-Num = NEXT-VALUE(Next-Cust-Num).
JJ A modelagem dos dados uma das principais etapaspara o sucesso de qualquer aplicativo. Ento faa seumodelo da melhor maneira possvel afim de evitarproblemas ou retrabalho posterior!
-
5/21/2018 Dominando Progress
71/302
Criando & Definindo os Dados
Escrito por Mrcio Brener - http:/ / www.geocities.com/ marcio-brener
71
Metaschema
O que o Metaschema?
Metaschema ou Metadados so tabelas de tabelas,isto , so tabelas intrnsecas do prprio banco de dadosque contm as definies de tabelas, ndices, campos,views, etc, como tambm para manipulao de dados do
prprio funcionamento do banco de dados.
Estas tabelas esto ocultas, mas podem serconsultadas facilmente atravs do Data Administration,opo Reports, Detailed Tables e marcando a opo ShowHidden.
O funcionamento e relacionamento destas tabelasso facilmente manipulados para qualquer tipo deconsulta ou alterao de algumas informaes.
-
5/21/2018 Dominando Progress
72/302
Dominando o Progress
Escrito por Mrcio Brener - http:/ / www.geocities.com/ marcio-brener
72
Tabelas do Metaschema
_Db Informaes do Banco de Dados
_Field Informaes sobre campos das tabelas
_Field-Trig Informaes sobre triggers dos campos
_File Informaes sobre as tabelas do banco
_File-Trig Informaes sobre os triggers das tabelas_Index Informaes sobre os ndices das tabelas
_Index-Field Informaes sobre os campos dos ndices
_Sequence Informaes sobre os sequences
_User Informaes sobre os usurios do banco
_View Informaes sobre Views
_View-Col Informaes sobre os campos das Views
_View-Ref Informaes sobre as tabelas das Views
Fluxograma
-
5/21/2018 Dominando Progress
73/302
Criando & Definindo os Dados
Escrito por Mrcio Brener - http:/ / www.geocities.com/ marcio-brener
73
Captulo 4
Aprendendo a linguagem
Desenvolvendo o cdigoO primeiro programa
Como tradio entre os programadores o nossoprimeiro programa ser o "HELLO WORLD!", escreva otexto de cdigo mostrado abaixo, escolha o menu Compile
e opo Run.display "Hello World!".
Para salvar o programa em linguagem Progresschamado procedure escolha o menu File opo Save As,coloque em um diretrio de trabalho e defina um nomecom a extenso P(procedure) como padro do Progress,
isso salvar seu cdigo.
Como fazer a interface com o usurio?
Em Progress a interface com usurio bastanteinterativa, ele automaticamente lhe disponibilizamensagens de tela, formatos, validaes e visualizao
que j foram previamente estabelecidas no banco dedados, o que lhe pouca um grande trabalho comotambm torna mais fcil a padronizao de um sistema.
-
5/21/2018 Dominando Progress
74/302
Dominando o Progress
Escrito por Mrcio Brener - http:/ / www.geocities.com/ marcio-brener
74Voc pode fazer um programa de insero apenas
com uma linha de cdigo, exemplo: insert customer
(pronto esta criado um programa de insero).Conectando o banco de dados
Aps voc j ter criado o banco de dados a conexo bastante fcil.
Voc tm dois modos de conexo em um banco,
Progress ou No Progress: Mono-Usurio ou Multi-Usurio.
Iniciaremos uma conexo mono-usurio, que maissimples e ideal para testes em geral.
No Data Administration escolha o menu Databaseopo Connect, ento ser apresentada a tela abaixo:
Especifique o banco de dados e clique em OK.
Caso no seja especificado o nome lgico do banco(Logical Name) ser assumido o mesmo nome do bancofsico.
Pode-se tambm conectar um banco por cdigo noProcedure Editor, exemplo:
Sintaxe: CONNECT db [Localizao do banco] 1 ....
-
5/21/2018 Dominando Progress
75/302
Criando & Definindo os Dados
Escrito por Mrcio Brener - http:/ / www.geocities.com/ marcio-brener
75connect db c:\arquivos\sports.db -1
criando um programa para incluso
O cdigo abaixo exemplifica um programa bastantesimples para incluso de dados em uma tabela.
Exemplo
repeat:insert customer with 1 columns.
end.
O cdigo acima cria um loop habilitando a insero,INSERT, de dados na tabela, o complemento do comandoWITH SIDE-LABELS define que o texto dos campos estoalinhados ao lado esquerdo da rea de atualizao dosmesmo, utilizando tambm o formato, informao ouajuda no rodap da janela e validao j definidos.
-
5/21/2018 Dominando Progress
76/302
Dominando o Progress
Escrito por Mrcio Brener - http:/ / www.geocities.com/ marcio-brener
76Note que a aparncia da tela a devida
configurao com aspecto do Progress verso 6,
parmetros V6Frame, V6Colon, ...
-
5/21/2018 Dominando Progress
77/302
Criando & Definindo os Dados
Escrito por Mrcio Brener - http:/ / www.geocities.com/ marcio-brener
77
Aprendendo a sintaxe
Definindo variveis
SINTAXE
DEFINE[[NEW [GLOBAL]] SHARED] VARIABLE varivel{{AS Tipo}|{LIKE Campo}} {[NO-UNDO]
[BGCOLOR n] [COLUMN-LABEL Texto] [DCOLOR n][DECIMALS n] [EXTENT n] [FONT n] [FGCOLOR n][FORMAT Texto][INITIAL constante | [constante[,constante]...]}}][LABEL Texto[, Texto]...][MOUSE-POINTER expresso][[NOT] CASE-SENSITIVE] [PFCOLOR n][VIEW-AS Tipo]} [TRIGGERS]
A definio de uma varivel no Progress vai alm daespecificao do tipo de dado. Uma varivel para oProgress uma entidade como atributos e eventos, ouseja, um Objeto(Widget).
Na varivel possvel configurar todos os atributosde um Objeto como por exemplo LABEL, COR, FORMATO,
VISUALIZAO, EVENTOS, etc.
-
5/21/2018 Dominando Progress
78/302
Dominando o Progress
Escrito por Mrcio Brener - http:/ / www.geocities.com/ marcio-brener
78
PARMETROS
NEW SHARED VARIABLE Varivel
Define uma varivel a ser compartilhada entreprocedures, diretamente ou indiretamente a partir dadeclarao atual. A procedure chamada tem que nomeara mesma varivel em informando que est j estpreviamente instanciada.
NEW GLOBAL VARIABLE Varivel
Define uma varivel a ser compartilhada entre todasas procedures previamente executadas
SHARED VARIABLE Varivel
Define um varivel que foi previamente criada por
um procedure anterior com as clusulas DEFINE NEWSHARED VARIABLE ou DEFINE NEW GLOBAL SHAREDVARIABLE [Declaraes].
VARIABLE Varivel
Define uma varivel cujo valor s est disponveldentro da procedure atual.
AS Tipo
Indica o Tipo de Varivel a ser definida. Os tipos soCHARACTER, DATE, DECIMAL, HANDLE, INTEGER,LOGICAL, MEMPTR, RAW, RECID, ROWID e WIDGET-HANDLE.
-
5/21/2018 Dominando Progress
79/302
Criando & Definindo os Dados
Escrito por Mrcio Brener - http:/ / www.geocities.com/ marcio-brener
79
LIKE Campo de Dado
Indica que a varivel a ser definida herdar todas ascaractersticas do campo original escolhido. Osatributos/valores herdados so FORMAT, LABEL, COLUMN-LABEL, INITIAL, DECIMALS, EXTENT e VIEW-AS Opo.
NO-UNDO
Quando um valor de uma varivel mudada
durante uma transao e est desfeita, o Progressrestaura o seu valor anterior. Caso voc a varivel noseja definida com esta atribuio o valor no serreiniciado caso seja desfeita a transao.
Para melhor performance use esta opo apenasquando necessrio, porque no NO-UNDO adiciona umnovo elemento a ser manipulado na transao o que
onera mais a aplicao.
BGCOLOR n
Especifica a cor de fundo da varivel para umambiente grfico. Esta opo ignorada em ambientecaracter.
[NOT] CASE-SENSITIVE
Indica que a varivel faz distino entre Maisculase Minsculas em uma comparao que a utilize. Porpadro a varivel no distingue a caixa da letra.
Para trocar o atributo de sensibilidade caixa dotexto use NOT CASE-SENSITIVE.
-
5/21/2018 Dominando Progress
80/302
Dominando o Progress
Escrito por Mrcio Brener - http:/ / www.geocities.com/ marcio-brener
80
COLUMN-LABEL Texto
Texto do identificao a ser exibido com a varivel.Caso voc queira usar mais de uma linha na exibiodeste use uma exclamao (!) antes do texto a serexibido na linha inferior.
define variable nome as charactercolumn-label "Nome do!Cliente".
update nome.
DCOLOR n
Especifica a cor dos caracteres da varivel para umambiente grfico. Esta opo ignorada em ambientecaracter.
DECIMALS n
Especifica o nmero de casas decimais de 0 a 10para uma varivel do tipo decimal. Como padro oProgress atribui automaticamente 10 casas decimais seesta declarao for omitida.
EXTENT n
Declara uma varivel com um Array e define o seu
tamanho no limite de 28000 elementos. Para remover oatributo de Array de uma varivel defina seu tamanhocomo 0.
FGCOLOR n
Especifica a cor de fundo da varivel para umambiente grfico. Esta opo ignorada em ambiente
caracter.
-
5/21/2018 Dominando Progress
81/302
Criando & Definindo os Dados
Escrito por Mrcio Brener - http:/ / www.geocities.com/ marcio-brener
81
FONT n
Especifica a fonte de apresentao da varivel.
FORMAT Expresso
Especifica o formato para a aprensentao e uso davarivel.
INITIAL Expresso
Especifica o valor inicial de uma varivel. No podeser atribudo o valor de uma funo ou constanteProgress.
LABEL Texto
Define o texto de exibio da varivel. Use & para
sublinhar a letra usada na tecla de acelerao utilizadapelo MS-Windows(ALT Letra). Se necessrio utilizar um &literalmente no texto de exibio use && para inclui-lo.
MOUSE-POINTER Expresso
Especifica o ponteiro do mouse padro usado naatualizao ou exibio da varivel.
PFCOLOR n
Especifica a cor da varivel na atualizao pordeclarao PROMPT-FOR. Esta opo ignorada eminterfaces grficas.
VIEW-AS Expresso
Define o tipo de visualizao ou objeto da varivel.
-
5/21/2018 Dominando Progress
82/302
Dominando o Progress
Escrito por Mrcio Brener - http:/ / www.geocities.com/ marcio-brener
82
TRIGGER
Define os eventos utilizados na atualizao davarivel.
define variable nome as charactertriggers:
on return message 'Fim da atualizacao'view-as alert-box.
end.update nome.
Exemplo
/* ex0031.p */
define variable dia as integer format "9" initial 1triggers:
on entry message 'Escolha as datas'.end.
define variable ano as integer format "9999" initial 2000.define variable ndias as character format "x(12)"extent 7 initial ['Domingo','Segunda','Terca',
'Quarta','Quinta','Sexta','Sabado'].
define variable mes as character format "x(12)"view-as combo-box list-items
'Janeiro', 'Fevereiro', 'Marco','Abril', 'Maio', 'Junho',
'Julho', 'Agosto', 'Setembro','Outubro', 'Novembro', 'Dezembro'mouse-pointer 'glove' no-undo initial 'Novembro'.
update diaanomes.
-
5/21/2018 Dominando Progress
83/302
Criando & Definindo os Dados
Escrito por Mrcio Brener - http:/ / www.geocities.com/ marcio-brener
83
View-As
Define o tipo do objeto da varivel mostrada natela.
SINTAXE
VIEW-AS{Combo-Box|Editor|{FILL-IN [NATIVE] [Tamanho]}|Radio-Set|
Selection-List|Slider|{TEXT [Tamanho]}|{TOGGLE-BOX [Tamanho]}} [Tooltip Texto]
PARMETROS
COMBO-BOX
Especifica que um campo ou varivel serapresentada como um Combo-Box. Pode conter valorestipo Caracter, Inteiro, Decimal, Lgico e Data.
EDITOR
Visualizao tipo Editor de Texto para um campo ouvarivel. Suporta funes de Copia, Colar, Deletar,
Quebra de Palavras, Auto-Identao, Barras de Rolagem,Sub-Menu, etc.
FILL
Caixa de Texto para valores de qualquer tipo. otipo de visualizao/objeto padro para atualizao de umcampo ou varivel no Progress.
-
5/21/2018 Dominando Progress
84/302
-
5/21/2018 Dominando Progress
85/302
Criando & Definindo os Dados
Escrito por Mrcio Brener - http:/ / www.geocities.com/ marcio-brener
85initial 'Maio'.
define variable salvar as logical label 'Salva Informacao'
view-as toggle-box initial yes format "Sim/Nao".
define variable dia as characterview-as selection-listinner-lines 7 inner-chars 12list-items 'Domingo','Segunda','Terca','Quarta',
'Quinta','Sexta','Sabado'initial 'Terca'.
define variable ano as integer
view-as radio-setradio-buttons "1998", 1998, "1999", 1999.
form textomesesdiaanosalvarwith frame f-editor
title "Edicao de Texto"
row 2 centered overlayview-as dialog-boxside-labels.
assign input frame f-editor texto:tooltip = 'Edite seu texto'input frame f-editor meses:tooltip = 'Escolha um mes'input frame f-editor dia:tooltip = 'Escolha um dia'input frame f-editor ano:tooltip = 'Escolha um ano'input frame f-editor salvar:tooltip = 'Salva informacao'.
update textomesesdiaanosalvarwith frame f-editor.
message "Voce escolheu..." skip(1)"Dia:" dia:screen-value skip"Mes:" meses:screen-value skip"Ano:" ano skip"Salvar:" salvar skip"Observacao:" textoview-as alert-box.
-
5/21/2018 Dominando Progress
86/302
Dominando o Progress
Escrito por Mrcio Brener - http:/ / www.geocities.com/ marcio-brener
86
Definindo Frames
SINTAXEDEFINE [[NEW] SHARED] FRAME Nome do Frame
[Item1, Item2, Item n, ...][{HEADER|BACKGROUND} Item1, Item2, Item n, .