REPORT ZBC_ALV_01 MESSAGE-ID ZBC.
INCLUDE ZBC_ALV_01TOP.
INCLUDE ZBC_ALV_01FORM.
START-OF-SELECTION.
PERFORM get_data.
END-OF-SELECTION.
IF GT_STU IS NOT INITIAL.
PERFORM display_data.
ELSE.
MESSAGE S001 WITH 'STUDENT INFO . iS EMPTY!' DISPLAY LIKE 'E'.
ENDIF.
ZBC_ALV_01TOP
*&---------------------------------------------------------------------*
*& Include ZBC_ALV_01TOP
*&---------------------------------------------------------------------*
TYPE-POOLs: SLIS .
TYPES: BEGIN OF GTY_STU .
TYPES: BOX TYPE C LENGTH 1.
INCLUDE STRUCTURE ZSTU .
TYPES: ICON TYPE C LENGTH 4 . "icon
TYPES: CHECK TYPE C LENGTH 1 . "checkbox
TYPES: LINE_COLOR TYPE C LENGTH 4 . "coloer
TYPES: FIELD_COLOR TYPE LVC_T_SCOL. " filed color
TYPES: END OF GTY_STU .
DATA: GS_VARIANT TYPE DISVARIANT.
DATA GT_STU TYPE TABLE OF GTY_STU .
DATA GS_STU TYPE GTY_STU .
DATA GS_LAYOUT TYPE SLIS_LAYOUT_ALV .
DATA GT_FIELDCAT TYPE slis_t_fieldcat_alv .
DATA GS_FIELDCAT TYPE slis_fieldcat_alv .
DATA GT_SORT TYPE slis_t_sortinfo_alv.
DATA GS_SORT TYPE slis_sortinfo_alv.
DATA GT_FILTER TYPE slis_t_filter_alv.
DATA GS_FILTER TYPE slis_filter_alv.
DATA GT_EVENTS TYPE slis_t_event.
DATA GS_EVENTS TYPE slis_alv_event.
** marco at most 9 parameters
DEFINE %%APPEND_FIELDCAT.
CLEAR GS_FIELDCAT.
GS_FIELDCAT-COL_POS = &1 .
GS_FIELDCAT-FIELDNAME = &2.
GS_FIELDCAT-OUTPUTLEN = &3.
GS_FIELDCAT-SELTEXT_M = &4.
CASE &2 .
WHEN 'ZCODE'.
GS_FIELDCAT-KEY = 'X'.
WHEN 'ICON' .
GS_FIELDCAT-ICON = 'X'.
WHEN 'CHECK'.
GS_FIELDCAT-CHECKBOX = 'X'.
WHEN 'WEIGHT'.
GS_FIELDCAT-DO_SUM = 'X' .
GS_FIELDCAT-HOTSPOT = 'X' .
* GS_FIELDCAT-QUANTITY = 'KG' .
GS_FIELDCAT-qfieldname = 'ZUNIT' .
GS_FIELDCAT-EMPHASIZE = 'C601' .
WHEN 'ZUNIT'.
GS_FIELDCAT-EMPHASIZE = 'C600' .
ENDCASE.
APPEND GS_FIELDCAT TO GT_FIELDCAT.
END-OF-DEFINITION.
SELECT-OPTIONS R_ZCODE FOR GS_STU-ZSCHOOL.
ZBC_ALV_01FORM
*&---------------------------------------------------------------------*
*& Include ZBC_ALV_01FORM
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form GET_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM get_data .
DATA LS_SCOL TYPE LVC_S_SCOL.
SELECT *
FROM ZSTU
INTO CORRESPONDING FIELDS OF TABLE GT_STU
WHERE ZSCHOOL IN R_ZCODE.
LOOP AT GT_STU INTO GS_STU.
"icon setting
IF GS_STU-SEX = 'F'.
GS_STU-ICON = ICON_GREEN_LIGHT.
ELSE.
GS_STU-ICON = ICON_RED_LIGHT.
ENDIF.
" line color
IF GS_STU-SEX IS INITIAL.
GS_STU-LINE_COLOR = 'C611'.
ENDIF.
"cell color
IF GS_STU-SEX IS INITIAL.
CLEAR LS_SCOL .
LS_SCOL-FNAME = 'ZCODE'. "filed
LS_SCOL-COLOR-COL = 5 . "color
LS_S