8/18/2019 0.2 - Comandos de Saída e DeclaraçSes
http://slidepdf.com/reader/full/02-comandos-de-saida-e-declaracses 1/31
TreinamentoComandos de Saída e Declarações
8/18/2019 0.2 - Comandos de Saída e DeclaraçSes
http://slidepdf.com/reader/full/02-comandos-de-saida-e-declaracses 2/31
Comandos de Saída e Declarações – Introdução
– Parte 1: Comandos de Saída
– WRITE e SKIP
– Formatação
– Snta!e
– "EW#P$%E
– &cones e sím'olos
– Te!tos de ca'eçal(o – Te!t s)m'ols *Sím'olos de te!to+
8/18/2019 0.2 - Comandos de Saída e DeclaraçSes
http://slidepdf.com/reader/full/02-comandos-de-saida-e-declaracses 3/31
Comandos de Saída e Declarações – Parte , – Declarações de Dados
– T-os elementares
– Declarando .ar/.es
– 0alores ncas
– sando o 23IKE4
– Constantes
– T-os de Dados de5ndos -elo su/ro
– Taman(o de saída e aln(amento -adrão – Saída de cam-os num6rcos
8/18/2019 0.2 - Comandos de Saída e DeclaraçSes
http://slidepdf.com/reader/full/02-comandos-de-saida-e-declaracses 4/31
Comandos de Saída e Declarações – $tr'undo .alores
– E!-ressões $rtm6tcas
– Re5erencando -artes de cam-os
– Parameters
– Te!tos de seleção
– Feld#S)m'ols *sím'olos de cam-o+
– Strn7s e Feld S)m'ols
– $ssnalação Dn8mca de Cam-os*D)namc Feld $ss7nment+
8/18/2019 0.2 - Comandos de Saída e DeclaraçSes
http://slidepdf.com/reader/full/02-comandos-de-saida-e-declaracses 5/31
Introdução
Esta apresentação fará uma introduçãode comandos simples de saída para
relatório e de declaração de variáveis.
8/18/2019 0.2 - Comandos de Saída e DeclaraçSes
http://slidepdf.com/reader/full/02-comandos-de-saida-e-declaracses 6/31
Parte 1:Comandos de Saída
8/18/2019 0.2 - Comandos de Saída e DeclaraçSes
http://slidepdf.com/reader/full/02-comandos-de-saida-e-declaracses 7/31
WRITE e SKIP
WRTE ! o comando "ue imprime uma variável# campo ou te$to literalna saída do pro%rama &output'.
( utili)ação sucessiva de WRTE causará a saída na mesma lin*a at!a lin*a ficar c*eia. Em se%uida a saída
continuará na lin*a de +ai$o., comando S- fa) com "ue uma lin*a em +ranco se/a inserida. 0possível inserir mais de uma lin*a em +ranco &S- 1n2'.
E$istem variáveis especiais c*amadas variáveis de sistema.Elas são definidas na estrutura S3ST e são
referenciadas usando4se S341nome do campo2.
REPORT ZPRIMEIRO.
WRITE ‘Primeiro relatório’.
SKIP 1.
WRITE : ‘Data:’,
SY-DATM.
!t"t#lo $o %ro&rama'
------------------------
Primeiro relatório
Data: (1)(1)*((1
Códi%o Saída
Ca+eçal*o
padrão
8/18/2019 0.2 - Comandos de Saída e DeclaraçSes
http://slidepdf.com/reader/full/02-comandos-de-saida-e-declaracses 8/31
Formatação
nserindo 567 após o WRTE indica uma "ue+ra de lin*a.Tam+!m ! possível indicar a posição e o taman*o da saída com o
comando WRTE 1posição2&taman*o'.89:E cria uma lin*a *ori)ontal com a posição e lar%ura dese/ada., sufi$o 8:DER permite imprimir a saída diretamente a+ai$o deum campo6variável "ue /á ten*a sido impresso# mas para isso !
necessário inserir uma "ue+ra de lin*a.
REPORT ZPRIMEIRO. WRITE ‘Primeiro relatório’.
SKIP 1.
WRITE : + ‘Data at#al:’, SY-DATM,
) + ‘ora:’,
SY-ZEIT DER SY-DATM.IE )+/+(0.
!t"t#lo $o %ro&rama' ------------------------
Primeiro relatório
Data at#al: (1)(1)*((1
ora: 11:*(:(1 ------------------------------
Códi%o Saída
8/18/2019 0.2 - Comandos de Saída e DeclaraçSes
http://slidepdf.com/reader/full/02-comandos-de-saida-e-declaracses 9/31
Snta!e
9 WRTE 1formato2 1valor2 1opções2.
Tam+!m ! possível inserir opções e$tras de formatação nocomando WRTE# al%umas delas são;
– 9E<T4=8ST<ED > alin*a ? es"uerda. – R@AT4=8ST<ED > alin*a ? direita. – CE:TERED > centrali)a &necessário especificar o taman*o'. – :,4@( > retira os espaços entre os campos. – 8S:@ EDT B(S- > especifica um formato de saída.
– 8S:@ :, EDT B(S- > desa+ilita todos os formatos de saída. – :,4ER, > remove )eros "ue este/am ? es"uerda# trocando porespaços.
8/18/2019 0.2 - Comandos de Saída e DeclaraçSes
http://slidepdf.com/reader/full/02-comandos-de-saida-e-declaracses 10/31
"EW#P$%E
, comando :EW4(@E inicia uma pá%ina nova a "ual terá oca+eçal*o e$i+ido novamente.
Se o ca+eçal*o padrão não foi suprimido&com :, ST(:D(RD (@E AE(D:@'# a numeração de pá%ina
&S34(@:,' será e$i+ida acrescida de uma unidade.
RESERE 1n2 9:ES se asse%ura "ue 1n2 lin*as serão impressasna mesma pá%ina# caso contrário essas lin*as serão impressas
na pró$ima pá%ina.
8/18/2019 0.2 - Comandos de Saída e DeclaraçSes
http://slidepdf.com/reader/full/02-comandos-de-saida-e-declaracses 11/31
&cones e sím'olos
ara ser possível imprimir ícones e sím+olos no relatório deve4sedeclarar os includes C,: ¶ ícones' e S3B,9 ¶
sím+olos' no pro%rama.Em se%uida# usa4se o
WRTE 1ícone2 (S C,: ouWRTE 1sím+olo2 as S3B,9.
,s pro%ramas SA,WC,: e SA,WS3B e$i+em a lista%emcompleta de ícones e sím+olos do ((.
,+s.; ara as versões mais recentes recomenda4se usar ocomando T3E4,,9S para declarar os includes para ícones e
sím+olos.
8/18/2019 0.2 - Comandos de Saída e DeclaraçSes
http://slidepdf.com/reader/full/02-comandos-de-saida-e-declaracses 12/31
Te!tos de ca'eçal(o
(cessando4se Goto -> Text elements -> List headings pode4seeditar o te$to de ca+eçal*o das pá%inas e tam+!m at! F lin*as de
título de ca+eçal*o das colunas.
8/18/2019 0.2 - Comandos de Saída e DeclaraçSes
http://slidepdf.com/reader/full/02-comandos-de-saida-e-declaracses 13/31
Te!t s)m'ols *Sím'olos de te!to+
Sím+olos de te$to são como macros de te$to. Eles sãoreferenciados com um nGmero se"Hencial no pro%rama e
mantidos ? parte.Iuando um sím+olo de te$to ! usado na verdade ! o seu
conteGdo "ue vai ser e$i+ido.
Sím+olos de te$to são muito utili)ados para manter te$tos emlin%ua%em diferentes. , mesmo sím+olo ! utili)ado no pro%ramamas o te$to "ue o su+stitui na saída depende da lin%ua%em do
usuário.
ara referenciar um te$to no pro%rama usa4se TEJT4JJJ ou1strin% de te$to2&JJJ'# onde 5JJJ7 ! um nGmero de trKs dí%itos.
(cessa4se os sím+olos de te$to usando4se@oto 42 Te$t elements 42 Te$t sLm+ols ou clicando4se duas ve)es
em um elemento de te$to /á referenciado.
8/18/2019 0.2 - Comandos de Saída e DeclaraçSes
http://slidepdf.com/reader/full/02-comandos-de-saida-e-declaracses 14/31
Te!t s)m'ols *Sím'olos de te!to+
REPORT ZPRIMEIRO.
WRITE ‘Primeiro relatório’.
SKIP 1. WRITE : TET-((1.
WRITE : ‘Primeiro Te2to’/((10.
8/18/2019 0.2 - Comandos de Saída e DeclaraçSes
http://slidepdf.com/reader/full/02-comandos-de-saida-e-declaracses 15/31
8/18/2019 0.2 - Comandos de Saída e DeclaraçSes
http://slidepdf.com/reader/full/02-comandos-de-saida-e-declaracses 16/31
T-os elementares
São os se%uintes os tipos elementares de dados do ((;
9 Caractere &tLpe C' > Te$to de taman*o variável e mínimo de M.9 Te$to num!rico &tLpe :' > Te$to "ue ! tratado como nGmero
internamente# de taman*o variável e mínimo de M.9 nteiro &tLpe ' > :Gmero inteiro.9 acNed &tLpe ' > 8sado em cálculos com valores monetários.9 onto flutuante &tLpe <' > :Gmero de ponto flutuante# usado para
arma)enar valores de %raned ma%nitude.9 Data &tLpe D' > ermite arma)enar datas no formato ((((BBDD.9 Time &tLpe T' > ermite arma)enar *otas no formato AABBSS.
9 Ae$adecimal &tLpe J' > <ormato *e$adecimal de taman*o variável emínimo de M.
,+s.; E$istem dois novos tipos STR:@ e R(WSTR:@ "ue secomportam como con/untos de caracteres.
8/18/2019 0.2 - Comandos de Saída e DeclaraçSes
http://slidepdf.com/reader/full/02-comandos-de-saida-e-declaracses 17/31
Declarando .ar/.es
9 D(T( 1variável2&1taman*o2' T3E 1tipo2 (98E 1padrão2
, taman*o ! opcional e só ! definido em variáveis "ue podem tero taman*o especificado; C# :# e J.
(98E define o valor inicial de uma variávele ! i%ualmente opcional.
Declarar uma variável sem o tipo indica "ue ! do tipo padrão C# seessa variável não tiver taman*o definido então o taman*o
padrão ! M.
S(CE ! uma palavra reservada no S("ue si%nifica espaços em +ranco.
( função STR9E: pode ser utili)ada para determinar a lar%ura deuma variável caractere.
8/18/2019 0.2 - Comandos de Saída e DeclaraçSes
http://slidepdf.com/reader/full/02-comandos-de-saida-e-declaracses 18/31
8/18/2019 0.2 - Comandos de Saída e DeclaraçSes
http://slidepdf.com/reader/full/02-comandos-de-saida-e-declaracses 19/31
sando o 23IKE4
8sando4se 9-E ao inv!s de T3E em declarações ! possível criarvariáveis6estruturas com o mesmo tipo e taman*o de umavariável6estrutura /á e$istente.
,s valores padrões não são copiados.
REPORT ZPRIMEIRO.
DATA : W3OME/+(0 TYPE 4 5AE ‘5AOR II4IA’,
W3APE/+(0 TYPE 4,
W3DATA TYPE D.
REPORT ZPRIMEIRO.
DATA : W3OME/+(0 TYPE 4 5AE ‘5AOR II4IA’,
W3APE/+(0 IKE W3OME,
W3DATA IKE SY-DATM.
8/18/2019 0.2 - Comandos de Saída e DeclaraçSes
http://slidepdf.com/reader/full/02-comandos-de-saida-e-declaracses 20/31
Constantes
9 C,:ST(:TS 1const2&1taman*o2' T3E 1tipo2 (98E 1padrão2
Constantes são valores imutáveis dentro de um pro%rama
"ue são associados a uma palavra c*ave. Seus nomes devemcomeçar com 5C7 e podem ter no má$imo P caracteres.Constantes são declaradas com a palavra c*ave C,:ST(:TS# a
sinta$e ! +em similar ? da declaração de variáveis.(98E deve ser sempre especificado nesse caso.
( adição 9-E tam+!m pode ser usada da mesma forma "ue emdeclaração de variáveis.
8/18/2019 0.2 - Comandos de Saída e DeclaraçSes
http://slidepdf.com/reader/full/02-comandos-de-saida-e-declaracses 21/31
T-os de Dados de5ndos-elo su/ro
ara definir um tipo de dados use a palavra c*ave T3ES.8m tipo de dados definido pelo usuário pode ser utili)ado para
definir variáveis e constantes., taman*o má$imo do nome do tipo de dados ! P
e deve começar com uma letra.
,+s.; :ão pode ser utili)ado o sufi$o (98ES com T3ES.
TYPES: AME/+60 TYPE 4,TEAMS/*(0 TYPE 4.
DATA: PAYER TYPE AME 5AE ‘Tro7 Ai8ma9’, I4KAME IKE PAYER.
4OSTATS: 43TEAM1 TYPE TEAMS 5AE ‘4o;o7<’,43TEAM* IKE TEAM1 5AE ‘Pa=8er<’.
8/18/2019 0.2 - Comandos de Saída e DeclaraçSes
http://slidepdf.com/reader/full/02-comandos-de-saida-e-declaracses 22/31
Taman(o de saída e aln(amento -adrão
Se um o+/eto de dados for impresso sem definição de taman*oentão a saída será no taman*o e alin*amento padrão.
ara imprimir dados com um taman*o diferente do padrão deve4se
definir o taman*o entre parKnteses na instrução WRTE;WRTE &MP' UvarM.ara imprimir dados com alin*amento diferentes deve4se usar as
palavras c*aves 9E<T4=8ST<ED# R@AT4=8ST<EDe CE:TERED após o o+/eto de dados;
WRTE UvarM CE:TERED.
Taman*o padrãoTaman*o padrão
CC OO declaradodeclarado OO MVMV OO &V declarado' M&V declarado' M<< OO VVVV:: OO declaradodeclaradoDD OO MPMPTT OO XX
JJ OO &V declarado'&V declarado'
(lin*amento padrão(lin*amento padrão
CC OO es"uerdaes"uerda OO direitadireita OO direitadireita<< OO direitadireita:: OO es"uerdaes"uerdaDD OO es"uerdaes"uerdaTT OO es"uerdaes"uerda
JJ OO es"uerdaes"uerda
8/18/2019 0.2 - Comandos de Saída e DeclaraçSes
http://slidepdf.com/reader/full/02-comandos-de-saida-e-declaracses 23/31
Saída de cam-os num6rcos
DECB(9S define o nGmero de casas decimais de saída.
R,8:D arredonda campos num!ricos.EJ,:E:T determina o valor do e$poente para campos tipo <9,(T.
Campos tipo só arma)enam casas decimaisse o sufi$o DECB(9S for usado na declaração.
D(T(; <9,(T T3E < (98E 5YX.Z[\FVMEV7#
(C- T3E (98E MV#:T T3E (98E V.
WRTE; 6 <9,(T# 6 <9,(T EJ,:E:T M DECB(9S # 6 <9,(T EJ,:E:T P DECB(9S V# 6 (C-# 6 (C- DECB(9S M# 6 :T DECB(9S V.
Y.XZ[\FVMPPPPPPPEPYXZ.[\FEPM
YXZ[.\F
MVMV.P
V.PP
8/18/2019 0.2 - Comandos de Saída e DeclaraçSes
http://slidepdf.com/reader/full/02-comandos-de-saida-e-declaracses 24/31
$tr'undo .alores
E$istem diversas maneiras de atri+uir valores a um o+/eto de dados;
B,E 1valor2 T, 1campo2.
]C,B8TE^ 1campo2 O 1valor ou e$pressão2.COMPUTE é opcional.
(DD 1value2 T, 1field2.S8TR(CT 1value2 <R,B 1field2.
B89T93 1field2 3 1value2.DDE 1field2 3 1value2.
Iuanto atri+uindo valores entre o+/etos de tipo diferentes o S(e$ecuta conversões automáticas "uando possível.
,+s.; 8:(C- ! uma instrução especial "ue converte umo+/eto de dados tipo em um tipo C.
8/18/2019 0.2 - Comandos de Saída e DeclaraçSes
http://slidepdf.com/reader/full/02-comandos-de-saida-e-declaracses 25/31
E!-ressões $rtm6tcas
(o se pro%ramar e$pressões aritm!ticas no (( deve4se prestar
muita atenção ao espaçamento. Sempre deve e$istir um espaçoseparando operadores e parKnteses dos ar%umentos.,rdem de e$ecução; parKnteses# funções# e$ponenciação#
57 567 D e B,D# 57 e 547.ariáveis não num!ricas são automaticamente
convertidas antes de uma e$pressão ser avaliada.
4OTER > 4OTER ? 1.
SAARY > @ASE @OS3PER4ET.
EBT > STRE/ AME 0.
ASWER > / 1( ? SCRT/ M1 0 0 ) / M* - 1( 0.
<unções
SIRT# EJ# 9,@#S:# C,S# STR9E:# . . .
,peradores
4 6 D and B,D
8/18/2019 0.2 - Comandos de Saída e DeclaraçSes
http://slidepdf.com/reader/full/02-comandos-de-saida-e-declaracses 26/31
Re5erencando -artes de cam-os
ara referenciar partes de um campo usa4se o ,<<SET e o 9E:@TA.,<<SET ! o posicionamento em relação ao início
da variável# sendo o início O P.9E:@TA ! simplesmente o taman*o "ue a parte do campo terá#
definido entre parKnteses., formato da referKncia de uma parte de campo
sempre será 1campo21offset2&1taman*o2'.
DATA: 4STOMER/1(0 TYPE 4,I53DATE IKE SY-DATM.
4STOMER > ‘1*+6FGH(’.I53DATE > ‘1HH(*’.
WRITE: ) 4STOMER ?G/*0, ‘22’,I53DATE/0.
Start o Mo9tJI53DATE?/*0 > ‘(1’.4STOMER ? > ‘A@4D’.
WRITE: ) 4STOMER, ‘------’, I53DATE.
YP $$ MYY[MVF\[(CD 44444 P[6PM6MYY[
8/18/2019 0.2 - Comandos de Saída e DeclaraçSes
http://slidepdf.com/reader/full/02-comandos-de-saida-e-declaracses 27/31
Parameters
9 (R(BETERS 1nome2&1tam.2' T3E 1tipo2 DE<(89T 1padrão2.
(R(BETERS são variáveis utili)adas para entradade dados em telas de seleção de relatórios.
8m (R(BETER só rece+e um dado por ve)# seu nome devecomeçar por 57 e tem um taman*o má$imo de X.
8/18/2019 0.2 - Comandos de Saída e DeclaraçSes
http://slidepdf.com/reader/full/02-comandos-de-saida-e-declaracses 28/31
Te!tos de seleção
8sando4se elementos de te$tos ! possível definir a descrição dos campos na telade seleção.
ara isso deve4se acessar Goto -> Text elements -> Selection texts., te$to "ue for definido no elemento de te$to aparecerá na tela.
,+s.; ! necessário ativar o códi%o fonteantes de definir os te$tos de seleção.
8/18/2019 0.2 - Comandos de Saída e DeclaraçSes
http://slidepdf.com/reader/full/02-comandos-de-saida-e-declaracses 29/31
Feld#S)m'ols *sím'olos de cam-o+
8m <E9D4S3B,9 ! um ponteiro "ue rece+e
o endereço não o valor do campo., <E9D4S3B,9 pode referenciar tanto variáveis "uanto estruturas., <E9D S3B,9 deve ser sempre declarado e
referenciado entre 515 e 527.(SS@: fa) a li%ação entre o <E9D S3B,9 e o
o+/eto de dados.
DATA: M TYPE I 5AE 1*.IED-SYM@OS: !1',
!*' TYPE I, !+' IKE M.
ASSIB: M TO !1', M TO !*', M TO !+'.
WRITE: ) ‘i9Ja 1:’, M, !1', !*', !+'. !1' > +*. WRITE: ) ‘i9Ja *:’, M, !1', !*', !+'.
9in*a M; MV MV MV MV9in*a V; V V V V
8/18/2019 0.2 - Comandos de Saída e DeclaraçSes
http://slidepdf.com/reader/full/02-comandos-de-saida-e-declaracses 30/31
Strn7s e Feld S)m'ols
0 possível associar um <E9D S3B,9 a uma parte de um campo# noentanto "ual"uer operação com esse <E9D S3B,9 irá afetar
somente a parte assinalada.
DATA: W3STRIB/+(0 5AE ‘A@4DEBILK’.IED-SYM@OS: !TESTE'.
ASSIB: W3STRIB?*/60 TO !TESTE'.
WRITE: ) ‘STRIB:’, W3STRIB.IE.
WRITE: ) ‘SM@OO:’, !TESTE'.
IE. !TESTE' > ‘1*+6FGH(’. WRITE : ) ‘SM@OO:’, !TESTE'.IE.
WRITE : ) ‘STRIB:’, W3STRIB.
8/18/2019 0.2 - Comandos de Saída e DeclaraçSes
http://slidepdf.com/reader/full/02-comandos-de-saida-e-declaracses 31/31
$ssnalação Dn8mca de Cam-os*D)namc Feld $ss7nment+
(ssinalação Din_mica de Campos consiste em associar um <E9D S3B,9a um campo cu/o nome não ! con*ecido at! o momento da e$ecução.
Caso o (SS@: fal*e# a variável de sistemaS34S8RC rece+e um nGmero não4)ero.ara assinalar um campo dinamicamente deve4se dei$ar o campo entre
parKnteses
PARAMETERS P3IED/G0 DEAT ‘SY-ZEIT’.IED-SYM@OS !SYM@O'.
ASSIB /P3IED0 TO !SYM@O' .
I SY-S@R4 > (. WRITE: ) ‘4o9teN$o $o 4am%o’, P3IED, !SYM@O'.
ESE. WRITE: ) ‘A<<i9alao $o =am%o’, P3IED, ‘alJo#’.
EDI.