REPORT zau_alvgridtest.
TYPE-POOLS:icon. " Just include this
TYPES: BEGIN OF ty_matnr,
matnr TYPE mara-matnr,
ersda TYPE mara-ersda,
ernam TYPE mara-ernam,
mtart TYPE mara-mtart,
status TYPE char4,
rowcolor(4) TYPE c, "row colour
END OF ty_matnr.
TYPE-POOLS : slis.
TABLES: mara.
DATA : wa_fieldcat TYPE slis_fieldcat_alv, "workspace
it_fieldcat TYPE slis_t_fieldcat_alv, " Table
it_mara TYPE STANDARD TABLE OF ty_matnr,
wa_mara TYPE ty_matnr,
g_top_of_page TYPE slis_formname VALUE 'F_TOP_OF_PAGE', "for avl header.
it_layout TYPE slis_layout_alv,
gt_callback_subroutine TYPE slis_formname VALUE 'USER_COMMAND',
lv_run TYPE i VALUE '0'.
SELECT-OPTIONS : s_matnr FOR mara-matnr.
PARAMETERS: rd1 RADIOBUTTON GROUP rb DEFAULT 'X',
rd2 RADIOBUTTON GROUP rb .
START-OF-SELECTION.
IF s_matnr IS NOT INITIAL.
SELECT matnr ersda
ernam mtart
FROM mara
INTO TABLE it_mara
WHERE matnr IN s_matnr.
IF it_mara IS NOT INITIAL.
LOOP AT it_mara INTO wa_mara.
IF lv_run EQ 0.
wa_mara-rowcolor = 'C300'.
wa_mara-status = icon_red_light.
MODIFY it_mara FROM wa_mara.
lv_run = 1.
ELSE.
wa_mara-rowcolor = 'C600'.
wa_mara-status = icon_green_light.
MODIFY it_mara FROM wa_mara .
lv_run = 0.
ENDIF.
ENDLOOP.
PERFORM f_build_catalog.
IF rd1 EQ 'X'.
* it_layout-info_fieldname = 'ROWCOLOR'.
PERFORM f_display_grid.
ELSE.
* it_layout-info_fieldname = 'ROWCOLOR'.
PERFORM f_display_list.
ENDIF.
ENDIF.
ENDIF.
*&---------------------------------------------------------------------*
*& Form f_build_catalog
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM f_build_catalog.
wa_fieldcat-fieldname = 'MATNR'.
wa_fieldcat-seltext_m = 'Material Value'.
wa_fieldcat-col_pos = 1.
wa_fieldcat-key = 'X'.
wa_fieldcat-edit = 'X'.
wa_fieldcat-hotspot = 'X'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'ERSDA'.
wa_fieldcat-seltext_m = 'Created On'.
wa_fieldcat-edit = 'X'.
wa_fieldcat-col_pos = 2.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'ERNAM'.
wa_fieldcat-seltext_m = 'Created by'.
wa_fieldcat-edit = 'X'.
wa_fieldcat-col_pos = 3.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'MTART'.
wa_fieldcat-seltext_m = 'Material Type'.
wa_fieldcat-edit = 'X'.
wa_fieldcat-col_pos = 4.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'STATUS'.
wa_fieldcat-seltext_m = 'Status'.
wa_fieldcat-icon = 'X'. " Display the field as ICON
wa_fieldcat-col_pos = 5.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
ENDFORM. "f_build_catalog
*&---------------------------------------------------------------------*
*& Form f_display_grid
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM f_display_grid.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER = ' '
* I_BUFFER_ACTIVE = ' '
i_callback_program = sy-repid
* I_CALLBACK_PF_STATUS_SET = ' '
i_callback_user_command = gt_callback_subroutine
i_callback_top_of_page = g_top_of_page
* I_CALLBACK_HTML_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_END_OF_LIST = ' '
* I_STRUCTURE_NAME =
* I_BACKGROUND_ID = ' '
* I_GRID_TITLE =
* I_GRID_SETTINGS =
is_layout = it_layout
it_fieldcat = it_fieldcat
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
* I_SAVE = ' '
* IS_VARIANT =
* IT_EVENTS =
* IT_EVENT_EXIT =
* IS_PRINT =
* IS_REPREP_ID =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_STARlv_line = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* I_HTML_HEIGHT_TOP = 0
* I_HTML_HEIGHT_END = 0
* IT_ALV_GRAPHICS =
* IT_HYPERLINK =
* IT_ADD_FIELDCAT =
* IT_EXCEPT_QINFO =
* IR_SALV_FULLSCREEN_ADAPTER =
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = it_mara
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. "f_display_grid
*&---------------------------------------------------------------------*
*& Form user_command
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_UCOMM text
* -->P_SELFIELD text
*----------------------------------------------------------------------*
FORM user_command USING p_ucomm LIKE sy-ucomm
p_selfield TYPE slis_selfield.
"p_ucomm will hold user action like double click, clicking a button ,etc
CASE p_ucomm.
WHEN '&IC1'. " SAP standard code for double-clicking
READ TABLE it_mara INTO wa_mara INDEX p_selfield-tabindex. " Getting Row data
CASE p_selfield-fieldname.
WHEN 'MATNR'. " Column data
SET PARAMETER ID: 'MAT' FIELD p_selfield-value.
CALL TRANSACTION 'MM03' AND SKIP FIRST SCREEN.
WHEN 'MTART'.
MESSAGE p_selfield-value TYPE 'S'.
ENDCASE.
ENDCASE.
ENDFORM. "user_command
*&---------------------------------------------------------------------*
*& Form f_display_list
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM f_display_list.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER =
* I_BUFFER_ACTIVE = ' '
i_callback_program = sy-cprog
* I_CALLBACK_PF_STATUS_SET = ' '
i_callback_user_command = gt_callback_subroutine
* I_STRUCTURE_NAME =
is_layout = it_layout
it_fieldcat = it_fieldcat
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
* I_SAVE = ' '
* IS_VARIANT =
* IT_EVENTS =
* IT_EVENT_EXIT =
* IS_PRINT =
* IS_REPREP_ID =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_STARlv_line = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* IR_SALV_LIST_ADAPTER =
* IT_EXCEPT_QINFO =
* I_SUPPRESS_EMPTY_DATA = ABAP_FALSE
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = it_mara
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. "f_display_list
*&---------------------------------------------------------------------*
*& Form f_top_of_page
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM f_top_of_page.
DATA: it_header TYPE slis_t_listheader,
wa_header TYPE slis_listheader,
lv_line LIKE wa_header-info,
ld_lines TYPE i,
ld_linesc(10) TYPE c.
* Title
wa_header-typ = 'H'.
wa_header-info = 'MARA Table Report'.
APPEND wa_header TO it_header.
CLEAR wa_header.
* Date
wa_header-typ = 'S'.
wa_header-key = 'Date: '.
CONCATENATE sy-datum+6(2) '.'
sy-datum+4(2) '.'
sy-datum(4) INTO wa_header-info. "todays date
APPEND wa_header TO it_header.
CLEAR: wa_header.
* Total No. of Records Selected
DESCRIBE TABLE it_mara LINES ld_lines.
ld_linesc = ld_lines.
CONCATENATE 'Total No. of Records Selected: ' ld_linesc
INTO lv_line SEPARATED BY space.
wa_header-typ = 'A'.
wa_header-info = lv_line.
APPEND wa_header TO it_header.
CLEAR: wa_header, lv_line.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = it_header.
.
CLEAR it_header.
ENDFORM. "TOP-OF-PAGE
Serkan AKKAVAK
Bilgisayar Mühendisi
serkurumsal@yandex.com
Social Plugin