Escolar Documentos
Profissional Documentos
Cultura Documentos
Tabelas Internas
Linha de cabealho
DATA:
... DATA: AMOUNT(5) TYPE P, BEGIN OF ADDRESS, NAMES(40), LAST_NAME(20), CITY LIKE TABNA-CITY STREET LIKE TABNA-STREET, END OF ADDRESS.
. . . MOVE ALBERTO SOARES' TO ADDRESS-NAME. MOVE LISBOA TO ADDRESS-STREET. . . . WRITE: ADDRESS-NAMES, ADDRESS-LAST_NAME, ADDRESS-STREET, ADDRESS-CITY.
DATA:
... DATA: BEGIN OF ADDRESS_LIST OCCURS 5, NAMES(40), LAST_NAME(20), CITY LIKE TABNA-CITY STREET LIKE TABNA-STREET, END OF ADDRESS_LIST. ...
ADDRESS_LIST
NAMES Linha de Cabealho LAST_NAME CITY STREET
... DATA: TAB_INT LIKE ADDRESS OCCURS 5 WITH HEADER LINE. ...
TAB_INT
NAMES LAST_NAME CITY STREET
Linha de Cabealho
SHOW TABNA
TABNA - COUNTRY CHAR TABNA - ID TABNA - CITY TABNA - NAME1 CHAR CHAR CHAR
C C C C
3 8 25 30
REPORT ZFTBIN00 . TABLES TABNA. DATA: BEGIN OF TAB OCCURS 0, COUNTRY LIKE TABNA-COUNTRY, NAME1 LIKE TABNA-NAME1, SALES LIKE TABNA-SALES, END OF TAB. SELECT COUNTRY NAME1 SALES FROM TABNA INTO TABLE TAB. ou SELECT * FROM TABNA INTO CORRESPONDING FIELDS OF TABLE TAB. SELECT COUNTRY NAME1 SALES FROM TABNA APPENDING TABLE TAB. ou SELECT * FROM TABNA APPENDING CORRESPONDING FIELDS OF TABLE TAB.
Country D USA GB D GB A
Sales 400 000 Linha cab. 1 000 000 1 500 000 2 7 800 000 3 50 000 4 140 000 5 6 7 8 9
Country D D USA GB A GB
Sales 400 000 7 800 000 1 000 000 500 000 140 000 50 000 Linha cab. 1 2 3 4 5
APPEND
APPEND 2. APPEND LINES OF itab1 [FROM idx1] [TO idx2] TO itab2. Acrescenta a tabela interna itab1 ou um subconjunto desta tabela ao fim da tabela interna itab2. Ao especificar FROM idx1 ou TO idx2 pode restringir o intervalo de linhas a transferir da tabela itab1. Se a clusula FROM for omitida, a transferncia inicia-se com a primeira linha de itab1. Do mesmo modo se a clusula TO no for definida, a transferncia finaliza com a ltima linha de iatb1. Depois da execuo da instruo APPEND,o campo de sistema SY-TABIX contm o ndice da ltima entrada acrescentada, i.e. o n original de linhas de itab2 acrescido das linhas de itab1 que foram transferidas pelo APPEND.
Insere a nova entrada na tabela itab e reordena a tabela pelo sub-campo f por ordem decrescente. Esta variante da instruo APPEND s tem interesse no caso de a tabela itab j estar previamente ordenada.
Quando o nmero de entradas na tabela atinge o valor estabelecido no parmetro OCCURS, a ltima linha da tabela eliminada se o valor do sub-campo f da nova linha for superior (particularmente til no caso de listas do tipo AS 50 MAIS).
TABLES: DATA:
TABNA BEGIN OF ADDRESS, FLAG TYPE C, ID LIKE TABNA-ID, NAME LIKE TABNA-NAME1, CITY LIKE TABNA-CITY, . . . , END OF ADDRESS.
TABNA ID
00000001
NAME1
WILLY
CITY
WALLDORF
COLLECT <tab>.
Country D GB D
Sales
(TYP P) Linha cabealho 1 2 3 4 5 6 7 8 9 SELECT * FROM TABNA. MOVE-CORRESPONDING TABNA TO TAB. COLLECT TAB. ENDSELECT. 8 200 000 TABLES: TABNA.
DATA: BEGIN OF TAB OCCURS 10, COUNTRY LIKE TABNA-COUNTRY, SALES LIKE TABNA-SALES, END OF TAB.
COLLECT COLLECT [wa INTO] itab. A instruo COLLECT utilizada para criar tabelas internas compactadas. Ao usar apenas COLLECT para preencher uma tabela interna, garantese que a tabela interna no contm entradas com contedos idnticos para os campos-chave por default. Por campos-chave por default, entendem-se todos os campos no numricos da tabela. Se, para alm dos campos-chave por default, a tabela interna contiver campos numricos, o contedo destes campos adicionado para entradas com o mesmo contedo nos campos-chave por default.
REPORT ZTBORD00.
TABLES: DATA: TABNA. BEGIN OF TAB COUNTRY ID NAME1 SALES END OF TAB. OCCURS 5, LIKE TABNA-COUNTRY, LIKE TABNA-ID, LIKE TABNA-NAME1 LIKE TABNA-SALES,
. . . SORT TAB. . .ou . SORT TAB BY COUNTRY NAME1. . .ou . SORT TAB BY COUNTRY ASCENDING NAME1 DESCENDING.
TABLES:
DATA:
TABNA.
BEGIN OF TAB COUNTRY CITY NAME1 SALES END OF TAB. OCCURS 5, LIKE TABNA-COUNTRY, LIKE TABNA-CITY, LIKE TABNA-NAME1, LIKE TABNA-SALES,
. . . LOOP AT TAB. WRITE: /TAB-COUNTRY, TAB-CITY, ... . ENDLOOP. . ou . LOOP AT TAB WHERE COUNTRY BETWEEN 'A' AND 'D'. WRITE: /TAB-COUNTRY, TAB-CITY, ... . ENDLOOP. IF SY-SUBRC NE 0. . . . ENDIF.
REPORT ZTBPROC2. . . . PARAMETERS: INICIO LIKE SY-TABIX DEFAULT '10', FIM LIKE SY-TABIX DEFAULT '20'. LOOP AT TAB FROM INICIO TO FIM. WRITE: / SY-TABIX, TAB-COUNTRY, ... . ENDLOOP.
1.
3.
REPORT ZREADTB2. TABLES TABNA. DATA: BEGIN OF TAB OCCURS 5. INCLUDE STRUCTURE TABNA. DATA: END OF TAB. SELECTION-SCREEN BEGIN OF LINE. PARAMETERS: CAMPO1(8) DEFAULT 'COUNTRY',VALOR1(30) LOWER CASE. SELECTION-SCREEN END OF LINE. SELECTION-SCREEN BEGIN OF LINE. PARAMETERS: CAMPO2(8) DEFAULT 'FORMA', VALOR2(30) LOWER CASE. SELECTION-SCREEN END OF LINE. SELECTION-SCREEN BEGIN OF LINE. PARAMETERS: CAMPO3(8) DEFAULT 'CITY', VALOR3(30) LOWER CASE. SELECTION-SCREEN END OF LINE. SELECTION-SCREEN BEGIN OF LINE. PARAMETERS: CAMPO4(8) DEFAULT 'NAME1', VALOR4(30) LOWER CASE. SELECTION-SCREEN END OF LINE. SELECT * FROM TABNA INTO TABLE TAB. LOOP AT TAB. Lista de toda a tabela interna WRITE:/ TAB-COUNTRY, TAB-FORMA, TAB-CITY,TAB-NAME1, TAB-SALES. ENDLOOP. CLEAR TAB. Limpa registo cabealho READ TABLE TAB WITH KEY (CAMPO1) = VALOR1 (CAMPO2) = VALOR2 (CAMPO3) = VALOR3 (CAMPO4) = VALOR4. WRITE:/ TAB-COUNTRY, TAB-FORMA, TAB-CITY, TAB-NAME1.
Elimina todas as linhas da tabela Espao para armazenamento no liberado Paging liberado
TABLES: TABNA. DATA: DATA: BEGIN OF TAB OCCURS 5. INCLUDE STRUCTURE TABNA. END OF TAB, LINE_COUNT TYPE I, OCCURS_COUNT TYPE I.
SELECT * FROM TABNA INTO TABLE TAB. DESCRIBE TABLE TAB LINES LINE_COUNT OCCURS OCCURS_COUNT.
CITY
NAME1
SALES
LOOP AT TABNA_INT. AT FIRST. Bloco 1. ENDAT. AT NEW COUNTRY. Bloco 2. ENDAT. AT NEW CITY. Bloco 3. ENDAT. AT END OF CITY. Bloco 4. ENDAT. AT END OF COUNTRY. Bloco 4. ENDAT. AT LAST. Bloco 4. ENDAT. ENDLOOP.
Bloco 4: SUM Totaliza todos os campos numricos colocando o resultado na rea de trabalho