Simple Example for the ALV Interactive report using user_command.
Step1: Data decelerations.
Step2: Get the data from MARA.
Step3: Build field catalog.
Step4: Display ALV.
Step5: Implement user command.
REPORT ztest.
TABLES mara.
TYPE-POOLS: slis.
TYPES: BEGIN OF ty_mara,
matnr TYPE mara-matnr,
ersda TYPE mara-ersda,
ernam TYPE mara-ernam,
END OF ty_mara.
DATA: itab TYPE TABLE OF ty_mara.
DATA: it_fieldcat TYPE slis_t_fieldcat_alv,
wa_fcat TYPE slis_fieldcat_alv.
SELECTION-SCREEN : BEGIN OF BLOCK b1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS: s_matnr FOR mara-matnr OBLIGATORY.
SELECTION-SCREEN: END OF BLOCK b1.
START-OF-SELECTION.
PERFORM get_data.
PERFORM display_data.
*&---------------------------------------------------------------------*
*& Form GET_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM get_data .
SELECT matnr ersda ernam FROM mara INTO TABLE itab WHERE matnr IN s_matnr.
ENDFORM. " GET_DATA
*&---------------------------------------------------------------------*
*& Form DISPLAY_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM display_data .
PERFORM create_fieldcat.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
* I_CALLBACK_PF_STATUS_SET = ' '
i_callback_user_command = 'INT_ALV1'
it_fieldcat = it_fieldcat
i_default = 'X'
i_save = 'I'
TABLES
t_outtab = itab[]
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. " DISPLAY_DATA
*&---------------------------------------------------------------------*
*& Form CREATE_FIELDCAT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM create_fieldcat .
wa_fcat-fieldname = 'MATNR'.
wa_fcat-tabname = 'ITAB'.
wa_fcat-seltext_m = 'MAT. NO.'.
APPEND wa_fcat TO it_fieldcat.
CLEAR wa_fcat.
wa_fcat-fieldname = 'ERSDA'.
wa_fcat-tabname = 'ITAB'.
wa_fcat-seltext_m = 'DATE'.
APPEND wa_fcat TO it_fieldcat.
CLEAR wa_fcat.
wa_fcat-fieldname = 'ERNAM'.
wa_fcat-tabname = 'ITAB'.
wa_fcat-seltext_m = 'PERSON NAME '.
APPEND wa_fcat TO it_fieldcat.
CLEAR wa_fcat.
ENDFORM. " CREATE_FIELDCAT
FORM int_alv1 USING s_comm TYPE sy-ucomm
sfield TYPE slis_selfield.
MESSAGE i000(zmsg) WITH sfield-value.
ENDFORM.
No comments:
Post a Comment