Você está na página 1de 6

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

*& Report ZREXER10_6


*&
*
*&---------------------------------------------------------------------*
*&
*
*&
*
*&---------------------------------------------------------------------*
REPORT zrexer10_6.

TYPE-POOLS: slis.
*----------------------------------------------------------------------* Tipos
*----------------------------------------------------------------------TYPES: BEGIN OF y_vbap,
vbeln TYPE vbap-vbeln,
posnr TYPE vbap-posnr,
matnr TYPE vbap-matnr,
arktx TYPE vbap-arktx,
kmpmg TYPE vbap-kmpmg,
charg TYPE vbap-charg,
brgew TYPE vbap-brgew,
ntgew TYPE vbap-ntgew,
netwr TYPE vbap-netwr,
gbsta TYPE vbup-gbsta,
END OF y_vbap.
TYPES: BEGIN OF y_alv,
color TYPE slis_t_specialcol_alv,
END OF y_alv.
TYPES: BEGIN OF y_print.
INCLUDE TYPE y_vbap.
INCLUDE TYPE y_alv.
TYPES: END OF y_print.
*----------------------------------------------------------------------* Work Area
*----------------------------------------------------------------------DATA: w_vbap
TYPE y_vbap,
w_print
TYPE y_print,
w_alv
TYPE slis_specialcol_alv,
w_fieldcat TYPE slis_fieldcat_alv,
w_layout
TYPE slis_layout_alv,
w_listheader TYPE slis_listheader,
w_color
TYPE slis_specialcol_alv,
w_linecolor TYPE slis_specialcol_alv,
w_sort
TYPE slis_sortinfo_alv.
*----------------------------------------------------------------------* Tabelas
*----------------------------------------------------------------------DATA: t_vbap
TYPE TABLE OF y_vbap,
t_print
TYPE TABLE OF y_print,
t_fieldcat TYPE TABLE OF slis_fieldcat_alv,
t_listheader TYPE TABLE OF slis_listheader,
t_color
TYPE TABLE OF slis_specialcol_alv,
t_linecolor TYPE TABLE OF slis_specialcol_alv,

t_sort

TYPE TABLE OF slis_sortinfo_alv.

*----------------------------------------------------------------------* Tela de Selecao


*----------------------------------------------------------------------SELECTION-SCREEN BEGIN OF BLOCK bl1 WITH FRAME TITLE text-001.

SELECT-OPTIONS s_doc FOR w_vbap-vbeln.


SELECTION-SCREEN END OF BLOCK bl1.
SELECTION-SCREEN BEGIN OF BLOCK bl2 WITH FRAME TITLE text-002.
PARAMETER: p_rad1 RADIOBUTTON GROUP gp,
p_rad2 RADIOBUTTON GROUP gp.
SELECTION-SCREEN END OF BLOCK bl2.
SELECTION-SCREEN BEGIN OF BLOCK bl3 WITH FRAME TITLE text-003.
PARAMETER: p_ordem RADIOBUTTON GROUP gp2,
p_mat RADIOBUTTON GROUP gp2.
SELECTION-SCREEN END OF BLOCK bl3.
*----------------------------------------------------------------------* START-OF-SELECTION
*----------------------------------------------------------------------START-OF-SELECTION.
PERFORM f_select.
*----------------------------------------------------------------------* END-OF-SELECTION
*----------------------------------------------------------------------END-OF-SELECTION.
PERFORM f_fieldcat.
PERFORM f_layout.
PERFORM f_sort.
PERFORM f_print.
*&---------------------------------------------------------------------*
*&
Form f_select
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM f_select .
SELECT a~vbeln
a~posnr
a~matnr
a~arktx
a~kmpmg
a~charg
a~brgew

a~ntgew
a~netwr
b~gbsta
INTO TABLE t_vbap
FROM vbap AS a INNER JOIN vbup AS b
ON a~vbeln = b~vbeln
AND a~posnr = b~posnr
WHERE a~vbeln IN s_doc.

LOOP AT t_vbap INTO w_vbap.


CLEAR w_print.
w_print-vbeln = w_vbap-vbeln.
w_print-posnr = w_vbap-posnr.
w_print-matnr = w_vbap-matnr.
w_print-arktx = w_vbap-arktx.
w_print-kmpmg = w_vbap-kmpmg.
w_print-charg = w_vbap-charg.
w_print-brgew = w_vbap-brgew.
w_print-ntgew = w_vbap-ntgew.
w_print-netwr = w_vbap-netwr.
w_print-gbsta = w_vbap-gbsta.
CASE w_print-gbsta.
WHEN 'A'.
w_alv-color-col = '6'.
WHEN 'B'.
w_alv-color-col = '2'.
WHEN 'C'.
w_alv-color-col = '5'.
ENDCASE.
APPEND w_alv TO w_print-color.
APPEND w_print TO t_print.
ENDLOOP.
ENDFORM.
" f_select
*&---------------------------------------------------------------------*
*&
Form f_fieldcat
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM f_fieldcat .
CLEAR w_fieldcat.
IF p_ordem IS INITIAL.
w_fieldcat-no_out = 'X'.
ENDIF.
w_fieldcat-col_pos = 1 .
w_fieldcat-fieldname = 'VBELN'.
w_fieldcat-seltext_m = 'N.ordem doc'.

APPEND w_fieldcat TO t_fieldcat.


CLEAR w_fieldcat.
IF p_ordem IS INITIAL.
w_fieldcat-no_out = 'X'.
ENDIF.
w_fieldcat-col_pos = 2 .
w_fieldcat-fieldname = 'POSNR'.
w_fieldcat-seltext_m = 'Item'.
APPEND w_fieldcat TO t_fieldcat.
CLEAR w_fieldcat.
w_fieldcat-col_pos = 3 .
w_fieldcat-fieldname = 'MATNR'.
w_fieldcat-seltext_m = 'material'.
APPEND w_fieldcat TO t_fieldcat.
CLEAR w_fieldcat.
w_fieldcat-col_pos = 4 .
w_fieldcat-fieldname = 'ARKTX'.
w_fieldcat-seltext_m = 'denominao'.
APPEND w_fieldcat TO t_fieldcat.
CLEAR w_fieldcat.
w_fieldcat-col_pos = 5 .
w_fieldcat-fieldname = 'KMPMG'.
w_fieldcat-seltext_m = 'qtde.ordem'.
APPEND w_fieldcat TO t_fieldcat.
CLEAR w_fieldcat.
w_fieldcat-col_pos = 6 .
w_fieldcat-fieldname = 'CHARG'.
w_fieldcat-seltext_m = 'lote'.
APPEND w_fieldcat TO t_fieldcat.
CLEAR w_fieldcat.
w_fieldcat-col_pos = 7 .
w_fieldcat-fieldname = 'BRGEW'.
w_fieldcat-seltext_m = 'peso bruto'.
APPEND w_fieldcat TO t_fieldcat.
CLEAR w_fieldcat.
w_fieldcat-col_pos = 8 .
w_fieldcat-fieldname = 'NTGEW'.
w_fieldcat-seltext_m = 'peso liquido'.
APPEND w_fieldcat TO t_fieldcat.
CLEAR w_fieldcat.
w_fieldcat-col_pos = 8 .
w_fieldcat-fieldname = 'NETWR'.
w_fieldcat-do_sum = 'X'.
w_fieldcat-seltext_m = 'valor liquido'.
APPEND w_fieldcat TO t_fieldcat.
ENDFORM.
" f_fieldcat
*&---------------------------------------------------------------------*
*&
Form f_sort
*&---------------------------------------------------------------------*

*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM f_sort .
IF p_mat IS NOT INITIAL.
w_sort-fieldname = 'MATNR'.
w_sort-up
= 'X'.
w_sort-subtot = 'X'.
APPEND w_sort TO t_sort.
ENDIF.
IF p_ordem IS NOT INITIAL.
w_sort-fieldname = 'VBELN'.
w_sort-up
= 'X'.
w_sort-subtot = 'X'.
APPEND w_sort TO t_sort.
ENDIF.
ENDFORM.
" f_sort
*&---------------------------------------------------------------------*
*&
Form f_print
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM f_print .
CASE 'X'.
WHEN p_rad1.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
is_layout
= w_layout
it_fieldcat
= t_fieldcat
it_sort
= t_sort
TABLES
t_outtab
= t_print.
WHEN p_rad2.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
i_callback_program = sy-repid
is_layout
= w_layout
it_fieldcat
= t_fieldcat
it_sort
= t_sort
TABLES
t_outtab
= t_print.
ENDCASE.
ENDFORM.

" f_print

*&---------------------------------------------------------------------*
*&
Form f_layout
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM f_layout .
w_layout-expand_all
= 'X'.
w_layout-colwidth_optimize = 'X'.
w_layout-coltab_fieldname = 'COLOR'.
ENDFORM.

" f_layout

Você também pode gostar