*&---------------------------------------------------------------------*
*& Report ZALV_POPUP *
*& *
*&---------------------------------------------------------------------*
*& *
*& *
*&---------------------------------------------------------------------*
REPORT zalv_popup .
TYPE-POOLS : slis.
DATA:
ls_fieldcatlog TYPE slis_fieldcat_alv,
lt_fieldcatlog TYPE slis_t_fieldcat_alv,
lt_layout TYPE slis_layout_alv.
DATA : BEGIN OF t_data OCCURS 0,
matnr TYPE mara-matnr,
maktx TYPE makt-maktx,
matkl TYPE mara-matkl,
meins TYPE mara-meins,
END OF t_data,
BEGIN OF t_makt OCCURS 0,
matnr TYPE makt-matnr,
maktx TYPE makt-maktx,
END OF t_makt.
START-OF-SELECTION.
PERFORM : fm_get_data,
fm_display_alv.
*&---------------------------------------------------------------------*
*& Form fm_get_data
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM fm_get_data .
FIELD-SYMBOLS :
SELECT matnr matkl meins
FROM mara
INTO CORRESPONDING FIELDS OF TABLE t_data
UP TO 10 ROWS.
IF t_data[] IS NOT INITIAL.
SELECT matnr maktx
FROM makt
INTO CORRESPONDING FIELDS OF TABLE t_makt
FOR ALL ENTRIES IN t_data
WHERE matnr = t_data-matnr
AND spras = sy-langu.
SORT t_data BY matnr.
SORT t_makt BY matnr.
LOOP AT t_data ASSIGNING
READ TABLE t_makt WITH KEY matnr =
IF sy-subrc = 0.
ENDIF.
ENDLOOP.
ENDIF.
ENDFORM. " fm_get_data
*&---------------------------------------------------------------------*
*& Form fm_display_alv
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM fm_display_alv .
PERFORM : fm_build_cat,
fm_build_layout,
fm_alv.
ENDFORM. " fm_display_alv
*&---------------------------------------------------------------------*
*& Form fm_build_cat
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM fm_build_cat .
CLEAR ls_fieldcatlog.
ls_fieldcatlog-row_pos = '1'.
ls_fieldcatlog-col_pos = '1'.
ls_fieldcatlog-fieldname = 'MATNR'.
ls_fieldcatlog-tabname = 'T_DATA'.
ls_fieldcatlog-seltext_m = 'Material'.
APPEND ls_fieldcatlog TO lt_fieldcatlog.
CLEAR ls_fieldcatlog.
ls_fieldcatlog-row_pos = '1'.
ls_fieldcatlog-col_pos = '2'.
ls_fieldcatlog-fieldname = 'MAKTX'.
ls_fieldcatlog-tabname = 'T_DATA'.
ls_fieldcatlog-seltext_m = 'Description'.
APPEND ls_fieldcatlog TO lt_fieldcatlog.
CLEAR ls_fieldcatlog.
ls_fieldcatlog-row_pos = '1'.
ls_fieldcatlog-col_pos = '3'.
ls_fieldcatlog-fieldname = 'MATKL'.
ls_fieldcatlog-tabname = 'T_DATA'.
ls_fieldcatlog-seltext_m = 'Material Group'.
APPEND ls_fieldcatlog TO lt_fieldcatlog.
CLEAR ls_fieldcatlog.
ls_fieldcatlog-row_pos = '1'.
ls_fieldcatlog-col_pos = '4'.
ls_fieldcatlog-fieldname = 'MEINS'.
ls_fieldcatlog-tabname = 'T_DATA'.
ls_fieldcatlog-seltext_m = 'UOM'.
APPEND ls_fieldcatlog TO lt_fieldcatlog.
ENDFORM. " fm_build_cat
*&---------------------------------------------------------------------*
*& Form FM_BUILD_LAYOUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM fm_build_layout .
lt_layout-zebra = 'X'.
lt_layout-colwidth_optimize = 'X'.
ENDFORM. " FM_BUILD_LAYOUT
*&---------------------------------------------------------------------*
*& Form FM_ALV
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM fm_alv .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
i_grid_title = 'MATERIAL MASTER'
is_layout = lt_layout
it_fieldcat = lt_fieldcatlog
i_screen_start_column = 20
i_screen_start_line = 10
i_screen_end_column = 90
i_screen_end_line = 30
TABLES
t_outtab = t_data
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " FM_ALV
Output:
Tidak ada komentar:
Posting Komentar