Simple ABAP report example

Functional Requirement

Create an ALV report using all the fields from the Custom Table Zorder_p and Zitem_p.

Table Zorder_p
Table Zitem_p

Technical Solution

  • Log in to SAP GUI
  • Open Tcode SE38
  • Write the report starting with ‘Z’ or ‘Y’ and type as ‘Executable’.
  • Write the below syntax
*&---------------------------------------------------------------------*
*& Report ZALV_1
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT zalv_1.
*///////////////////////////////////////////////////////////////////////
*Part 1   Data declaration  starts
*//////////////////////////////////////////////////////////////////////
TYPE-POOLS: slis.

TYPES :BEGIN OF ty_final,
  ordernumber TYPE zordernumber,
createdby TYPE zcreatedby1,
createdtime TYPE zcreatedtime,
totalprice TYPE ztotalprice,
currency TYPE zcurrency,
itemnumber TYPE zitemnumbefr,
itemname TYPE zitemname,
itemprice TYPE zitemprice1,
END OF ty_final.

DATA: it_final TYPE TABLE OF ty_final,
wa_final TYPE ty_final.
*--- ALV structures
DATA: it_fieldcat TYPE slis_t_fieldcat_alv,
      wa_fieldcat TYPE slis_fieldcat_alv.

*///////////////////////////////////////////////////////////////////////
*Part 1   Data declaration  end
*//////////////////////////////////////////////////////////////////////


*///////////////////////////////////////////////////////////////////////
*Part 2 Start of Selection
*//////////////////////////////////////////////////////////////////////

START-OF-SELECTION .




SELECT  a~ordernumber
           ,
        a~createdby ,
          a~createdtime ,
          a~totalprice ,
         a~currency ,
         b~itemnumber ,
          b~itemname ,
           b~itemprice


  FROM zorder_p AS a INNER JOIN  zitem_p AS b
  ON a~ordernumber = b~ordernumber INTO TABLE @it_final




*///////////////////////////////////////////////////////////////////////
*Part 2 Start of Selection ends
*//////////////////////////////////////////////////////////////////////


END-OF-SELECTION .

*///////////////////////////////////////////////////////////////////////
*Part 3   Creation of Field catlog
*//////////////////////////////////////////////////////////////////////


CLEAR wa_fieldcat.
  wa_fieldcat-fieldname = 'ORDERNUMBER'.
  wa_fieldcat-seltext_m = 'ORDER NUMBER'.
  APPEND wa_fieldcat TO it_fieldcat.

  CLEAR wa_fieldcat.
  wa_fieldcat-fieldname = 'CREATEDBY'.
  wa_fieldcat-seltext_m = 'Created BY'.
  APPEND wa_fieldcat TO it_fieldcat.

  CLEAR wa_fieldcat.
  wa_fieldcat-fieldname = 'CREATEDTIME'.
  wa_fieldcat-seltext_m = 'Created TIME'.
  APPEND wa_fieldcat TO it_fieldcat.

  CLEAR wa_fieldcat.
  wa_fieldcat-fieldname = 'TOTALPRICE'.
  wa_fieldcat-seltext_m = 'TOTAL PRICE'.
  APPEND wa_fieldcat TO it_fieldcat.

  CLEAR wa_fieldcat.
  wa_fieldcat-fieldname = 'CURRENCY'.
  wa_fieldcat-seltext_m = 'CURRENCY'.
  APPEND wa_fieldcat TO it_fieldcat.

  CLEAR wa_fieldcat.
  wa_fieldcat-fieldname = 'ITEMNUMBER'.
  wa_fieldcat-seltext_m = 'ITEM NUMBER'.
  APPEND wa_fieldcat TO it_fieldcat.

  CLEAR wa_fieldcat.
  wa_fieldcat-fieldname = 'ITEMNAME'.
  wa_fieldcat-seltext_m = 'ITEM NAME'.
  APPEND wa_fieldcat TO it_fieldcat.

  CLEAR wa_fieldcat.
  wa_fieldcat-fieldname = 'ITEMPRICE'.
  wa_fieldcat-seltext_m = 'ITEM PRICE'.
  APPEND wa_fieldcat TO it_fieldcat.


*///////////////////////////////////////////////////////////////////////
*Part 4  Display of ALV report
*//////////////////////////////////////////////////////////////////////


CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
 EXPORTING
*   I_INTERFACE_CHECK                 = ' '
*   I_BYPASSING_BUFFER                = ' '
*   I_BUFFER_ACTIVE                   = ' '
*   I_CALLBACK_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                  ='ZORDER_P'
*   I_BACKGROUND_ID                   = ' '
*   I_GRID_TITLE                      =
*   I_GRID_SETTINGS                   =
*   IS_LAYOUT                         =
   it_fieldcat                       =   IT_FIELDCAT     " 'IT_FILEDCAT'
*   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                          = it_final
* EXCEPTIONS
*   PROGRAM_ERROR                     = 1
*   OTHERS                            = 2
          .
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.

Scroll to Top