Wednesday, 5 March 2014

Sample Program for Classical ALV Report with Header



REPORT  ybtest  .


TABLES SFLIGHT.
TYPE-POOLS SLIS.
**INTERNAL TABLE DECLARTION
DATA WA_SFLIGHT TYPE SFLIGHT,
       IT_SFLIGHT TYPE TABLE OF SFLIGHT.
**DATA DECLARTION
DATAFIELDCATALOG TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,
      GD_LAYOUT    TYPE SLIS_LAYOUT_ALV,
      GD_REPID     LIKE SY-REPID,
      G_SAVE TYPE VALUE 'X',
      G_VARIANT TYPE DISVARIANT,
      GX_VARIANT TYPE DISVARIANT,
      G_EXIT TYPE C,
      ISPFLI TYPE TABLE OF SPFLI.
* To understand the importance of the following parameter,
**SELECTION SCREEN DETAILS
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-002 .
PARAMETERSVARIANT LIKE DISVARIANT-VARIANT.
SELECTION-SCREEN END OF BLOCK B1.
**GETTING DEFAULT VARIANT
INITIALIZATION.
  GX_VARIANT-REPORT SY-REPID.
  CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
    EXPORTING
      I_SAVE     G_SAVE
    CHANGING
      CS_VARIANT GX_VARIANT
    EXCEPTIONS
      NOT_FOUND  2.
  IF SY-SUBRC 0.
    VARIANT GX_VARIANT-VARIANT.
  ENDIF.
**PERFORM DECLARATIONS
START-OF-SELECTION.
  PERFORM DATA_RETRIVEL.
  PERFORM BUILD_FIELDCATALOG.
  PERFORM DISPLAY_ALV_REPORT.
*&---------------------------------------------------------------------*
*&      Form  BUILD_FIELDCATALOG
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM BUILD_FIELDCATALOG .
  FIELDCATALOG-FIELDNAME   'CARRID'.
  FIELDCATALOG-SELTEXT_M   'Airline Code'.
  FIELDCATALOG-COL_POS     0.
  APPEND FIELDCATALOG TO FIELDCATALOG.
  CLEAR  FIELDCATALOG.
  FIELDCATALOG-FIELDNAME   'CONNID'.
  FIELDCATALOG-SELTEXT_M   'Flight Connection Number'.
  FIELDCATALOG-COL_POS     1.
  APPEND FIELDCATALOG TO FIELDCATALOG.
  CLEAR  FIELDCATALOG.
  FIELDCATALOG-FIELDNAME   'FLDATE'.
  FIELDCATALOG-SELTEXT_M   'Flight date'.
  FIELDCATALOG-COL_POS     2.
  APPEND FIELDCATALOG TO FIELDCATALOG.
  CLEAR  FIELDCATALOG.
  FIELDCATALOG-FIELDNAME   'PRICE'.
  FIELDCATALOG-SELTEXT_M   'Airfare'.
  FIELDCATALOG-COL_POS     3.
  FIELDCATALOG-OUTPUTLEN   20.
  APPEND FIELDCATALOG TO FIELDCATALOG.
  CLEAR  FIELDCATALOG.
ENDFORM.                    " BUILD_FIELDCATALOG


*&---------------------------------------------------------------------*
*&      Form  DISPLAY_ALV_REPORT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM DISPLAY_ALV_REPORT .
  GD_REPID SY-REPID.
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      I_CALLBACK_PROGRAM      GD_REPID
      I_CALLBACK_TOP_OF_PAGE  'TOP-OF-PAGE'  "see FORM
      I_CALLBACK_USER_COMMAND 'USER_COMMAND'
      IT_FIELDCAT             FIELDCATALOG[]
      I_SAVE                  'X'
      IS_VARIANT              G_VARIANT
    TABLES
      T_OUTTAB                IT_SFLIGHT
    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_ALV_REPORT
" DISPLAY_ALV_REPORT
*&---------------------------------------------------------------------*
*&      Form  DATA_RETRIVEL
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM DATA_RETRIVEL .
  SELECT FROM SFLIGHT INTO TABLE IT_SFLIGHT.
ENDFORM.                    " DATA_RETRIVEL
*-------------------------------------------------------------------*
* Form  TOP-OF-PAGE                                                 *
*-------------------------------------------------------------------*
* ALV Report Header                                                 *
*-------------------------------------------------------------------*
FORM TOP-OF-PAGE.
*ALV Header declarations
  DATAT_HEADER TYPE SLIS_T_LISTHEADER,
        WA_HEADER TYPE SLIS_LISTHEADER,
        T_LINE LIKE WA_HEADER-INFO,
        LD_LINES TYPE I,
        LD_LINESC(10TYPE C.



* Title
 WA_HEADER-TYP  'H'.
  WA_HEADER-INFO 'SFLIGHT Table Report'.
  APPEND WA_HEADER TO T_HEADER.
  CLEAR WA_HEADER.
* Date
  WA_HEADER-TYP  'S'.
  WA_HEADER-KEY 'Date: '.
  CONCATENATE  SY-DATUM+6(2'.'
               SY-DATUM+4(2'.'
               SY-DATUM(4INTO WA_HEADER-INFO.   "todays date
  APPEND WA_HEADER TO T_HEADER.

  CONSTANTS :  gc_s          TYPE c              VALUE   'S' .
   DATA:  l_hline TYPE slis_listheader,
          lv_title(50),
          lv_progname(20),
          lv_datum(11),
          lv_time(10),
          lv_username(30),
          lv_pagno(2),
          lv_pagno1(2),
          lv_client(10),
          l_f_info(132),
           lv_host(10,
           gv_date(60TYPE c.

  lv_title sy-title.
  lv_progname sy-cprog.
  lv_datum sy-datum.
  lv_time  sy-uzeit.
  lv_username sy-uname.
*  lv_pagno = sy-pagno.
  lv_pagno sy-pagno + 1.
  lv_pagno1 sy-pagno + 1.
  lv_client sy-mandt.
  lv_host sy-sysid.

  l_hline-typ  gc_s.
  l_hline-key  'REPORT TITLE:'.
  l_hline-info =  lv_title.
  APPEND l_hline TO T_HEADER.
  CLEAR l_hline.

  l_hline-typ  gc_s.
  l_hline-key  'PROGRAM NAME:'.
  l_hline-info =  lv_progname.
  APPEND l_hline TO T_HEADER.
  CLEAR l_hline.



  CONCATENATE sy-timlo+0(2':' sy-timlo+2(2':' sy-timlo+4(2)
  INTO lv_time.

  l_hline-typ  gc_s.
  l_hline-key  'DATE:'.
  l_hline-info =  gv_date.
  APPEND l_hline TO T_HEADER.
  CLEAR l_hline.

  l_hline-typ  gc_s.
  l_hline-key  'TIME:'.
  l_hline-info =  lv_time.
  APPEND l_hline TO T_HEADER.
  CLEAR l_hline.


  CONCATENATE  lv_pagno '/' lv_pagno1 INTO l_f_info
*
                                         SEPARATED BY '   '.


  l_hline-typ  gc_s.
  l_hline-key  'PAGNO:'.
  l_hline-info =  l_f_info.
  APPEND l_hline TO T_HEADER.
  CLEAR l_hline.

  l_hline-typ  gc_s.
  l_hline-key  'USERID:'.
  l_hline-info =  lv_username.
  APPEND l_hline TO T_HEADER.
  CLEAR l_hline.


  l_hline-typ  gc_s.
  l_hline-key  'CLIENT:'.
  l_hline-info =  lv_client.
  APPEND l_hline TO T_HEADER.
  CLEAR l_hline.

  l_hline-typ  gc_s.
  l_hline-key  'SAP SYSTEM:'.
  l_hline-info =  lv_host.
  APPEND l_hline TO T_HEADER.
  CLEAR l_hline.




  CLEARWA_HEADER.
  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
      IT_LIST_COMMENTARY T_HEADER.
ENDFORM.                    "top-of-page


Output sample : 

No comments:

Post a Comment