End of page in Grid alv.

Hello Everyone,
I populate event table in grid alv display.But End_of_page Event is not working.Can anyone tell me why End_of_Page is not working.

Hi,
Have  a look on the following code.This displays even end-of-page also.
TABLES VBAK.
TYPE-POOLS SLIS.
Data Declaration
TYPES: BEGIN OF T_VBAK,
      VBELN TYPE VBAK-VBELN,
      ERDAT TYPE VBAK-ERDAT,
      ERNAM TYPE VBAK-ERNAM,
      AUDAT TYPE VBAK-AUDAT,
      VBTYP TYPE VBAK-VBTYP,
      NETWR TYPE VBAK-NETWR,
      VKORG TYPE VBAK-VKORG,
      VKGRP TYPE VBAK-VKGRP,
      LINE_COLOR(4) TYPE C,
      END OF T_VBAK.
DATA: IT_VBAK TYPE STANDARD TABLE OF T_VBAK INITIAL SIZE 0,
      WA_VBAK TYPE T_VBAK.
ALV Data Declaration
DATA: FLDCAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,
      GD_LAYOUT TYPE SLIS_LAYOUT_ALV,
      GD_REPID TYPE SY-REPID,
      I_EVENTS TYPE SLIS_T_EVENT,
      W_EVENTS LIKE LINE OF I_EVENTS.
DATA: I_COMMENT TYPE SLIS_T_LISTHEADER,
      WA_COMMENT TYPE SLIS_LISTHEADER.
START-OF-SELECTION.
PERFORM DATA_RETRIEVAL.
PERFORM BLD_FLDCAT.
PERFORM BLD_LAYOUT.
PERFORM CALL_EVENTS.
PERFORM DISPLAY_ALV_REPORT.
Build Field Catalog for ALV Report
FORM BLD_FLDCAT.
FLDCAT-FIELDNAME = 'VBELN'.
FLDCAT-SELTEXT_M = 'Sales Document'.
FLDCAT-COL_POS = 0.
*FLDCAT-EMPHASIZE = 'C411'.
FLDCAT-OUTPUTLEN = 20.
FLDCAT-KEY = 'X'.
APPEND FLDCAT TO FLDCAT.
CLEAR FLDCAT.
FLDCAT-FIELDNAME = 'ERDAT'.
FLDCAT-SELTEXT_L = 'Record Date created'.
FLDCAT-COL_POS = 1.
FLDCAT-KEY = 'X'.
APPEND FLDCAT TO FLDCAT.
CLEAR FLDCAT.
FLDCAT-FIELDNAME = 'ERNAM'.
FLDCAT-SELTEXT_L = 'Cteated Object Person Name'.
APPEND FLDCAT TO FLDCAT.
CLEAR FLDCAT.
FLDCAT-FIELDNAME = 'AUDAT'.
FLDCAT-SELTEXT_M = 'Document Date'.
FLDCAT-COL_POS = 3.
FLDCAT-EMPHASIZE = 'C110'.
APPEND FLDCAT TO FLDCAT.
CLEAR FLDCAT.
FLDCAT-FIELDNAME = 'VBTYP'.
FLDCAT-SELTEXT_L = 'SD Document category'.
FLDCAT-COL_POS = 4.
APPEND FLDCAT TO FLDCAT.
CLEAR FLDCAT.
FLDCAT-FIELDNAME = 'NETWR'.
FLDCAT-SELTEXT_L = 'Net Value of the SO in Document Currency'.
FLDCAT-COL_POS = 5.
FLDCAT-OUTPUTLEN = 60.
FLDCAT-DO_SUM = 'X'.
FLDCAT-DATATYPE = 'CURR'.
APPEND FLDCAT TO FLDCAT.
CLEAR FLDCAT.
FLDCAT-FIELDNAME = 'VKORG'.
FLDCAT-SELTEXT_L = 'Sales Organization'.
FLDCAT-COL_POS = 6.
APPEND FLDCAT TO FLDCAT.
CLEAR FLDCAT.
FLDCAT-FIELDNAME = 'VKGRP'.
FLDCAT-SELTEXT_M = 'Sales Group'.
FLDCAT-COL_POS = 7.
FLDCAT-EMPHASIZE = 'C801'.
APPEND FLDCAT TO FLDCAT.
CLEAR FLDCAT.
ENDFORM.
Build Layout for ALV Grid Report
FORM BLD_LAYOUT.
GD_LAYOUT-NO_INPUT = 'X'.
GD_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
GD_LAYOUT-INFO_FIELDNAME = 'LINE_COLOR'.
ENDFORM.
Display report using ALV grid
FORM DISPLAY_ALV_REPORT.
DATA T_EVENT TYPE SLIS_T_EVENT.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
   I_LIST_TYPE           = 0
IMPORTING
   ET_EVENTS             = T_EVENT.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
GD_REPID = SY-REPID.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
   I_CALLBACK_PROGRAM                = GD_REPID
   IS_LAYOUT                         = GD_LAYOUT
  I_CALLBACK_HTML_TOP_OF_PAGE       = 'TOP_OF_PAGE_SPLIT'
   I_CALLBACK_TOP_OF_PAGE   = 'TOP_OF_PAGE'
  I_CALLBACK_HTML_END_OF_LIST = 'END_OF_LIST_HTML'
   IT_EVENTS                         = I_EVENTS
   IT_FIELDCAT                       = FLDCAT[]
   I_SAVE                            = 'X'
  TABLES
    T_OUTTAB                          = IT_VBAK
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.
Retrieve data from VBAK table and populate itab IT_VBAK
FORM DATA_RETRIEVAL.
DATA LD_COLOR(1) TYPE C.
SELECT VBELN ERDAT ERNAM AUDAT VBTYP NETWR VKORG
UP TO 100 ROWS
FROM VBAK
INTO TABLE IT_VBAK.
LOOP AT IT_VBAK INTO WA_VBAK.
LD_COLOR = LD_COLOR + 1.
IF LD_COLOR = 8.
  LD_COLOR = 1.
ENDIF.
CONCATENATE 'C' LD_COLOR '10' INTO WA_VBAK-LINE_COLOR.
MODIFY IT_VBAK FROM WA_VBAK.
ENDLOOP.
ENDFORM.
FORM CALL_EVENTS.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
   I_LIST_TYPE           = 0
IMPORTING
   ET_EVENTS             = I_EVENTS
EXCEPTIONS
  LIST_TYPE_WRONG       = 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.
IF NOT I_EVENTS[] IS INITIAL.
    READ TABLE I_EVENTS INTO W_EVENTS WITH KEY NAME = 'END_OF_LIST'.
    W_EVENTS-FORM = 'GENERATE_USERCOMMAND_FOOTER'.
    MODIFY I_EVENTS FROM W_EVENTS INDEX SY-TABIX.
ENDIF.
ENDFORM.
FORM TOP_OF_PAGE.
CLEAR I_COMMENT[].
Form  TOP-OF-PAGE                                                 *
ALV Report Header                                                 *
*Form top-of-page.
*ALV Header declarations
data: t_header type slis_t_listheader,
      wa_header type slis_listheader,
      t_line like wa_header-info,
      ld_lines type i,
      ld_linesc(10) type c,
      pagno(3).
Title
  wa_header-typ  = 'H'.
  wa_header-info = 'EKKO 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(4) INTO wa_header-info.   "todays date
  append wa_header to t_header.
  clear: wa_header.
Total No. of Records Selected
  describe table it_vbak lines ld_lines.
  ld_linesc = ld_lines.
  concatenate 'Total No. of Records Selected: ' ld_linesc
                    into t_line separated by space.
  wa_header-typ  = 'A'.
  wa_header-info = t_line.
  append wa_header to t_header.
  clear: wa_header, t_line.
  pagno = sy-pagno.
  wa_header-typ = 'A'.
  concatenate 'no. of pages:' pagno into wa_header-info separated by space.
  append wa_header to t_header.
  clear: wa_header.
  call function 'REUSE_ALV_COMMENTARY_WRITE'
       exporting
            it_list_commentary = t_header.
           i_logo             = 'Z_LOGO'.
*endform.
ENDFORM.
FORM GENERATE_USERCOMMAND_FOOTER.
  CLEAR I_COMMENT[].
  WA_COMMENT-TYP = 'S'.
  WA_COMMENT-INFO = 'End of Page' .    "SY-PAGNO.
  APPEND WA_COMMENT TO I_COMMENT.
  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
      IT_LIST_COMMENTARY       = I_COMMENT
     I_LOGO                   = ''
      I_END_OF_LIST_GRID       = 'X'.
ENDFORM.
Thanks,
chandu.

Similar Messages

  • End-of-page event in alv report

    Hi all,
    I want to create end-of-page in alv report i have used event also
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' * "
       EXPORTING *
         i_callback_program                = sy-repid * "
         i_callback_user_command           = 'USER_COMMAND' * "
         i_callback_top_of_page            = 'TOP_OF_PAGE' * "
       I_STRUCTURE_NAME                  = * "
         it_fieldcat                       = fcat[] * "
         it_events                         = it_event[] * "
        TABLES
          t_outtab                          = gtbl_pohead * "
       EXCEPTIONS
         program_error                     = 1 * "
         OTHERS                            = 2 "
    FORM end_of_page.  *
      DATA:   listwidth TYPE i, *
              ld_pagepos(10) TYPE c, *
              ld_page(10)    TYPE c. *
      WRITE: sy-uline(50). "
      SKIP 3.
      WRITE:/40 'Page No',sy-pagno. "
    ENDFORM.                    "END_OF_PAGE "

    hi
    Search in SDN.You can find the solution for this.Before posting please search in SDN.
    You have to use this  FM 'REUSE_ALV_EVENTS_GET'
    [End-Of-Page|http://www.sapdev.co.uk/reporting/alv/alvgrid_events.htm]
    [Endo Of Page|http://www.sdn.sap.com/irj/scn/advancedsearch?query=alvend-of-pageevent+]

  • End of Page event in ALV report using SALV class[cl_salv_hierseq_table]

    Hi ,
    have been working on a ALV report using the class SALV cl_salv_hierseq_table
    I am facing few issues pertaining to two things:
    1. Displaying some subtotal text along with the subtotals.
    Example refer the standard demo example: SALV_DEMO_HIERSEQ_FORM_EVENTS
    Now instead of A 17 and A26 I would like to show text like Subtotal for the Carrid.for subtotals and grand totals
    Like   Subtotal for A 17 is :      XXXXXXX
              GrandTotal is         :      YYYYYY
    2. We have a page break and a new page for every purchasing group as in the standard example SALV_DEMO_HIERSEQ_FORM_EVENTS for CARRID.
    I need to display some variable values as number of documents ,total number of records etc at the end of each CARRID group before a new page starts for the next CARRID.Please note i do not want it on every page.it should only be diaplyed at the end of page whose next page would be for next CARRID.[basically at end of every carrid]Example:after displaying all details for AA need to display the number of records for that carrid at the end of the page[as page break is based on CARRID]/
    Thanks
    Jyotsna

    at end of page event, for CL_SALV_EVENTS_HIERSEQ, has some useful parameters allowing to know where you are at the time of event
    parameter VALUE is of type CL_SALV_FORM which contains public attribute IF_SALV_FORM~ACCDESCRIPTION; you can slo get contents of it
    about text of total/subtotal, this is normally set in the layout

  • END OF PAGE IN BLOCK  ALV : PLZ HELP

    Hi experts.
    I have a requirement to display top-of-page end-of-page end-of-list in block alv but the problem is that end-of-page is not getting triggered instead top-of-page is getting triggered twice.
    Below is the code for your reference :
    REPORT  zbhr_workers_comp_report
    LINE-COUNT 60(4)
    LINE-SIZE 999
    NO STANDARD PAGE HEADING
    MESSAGE-ID zmhr.
    *//// This is how event table is getting populated:*
    FORM events_get1  CHANGING t1_events TYPE slis_t_event.
      DATA:ls1_events TYPE slis_alv_event.
      CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
        IMPORTING
          et_events = t1_events.
      READ TABLE t1_events INTO ls1_events WITH KEY name = slis_ev_top_of_page.
      IF sy-subrc = 0.
        MOVE c_form_top_of_page TO ls1_events-form.
       APPEND ls1_events TO t1_events.
        modify t1_events FROM ls1_events INDEX sy-tabix TRANSPORTING form.
        CLEAR ls1_events.
      ENDIF.
    READ TABLE t1_events INTO ls1_events WITH KEY name = slis_ev_end_of_page.
      IF sy-subrc = 0.
        MOVE c_form_end_of_page TO ls1_events-form.
       APPEND ls1_events TO t1_events.
        modify t1_events FROM ls1_events INDEX sy-tabix TRANSPORTING form.
        CLEAR ls1_events.
      ENDIF.
      READ TABLE t1_events INTO ls1_events WITH KEY name = slis_ev_end_of_list.
      IF sy-subrc = 0.
        MOVE c_form_end_of_list TO ls1_events-form.
       APPEND ls1_events TO t1_events.
        modify t1_events FROM ls1_events INDEX sy-tabix TRANSPORTING form.
        CLEAR ls1_events.
      ENDIF.
    ENDFORM.                    " EVENTS_GET1
    FORM    :  TOP_OF_PAGE
    FORM top_of_page.
      WRITE : /45 text-020, 65(5) text-021 , 71(11) v_begda, 84(3) text-022 , 89(11) v_endda.
    ENDFORM. "TOP_OF_PAGE
    FORM    :  end_of_page
    FORM end_of_page.
    DATA: lv_process TYPE i.
      CLEAR: lv_process.
       LOOP AT t_final_temp INTO w_final_temp where customer = t_final-customer.
         lv_process = lv_process + 1.
      ENDLOOP.
    *RESERVE 3 LINES.
      WRITE: /4 'Number of read Record : '(023), v_total_read.
      WRITE: /4 'Number of processed Record : '(024), lv_process.
    ENDFORM. "end_of_page
    FORM    :  end_of_list
    FORM end_of_list .
    v_total_process =  LINES( t_final[] ).
    WRITE: /4 'Total sum of all processed data: '(029), v_total_process.
    ENDFORM. "end_of_list
    *****Displaying the block alv.
    FORM display_output .
    To restrict the display of sel info and list info.
      st_print-no_print_selinfos = 'X'.
      st_print-no_print_listinfos = 'X'.
    st_print-reserve_lines = 2. " Lines reserved for end of page
    Initialize ALV Block List
      CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'
        EXPORTING
          i_callback_program = sy-repid.
    Append the ALV Block list with table t_final.
      CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
        EXPORTING
          is_layout                  = w1_layout
          it_fieldcat                = t1_fieldcat
          i_tabname                  = 'T_FINAL'
          it_events                  = t1_events
          it_sort                    = t_sort
        TABLES
          t_outtab                   = t_final
        EXCEPTIONS
          program_error              = 1
          maximum_of_appends_reached = 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.
    Append the ALV Block list with table t_msg_display.
      CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
        EXPORTING
          is_layout                  = w2_layout
          it_fieldcat                = t2_fieldcat
          i_tabname                  = 'T_MSG_DISPLAY'
          it_events                  = t2_events
        TABLES
          t_outtab                   = t_msg_display
        EXCEPTIONS
          program_error              = 1
          maximum_of_appends_reached = 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.
      CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'
        EXPORTING
          i_interface_check = ' '
          is_print          = st_print
        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_OUTPUT
    Above is the core logic which I have used for displaying top-of-page end-of-page and end-of-list in block alv.
    Please Help
    Regards
    Arvind.

    Hi
    MOVE 'TOP_OF_PAGE' TO ls1_events-form.
    what is thie c_form_top_of_page instead write as above ,i hope it will work
    Regards
    Pavan

  • END-OF-PAGE in ALV using OOPS

    Hello ,
    Can anyone let me know how to trigger the END-of-page event in ALV using OOPs.
    Thanks in advance.
    Regards
    Jai

    Hello Pratuysh,
    Thanks for the answer
    I know that report,but that doesn't help me.
    Any other way
    Thanks
    Jai

  • End-Of-Page in ALV's ?

    how to use End-Of-Page  event in  ALV's ?

    This is example for ALV report which has End of Page.....
    REPORT ZALV1.
    ******************TABLE DECLARATION***********************************
    TABLES : VBAP. " tables declaration
    *****************TYPE POOLS*******************************************
    TYPE-POOLS : SLIS. " slis type pool
    *****************INTERNAL TABLE DECLARATION***************************
    DATA : BEGIN OF IT_VBAP OCCURS 0,
    " internal table for sales document item
    VBELN LIKE VBAP-VBELN, " sales document
    POSNR LIKE VBAP-POSNR, " document item
    ERNAM LIKE VBAP-ERNAM,
    " name of the person who created the object
    ERDAT LIKE VBAP-ERDAT, " date on which the record was created
    MATNR LIKE VBAP-MATNR. " material number
    DATA : END OF IT_VBAP.
    DATA : BEGIN OF IT_MARA OCCURS 0, " general material data
    MATNR LIKE MARA-MATNR, " material number
    ERNAM LIKE MARA-ERNAM,
    " name of the person who created the object
    MATKL LIKE MARA-MATKL, " material group
    MEINS LIKE MARA-MEINS, " base unit of measure
    PSTAT LIKE MARA-PSTAT. " maintainence status
    DATA : END OF IT_MARA.
    ******************VARIABLE
    DECLARATION**********************************
    DATA : REPID LIKE SY-REPID. " program name
    DATA : IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
    " field catalog table for vbap
    WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
    DATA : IT_FIELDCAT1 TYPE SLIS_T_FIELDCAT_ALV,
    " field catalog table for mara
    WA_FIELDCAT1 TYPE SLIS_FIELDCAT_ALV.
    DATA : WA_LAYOUT TYPE SLIS_LAYOUT_ALV.
    DATA: GT_XEVENTS TYPE SLIS_T_EVENT.
    DATA: GT_YEVENTS TYPE SLIS_T_EVENT. " events table
    DATA : XS_EVENT TYPE SLIS_ALV_EVENT. " events type
    DATA : GT_PRINT TYPE SLIS_PRINT_ALV. " print table
    *******************MULTIPLE SELECT INPUT
    PARAMETERS**********************
    SELECT-OPTIONS : S_VBELN FOR VBAP-VBELN.
    " multiple selection for sales document
    ******************INITIALIZATION**************************************
    INITIALIZATION.
    REPID = SY-REPID.
    *******************START OF
    SELECTION************************************
    START-OF-SELECTION.
    PERFORM POP_VBAP.
    " populating the table with document item data
    PERFORM POP_MARA.
    " populating the table with general material data
    PERFORM FIELD_CAT.
    " mapping the fields for the field catalog
    PERFORM EVENTS. " using the events
    PERFORM BLOCK_LIST.
    " displaying the data in blocked list
    *& Form field_cat
    text
    --> p1 text
    <-- p2 text
    FORM FIELD_CAT .
    WA_FIELDCAT-FIELDNAME = 'VBELN'.
    WA_FIELDCAT-TABNAME = 'IT_VBAP'.
    WA_FIELDCAT-SELTEXT_L = 'SALES DOC'.
    WA_FIELDCAT-COL_POS = 1.
    WA_FIELDCAT-OUTPUTLEN = 10.
    APPEND WA_FIELDCAT TO IT_FIELDCAT.
    CLEAR WA_FIELDCAT.
    WA_FIELDCAT-FIELDNAME = 'POSNR'.
    WA_FIELDCAT-TABNAME = 'IT_VBAP'.
    WA_FIELDCAT-SELTEXT_L = 'DOC ITEM'.
    WA_FIELDCAT-COL_POS = 2.
    WA_FIELDCAT-OUTPUTLEN = 6.
    APPEND WA_FIELDCAT TO IT_FIELDCAT.
    CLEAR WA_FIELDCAT.
    WA_FIELDCAT-FIELDNAME = 'ERNAM'.
    WA_FIELDCAT-TABNAME = 'IT_VBAP'.
    WA_FIELDCAT-SELTEXT_L = 'NAME'.
    WA_FIELDCAT-COL_POS = 3.
    WA_FIELDCAT-OUTPUTLEN = 12.
    APPEND WA_FIELDCAT TO IT_FIELDCAT.
    CLEAR WA_FIELDCAT.
    WA_FIELDCAT-FIELDNAME = 'ERDAT'.
    WA_FIELDCAT-TABNAME = 'IT_VBAP'.
    WA_FIELDCAT-SELTEXT_L = 'DATE'.
    WA_FIELDCAT-COL_POS = 4.
    WA_FIELDCAT-OUTPUTLEN = 8.
    APPEND WA_FIELDCAT TO IT_FIELDCAT.
    CLEAR WA_FIELDCAT.
    WA_FIELDCAT-FIELDNAME = 'MATNR'.
    WA_FIELDCAT-TABNAME = 'IT_VBAP'.
    WA_FIELDCAT-SELTEXT_L = 'MAT NO'.
    WA_FIELDCAT-COL_POS = 5.
    WA_FIELDCAT-OUTPUTLEN = 18.
    APPEND WA_FIELDCAT TO IT_FIELDCAT.
    CLEAR WA_FIELDCAT.
    WA_FIELDCAT1-FIELDNAME = 'MATNR'.
    WA_FIELDCAT1-TABNAME = 'IT_MARA'.
    WA_FIELDCAT1-SELTEXT_L = 'MAT NO'.
    WA_FIELDCAT1-COL_POS = 1.
    WA_FIELDCAT1-OUTPUTLEN = 18.
    APPEND WA_FIELDCAT1 TO IT_FIELDCAT1.
    CLEAR WA_FIELDCAT1.
    WA_FIELDCAT1-FIELDNAME = 'ERNAM'.
    WA_FIELDCAT1-TABNAME = 'IT_MARA'.
    WA_FIELDCAT1-SELTEXT_L = 'NAME'.
    WA_FIELDCAT1-COL_POS = 2.
    WA_FIELDCAT1-OUTPUTLEN = 12.
    APPEND WA_FIELDCAT1 TO IT_FIELDCAT1.
    CLEAR WA_FIELDCAT1.
    WA_FIELDCAT1-FIELDNAME = 'MATKL'.
    WA_FIELDCAT1-TABNAME = 'IT_MARA'.
    WA_FIELDCAT1-SELTEXT_L = 'MAT DESC'.
    WA_FIELDCAT1-COL_POS = 3.
    WA_FIELDCAT1-OUTPUTLEN = 9.
    APPEND WA_FIELDCAT1 TO IT_FIELDCAT1.
    CLEAR WA_FIELDCAT1.
    WA_FIELDCAT1-FIELDNAME = 'MEINS'.
    WA_FIELDCAT1-TABNAME = 'IT_MARA'.
    WA_FIELDCAT1-SELTEXT_L = 'UNITS'.
    WA_FIELDCAT1-COL_POS = 4.
    WA_FIELDCAT1-OUTPUTLEN = 3.
    APPEND WA_FIELDCAT1 TO IT_FIELDCAT1.
    CLEAR WA_FIELDCAT1.
    WA_FIELDCAT1-FIELDNAME = 'PSTAT'.
    WA_FIELDCAT1-TABNAME = 'IT_MARA'.
    WA_FIELDCAT1-SELTEXT_L = 'STATUS'.
    WA_FIELDCAT1-COL_POS = 5.
    WA_FIELDCAT1-OUTPUTLEN = 15.
    APPEND WA_FIELDCAT1 TO IT_FIELDCAT1.
    CLEAR WA_FIELDCAT1.
    ENDFORM. " field_cat
    *& Form events
    text
    --> p1 text
    <-- p2 text
    FORM EVENTS .
    CLEAR XS_EVENT.
    XS_EVENT-NAME = SLIS_EV_END_OF_PAGE.
    XS_EVENT-FORM = 'XEND_OF_PAGE'.
    APPEND XS_EVENT TO GT_XEVENTS.
    CLEAR XS_EVENT.
    XS_EVENT-NAME = SLIS_EV_TOP_OF_PAGE.
    XS_EVENT-FORM = 'XTOP_OF_PAGE'.
    APPEND XS_EVENT TO GT_XEVENTS.
    CLEAR XS_EVENT.
    XS_EVENT-NAME = SLIS_EV_TOP_OF_LIST.
    XS_EVENT-FORM = 'XTOP_OF_LIST'.
    APPEND XS_EVENT TO GT_XEVENTS.
    CLEAR XS_EVENT.
    XS_EVENT-NAME = SLIS_EV_END_OF_LIST.
    XS_EVENT-FORM = 'XEND_OF_LIST'.
    APPEND XS_EVENT TO GT_XEVENTS.
    CLEAR XS_EVENT.
    CLEAR XS_EVENT.
    XS_EVENT-NAME = SLIS_EV_END_OF_PAGE.
    XS_EVENT-FORM = 'YEND_OF_PAGE'.
    APPEND XS_EVENT TO GT_YEVENTS.
    CLEAR XS_EVENT.
    XS_EVENT-NAME = SLIS_EV_TOP_OF_PAGE.
    XS_EVENT-FORM = 'YTOP_OF_PAGE'.
    APPEND XS_EVENT TO GT_YEVENTS.
    CLEAR XS_EVENT.
    XS_EVENT-NAME = SLIS_EV_TOP_OF_LIST.
    XS_EVENT-FORM = 'YTOP_OF_LIST'.
    APPEND XS_EVENT TO GT_YEVENTS.
    CLEAR XS_EVENT.
    XS_EVENT-NAME = SLIS_EV_END_OF_LIST.
    XS_EVENT-FORM = 'YEND_OF_LIST'.
    APPEND XS_EVENT TO GT_YEVENTS.
    ENDFORM. " events
    *& Form XTOP_OF_PAGE
    text
    FORM XTOP_OF_PAGE.
    BREAK-POINT.
    WRITE: / 'X_TOP_OF_PAGE'.
    ENDFORM. "XTOP_OF_PAGE
    FORM XTOP_OF_LIST *
    FORM XTOP_OF_LIST.
    BREAK-POINT.
    WRITE: / 'X_TOP_OF_LIST'.
    ENDFORM. "XTOP_OF_LIST
    FORM XEND_OF_PAGE *
    FORM XEND_OF_PAGE.
    BREAK-POINT.
    WRITE: / 'X_END_OF_PAGE'.
    ENDFORM. "XEND_OF_PAGE
    FORM XEND_OF_LIST *
    FORM XEND_OF_LIST.
    BREAK-POINT.
    WRITE: / 'X_END_OF_LIST'.
    ENDFORM. "XEND_OF_LIST
    FORM YTOP_OF_PAGE.
    BREAK-POINT.
    WRITE: / 'Y_TOP_OF_PAGE'.
    ENDFORM. "YTOP_OF_PAGE
    FORM YTOP_OF_LIST *
    FORM YTOP_OF_LIST.
    BREAK-POINT.
    WRITE: / 'Y_TOP_OF_LIST'.
    ENDFORM. "YTOP_OF_LIST
    FORM YEND_OF_PAGE *
    FORM YEND_OF_PAGE.
    BREAK-POINT.
    WRITE: / 'Y_END_OF_PAGE'.
    ENDFORM. "YEND_OF_PAGE
    FORM YEND_OF_LIST *
    FORM YEND_OF_LIST.
    BREAK-POINT.
    WRITE: / 'Y_END_OF_LIST'.
    ENDFORM. "YEND_OF_LIST
    *& Form POP_VBAP
    text
    --> p1 text
    <-- p2 text
    FORM POP_VBAP .
    SELECT VBELN
    POSNR
    ERNAM
    ERDAT
    MATNR
    FROM VBAP
    INTO CORRESPONDING FIELDS OF TABLE IT_VBAP
    WHERE VBELN IN S_VBELN.
    ENDFORM. " POP_VBAP
    *& Form POP_MARA
    text
    --> p1 text
    <-- p2 text
    FORM POP_MARA .
    LOOP AT IT_VBAP.
    SELECT SINGLE MATNR
    ERNAM
    MATKL
    MEINS
    PSTAT
    FROM MARA
    INTO CORRESPONDING FIELDS OF IT_MARA
    WHERE MATNR = IT_VBAP-MATNR.
    APPEND IT_MARA.
    ENDLOOP.
    ENDFORM. " POP_MARA
    *& Form BLOCK_LIST
    text
    --> p1 text
    <-- p2 text
    FORM BLOCK_LIST .
    CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'
    EXPORTING
    I_CALLBACK_PROGRAM = REPID
    I_CALLBACK_PF_STATUS_SET = ' '
    I_CALLBACK_USER_COMMAND = 'user_command'.
    CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
    EXPORTING
    IS_LAYOUT = WA_LAYOUT
    IT_FIELDCAT = IT_FIELDCAT
    I_TABNAME = 'IT_VBAP'
    IT_EVENTS = GT_XEVENTS
    IT_SORT =
    I_TEXT = ' '
    TABLES
    T_OUTTAB = IT_VBAP
    EXCEPTIONS
    PROGRAM_ERROR = 1
    MAXIMUM_OF_APPENDS_REACHED = 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.
    CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
    EXPORTING
    IS_LAYOUT = WA_LAYOUT
    IT_FIELDCAT = IT_FIELDCAT1
    I_TABNAME = 'IT_MARA'
    IT_EVENTS = GT_YEVENTS
    IT_SORT =
    I_TEXT = ' '
    TABLES
    T_OUTTAB = IT_MARA
    EXCEPTIONS
    PROGRAM_ERROR = 1
    MAXIMUM_OF_APPENDS_REACHED = 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.
    CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'
    EXPORTING
    I_INTERFACE_CHECK = ' '
    IS_PRINT = GT_PRINT
    I_SCREEN_START_COLUMN = 0
    I_SCREEN_START_LINE = 0
    I_SCREEN_END_COLUMN = 0
    I_SCREEN_END_LINE = 0
    IMPORTING
    E_EXIT_CAUSED_BY_CALLER =
    ES_EXIT_CAUSED_BY_USER =
    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. " BLOCK_LIST
    Reward if useful.

  • End-of-page in ALVs

    hi friends,
           Is end-of-page possible in ALV reports,If how it is? what's that parameter
    Thanks & Regards
    RK

    hi
    you have an event END_OF_PAGE.
    pass this event along with the form name into the parameter IT_EVENTS.
    and use your WRITE statement in the subroutine you specify for that event.
    WA_EVENTS-FORM = 'END_PAGE'.
    WA_EVENTS-NAME = 'END_OF_PAGE'.
    APPEND WA_EVENTS TO IT_EVENTS.
    CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
    EXPORTING
       I_CALLBACK_PROGRAM             = sy-repid
       IT_FIELDCAT                    = it_fieldcat
       IT_EVENTS                      = it_events
      TABLES
        t_outtab                      = it_final
    form end_page.
    write:/ 'No. of records processed:', l_tabix.
    endform.
    heck this link.It can help you.
    http://www.sapdevelopment.co.uk/reporting/alv/alvgrid_events.htm
    Kindly reward points by clicking the star on the left of reply,if you find it as useful.
    Vasanth

  • End of page in alv report

    hi..
    i want to put end-of-page in my alv report.
    how can i do it??

    This is example for ALV report which has End of Page.....
    REPORT  ZALV1.
    ******************TABLE DECLARATION***********************************
    TABLES : VBAP.                    " tables declaration
    *****************TYPE POOLS*******************************************
    TYPE-POOLS : SLIS.                " slis type pool
    *****************INTERNAL TABLE DECLARATION***************************
    DATA : BEGIN OF IT_VBAP OCCURS 0,
    " internal table for sales document item
          VBELN LIKE VBAP-VBELN,      " sales document
          POSNR LIKE VBAP-POSNR,      " document item
          ERNAM LIKE VBAP-ERNAM,
          " name of the person who created the object
          ERDAT LIKE VBAP-ERDAT,      " date on which the record was created
          MATNR LIKE VBAP-MATNR.      " material number
    DATA : END OF IT_VBAP.
    DATA : BEGIN OF IT_MARA OCCURS 0, " general material data
           MATNR LIKE MARA-MATNR,     " material number
           ERNAM LIKE MARA-ERNAM,
           " name of the person who created the object
           MATKL LIKE MARA-MATKL,     " material group
           MEINS LIKE MARA-MEINS,     " base unit of measure
           PSTAT LIKE MARA-PSTAT.     " maintainence status
    DATA : END OF IT_MARA.
    ******************VARIABLE
    DECLARATION**********************************
    DATA : REPID LIKE SY-REPID.       " program name
    DATA : IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
    " field catalog table for vbap
           WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
    DATA : IT_FIELDCAT1 TYPE SLIS_T_FIELDCAT_ALV,
    " field catalog table for mara
           WA_FIELDCAT1 TYPE SLIS_FIELDCAT_ALV.
    DATA : WA_LAYOUT TYPE SLIS_LAYOUT_ALV.
    DATA: GT_XEVENTS TYPE SLIS_T_EVENT.
    DATA: GT_YEVENTS TYPE SLIS_T_EVENT.            " events table
    DATA : XS_EVENT  TYPE SLIS_ALV_EVENT.          " events type
    DATA : GT_PRINT TYPE SLIS_PRINT_ALV.           " print table
    *******************MULTIPLE SELECT INPUT
    PARAMETERS**********************
    SELECT-OPTIONS : S_VBELN FOR VBAP-VBELN.
    " multiple selection for sales document
    ******************INITIALIZATION**************************************
    INITIALIZATION.
      REPID = SY-REPID.
    *******************START OF
    SELECTION************************************
    START-OF-SELECTION.
      PERFORM POP_VBAP.
      " populating the table with document item data
      PERFORM POP_MARA.
      " populating the table with general material data
      PERFORM FIELD_CAT.
      " mapping the fields for the field catalog
      PERFORM EVENTS.                      " using the events
      PERFORM BLOCK_LIST.
      " displaying the data in blocked list
    *&      Form  field_cat
          text
    -->  p1        text
    <--  p2        text
    FORM FIELD_CAT .
      WA_FIELDCAT-FIELDNAME = 'VBELN'.
      WA_FIELDCAT-TABNAME = 'IT_VBAP'.
      WA_FIELDCAT-SELTEXT_L = 'SALES DOC'.
      WA_FIELDCAT-COL_POS = 1.
      WA_FIELDCAT-OUTPUTLEN = 10.
      APPEND WA_FIELDCAT TO IT_FIELDCAT.
      CLEAR WA_FIELDCAT.
      WA_FIELDCAT-FIELDNAME = 'POSNR'.
      WA_FIELDCAT-TABNAME = 'IT_VBAP'.
      WA_FIELDCAT-SELTEXT_L = 'DOC ITEM'.
      WA_FIELDCAT-COL_POS = 2.
      WA_FIELDCAT-OUTPUTLEN = 6.
      APPEND WA_FIELDCAT TO IT_FIELDCAT.
      CLEAR WA_FIELDCAT.
      WA_FIELDCAT-FIELDNAME = 'ERNAM'.
      WA_FIELDCAT-TABNAME = 'IT_VBAP'.
      WA_FIELDCAT-SELTEXT_L = 'NAME'.
      WA_FIELDCAT-COL_POS = 3.
      WA_FIELDCAT-OUTPUTLEN = 12.
      APPEND WA_FIELDCAT TO IT_FIELDCAT.
      CLEAR WA_FIELDCAT.
      WA_FIELDCAT-FIELDNAME = 'ERDAT'.
      WA_FIELDCAT-TABNAME = 'IT_VBAP'.
      WA_FIELDCAT-SELTEXT_L = 'DATE'.
      WA_FIELDCAT-COL_POS = 4.
      WA_FIELDCAT-OUTPUTLEN = 8.
      APPEND WA_FIELDCAT TO IT_FIELDCAT.
      CLEAR WA_FIELDCAT.
      WA_FIELDCAT-FIELDNAME = 'MATNR'.
      WA_FIELDCAT-TABNAME = 'IT_VBAP'.
      WA_FIELDCAT-SELTEXT_L = 'MAT NO'.
      WA_FIELDCAT-COL_POS = 5.
      WA_FIELDCAT-OUTPUTLEN = 18.
      APPEND WA_FIELDCAT TO IT_FIELDCAT.
      CLEAR WA_FIELDCAT.
      WA_FIELDCAT1-FIELDNAME = 'MATNR'.
      WA_FIELDCAT1-TABNAME = 'IT_MARA'.
      WA_FIELDCAT1-SELTEXT_L = 'MAT NO'.
      WA_FIELDCAT1-COL_POS = 1.
      WA_FIELDCAT1-OUTPUTLEN = 18.
      APPEND WA_FIELDCAT1 TO IT_FIELDCAT1.
      CLEAR WA_FIELDCAT1.
      WA_FIELDCAT1-FIELDNAME = 'ERNAM'.
      WA_FIELDCAT1-TABNAME = 'IT_MARA'.
      WA_FIELDCAT1-SELTEXT_L = 'NAME'.
      WA_FIELDCAT1-COL_POS = 2.
      WA_FIELDCAT1-OUTPUTLEN = 12.
      APPEND WA_FIELDCAT1 TO IT_FIELDCAT1.
      CLEAR WA_FIELDCAT1.
      WA_FIELDCAT1-FIELDNAME = 'MATKL'.
      WA_FIELDCAT1-TABNAME = 'IT_MARA'.
      WA_FIELDCAT1-SELTEXT_L = 'MAT DESC'.
      WA_FIELDCAT1-COL_POS = 3.
      WA_FIELDCAT1-OUTPUTLEN = 9.
      APPEND WA_FIELDCAT1 TO IT_FIELDCAT1.
      CLEAR WA_FIELDCAT1.
      WA_FIELDCAT1-FIELDNAME = 'MEINS'.
      WA_FIELDCAT1-TABNAME = 'IT_MARA'.
      WA_FIELDCAT1-SELTEXT_L = 'UNITS'.
      WA_FIELDCAT1-COL_POS = 4.
      WA_FIELDCAT1-OUTPUTLEN = 3.
      APPEND WA_FIELDCAT1 TO IT_FIELDCAT1.
      CLEAR WA_FIELDCAT1.
      WA_FIELDCAT1-FIELDNAME = 'PSTAT'.
      WA_FIELDCAT1-TABNAME = 'IT_MARA'.
      WA_FIELDCAT1-SELTEXT_L = 'STATUS'.
      WA_FIELDCAT1-COL_POS = 5.
      WA_FIELDCAT1-OUTPUTLEN = 15.
      APPEND WA_FIELDCAT1 TO IT_FIELDCAT1.
      CLEAR WA_FIELDCAT1.
    ENDFORM.                    " field_cat
    *&      Form  events
          text
    -->  p1        text
    <--  p2        text
    FORM EVENTS .
      CLEAR XS_EVENT.
      XS_EVENT-NAME = SLIS_EV_END_OF_PAGE.
      XS_EVENT-FORM = 'XEND_OF_PAGE'.
      APPEND XS_EVENT TO GT_XEVENTS.
      CLEAR XS_EVENT.
      XS_EVENT-NAME = SLIS_EV_TOP_OF_PAGE.
      XS_EVENT-FORM = 'XTOP_OF_PAGE'.
      APPEND XS_EVENT TO GT_XEVENTS.
      CLEAR XS_EVENT.
      XS_EVENT-NAME = SLIS_EV_TOP_OF_LIST.
      XS_EVENT-FORM = 'XTOP_OF_LIST'.
      APPEND XS_EVENT TO GT_XEVENTS.
      CLEAR XS_EVENT.
      XS_EVENT-NAME = SLIS_EV_END_OF_LIST.
      XS_EVENT-FORM = 'XEND_OF_LIST'.
      APPEND XS_EVENT TO GT_XEVENTS.
      CLEAR XS_EVENT.
      CLEAR XS_EVENT.
      XS_EVENT-NAME = SLIS_EV_END_OF_PAGE.
      XS_EVENT-FORM = 'YEND_OF_PAGE'.
      APPEND XS_EVENT TO GT_YEVENTS.
      CLEAR XS_EVENT.
      XS_EVENT-NAME = SLIS_EV_TOP_OF_PAGE.
      XS_EVENT-FORM = 'YTOP_OF_PAGE'.
      APPEND XS_EVENT TO GT_YEVENTS.
      CLEAR XS_EVENT.
      XS_EVENT-NAME = SLIS_EV_TOP_OF_LIST.
      XS_EVENT-FORM = 'YTOP_OF_LIST'.
      APPEND XS_EVENT TO GT_YEVENTS.
      CLEAR XS_EVENT.
      XS_EVENT-NAME = SLIS_EV_END_OF_LIST.
      XS_EVENT-FORM = 'YEND_OF_LIST'.
      APPEND XS_EVENT TO GT_YEVENTS.
    ENDFORM.                    " events
    *&      Form  XTOP_OF_PAGE
          text
    FORM XTOP_OF_PAGE.
    BREAK-POINT.
      WRITE: / 'X_TOP_OF_PAGE'.
    ENDFORM.                    "XTOP_OF_PAGE
          FORM XTOP_OF_LIST                                             *
    FORM XTOP_OF_LIST.
    BREAK-POINT.
      WRITE: / 'X_TOP_OF_LIST'.
    ENDFORM.                    "XTOP_OF_LIST
          FORM XEND_OF_PAGE                                             *
    FORM XEND_OF_PAGE.
    BREAK-POINT.
      WRITE: / 'X_END_OF_PAGE'.
    ENDFORM.                    "XEND_OF_PAGE
          FORM XEND_OF_LIST                                             *
    FORM XEND_OF_LIST.
    BREAK-POINT.
      WRITE: / 'X_END_OF_LIST'.
    ENDFORM.                    "XEND_OF_LIST
    FORM YTOP_OF_PAGE.
    BREAK-POINT.
      WRITE: / 'Y_TOP_OF_PAGE'.
    ENDFORM.                    "YTOP_OF_PAGE
          FORM YTOP_OF_LIST                                             *
    FORM YTOP_OF_LIST.
    BREAK-POINT.
      WRITE: / 'Y_TOP_OF_LIST'.
    ENDFORM.                    "YTOP_OF_LIST
          FORM YEND_OF_PAGE                                             *
    FORM YEND_OF_PAGE.
    BREAK-POINT.
      WRITE: / 'Y_END_OF_PAGE'.
    ENDFORM.                    "YEND_OF_PAGE
          FORM YEND_OF_LIST                                             *
    FORM YEND_OF_LIST.
    BREAK-POINT.
      WRITE: / 'Y_END_OF_LIST'.
    ENDFORM.                    "YEND_OF_LIST
    *&      Form  POP_VBAP
          text
    -->  p1        text
    <--  p2        text
    FORM POP_VBAP .
      SELECT VBELN
               POSNR
               ERNAM
               ERDAT
               MATNR
               FROM VBAP
               INTO CORRESPONDING FIELDS OF TABLE IT_VBAP
               WHERE VBELN IN S_VBELN.
    ENDFORM.                    " POP_VBAP
    *&      Form  POP_MARA
          text
    -->  p1        text
    <--  p2        text
    FORM POP_MARA .
      LOOP AT IT_VBAP.
        SELECT SINGLE MATNR
                      ERNAM
                      MATKL
                      MEINS
                      PSTAT
                      FROM MARA
                      INTO CORRESPONDING FIELDS OF IT_MARA
                      WHERE MATNR = IT_VBAP-MATNR.
        APPEND IT_MARA.
      ENDLOOP.
    ENDFORM.                    " POP_MARA
    *&      Form  BLOCK_LIST
          text
    -->  p1        text
    <--  p2        text
    FORM BLOCK_LIST .
      CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'
        EXPORTING
          I_CALLBACK_PROGRAM       = REPID
          I_CALLBACK_PF_STATUS_SET = ' '
          I_CALLBACK_USER_COMMAND  = 'user_command'.
      CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
          EXPORTING
            IS_LAYOUT                        = WA_LAYOUT
            IT_FIELDCAT                      = IT_FIELDCAT
            I_TABNAME                        = 'IT_VBAP'
            IT_EVENTS                        = GT_XEVENTS
      IT_SORT                          =
      I_TEXT                           = ' '
          TABLES
            T_OUTTAB                         = IT_VBAP
    EXCEPTIONS
      PROGRAM_ERROR                    = 1
      MAXIMUM_OF_APPENDS_REACHED       = 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.
      CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
        EXPORTING
          IS_LAYOUT                        = WA_LAYOUT
          IT_FIELDCAT                      = IT_FIELDCAT1
          I_TABNAME                        = 'IT_MARA'
          IT_EVENTS                        = GT_YEVENTS
        IT_SORT                          =
        I_TEXT                           = ' '
        TABLES
          T_OUTTAB                         = IT_MARA
      EXCEPTIONS
        PROGRAM_ERROR                    = 1
        MAXIMUM_OF_APPENDS_REACHED       = 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.
      CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'
       EXPORTING
      I_INTERFACE_CHECK             = ' '
         IS_PRINT                      = GT_PRINT
      I_SCREEN_START_COLUMN         = 0
      I_SCREEN_START_LINE           = 0
      I_SCREEN_END_COLUMN           = 0
      I_SCREEN_END_LINE             = 0
    IMPORTING
      E_EXIT_CAUSED_BY_CALLER       =
      ES_EXIT_CAUSED_BY_USER        =
    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.                    " BLOCK_LIST
    Regards
    vasu

  • End of page in ALV Grid Report

    Dear ABAPres,
            I have developed ALV report using the Function module 'REUSE_ALV_GRID_DISPLAY'.
    I want to display the End of Page.How can i achiev this.Please help me in this.
    Thanks & Regards,
    ashok.

    Hi ,
    See below code....
    REPORT  zcssd_sales_hours_pend2.
    TYPE-POOLS : slis.
    *****Tables Used in the Report************************
    TABLES :  vbak,
             tvak,
             tvlk,
             likp,
             vbep,
             t001w,
             kna1.
    *****Global Data Declarations*************************
    DATA: i_fieldcat TYPE slis_t_fieldcat_alv ,
          wa_fieldcat TYPE slis_fieldcat_alv.
    DATA: tbl_fieldcat1 TYPE slis_t_fieldcat_alv ,
          st_fieldcat1  TYPE slis_fieldcat_alv.
    DATA: w_layout TYPE slis_layout_alv.
    DATA: st_layout1    TYPE slis_layout_alv,
          v_header         TYPE slis_t_listheader,
          v_header1         TYPE slis_t_listheader,
          v_header2         TYPE slis_t_listheader,
          v_events         TYPE slis_t_event.
    DATA: gt_sort TYPE slis_t_sortinfo_alv.
    DATA: i_events TYPE slis_t_event,
          i_event_exit TYPE slis_t_event_exit.
    DATA: w_events LIKE LINE OF i_events,
          w_event_exit LIKE LINE OF i_event_exit.
    DATA: i_list_comments TYPE slis_t_listheader.
    DATA: w_list_comments LIKE LINE OF i_list_comments.
    DATA: w_print TYPE slis_print_alv.
    DATA: gs_sort TYPE slis_sortinfo_alv.
    *DATA : BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE.
    *****Declaration of Internal Tables****************
    TYPES :  BEGIN OF ty_vbap_vbak,
             vbeln TYPE vbap-vbeln,
             posnr TYPE vbap-posnr,
             matnr TYPE vbap-matnr,
             matkl TYPE vbap-matkl,
             zmeng TYPE vbap-zmeng,
             meins TYPE vbap-meins,
             spart TYPE vbap-spart,
             netwr TYPE vbap-netwr,
             kwmeng TYPE vbap-kwmeng,
             werks TYPE vbap-werks,
             route TYPE vbap-route,
             netpr TYPE vbap-netpr,
             kpein TYPE vbap-kpein,
             kmein TYPE vbap-kmein,
             auart TYPE vbak-auart,
             lifsk TYPE vbak-lifsk,
             netwr1 TYPE vbak-netwr,
             vkorg TYPE vbak-vkorg,
             vtweg TYPE vbak-vtweg,
             spart1 TYPE vbak-spart,
             vdatu TYPE vbak-vdatu,
             kunnr TYPE vbak-kunnr,
             END OF ty_vbap_vbak.
    DATA : i_vbap_vbak1 TYPE STANDARD TABLE OF ty_vbap_vbak.
    DATA : w_vbap_vbak1 LIKE LINE OF i_vbap_vbak1.
    DATA : i_vbap_vbak2 TYPE STANDARD TABLE OF ty_vbap_vbak.
    DATA : w_vbap_vbak2 LIKE LINE OF i_vbap_vbak2.
    TYPES :  BEGIN OF ty_knvv,
             kunnr TYPE knvv-kunnr,
             vkorg TYPE knvv-vkorg,
             vtweg TYPE knvv-vtweg,
             spart TYPE knvv-spart,
             bzirk TYPE knvv-bzirk,
             name1 TYPE kna1-name1,
            END OF ty_knvv.
    DATA :  i_knvv1 TYPE STANDARD TABLE OF ty_knvv.
    DATA :  w_knvv1 LIKE LINE OF i_knvv1.
    DATA :  i_knvv2 TYPE STANDARD TABLE OF ty_knvv.
    DATA :  w_knvv2 LIKE LINE OF i_knvv2.
    TYPES : BEGIN OF ty_likp,
            vbeln TYPE likp-vbeln,
            lfart TYPE likp-lfart,
            lddat TYPE likp-lddat,
            vbtyp TYPE likp-vbtyp,
            kunnr TYPE likp-kunnr,
            anzpk TYPE likp-anzpk,
            netwr TYPE likp-netwr,
            werks TYPE likp-werks.
    TYPES : END OF ty_likp.
    DATA :  i_likp TYPE STANDARD TABLE OF ty_likp.
    DATA :  w_likp LIKE LINE OF i_likp.
    DATA : i_t171t TYPE STANDARD TABLE OF t171t.
    DATA : w_t171t LIKE LINE OF i_t171t.
    TYPES : BEGIN OF ty_lips,
            vbeln TYPE lips-vbeln,
            posnr TYPE lips-posnr,
            matnr TYPE lips-matnr,
            matkl TYPE lips-matkl,
            werks TYPE lips-werks,
            lfimg TYPE lips-lfimg,
            netwr TYPE lips-netwr.
    TYPES : END OF ty_lips.
    DATA :  i_lips TYPE STANDARD TABLE OF ty_lips.
    DATA :  w_lips LIKE LINE OF i_lips.
    TYPES : BEGIN OF ty_likp_lips,
            vbeln TYPE likp-vbeln,
            vkorg TYPE likp-vkorg,
            lfart TYPE likp-lfart,
            lddat TYPE likp-lddat,
            vbtyp TYPE likp-vbtyp,
            kunnr TYPE likp-kunnr,
            anzpk TYPE likp-anzpk,
            netwr TYPE likp-netwr,
            werks TYPE likp-werks,
            posnr TYPE lips-posnr,
            matnr TYPE lips-matnr,
            matkl TYPE lips-matkl,
            lipswerks TYPE lips-werks,
            lfimg TYPE lips-lfimg,
            vrkme TYPE lips-vrkme,
            vgbel TYPE lips-vgbel,
            vtweg TYPE lips-vtweg,
            spart TYPE lips-spart,
            lipsnetwr TYPE lips-netwr.
    TYPES : END OF ty_likp_lips.
    DATA : i_likp_lips TYPE STANDARD TABLE OF ty_likp_lips.
    DATA : w_likp_lips LIKE LINE OF i_likp_lips.
    DATA : i_likp_lips1 TYPE STANDARD TABLE OF ty_likp_lips.
    DATA : w_likp_lips1 LIKE LINE OF i_likp_lips1.
    TYPES : BEGIN OF ty_vbup,
            vbeln TYPE vbup-vbeln,
            posnr TYPE vbup-posnr,
            lfsta TYPE vbup-lfsta,
            wbsta TYPE vbup-wbsta,
            END OF ty_vbup.
    TYPES : BEGIN OF ty_vbup1,
            vbeln TYPE vbup-vbeln,
            posnr TYPE vbup-posnr,
            lfgsa TYPE vbup-lfgsa,
            wbsta TYPE vbup-wbsta,
            END OF ty_vbup1.
    DATA : i_vbup TYPE STANDARD TABLE OF ty_vbup.
    DATA : w_vbup LIKE LINE OF i_vbup.
    DATA : i_vbup1 TYPE STANDARD TABLE OF ty_vbup1.
    DATA : w_vbup1 LIKE LINE OF i_vbup1.
    TYPES : BEGIN OF ty_output,
            vbeln TYPE likp-vbeln,
            vkorg TYPE likp-vkorg,
            lfart TYPE likp-lfart,
            lddat TYPE likp-lddat,
            vbtyp TYPE likp-vbtyp,
            kunnr TYPE likp-kunnr,
            anzpk TYPE likp-anzpk,
            netwr TYPE likp-netwr,
            werks TYPE likp-werks,
            posnr TYPE lips-posnr,
            matnr TYPE lips-matnr,
            matkl TYPE lips-matkl,
            lipswerks TYPE lips-werks,
            lfimg TYPE lips-lfimg,
            vrkme TYPE lips-vrkme,
            vgbel TYPE lips-vgbel,
            vtweg TYPE lips-vtweg,
            spart TYPE lips-spart,
            lipsnetwr TYPE lips-netwr,
            lfsta TYPE vbup-lfsta,
            wbsta TYPE vbup-wbsta,
            END OF ty_output.
    DATA : i_output TYPE STANDARD TABLE OF ty_output.
    DATA : w_output LIKE LINE OF i_output.
    DATA : i_output1 TYPE STANDARD TABLE OF ty_output.
    DATA : w_output1 LIKE LINE OF i_output1.
    TYPES : BEGIN OF ty_vbfa,
            vbelv TYPE vbfa-vbelv,
            posnv TYPE vbfa-posnv,
            vbeln TYPE vbfa-vbeln,
            posnn TYPE vbfa-posnn,
            vbtyp_n TYPE vbfa-vbtyp_n,
            rfmng TYPE vbfa-rfmng,
           RFWRT TYPE VBFA-RFWRT,
            vbtyp_v TYPE vbfa-vbtyp_v,
            END OF ty_vbfa.
    DATA : i_vbfa TYPE STANDARD TABLE OF ty_vbfa.
    DATA : w_vbfa LIKE LINE OF i_vbfa.
    TYPES : BEGIN OF ty_vbfa1,
            vbelv TYPE vbfa-vbelv,
            posnv TYPE vbfa-posnv,
            vbeln TYPE vbfa-vbeln,
            posnn TYPE vbfa-posnn,
            rfmng TYPE vbfa-rfmng,
            rfwrt TYPE vbfa-rfwrt,
            END OF ty_vbfa1.
    DATA : i_vbfa1 TYPE STANDARD TABLE OF ty_vbfa1.
    DATA : w_vbfa1 LIKE LINE OF i_vbfa1.
    TYPES: BEGIN OF ty_vbrk_vbrp,
           vbeln TYPE vbrk-vbeln,
           fkart TYPE vbrk-fkart,
           fktyp TYPE vbrk-fktyp,
           vbtyp TYPE vbrk-vbtyp,
           waerk TYPE vbrk-waerk,
           netwr TYPE vbrk-netwr,
           posnr TYPE vbrp-posnr,
           fkimg TYPE vbrp-fkimg,
           vrkme TYPE vbrp-vrkme,
           umvkz TYPE vbrp-umvkz,
           umvkn TYPE vbrp-umvkn,
           netwr1 TYPE vbrp-netwr,
           END OF ty_vbrk_vbrp.
    DATA : i_vbrk_vbrp TYPE STANDARD TABLE OF ty_vbrk_vbrp.
    DATA : w_vbrk_vbrp LIKE LINE OF i_vbrk_vbrp.
    TYPES : BEGIN OF ty_vbep,
            vbeln TYPE vbep-vbeln,
            posnr TYPE vbep-posnr,
            wmeng TYPE vbep-wmeng,
            lddat TYPE vbep-lddat,
            END OF ty_vbep.
    DATA : i_vbep TYPE STANDARD TABLE OF ty_vbep.
    DATA : w_vbep LIKE LINE OF i_vbep.
    TYPES : BEGIN OF ty_vbep_vbup,
            vbeln TYPE vbep-vbeln,
            posnr TYPE vbep-posnr,
            wmeng TYPE vbep-wmeng,
            lddat TYPE vbep-lddat,
            lfgsa TYPE vbup-lfgsa,
            wbsta TYPE vbup-wbsta,
            END OF ty_vbep_vbup.
    DATA : i_vbep_vbup TYPE STANDARD TABLE OF ty_vbep_vbup.
    DATA : w_vbep_vbup LIKE LINE OF i_vbep_vbup.
    TYPES : BEGIN OF ty_makt,
            matnr TYPE mara-matnr,
            maktx TYPE makt-maktx,
            END OF ty_makt.
    DATA : i_makt TYPE STANDARD TABLE OF ty_makt.
    DATA : w_makt LIKE LINE OF i_makt.
    TYPES : BEGIN OF ty_final,
            lddat TYPE likp-lddat,
            werks TYPE vbap-werks,
            bzirk TYPE knvv-bzirk,
            bztxt TYPE t171t-bztxt,
            kunnr TYPE vbak-kunnr,
            name1 TYPE kna1-name1,
            vbeln TYPE likp-vbeln,
            wbsta TYPE vbup-wbsta,
            text(25) TYPE c,
            lfgsa TYPE vbup-lfgsa,
            kwmeng TYPE vbap-kwmeng,
            netwr  TYPE likp-netwr,
            order TYPE vbak-vbeln,
            posnr TYPE vbap-posnr,
            matnr TYPE mara-matnr,
            netwr1 TYPE vbak-netwr,
            kwmeng1 TYPE vbap-kwmeng,
            kwmeng2 TYPE vbap-kwmeng,
            route TYPE vbap-route,
            lifsk TYPE vbak-lifsk,
            vdatu TYPE vbak-vdatu,
            END OF ty_final.
    DATA : i_final TYPE STANDARD TABLE OF ty_final.
    DATA : w_final LIKE LINE OF i_final.
    DATA : i_final1 TYPE STANDARD TABLE OF ty_final.
    DATA : w_final1 LIKE LINE OF i_final1.
    TYPES : BEGIN OF ty_final2,
            lddat TYPE likp-lddat,
            werks TYPE vbap-werks,
            bzirk TYPE knvv-bzirk,
            bztxt TYPE t171t-bztxt,
            kunnr TYPE vbak-kunnr,
            name1 TYPE kna1-name1,
            vbeln TYPE likp-vbeln,
            wbsta TYPE vbup-wbsta,
            text(25) TYPE c,
            lfgsa TYPE vbup-lfgsa,
            kwmeng TYPE vbap-kwmeng,
            netwr  TYPE likp-netwr,
            order TYPE vbak-vbeln,
            posnr TYPE vbap-posnr,
            matnr TYPE mara-matnr,
            netwr1 TYPE vbak-netwr,
            kwmeng1 TYPE vbap-kwmeng,
            kwmeng2 TYPE vbap-kwmeng,
            vdatu TYPE vbak-vdatu,
            maktx TYPE makt-maktx,
            END OF ty_final2.
    DATA : i_final2 TYPE STANDARD TABLE OF ty_final2.
    DATA : w_final2 LIKE LINE OF i_final2.
    DATA : i_conwa TYPE STANDARD TABLE OF vbco6 WITH HEADER LINE.
    DATA : i_vbfa_tab TYPE STANDARD TABLE OF vbfa WITH HEADER LINE.
    DATA : opt TYPE ctu_params.
    DATA : v_vbeln TYPE vbak-vbeln.
    DATA : w_vbeln TYPE vbak-vbeln.
    DATA : v_repid TYPE sy-repid.
    DATA : v_netwr TYPE vbak-netwr.
    DATA : v_kwmeng TYPE vbap-kwmeng.
    DATA : v_netwr1 TYPE vbak-netwr.
    DATA : v_kwmeng1 TYPE vbap-kwmeng.
    DATA : v_time(60) TYPE c.
    DATA : v_plant(60) TYPE c.
    DATA : v_date(60) TYPE c.
    DATA : v_lfart(60) TYPE c.
    DATA : v_auart(60) TYPE c.
    DATA : v_mod(2) TYPE c.
    DATA : name(10).
    DATA : v_indexes TYPE sy-index.
    DATA : v_text(40) TYPE c.
    DATA : v_total TYPE p DECIMALS 2.
    DATA : v_total1(60) TYPE c.
    DATA : v_totqt TYPE p DECIMALS 2.
    ****Constants Declaration********************************
    CONSTANTS : c_wbstaa TYPE vbup-wbsta VALUE 'A',
                c_wbstab TYPE vbup-wbsta VALUE 'B',
                c_wbstac TYPE vbup-wbsta VALUE 'C',
                c_lfartlf TYPE likp-lfart VALUE 'LF',
                c_lfartlr TYPE likp-lfart VALUE 'LR',
                c_lfartlo TYPE likp-lfart VALUE 'LO',
                c_lfartzlo TYPE likp-lfart VALUE 'ZLO',
                c_lfgsaa TYPE vbup-lfgsa VALUE 'A',
                c_lfgsab TYPE vbup-lfgsa VALUE 'B',
                c_vbtyp_nj TYPE vbfa-vbtyp_n VALUE 'J',
                c_vbtyp_nt TYPE vbfa-vbtyp_n VALUE 'T',
                c_vbtyp_nm TYPE vbfa-vbtyp_n VALUE 'M',
                c_vbtyp_vh TYPE vbfa-vbtyp_v VALUE 'H',
                c_1100 TYPE t001w-werks VALUE '1100',
                c_1101 TYPE t001w-werks VALUE '1101'.
    ****Selection Screen Declaration*************************
    SELECTION-SCREEN : BEGIN OF BLOCK b1 WITH FRAME TITLE title.
    SELECT-OPTIONS :   s_werks FOR t001w-werks OBLIGATORY.
    SELECT-OPTIONS :   s_lddat FOR likp-lddat.
    SELECT-OPTIONS :   s_auat FOR vbak-auart DEFAULT 'OR'.
    SELECT-OPTIONS :   s_lfat FOR likp-lfart DEFAULT 'LF'.
    SELECT-OPTIONS :   s_vbeln FOR vbep-vbeln NO-DISPLAY.
    SELECT-OPTIONS :   s_posnr FOR vbep-posnr NO-DISPLAY.
    SELECTION-SCREEN : END OF BLOCK b1.
    ****Initialization***************************************
    INITIALIZATION.
      v_repid = sy-repid.
      title = 'Selection Screen Options'.
      s_werks-sign   = 'I'.
      s_werks-option = 'EQ'.
      s_werks-low    = c_1100.
      s_werks-high   = c_1101.
      APPEND s_werks.
      CALL FUNCTION 'OIUREP_MONTH_FIRST_LAST'
        EXPORTING
          i_date      = sy-datum
        IMPORTING
          e_first_day = s_lddat-low
          e_last_day  = s_lddat-high.
      s_lddat-sign = 'I'.
      s_lddat-option = 'EQ'.
      APPEND s_lddat TO s_lddat.
    ****At selection screen on field*************************
    AT SELECTION-SCREEN ON s_werks.
      SELECT SINGLE * FROM t001w WHERE werks IN s_werks.
      IF sy-subrc <> 0.
        MESSAGE 'Please enter correct Plant' TYPE 'E'.
      ENDIF.
    AT SELECTION-SCREEN ON s_lddat.
    AT SELECTION-SCREEN ON s_auat.
      SELECT SINGLE * FROM tvak WHERE auart IN s_auat.
      IF sy-subrc  <> 0.
        MESSAGE 'Please enter correct Sales Doc Type' TYPE 'E'.
      ENDIF.
    AT SELECTION-SCREEN ON s_lfat.
      SELECT SINGLE * FROM tvlk WHERE lfart IN s_lfat.
      IF sy-subrc  <> 0.
        MESSAGE 'Please enter correct Delv Doc Type' TYPE 'E'.
      ENDIF.
    ****Start selection of data from tables based on cond****
    PERFORM SALESORDER_HEADER_ITEM.
    PERFORM CUSTOMER_SALESDATA.
    START-OF-SELECTION.
      PERFORM delivery_header_item.
      PERFORM salesdocument_itemstatus.
      PERFORM salesdocument_schedulelinedata.
      PERFORM salesdocument_itemstatus_lfgsa.
      PERFORM sales_district.
      PERFORM delivery_salesdocument_wbsta.
      PERFORM salesdocumentflow.
      PERFORM billingdoc_header_item.
      PERFORM salesorder_header_item2.
      PERFORM customer_salesdata1.
      PERFORM delivery_output.
      PERFORM salesdoc_shdlnitem_itemstatus.
      PERFORM salesorder_header_item1.
      PERFORM customer_salesdata2.
      PERFORM salesorder_output.
      PERFORM material_descriptions.
      PERFORM final_output.
    END-OF-SELECTION.
    ****Fieldcatalog Routine for ALVGRID******************
      PERFORM fieldcatalog.
    ****Event Routine for ALVGRID*************************
      PERFORM build_header CHANGING v_header v_header1.
      PERFORM build_events CHANGING v_events.
      PERFORM print_build.
    ****Layout Routine for ALVGRID************************
      PERFORM layout_build.
    ****Grid_display Routine for ALVGRID******************
      PERFORM grid_display.
    *&      Form  fieldcatalog
          text
    -->  p1        text
    <--  p2        text
    FORM fieldcatalog .
      wa_fieldcat-tabname = 'I_FINAL1'.
      wa_fieldcat-fieldname = 'LDDAT'.
      wa_fieldcat-seltext_m = 'Loading Dt'.
      wa_fieldcat-key       = ' '.   "SUBTOTAL KEY
      APPEND wa_fieldcat TO i_fieldcat.
      CLEAR wa_fieldcat.
      wa_fieldcat-tabname = 'I_FINAL1'.
      wa_fieldcat-fieldname = 'WERKS'.
      wa_fieldcat-seltext_m = 'Plant'.
      wa_fieldcat-key       = ' '.   "SUBTOTAL KEY
      APPEND wa_fieldcat TO i_fieldcat.
      CLEAR wa_fieldcat.
      wa_fieldcat-tabname = 'I_FINAL1'.
      wa_fieldcat-fieldname = 'BZIRK'.
      wa_fieldcat-seltext_m = 'Sales Dist'.
      APPEND wa_fieldcat TO i_fieldcat.
      CLEAR wa_fieldcat.
      wa_fieldcat-tabname = 'I_FINAL1'.
      wa_fieldcat-fieldname = 'BZTXT'.
      wa_fieldcat-seltext_m = 'Name of Dist'.
      APPEND wa_fieldcat TO i_fieldcat.
      CLEAR wa_fieldcat.
      wa_fieldcat-tabname = 'I_FINAL1'.
      wa_fieldcat-fieldname = 'KUNNR'.
      wa_fieldcat-seltext_m = 'Customer No.'.
      APPEND wa_fieldcat TO i_fieldcat.
      CLEAR wa_fieldcat.
      wa_fieldcat-tabname = 'I_FINAL1'.
      wa_fieldcat-fieldname = 'NAME1'.
      wa_fieldcat-seltext_m = 'Customer Name'.
      APPEND wa_fieldcat TO i_fieldcat.
      CLEAR wa_fieldcat.
      wa_fieldcat-tabname = 'I_FINAL1'.
      wa_fieldcat-fieldname = 'VBELN'.
      wa_fieldcat-seltext_m = 'Delivery No.'.
      wa_fieldcat-key       = ' '.   "SUBTOTAL KEY
      wa_fieldcat-hotspot   = 'X'.
      APPEND wa_fieldcat TO i_fieldcat.
      CLEAR wa_fieldcat.
      wa_fieldcat-tabname = 'I_FINAL1'.
      wa_fieldcat-fieldname = 'WBSTA'.
      wa_fieldcat-seltext_m = 'Delv Status'.
      APPEND wa_fieldcat TO i_fieldcat.
      CLEAR wa_fieldcat.
      wa_fieldcat-tabname = 'I_FINAL1'.
      wa_fieldcat-fieldname = 'TEXT'.
      wa_fieldcat-seltext_m = 'Status Desc'.
      APPEND wa_fieldcat TO i_fieldcat.
      CLEAR wa_fieldcat.
      wa_fieldcat-tabname = 'I_FINAL1'.
      wa_fieldcat-fieldname = 'KWMENG'.
      wa_fieldcat-seltext_m = 'Delivery Qty'.
      APPEND wa_fieldcat TO i_fieldcat.
      CLEAR wa_fieldcat.
      wa_fieldcat-tabname = 'I_FINAL1'.
      wa_fieldcat-fieldname = 'NETWR'.
      wa_fieldcat-seltext_m = 'Delv Net Value'.
      APPEND wa_fieldcat TO i_fieldcat.
      CLEAR wa_fieldcat.
      wa_fieldcat-tabname = 'I_FINAL1'.
      wa_fieldcat-fieldname = 'ORDER'.
      wa_fieldcat-seltext_m = 'Sales Order'.
      wa_fieldcat-hotspot   = 'X'.
      APPEND wa_fieldcat TO i_fieldcat.
      CLEAR wa_fieldcat.
      wa_fieldcat-tabname = 'I_FINAL1'.
      wa_fieldcat-fieldname = 'KWMENG1'.
      wa_fieldcat-seltext_m = 'Order Qty'.
      APPEND wa_fieldcat TO i_fieldcat.
      CLEAR wa_fieldcat.
      wa_fieldcat-tabname = 'I_FINAL1'.
      wa_fieldcat-fieldname = 'NETWR1'.
      wa_fieldcat-seltext_m = 'Sales Net Value'.
      APPEND wa_fieldcat TO i_fieldcat.
      CLEAR wa_fieldcat.
      wa_fieldcat-tabname = 'I_FINAL1'.
      wa_fieldcat-fieldname = 'LIFSK'.
      wa_fieldcat-seltext_m = 'Delv Block'.
      APPEND wa_fieldcat TO i_fieldcat.
      CLEAR wa_fieldcat.
      wa_fieldcat-tabname = 'I_FINAL1'.
      wa_fieldcat-fieldname = 'ROUTE'.
      wa_fieldcat-seltext_m = 'Route'.
      APPEND wa_fieldcat TO i_fieldcat.
      CLEAR wa_fieldcat.
      wa_fieldcat-tabname = 'I_FINAL1'.
      wa_fieldcat-fieldname = 'VDATU'.
      wa_fieldcat-seltext_m = 'Req Delivery Dt'.
      APPEND wa_fieldcat TO i_fieldcat.
      CLEAR wa_fieldcat.
      CLEAR gs_sort.
      gs_sort-fieldname = 'LDDAT'.
      gs_sort-spos      = 1.
      gs_sort-up        = 'X'.
      gs_sort-subtot    = 'X'.
      APPEND gs_sort TO gt_sort.
    ENDFORM.                    " fieldcatalog
    *&      Form  print_build
          text
    -->  p1        text
    <--  p2        text
    FORM print_build .
      w_print-no_print_listinfos = 'X'.
    ENDFORM.                    " print_build
    *&      Form  layout_build
          text
    -->  p1        text
    <--  p2        text
    FORM layout_build .
      w_layout-zebra = 'X'.
      w_layout-no_vline = ''.
      w_layout-colwidth_optimize = 'X'.
      w_layout-detail_popup = 'X'.
      w_layout-detail_initial_lines = 'X'.
      w_layout-detail_titlebar = 'Detail Title Bar'.
    ENDFORM.                    " layout_build
    *&      Form  GRID_DISPLAY
          text
    FORM grid_display.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          i_callback_program      = v_repid
          i_callback_user_command = 'PROCESS_USER_COMMANDS'
          is_layout               = w_layout
          it_fieldcat             = i_fieldcat[]
          it_sort                 = gt_sort[]
          i_default               = 'X'
          i_save                  = 'A'
          it_events               = v_events
          is_print                = w_print
        TABLES
          t_outtab                = i_final1
        EXCEPTIONS
          program_error           = 1
          OTHERS                  = 2.
    ENDFORM.                    "GRID_DISPLAY
    *&      Form  END_OF_LIST
    FORM top_of_list.
    ENDFORM.                    "TOP_OF_LIST
    *&      Form  PROCESS_USER_COMMANDS
          text
         -->SYST-UCOMM text
         -->SELFIELD   text
    FORM process_user_commands USING syst-ucomm LIKE syst-ucomm
                                     selfield TYPE slis_selfield.
      CASE syst-ucomm.
        WHEN '&IC1'.
          IF selfield-sel_tab_field = 'I_FINAL1-VBELN'.
            w_vbeln = selfield-value.
            SET PARAMETER ID: 'VL' FIELD w_vbeln.
            CALL TRANSACTION 'VL03N' AND SKIP FIRST SCREEN.
          ELSEIF selfield-sel_tab_field = 'I_FINAL1-ORDER'.
            v_vbeln = selfield-value.
            SET PARAMETER ID: 'AUN' FIELD v_vbeln.
            CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN.
          ELSE.
            READ TABLE i_final1 INTO w_final1 INDEX selfield-tabindex.
            IF w_final1-vbeln <> ' '.
              LOOP AT i_final INTO w_final WHERE vbeln = w_final1-vbeln.
                READ TABLE i_makt INTO w_makt WITH KEY matnr = w_final-matnr .
                IF sy-subrc = 0.
                  MOVE : w_final TO w_final2.
                  MOVE : w_makt-maktx TO w_final2-maktx.
                  APPEND w_final2 TO i_final2.
                ELSE.
                  MOVE : w_final TO w_final2.
                  MOVE : ' ' TO w_final2-maktx.
                  APPEND w_final2 TO i_final2.
                ENDIF.
              ENDLOOP.
              CLEAR w_makt.
            ELSE.
              LOOP AT i_final INTO w_final WHERE order = w_final1-order.
                READ TABLE i_makt INTO w_makt WITH KEY matnr = w_final-matnr .
                IF sy-subrc  = 0.
                  MOVE : w_final TO w_final2.
                  MOVE : w_makt-maktx TO w_final2-maktx.
                  APPEND w_final2 TO i_final2.
                ELSE.
                  MOVE : w_final TO w_final2.
                  MOVE : ' ' TO w_final2-maktx.
                  APPEND w_final2 TO i_final2.
                ENDIF.
              ENDLOOP.
              CLEAR w_makt.
            ENDIF.
            PERFORM fieldcatalog1 USING selfield .
            PERFORM event_build.
            PERFORM layout_build1.
            PERFORM grid_display1.
          ENDIF.
      ENDCASE.
    ENDFORM.                               " PROCESS_USER_COMMANDS
    *&      Form  fieldcatalog1
          text
    -->  p1        text
    <--  p2        text
    FORM fieldcatalog1 USING r_selfield TYPE slis_selfield.
      REFRESH tbl_fieldcat1.
      READ TABLE i_final1 INTO w_final1 INDEX r_selfield-tabindex.
      IF w_final1-vbeln <> ' '.
        PERFORM write_fieldcat1 USING 'POSNR' 'I_FINAL2' 'Item Number' ' ' 2 ' ' ' '
        PERFORM write_fieldcat1 USING 'MATNR' 'I_FINAL2' 'Material Number' ' ' 3 ' ' ' '
        PERFORM write_fieldcat1 USING 'MAKTX' 'I_FINAL2' 'Material Description' ' ' 4 ' ' ' '
        PERFORM write_fieldcat1 USING 'KWMENG' 'I_FINAL2' 'Delivery Qty' ' ' 7 ' ' ' '
        PERFORM write_fieldcat1 USING 'NETWR' 'I_FINAL2' 'Delv Net Value' ' ' 8 ' ' ' '
      ELSE.
        PERFORM write_fieldcat1 USING 'POSNR' 'I_FINAL2' 'Item Number' ' ' 2 ' ' ' '
        PERFORM write_fieldcat1 USING 'MATNR' 'I_FINAL2' 'Material Number' ' ' 3 ' ' ' '
        PERFORM write_fieldcat1 USING 'MAKTX' 'I_FINAL2' 'Material Description' ' ' 4 ' ' ' '
        PERFORM write_fieldcat1 USING 'KWMENG2' 'I_FINAL2' 'Sales Order Qty' ' ' 9 ' ' ' '
        PERFORM write_fieldcat1 USING 'NETWR1' 'I_FINAL2' 'Net Value' ' ' 10 ' ' ' '
      ENDIF.
    ENDFORM.                    " fieldcatalog1
    *&      Form  write_fieldcat1
          text
         -->NAME       text
         -->TAB        text
         -->ST         text
         -->KEY        text
         -->POS        text
         -->LENGTH     text
         -->ICON       text
         -->HOT        text
    FORM write_fieldcat1 USING name tab st key pos length icon hot.
      st_fieldcat1-fieldname   = name.
      st_fieldcat1-tabname     = tab.
      st_fieldcat1-seltext_m   = st.
      st_fieldcat1-key         = key.
      st_fieldcat1-col_pos     = pos.
      st_fieldcat1-outputlen   = length.
      st_fieldcat1-icon        = icon.
      st_fieldcat1-do_sum      = hot.
      APPEND st_fieldcat1 TO tbl_fieldcat1.
      CLEAR st_fieldcat1.
    ENDFORM.                               " WRITE_FIELDCAT
    *&      Form  GRID_DISPLAY1
          text
    -->  p1        text
    <--  p2        text
    FORM grid_display1 .
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          i_callback_program = v_repid
          it_fieldcat        = tbl_fieldcat1
          is_layout          = st_layout1
          it_events          = i_events[]
        TABLES
          t_outtab           = i_final2
        EXCEPTIONS
          program_error      = 1
          OTHERS             = 2.
      REFRESH i_final2.
    ENDFORM.                    " GRID_DISPLAY1
    *&      Form  LAYOUT_BUILD1
          text
    FORM layout_build1 .
      st_layout1-zebra = 'X'.
      st_layout1-no_vline = ''.
      st_layout1-colwidth_optimize = 'X'.
      st_layout1-detail_popup = 'X'.
      st_layout1-detail_initial_lines = 'X'.
      st_layout1-detail_titlebar = 'Detail Title Bar'.
    ENDFORM.                    " layout_build
    *&      Form  salesdocument_itemstatus
          text
    -->  p1        text
    <--  p2        text
    FORM salesdocument_itemstatus .
      CLEAR i_vbup.
      REFRESH i_vbup.
      v_indexes = 10.
      v_text = 'Processing... Sales Doc Item'.
      PERFORM progress_ind.
      IF NOT i_likp_lips[] IS INITIAL.
        SELECT vbeln
               posnr
               lfsta
               wbsta
          FROM vbup INTO TABLE i_vbup
          FOR ALL ENTRIES IN i_likp_lips
          WHERE vbeln = i_likp_lips-vbeln
          AND   posnr = i_likp_lips-posnr
          AND   wbsta IN (c_wbstaa, c_wbstab, c_wbstac).
      ENDIF.
        SORT i_vbup BY vbeln posnr.
      ENDFORM.                    " salesdocument_itemstatus
    *&      Form  delivery_header_item
          text
    -->  p1        text
    <--  p2        text
    FORM delivery_header_item .
      CLEAR i_likp_lips.
      REFRESH i_likp_lips.
      v_indexes = 1.
      v_text = 'Processing.. Delivery'.
      PERFORM progress_ind.
    selected data from delivery header and delivery iten based on loading date and plant
    based on document types LF LR LO ZLO.
      SELECT a~vbeln
             a~vkorg
             a~lfart
             a~lddat
             a~vbtyp
             a~kunnr
             a~anzpk
             a~netwr
             a~werks
             b~posnr
             b~matnr
             b~matkl
             b~werks
             b~lfimg
             b~vrkme
             b~vgbel
             b~vtweg
             b~spart
             b~netwr
        INTO TABLE i_likp_lips
        FROM likp AS a INNER JOIN lips AS b
        ON avbeln = bvbeln
        WHERE a~lfart IN s_lfat
        AND   a~lddat IN s_lddat
        AND   b~werks IN s_werks.
                                            %_HINTS ORACLE 'index("Z05" "Z05LFART" "Z05LDDAT")'.
    DELETE i_likp_lips WHERE lfart NOT IN s_lfat
                           OR lddat NOT IN s_lddat
                           OR lipswerks NOT IN s_werks.
      SORT i_likp_lips BY vbeln posnr.
    ENDFORM.                    " delivery_header_item
    *&      Form  SalesDocument_ScheduleLineData
          text
    -->  p1        text
    <--  p2        text
    FORM salesdocument_schedulelinedata .
      CLEAR i_vbep.
      REFRESH i_vbep.
      v_indexes = 15.
      v_text = 'Processing.. Sales Doc Sch Line Data'.
      PERFORM progress_ind.
    *SELECTED from table vbep based on loading date, this selection will fetch all
    *the open sales orders.
      SELECT vbeln
             posnr
             wmeng
             lddat
        FROM vbep
        INTO TABLE i_vbep
        WHERE vbeln in s_vbeln
          and posnr in s_posnr
          and lddat IN s_lddat.
    DELETE I_VBEP WHERE LDDAT NOT IN S_LDDAT.
      SORT i_vbep BY vbeln posnr.
    ENDFORM.                    " SalesDocument_ScheduleLineData
    *&      Form  salesdocument_itemstatus_lfgsa
          text
    -->  p1        text
    <--  p2        text
    FORM salesdocument_itemstatus_lfgsa .
      CLEAR i_vbup1.
      REFRESH i_vbup1.
      v_indexes = 20.
      v_text = 'Processing... Sales Doc Item'.
      PERFORM progress_ind.
    selected from vbup for all entries of vbep based on respective salesorder and item number
    and lfgsa status equals to A AND B.
      IF NOT i_vbep[] IS INITIAL.
        SELECT vbeln posnr lfgsa wbsta FROM vbup INTO TABLE i_vbup1 FOR ALL ENTRIES IN i_vbep
                                                                     WHERE vbeln = i_vbep-vbeln
                                                                     AND  posnr = i_vbep-posnr
                                                                     AND  LFGSA  IN  (C_LFGSAA, C_LFGSAB).
                                                                    %_HINTS ORACLE 'index("ZS1" "ZS1~LFGSA")'.
      ENDIF.
    DELETE i_vbup1 WHERE lfgsa <> c_lfgsaa AND lfgsa <> c_lfgsab.
      SORT i_vbup1 BY vbeln posnr.
    ENDFORM.                    " salesdocument_itemstatus_lfgsa
    *&      Form  billingdoc_header_item
          text
    -->  p1        text
    <--  p2        text
    FORM billingdoc_header_item .
      CLEAR i_vbrk_vbrp.
      REFRESH i_vbrk_vbrp.
      v_indexes = 40.
      v_text = 'Processing... Billing'.
      PERFORM progress_ind.
    *SELECTED INVOICE DETAILS FROM VBRK AND VBRP .
    IF NOT I_VBFA1[] IS INITIAL.
       SELECT AVBELN AFKART AFKTYP AVBTYP AWAERK ANETWR
              BPOSNR BFKIMG BVRKME BUMVKZ BUMVKN BNETWR
              INTO TABLE I_VBRK_VBRP  FROM VBRK AS A INNER
                         JOIN VBRP AS B ON AVBELN = BVBELN FOR ALL ENTRIES IN I_VBFA1
                         WHERE A~VBELN = I_VBFA1-VBELN AND
                               B~POSNR = I_VBFA1-POSNN.
    ENDIF.
    SORT I_VBRK_VBRP BY VBELN POSNR VRKME.
    ENDFORM.                    " billingdoc_header_item
    *&      Form  sales_district
          text
    -->  p1        text
    <--  p2        text
    FORM sales_district .
      CLEAR i_t171t.
      REFRESH i_t171t.
      v_indexes = 22.
      v_text = 'Processing... Sales District'.
      PERFORM progress_ind.
    *TO SELECT THE SALES DISTRICT FROM I171T.
      SELECT * FROM t171t INTO TABLE i_t171t WHERE spras = 'EN'.
    ENDFORM.                    " sales_district
    *&      Form  Material_Descriptions
          text
    -->  p1        text
    <--  p2        text
    FORM material_descriptions .
      DATA : i_fin TYPE STANDARD TABLE OF ty_final WITH HEADER LINE.
      CLEAR i_makt.
      REFRESH i_makt.
      PERFORM progress_ind.
      i_fin[] = i_final[].
      SORT i_fin BY matnr.
      DELETE ADJACENT DUPLICATES FROM i_fin COMPARING matnr.
    THIS STATEMENT IS USED TO SELECT MATERIAL DESCRIPTIONS BASED ON THE MATERIAL NUMBERS
    PRESENT IN THE FINAL INTERNAL TABLE.
      IF NOT i_fin[] IS INITIAL.
        SELECT matnr maktx FROM makt INTO TABLE i_makt FOR ALL ENTRIES IN i_fin WHERE spras = 'EN'
                                                                                    AND matnr = i_fin-matnr.
      ENDIF.
      SORT i_makt BY matnr.
    ENDFORM.                    " Material_Descriptions
    *&      Form  delivery_salesdocument_wbsta
          text
    -->  p1        text
    <--  p2        text
    This routine will helps us to combine delivery data and sales document item status
    FORM delivery_salesdocument_wbsta .
      CLEAR i_output.
      REFRESH i_output.
      v_indexes = 30.
      v_text = 'Processing... Open Delivery'.
      PERFORM progress_ind.
      LOOP AT i_likp_lips INTO w_likp_lips.
        READ TABLE i_vbup INTO w_vbup WITH KEY vbeln = w_likp_lips-vbeln
                                               posnr = w_likp_lips-posnr BINARY SEARCH.
        IF sy-subrc = 0.
          MOVE-CORRESPONDING w_likp_lips TO w_output.
          MOVE : w_vbup-lfsta TO w_output-lfsta.
          MOVE : w_vbup-wbsta TO w_output-wbsta.
          APPEND w_output TO i_output.
        ENDIF.
      ENDLOOP.
      SORT i_output BY vbeln posnr.
    ENDFORM.                    " delivery_salesdocument_wbsta
    *&      Form  salesdocumentflow
          text
    -->  p1        text
    <--  p2        text
    FORM salesdocumentflow .
      CLEAR i_vbfa.
      REFRESH i_vbfa.
      CLEAR i_vbfa1.
      REFRESH i_vbfa1.
      v_indexes = 35.
      v_text = 'Processing... Sales Doc Flow'.
      PERFORM progress_ind.
    THIS STATEMENT IS USED TO SELECT THE ORDER NUMBERS BASED ON DELIVERY NUMBERS
    FROM SALES DOCUMENT FLOW TABLE.
    IF NOT I_OUTPUT[] IS INITIAL.
       SELECT VBELV POSNV VBELN POSNN VBTYP_N RFMNG VBTYP_V INTO TABLE I_VBFA FROM VBFA
                                      FOR ALL ENTRIES IN I_OUTPUT WHERE VBELN = I_OUTPUT-VBELN
                                                                    AND POSNN = I_OUTPUT-POSNR
                                                                  AND VBTYP_N IN (C_VBTYP_NJ, C_VBTYP_NT).
       SELECT VBELV POSNV VBELN POSNN RFMNG RFWRT FROM VBFA INTO TABLE I_VBFA1 FOR ALL ENTRIES IN
                                              I_OUTPUT WHERE VBELV = I_OUTPUT-VBELN
                                                         AND POSNV = I_OUTPUT-POSNR
                                                         AND VBTYP_N = C_VBTYP_NM.
    ENDIF.
    SORT I_VBFA BY VBELN POSNN.
    SORT I_VBFA1 BY VBELN POSNN.
    ENDFORM.                    " salesdocumentflow
    *&      Form  salesdoc_shdlnitem_itemstatus
          text
    -->  p1        text
    <--  p2        text
    FORM salesdoc_shdlnitem_itemstatus .
      CLEAR i_vbep_vbup.
      REFRESH i_vbep_vbup.
      v_indexes = 70.
      v_text = 'Processing... Order'.
      PERFORM progress_ind.
    *TO COMBINE THE VBUP DATA WITH STATUS OF LFGSA EQ TO A AND B WITH
    *DATA OF VBEP , WHERE WE GET DATA OF VBEP BASED ON LOADING DATE
      IF NOT i_vbup1 IS INITIAL.
        LOOP AT i_vbup1 INTO w_vbup1.
          READ TABLE i_vbep INTO w_vbep WITH KEY vbeln = w_vbup1-vbeln
                                                 posnr = w_vbup1-posnr BINARY SEARCH.
          IF sy-subrc = 0.
            MOVE : w_vbep-vbeln TO w_vbep_vbup-vbeln,
                   w_vbep-posnr TO w_vbep_vbup-posnr,
                   w_vbep-wmeng TO w_vbep_vbup-wmeng,
                   w_vbep-lddat TO w_vbep_vbup-lddat,
                   w_vbup1-lfgsa TO w_vbep_vbup-lfgsa,
                   w_vbup1-wbsta TO w_vbep_vbup-wbsta.
            APPEND w_vbep_vbup TO i_vbep_vbup.
          ENDIF.
        ENDLOOP.
      ENDIF.
      SORT i_vbep_vbup BY vbeln posnr.
      DELETE ADJACENT DUPLICATES FROM i_vbep_vbup COMPARING vbeln posnr.
    ENDFORM.                    " salesdoc_shdlnitem_itemstatus
    *&      Form  delivery_output
          text
    -->  p1        text
    <--  p2        text
    *This routine will give us all the deliveries which are open or closed with
    *there respective delivered quantity and amount etc.
    FORM delivery_output .
      CLEAR i_final.
      REFRESH i_final.
      v_indexes = 65.
      v_text = 'Processing... Deliver'.
      PERFORM progress_ind.
      IF NOT i_output[] IS INITIAL.
        LOOP AT i_output INTO w_output.
          REFRESH i_vbfa_tab.
         IF W_OUTPUT-LFART = C_LFARTLF OR W_OUTPUT-LFART = C_LFARTLO OR W_OUTPUT-LFART = C_LFARTZLO.
           READ TABLE I_VBFA INTO W_VBFA WITH KEY VBELN = W_OUTPUT-VBELN
                                                  POSNN = W_OUTPUT-POSNR BINARY SEARCH .
         ELSEIF W_OUTPUT-LFART = C_LFARTLR.
           IF W_OUTPUT-VBTYP = 'J'.
             READ TABLE I_VBFA INTO W_VBFA WITH KEY VBELN = W_OUTPUT-VBELN
                                                 POSNN = W_OUTPUT-POSNR BINARY SEARCH.
           ELSE.
             READ TABLE I_VBFA INTO W_VBFA WITH KEY VBELN = W_OUTPUT-VBELN
                                                 POSNN = W_OUTPUT-POSNR
                        

  • How to give a page break in alv grid display after 65 lines are displayed?

    hi all,
    I need to give a page break in alv grid display after 65 lines are displayed on each page...Please help me with this...

    hai
    give this command beging of the report name... u have to diclar the beging of the report ......
    <b>report</b> ( name of the report)  <b>standard page heading line-size 200 line-count 65.</b>
    ex1.:- report name is  rtpm_trl_show_flows 
    report <b>rtpm_trl_show_flows </b> no standard page heading line-size 200
                                                         line-count 65.
    ex:2
    report  <b>zlpur01</b> no standard page heading line-size 200
                                                         line-count 65.
    type-pools: slis.
    tables: bkpf.
    selection-screen begin of block sel with frame title text-001.
    select-options: s_comp for bkpf-bukrs, " Company
                    s_valut for bkpf-budat. " Invoice Date
                   S_MTART FOR MARA-MTART. " Material Type
    selection-screen end of block sel.
    parameters: p_vari like disvariant-variant. " ALV Variant
    constants: formname_top_of_page type slis_formname value 'TOP_OF_PAGE'.
    data:   i_bseg type bseg  occurs 0 with header line.
    data: vatval type p decimals 2 value '0.15'.
    data: xhkont type string value '154000'.
    data COM type c.
    data: begin of invt occurs 100,
            budat like bkpf-budat, " Inv Dat
            bukrs like bkpf-bukrs, " Material
            STCEG like bsak-STCEG, "name of the companycode
            belnr like bkpf-belnr,
            xblnr like bkpf-xblnr, " Inv Reference
            ebeln like rseg-ebeln, " PO number
            lifnr like bseg-lifnr, " Vendor No
            name1 like lfa1-name1, " Supplier Name
            matnr like bseg-matnr,
            maktx like makt-maktx,
            stcd1 like lfa1-stcd1, " Supplier VAT REG NO
            xamt like bseg-dmbtr, " TAX amt
            yamt like bseg-wrbtr,
            wrbtr like bseg-wrbtr, " Base amount
            mwskz like bseg-mwskz,
            dmbtr like bseg-dmbtr, " TAX amt
            gjahr like bkpf-gjahr,
            hkont like bseg-hkont,
            zamt like bseg-dmbtr, " TAX amt
            wamt like bseg-dmbtr,
            shkzg like bseg-shkzg,
            shkzg1 like bseg-shkzg,
          end of invt.
    regard
    nawa

  • End of page in alv list output.

    Hi All,
    Can any body help me out for how to show end of page in alv list output.
    Thanks,
    Rakesh Singh

    Refer this link:
    http://www.sap-img.com/abap/sample-programs-on-alv-grid.htm
    Regards,
    Ravi

  • How to display LED lights in end of page of ALV(factory method)

    Hello Experts,
    How do I display the LED lights in my end-of-page(red, yellow and green).
    Below is my code:
    METHOD display_end_of_page.
        CREATE OBJECT lcl_grid.
        lv_string = text-t04.
        lcl_label = lcl_grid->create_label(
                      row     = 1
                      column  = 1
                      text    = lv_string
                      tooltip = lv_string ).
        CLEAR lv_string.
        lv_string = ICON_GREEN_LIGHT.
        lcl_label = lcl_grid->create_label(
                      row     = 2
                      column  = 1
                      text    = lv_string
                      tooltip = lv_string ).
        lcl_label = lcl_grid->create_label(
                      row     = 3
                      column  = 1
                      text    = lv_string
                      tooltip = lv_string ).
        lcl_content = lcl_grid.
      ENDMETHOD.                    "display_end_of_page
    Hope you can help me guys.Thank you and take care!

    Hi,
    Use this code for Demo
    *& Report ZMDEMO_ALV_04
    *&Make an Exception field ( = Traffic lights)
    *&There can be defined a column in the grid for display of traffic lights. This field is of type Char 1, and can contain the following values:
    *& 1 Red
    *& 2 Yellow
    *& 3 Green
    *&The name of the traffic light field is supplied inh the gs_layout-excp_fname used by method set_table_for_first_display.
    report zmdemo_alv_04.
    tables: sflight.
    type-pools: icon.
    types: begin of ty_sflight.
    include structure sflight.
    types: traffic_light type c,
    lights LIKE icon_xml_doc,
    lights(4),
    icon type icon-id.
    types: end of ty_sflight.
    G L O B A L I N T E R N A L T A B L E S
    data: t_sflight type standard table of ty_sflight.
    G L O B A L D A T A
    data: ok_code like sy-ucomm,
    wa_sflight type ty_sflight.
    Declare reference variables to the ALV grid and the container
    data:
    go_grid type ref to cl_gui_alv_grid,
    go_custom_container type ref to cl_gui_custom_container.
    data:
    t_fcat type lvc_t_fcat,
    wa_layout type lvc_s_layo.
    S T A R T - O F - S E L E C T I O N.
    start-of-selection.
    perform build_fieldcat.
    perform build_layout.
    set screen '100'.
    *& Module USER_COMMAND_0100 INPUT
    module user_command_0100 input.
    case ok_code.
    when 'EXIT'.
    leave to screen 0.
    endcase.
    endmodule. " USER_COMMAND_0100 INPUT
    *& Module STATUS_0100 OUTPUT
    module status_0100 output.
    Create objects
    if go_custom_container is initial.
    create object go_custom_container
    exporting container_name = 'ALV_CONTAINER'.
    create object go_grid
    exporting
    i_parent = go_custom_container.
    perform load_data_into_grid.
    endif.
    endmodule. " STATUS_0100 OUTPUT
    *& Form load_data_into_grid
    form load_data_into_grid.
    data l_light type c value '1'.
    Read data from table SFLIGHT
    select *
    from sflight
    into table t_sflight.
              o
                    + Condition placing to the traffic_light Field
    LOOP AT t_sflight INTO wa_sflight.
    wa_sflight-traffic_light = l_light.
    MODIFY t_sflight FROM wa_sflight.
    IF l_light = '3'.
    l_light = '1'.
    ELSE.
    l_light = l_light + 1.
    ENDIF.
    ENDLOOP.
              o
                    + Setting the Icon based on the traffic_light field value.
    LOOP AT t_sflight INTO wa_sflight.
    CASE wa_sflight-traffic_light.
    WHEN '1'.
    wa_sflight-lights = icon_red_light.
    WHEN '2'.
    wa_sflight-lights = icon_yellow_light.
    WHEN '3'.
    wa_sflight-lights = icon_green_light.
    ENDCASE.
    MODIFY t_sflight FROM wa_sflight.
    ENDLOOP.
    loop at t_sflight into wa_sflight.
    case l_light.
    when '1'.
    wa_sflight-lights = icon_red_light.
    when '2'.
    wa_sflight-lights = icon_yellow_light.
    when '3'.
    wa_sflight-lights = icon_green_light.
    endcase.
    if l_light = '3'.
    l_light = '1'.
    else.
    l_light = l_light + 1.
    endif.
    modify t_sflight from wa_sflight.
    endloop.
    Load data into the grid and display them
    call method go_grid->set_table_for_first_display
    exporting
    I_BUFFER_ACTIVE =
    I_BYPASSING_BUFFER =
    I_CONSISTENCY_CHECK =
    i_structure_name = 'SFLIGHT'
    IS_VARIANT =
    i_save = 'A'
    I_DEFAULT = 'X'
    is_layout = wa_layout
    IS_PRINT =
    IT_SPECIAL_GROUPS =
    IT_TOOLBAR_EXCLUDING =
    IT_HYPERLINK =
    IT_ALV_GRAPHICS =
    IT_EXCEPT_QINFO =
    IR_SALV_ADAPTER =
    changing
    it_outtab = t_sflight[]
    it_fieldcatalog = t_fcat
    IT_SORT =
    IT_FILTER =
    EXCEPTIONS
    INVALID_PARAMETER_COMBINATION = 1
    PROGRAM_ERROR = 2
    TOO_MANY_LINES = 3
    others = 4
    endform. " load_data_into_grid
    *& Form build_fieldcat
    text
    --> p1 text
    <-- p2 text
    form build_fieldcat .
    data: w_fcat type lvc_s_fcat.
    define macro_fcat.
    w_fcat-fieldname = &1.
    w_fcat-col_pos = &2.
    w_fcat-coltext = &3.
    append w_fcat to t_fcat.
    clear w_fcat.
    end-of-definition.
    macro_fcat 'CARRID' 1 text-c01 .
    macro_fcat 'CONNID' 2 text-c02 .
    macro_fcat 'FLDATE' 3 text-c03 .
    macro_fcat 'PRICE' 4 text-c04 .
    macro_fcat 'SEATSMAX' 5 text-c05 .
    macro_fcat 'SEATSOCC' 6 text-c06 .
    macro_fcat 'LIGHTS' 7 text-c07 .
    endform. " build_fieldcat
    *& Form build_layout
    text
    --> p1 text
    <-- p2 text
    form build_layout .
    wa_layout-cwidth_opt = 'X'.
    wa_layout-excp_fname = 'TRAFFIC_LIGHT'.
    wa_layout-excp_group = '1'.
    endform. " build_layout
    Regards,
    Dhruv Shah

  • Regarding top of page, end of page in alv's

    hi
    how can i get the data in page wise in alv's?
    like in normal reporting we use events like top of page and end of page...
    but how in alv's
    bye

    check this one
    *& Report ZALV_FIELD_GRID1
    REPORT ZALV_FIELD_GRID1
    NO STANDARD PAGE HEADING.
    TABLES MARA.
    type-pools :slis.
    TYPES : BEGIN OF TMARA ,
    MATNR LIKE MARA-MATNR,
    MEINS LIKE MARA-MEINS,
    ERSDA LIKE MARA-ERSDA,
    color(4) type c,
    SEL type c,
    LIGHT TYPE C,
    END OF TMARA.
    TYPES: BEGIN OF TMAKT,
    MATNR LIKE MAKT-MATNR,
    MAKTX LIKE MAKT-MAKTX,
    MAKTG LIKE MAKT-MAKTG,
    SEL TYPE C,
    COLOR(4),
    END OF TMAKT.
    DATA: ITAB TYPE TMARA OCCURS 0 WITH HEADER LINE,
    ITAB1 TYPE TMAKT OCCURS 0 WITH HEADER LINE,
    wa_fieldcat type slis_fieldcat_alv,
    fieldcat type slis_fieldcat_alv occurs 0,
    i_layout type slis_layout_alv,
    WA_LISTHEADER TYPE SLIS_LISTHEADER,
    i_LISTHEADER TYPE SLIS_LISTHEADER OCCURS 0,
    V_EVENTS TYPE SLIS_T_EVENT ,
    WA_EVENT TYPE SLIS_ALV_EVENT,
    I_TITLE_MARA TYPE LVC_TITLE VALUE 'FIRST LIST DISPLAYED',
    I_TITLE_MAKT TYPE LVC_TITLE VALUE 'SECONDRY LIST DISPLAYED',
    SORT TYPE slis_t_sortinfo_alv WITH HEADER LINE,
    PRINT_CONT type slis_print_alv.
    SELECTION SCREE
    selection-screen begin of block screen1 with frame title TEXT-001.
    SELECTION-SCREEN SKIP.
    SELECTION-SCREEN COMMENT /32(35) COMM1.
    SELECTION-SCREEN ULINE /27(35).
    SELECTION-SCREEN SKIP.
    SELECT-OPTIONS MATNR FOR MARA-MATNR.
    SELECTION-SCREEN SKIP.
    SELECTION-SCREEN ULINE.
    SELECTION-SCREEN COMMENT /30(50) COMM2.
    SELECTION-SCREEN ULINE /27(40).
    SELECTION-SCREEN SKIP.
    SELECT-OPTIONS ERSDA FOR MARA-ERSDA.
    SELECTION-SCREEN SKIP.
    selection-screen end of block screen1.
    INITIALIZATION
    INITIALIZATION.
    MATNR-low = '23'.
    MATNR-high = '1000'.
    MATNR-option = 'BT'.
    MATNR-sign = 'I'.
    APPEND MATNR.
    ERSDA-low = '20030124'.
    ERSDA-high = '20050302' .
    APPEND ERSDA.
    PERFORM FILLFIELD.
    PERFORM FILLLAYOUT.
    PERFORM build_print_params.
    PERFORM FILL_SORT.
    PERFORM EVENT_CALL.
    PERFORM POPULATE_EVENT.
    SELECTION-SCREEN OUTPUT
    AT SELECTION-SCREEN OUTPUT.
    comm1 ='SELECT MATERIAL NUMBER RANGE'.
    comm2 ='SELECT MATERIAL CREATION DATE'.
    START-OF-SELECTION
    START-OF-SELECTION.
    PERFORM READDATA.
    PERFORM POPDATA.
    *& Form READDATA
    text
    FORM READDATA .
    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
    EXPORTING
    INPUT = MATNR-LOW
    IMPORTING
    OUTPUT = MATNR-LOW.
    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
    EXPORTING
    INPUT = MATNR-HIGH
    IMPORTING
    OUTPUT = MATNR-HIGH.
    SELECT MATNR
    ERSDA
    MEINS
    FROM MARA
    INTO CORRESPONDING FIELDS OF
    TABLE ITAB
    WHERE MATNR IN MATNR AND ERSDA IN ERSDA.
    LOOP AT ITAB.
    data id_color type i VALUE 1.
    data id_colors(2) type c.
    IF ITAB-MATNR < '000000000000000100'.
    ITAB-LIGHT = '1'.
    ELSEIF ITAB-MATNR < '000000000000000150' AND ITAB-MATNR >
    '000000000000000100' .
    ITAB-LIGHT = '2'.
    ELSE.
    ITAB-LIGHT = '3'.
    ENDIF.
    id_color = id_color + 1.
    if id_color > 7.
    id_color = 1.
    endif.
    id_colors = id_color.
    concatenate 'C' id_colors '10' into itab-color.
    modify itab.
    CLEAR ITAB.
    endloop.
    ENDFORM. " READDATA
    Form FILLFIELD
    FORM FILLFIELD .
    WA_FIELDCAT-FIELDNAME = 'MATNR'.
    WA_FIELDCAT-KEY = 'X'.
    WA_FIELDCAT-COL_POS = '1'.
    WA_FIELDCAT-outputlen = 20.
    WA_FIELDCAT-HOTSPOT = 'X'.
    wa_fieldcat-seltext_m = 'MATERIAL NUMBER'.
    *WA_FIELDCAT-EMPHASIZE = 'C210'.
    APPEND WA_FIELDCAT TO FIELDCAT.
    clear wa_fieldcat.
    WA_FIELDCAT-FIELDNAME = 'MEINS'.
    WA_FIELDCAT-COL_POS = '2'.
    *WA_FIELDCAT-EMPHASIZE = 'C510'.
    WA_FIELDCAT-outputlen = 10.
    wa_fieldcat-seltext_m = 'UNIT'.
    APPEND WA_FIELDCAT TO FIELDCAT.
    clear wa_fieldcat.
    WA_FIELDCAT-FIELDNAME = 'ERSDA'.
    WA_FIELDCAT-COL_POS = '3'.
    WA_FIELDCAT-outputlen = 15.
    *WA_FIELDCAT-EDIT_MASK = 'DD.MM.YYYY'.
    *WA_FIELDCAT-EMPHASIZE = 'C710'.
    wa_fieldcat-seltext_m = 'CREAT DATE'.
    APPEND WA_FIELDCAT TO FIELDCAT.
    clear wa_fieldcat.
    ENDFORM. "FILLFIELD
    Setup print parameters
    form build_print_params.
    PRINT_CONT-reserve_lines = '3'. "Lines reserved for footer
    PRINT_CONT-no_coverpage = 'X'.
    endform. " BUILD_PRINT_PARAMS
    Form POPDATA
    FORM POPDATA .
    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 = 'USER-COMMAND'
    I_CALLBACK_TOP_OF_PAGE = 'TOPPAGE' -
    >use this one
    I_CALLBACK_HTML_TOP_OF_PAGE = ' '
    I_CALLBACK_HTML_END_OF_LIST = ' '
    I_STRUCTURE_NAME =
    I_BACKGROUND_ID = ' '
    I_GRID_TITLE = I_TITLE_MARA
    I_GRID_SETTINGS =
    IS_LAYOUT = I_LAYOUT
    IT_FIELDCAT = fieldcat
    IT_EXCLUDING =
    IT_SPECIAL_GROUPS =
    IT_SORT = SORT[]
    IT_FILTER =
    IS_SEL_HIDE =
    I_DEFAULT = 'X'
    I_SAVE = ' '
    IS_VARIANT =
    IT_EVENTS = V_EVENTS -
    > pass u r events here end of page
    IT_EVENT_EXIT =
    IS_PRINT = PRINT_CONT
    TABLES
    T_OUTTAB = ITAB
    EXCEPTIONS
    PROGRAM_ERROR = 1
    OTHERS = 2
    ENDFORM. " POPDATA
    Form TOPPAGE
    FORM TOPPAGE.
    REFRESH I_LISTHEADER.
    DATA: ld_lines type i,
    ld_linesc(10) type c,
    I_DATE(10) TYPE C,
    I_INFO LIKE WA_LISTHEADER-INFO.
    WA_LISTHEADER-TYP = 'H'.
    WA_LISTHEADER-INFO = 'MATERIAL DETAIL'.
    APPEND WA_LISTHEADER TO I_LISTHEADER.
    CLEAR WA_LISTHEADER.
    WA_LISTHEADER-TYP = 'S'.
    WA_LISTHEADER-KEY = 'DATE :'.
    CONCATENATE SY-DATUM+6(2) '.'
    SY-DATUM+4(2) '.'
    SY-DATUM(4) INTO I_DATE.
    WA_LISTHEADER-INFO = I_datE.
    APPEND WA_LISTHEADER TO I_LISTHEADER.
    CLEAR WA_LISTHEADER.
    describe table ITAB lines ld_lines.
    ld_linesc = ld_lines.
    concatenate 'TOTAL NUMBER OF RECORD SELECTED: ' ld_linesc
    into I_INFO separated by space.
    WA_LISTHEADER-TYP = 'A'.
    WA_LISTHEADER-INFO = I_INFO.
    append WA_LISTHEADER to I_LISTHEADER.
    clear: WA_LISTHEADER , I_INFO.
    CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
    IT_LIST_COMMENTARY = I_LISTHEADER
    I_LOGO = 'ENJOYSAP_LOGO'.
    ENDFORM. "TOPPAGE
    Form FILLLAYOUT
    FORM FILLLAYOUT .
    i_layout-zebra = 'X'.
    i_layout-info_fieldname = 'COLOR'.
    i_layout-box_fieldname = 'SEL'.
    I_LAYOUT-lights_fieldname = 'LIGHT'.
    I_LAYOUT-EDIT ='X'.
    I_LAYOUT-colwidth_optimize = 'X'.
    I_LAYOUT-window_titlebar = 'EXAMPLE FOR ALV GRID'.
    I_LAYOUT-no_totalline = 'X'.
    ENDFORM. "FILLLAYOUT
    Form FILL_SORT
    FORM FILL_SORT .
    SORT-DOWN = 'X'.
    SORT-SPOS = 1.
    SORT-FIELDNAME = 'MATNR'.
    SORT-tabname = 'MARA'.
    APPEND SORT.
    ENDFORM. " FILL_SORT
    Form EVENT_CALL
    FORM EVENT_CALL .
    DATA: I_EVENT LIKE V_EVENTS.
    CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
    EXPORTING
    I_LIST_TYPE = 0
    IMPORTING
    ET_EVENTS = V_EVENTS.
    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. " EVENT_CALL
    Form POPULATE_EVENT
    FORM POPULATE_EVENT .----
    > use events ........
    READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'USER_COMMAND'.
    IF SY-SUBRC EQ 0.
    WA_EVENT-FORM = 'USER_COMMAND'.
    MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =
    WA_EVENT-NAME.
    READ TABLE V_EVENTS WITH KEY NAME = SLIS_EV_END_OF_PAGE
    INTO WA_EVENT.
    IF SY-SUBRC = 0.
    move 'END_OF_PAGE' to WA_EVENT-FORM.
    MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =
    WA_EVENT-NAME.
    endif.
    ENDIF.
    ENDFORM. "POPULATE_EVENT
    FORM END_OF_PAGE. -
    > end of page
    write: sy-uline(50).
    skip.
    write:/40 'Page:', sy-pagno .
    ENDFORM.
    *& Form USER_COMMAND
    FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
    RS_SELFIELD TYPE SLIS_SELFIELD.
    CASE R_UCOMM.
    WHEN '&IC1'.
    CASE RS_SELFIELD-FIELDNAME.
    when 'MATNR'.
    read table itab with key matnr = RS_SELFIELD-VALUE.
    if sy-subrc = 0.
    PERFORM DATA_RETRIEVAL_MAKT USING RS_SELFIELD-VALUE.
    PERFORM BUILD_FIELDCATLOG_MAKT.
    PERFORM FILLLAYOUT_MAKT.
    PERFORM DISPLAY_ALV_MAKT.
    CLEAR RS_SELFIELD.
    ENDIF.
    ENDCASE.
    ENDCASE.
    ENDFORM. "user_command
    Form DATA_RETRIEVAL_MAKT
    FORM DATA_RETRIEVAL_MAKT USING TMATNR .
    SELECT MATNR
    MAKTX
    MAKTG
    UP TO 100 ROWS
    FROM MAKT
    INTO TABLE ITAB1
    WHERE SPRAS = 'EN' AND MATNR = TMATNR.
    LOOP AT ITAB1.
    data id_color type i VALUE 1.
    data id_colors(2) type c.
    id_color = id_color + 1.
    if id_color > 7.
    id_color = 1.
    endif.
    id_colors = id_color.
    concatenate 'C' id_colors '10' into itab1-color.
    modify itab1.
    CLEAR ITAB1.
    ENDLOOP.
    ENDFORM. "DATA_RETRIEVAL_MAKT
    Form FILLLAYOUT_MAKT
    FORM FILLLAYOUT_MAKT .
    CLEAR I_LAYOUT.
    i_layout-zebra = 'X'.
    i_layout-info_fieldname = 'COLOR'.
    i_layout-box_fieldname = 'SEL'.
    I_LAYOUT-EDIT ='X'.
    I_LAYOUT-colwidth_optimize = 'X'.
    I_LAYOUT-window_titlebar = 'EXAMPLE FOR ALV GRID'.
    ENDFORM. " LAYOUT_MAKT
    Form BUILD_FIELDCATLOG_MAKT
    FORM BUILD_FIELDCATLOG_MAKT .
    REFRESH FIELDCAT.
    WA_FIELDCAT-FIELDNAME = 'MATNR'.
    WA_FIELDCAT-KEY = 'X'.
    WA_FIELDCAT-COL_POS = '1'.
    *WA_FIELDCAT-EDIT_MASK = 'DD.MM.YYYY'.
    WA_FIELDCAT-EMPHASIZE = 'C510'.
    wa_fieldcat-seltext_m = 'MATERIAL NUMBER'.
    APPEND WA_FIELDCAT TO FIELDCAT.
    clear wa_fieldcat.
    WA_FIELDCAT-FIELDNAME = 'MAKTX'.
    WA_FIELDCAT-COL_POS = '2'.
    WA_FIELDCAT-EMPHASIZE = 'C710'.
    wa_fieldcat-seltext_m = 'MATERIAL DESCRIPTION'.
    APPEND WA_FIELDCAT TO FIELDCAT.
    clear wa_fieldcat.
    WA_FIELDCAT-FIELDNAME = 'MAKTG'.
    WA_FIELDCAT-COL_POS = '3'.
    WA_FIELDCAT-EMPHASIZE = 'C210'.
    wa_fieldcat-seltext_m = 'MATERIAL DESCRIPTION'.
    APPEND WA_FIELDCAT TO FIELDCAT.
    clear wa_fieldcat.
    ENDFORM. " BUILD_FIELDCATLOG_MAKT
    Form DISPLAY_ALV_MAKT
    FORM TOP-OF-PAGE.
    REFRESH I_LISTHEADER.
    DATA: ld_lines type i,
    ld_linesc(10) type c,
    I_DATE(10) TYPE C,
    I_INFO LIKE WA_LISTHEADER-INFO.
    WA_LISTHEADER-TYP = 'H'.
    WA_LISTHEADER-INFO = 'MATERIAL DESCRIPTION FOR SELECTED NUMBER'.
    APPEND WA_LISTHEADER TO I_LISTHEADER.
    CLEAR WA_LISTHEADER.
    WA_LISTHEADER-TYP = 'S'.
    WA_LISTHEADER-KEY = 'DATE :'.
    CONCATENATE SY-DATUM+6(2) '.'
    SY-DATUM+4(2) '.'
    SY-DATUM(4) INTO I_DATE.
    WA_LISTHEADER-INFO = I_datE.
    APPEND WA_LISTHEADER TO I_LISTHEADER.
    CLEAR WA_LISTHEADER.
    describe table ITAB1 lines ld_lines.
    ld_linesc = ld_lines.
    concatenate 'TOTAL NUMBER OF RECORD SELECTED: ' ld_linesc
    into I_INFO separated by space.
    WA_LISTHEADER-TYP = 'A'.
    WA_LISTHEADER-INFO = I_INFO.
    append WA_LISTHEADER to I_LISTHEADER.
    clear: WA_LISTHEADER , I_INFO.
    CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
    IT_LIST_COMMENTARY = I_LISTHEADER
    I_LOGO = 'ENJOYSAP_LOGO'.
    I_END_OF_LIST_GRID =
    I_ALV_FORM =
    ENDFORM. "TOP-OF-PAGE
    *& Form DISPLAY_ALV_MAKT
    text
    FORM DISPLAY_ALV_MAKT .
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
    I_CALLBACK_PROGRAM = SY-REPID
    I_CALLBACK_TOP_OF_PAGE = 'TOP-OF-PAGE'
    I_GRID_TITLE = I_TITLE_MAKT
    IS_LAYOUT = I_LAYOUT
    IT_FIELDCAT = fieldcat
    TABLES
    T_OUTTAB = ITAB1
    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_MAKT
    reward points to all helpful answers
    kiran.M

  • Regarding END of PAGE in ALV's

    hi guys,
    Can you tell me which function module do i use to insert end of page in ALV's.
    thanks
    pavan

    Hi Pavan,
    check the format of End of page in this program.The page no will not be shown in the display,when you will take the printout you will see the content(pageno) that is written in the end of page event.
    report ztest
    TABLES:     ekko.
    type-pools: slis.                                 "ALV Declarations
    *Data Declaration
    TYPES: BEGIN OF t_ekko,
      ebeln TYPE ekpo-ebeln,
      ebelp TYPE ekpo-ebelp,
      statu TYPE ekpo-statu,
      aedat TYPE ekpo-aedat,
      matnr TYPE ekpo-matnr,
      menge TYPE ekpo-menge,
      meins TYPE ekpo-meins,
      netpr TYPE ekpo-netpr,
      peinh TYPE ekpo-peinh,
    END OF t_ekko.
    DATA: it_ekko TYPE STANDARD TABLE OF t_ekko INITIAL SIZE 0,
          wa_ekko TYPE t_ekko.
    *ALV data declarations
    data: fieldcatalog type slis_t_fieldcat_alv with header line,
          gd_tab_group type slis_t_sp_group_alv,
          gd_layout    type slis_layout_alv,
          gd_repid     like sy-repid,
          gt_events     type slis_t_event,
          gd_prntparams type slis_print_alv.
    *Start-of-selection.
    START-OF-SELECTION.
    perform data_retrieval.
    perform build_fieldcatalog.
    perform build_layout.
    perform build_events.
    perform build_print_params.
    perform display_alv_report.
    *&      Form  BUILD_FIELDCATALOG
          Build Fieldcatalog for ALV Report
    form build_fieldcatalog.
    There are a number of ways to create a fieldcat.
    For the purpose of this example i will build the fieldcatalog manualy
    by populating the internal table fields individually and then
    appending the rows. This method can be the most time consuming but can
    also allow you  more control of the final product.
    Beware though, you need to ensure that all fields required are
    populated. When using some of functionality available via ALV, such as
    total. You may need to provide more information than if you were
    simply displaying the result
                  I.e. Field type may be required in-order for
                       the 'TOTAL' function to work.
      fieldcatalog-fieldname   = 'EBELN'.
      fieldcatalog-seltext_m   = 'Purchase Order'.
      fieldcatalog-col_pos     = 0.
      fieldcatalog-outputlen   = 10.
      fieldcatalog-emphasize   = 'X'.
      fieldcatalog-key         = 'X'.
    fieldcatalog-do_sum      = 'X'.
    fieldcatalog-no_zero     = 'X'.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'EBELP'.
      fieldcatalog-seltext_m   = 'PO Item'.
      fieldcatalog-col_pos     = 1.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'STATU'.
      fieldcatalog-seltext_m   = 'Status'.
      fieldcatalog-col_pos     = 2.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'AEDAT'.
      fieldcatalog-seltext_m   = 'Item change date'.
      fieldcatalog-col_pos     = 3.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'MATNR'.
      fieldcatalog-seltext_m   = 'Material Number'.
      fieldcatalog-col_pos     = 4.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'MENGE'.
      fieldcatalog-seltext_m   = 'PO quantity'.
      fieldcatalog-col_pos     = 5.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'MEINS'.
      fieldcatalog-seltext_m   = 'Order Unit'.
      fieldcatalog-col_pos     = 6.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'NETPR'.
      fieldcatalog-seltext_m   = 'Net Price'.
      fieldcatalog-col_pos     = 7.
      fieldcatalog-outputlen   = 15.
      fieldcatalog-do_sum      = 'X'.
      fieldcatalog-datatype     = 'CURR'.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'PEINH'.
      fieldcatalog-seltext_m   = 'Price Unit'.
      fieldcatalog-col_pos     = 8.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
    endform.                    " BUILD_FIELDCATALOG
    *&      Form  BUILD_LAYOUT
          Build layout for ALV grid report
    form build_layout.
      gd_layout-no_input          = 'X'.
      gd_layout-colwidth_optimize = 'X'.
      gd_layout-totals_text       = 'Totals'(201).
    gd_layout-totals_only        = 'X'.
    gd_layout-f2code            = 'DISP'.  "Sets fcode for when double
                                            "click(press f2)
    gd_layout-zebra             = 'X'.
    gd_layout-group_change_edit = 'X'.
    gd_layout-header_text       = 'helllllo'.
    endform.                    " BUILD_LAYOUT
    *&      Form  DISPLAY_ALV_REPORT
          Display report using ALV grid
    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'
               i_grid_title           = outtext
                is_layout               = gd_layout
                it_fieldcat             = fieldcatalog[]
               it_special_groups       = gd_tabgroup
                it_events               = gt_events
                is_print                = gd_prntparams
                i_save                  = 'X'
               is_variant              = z_template
           tables
                t_outtab                = it_ekko
           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
    *&      Form  DATA_RETRIEVAL
          Retrieve data form EKPO table and populate itab it_ekko
    form data_retrieval.
    select ebeln ebelp statu aedat matnr menge meins netpr peinh
    up to 10 rows
      from ekpo
      into table it_ekko.
    endform.                    " DATA_RETRIEVAL
    Form  TOP-OF-PAGE                                                 *
    ALV Report Header                                                 *
    Form top-of-page.
    *ALV Header declarations
    data: t_header type slis_t_listheader,
          wa_header type slis_listheader,
          t_line like wa_header-info,
          ld_lines type i,
          ld_linesc(10) type c.
    Title
      wa_header-typ  = 'H'.
      wa_header-info = 'EKKO 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(4) INTO wa_header-info.   "todays date
      append wa_header to t_header.
      clear: wa_header.
    Total No. of Records Selected
      describe table it_ekko lines ld_lines.
      ld_linesc = ld_lines.
      concatenate 'Total No. of Records Selected: ' ld_linesc
                        into t_line separated by space.
      wa_header-typ  = 'A'.
      wa_header-info = t_line.
      append wa_header to t_header.
      clear: wa_header, t_line.
      call function 'REUSE_ALV_COMMENTARY_WRITE'
           exporting
                it_list_commentary = t_header.
               i_logo             = 'Z_LOGO'.
    endform.
          FORM USER_COMMAND                                          *
          --> R_UCOMM                                                *
          --> RS_SELFIELD                                            *
    FORM user_command USING r_ucomm LIKE sy-ucomm
                      rs_selfield TYPE slis_selfield.
    Check function code
      CASE r_ucomm.
        WHEN '&IC1'.
      Check field clicked on within ALVgrid report
        IF rs_selfield-fieldname = 'EBELN'.
        Read data table, using index of row user clicked on
          READ TABLE it_ekko INTO wa_ekko INDEX rs_selfield-tabindex.
        Set parameter ID for transaction screen field
          SET PARAMETER ID 'BES' FIELD wa_ekko-ebeln.
        Sxecute transaction ME23N, and skip initial data entry screen
          CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.
        ENDIF.
      ENDCASE.
    ENDFORM.
    *&      Form  BUILD_EVENTS
          Build events table
    form build_events.
      data: ls_event type slis_alv_event.
      call function 'REUSE_ALV_EVENTS_GET'
           exporting
                i_list_type = 0
           importing
                et_events   = gt_events[].
      read table gt_events with key name =  slis_ev_end_of_page
                               into ls_event.
      if sy-subrc = 0.
        move 'END_OF_PAGE' to ls_event-form.
        append ls_event to gt_events.
      endif.
        read table gt_events with key name =  slis_ev_end_of_list
                               into ls_event.
      if sy-subrc = 0.
        move 'END_OF_LIST' to ls_event-form.
        append ls_event to gt_events.
      endif.
    endform.                    " BUILD_EVENTS
    *&      Form  BUILD_PRINT_PARAMS
          Setup print parameters
    form build_print_params.
      gd_prntparams-reserve_lines = '3'.   "Lines reserved for footer
      gd_prntparams-no_coverpage = 'X'.
    endform.                    " BUILD_PRINT_PARAMS
    *&      Form  END_OF_PAGE
    form END_OF_PAGE.
      data: listwidth type i,
            ld_pagepos(10) type c,
            ld_page(10)    type c.
      write: sy-uline(50).
      skip.
      write:/40 'Page:', sy-pagno .
    endform.
    *&      Form  END_OF_LIST
    form END_OF_LIST.
      data: listwidth type i,
            ld_pagepos(10) type c,
            ld_page(10)    type c.
      skip.
      write:/40 'Page:', sy-pagno .
    endform.

  • Printing Page numbers in ALV grid with oops

    Hi ,
    I have a ALV grid display with OOPS , there are also fields in top of page and end of page that go along with the print. I want to print the page numbers also . If I give a variable and increment it along with every call to top of page , then if a second print is issued, the variable can not be cleared out. Is there any other way.
    Thank you .

    Regarding  ALV Grid  Control using OOPs concepts
    Please give me reward point if it is useful.
    Thanks
    Murali Poli

Maybe you are looking for

  • 9iR2: User can't browse ora_home

    Dear Experts, I installed oracle 9iR2 on my machine (W2K) logged as admin. Then I created a User (no specific rights) on this machine. I logged on with this user and I can't browse the D:\Oracle\ora92. I didn't have this issue with 8i. Is there any r

  • Development Package migration

    Hi, I know I've two many threads for today. But, it's really urgent. I have a question. We've made a development package on the ABAP Workbench under the SAP R/3. Then later we installed a new ERP ECC 6.0 system. Unfortunately, when we migrated the ho

  • 9300 brand new brought today... I can't/don't have a download file on my main menu???

    I can not find my Download File on my Main Menu it isn't there.  I have downloading Facebook and I was told by my friend to move it from my Download file.  Well I can't/ don't have one. I have looked everywhere.  Please someone help me with some idea

  • Opening Safari

    This is the message I get when I try to open Safari WARNING! Unable to resolve your redirection DNS entry Please clear browser cache close and then reopen it to try again Any solutions?

  • Help - out put a .WMV file - please

    I have 45MB file - one hour long - 1400 x 1050 - square pixel - 29.97 -  44100Hz - 16 bit - Mono - My client needs a 30 second intro added to it - I've added the intro - no problem there - When I go to export media as a .WMV  is when I'm having probl