Você está na página 1de 4

*&---------------------------------------------------------------------*

*& Report Z22TESTE2


*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT Z22TESTE2.
TYPE-POOLS: slis.
TABLES: ZT06_PRODUTOS,ZT06_MARCA.
TYPES: BEGIN OF TY_ZT06_PRODUTOS,
ID_PROD TYPE ZT06_PRODUTOS-ID_PROD,
QUANTIDADE TYPE ZT06_PRODUTOS-QUANTIDADE,
UNIDADE TYPE ZT06_PRODUTOS-UNIDADE,
VALOR_UNI TYPE ZT06_PRODUTOS-VALOR_UNI,
MOEDA TYPE ZT06_PRODUTOS-MOEDA,
ID_MARCA TYPE ZT06_PRODUTOS-ID_MARCA,
END OF TY_ZT06_PRODUTOS.
TYPES: BEGIN OF TY_ZT06_MARCA,
ID_MARCA TYPE ZT06_MARCA-ID_MARCA,
DESC_MARCA TYPE
ZT06_MARCA-DESC_MARCA,
RETING
TYPE ZT06_MARCA-RETING,
END OF TY_ZT06_MARCA.

types: BEGIN OF ty_tabsaida,


ID_PROD
TYPE ZT06_PRODUTOS-ID_PROD,
QUANTIDADE TYPE ZT06_PRODUTOS-QUANTIDADE,
UNIDADE
TYPE ZT06_PRODUTOS-UNIDADE,
VALOR_UNI TYPE ZT06_PRODUTOS-VALOR_UNI,
MOEDA
TYPE ZT06_PRODUTOS-MOEDA,
ID_MARCA TYPE ZT06_PRODUTOS-ID_MARCA,
DESC_MARCA TYPE
ZT06_MARCA-DESC_MARCA,
RETING
TYPE ZT06_MARCA-RETING,
END OF ty_tabsaida.

data: wa_fieldcat
wa_tabsaida
WA_PRODUTOS
WA_MARCA
DATA: TI_PRODUTOS
TI_MARCA
ti_tabsaida
it_fieldcat

TYPE
type
TYPE
TYPE
TYPE
TYPE
type
TYPE

slis_fieldcat_alv,
ty_tabsaida,
TY_ZT06_PRODUTOS,
TY_ZT06_MARCA.
TABLE OF TY_ZT06_PRODUTOS,
TABLE OF TY_ZT06_MARCA,
TABLE OF ty_tabsaida,
slis_t_fieldcat_alv.

SELECTION-SCREEN BEGIN OF BLOCK 1 WITH FRAME TITLE TEXT-001.

SELECTION-SCREEN BEGIN OF BLOCK 2 WITH FRAME TITLE TEXT-002.


SELECT-OPTIONS s_idprod for ZT06_PRODUTOS-ID_PROD NO INTERVALS NO-EXTENSION VIS
IBLE LENGTH 5.
SELECT-OPTIONS s_idmark for ZT06_MARCA-ID_MARCA VISIBLE LENGTH 20.
SELECT-OPTIONS S_RATING FOR ZT06_MARCA-RETING VISIBLE LENGTH 1.
SELECTION-SCREEN END OF BLOCK 2.
SELECTION-SCREEN END OF BLOCK 1.

START-OF-SELECTION.
PERFORM f_dados.
PERFORM f_produtos.
PERFORM f_alv.
form f_dados.
select id_prod QUANTIDADE UNIDADE VALOR_UNI MOEDA ID_MARCA
from zt06_produtos
into table TI_PRODUTOS
WHERE id_marca in s_idmark and id_prod in s_idprod.

IF sy-subrc IS INITIAL.
SORT ti_produtos BY id_prod.
ENDIF.
select ID_MARCA DESC_MARCA RETING
into table ti_marca
from zt06_marca
WHERE id_marca IN s_idmark AND reting in S_RATING.
IF sy-subrc IS INITIAL.
SORT ti_marca BY id_marca.
ENDIF.
endform.
form f_produtos.
LOOP AT ti_produtos INTO wa_produtos.
READ TABLE ti_marca
WITH KEY id_marca = wa_produtos-id_marca
INTO wa_marca
BINARY SEARCH.
wa_tabsaida-id_prod
wa_tabsaida-quantidade
wa_tabsaida-unidade
wa_tabsaida-valor_uni
wa_tabsaida-moeda
wa_tabsaida-desc_marca
wa_tabsaida-reting

=
=
=
=
=
=
=

wa_produtos-id_prod .
wa_produtos-quantidade .
wa_produtos-unidade.
wa_produtos-valor_uni .
wa_produtos-moeda.
wa_marca-desc_marca .
wa_marca-reting.

APPEND wa_tabsaida to ti_tabsaida.


CLEAR wa_tabsaida.
ENDLOOP.
LOOP AT ti_tabsaida INTO wa_tabsaida.
WRITE:
WRITE:
WRITE:
WRITE:
WRITE:
WRITE:
WRITE:
ENDLOOP.

/ wa_tabsaida-id_prod .
wa_tabsaida-quantidade .
wa_tabsaida-unidade.
wa_tabsaida-valor_uni .
wa_tabsaida-moeda.
wa_tabsaida-desc_marca.
wa_tabsaida-reting.

endform.
form f_alv.
wa_fieldcat-fieldname = 'ID_PROD'.
" Fieldname in the data table
wa_fieldcat-seltext_m = 'ID do Produto'. " Column description in the output
APPEND wa_fieldcat TO it_fieldcat.
wa_fieldcat-fieldname = 'QUANTIDADE'.
wa_fieldcat-seltext_m = 'quantidade'.
APPEND wa_fieldcat TO it_fieldcat.
wa_fieldcat-fieldname = 'UNIDADE'.
wa_fieldcat-seltext_m = 'unidade'.
APPEND wa_fieldcat TO it_fieldcat.
wa_fieldcat-fieldname = 'VALOR_UNI'.
wa_fieldcat-seltext_m = 'valor unitario'.
APPEND wa_fieldcat TO it_fieldcat.
wa_fieldcat-fieldname = 'MOEDA'.
wa_fieldcat-seltext_m = 'moeda'.
APPEND wa_fieldcat TO it_fieldcat.
wa_fieldcat-fieldname = 'DESC_MARCA'.
wa_fieldcat-seltext_m = 'descricao da marca'.
APPEND wa_fieldcat TO it_fieldcat.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'


EXPORTING
it_fieldcat = it_fieldcat
TABLES
t_outtab
= ti_tabsaida
EXCEPTIONS
program_error = 1
OTHERS
= 2.

endform.

END-OF-SELECTION.