You are on page 1of 18

Captulo 5

Instrues de Manipulao de Dados

5-2 Instrues de Manipulao de Dados

Instruo MOVE-CORRESPONDING

TABLES: TABNA.
Campo COUNTRY ID FORMA NAME1 BANKA BANKL BANKN SALES Tipo CHAR NUMC CHAR CHAR ... CHAR CHAR NUMC CURR Compr. 3 8 15 30 ... 60 15 18 10 Descrio Chave do pas N atual do registo DATA: BEGIN OF PAISES Designao COUNTRY LIKE TABNANome COUNTRY, SALES LIKE TABNA-SALES, Nome do banco END OF PAISES. N do banco N da conta bancria Valor das vendas

COUNTRY

ID

NAME1

SALES

CH

Patek Philippe

93,000

MOVE-CORRESPONDING TABNA TO PAISES.


COUNTRY CH SALES 93,000

5-3 Instrues de Manipulao de Dados

Instrues de Clculo

[COMPUTE] <varivel> = expresso

+*/

DIV MOD

OPERADORES

ADD DIVIDE SUBTRACT MULTIPLY

SQRT EXP LOG SIN STRLEN

5-4 Instrues de Manipulao de Dados

Operaes Lgicas

Operadores simples:
EQ = NE <> GT > GE => LT < LE <= BETWEEN val1 AND val2 IS INITIAL NOT

Operadores para strings:


st1 st1 st1 st1 CO CA CS CP SY-FDPOS st2 st2 st2 st2

5-5 Instrues de Manipulao de Dados

Operaes com String - Instruo MOVE STRING1 A B C D E F G H I J K L

STRING2 1 2 3 4 5 6 7 8

MOVE STRING1+3(5) TO STRING2+2(5).

STRING2 1 2 D E F G H 8

5-6 Instrues de Manipulao de Dados

Operaes com String - Instruo SHIFT

STRING1 A B C D E F G H I J K L

SHIFT STRING1 BY 2 PLACES.


STRING1 C D E F G H I J K L

STRING1

SHIFT STRING1 BY 2 PLACES CIRCULAR RIGHT.

STRING1
K L A B C D E F G H I J

5-7 Instrues de Manipulao de Dados

Operaes com String - Instruo REPLACE FINAL a b c d e A B C D E


REPLACE PADRAO WITH SUBST INTO FINAL.

PADRAO A B C SUBST

1 2 3 4 5

FINAL a b c d e A B C D E

L = STRLEN (PADRAO) FINAL a b c d e A B C D E


REPLACE PADRAO LEN L WITH SUBST INTO FINAL.

FINAL a b c d e 1 2 3 4 5 D E

5-8 Instrues de Manipulao de Dados

Operaes com String - Instruo CONDENSE

TITULO D R . NOME

PRIMEIRO_NOME M I G U E L

ULTIMO_NOME F E R N A N D E S

CONDENSE NOME . TITULO D R . M

PRIMEIRO_NOME I G U E L F E R N A N

ULTIMO_NOME

D E S

5-9 Instrues de Manipulao de Dados

Operaes com String - Instruo CONCATENATE

PRIMEIRO_NOME J O H N

OUTROS_NOMES F .

ULTIMO_NOME K E N N E D Y

CONCATENATE PRIMEIRO_NOME OUTROS_NOMES ULTIMO_NOME INTO NOME SEPARATED BY SPACE.

NOME J O H N F . K E N N E D Y

5-10 Instrues de Manipulao de Dados

Operaes com String - Instruo SEARCH (ABBREVIATED)


SEARCH VARIAVEL FOR STRING ABBREVIATED AND MARK.

VARIAVEL L o n g J o h n VARIAVEL
SY-SUBRC = 0 SY-FDPOS = 5

STRING J H

L o n g

J O H N

VARIAVEL L o n g J o h n

STRING O N

SY-SUBRC = 4 SY-FDPOS = 0

VARIAVEL L o n g J o h n

5-11 Instrues de Manipulao de Dados

Operaes com String - Instruo SEARCH

SEARCH VARIAVEL FOR STRING AND MARK. VARIAVEL L o n g J o h n VARIAVEL


SY-SUBRC = 4 SY-FDPOS = 0

STRING J H

L o n g

J o h n

VARIAVEL L o n g J o h n VARIAVEL
SY-SUBRC = 0 SY-FDPOS = 1

STRING O N

L O N g

J o h n

5-12 Instrues de Manipulao de Dados

Clculos com datas: ms atual para ms anterior

REPORT ZTST10##. DATA: DIFF TYPE P, DATE_1 LIKE SY-DATUM, DATE_2 LIKE SY-DATUM. DATE_1 = SY-DATUM. DATE_2 = SY-DATUM. * Incio do ms corrente DATE_1+6(2) = '01'. DATA_2 = DATE_1. * ltimo dia do ms anterior DATE_1 = DATE_1 - 1. * Primeiro dia do ms anterior DATE_1+6(2) = '01'. * Diferena em dias (n de dias do ms anterior * ao corrente) DIFF = DATE_2 - DATE_1.

5-13 Instrues de Manipulao de Dados

Clculos com datas: ms atual para prximo ms

REPORT ZTST10##. DATA: DIFF TYPE P, DATE_1 LIKE SY-DATUM, DATE_2 LIKE SY-DATUM. DATE_1 = SY-DATUM. DATE_2 = SY-DATUM. * Incio do ms corrente DATE_1+6(2) = '01'. * Saltando para um dia do proximo ms DATA_2 = DATE_1+ 31. * Primeiro dia do proximo ms calculado DATE_2+6(2) = 01. * Ultimo dia do ms atual ao calculado DATE_2 = DATE_2 - 1. * Obtivemos o ultimo dia do ms corrente

5-14 Instrues de Manipulao de Dados

FIELD-SYMBOLS e ASSIGN

ASSIGN f TO <fs>. Atribui o campo f ao campo simblico <fs>. <fs> passa a apontar para o contedo do campo f em runtime. Qualquer alterao ao contedo de f reflecte-se em <fs> e viceversa. Se no for especificado um tipo (TYPE) para o campo simblico <fs>, este adota o tipo e atributos do campo f em runtime, caso contrrio, no momento em que for efetuada a atribuio, o sistema verifica se o tipo do campo f idntico ao tipo do campo simblico <fs>.

5-15 Instrues de Manipulao de Dados

FIELD-SYMBOLS e ASSIGN - exemplo

REPORT ZTST12##. DATA COUNTER TYPE I. FIELD-SYMBOLS <F>. COUNTER = 15. ASSIGN COUNTER TO <F>. WRITE : / COUNTER, <F>. <F> = 17. WRITE : / COUNTER, <F>.

COUNTER 15 100 150

<F>
100

Endereo

15
17

15
17

5-16 Instrues de Manipulao de Dados

Atribuio dinmica de sub-campos de strings

REPORT ZTST13##. DATA: TEXT_LINE(30) VALUE 'ABCDEFGH ...', START TYPE I, STRING_LENGTH TYPE I. FIELD-SYMBOLS: <FSTRING>. START = 2. STRING_LENGTH = 5. ASSIGN TEXT_LINE+START(STRING_LENGTH) TO <FSTRING>. WRITE: / '*' <FSTRING>, '*'.

* CDEFG *

<FSTRING>

5-17 Instrues de Manipulao de Dados

Atribuio dinmica de campos

ASSIGN (f) TO <fs>. Atribui o campo cujo nome est armazenado no campo f ao campo simblico <fs>.

5-18 Instrues de Manipulao de Dados

Atribuio dinmica de campos - exemplo

REPORT ZTST14##. PARAMETERS MY_FIELD(8) TYPE C DEFAULT SY-DATUM. FIELD-SYMBOLS <FS>. ASSIGN (MY_FIELD) TO <FS>. IF SY-SUBRC EQ 0. WRITE:/ MY_FIELD, 50 <FS>. ENDIF.

MY_FIELD (CHAR 8) S Y D A T U M

Table SY
Campo SY-DATUM Valor 20000510

<FS>

You might also like