Wednesday 25 July 2012

Trafic lights using alv grid.

Trafic light using alv.
Based the select option value it display the trafic lights in alv grid.


TABLES: MARA.
TYPE-POOLS: SLIS,ICON.
TYPESBEGIN 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.

TYPESEND 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.



CONSTANTSprogram 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