Monday, September 25, 2023

ALV report using OOPS concept.

 REPORT ZALV_USING_OOPS.


TABLES VBAK.
INCLUDE ZALV_TOP.
INCLUDE ZALV_SEL.
INCLUDE ZALV_IMP.

START-OF-SELECTION.
PERFORM FETCH_DATA USING S_VBELN[] CHANGING  IT_VBAK.
PERFORM FILE_FCODE.
 CALL SCREEN 9000.


*&---------------------------------------------------------------------*
*&  Include           ZALV_TOP
*&---------------------------------------------------------------------*

TYPES BEGIN OF TY_VBAK,
       VBELN  TYPE VBELN_VA,        "Sales Document
       ERDAT  TYPE ERDAT,          "Date on Which Record Was Created
       ERZET  TYPE ERZET,         "Entry time
        END OF TY_VBAK.

DATA IT_VBAK TYPE TABLE OF TY_VBAK,
       WA_VBAK TYPE TY_VBAK.

DATA :    IT_FCAT TYPE LVC_T_FCAT,
          WA_FCAT TYPE LVC_S_FCAT,
          IT_EXCLUDE TYPE UI_FUNCTIONS,
          WA_EXCLUDE TYPE UI_FUNC,

          WA_LAYOUT TYPE LVC_S_LAYO.

 DATA RS1 TYPE REF TO CL_GUI_CUSTOM_CONTAINER,
        RG1 TYPE REF TO CL_GUI_ALV_GRID.
 DATA LVPOS TYPE I.

*&---------------------------------------------------------------------*
*&  Include           ZALV_SEL
*&---------------------------------------------------------------------*

SELECT-OPTIONS S_VBELN FOR VBAK-VBELN.

*&---------------------------------------------------------------------*
*&  Include           ZALV_IMP
*&---------------------------------------------------------------------*


*&---------------------------------------------------------------------*
*&      Form  FETCH_DATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_S_VBELN[]  text
*      <--P_IT_VBAK  text
*----------------------------------------------------------------------*
FORM FETCH_DATA  USING    P_S_VBELN LIKE S_VBELN[]
                 CHANGING P_IT_VBAK LIKE IT_VBAK.
   SELECT
    VBELN
    ERDAT
    ERZET
    FROM VBAK INTO TABLE IT_VBAK
    WHERE VBELN IN S_VBELN.

    LVPOS LVPOS + 1.
     WA_FCAT-COL_POS LVPOS.
     WA_FCAT-FIELDNAME 'VBELN'.
     WA_FCAT-COLTEXT 'Sales Document'.
     APPEND  WA_FCAT TO IT_FCAT.
     CLEAR WA_FCAT.

     LVPOS LVPOS + 1.
     WA_FCAT-COL_POS LVPOS.
     WA_FCAT-FIELDNAME 'ERDAT'.
     WA_FCAT-COLTEXT 'Date on Created'.
     APPEND  WA_FCAT TO IT_FCAT.
     CLEAR WA_FCAT.

     LVPOS LVPOS + 1.
     WA_FCAT-COL_POS LVPOS.
     WA_FCAT-FIELDNAME 'ERZET'.
     WA_FCAT-COLTEXT 'Entry time'.
     APPEND  WA_FCAT TO IT_FCAT.
     CLEAR WA_FCAT.
   ENDFORM.
*&---------------------------------------------------------------------*
*&      Form  FILE_FCODE
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM FILE_FCODE .
  WA_EXCLUDE CL_GUI_ALV_GRID=>MC_FC_SUM.
  APPEND WA_EXCLUDE TO IT_EXCLUDE.
  CLEAR WA_EXCLUDE.

  WA_EXCLUDE cl_gui_alv_grid=>MC_FC_LOC_INSERT_ROW.
  APPEND WA_EXCLUDE TO IT_EXCLUDE.
  CLEAR WA_EXCLUDE.

WA_EXCLUDE CL_GUI_ALV_GRID=>MC_FC_SORT_ASC.
  APPEND WA_EXCLUDE TO IT_EXCLUDE.
  CLEAR WA_EXCLUDE.

  WA_EXCLUDE CL_GUI_ALV_GRID=>MC_FC_GRAPH.
  APPEND WA_EXCLUDE TO IT_EXCLUDE.
  CLEAR WA_EXCLUDE.

  WA_EXCLUDE CL_GUI_ALV_GRID=>MC_FC_VIEWS.
  APPEND WA_EXCLUDE TO IT_EXCLUDE.
  CLEAR WA_EXCLUDE.

  WA_EXCLUDE CL_GUI_ALV_GRID=>MC_FC_SORT_DSC.
  APPEND WA_EXCLUDE TO IT_EXCLUDE.
  CLEAR WA_EXCLUDE.

   WA_EXCLUDE CL_GUI_ALV_GRID=>MC_FC_DETAIL.
  APPEND WA_EXCLUDE TO IT_EXCLUDE.
  CLEAR WA_EXCLUDE.

   WA_EXCLUDE CL_GUI_ALV_GRID=>MC_FC_INFO.
  APPEND WA_EXCLUDE TO IT_EXCLUDE.
  CLEAR WA_EXCLUDE.
***FUNCTION CODE FOR FILTER ICON
**WA_EXCLUDING-FCODE = '@ILT'.
**APPEND WA_EXCLUDING TO IT_EXCLUDING.
**CLEAR WA_EXCLUDE.
ENDFORM.
*&---------------------------------------------------------------------*
*&      Module  STATUS_9000  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE STATUS_9000 OUTPUT.
  SET PF-STATUS 'PFSTATUS9000'.
  SET TITLEBAR 'TITLE9000'.

*  CREATION OF 1ST OBJ
 CREATE OBJECT RS1
   EXPORTING
*     PARENT                      =
     CONTAINER_NAME              'CONT'      "IT IS GIVEN IN SCREEN FOR CONTAINER
*     STYLE                       =
*     LIFETIME                    = lifetime_default
*     REPID                       =
*     DYNNR                       =
*     NO_AUTODEF_PROGID_DYNNR     =
   EXCEPTIONS
     CNTL_ERROR                  1
     CNTL_SYSTEM_ERROR           2
     CREATE_ERROR                3
     LIFETIME_ERROR              4
     LIFETIME_DYNPRO_DYNPRO_LINK 5
     OTHERS                      6
     .
 IF SY-SUBRC <> 0.
*  MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*             WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
 ENDIF.
*CREATE 2ND OBJECT
CREATE OBJECT RG1
  EXPORTING
*    I_SHELLSTYLE      = 0
*    I_LIFETIME        =
    I_PARENT          RS1
*    I_APPL_EVENTS     = space
*    I_PARENTDBG       =
*    I_APPLOGPARENT    =
*    I_GRAPHICSPARENT  =
*    I_NAME            =
*    I_FCAT_COMPLETE   = SPACE
  EXCEPTIONS
    ERROR_CNTL_CREATE 1
    ERROR_CNTL_INIT   2
    ERROR_CNTL_LINK   3
    ERROR_DP_CREATE   4
    OTHERS            5
    .
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.


WA_LAYOUT-GRID_TITLE 'CONTROLLING DATA'.
   WA_LAYOUT-ZEBRA 'X'.
*  WA_LAYOUT-NO_TOOLBAR = 'X'.
WA_LAYOUT-CWIDTH_OPT 'X'.

CALL METHOD RG1->SET_TABLE_FOR_FIRST_DISPLAY  "call standard method for output
  EXPORTING
*    I_BUFFER_ACTIVE               =
*    I_BYPASSING_BUFFER            =
*    I_CONSISTENCY_CHECK           =
*    I_STRUCTURE_NAME              =
*    IS_VARIANT                    =
*    I_SAVE                        =
*    I_DEFAULT                     = 'X'
    IS_LAYOUT                     WA_LAYOUT
*    IS_PRINT                      =
*    IT_SPECIAL_GROUPS             =
    IT_TOOLBAR_EXCLUDING          IT_EXCLUDE
*    IT_HYPERLINK                  =
*    IT_ALV_GRAPHICS               =
*    IT_EXCEPT_QINFO               =
*    IR_SALV_ADAPTER               =
  CHANGING
    IT_OUTTAB                     IT_VBAK
    IT_FIELDCATALOG               IT_FCAT
*    IT_SORT                       =
*    IT_FILTER                     =
  EXCEPTIONS
    INVALID_PARAMETER_COMBINATION 1
    PROGRAM_ERROR                 2
    TOO_MANY_LINES                3
    OTHERS                        4
        .
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.
ENDMODULE.

*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_9000  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_9000 INPUT.
*  IF SY-UCOMM = 'BACK'.
*    LEAVE PROGRAM.
*    ENDIF.
CASE SY-UCOMM .
  WHEN 'EXIT' .
     LEAVE PROGRAM.
  WHEN 'BACK' OR 'CANCEL'.
       LEAVE PROGRAM.
  WHEN 'SAVE'.
    MESSAGE 'PROGRAM WAS SAVED' TYPE 'I'.
ENDCASE.
ENDMODULE.

INPUT SCREEN:


OUTPUT:



No comments:

Post a Comment

Translation of language in Smart Forms.

  Step by Step process to Translate English language to Spanish language in smart form. 1. Go to T-Code SE63 in command bar and then enter. ...