Trafic light using alv.
Based the select option value it display the trafic lights in alv grid.
TABLES: MARA.
TYPE-POOLS: SLIS,ICON.
TYPES: BEGIN OF TY_MARA,
MATNR TYPE MARA-MATNR,
ERSDA TYPE MARA-ERSDA,
ERNAM TYPE MARA-ERNAM,
PSTAT TYPE MARA-PSTAT,
MATKL TYPE MARA-MATKL,
END OF TY_MARA.
TYPES:BEGIN OF TY_MARA1,
ICON TYPE CHAR4.
INCLUDE TYPE TY_MARA.
TYPES: END OF TY_MARA1.
DATA: LS_MARA TYPE TY_MARA,
LT_MARA TYPE STANDARD TABLE OF TY_MARA,
LS_FINAL TYPE TY_MARA1,
LT_FINAL TYPE TABLE OF TY_MARA1,
LT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
LS_FIELDCAT TYPE SLIS_FIELDCAT_ALV,
LS_LAYOUT TYPE SLIS_LAYOUT_ALV,
TEMP TYPE MARA-MATNR.
CONSTANTS: program TYPE syrepid VALUE sy-repid.
SELECT-OPTIONS: S_MATNR FOR MARA-MATNR.
IF SY-SUBRC EQ 0.
SELECT MATNR
ERSDA
ERNAM
PSTAT
MATKL
FROM MARA INTO TABLE LT_MARA .
"WHERE MATNR IN S_MATNR.
MESSAGE 'THE DATA FOUND' TYPE 'I'.
ELSE.
*
* MESSAGE 'THE DATA NOT FOUND' TYPE 'I'.
ENDIF.
PERFORM POP_RECORD.
PERFORM DISPLAY.
*&---------------------------------------------------------------------*
*& FORM POP_RECORD
*&---------------------------------------------------------------------*
* TEXT
*----------------------------------------------------------------------*
* --> P1 TEXT
* <-- P2 TEXT
*----------------------------------------------------------------------*
FORM POP_RECORD .
LOOP AT LT_MARA INTO LS_MARA.
CLEAR TEMP.
TEMP = LS_MARA-MATNR.
IF TEMP IN S_MATNR. "checking the selection option values
LS_FINAL-ICON = ICON_GREEN_LIGHT.
ELSE.
LS_FINAL-ICON = ICON_RED_LIGHT.
* ELSE.
*
* LS_FINAL-ICON = ICON_YELLOW_LIGHT.
ENDIF.
LS_FINAL-MATNR = LS_MARA-MATNR.
LS_FINAL-ERSDA = LS_FINAL-ERSDA.
LS_FINAL-ERNAM = LS_FINAL-ERNAM.
LS_FINAL-PSTAT = LS_FINAL-PSTAT.
LS_FINAL-MATKL = LS_FINAL-MATKL.
APPEND LS_FINAL TO LT_FINAL.
CLEAR LS_FINAL.
ENDLOOP.
REFRESH LT_MARA.
ENDFORM. " POP_RECORD
*&---------------------------------------------------------------------*
*& FORM DISPLAY
*&---------------------------------------------------------------------*
* TEXT
*----------------------------------------------------------------------*
* --> P1 TEXT
* <-- P2 TEXT
*----------------------------------------------------------------------*
FORM DISPLAY .
PERFORM F_cat.
PERFORM P_LAYOUT.
PERFORM ALV.
ENDFORM. " DISPLAY
*
*&---------------------------------------------------------------------*
*& FORM P_LAYOUT
*&---------------------------------------------------------------------*
* TEXT
*----------------------------------------------------------------------*
* --> P1 TEXT
* <-- P2 TEXT
*----------------------------------------------------------------------*
FORM P_LAYOUT .
LS_LAYOUT-ZEBRA = 'X'.
LS_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
ENDFORM. " P_LAYOUT
*&---------------------------------------------------------------------*
*& FORM ALV
*&---------------------------------------------------------------------*
* TEXT
*----------------------------------------------------------------------*
* --> P1 TEXT
* <-- P2 TEXT
*----------------------------------------------------------------------*
FORM ALV .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER = ' '
* I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = program
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND = ' '
* I_CALLBACK_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 = LS_LAYOUT
IT_FIELDCAT = LT_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_START_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 = LT_FINAL
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. " ALV
**&---------------------------------------------------------------------*
**& Form FIELDCAT
**&---------------------------------------------------------------------*
** text
**----------------------------------------------------------------------*
** --> p1 text
** <-- p2 text
**----------------------------------------------------------------------*
*FORM FIELDCAT .
*
*ENDFORM. " FIELDCAT
*&---------------------------------------------------------------------*
*& Form F_CAT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM F_CAT .
DEFINE FCAT_MERGE.
LS_FIELDCAT-COL_POS = &1.
LS_FIELDCAT-FIELDNAME = &2.
IF LS_FIELDCAT-FIELDNAME = 'ICON'.
LS_FIELDCAT-ICON = 'X'. " DISPLAY THE FIELD AS ICON
LS_FIELDCAT-SELTEXT_M = 'OCCUPENCY STATUS'. " COLUMN HEADER
LS_FIELDCAT-INTTYPE = 'C'.
LS_FIELDCAT-OUTPUTLEN = '4'.
ENDIF.
LS_FIELDCAT-REF_FIELDNAME = &3.
LS_FIELDCAT-REF_TABNAME = &4.
IF LS_FIELDCAT-FIELDNAME = 'MATNR'.
LS_FIELDCAT-CFIELDNAME = 'MATNR'.
LS_FIELDCAT-CTABNAME = 'LT_FINAL'.
ENDIF.
APPEND LS_FIELDCAT TO LT_FIELDCAT.
CLEAR LS_FIELDCAT.
END-OF-DEFINITION.
FCAT_MERGE '1' 'ICON' '' ''.
FCAT_MERGE '2' 'MATNR' 'MATNR' 'MARA'.
FCAT_MERGE '3' 'ERSDA' 'ERSDA' 'MARA'.
FCAT_MERGE '4' 'ERNAM' 'ERNAM' 'MARA'.
FCAT_MERGE '5' 'PSTAT' 'PSTAT' 'MARA'.
FCAT_MERGE '6' 'MATKL' 'MATKL' 'MARA'.
ENDFORM. " F_CAT
TYPE-POOLS: SLIS,ICON.
TYPES: BEGIN OF TY_MARA,
MATNR TYPE MARA-MATNR,
ERSDA TYPE MARA-ERSDA,
ERNAM TYPE MARA-ERNAM,
PSTAT TYPE MARA-PSTAT,
MATKL TYPE MARA-MATKL,
END OF TY_MARA.
TYPES:BEGIN OF TY_MARA1,
ICON TYPE CHAR4.
INCLUDE TYPE TY_MARA.
TYPES: END OF TY_MARA1.
DATA: LS_MARA TYPE TY_MARA,
LT_MARA TYPE STANDARD TABLE OF TY_MARA,
LS_FINAL TYPE TY_MARA1,
LT_FINAL TYPE TABLE OF TY_MARA1,
LT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
LS_FIELDCAT TYPE SLIS_FIELDCAT_ALV,
LS_LAYOUT TYPE SLIS_LAYOUT_ALV,
TEMP TYPE MARA-MATNR.
CONSTANTS: program TYPE syrepid VALUE sy-repid.
SELECT-OPTIONS: S_MATNR FOR MARA-MATNR.
IF SY-SUBRC EQ 0.
SELECT MATNR
ERSDA
ERNAM
PSTAT
MATKL
FROM MARA INTO TABLE LT_MARA .
"WHERE MATNR IN S_MATNR.
MESSAGE 'THE DATA FOUND' TYPE 'I'.
ELSE.
*
* MESSAGE 'THE DATA NOT FOUND' TYPE 'I'.
ENDIF.
PERFORM POP_RECORD.
PERFORM DISPLAY.
*&---------------------------------------------------------------------*
*& FORM POP_RECORD
*&---------------------------------------------------------------------*
* TEXT
*----------------------------------------------------------------------*
* --> P1 TEXT
* <-- P2 TEXT
*----------------------------------------------------------------------*
FORM POP_RECORD .
LOOP AT LT_MARA INTO LS_MARA.
CLEAR TEMP.
TEMP = LS_MARA-MATNR.
IF TEMP IN S_MATNR. "checking the selection option values
LS_FINAL-ICON = ICON_GREEN_LIGHT.
ELSE.
LS_FINAL-ICON = ICON_RED_LIGHT.
* ELSE.
*
* LS_FINAL-ICON = ICON_YELLOW_LIGHT.
ENDIF.
LS_FINAL-MATNR = LS_MARA-MATNR.
LS_FINAL-ERSDA = LS_FINAL-ERSDA.
LS_FINAL-ERNAM = LS_FINAL-ERNAM.
LS_FINAL-PSTAT = LS_FINAL-PSTAT.
LS_FINAL-MATKL = LS_FINAL-MATKL.
APPEND LS_FINAL TO LT_FINAL.
CLEAR LS_FINAL.
ENDLOOP.
REFRESH LT_MARA.
ENDFORM. " POP_RECORD
*&---------------------------------------------------------------------*
*& FORM DISPLAY
*&---------------------------------------------------------------------*
* TEXT
*----------------------------------------------------------------------*
* --> P1 TEXT
* <-- P2 TEXT
*----------------------------------------------------------------------*
FORM DISPLAY .
PERFORM F_cat.
PERFORM P_LAYOUT.
PERFORM ALV.
ENDFORM. " DISPLAY
*
*&---------------------------------------------------------------------*
*& FORM P_LAYOUT
*&---------------------------------------------------------------------*
* TEXT
*----------------------------------------------------------------------*
* --> P1 TEXT
* <-- P2 TEXT
*----------------------------------------------------------------------*
FORM P_LAYOUT .
LS_LAYOUT-ZEBRA = 'X'.
LS_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
ENDFORM. " P_LAYOUT
*&---------------------------------------------------------------------*
*& FORM ALV
*&---------------------------------------------------------------------*
* TEXT
*----------------------------------------------------------------------*
* --> P1 TEXT
* <-- P2 TEXT
*----------------------------------------------------------------------*
FORM ALV .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER = ' '
* I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = program
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND = ' '
* I_CALLBACK_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 = LS_LAYOUT
IT_FIELDCAT = LT_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_START_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 = LT_FINAL
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. " ALV
**&---------------------------------------------------------------------*
**& Form FIELDCAT
**&---------------------------------------------------------------------*
** text
**----------------------------------------------------------------------*
** --> p1 text
** <-- p2 text
**----------------------------------------------------------------------*
*FORM FIELDCAT .
*
*ENDFORM. " FIELDCAT
*&---------------------------------------------------------------------*
*& Form F_CAT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM F_CAT .
DEFINE FCAT_MERGE.
LS_FIELDCAT-COL_POS = &1.
LS_FIELDCAT-FIELDNAME = &2.
IF LS_FIELDCAT-FIELDNAME = 'ICON'.
LS_FIELDCAT-ICON = 'X'. " DISPLAY THE FIELD AS ICON
LS_FIELDCAT-SELTEXT_M = 'OCCUPENCY STATUS'. " COLUMN HEADER
LS_FIELDCAT-INTTYPE = 'C'.
LS_FIELDCAT-OUTPUTLEN = '4'.
ENDIF.
LS_FIELDCAT-REF_FIELDNAME = &3.
LS_FIELDCAT-REF_TABNAME = &4.
IF LS_FIELDCAT-FIELDNAME = 'MATNR'.
LS_FIELDCAT-CFIELDNAME = 'MATNR'.
LS_FIELDCAT-CTABNAME = 'LT_FINAL'.
ENDIF.
APPEND LS_FIELDCAT TO LT_FIELDCAT.
CLEAR LS_FIELDCAT.
END-OF-DEFINITION.
FCAT_MERGE '1' 'ICON' '' ''.
FCAT_MERGE '2' 'MATNR' 'MATNR' 'MARA'.
FCAT_MERGE '3' 'ERSDA' 'ERSDA' 'MARA'.
FCAT_MERGE '4' 'ERNAM' 'ERNAM' 'MARA'.
FCAT_MERGE '5' 'PSTAT' 'PSTAT' 'MARA'.
FCAT_MERGE '6' 'MATKL' 'MATKL' 'MARA'.
ENDFORM. " F_CAT
No comments:
Post a Comment