OOABAP-ALV REPORT -CELL EDIT
*&---------------------------------------------------------------------*
*& Report ZMANI_F
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZMANI_F.
TYPE-POOLS: COL.
TYPES: BEGIN OF TY_MARA,
MATNR TYPE MARA-MATNR,
MTART TYPE MARA-MTART,
MEINS TYPE MARA-MEINS,
STYLE TYPE LVC_T_STYL,
COLORS TYPE LVC_T_SCOL,
END OF TY_MARA.
DATA: IT_MARA TYPE TABLE OF TY_MARA,
WA_MARA TYPE TY_MARA.
DATA:IT_FCAT TYPE LVC_T_FCAT,
WA_FCAT LIKE LINE OF IT_FCAT.
DATA: WA_STYLE TYPE LINE OF LVC_T_STYL ,
WA_COLORS TYPE LINE OF LVC_T_SCOL.
DATA:WA_LAYOUT TYPE LVC_S_LAYO .
FIELD-SYMBOLS: <WA_DATA> TYPE TY_MARA.
SELECT-OPTIONS: S_MATNR FOR WA_MARA-MATNR.
START-OF-SELECTION.
PERFORM FETCH_DATA5.
PERFORM FIELDCAT.
PERFORM DISPLAY_DATA3.
*&---------------------------------------------------------------------*
*& Form FETCH_DATA5
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FETCH_DATA5 .
SELECT MATNR MTART MEINS FROM MARA
INTO CORRESPONDING FIELDS OF TABLE IT_MARA UP TO 100 ROWS.
IF SY-SUBRC = 0.
LOOP AT IT_MARA ASSIGNING <WA_DATA>.
IF <WA_DATA>-MEINS = 'EA' OR
<WA_DATA>-MEINS = 'KG'.
WA_STYLE-FIELDNAME = 'MEINS'.
IF <WA_DATA>-MEINS = 'EA'.
WA_STYLE-STYLE = CL_GUI_ALV_GRID=>MC_STYLE_DISABLED.
ENDIF.
APPEND WA_STYLE TO <WA_DATA>-STYLE.
CLEAR WA_STYLE.
WA_COLORS-FNAME = 'MEINS'.
IF <WA_DATA>-MEINS = 'EA'.
WA_COLORS-COLOR-COL = col_positive .
ELSE .
WA_COLORS-COLOR-COL = COL_negative .
ENDIF.
WA_COLORS-COLOR-INT = 1.
APPEND WA_COLORS TO <WA_DATA>-COLORS.
CLEAR WA_COLORS.
ENDIF.
ENDLOOP.
ENDIF.
ENDFORM. " FETCH_DATA5
*&---------------------------------------------------------------------*
*& Form FIELDCAT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FIELDCAT .
WA_FCAT-FIELDNAME = 'MATNR'.
WA_FCAT-REF_TABLE = 'MARA'.
WA_FCAT-REF_FIELD = 'MATNR'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
WA_FCAT-FIELDNAME = 'MTART'.
WA_FCAT-REF_TABLE = 'MARA'.
WA_FCAT-REF_FIELD = 'MTART'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
WA_FCAT-FIELDNAME = 'MEINS'.
WA_FCAT-REF_TABLE = 'MARA'.
WA_FCAT-REF_FIELD = 'MEINS'.
WA_FCAT-EDIT = 'X'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
WA_LAYOUT-STYLEFNAME = 'STYLE'.
WA_LAYOUT-CTAB_FNAME = 'COLORS'.
ENDFORM. " FIELDCAT
*&---------------------------------------------------------------------*
*& Form DISPLAY_DATA3
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM DISPLAY_DATA3 .
IF IT_MARA IS NOT INITIAL.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER =
* I_BUFFER_ACTIVE =
I_CALLBACK_PROGRAM = SY-CPROG
* 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_LVC = WA_LAYOUT
IT_FIELDCAT_LVC = IT_FCAT
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS_LVC =
* IT_SORT_LVC =
* IT_FILTER_LVC =
* IT_HYPERLINK =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
* I_SAVE = ' '
* IS_VARIANT =
* IT_EVENTS =
* IT_EVENT_EXIT =
* IS_PRINT_LVC =
* IS_REPREP_ID_LVC =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* I_HTML_HEIGHT_TOP =
* I_HTML_HEIGHT_END =
* IT_EXCEPT_QINFO_LVC =
* 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.
ENDIF.
ENDFORM. " DISPLAY_DATA3
*& Report ZMANI_F
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZMANI_F.
TYPE-POOLS: COL.
TYPES: BEGIN OF TY_MARA,
MATNR TYPE MARA-MATNR,
MTART TYPE MARA-MTART,
MEINS TYPE MARA-MEINS,
STYLE TYPE LVC_T_STYL,
COLORS TYPE LVC_T_SCOL,
END OF TY_MARA.
DATA: IT_MARA TYPE TABLE OF TY_MARA,
WA_MARA TYPE TY_MARA.
DATA:IT_FCAT TYPE LVC_T_FCAT,
WA_FCAT LIKE LINE OF IT_FCAT.
DATA: WA_STYLE TYPE LINE OF LVC_T_STYL ,
WA_COLORS TYPE LINE OF LVC_T_SCOL.
DATA:WA_LAYOUT TYPE LVC_S_LAYO .
FIELD-SYMBOLS: <WA_DATA> TYPE TY_MARA.
SELECT-OPTIONS: S_MATNR FOR WA_MARA-MATNR.
START-OF-SELECTION.
PERFORM FETCH_DATA5.
PERFORM FIELDCAT.
PERFORM DISPLAY_DATA3.
*&---------------------------------------------------------------------*
*& Form FETCH_DATA5
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FETCH_DATA5 .
SELECT MATNR MTART MEINS FROM MARA
INTO CORRESPONDING FIELDS OF TABLE IT_MARA UP TO 100 ROWS.
IF SY-SUBRC = 0.
LOOP AT IT_MARA ASSIGNING <WA_DATA>.
IF <WA_DATA>-MEINS = 'EA' OR
<WA_DATA>-MEINS = 'KG'.
WA_STYLE-FIELDNAME = 'MEINS'.
IF <WA_DATA>-MEINS = 'EA'.
WA_STYLE-STYLE = CL_GUI_ALV_GRID=>MC_STYLE_DISABLED.
ENDIF.
APPEND WA_STYLE TO <WA_DATA>-STYLE.
CLEAR WA_STYLE.
WA_COLORS-FNAME = 'MEINS'.
IF <WA_DATA>-MEINS = 'EA'.
WA_COLORS-COLOR-COL = col_positive .
ELSE .
WA_COLORS-COLOR-COL = COL_negative .
ENDIF.
WA_COLORS-COLOR-INT = 1.
APPEND WA_COLORS TO <WA_DATA>-COLORS.
CLEAR WA_COLORS.
ENDIF.
ENDLOOP.
ENDIF.
ENDFORM. " FETCH_DATA5
*&---------------------------------------------------------------------*
*& Form FIELDCAT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FIELDCAT .
WA_FCAT-FIELDNAME = 'MATNR'.
WA_FCAT-REF_TABLE = 'MARA'.
WA_FCAT-REF_FIELD = 'MATNR'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
WA_FCAT-FIELDNAME = 'MTART'.
WA_FCAT-REF_TABLE = 'MARA'.
WA_FCAT-REF_FIELD = 'MTART'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
WA_FCAT-FIELDNAME = 'MEINS'.
WA_FCAT-REF_TABLE = 'MARA'.
WA_FCAT-REF_FIELD = 'MEINS'.
WA_FCAT-EDIT = 'X'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
WA_LAYOUT-STYLEFNAME = 'STYLE'.
WA_LAYOUT-CTAB_FNAME = 'COLORS'.
ENDFORM. " FIELDCAT
*&---------------------------------------------------------------------*
*& Form DISPLAY_DATA3
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM DISPLAY_DATA3 .
IF IT_MARA IS NOT INITIAL.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER =
* I_BUFFER_ACTIVE =
I_CALLBACK_PROGRAM = SY-CPROG
* 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_LVC = WA_LAYOUT
IT_FIELDCAT_LVC = IT_FCAT
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS_LVC =
* IT_SORT_LVC =
* IT_FILTER_LVC =
* IT_HYPERLINK =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
* I_SAVE = ' '
* IS_VARIANT =
* IT_EVENTS =
* IT_EVENT_EXIT =
* IS_PRINT_LVC =
* IS_REPREP_ID_LVC =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* I_HTML_HEIGHT_TOP =
* I_HTML_HEIGHT_END =
* IT_EXCEPT_QINFO_LVC =
* 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.
ENDIF.
ENDFORM. " DISPLAY_DATA3
Comments
Post a Comment