Dominando o Progress

download Dominando o Progress

of 302

Transcript of Dominando o Progress

Dominando o ProgressEscrito por Mrcio Brener Costa

Reviso TcnicaFernanda Magalhes Favilla Paulo Afonso Israel Freire Patrcia Alves de Freitas Daniela Martino dos Santos

Agradeo a todos os meus amigos da CASSI pelo insentivo e companheirismo que sempre recebi para realizao desta obra. Obrigado em especial aos meus Amigos da juventude, Giuler Alberto, Jlio Pacheco e Roberto Catanhede e a minha famlia pela ajuda nos meus primeiros passos na descoberta do Mundo da Informtica. Um grande abrao para todos amigos de Braslia!.

Escrito por Mrcio Brener - http://www.geocities.com/marcio-brener

Dominando o Progress

Faa o que certo ainda que seja o mais difcil.

Escrito por Mrcio Brener - http://www.geocities.com/marcio-brener

Dominando o ProgressCopyright 2000 Mrcio Brener

Todos os direitos reservados para o autor desta obra. Toda ou qualquer parte desta publicao poder ser reproduzida ou transmitida por qualquer meio, seja este eletrnico, mecnico, de fotocpia, de gravao ou outros sem prvia autorizao, desde que citado o Autor (Mrcio Brener Costa [email protected]). Progress, Report Builder, AppServer e WebSpeed so Marcas Registradas da Progress Software Corporation EUA. IBM/DB2 Marca Registra da International Bussines Machine IBM. Oracle Marca Registrada da Oracle Inc. 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

Escrito por Mrcio Brener - http://www.geocities.com/marcio-brener

Dominando o Progress

ndiceCaptulo 1 ............................................................ 20 Apresentando o Progress........................................ 20O que o Progress? ....................................................... 20 Como funciona?.............................................................. 21 Instalando o software..................................................... 22 Apresentando os aplicativos............................................ 26

Captulo 2 ............................................................ 33 Configurao do Produto ........................................ 33Configurao do Progress no Windows ........................... 33O arquivo progress.ini ................................................... 35 Listagem do Arquivo progress.ini .................................... 36

Configurando o Progress para UNIX................................ 42 Variveis de ambiente .................................................... 42 Arquivos ......................................................................... 47Arquivos comuns .......................................................... 47 Arquivos temporrios .................................................... 47 Banco de Dados............................................................ 48 Sesso cliente .............................................................. 49

Protocolos disponveis..................................................... 49

Captulo 3 ............................................................ 50 Criando & Definindo os Dados................................. 50Criando um banco de dados ........................................... 50Escrito por Mrcio Brener - http://www.geocities.com/marcio-brener

Dominando o Progress

Como funciona o Banco de Dados...................................52 Criando tabelas, campos, ndices, etc..............................53 Criando uma tabela.........................................................55 Criando os campos .........................................................59 Validando os Campos......................................................61A propriedade Validation ................................................62

Triggers..........................................................................63O que um Trigger? ........................................................63

Criando ndices ...............................................................65 Aparncia do Campo (View-As).......................................69 Sequences ......................................................................70O que so Sequences?...................................................70 Como usar um Sequence?..............................................70

Metaschema ...................................................................71O que o Metaschema?.................................................71

Captulo 4 .............................................................73 Aprendendo a linguagem.........................................73Desenvolvendo o cdigo .................................................73O primeiro programa .....................................................73 Como fazer a interface com o usurio? ............................73

Conectando o banco de dados ........................................74 Aprendendo a sintaxe .....................................................77Definindo variveis ........................................................77 View-As .......................................................................83 Definindo Frames..........................................................86 Escrito por Mrcio Brener - http://www.geocities.com/marcio-brener

Dominando o Progress

Definindo Queries ........................................................... 95O qu uma Query? ..................................................... 95

BROWSES....................................................................... 97 Utilizando a Query no Browse ....................................... 103OPEN QUERY ............................................................. 103 ASSIGN ..................................................................... 105

Comandos de Impresso e Manipulao de Arquivos .... 106OUTPUT .................................................................... 106 PARMETROS............................................................. 106 INPUT ....................................................................... 110

Eventos ........................................................................ 114Lista de Eventos ......................................................... 114

Preprocessadores ......................................................... 143O que so preprocessadores?....................................... 143 Utilizao ................................................................... 143 &SCOPED-DEFINE....................................................... 143 &GLOBAL-DEFINE ....................................................... 144 &UNDEFINE ............................................................... 145

DIRETIVAS PREPROCESSADAS ..................................... 145 Operadores................................................................... 146&IF, &THEN, &ELSEIF, &ELSE, &ENDIF ......................... 146

MESSAGE ..................................................................... 147PARMETROS............................................................. 147

Criando MENUS ............................................................ 150MENU ........................................................................ 150 Escrito por Mrcio Brener - http://www.geocities.com/marcio-brener

Dominando o Progress

BOTES........................................................................ 155 PARMETROS ............................................................... 159 Importao e Exportao de Dados .............................. 162 Limites do Progress....................................................... 163Banco 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..................................................................... 171 CHR........................................................................... 172 CODEPAGE-CONVERT.................................................. 172 CONNECTED............................................................... 173 COUNT-OF ................................................................. 173 CURRENT-CHANGED ................................................... 174 CURRENT-LANGUAGE.................................................. 175 Escrito por Mrcio Brener - http://www.geocities.com/marcio-brener

Dominando o Progress CURRENT-RESULT-ROW .............................................. 175 CURRENT-ROW-MODIFIED .......................................... 176 CURRENT-VALUE ........................................................ 176 DATASERVERS ........................................................... 176 DATE......................................................................... 176 DAY .......................................................................... 177 DBCODEPAGE............................................................. 177 DBCOLLATION............................................................ 178 DBNAME .................................................................... 178 DBPARAM .................................................................. 178 DBRESTRICTIONS....................................................... 179 DBTASKID.................................................................. 179 DBTYPE ..................................................................... 180 DBVERSION ............................................................... 180 DECIMAL ................................................................... 181 DEFINED ................................................................... 181 DYNAMIC-FUNCTION .................................................. 182 ENTERED................................................................... 183 ENTRY....................................................................... 183 ETIME ....................................................................... 184 EXP ........................................................................... 184 EXTENT ..................................................................... 184 FILL .......................................................................... 185 FIRST........................................................................ 185 FIRST-OF................................................................... 186 FRAME-COL................................................................ 187 Escrito por Mrcio Brener - http://www.geocities.com/marcio-brener

Dominando o Progress FRAME-DB.................................................................. 187 FRAME-DOWN ............................................................ 187 FRAME-FIELD ............................................................. 188 FRAME-FILE ............................................................... 188 FRAME-INDEX ............................................................ 188 FRAME-LINE............................................................... 189 FRAME-NAME ............................................................. 189 FRAME-ROW .............................................................. 189 FRAME-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 ................................................................... 192 GET-STRING............................................................... 193 GET-UNSIGNED-SHORT ............................................... 193 INDEX ....................................................................... 193 INTEGER.................................................................... 193 IS-ATTR-SPACE .......................................................... 194 KBLABEL .................................................................... 194 KEYCODE ................................................................... 195 Escrito por Mrcio Brener - http://www.geocities.com/marcio-brener

Dominando o Progress KEYFUNCTION............................................................ 195 KEYLABEL .................................................................. 196 KEYWORD.................................................................. 197 KEYWORD-ALL ........................................................... 197 LAST ......................................................................... 197 LASTKEY.................................................................... 198 LAST-OF .................................................................... 198 LC............................................................................. 198 LDBNAME .................................................................. 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..................................................................... 201 MAXIMUM .................................................................. 202 MESSAGE-LINES ......................................................... 202 MINIMUM .................................................................. 202 MONTH ..................................................................... 203 NEW.......................................................................... 203 NEXT-VALUE .............................................................. 203 NOT ENTERED............................................................ 203 Escrito por Mrcio Brener - http://www.geocities.com/marcio-brener

Dominando o Progress NUM-ALIASES............................................................. 204 NUM-DBS................................................................... 204 NUM-ENTRIES ............................................................ 204 NUM-RESULTS............................................................ 205 OPSYS ....................................................................... 205 OS-DRIVES................................................................. 206 OS-ERROR ................................................................. 206 OS-GETENV................................................................ 206 PAGE-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........................................................................ 211 RECORD-LENGTH........................................................ 212 REPLACE.................................................................... 212 RETRY ....................................................................... 213 RETURN-VALUE .......................................................... 214 RIGHT-TRIM............................................................... 214 R-INDEX .................................................................... 214 ROUND ...................................................................... 215 Escrito por Mrcio Brener - http://www.geocities.com/marcio-brener

Dominando o Progress ROWID...................................................................... 215 SCREEN-LINES ........................................................... 215 SDBNAME .................................................................. 215 SEARCH..................................................................... 216 SEEK ......................................................................... 216 SETUSERID ................................................................ 216 SQRT ........................................................................ 216 STRING ..................................................................... 217 SUBSTITUTE .............................................................. 217 SUBSTRING................................................................ 218 TERMINAL ................................................................. 219 TIME ......................................................................... 219 TODAY ...................................................................... 220 TO-ROWID................................................................. 220 TRANSACTION ........................................................... 220 TRIM......................................................................... 221 TRUNCATE................................................................. 221 USERID ..................................................................... 221 VALID-EVENT ............................................................. 222 VALID-HANDLE........................................................... 222 WEEKDAY .................................................................. 222 WIDGET-HANDLE ....................................................... 223 YEAR......................................................................... 223

Captulo n ...........................................................224 Utilitrios & Parmetros do Banco de Dados Progress 224Escrito por Mrcio Brener - http://www.geocities.com/marcio-brener

Dominando o Progress

Utilitrios do Banco de Dados Progress ......................... 224PARMETROS............................................................. 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

Escrito por Mrcio Brener - http://www.geocities.com/marcio-brener

Dominando o Progress -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 Escrito por Mrcio Brener - http://www.geocities.com/marcio-brener

Dominando o Progress -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 Escrito por Mrcio Brener - http://www.geocities.com/marcio-brener

Dominando o Progress -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 Escrito por Mrcio Brener - http://www.geocities.com/marcio-brener

Dominando o Progress -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 Escrito por Mrcio Brener - http://www.geocities.com/marcio-brener

Dominando o Progress -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..............................266O que o banco multi-volumes?................................... 266 Por que usar Banco Multi-Volumes? .............................. 267 Criando a estrutura multi-volumes ................................ 268Formao do arquivo de estrutura ................................ 268

Criando o Banco ........................................................... 269

MAGNUS.............................................................272Apresentao................................................................ 272 Como o MAGNUS funciona? .......................................... 272Lista 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 Escrito por Mrcio Brener - http://www.geocities.com/marcio-brener

Dominando o Progress UNIX AIX ................................................................... 286 Windows NT............................................................... 287

Utilizando zoom de cadastro Datasul............................. 289

Captulo n ........................................................... 293 Softwares, Utilitrios & Sites diversos...................... 293NetTerm ....................................................................... 293Configure as teclas de acordo com o MAGNUS................ 294

Kea!X............................................................................ 295 PCase ........................................................................... 296 Viper............................................................................. 297 ERWin .......................................................................... 297 Sites sobre Progress ..................................................... 299

Escrito por Mrcio Brener - http://www.geocities.com/marcio-brener

Captulo 1

Apresentando o ProgressO que o Progress?A linguagem Progress foi desenvolvida pela empresa Progress Software Corporation em 1984, inicialmente para sistema operacional UNIX com uso em mainframes para processamento de grande volume de dados, como alternativa para outras linguagens da poca como Cobol, Adabas, Natural, Clipper, etc, que exigiam do programador escrever um cdigo muito extenso para qualquer aplicao. Tambm uma alternativa como Banco de 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. No Brasil sua representante a Progress do Brasil/SP. Uma das maiores atrativos do Progress sua portabilidade e independncia de plataforma. Ele funciona em praticamente todos os sistemas operacionais existentes 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 altssima performance e extrema segurana, igual ou at mesmo Escrito por Mrcio Brener - http://www.geocities.com/marcio-brener

Apresentando o Progress 21 superior ao bancos mais populares do mercado como Oracle, DB/2 IBM, Sybase, MS-SQL Server, entre outros. A perfeita integrao entre linguagem e banco de dados fazem do Progress uma excelente ferramenta para construo de qualquer aplicao comercial. Isso porque as camadas de desenvolvimento - regras de negcios, dados e interface esto totalmente interligadas, o que evita qualquer redundncia ou retrabalho em qualquer camada da aplicao. A atualizao e distribuio dos aplicativos em Progress tambm bastante simplificada. Um sistema pode ser totalmente centralizado para acesso de vrios clientes simultneos e atualizado a qualquer tempo, parcialmente ou completamente sem gerar qualquer erro ou 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 e armazenamento centralizado do Progress servidor e cliente, bancos de dados e aplicaes em um servidor disponvel para acesso de diversos clientes em rede. H tambm diversas outras configuraes possveis para uma aplicao Progress: mltiplos servidores, bancos de dados distribudos entre servidores e/ou plataformas distintas, como ser visto no captulo Arquiteturas de aplicao. A figura a seguir exemplifica melhor uma configurao mais simples.

Escrito por Mrcio Brener - http://www.geocities.com/marcio-brener

22

Dominando o ProgressArquitetura de aplicao Servidor de rede com instalao do Progress server e client; Sesso multi-usurio dos bancos de dados; Aplicativos em Progress

Instalando o softwareSer apresentada a instalao do Provision para Windows Os pr-requisitos para instalao so apenas mdia(s) e licena(s) para comear a usar.Tela inicial de instalao Este a primeira tela para instalao do Progress verso 8.x para sistema operacional Microsoft Windows 95/98/NT

Escrito por Mrcio Brener - http://www.geocities.com/marcio-brener

Apresentando o Progress 23 Ser 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 instalao do Progress, voc pode especificar o drive o diretrio aonde sero copiados os arquivos. Por padro o diretrio sugerido "DLC", mas voc pode alter-lo para outro de sua escolha. Todos os dados informados na instalao sero includos na configurao do Progress contida no arquivo DLC/progress.cfg, o qual validar a execuo de todos os aplicativos Progress.

J

Como padro do Progress o diretrio DLC toda sua literatura o cita por padro tambm. Ento saiba que a

Escrito por Mrcio Brener - http://www.geocities.com/marcio-brener

24

Dominando o Progress nomenclatura DLC sempre se refere localizao de instalao do Progress.

A prxima tela solicita o grupo de programas a ser criado no servidor e o diretrio padro aonde o Progress salvar arquivos de programas, temporrios entre outros.

Escrito por Mrcio Brener - http://www.geocities.com/marcio-brener

Apresentando o Progress

25

Aps o trmino da instalao sero criados esses cones 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 por exemplo ao Microsoft Visual Basic Professional ou Delphi Client/Server.

Escrito por Mrcio Brener - http://www.geocities.com/marcio-brener

26

Dominando o Progress

Apresentando os aplicativosDesktop um aplicativo desenvolvido em Progress 4GL modo grfico que apresenta os botes dos aplicativos Progress disponveis. Arquivo: _desk.p

Procedure Editor

Aplicativo em Progress 4GL para escrita do cdigo fonte, execuo de procedures, debuger, compilao e qualquer procedimento por meio de cdigo. Arquivo _edit.p

Escrito por Mrcio Brener - http://www.geocities.com/marcio-brener

Apresentando o ProgressData Administration

27

Aplicativo desenvolvido em Progress 4GL para administrao 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 Escrito por Mrcio Brener - http://www.geocities.com/marcio-brener

28Data Dictionary

Dominando o Progress

Com Dicionrio de Dados voc pode modelar a estrutura de tabelas, campos, ndices, seqncias e triggers. Tambm um aplicativo totalmente em Progress 4GL Arquivo: _dict.p

Escrito por Mrcio Brener - http://www.geocities.com/marcio-brener

Apresentando o ProgressApplication Compiler

29

Como o prprio nome diz um aplicativo para compilao de procedures (programas). Ele possibilita compilar um diretrio ou uma rvore de diretrios, especificar arquivos iniciados por uma subpalavra ou apenas extenso, confirmar sobreposio de procedures j existentes, etc. Tambm desenvolvido em Progress 4GL Arquivo: _comp.p

Escrito por Mrcio Brener - http://www.geocities.com/marcio-brener

30

Dominando o Progress

User Configuration

Utilitrio desenvolvido em Progress 4GL para criao e edio de scripts de conexo e/ou de inicializao do Progress. Arquivo: _script.p

Escrito por Mrcio Brener - http://www.geocities.com/marcio-brener

Apresentando o ProgressReport Builder

31

Utilitrio do Progress para criao de relatrio totalmente grficos em MS-Windows. Com ele voc pode usar tabelas, inserir grficos, usar e criar funes definidas pelo usurio.

Este

aplicativo Progress disponvel apenas para ambiente MS-Windows 3.x/95 ou NT.

Escrito por Mrcio Brener - http://www.geocities.com/marcio-brener

32

Dominando o Progress

UIB (User Interface Builder)

O User Inteface Builder um utilitrio desenvolvido em Progress 4GL para edio rpida e grfica de programas baseados no Windows. Ele foi introduzido a partir da verso 7 para Windows trazendo consigo diversas inovaes e conceitos quanto orientao a objetos, encapsulamento, polimorfismo e hereditriedade, como um incio para entrada da linguagem Progress na Quarta Gerao, da Progress 4GL. Arquivo: _uib.p

Este utilitrio no far parte da abordagem deste livro.Escrito por Mrcio Brener - http://www.geocities.com/marcio-brener

Captulo 2

Configurao do SoftwareConfigurao 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 as parametrizaes so estabelecidas por meio de linha de comando e definies de variveis de ambiente, no Windows 95 ou NT os parmetros so registrados por meio de arquivos INIs, ou ainda na Registry como o novo padro introduzido pela verso 8.2 e superiores. A instalao do Progress 8.x para Windows grava as informaes relativas s propriedades do aplicativo na Registry do Windows, e tambm em arquivo INI chamado progress.ini como na verso 7.x, localizado no diretrio DLC/bin. As entradas na Registry estaro nos diretrios HKEY_CURRENT_USER ou HKEY_LOCAL_MACHINE nesta seqncia, na pasta Software, em uma sub-pasta chamada PSC (Progress Software Corporation), conforme mostra a figura abaixo:

34

Dominando o Progress

Configurao na Registry

As configuraes contidas na Registry tambm esto no arquivo INI e podem ser usada para definir as propriedades para o funcionamento e aparncia das aplicaes. Voc tambm pode registrar as configuraes contidas em um arquivo INI para a Registry do Windows de uma mquina cliente, atravs do um aplicativo em DLC\bin\ini2reg.exe, veja a figura a seguir:

Configurao doInclui um arquivo INI na Registry do Windows

35

O arquivo progress.iniOs parmetros V6Display, V6Colon, V6Frame, V6FKeys, V6Keys, DefaultFont FixedSys, DefaultFixedFont FixedSys definem uma aparncia para a aplicao igual a utilizada na verso Progress 6, com tela na dimenso de 80 linhas por 21 colunas, rea de mensagens e rea de status e fonte proporcional, de

Dominando o Progress 36 acordo com a configurao para funcionamento do MAGNUS verso I.

Caso voc no conhea, o MAGNUS um Sistema de

Gesto Empresarial, o mais popular no Brasil. Desenvolvido totalmente em Progress pela Datasul, uma empresa brasileira sediada em Joinvile Santa Catarina.

Listagem do Arquivo progress.ini[Startup] V6Display=no V6Colon=no V6Frame=no V6FKeys=no V6Keys=no ImmediateDisplay=yes MultitaskingInterval=100 DefaultFont=FixedSys DefaultFixedFont=FixedSys DLC=C:\DLC Use-3D-Size=Yes PROBUILD=C:\DLC\PROBUILD PROPATH=.,D:\MAGNUS,C:\DLC\PROBUILD\EUCAPP\EUC.PL,C:\DLC\PR OBUILD\EUCAPP,C:\DLC\gui,C:\DLC,C:\DLC\binOLD-PROPATH=.,C:\DLC\PROBUILD\EUCAPP\EUC.PL,C:\DLC\PROBUILD\EUCAPP

PROCFG=C:\DLC\PROGRESS.CFG PROMSGS=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 - reserved

color0=0,0,0 color1=0,0,128 color2=0,128,0 color3=0,128,128 color4=128,0,0 color5=128,0,128

Configurao docolor6=128,128,0 color7=128,128,128 color8=192,192,192 color9=0,0,255 color10=0,255,0 color11=0,255,255 color12=255,0,0 color13=255,0,255 color14=255,255,0 color15=255,255,255 color16=255,255,0 NORMAL=0,15 INPUT=15,0 MESSAGES=15,1 [Default Window] ;x= ;y= ;rows= ;columns= [fonts]

37

;*********************************************************************** ; 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=8 font1=MS Sans Serif, size=8 font2=Courier New, size=8 font3=Courier New, size=8 font4=MS Sans Serif, size=8 font5=MS Sans Serif, size=10 font6=MS Sans Serif, size=8, bold font7=MS Sans Serif, size=8 font8=Courier New, size=12 font9=MS Sans Serif, size=8 font10=Garamond, size=20 font11=MS Sans Serif, size=8

38

Dominando o Progress

[WinChar Startup] DLC=C:\DLC PROBUILD=C:\DLC\PROBUILDPROPATH=.,C:\DLC\PROBUILD\EUCAPP\EUC.PL,C:\DLC\PROBUILD\EUCAPP

;DLC= ;PROCFG= ;PROMSGS= ;PROPATH= [WinChar Colors] color0=WHITE/BLUE color1=BLACK/GRAY color2=BLACK/GRAY color3=BLUE/WHITE color4=BLINK-RED/WHITE ;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.

"NORMAL" "INPUT, UNDERLINE" "MESSAGES, REVERSE" "HIGHLITE, HELP" "URGENT"

Location=1,146,15,460,464 Pane0=1,46," " Pane1=1,14,"" Pane2=1,16,"Commands in Queue: 0" Pane3=1,25,"" DebuggerName=PRODEBUG.EXE [Debug-Macros] Macro0=r, run &file Macro1=c, continue Macro2=s, step Macro3=n, next Macro4=b, break &file &line Macro5=cb, cancel break &file &line Macro6=sb, show breaks Macro7=ss, show stack

Configurao doMacro8=u, up Macro9=d, down Macro10=di, display &text Macro11=sm, show macros [Debug-Buttons] Button0=Run,run &file Button1=Cont,continue Button2=Step,step Button3=Next,next Button4=Break,break &file &line Button5=Stack,show stack Button6=Up,up Button7=Down,down Button8=Disp,display &text Button9=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=yes BufList= ExitWarning=yes SaveBufList=no MinimizeBeforeRun=no RestoreAfterRun=yes PauseAfterRun=yes AutoCleanup=yes EditorFont=8 New=SHIFT-F3 Open=F3 Close=F8

39

40

Dominando o Progress

NewProcedureWindow=CTRL-F3 Save=F6 SaveAs=SHIFT-F6 Undo=CTRL-Z Cut=CTRL-X Copy=CTRL-C Paste=CTRL-V Find=CTRL-F FindNext=F9 FindPrevious=SHIFT-F9 Replace=CTRL-R GotoLine=CTRL-G List=CTRL-L NextBuffer=F7 PreviousBuffer=SHIFT-F7 Run=F1 CheckSyntax=SHIFT-F2 Debug=SHIFT-F4 CompilerMessages=CTRL-E [RBStartup] ;RBSTARTUP= [ReportBuilderSaveList] ActionBar=1 FormatBar=1 FieldNames=0 SortFieldNames=0 ShowHiddenTables=0 PasteArgs=1 ShHzRul=1 ShVtRul=1 ShGrd=1 Maximize=1 NotFirstTime=1 Library= Report=Teste [ReportBuilderPreferences] InstantRep=2 PromptFields=1 ScrBarHz=1 ScrBarVt=1 PromptConnection=0 [ReportBuilderDefaults]

Configurao doDefMeas=1 PgLM=1 BotM=50 LeftM=50 RightM=50 TopM=50 RulPit=10 VRulPit=10 Pts=120 SnapTo=1 Color=0 WidthRep=1 WidthColor=8 FaceName=Arial LogF=No LogT=Yes LibDir= DatabaseDir= ImgDir= UDFDirectory= MemExt=TXT ImgExt=BMP ImageQuality=0 [uib] [Procomp] SaveSettings=yes FileSpec01=.,*.p *.w DefFileSpec=*.p *.w LogFile=compile.log ShowStatus=yes RemoveOldRs=yes IfNoR=no SubDirs=yes SaveNewRs=yes XrefAppend=no ListAppend=no PageLength=60 PageWidth=80 V6Frame=yes StreamIO=no

41

A listagem acima a utilizada para o funcionamento do MAGNUS verso I em Windows.

42

Dominando o Progress

Configurando o Progress para UNIXAps a instalao por meio de fita ou CD, apenas edite a(s) profile(s) setando as variveis de ambiente.Exemplo de scriptTERM=vt220 ; export TERM DLC=/sistemas/dlc ; export DLC PATH=/usr/bin:$DLC:$DLC/bin:/sistemas/magnus ; export PATH PROCFG=$DLC/progress.cfg ; export PROCFG PROMSGS=$DLC/promsgs ; export PROMSGS PROPATH=$DLC,$DLC/bin,$DLC/tty,/sistemas/magnus export PROPATH $DLC/bin/mpro pf magnus.pf

Variveis de ambienteVarivel ACCESS Definio

Especifica quem ter permisso no ProControl em ambiente Windows NTExemplo

ACCESS=AdministratorDLC

Informa a localizao da instalao do ProgressExemplo

SET DLC=C:\DLC (DOS/Windows) DLC=/app/dlc ; export DLC (UNIX)DLCRES

Informa a localizao Progress Results

do

aplicativo

Configurao doExemplo

43

DLC=/usr/myres ; export DLCEVTLEVEL

Especifica o nvel de informaes a serem gravadas no Event Log em Windows NT ParmetrosNONE - nenhuma informao;

BRIEF - apenas erros e alertas; NORMAL - erros, alertas e os mesmos gravados no arquivo .lg; FULL - todas mensagensExemplo

EVTLEVEL=BRIEFPATH

Lista de diretrios para uso do Sistema OperacionalExemplo(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 Progress Application ServerExemplo

PROAPSV=/$DLC/bin/_proapsv (UNIX) PROAPSV=%$DLC%\bin\_proapsv.exe (Windows NT)

44PROCFG

Dominando o Progress Localizao do arquivo de configurao do ProgressExemplo

PROCFG=C:\DLC\PROGRESS.CFGPROCONV

Localizado arquivo de Cdigos de Pginas a ser utilizado na sesso clienteExemplo

PROCONV=C:\DLC\CONVMAP.CPPROEXE

Localizao do arquivo executvel do Progress

Exemplo

SET PROEXE=c:\dlc\prowin32.exePROLOAD

Localizao do diretrio de instalao do aplicativo ProBuildExemplo

SET PROLOAD=%DLC%\probuildPROMSGS

Localizao do arquivo de mensagens ProgressExemplo

PROMSGS=$DLC/prolang/promsgs.por (arquivo de mensagens em portugus)

Configurao doPROPATH

45

Lista de diretrios a ser utilizado pela sesso ProgressExemplo

(DOS/Windows) SET PROPATH=%PATH%;%DLC%;%DLC%\BIN;M:\MAGNUS (UNIX) PROPATH=/usr/bin:$PATH:$DLC:$DLC/bin:/magnus export PROPATH

PROSRV

Localizao do arquivo executvel do servidor de dadosExemplo

PROSVR=%DLC%\bin\_mprosrv.exe (DOS/Windows)PROSTARTUP Define o arquivo de parmetros (.pf) a

ser usado como padro pela sesso Progress, caso omitido o padro assumido ser o arquivo startup.pf dentro do diretrio do Progress.Exemplo

(DOS/Windows) PROSTARTUP=M:\magnus\magnus.pf (UNIX) PROSTARTUP=/magnus/magnus.pf export PROSTARTUP

PROTERMCAP Define o arquivo de configurao de

terminal para sesso em ambiente caracter. Caso omitido ser assumido como padro o arquivo proterm dentro do diretrio do Progress

46

Dominando o ProgressExemplo

PROTERMCAP=$DLC/protermcap ; export PROTERMCAP

TERM

Define o tipo de terminal de uma sesso clienteExemplo

(UNIX) TERM=vt200 ; export TERM

PROMON

Define o arquivo para gravao estatsticas de programas

de

I Lembre-se

que em UNIX as variveis so casesensitive, isto , h distino entre maisculas e minscula, como tambm para o valores das variveis!

Configurao do

47

ArquivosArquivos comunsprogress.cfg PROMSGS .pf .cp .df .d .fd .csh .rpt .v .pl Configurao do Progress Mensagens do Progress Parmetros sesso servidor/cliente Definio de Cdigos de Pgina Definio de estrutura de bancos/tabelas Dados de tabelas Descries do Bulk loader Contedo ou cache do Metaschema Licena de uso de relatrios Validao Biblioteca de procedures

Arquivos temporrios.lbi .dbi .ped Before-Image local de transaes Definies de tabelas temporrias Procedures temporrias

J

Quando voc edita uma procedure, seja no Procedure Editor ou UIB as

48

Dominando o Progress seja no Procedure Editor ou UIB as alteraes so salvas em um arquivo temporrio com extenso .PED no diretrio temporrio definido na sesso a cada execuo da mesma. Ento se houver algum problema e a sesso seja incerrada sem que antes voc salve suas alteraes, procure no diretrio temporrio os arquivos .PED, um deles contm a procedure at o momento da ltima execuo. Organizao de registros. Geralmente criado quando ordenado campos que no sejam indexados.

.srt

.trp

Definies do Dicionrio de Dados temporrias, antes de serem confirmadas (Commit) no banco.

Banco de Dados.db .dn .bi .bn .ai .na Banco de Dados Arquivo extendido de banco multivolumes Before-Image Arquivo extendido do Before-Image multivolumes AfterImage Arquivo extendido do After-Image

Configurao do multivolumes .lg .lk .tl .ds Log de eventos do Banco Lock de conexo do Banco Log de transaes Descrio de estruturas

49

Sesso cliente.p .w .i Procedure Procedure UIB (Windows) Arquivo include

Protocolos disponveisNETBIOS SNA SPX WIPC (Servidor/Cliente Windows) CTOS TCP/IP DECnet TLI DDE

Captulo 3

Criando & Definindo os DadosCriando um banco de dadosExistem trs maneiras de criar um banco de dados em Progress, como ser mostrado baixo:1 No Data Administrator menu Database opo Create,

ento informe a localizao e o nome do novo banco de dados a ser criado.

Escrito por Mrcio Brener - http://www.geocities.com/marcio-brener

Criando & Definindo os Dados 51 Voc tem a opo criar um banco de dados vazio, uma cpia 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 dados ser criado, com as mesma opes do Data Administration, conforme abaixo:C:\ARQUIVOS>C:\DLC\BIN\PRODB cadastro demo to get the system demonstration database, or sports to get the sports demonstration database, or isports to get the international sports database, or empty to get the system empty database, or anyname to get a copy of that database. :

Lembre-se que a varivel de ambiente DLC deve estar configurada adequadamente para pode criar o novo banco de dados.3 Por cdigo fonte no Procedure Editor, conforme o

cdigo abaixo:create database "c:\arquivos\cadastro" replace no-error.

Escrito por Mrcio Brener - http://www.geocities.com/marcio-brener

52

Dominando o Progress

Como funciona o Banco de DadosEm Progress o banco de dados constitudo de, pelo menos, dois arquivos bsicos, o prprio Banco de Dados com extenso DB e o Controle de Transaes com extenso BI (Before-Image). Estes dois arquivos funcionam em conjunto para gerenciar todos as solicitaes dos aplicativos a eles ligados. O arquivo de "Image Anterior" (Before Image) tem um papel importantssimo de assegura a total e completa integridade fsica e referencial dos dados, como por exemplo ndices, validaes, tipos e formatos atravs do "ENGINE DATABASE" e confirmar estas transaes para gravao e/ou deleo no banco de dados aps uma completa consistncia dos dados existentes.

Os

mtodos para criao de um banco de dados mostrados se aplicam apenas para Bancos de Volume nico ou Simples, existem tcnicas em Progress mais sofisticadas para criao de bancos de dados em Mltiplos Volumes, conforme ser mostrado no captulo Performance.

Escrito por Mrcio Brener - http://www.geocities.com/marcio-brener

Criando & Definindo os Dados

53

Criando tabelas, campos, ndices, etcPara modelagem de dados utilizado o aplicativo Data Dictionary 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 aplicativo ProWin32 refere-se apenas ao Progress em ambientegrfico(MS-Windows, OSF/Motif e outros).

para o Progress esta ser apresentada com barra invertida, como padro do UNIX e tambm padro Progress, ainda que em Windows.

No Procedure Editor escolha o menu Tools opo Data Dictionary.A figura abaixo descreve cada detalhe do utilitrio.

Escrito por Mrcio Brener - http://www.geocities.com/marcio-brener

54

Dominando o Progress

Habilita a manipulaes dos bancos de dados conectados, conforme a listagem Databases; Habilita a manipulao de tabelas, conforme o banco de dados selecionado na listagem Databases; Habilita a manipulao de SEQUENCES para o banco de dados selecionado. Ser explicado o Sequence neste captulo; Habilita a edio de tabelas conforme o banco de dados selecionado; Habilita a edio de ndices conforme a tabela selecionada na listagem Tables; Disponibiliza as opes conforme os itens acima escolhidos.

Escrito por Mrcio Brener - http://www.geocities.com/marcio-brener

Criando & Definindo os Dados

55

Criando uma tabelaA figura abaixo mostra a janela de propriedades da tabela no Data Dictionary.

Escrito por Mrcio Brener - http://www.geocities.com/marcio-brener

56

Dominando o Progress

As propriedades abaixo definem cada opo da figura anterior.Propriedade Table Name Descrio

Define o nome da tabela a ser criada. Este nome deve ser iniciado por uma letra de A a Z, com no mximo 32 caracteres e no conter nenhum caracter invlido, tipo asterisco, vrgula, parnteses, entre outros

I NoDump File

Progress voc pode inserir "-" (hfen) para nomear tabelas, campos, variveis e outros.

Informa o nome do arquivo de DUMP para exportao das definies e dos dados da tabela. Este nome poder ter at 8 caracteres alfanumricos e tambm no deve apresentar sinais invlidos no reconhecidos para o nome de arquivo, de acordo com os princpios dos Sistemas Operacionais em geral, exemplo (*,?,%,&,etc).

Independente

da plataforma o arquivo para DUMP ser sempre tamanho 8 e por padro o Progress ao exportar o arquivo definir a extenso D(arquivo de dados = dump.d) e DF(arquivo de definies = dump.df). Isso para manter

Escrito por Mrcio Brener - http://www.geocities.com/marcio-brener

Criando & Definindo os Dados 57 compatibilidade do banco de dados caso seja mudado para outro sistema operacional.Hidden

Oculta a tabela da listagem. Esta opo no disponvel no momento de criao, mas pode ser selecionada aps a confirmao de gravao da tabela no banco. Voc pode congelar as definies da tabela aps a concluso e gravao no banco de dados. Define um nome de at 30 caracteres quaisquer para exibio de informaes de avisos ou erros para a tabela em tempo de execuo do aplicativo, como por exemplo a informao de travamento de uma tabela por outro usurio, exemplo: Tabela customer tem o label Customer, o qual ser mostrado no aviso, conforme a figura abaixo:

Frozen

Label

Description

Texto descritivo para informaes anotaes a respeito da tabela.

ou

Escrito por Mrcio Brener - http://www.geocities.com/marcio-brener

58Replication

Dominando o Progress Informa uma outra tabela destino que ser espelho desta tabela.

Escrito por Mrcio Brener - http://www.geocities.com/marcio-brener

Criando & Definindo os Dados

59

Criando os camposA figura abaixo mostra as propriedades para a criao de um campo.

Propriedade Field Name

Descrio

Nome do campo com at 32 caracteres alfanumricos, sem acentos ou sinais invlidos. Define o tipo de dado do campo em: INTEGER, DECIMAL, CHARACTER, LOGICAL, DATE, RAW ou RECID.

Data Type

Escrito por Mrcio Brener - http://www.geocities.com/marcio-brener

60

Dominando o Progress

I Aps o campo ser criado o Tipo de

Dado no poder ser alterado, como tambm no poder ser removido caso exista algum ndice da tabela a que partena.

Format

Define um formato ou mscara de acordo com o tipo de dado para entrada e visualizao do campo.Exemplos:

->>>,>>9.99 (DECIMAL) 999 (INTEGER) 99/99/9999 (DATE) Masculino/Feminino (LOGICAL yes/no)

Label

Define um texto informativo a ser exibido com o campo, tanto para apresentao em coluna, lateral e tambm em informaes como regras de ndices e outros. Define um texto informativo apresentao quando em coluna. para

Column Label

Initial Value

Atribui um valor inicial para o campo aps o registro ser criado. Define ama ordem do campo dentro da tabela. Por padro esta ordem incrementada de 10 em 10 e no pode repetir, mas pode ser alterada e conter qualquer intervalo de nmero inteiro.

Order

Decimals

Define o nmero de casas decimais num

Escrito por Mrcio Brener - http://www.geocities.com/marcio-brener

Criando & Definindo os Dados 61 limite de 10 e mnimo de 0 para dados do tipo DECIMALDescription

Texto descritivo ou informativo para o campo. Informa um texto de Ajuda ou Informao sobre o campo para ser exibido na rea de status da aplicao quando este estiver sendo editado. Define o preenchimento de um campo como obrigatrio. Informa que um campo tipo CHARACTER far distino entre letras maisculas e minsculas se utilizado em um ndice ou para uma comparao. Define o campo como um array de n elementos, nomendo-os como: CAMPO[n elemento]

Help Text

Mandatory

Case-Sensitive

Extent

I Esta

propriedade do campo no poder ser alterada aps o campo criado!

Validando os CamposVoc pode validar os dados e eventos para um campo atravs da propriedade Validation ou por meio de Triggers.

Escrito por Mrcio Brener - http://www.geocities.com/marcio-brener

62

Dominando o Progress

A propriedade ValidationO meio mais fcil e rpido para validao a propriedade Validation do campo. Voc especifica as clusulas de validao para valores permitidos e uma mensagem de retorno a ser informada para o usurio caso as clusulas no sejam satisfeitas, conforme a prxima figura demonstra. As verificaes so executadas durante a atualizao do campo com o "feedback" de mensagens e help deste para o usurio, mostrados na barra de status na janela da aplicao.

J

Voc pode, tambm, incluir uma Include na validao do campo. Exemplo: {inc/empresa.inc}, esta Include deve retornar um erro para a validao do campo, RETURN ERROR, caso as condies no forem satisfeitas!

Escrito por Mrcio Brener - http://www.geocities.com/marcio-brener

Criando & Definindo os Dados

63Validao do Campo A validao permite apenas a gravao se o usurio for Adm ou Super, caso contrrio informa ao usurio "Usuario invalido! Apenas permitido para Adm ou Super".

TriggersO que um Trigger?Um Trigger, como na prpria traduo da palavra, um "gatilho" que disparado para eventos da tabela ou campo como CREATE, UPDATE e DELETE, e a partir da verso 8 do Progress estes mesmos eventos para Replicao de dados. O Trigger um mecanismo mais sofisticado e completo para validao de CAMPOS ou TABELAS. Ele uma procedure em Progress, um arquivo a parte do banco de dados que disparado para os eventos de CRIAO, DELECO de uma tabela ou ATUALIZAO de um campo.

I Os Triggers em Progress so arquivos no armazenadosno banco de dados. As informaes armazenadas so apenas localizao e verificao do contedo ao contrrio de outros bancos como MS-SQL Server, DB/2 ou Oracle. Ento sempre mantenha os Trigger bem armazenados e seguros!

A prxima tela exemplifica a sintaxe de um Trigger. Escrito por Mrcio Brener - http://www.geocities.com/marcio-brener

64

Dominando o Progress

Propriedades do Trigger

Evento/Propriedade Event

Descrio

Define qual o evento executara o trigger: ASSIGN, DELETE ou UPDATE Informa o arquivo do Trigger

Procedure

J

Use sempre a localizao definida pelo PROPATH com barra do tipo UNIX,

Escrito por Mrcio Brener - http://www.geocities.com/marcio-brener

Criando & Definindo os Dados exemplo: inc/cliente.pCheck CRC

65

Verifica se o Trigger foi alterado depois de definido no banco de dados. Informe se o Trigger pode ser editado ou modificado mesmo durante utilizao.

Overridable

I A ordem de execuo dos procedimentos no banco deCriando ndices

dados Progress : Validao do Campo (Validation), Trigger do Campo e Trigger da Tabela do banco de dados, respectivamente nesta ordem.

Escrito por Mrcio Brener - http://www.geocities.com/marcio-brener

66

Dominando o Progress

A criao, bem como a manuteno de ndices em Progress totalmente simplificada. Ao contrrio de outros bancos de dados como MS-SQL Server, por exemplo, voc no precisa especificar diversos parmetros e atributos como taxa de crescimento, organizao fsica, e outros apenas atributos bsicos.

Propriedade Index Name

Descrio

Nome do ndice para identificao com at 32 caracteres alfanumricos. Deve iniciar por uma letra, no deve conter letras invlidas como , , , como tambm caracteres reservados.

Escrito por Mrcio Brener - http://www.geocities.com/marcio-brener

Criando & Definindo os DadosDescription Primary

67

Texto descritivo ou informativo para o ndice Define que o ndice ser o padro utilizado para procuras ou ordenao da tabela. Pode haver apenas um ndice primrio para a tabela, e esse ndice tambm no pode ser excludo. Para excluir um ndice primrio voc deve definir qual outro ndice ser primrio antes de efetuar a excluso.

Active

Define o ndice como Ativo ou Inativo. Caso o ndice esteja inativo ele no ser atualizado automaticamente, como tambm no poder ser utilizado para pesquisa ou ordenao.

Unique

Informa que no ser aceita duplicao de valores no ndice.

M Caso

voc defina um campo tipo CHARACTER como case-sensitive e crie um ndice nico para este campo, ele aceitar valores duplicados, ainda que no idnticos, exemplo: Maria/maria, Joao/joao,etc que o ndice nico sempre a Chave Primria (Primary Key) para o relacionamento entre

Lembre-se

Escrito por Mrcio Brener - http://www.geocities.com/marcio-brener

68

Dominando o Progress tabelas!

Word Index

Define um ndice para campo do tipo CHARACTER organizado por palavras contidas em cada registro.

Este

ndice consome bastante espaos em disco, como tambm onera bastante a performance do banco, sendo aconselhado apenas se realmente no houver uma outra soluo.

Abbreviated

Cria um ndice abreviado para campo tipo CHARACTER utilizando apenas algumas palavras ou caracteres iniciais do contedo do campo. Define a ordem para um campo dentro do ndice. Como padro inicial todos os campos so definidos como ascendentes.

Ascending ou Desceding

Escrito por Mrcio Brener - http://www.geocities.com/marcio-brener

Criando & Definindo os Dados

69

Aparncia do Campo (View-As)Em Progress os campos so objetos intrnsecos, com caractersticas como tipo de visualizao, ou em outras palavras tipo de objeto.

Voc pode definir por exemplo que o campo lgico sexo 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 o campo faa o teste com o cdigo abaixo:Exemplo: create cliente. update cliente.sexo.

Escrito por Mrcio Brener - http://www.geocities.com/marcio-brener

Dominando o Progress Tipos disponveis: COMBO-BOX, EDITOR, SELECTIONLIST, FILL-IN, TEXT e RADIO-SET 70

SequencesO que so Sequences?Um Sequence nada mais que um contador que pode 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 CREATE utilizando uma as funes NEXT-VALUE ou CURRENTVALUE.Exemplo:

TRIGGER PROCEDURE FOR Create OF Customer. /* Automaticamente define um novo cdigo para o cliente*/ ASSIGN Customer.Cust-Num = NEXT-VALUE(Next-Cust-Num).

J

A modelagem dos dados uma das principais etapas para o sucesso de qualquer aplicativo. Ento faa seu modelo da melhor maneira possvel afim de evitar problemas ou retrabalho posterior!

Escrito por Mrcio Brener - http://www.geocities.com/marcio-brener

Criando & Definindo os Dados

71

MetaschemaO que o Metaschema?Metaschema ou Metadados so tabelas de tabelas, isto , so tabelas intrnsecas do prprio banco de dados que 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 ser consultadas facilmente atravs do Data Administration, opo Reports, Detailed Tables e marcando a opo Show Hidden. O funcionamento e relacionamento destas tabelas so facilmente manipulados para qualquer tipo de consulta ou alterao de algumas informaes.

Escrito por Mrcio Brener - http://www.geocities.com/marcio-brener

72

Dominando o ProgressTabelas do Metaschema

_Db _Field _Field-Trig _File _File-Trig _Index

Informaes do Banco de Dados Informaes sobre campos das tabelas Informaes sobre triggers dos campos Informaes sobre as tabelas do banco Informaes sobre os triggers das tabelas Informaes sobre os ndices das tabelas

_Index-Field Informaes sobre os campos dos ndices _Sequence _User _View _View-Col _View-Ref Fluxograma

Informaes sobre os sequences Informaes sobre os usurios do banco Informaes sobre Views Informaes sobre os campos das Views Informaes sobre as tabelas das Views

Escrito por Mrcio Brener - http://www.geocities.com/marcio-brener

Criando & Definindo os Dados

73

Captulo 4

Aprendendo a linguagemDesenvolvendo o cdigoO primeiro programaComo tradio entre os programadores o nosso primeiro programa ser o "HELLO WORLD!", escreva o texto de cdigo mostrado abaixo, escolha o menu Compile e opo Run.display "Hello World!".

Para salvar o programa em linguagem Progress chamado procedure escolha o menu File opo Save As, coloque em um diretrio de trabalho e defina um nome com 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 bastante interativa, ele automaticamente lhe disponibiliza mensagens de tela, formatos, validaes e visualizao que j foram previamente estabelecidas no banco de dados, o que lhe pouca um grande trabalho como tambm torna mais fcil a padronizao de um sistema. Escrito por Mrcio Brener - http://www.geocities.com/marcio-brener

Dominando o Progress Voc pode fazer um programa de insero apenas com uma linha de cdigo, exemplo: insert customer (pronto esta criado um programa de insero). 74

Conectando o banco de dadosAps 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 MultiUsurio. Iniciaremos uma conexo mono-usurio, que mais simples e ideal para testes em geral. No Data Administration escolha o menu Database opo 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 banco fsico. Pode-se tambm conectar um banco por cdigo no Procedure Editor, exemplo: Sintaxe: CONNECT db [Localizao do banco] 1 .... Escrito por Mrcio Brener - http://www.geocities.com/marcio-brener

Criando & Definindo os Dadosconnect db c:\arquivos\sports.db -1

75

criando um programa para incluso O cdigo abaixo exemplifica um programa bastante simples 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 comando WITH SIDE-LABELS define que o texto dos campos esto alinhados ao lado esquerdo da rea de atualizao dos mesmo, utilizando tambm o formato, informao ou ajuda no rodap da janela e validao j definidos.

Escrito por Mrcio Brener - http://www.geocities.com/marcio-brener

Dominando o Progress Note que a aparncia da tela a devida configurao com aspecto do Progress verso 6, parmetros V6Frame, V6Colon, ... 76

Escrito por Mrcio Brener - http://www.geocities.com/marcio-brener

Criando & Definindo os Dados

77

Aprendendo a sintaxeDefinindo variveisSINTAXE 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 da especificao do tipo de dado. Uma varivel para o Progress uma entidade como atributos e eventos, ou seja, um Objeto(Widget). Na varivel possvel configurar todos os atributos de um Objeto como por exemplo LABEL, COR, FORMATO, VISUALIZAO, EVENTOS, etc.

Escrito por Mrcio Brener - http://www.geocities.com/marcio-brener

78 PARMETROS

Dominando o Progress

NEW SHARED VARIABLE Varivel Define uma varivel a ser compartilhada entre procedures, diretamente ou indiretamente a partir da declarao atual. A procedure chamada tem que nomear a mesma varivel em informando que est j est previamente instanciada. NEW GLOBAL VARIABLE Varivel Define uma varivel a ser compartilhada entre todas as procedures previamente executadas SHARED VARIABLE Varivel Define um varivel que foi previamente criada por um procedure anterior com as clusulas DEFINE NEW SHARED VARIABLE ou DEFINE NEW GLOBAL SHARED VARIABLE [Declaraes]. VARIABLE Varivel Define uma varivel cujo valor s est disponvel dentro da procedure atual. AS Tipo Indica o Tipo de Varivel a ser definida. Os tipos so CHARACTER, DATE, DECIMAL, HANDLE, INTEGER, LOGICAL, MEMPTR, RAW, RECID, ROWID e WIDGETHANDLE.

Escrito por Mrcio Brener - http://www.geocities.com/marcio-brener

Criando & Definindo os Dados LIKE Campo de Dado

79

Indica que a varivel a ser definida herdar todas as caractersticas do campo original escolhido. Os atributos/valores herdados so FORMAT, LABEL, COLUMNLABEL, INITIAL, DECIMALS, EXTENT e VIEW-AS Opo. NO-UNDO Quando um valor de uma varivel mudada durante uma transao e est desfeita, o Progress restaura o seu valor anterior. Caso voc a varivel no seja definida com esta atribuio o valor no ser reiniciado caso seja desfeita a transao. Para melhor performance use esta opo apenas quando necessrio, porque no NO-UNDO adiciona um novo elemento a ser manipulado na transao o que onera mais a aplicao. BGCOLOR n Especifica a cor de fundo da varivel para um ambiente grfico. Esta opo ignorada em ambiente caracter. [NOT] CASE-SENSITIVE Indica que a varivel faz distino entre Maisculas e Minsculas em uma comparao que a utilize. Por padro a varivel no distingue a caixa da letra. Para trocar o atributo de sensibilidade caixa do texto use NOT CASE-SENSITIVE.

Escrito por Mrcio Brener - http://www.geocities.com/marcio-brener

80

Dominando o Progress

COLUMN-LABEL Texto Texto do identificao a ser exibido com a varivel. Caso voc queira usar mais de uma linha na exibio deste use uma exclamao (!) antes do texto a ser exibido na linha inferior.define variable nome as character column-label "Nome do!Cliente". update nome.

DCOLOR n Especifica a cor dos caracteres da varivel para um ambiente grfico. Esta opo ignorada em ambiente caracter. DECIMALS n Especifica o nmero de casas decimais de 0 a 10 para uma varivel do tipo decimal. Como padro o Progress atribui automaticamente 10 casas decimais se esta declarao for omitida. EXTENT n Declara uma varivel com um Array e define o seu tamanho no limite de 28000 elementos. Para remover o atributo de Array de uma varivel defina seu tamanho como 0. FGCOLOR n Especifica a cor de fundo da varivel para um ambiente grfico. Esta opo ignorada em ambiente caracter.

Escrito por Mrcio Brener - http://www.geocities.com/marcio-brener

Criando & Definindo os Dados FONT n Especifica a fonte de apresentao da varivel. FORMAT Expresso

81

Especifica o formato para a aprensentao e uso da varivel. INITIAL Expresso Especifica o valor inicial de uma varivel. No pode ser atribudo o valor de uma funo ou constante Progress. LABEL Texto Define o texto de exibio da varivel. Use & para sublinhar a letra usada na tecla de acelerao utilizada pelo 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 na atualizao ou exibio da varivel. PFCOLOR n Especifica a cor da varivel na atualizao por declarao PROMPT-FOR. Esta opo ignorada em interfaces grficas. VIEW-AS Expresso Define o tipo de visualizao ou objeto da varivel.

Escrito por Mrcio Brener - http://www.geocities.com/marcio-brener

82 TRIGGER

Dominando o Progress

Define os eventos utilizados na atualizao da varivel.define variable nome as character triggers: on return message 'Fim da atualizacao' view-as alert-box. end. update nome.Exemplo

/* ex0031.p */ define variable dia as integer format "9" initial 1 triggers: 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 dia ano mes.

Escrito por Mrcio Brener - http://www.geocities.com/marcio-brener

Criando & Definindo os Dados

83

View-AsDefine o tipo do objeto da varivel mostrada na tela. 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 ser apresentada como um Combo-Box. Pode conter valores tipo Caracter, Inteiro, Decimal, Lgico e Data. EDITOR Visualizao tipo Editor de Texto para um campo ou varivel. 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. o tipo de visualizao/objeto padro para atualizao de um campo ou varivel no Progress.

Escrito por Mrcio Brener - http://www.geocities.com/marcio-brener

84 RADIO-SET

Dominando o Progress

Mostrado com uma srie de opes para escolha de apenas uma. Pode receber valor tipo Caracter, Inteiro, Decimal, Lgico e Data. SELECTION-LIST Visualizao como uma lista para seleo. Apenas aceita valores caracter e apta a mltiplas selees. TEXT Indica que um campo ou varivel ser apenas um texto exibido na tela, sem nenhuma manipulao ou atualizao do contedo. TOGGLE-BOX Exibe com uma Caixa de Opo com valor lgico YES/NO. Aceita apenas valor lgico.Exemplo

/* ex0032.p */ define variable texto as character view-as editor inner-lines 20 inner-chars 60 scrollbar-vertical scrollbar-horizontal column-label 'Editor de Texto' no-undo mouse-pointer "glove". define variable meses as character format "x(12)" view-as combo-box list-items 'Janeiro','Fevereiro','Marco', 'Abril','Maio','Junho','Julho', 'Agosto','Setembro','Outubro', 'Novembro','Dezembro'

Escrito por Mrcio Brener - http://www.geocities.com/marcio-brener

Criando & Definindo os Dadosinitial 'Maio'.

85

define variable salvar as logical label 'Salva Informacao' view-as toggle-box initial yes format "Sim/Nao". define variable dia as character view-as selection-list inner-lines 7 inner-chars 12 list-items 'Domingo','Segunda','Terca','Quarta', 'Quinta','Sexta','Sabado' initial 'Terca'. define variable ano as integer view-as radio-set radio-buttons "1998", 1998, "1999", 1999. form texto meses dia ano salvar with frame f-editor title "Edicao de Texto" row 2 centered overlay view-as dialog-box side-labels.assign input input input input input frame frame frame frame frame f-editor f-editor f-editor f-editor f-editor texto:tooltip meses:tooltip dia:tooltip ano:tooltip salvar:tooltip = = = = = 'Edite seu texto' 'Escolha um mes' 'Escolha um dia' 'Escolha um ano' 'Salva informacao'.

update texto meses dia ano salvar with 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:" texto view-as alert-box.

Escrito por Mrcio Brener - http://www.geocities.com/marcio-brener

86

Dominando o Progress

Definindo FramesSINTAXE DEFINE [[NEW] SHARED] FRAME Nome do Frame [Item1, Item2, Item n, ...] [{HEADER|BACKGROUND} Item1, Item2, Item n, ...] WITH [ACCUM [Tamanho Mximo] [AT Posio] [ATTR-SPACE|NO-ATTR-SPACE] [CANCEL-BUTTON Boto] [CENTERED] [COLOR] [COLUMN n] [n COLUMNS] [DEFAULT-BUTTON Boto] [[n] DOWN] [EXPORT] [FONT n] [FRAME Nome do Frame] [KEEP-TAB-ORDER] [NOBOX] [NO-HIDE] [NO-LABELS] [USE-DICT-EXPS] [NO-VALIDATE] [NO-HELP] [NO-UNDERLINE] [OVERLAY] [PAGE-BOTTOM|PAGE-TOP] [RETAIN n] [ROW n] [SCREEN-IO|STREAM-IO] [SCROLL n] [SCROLLABLE] [SIDE-LABELS] [SIZE n BY n] [STREAM Stream] [THREE-D] [TITLE Texto] [TOPONLY] [USE-TEXT] [V6FRAME [USE-REVVIDEO|USEUNDERLINE]] [VIEW-AS DIALOG-BOX] [WIDTH n] [IN WINDOW Janela] Um Frame na linguagem Progress um formulrio ou simplismente Form. Ele um objeto tipo container, onde outros objetos esto acoplados ou sobrepostos, igual por exemplo uma janela do MS-Windows com diversas caixas de textos, botes, labels, e outros. A janela acima equivale a um frame que possui diversos objetos em seu interior, inclusive outros frames. Escrito por Mrcio Brener - http://www.geocities.com/marcio-brener

Criando & Definindo os Dados

87

PARMETROS NEW SHARED FRAME Nome do Frame Declara que o frame sera compartilhados diretamente ou indiretamente pela procedure atual e outras executadas posteriormente. Para as novas procedures usarem a definio deve-se ento declarar da mesma forma com DEFINE SHARED FRAME Nome do Frame. SHARED FRAME Nome do Frame Obtem a definio de um frame previamente criado por uma procedure anterior. Quando utililizado DEFINE SHARED FRAME voc no deve acrescentar ou alterar qualquer caracterstica previamente estipulada, caso voc queira que o frame tenha as mesmas condies prdefinidas, porque s declaraes atribudas se tornaro parte do frame ao retornar procedure anterior ou ao executar novas procedures. ITEM

Escrito por Mrcio Brener - http://www.geocities.com/marcio-brener

Dominando o Progress o objeto a ser adicionado ao frame. Este Objeto(Widget) pode ser um desses tipos: FILL-IN, COMBO-BOX, SELECTION-LIST, SLIDER, FRAME, RECTANGLE, TOGGLE-BOX, RADIO-SET, EDITOR, OBJETO-COM ou TEXT, com as seguintes atribuies: 88 ATRIBUTOS DOS ITENS AT ROW n COLUMN n [LEFT|COLON|RIGHT-ALIGED] Define a linha e coluna aonde estar posicionado o objeto dentro doframe com as opes de alinhamento Esquerda, pelo Texto informativo ou Direita. TO n Especifica que o posicionamento do objeto ser de uma posio n para trs. BGCOLOR n Cor de background do objeto em interface grfica. DCOLOR n Cor do objeto em interface grfica. FGCOLOR n Cor do primeiro plano do objeto em ambiente grfico.

Escrito por Mrcio Brener - http://www.geocities.com/marcio-brener

Criando & Definindo os Dados FONT n Fonte do objeto em ambiente grfico. PFCOLOR

89

Cor de prompt-for para o objeto em ambiente grfico. VIEW-AS Tipo Tipo de objeto para exibio/atualizao na tela. SPACE(n) n espaos em branco. SKIP(n) n saltos de linha. LABEL Texto Texto informativo a ser exibido com o objeto. COLUMN-LABEL Texto Texto informativo a ser exibico com objeto mostrado em colunas. TABELA/REGISTRO Representa uma tabela ou um registro individual a ser acrescentado ao frame.

Escrito por Mrcio Brener - http://www.geocities.com/marcio-brener

90

Dominando o Progress EXCEPT Campo n, Campo n No acrescenta n campos de uma tabela em um frame - os coloca como exceo. HEADER [PAGE-TOP| PAGE-BOTTOM| BACKGROUND] Define o frame como um cabealho,rodap ou objeto de fundo. PAGE-TOP/PAGE-BOTTOM Apresenta o frame na parte superior/inferior da sada de impresso Tela, Arquivo ou Impressora. BACKGROUND Especifica que o frame sera mostrado como objeto de fundo. Tipicamente usado para apresentao de imagens ou retangulos. ACCUM Acumula valores do frame usando as funes MAX, MIN, TOTAL e SUBTOTAL ATTR-SPACE/NO-ATTR-SPACE Reserva/No Reserva espao(s) para o elemento/texto dentro do frame CANCEL-BUTTON Nome do boto padro de cancelamento dentro do frame

Escrito por Mrcio Brener - http://www.geocities.com/marcio-brener

Criando & Definindo os Dados CENTERED Centraliza o frame na tela COLOR Especificao da cor. WHITE, BLUE, GRAY, YELLOW, RED, GREEN, etc ESPECIFICAO FONTE E FUNDO AMBIENTE GRFICO(GUI INTERFACE) BGCOLOR background FGCOLOR foreground AMBIENTE CARACTER(TTY INTERFACE) DCOLOR background PFCOLOR foreground ROW n Linha inicial do frame COLUMN n Coluna inicial do frame n COLUMNS Nmero de colunas do frame DEFAULT-BUTTON

91

Boto padro do frame ao pressionar Return/Enter Escrito por Mrcio Brener - http://www.geocities.com/marcio-brener

92 [n] DOWN

Dominando o Progress Nmero de vezes que os mostrados/rolados no frame EXPORT Esta expresso s vlida para instruo SQL FONT n Nmero da fonte a ser utilizada no frame, apenas para interfaces grficas(Windows, Motif, OS/2, Linux, etc) KEEP-TAB-ORDER Mantm a ordem(zorder) dos elementos do frame ao uso do Enter ou TAB NO-BOX Desabilita a borda do frame. Esta opo no pode ser declarada com a especificao TITLE Texto Ttulo do frame NO-HIDE No apaga o frame para a prxima apresentao do mesmo NO-LABELS Desabilita os labels dos elementos contidos no frame elementos sero

Escrito por Mrcio Brener - http://www.geocities.com/marcio-brener

Criando & Definindo os Dados NO-UNDERLINE

93

Inibe o sublinhado sob os labels quando mostrados em coluna. NO-VALIDATE Dasabilita as validaes contidas nos elementos do frame. OVERLAY Mantm todos os frames de fundo, este parmetro deve ser usado sempre na declarao do frame RETAIN n Nmero de vezes para visualizao/rolagem dos elementos dentro do frame. SCREEN IO/STREAM IO Define a sada do frame TELA ou STREAM SCROLL n Nmero de vezes que os elementos do frame sero exibidos dentro do mesmo. SCROLLABLE Define auto scroll para o frame, ou seja, cria utomaticamente as barras de rolagem no frame SIDE-LABELS Mostra os labels dos elementos ao lado dos mesmos

Escrito por Mrcio Brener - http://www.geocities.com/marcio-brener

94 THREE-D

Dominando o Progress

Mostra o frame em aparncia 3DExemplo: define variable c-nome as character format "x(30)" label "Nome".

form c-nome at row 2 column 12 colon-aligned with frame f-janela3d title "Exemplo de Janela 3D" three-d side-labels view-as dialog-box size 50 by 5. update c-nome with frame f-janela3d.

TITLE Texto Ttulo do frame a ser exibido V6FRAME/USE-REVVIDEO/USE-UNDERLINE Tipo do frame. Aparncia utilizada na verso Progress 6, Cor reversa ou Habilita sublinhado VIEW-AS DIALOG-BOX Mostra o frame como uma janela tipo pop-up WIDTH n Largura do frame no mximo de 640 caracteres

Escrito por Mrcio Brener - http://www.geocities.com/marcio-brener

Criando & Definindo os Dados IN WINDOWN Janela

95

Mostra o frame em uma janela especfica. A janela padro a janela atual(CURRENT-WNDOW)

Definindo QueriesO qu uma Query?Query uma pesquisa e/ou seleo de dados nicos, relacionados ou agrupados a serem utilizados em um Browse de registros. DEFINE QUERY Define uma query que pode ser aberta com (OPEN QUERY) ou (GET) e associado a um BROWSE. SINTAXE DEFINE [[NEW] SHARED] QUERY Nome da Query FOR Buffer [Campos][, Buffer [Campos]]... [CACHE n] [SCROLLING] PARMETROS NEW SHARED QUERY Nome da Query Define a query como compartilhada entre procedures SHARED QUERY Nome da Query Redefine uma query j definida em uma procedure anterior QUERY Nome da Query Escrito por Mrcio Brener - http://www.geocities.com/marcio-brener

96

Dominando o Progress Atribui o nome da query

FOR Buffer [Campos]