Search This Blog

Monday, February 15, 2021

Events in Report

 

Classical Reports have following events, these events are common for Interactive Reports:

  • LOAD-OF-PROGRAM : First event fired, loads program in memory
  • INITIALIZATION: Initialize variable
  • START-OF-SELECTION : Actual Business Logic (After START-OF-SELECTION)
  • END-OF-SELECTION : To end above
  • AT SELECTION-SCREEN : To validate Multiple Input fields (After Initialization and before START-OF-SELECTION) (After
  • AT SELECTION-SCREEN OUTPUT: To manipulate Dynamic screen
  • AT SELECTION-SCREEN ON
  • AT SELECTION-SCREEN ON END OF
  • AT SELECTION-SCREEN ON BLOCK
  • AT SELECTION-SCREEN ON RADIOBUTTON GROUP
  • AT SELECTION-SCREEN ON VALUE REQUEST
  • TOP-OF-PAGE : To print heading
  • END-OF-PAGE: To print footer

Events of Interactive Report in SAP ABAP:

  • TOP-OF-PAGE
  • END-OF-PAGE
  • AT-LINE-SELECTION
  • AT USER-COMMAND
  • AT PFnn
  • SET USER-COMMAND


Sample Program : 


  REPORT ZEVENTS.

  TABLESmara.
  TYPE-POOLSslis.

  TYPESBEGIN OF ty_mara,
           matnr TYPE mara-matnr,
           ersda TYPE mara-ersda,   " CREATED ON
           mtart TYPE mara-mtart,   " MATERIAL TYPE
         END OF ty_mara.

  DATAitab TYPE TABLE OF ty_mara,
        wa   TYPE ty_mara.
  DATAit_makt TYPE TABLE OF makt.
  " FIELDCATALOG DECLARATION

*  types: slis_t_fieldcat_alv type slis_fieldcat_alv occurs 1.

*    "SLIS_T_FIELDCAT_ALV" IS A TABLE TYPE WITH STRUCTURE  TYPE "SLIS_FIELDCAT_ALV"

  DATAit_fieldcat TYPE  slis_t_fieldcat_alv,

        wa_fieldcat TYPE slis_fieldcat_alv.



  "****************************** AT SELECTION SCREEN   ******************************

  SELECTION-SCREENBEGIN OF BLOCK b1 WITH FRAME TITLE header.

  PARAMETERSr1 RADIOBUTTON GROUP g1 USER-COMMAND u1" FOR ALV
  PARAMETERSp_mara TYPE mara-matnr MODIF ID abc.

  PARAMETERSr2 RADIOBUTTON GROUP g1 .                  " FOR CLASSICAL
  PARAMETERSp_mtart TYPE mara-mtart MODIF ID xyz.

  SELECTION-SCREENEND OF BLOCK b1.


  "****************************** INITIALIZATION ******************************

  INITIALIZATION.

    header 'SELECTION CRITERIA'.

    p_mara '000000000000000001'.
    p_mtart 'VERP'.

    "****************************** AT SELECTION SCREEN - OUTPUT ******************************

  AT SELECTION-SCREEN OUTPUT.

    LOOP AT SCREEN.
      IF screen-group1 'ABC'.
        IF r2 'X'.
          screen-active 0.

        ELSE.
          screen-active '1'.

        ENDIF.
*             MODIFY SCREEN.
      ENDIF.


      IF screen-group1 'XYZ'.
        IF r1 'X'.
          screen-active 0.
        ELSE.
          screen-active '1'.
        ENDIF.
*             MODIFY SCREEN.
      ENDIF.
      MODIFY SCREEN.
    ENDLOOP.


    "****************************** AT SELECTION SCREEN ******************************


  AT SELECTION-SCREEN.  " FOR WHOLE SELECTION SCREEN VALIDATION
    SELECT SINGLE matnr FROM mara INTO mara-matnr WHERE matnr p_mara OR mtart p_mtart.

    IF sy-subrc NE 0.

      MESSAGE'NOT FOUND' TYPE 'I' DISPLAY LIKE 'I' .

    ENDIF.


*  ***************************** AT SELECTION SCREEN - ON FIELD ******************************


  AT SELECTION-SCREEN ON p_mtart.  " FOR ONLY ON REQUIRED FIELD VALIDATON
    SELECT SINGLE mtart FROM t134 INTO mara-mtart WHERE mtart p_mtart.

    IF sy-subrc NE 0.

      MESSAGE'NOT FOUND' TYPE 'E' DISPLAY LIKE 'I'.

    ENDIF.

*  ***************************** AT SELECTION SCREEN - ON VALUE REQUEST ******************************


  AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_mara.

    TYPESBEGIN OF ty_str,

             matnr TYPE mara-matnr,
             ersda TYPE mara-ersda,

           END OF ty_str.

    DATAitab1 TYPE TABLE OF ty_str.


    SELECT matnr ersda FROM mara INTO TABLE itab1 UP TO 10 ROWS.


    CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
      EXPORTING
*       DDIC_STRUCTURE  = ' '
        retfield        'P_MARA'
*       PVALKEY         = ' '
        dynpprog        sy-repid
        dynpnr          '1000'
        dynprofield     'P_MARA'
*       STEPL           = 0
*       WINDOW_TITLE    =
*       VALUE           = ' '
        value_org       'S'
*       MULTIPLE_CHOICE = ' '
*       DISPLAY         = ' '
*       CALLBACK_PROGRAM       = ' '
*       CALLBACK_FORM   = ' '
*       MARK_TAB        =
*     IMPORTING
*       USER_RESET      =
      TABLES
        value_tab       itab1[]
*       FIELD_TAB       =
*       RETURN_TAB      =
*       DYNPFLD_MAPPING =
      EXCEPTIONS
        parameter_error 1
        no_values_found 2
        OTHERS          3.
    IF sy-subrc <> 0.
*   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*           WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.



    "****************************** START OF SELECTION ******************************

  START-OF-SELECTION.





    PERFORMget_data.
    PERFORMdisplay_data.
*  &---------------------------------------------------------------------*
*  &      Form  GET_DATA
*  &---------------------------------------------------------------------*
*         text
*  ----------------------------------------------------------------------*
*    -->  p1        text
*    <--  p2        text
*  ----------------------------------------------------------------------*
  FORM get_data .

    IF r1 'X'.
      SELECT matnr
      ersda
      mtart FROM mara INTO TABLE itab WHERE matnr p_mara .

    ELSEIF r2 'X'.

      SELECT matnr
      ersda
      mtart FROM mara INTO TABLE itab WHERE mtart p_mtart .
    ENDIF.



  ENDFORM.                    " GET_DATA
*  &---------------------------------------------------------------------*
*  &      Form  DISPLAY_DATA
*  &---------------------------------------------------------------------*
*         text
*  ----------------------------------------------------------------------*
*    -->  p1        text
*    <--  p2        text
*  ----------------------------------------------------------------------*
  FORM display_data .


    wa_fieldcat-fieldname 'MATNR'.
    wa_fieldcat-tabname 'IT_MARA.'.
    wa_fieldcat-seltext_m 'MAT_NO.'.
    APPEND wa_fieldcat TO  it_fieldcat.

    wa_fieldcat-fieldname 'ERSDA'.
    wa_fieldcat-tabname 'IT_MARA'.
    wa_fieldcat-seltext_m 'CRATED ON.'.
    APPEND wa_fieldcat TO  it_fieldcat.


    wa_fieldcat-fieldname 'MTART'.
    wa_fieldcat-tabname 'IT_MARA'.
    wa_fieldcat-seltext_m 'MAT_TYPE'.
    APPEND wa_fieldcat TO  it_fieldcat.


    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
      EXPORTING
*       I_INTERFACE_CHECK       = ' '
*       I_BYPASSING_BUFFER      = ' '
*       I_BUFFER_ACTIVE         = ' '
        i_callback_program      sy-repid
*       I_CALLBACK_PF_STATUS_SET          = ' '
        i_callback_user_command '2ND-SCREEN'
*       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               =
        it_fieldcat             it_fieldcat
*       IT_EXCLUDING            =
*       IT_SPECIAL_GROUPS       =
*       IT_SORT                 =
*       IT_FILTER               =
*     IS_SEL_HIDE             =
      i_default               'X'
      i_save                  'A'
*     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                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



"************  At USER COMMAND **********************************

FORM 2nd-screen USING r_ucomm TYPE sy-ucomm         " CAPTURE CURSOR NEXT ACTION - LIKE SAVE, DOUBLE CLICK
                      r_sel TYPE slis_selfield.   " SLIS_SELFIELD - ---    CURSOR POSTION(VALUE)

  DATAvar1 TYPE mara-matnr.

  var1 r_sel-value.

  SELECT FROM makt INTO TABLE it_makt WHERE matnr var1.

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      i_structure_name 'MAKT'
      i_default        'X'
    TABLES
      t_outtab         it_makt[]
    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.

No comments:

Post a Comment

Pages