Escolar Documentos
Profissional Documentos
Cultura Documentos
Re visã o Té cnica
Í ndice
Capítulo 1 ............................................................ 20
Apresentando o Progress........................................ 20
O que é o Progress? ....................................................... 20
Como funciona?.............................................................. 21
I nstalando o software..................................................... 22
Apresentando os aplicativos............................................ 26
Capítulo 2 ............................................................ 33
Configuração do Produto ........................................ 33
Configuração do Progress no Windows ........................... 33
O arquivo progress.ini ................................................... 35
Listagem do Arquivo progress.ini .................................... 36
Configurando o Progress para UNI X................................ 42
Variáveis de ambiente .................................................... 42
Arquivos ......................................................................... 47
Arquivos comuns .......................................................... 47
Arquivos temporários .................................................... 47
Banco de Dados............................................................ 48
Sessão cliente .............................................................. 49
Protocolos disponíveis..................................................... 49
Capítulo 3 ............................................................ 50
Criando & Definindo os Dados................................. 50
Criando um banco de dados ........................................... 50
Apresentando o Progress
Arquit et ura de
aplicação
Desk t op
É um aplicativo desenvolvido em Progress 4GL
modo gráfico que apresenta os botões dos
aplicativos Progress disponíveis.
Arquivo: _desk.p
Procedure Editor
Arquivo _ edit.p
Data Dictionary
Arquivo: _dict.p
User Configuration
Arquivo: _script.p
Report Builder
Arquivo: _uib.p
Configuração do Software
Configuração na Regist ry
[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\bin
OLD-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
Configuração do 37
color6=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]
;***********************************************************************
; 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\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 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,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
Configuração do 39
Macro8=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
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]
Configuração do 41
DefMeas=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
Va r iá ve is de a m bie n t e
Variável Definição
Exemplo
Parâm etros
EVTLEVEL= BRI EF
( UN I X )
PA TH = $ PA TH : $ D LC: $ D LC/ b i n : / m a g n u s : / r h p l u s
e x p o r t PA T H
( D OS/ Wi n d o w s)
S ET PA T H = % PA T H % ; % D LC% ; % D LC% / b i n ; M : \MAGNUS; M:\RHPLUS
PROAPSV=/$DLC/bin/_proapsv (UNIX)
Exemplo
(DOS/Windows)
SET PROPATH=%PATH%;%DLC%;%DLC%\BIN;M:\MAGNUS
(UNIX)
PROPATH=/usr/bin:$PATH:$DLC:$DLC/bin:/magnus
export PROPATH
(DOS/Windows)
PROSTARTUP=M:\magnus\magnus.pf
(UNIX)
PROSTARTUP=/magnus/magnus.pf
export PROSTARTUP
Exemplo
(UNIX)
TERM=vt200 ; export TERM
Ar quivos
Ar qu ivos com u n s
.d Dados de t abelas
.v Validação
Ba n co de D a dos
. ai Aft er −I m age
Se ssã o clie n t e
.p Procedure
.w Pr ocedur e UI B ( Window s)
.i Arquivo include
NETBI OS TCP/ I P
SNA DECnet
SPX TLI
CTOS
Capítulo 3
Exemplo:
Em Progress o banco
de dados é const it uído
de, pelo m enos, dois
ar quiv os básicos, o
próprio Banco de Dados
com ext ensão DB e o
Cont r ole de Tr ansações
com ex t ensão BI
( Before- I m age) .
Cr ia ndo um a t a be la
Propriedade Descrição
þ I ndependente da plataforma o
arquivo para DUMP será sempre
tamanho 8 e por padrão o Progress
ao exportar o arquivo definirá a
extensão D(arquivo de dados =
dump.d) e DF(arquivo de definições =
dump.df). I sso para manter
Propriedade Descrição
Validação do
Campo
A validação permite
apenas a gravação
se o usuário for Adm
ou Super, caso
contrário informa ao
usuário "Usuario
invalido! Apenas
permitido para Adm
ou Super".
Tr igge r s
O qu e u m Tr igge r ?
Propriedades do Trigger
Cr ia ndo índice s
Propriedade Descrição
create cliente.
update cliente.sexo.
Se qu e n ce s
O qu e sã o Se qu e n ce s?
Com o u sa r u m Se qu e n ce ?
M e t a sche m a
O qu e é o M e t a sch e m a ?
Tabelas do M et aschem a
Fluxogram a
Capítulo 4
Aprendendo a linguagem
O pr im e ir o pr ogr a m a
repeat:
insert customer with 1 columns.
end.
Apr e n de n do a sin t a x e
D e fin in do v a r iá v e is
SI NTAXE
DEFI NE
[ [ NEW [ GLOBAL] ] SHARED] VARI ABLE variável
{ { AS Tipo} | { LI KE Cam po} } { [ NO- UNDO]
[ BGCOLOR n] [ COLUMN- LABEL Text o] [ DCOLOR n]
[ DECI MALS n] [ EXTENT n] [ FONT n] [ FGCOLOR n]
[ FORMAT Text o]
[ I NI TI AL const ant e | [ const ant e[ ,const ant e] ...] } } ]
[ LABEL Text o[ , Text o] ...]
[ MOUSE- POI NTER ex pr essão]
[ [ NOT] CASE- SENSI TI VE] [ PFCOLOR n]
[ VI EW- AS Tipo] } [ TRI GGERS]
PARÂMETROS
AS Tipo
LI KE Cam po de Dado
NO- UNDO
BGCOLOR n
DCOLOR n
DECI MALS n
EXTENT n
FGCOLOR n
FONT n
FORMAT Expressão
I NI TI AL Expressão
LABEL Texto
PFCOLOR n
VI EW - AS Expressão
TRI GGER
Exemplo
/* ex0031.p */
update dia
ano
mes.
V ie w - As
COMBO- BOX
EDI TOR
FI LL
RADI O- SET
SELECTI ON- LI ST
TEXT
TOGGLE- BOX
/* ex0032.p */
form texto
meses
dia
ano
salvar
with frame f-editor
title "Edicao de Texto"
row 2 centered overlay
view-as dialog-box
side-labels.
update texto
meses
dia
ano
salvar
with frame f-editor.
PARÂMETROS
I TEM
AT ROW n COLUMN n
[ LEFT| COLON| RI GHT- ALI GED]
TO n
BGCOLOR n
DCOLOR n
FGCOLOR n
FONT n
PFCOLOR
VI EW - AS Tipo
SPACE( n)
n espaços em branco.
SKI P( n)
n salt os de linha.
LABEL Texto
BACKGROUND
ACCUM
CANCEL- BUTTON
COLOR
Especificação da cor .
BGCOLOR – background
FGCOLOR – foreground
DCOLOR – background
PFCOLOR – foreground
ROW n
Linha inicial do fr am e
COLUMN n
Coluna inicial do fr am e
n COLUMNS
DEFAULT- BUTTON
EXPORT
FONT n
NO- BOX
TI TLE Texto
Tít ulo do fr am e
NO- HI DE
NO- LABELS
OVERLAY
RETAI N n
SCREEN I O/ STREAM I O
SCROLL n
SCROLLABLE
SI DE- LABELS
THREE- D
update c-nome
with frame f-janela3d.
TI TLE Texto
VI EW - AS DI ALOG- BOX
W I DTH n
I N W I NDOW N Janela
D e finindo Que r ie s
O qu ê é u m a Qu e r y ?
DEFI NE QUERY
Usando FI ELDS( )
define query q-customer for customer fields(cust-num name).
Usando EXCEPT( )
define query q-customer for customer except(balance).
CACHE n
SCROLLI NG
BROW SES
Define o nom e do br ow se
NO- W AI T
OPÇÕES DE DI SPLAY
SI NTAXE
Nom e do Cam po, Var iável ou Expr essão
[ FORMAT Form at o] [ { LABEL Text o} | NO- LABELS]
[ COLUMN- LABEL Text o] [ COLUMN- BGCOLOR Cor]
[ COLUMN- DCOLOR Cor] [ COLUMN- FGCOLOR Cor]
[ COLUMN- FONT Font e] [ COLUMN- PFCOLOR Cor]
PARÂMETROS
NO- LABELS
ENABLE Cam po
HELP Texto
W I DTH n
OPÇÕES DO BROW SE
SI NTAXE
n DOWN
W I DTH n
SI ZE x by y
NO- LABELS
NO- BOX
FONT Fonte
Define a font e do br ow se
/* ex0036 */
update b-customer.
OPEN QUERY
SI NTAXE
OPEN QUERY Nom e da Query { FOR| PRESELECT}
EACH Regist ro [ , { EACH| FI RST} Regist ro]
[ [ BY Regist ro ou Expressão DESCENDI NG] ]
[ I NDEXED- REPOSI TI ON]
[ MAX- ROWS n Colunas]
PARÂMETROS
EACH | FI RST
I NDEXED- REPOSI TI ON
/* ex0038 */
end.
ASSI GN
PARÂMETROS
WHEN Expressão
NO- ERROR
Registro EXCEPT
I nfor m a os r egist r o que não ser ão afet ado pelo com ando
ASSI GN
OUTPUT
Habilit a a saída de dados par a im pr essão, ar quiv o ou ár ea
de t r ansfer ência quando em am bient e MS- Window s
SI NTAXE
OUTPUT [ STREAM Nom e da St ream ] TO
{ PRI NTER| Arquivo| Disposit ivo|
TERMI NAL| VALUE( expression) |
" CLI PBOARD" }
[ APPEND] [ ECHO| NO- ECHO] [ KEEP- MESSAGES]
[ NO- MAP| { MAP Ent rada do Prot erm Cap} ]
[ PAGED]
[ PAGE- SI ZE { Const ant e| VALUE( Expressão) } ]
[ UNBUFFERED]
[ NO- CONVERT|
{ CONVERT [ TARGET Código de Página]
[ SOURCE Código de Página] } ]
PARÂMETROS
PRI NTER
Arquivo
Dispositivo
Term inal
Value
"Clipboard"
APPEND
KEEP- MESSAGES
PAGED
PAGE- SI ZE
UNBUFFERED
NO- CONVERT
/* ex0039.p */
form header
display customer.cust-num
customer.name
customer.address
customer.city
customer.phone
customer.sales-rep
with column 15 width 130.
end.
output close.
I N PUT
Habilit a a ent r ada de dados a par t ir de um ar quiv o
SEEK
SEEK( I NPUT)
SEEK( OUTPUT)
input close.
display posicao.
SEEK
SEEK I NPUT
SEEK OUTPUT
TO n| END
Exem plo:
set t ex t o.
input close.
Eve nt os
List a de Eve n t os
A N Y - K EY
Aplica- se pa ra :
end.
update nome.
A N Y - P R I N T A BLE
Aplica- se pa ra :
BA CK S P A CE
Aplica- se pa ra :
FI LL- I N
BA CK - T A B
Aplica- se pa ra :
BELL
Aplica- se pa ra :
BROWSE I MAGE
BUTTON RADI O- SET
COMBO- BOX RECTANGLE
DI ALOG- BOX SELECTI ON- LI ST
EDI TOR SLI DER
FI ELD- GROUP TEXT
FI LL- I N TOGGLE- BOX
FRAME WI NDOW
CH O O S E
Aplica- se pa ra :
CLEA R
FI LL- I N
D EFA U LT - A CT I O N
Aplica- se pa ra :
D ELET E- CH A R A CT ER
Aplica - se pa ra :
FI LL- I N
D ES ELECT I O N
Aplica- se pa ra :
EM P T Y - S ELECT I O N
Aplica- se pa ra :
EN D - BO X - S ELECT I O N
Aplica- se pa ra :
EN D - ER R O R
EN D - ER R O R EV EN T
Applies To:
BROWSE I MAGE
BUTTON RADI O- SET
COMBO- BOX RECTANGLE
EN D - M O V E
Aplica- se pa ra :
EN D - R ES I Z E
Aplica- se pa ra :
EN D K EY
Aplica- se pa ra :
BROWSE I MAGE
BUTTON RADI O- SET
COMBO- BOX RECTANGLE
DI ALOG- BOX SELECTI ON- LI ST
EDI TOR SLI DER
FI ELD- GROUP TEXT
FI LL- I N TOGGLE- BOX
FRAME WI NDOW
EN T R Y
Aplica- se pa ra :
BROWSE FRAME
BUTTON RADI O- SET
COMBO- BOX SELECTI ON- LI ST
DI ALOG- BOX SLI DER
EDI TOR TOGGLE- BOX
FI LL- I N WI NDOW
ER R O R
Aplica- se pa ra :
BROWSE I MAGE
BUTTON RADI O- SET
GO
Aplica- se pa ra :
BROWSE I MAGE
BUTTON RADI O- SET
COMBO- BOX RECTANGLE
DI ALOG- BOX SELECTI ON- LI ST
EDI TOR SLI DER
FI ELD- GROUP TEXT
FI LL- I N TOGGLE- BOX
FRAME WI NDOW
Exemplo:
form customer.cust-num
customer.name
with frame f-customer side-labels
row 3 centered title "Alteracao".
H ELP
Aplica- se pa ra :
BROWSE I MAGE
BUTTON RADI O- SET
COMBO- BOX RECTANGLE
DI ALOG- BOX SELECTI ON- LI ST
EDI TOR SLI DER
FI ELD- GROUP TEXT
FI LL- I N TOGGLE- BOX
FRAME WI NDOW
I T ER A T I O N - CH A N GED
Aplica- se pa ra :
LEA V E
Aplica- se pa ra :
BROWSE FRAME
BUTTON RADI O- SET
COMBO- BOX SELECTI ON- LI ST
DI ALOG- BOX SLI DER
EDI TOR TOGGLE- BOX
FI LL- I N WI NDOW
LEFT - M O U S E- CLI CK
Aplica- se pa ra :
LEFT - M O U S E- D BLCLI CK
Aplica- se pa ra :
LEFT - M O U S E- D O W N
Aplica- se pa ra :
LEFT - M O U S E- U P
Aplica- se pa ra :
M EN U - D R O P
Aplica- se pa ra :
M I D D LE- M O U S E- CLI CK
Aplica- se pa ra :
M I D D LE- M O U S E- D BLCLI CK
Aplica- se pa ra :
M I D D LE- M O U S E- D O W N
Aplica- se pa ra :
M I D D LE- M O U S E- U P
Aplica- se pa ra :
M O U S E- EX T EN D - CLI CK
Aplica- se pa ra :
M O U S E- EX T EN D - D BLCLI CK
Aplica- se pa ra :
M O U S E- EX T EN D - D O W N
Aplica- se pa ra :
M O U S E- EX T EN D - U P
Aplica- se pa ra :
M O U S E- M EN U - CLI CK
Aplica- se pa ra :
M O U S E- M EN U - D BLCLI CK
Aplica- se pa ra :
M O U S E- M EN U - D O W N
Aplica- se pa ra :
M O U S E- M EN U - U P
Aplica- se pa ra :
BROWSE MENU- I TEM
BUTTON RADI O- SET
COMBO- BOX RECTANGLE
DI ALOG- BOX SELECTI ON- LI ST
EDI TOR SLI DER
FI ELD- GROUP SUB- MENU
FI LL- I N TEXT
FRAME TOGGLE- BOX
I MAGE WI NDOW
MENU
M O U S E- M O V E- CLI CK
Aplica- se pa ra :
M O U S E- M O V E- D BLCLI CK
Aplica- se pa ra :
M O U S E- M O V E- D O W N
Aplica- se pa ra :
M O U S E- M O V E- U P
Aplica- se pa ra :
M O U S E- S ELECT - CLI CK
Aplica- se pa ra :
M O U S E- S ELECT - D BLCLI CK
Aplica- se pa ra :
M O U S E- S ELECT - D O W N
Aplica- se pa ra :
M O U S E- S ELECT - U P
Aplica- se pa ra :
N EX T - FR A M E
Aplica- se pa ra :
BROWSE FI LL- I N
BROWSE CELL RADI O- SET
BUTTON SELECTI ON- LI ST
COMBO- BOX SLI DER
EDI TOR TOGGLE- BOX
O FF- EN D
Aplica- se pa ra :
BROWSE
O FF- H O M E
Aplica- se pa ra :
BROWSE
P R EV - FR A M E
Aplica- se pa ra :
BROWSE FI LL- I N
BROWSE CELL RADI O- SET
BUTTON SELECTI ON- LI ST
COMBO- BOX SLI DER
EDI TOR TOGGLE- BOX
R ECA LL
Aplica- se pa ra :
R ET U R N
Aplica- se pa ra :
R I GH T - M O U S E- CLI CK
Aplica- se pa ra :
R I GH T - M O U S E- D BLCLI CK
Aplica- se pa ra :
R I GH T - M O U S E- D O W N
Aplica- se pa ra :
R I GH T - M O U S E- U P
Aplica- se pa ra :
S ELECT I O N
Aplica- se pa ra :
S T A R T - BO X - S ELECT I O N
Aplica- se pa ra :
START- MOV E
Aplica- se pa ra :
S T A R T - R ES I Z E
Aplica- se pa ra :
TAB
Aplica- se pa ra :
BROWSE FI LL- I N
BROWSE CELL RADI O- SET
BUTTON SELECTI ON- LI ST
COMBO- BOX SLI DER
V A LU E- CH A N GED
Aplica- se pa ra :
W I N D O W - CLO S E
Aplica- se pa ra :
W I N D O W - M A X I M I Z ED
Aplica- se pa ra :
WI NDOW
W I N D O W - M I N I M I Z ED
WI NDOW
W I N D O W - R ES I Z ED
Aplica- se pa ra :
WI NDOW
W I N D O W - R ES T O R ED
Aplica- se pa ra :
WI NDOW
Preprocessa dores
{&p-exemplo}
Ut iliz a çã o
Preprocessador
Expressão
Preprocessador
Expressão
select
& UN DEFI N E
Exem plo
&scoped-define p-exemplo ‘Exemplo de Preprocessador’
&undefine p-exemplo
display {&p-exemplo}.
Ope r a dor e s
M ESSAGE
PARÂMETROS
COLOR Cor
Texto
Tex t o da m ensagem .
SKI P ( n)
BUTTONS Botões
TI TLE Texto
AUTO- RETURN
I N W I NDOW Janela
Cr ia ndo M EN US
M EN U
PARÂMETROS
NEW SHARED
SHARED
BGCOLOR Cor
DCOLOR Cor
FGCOLOR
PFCOLOR
FONT Fonte
MENUBAR
TI TLE Texto
LI KE Menu
I tem do Menu
RULE
SKI P
I tem do Menu
ACCELERATOR Tecla( s)
BGCOLOR Cor
DCOLOR Cor
DI SABLED
FGCOLOR
PFCOLOR
LABEL
FONT Fonte
READ- ONLY
TOGGLE- BOX
Trigger
form customer
with frame f-customer 1 columns
BOTÕES
SI NTAXE
DEFI NE BUTTON Bot ão [ AUTO- GO| AUTO- ENDKEY]
[ DEFAULT] [ BGCOLOR Cor] [ DCOLOR Cor]
[ FGCOLOR Cor] [ FONT Font e]
[ I MAGE- DOWN I m agem ] [ { I MAGE| I MAGE- UP}
I m agem ]
[ I MAGE- I NSENSI TI VE I m agem ]
[ MOUSE- POI NTER Pont eir o] [ LABEL Text o]
[ LI KE Bot ão] [ PFCOLOR Cor]
[ SI ZE Largura BY ALTURA] [ NO- FOCUS]
[ NO- CONVERT- 3D- COLORS]
[ TOOLTI P Text o] [ TRI GGER]
PARÂMETROS
AUTO- GO
AUTO- ENDKEY
DEFAULT
BGCOLOR Cor
FGCOLOR Cor
DCOLOR Cor
PFCOLOR Cor
FONT Fonte
LABEL Texto
LI KE Botão
SI ZE Largura BY Altura
NO- FOCUS
TRI GGER
SINTAXE
UPDATE [UNLESS-HIDDEN]
[{Tabela|Campo|Variável [Formato] [WHEN Expressão]}|
{VIEW-AS Tipo)}|
{Campo|Variável = Expressão n }|{[AT Coluna|TO Coluna
COLON-ALIGNED|LEFT-ALIGNED|RIGHT-ALIGNED]}|
{^}|{SPACE [(n)]}|{SKIP [(n)]}]...
[GO-ON(Key-Label...)] [Frame] [EDITING:]
[NO-ERROR]
PARÂM ETROS
[ UNLESS- HI DDEN]
W HEN Expressão
VI EW - AS Tipo
AT Coluna | TO Coluna
SPACE( n)
SKI P n
Fram e
EDI TI NG
NO- ERROR
Exem plo
Par âm et r os
St re
Lim it es do Progress
Ba n co de D a dos
Blocos Máxim o
512 2048
1024 4096
2048 8192
4096 16384
BLOCOS M ÁXI M O
V ARI ÁV EI S
I N TEGER - 2,147,483,648 at é
+ 2,147,483,647.
N OM EN CLATURAS
WI NDOWS: 1 - 255
Funçõe s
ABSOLUTE
ACCUM
/* ex0001.p */
ALI AS
AM BI GUOUS
/* ex0002.p */
/* O resultado do find retorná mais de uma ocorrência */
find customer where customer.name begins "a" no-error.
if available customer then
message "Apenas um valor encontrado" view-as alert-box.
else if ambiguous customer then
message "Mais de um valor encontrado" view-as alert-box.
else
ASC
SI N TAXE
/* ex0003.p */
/* Retorna 231 */
message asc("ç") view-as alert-box.
/* Retorna 254 */
message asc("ç", "iso8859-1", "ibm850") view-as alert-box.
/* Retorna 135 */
message asc("ç", "ibm850", "iso8859-1") view-as alert-box.
AVAI LABLE
CAN - D O
SI N TAXE
CAN - FI N D
SI N TAXE
ou
/* ex0004.p */
repeat:
prompt-for customer.cust-num
with frame f-customer.
find customer using input frame f-customer
customer.cust-num.
update customer.name
with frame f-customer.
end.
CAN - QUERY
SI N TAXE
/* ex0005.p */
CAN - SET
/* Retorna Falso */
message can-set(session:handle, "list-items") view-as alert-box.
/* Retorna Verdadeiro */
message can-set(session:handle, "data-entry-return") view-as alert-box.
EN COD E
SI N TAXE
SI N TAXE
CON N ECTED
SI N TAXE
COUN T- OF
/* ex0010.p */
for each customer no-lock break by state:
display cust-num name sales-rep state.
accumulate state (sub-count by state).
if last-of(state) then
display 100 * (accum sub-count by state state) /
count-of(state) format ">>9.9999%"
(total) column-label "% Total de!Consumidores"
with title "Vendas por Estados" centered.
end.
pause.
CURREN T- CH AN GED
SI N TAXE
/* ex0011.p */
assign session:data-entry-return = yes.
/*
Para observar este exemplo adequadamente
abra duas janelas do Procedure Editor, entao
execute este codigo nas duas janelas.
Visualize o valor na primeira, e na segunda
altere o valor e tente altera-lo novamente na
primeira. Sera retornada uma advertencia
informando que o valor visualizado na primeira
janela nao mais condiz com o valor do registro
atual.
*/
form customer.name
customer.balance
with frame f-update row 5 centered title "Mudanca de Valores".
SI N TAXE
/* ex0012.p */
CURREN T- ROW - M OD I FI ED
SI N TAXE
CURREN T- VALUE
SI N TAXE
D ATASERV ERS
D ATE
Exemplo
/* 31 de Janeiro de 2019 */
display date("31/01/2019") format "99/99/9999".
display date(01, 31, 2019) format "99/99/9999".
pause.
D AY
D BCOD EPAGE
SI N TAXE
SI N TAXE
D BN AM E
D BPARAM
SI N TAXE
do i = 1 to num-dbs:
display "Banco:" to 12 pdbname(i) format "x(60)" skip
"Logico:" to 12 ldbname(i) format "x(60)" skip
"Parametros:" to 12 dbparam(i) format "x(60)".
pause.
end.
D BRESTRI CTI ON S
SI N TAXE
do i = 1 to num-dbs:
display "Banco:" to 12 pdbname(i) format "x(60)" skip
"Logico:" to 12 ldbname(i) format "x(60)" skip
"Parametros:" to 12 dbparam(i) format "x(60)"
"Restricoes:" to 12 dbrestrictions(i) format "x(60)".
pause.
end.
D BTASKI D
SI N TAXE
D BTYPE
SI N TAXE
do i = 1 to num-dbs:
display "Banco:" to 12 pdbname(i) format "x(60)" skip
"Logico:" to 12 ldbname(i) format "x(60)" skip
"Parametros:" to 12 dbparam(i) format "x(60)" skip
"Restricoes:" to 12 dbrestrictions(i) format "x(60)" skip
"Tipo:" to 12 dbtype(i) format "x(60)".
pause.
end.
D BVERSI ON
SI N TAXE
/* ex0013.p */
define variable i as integer no-undo.
do i = 1 to num-dbs:
display "Banco:" to 12 pdbname(i) format "x(60)" skip
"Logico:" to 12 ldbname(i) format "x(60)" skip
"Parametros:" to 12 dbparam(i) format "x(60)" skip
"Restricoes:" to 12 dbrestrictions(i) format "x(60)" skip
"Tipo:" to 12 dbtype(i) format "x(60)" skip
"Versao:" to 12 dbversion(i) format "x(60)" with
frame f-informacao centered row 5
title "Informacoes dos Bancos de Dados".
pause.
end.
D ECI M AL
D EFI N ED
D YN AM I C- FUN CTI ON
SI N TAXE
Exem plo
/* ex0014.p */
do i = 1 to extent(nfuncao):
message dynamic-function(nfuncao[i]) view-as alert-box.
end.
repeat:
form nome
with frame f-update.
EN TRY
SI N TAXE
pause 0 before-hide.
/* Zera o Timer */
etime(yes).
EX P
/* 2 elevado ao cubo */
display exp(2, 3).
pause.
EX TEN T
do i = 1 to extent(dia):
message dia[i] view-as alert-box.
end.
FI LL
repeat:
update nome.
display nome skip
fill('*', length(nome)) format "x(30)".
end.
FI RST
FI RST- OF
/* ex0016.p */
for each order no-lock
break by order.order-num:
if first-of(order.order-num) then do:
find customer of order no-lock.
display customer.cust-num
customer.name
order.order-num
with centered title "Ordem".
FRAM E- COL
FRAM E- D B
FRAM E- D OW N
/* ex0018.p */
define variable resposta as logical format "Sim/Nao".
assign resposta = yes.
repeat:
find next customer no-error.
display customer.cust-num
customer.name
with 15 down centered row 3.
FRAM E- FI ELD
FRAM E- FI LE
FRAM E- I N D EX
FRAM E- N AM E
FRAM E- ROW
/* ex0020.p */
display "^" with frame f-teste.
FRAM E- VALUE
GATEW AYS
GET- BYTE
GET- COLLATI ON S
SI N TAXE
/* ex0022.p */
define variable i as integer.
define variable j as integer.
do i = 1 to num-entries(get-codepages):
display entry(i, get-codepages) format "x(20)".
do j = 1 to num-entries(get-collations(entry(i, get-
codepages))):
display entry(j, get-collations(entry(i, get-
codepages)))
with 20 down centered.
down.
end.
end.
GET- D OUBLE
GET- LON G
SI N TAXE
GET- SH ORT
GET- SI ZE
GET- UN SI GN ED - SH ORT
I N D EX
update letra.
I N TEGER
SI N TAXE
I S- ATTR- SPACE
KBLABEL
repeat:
display
keyfunction(lastkey) format "x(20)" label
"Funcao" at 01
kblabel(keyfunction(lastkey)) format "x(20)" label
"Tecla(s)" at 25.
KEYCOD E
repeat:
display
keyfunction(lastkey) format "x(20)" label "Funcao" at 01
kblabel(keyfunction(lastkey)) format "x(20)" label "Tecla(s)" at 25
keycode(keyfunction(lastkey)) format "->>>9" label "Codigo" at 70.
pause.
end.
KEYFUN CTI ON
/* ex0021.p */
find first customer.
message "Frente e Traz muda o registro".
repeat:
find current customer.
display cust-num
name
address
city
state
postal-code
with centered row 3 overlay
frame f-customer 1 columns.
set address
city
if keyfunction(lastkey) = "cursor-right" or
keyfunction(lastkey) = "cursor-left" then
do:
case keyfunction(lastkey):
when "cursor-right" then find next customer.
when "cursor-left" then find prev customer.
end.
display cust-num
name
address
city
state
postal-code
with frame f-customer.
end.
end.
end.
KEYLABEL
/* ex0023.p */
/* Tecle F3 para ver melhor o resultado */
repeat:
display
keyfunction(lastkey) format "x(20)" label "Funcao" at 01
KEYW ORD
LAST
LASTKEY
LAST- OF
LC
SI N TAXE - LC( Te x t o) Ca r a ct e r
LD BN AM E
SI N TAXE
LEN GTH
Ret or na o t am anho de um t ex t o.
LI N E- COUN TER
LI ST- EV EN TS
SI N TAXE
LI ST- W I D GETS
SI N TAXE
LOCKED
Exem plo
LOG
LOOKUP
SI N TAXE
assign dia =
'Domingo,Segunda,Terca,Quarta,Quinta,Sexta,Sabado'.
M AXI M UM
SI N TAXE
M ESSAGE- LI N ES
do i = 1 to message-lines:
message "Esta é a linha" i.
end.
M I N I M UM
SI N TAXE
M ON TH
Ret or na o m ês de um a dat a.
N EW
create customer.
if new customer then
message "Novo registro" view-as alert-box.
find first customer.
if new customer then
message "Novo registro" view-as alert-box.
N EX T- VALUE
display next-value(next-cust-num).
N OT EN TERED
SI N TAXE
N UM - ALI ASES
N UM - D BS
N UM - EN TRI ES
'Julho,Agosto,Setembro,Outubro,Novembro,Dezembro'.
do i = 1 to num-entries(mes):
display entry(i, mes) format "x(20)".
pause.
end.
N UM - RESULTS
SI N TAXE
OPSYS
display opsys.
OS- ERROR
os-create-dir value("c:\temp\teste.txt").
if os-error NE 0 then
message 'Erro nº' os-error view-as alert-box.
OS- GETEN V
/* ex0024.p */
output to 'teste.txt' paged page-size 40.
form header 'Pagina nº' page-number format '>>9'
with frame f-cabecalho page-top.
PAGE- SI ZE
PD BN AM E
SI N TAXE
/* ex0025.p */
define variable i as integer initial 1.
PROGRESS
SI N TAXE - PROGRESS [ r e t or no Ca r a ct e r ]
PROM SGS
/* ex0026.p */
diretorios:list-items = propath.
PROV ERSI ON
QUERY- OFF- EN D
/* ex0027.p */
open query q-customer preselect each customer no-lock.
repeat:
get next q-customer.
RAN D OM
SI N TAXE
/* ex0028.p */
/*
Este exemplo simula o preenchimento
de 100 jogos da Sena, baseados na
geracao de numeros aleatorios
*/
combinacao:
do while njogos < 100:
do i = 1 to 6:
if (combinacao[i] = combinacao[1] and i <> 1) or
(combinacao[i] = combinacao[2] and i <> 2) or
(combinacao[i] = combinacao[3] and i <> 3) or
(combinacao[i] = combinacao[4] and i <> 4) or
(combinacao[i] = combinacao[5] and i <> 5) or
(combinacao[i] = combinacao[6] and i <> 6) then
next combinacao.
end.
create jogos.
assign jogos.n = njogos
jogos.n1 = combinacao[1]
jogos.n2 = combinacao[2]
jogos.n3 = combinacao[3]
jogos.n4 = combinacao[4]
jogos.n5 = combinacao[5]
jogos.n6 = combinacao[6].
end.
RECI D
/* ex0029.p */
update b-customer.cust-num.
display customer.cust-num
b-customer.cust-num.
end.
REPLACE
SI N TAXE
/* ex0030.p */
RETRY
repeat:
prompt-for customer.cust-num.
find customer using cust-num.
RETURN - VALUE
run teste.
display return-value.
pause.
procedure teste:
return 'Exemplo de Retorno'.
end.
RI GH T- TRI M
R- I N D EX
/*
Retorno igual a 7, ou seja,
a terceira letra A
*/
ROUN D
ROW I D
SCREEN - LI N ES
SD BN AM E
SI N TAXE - SEARCH ( Te x t o) Ca r a ct er
SEEK
SETUSERI D
SI N TAXE
SQRT
update valor.
STRI N G
SUBSTI TUTE
SI N TAXE
/* ex0009.p */
message substitute("&1 Amor, &2 Beijos, &3 Coracao, &4 Desejos",
SUBSTRI N G
SI N TAXE
Ex t r ai um a subcadeia de um t ex t o.
/* ex0008.p */
define variable texto as character.
assign texto = "Powered by Progress".
TERM I N AL
TI M E
TO- ROW I D
/* ex0007.p */
define buffer b-customer for customer.
for each customer no-lock:
find b-customer where
rowid(b-customer) = to-rowid(string(rowid(customer))).
TRAN SACTI ON
/*
A primeira vez e nao sera uma transacao
e as restantes serão
*/
do:
message transaction view-as alert-box.
pause.
repeat transaction:
message transaction view-as alert-box.
pause.
end.
end.
TRI M
TRUN CATE
SI N TAXE
USERI D
SI N TAXE
V ALI D - EV EN T
SI N TAXE
V ALI D - H AN D LE
W EEKD AY
/* ex0006.p */
define variable dia as character extent 7
initial["Domingo", "Segunda", "Terca", "Quarta",
"Quinta", "Sexta", "Sabado"].
W I DGET- H AN D LE
YEAR
Capítulo n
PRO
Arquivo: PRO.BAT
@echo off
:BIN
if not "%PROEXE%"=="" goto START
set PROEXE=_progres
:START
if "%DISPBANNER%"=="no" goto NOBANNER
type %DLC%\hello
:NOBANNER
type %DLC%\version
%PROEXE% -1 -p _prostar.p %1 %2 %3 %4 %5 %6 %7 %8 %9
set DISPBANNER=
:END
PROAI W
P R O BI W
P R O BCK U P
PARÂMETROS
online
Database
increm ental
Dispositivo
- estim ate
- vs n
- bf n
- verbose
- scan
- io i
- com
- red i
- g Before- I m age
P R O CO P Y
PROD B
Pa râ m et ros do Progress
Exem plo
( Codigo)
connect - db spor t s - 1.
Mínim o: 1
Padrão m ulti- usuário: 1
-b Batch ( Cliente)
Exem plo
Mínim o: 1 0
Máxim o: 5 0 0 .0 0 0
Padrão m ono- usuário: 2 0
Padrão m ulti- usuário: ( 8 x n
Usuários)
Mínim o: 3
Padrão m ulti- usuário: 5
Mínim o: 10
Máxim o: 5 0 .0 0 0
Exem plo
Padrão: iso8 8 5 9 - 1
Padrão: ibm 8 5 0
Padrão: iso8 8 5 9 - 1
Mínim o: 5
Máxim o: 5 0 0
Padrão m ono- usuário: 1 0 0
Padrão m ulti- usuário: 1 0 0
Padrão: Progress
Mínim o: 0
Padrão: 1 2 8
Mínim o: 6 0
Mínim o: 1
Máxim o: 2 4 0
Padrão: 5
Mínim o: 1
Máxim o: 2 0 0 0
Padrão de acordo com o Sistem a
Operacional
-i No Crash Protection
Padrão: 4 0 9 6 caracteres
Exem plo
Mensagem de erro
Mínim o: 0
Máxim o: 3 2 7 6 8
Padrão m ono- usuário: 0
Padrão m ulti- usuário: 0
Mínim o: 1
Máxim o: 5 1 2
Mínim o: 96
Máxim o: 3 2 .0 0 0
Padrão m ulti- usuário: 1 0 1 2
Mínim o: 1
Máxim o: m em ória física disponível
Padrão m ulti- usuário: 1 5 kilobytes
+ ( n * 300)
- NL No Lock ( Cliente)
-o Printer ( Cliente)
im pressora
Define o nom e/ dev ice da im pr essor a a
ser ut ilizado em um scopo de im pr essão.
Exem plo:
( código)
Mínim o: 0
Padrão m ulti- usuário: 1 0 0
Mínim o: 0
Padrão m ulti- usuários: 1
Mínim o: 0
Padrão m ulti- usuário: 4 % de buffers ( -
B)
Mínim o: 0
Padrão m ulti- usuário: 1
Mínim o: 0
Padrão m ulti- usuários: 2 5
-r Buffered I / O ( Servidor)
Mínim o: 1
Máxim o: 2
Padrão: 1
Mínim o: 3
Máxim o: 6 3
Padrão: 4 0
I gual ao par âm et r o –S
Padrão: ibm 8 5 0
Mínim o: 1
M á x im o: 3 1
Pa drã o: 2
Pa dr ã o: 2 5
Pa drã o: 3
Mínim o: 3
M á x im o: 3 1
Pa dr a o: 1 2
Mínim o: 1
M á x im o: 3 2
Pa drã o: 5
Máxim o: 1 .6 0 0
Padrão: 1 0 2 4
-y Statistics ( Cliente)
Exem plo
Mínim o: 1 1 0 0
Máxim o: 9 9 0 0
Padrão: 1 9 5 0
Banco de Dados
Multi− Volumes
For m a çã o do a r qu ivo de e st r u t u r a
B ( Bef or e- I m age) On d e X é o t i p o d o
ar q u iv o e n é a seqüência
A ( Af t er - I m ag e) d o m esm o e f é u m a
co n st a n t e
Arquivo info.st
d info.d1 f 2048
d info.d2 f 2048
d info.d3 f 2048
d info.d4
b info.b1 f 1024
b info.b2
a info.a1 f 1024
a info.a2
Cr ia ndo o Ba nco
MAGNUS
Apr e se nt a çã o
CDP Cadast r os
I GP Gráficos
I NC Tr igges e I ncludes
AJP Aj uda
OUTROS...
Funciona m e nt o do M EN U
Exemplo
/* ex0036.p */
display entry(lookup(programa.programa,
c-programas),
'a,b,c,d,e,f,g,h,i,j,k,l,m')
programa.programa
programa.permissao format "x(40)"
with no-box no-labels.
end.
end.
end.
/**********************************************************
* Programa...: ACESSOMG.P
* Programador: Marcio Brener
* Finalidade.: Consistencia das permissoes para execucao
* de programas
* Data.......:
**********************************************************/
define input parameter c-programa like programa.programa.
/* fim do programa */
Exemplo
/* ex0034.p */
/*
Este programa concede permissão somente aos usuários
ADM e SUPER para modificação de dados
*/
/* Banco Administrativo */
for each mgadm._file
where mgadm._file._file-name <> "maxusadm" and
mgadm._file._file-name <> "prog-log" and
mgadm._file._file-name <> "log-mensagem"
exclusive-lock:
/* Banco Comercial */
for each mgcom._file exclusive-lock:
assign mgcom._file._can-create = "adm,super"
mgcom._file._can-delete = "adm,super"
mgcom._file._can-write = "adm,super"
mgcom._file._can-read = "*"
mgcom._file._can-dump = "adm,super"
mgcom._file._can-load = "adm,super".
/* Banco Industrial */
/* fim do programa */
m ga dm 8 0 3 0 / t cp
m gcom 8 0 3 1 / t cp
m gind 8 0 3 2 / t cp
1 7 2 .3 5 .1 .1 0 servidor_ m agnus
m ga dm 8 0 3 0 / t cp
m gcom 8 0 3 1 / t cp
m gind 8 0 3 2 / t cp
- db i0 0 adm
- ld m gadm
- p m enu7 .p
ALV O
I N I CI AR EM
Cria r Ba ncos pa ra
Te st e s/ D e se nvolvim e nt o
Cr ia n do os ba n cos
J Caso você precise fazer uma cópia para testes, mas não
possa finalizar o banco em produção faça um BACKUP
ON- LI NE e o restaure na área de testes! Sintaxe:
BACKUP
UN I X AI X
#Script para Backup dos Bancos de Dados MAGNUS
cd /bases/magnus
DLC=/sistemas/dlc ; export DLC
PATH=/usr/bin:$DLC:$DLC/bin ; export PATH
#Trunca o Before-Image
proutil i00adm -C truncate bi
proutil i00com -C truncate bi
proutil i00ind -C truncate bi
#fim do script
W in dow s N T
REM Script para Backup dos Bancos de Dados MAGNUS
@echo off
net send DOMÍNIO "Senhores usuários o backup esta send
iniciado. Finalize seu trabalho!"
d:
cd \bases\magnus
set DLC=c:\sistemas\dlc
set PATH=%PATH%;%DLC%;%DLC%/bin
/* ex0035.p */
Capítulo n
N e t Te r m
F1 ^ [ OP GO
F2 ^ [ OQ H ELP
F3 ^ [ OR I N SERT- M ODE
F4 ^ [ OS EXI T
F5 ^G GET
F6 ^P PUT
F7 ^ [ [ 18~ RECALL
F8 ^ [ [ 19~ CLEAR
F9 ^N NEW - LI N E
F1 0 ^D DELETE- LI N E
F1 1 ^ [B BREAK- LI N E
F1 2 ^A APPEN D- LI N E
PCa se
Vipe r
ERW in
Visua l PCL
P R O GR ES S S O FT W A R E U S A
ht t p: / / www.progress.com
P R O GR ES S S O FT W A R E BR A S I L
D ATASUL
P R O GR ES S E- M A I L GR O U P
ht t p: / / www.peg.com
I N S CR EV A - S E N O U S ER GR O U P
Faça sua inscr ição no Pr ogr ess User Mail nest e link :
P R O GR ES S H O M E P A GE
S O BR E ES T E LI V R O
U S A N D O P R O GR ES S N O LI N U X
P ER FO R M A N CE
S LI D ES E A P R ES EN T A ÇÕ ES
D ES EN V O LV ED O R ES EM P R O GR ES S
BA S E D E CO N H ECI M EN T O S P R O GR ES S
( K N O W LEGED BA S E P R O GR ES S )