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

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 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.

  • 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

  • Migration to an asm instance. plz help me urgent

    RMAN> BACKUP AS COPY DATABASE FORMAT '+DGROUP1';
    Starting backup at 20-AUG-07
    Starting implicit crosscheck backup at 20-AUG-07
    using target database controlfile instead of recovery catalog
    allocated channel: ORA_DISK_1
    channel ORA_DISK_1: sid=328 devtype=DISK
    ORA-19501: read error on file "+DGROUP1/sravan/backupset/2007_08_03/nnsnf0_ora_asm_migration_0.260.1", blockno 1 (blocksize=512)
    ORA-17507: I/O request size is not a multiple of logical block size
    Crosschecked 7 objects
    Finished implicit crosscheck backup at 20-AUG-07
    Starting implicit crosscheck copy at 20-AUG-07
    using channel ORA_DISK_1
    ORA-19587: error occurred reading 8192 bytes at block number 1
    ORA-17507: I/O request size 8192 is not a multiple of logical block size
    RMAN-00571: ===========================================================
    RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
    RMAN-00571: ===========================================================
    RMAN-03002: failure of backup command at 08/20/2007 16:53:21
    ORA-19587: error occurred reading 8192 bytes at block number 1
    ORA-17507: I/O request size 8192 is not a multiple of logical block size

    > plz help me urgent
    Adjective
        * S: (adj) pressing, urgent (compelling immediate action) "too pressing to permit of longer delay";So you are saying that your problem is a lot more important than any other person's problem on this forum?
    And you're demanding a quick response from professionals that give you and others assistance here in their free time without getting a single cent compensation?
    Don't you think that this "it is urgent!" statement severely lacks manners?

  • 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
                        

  • 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

  • ALV issue plz help

    Hi experts
    plz help
    i have createed an alv using slis method
    in the output there must come a header
    in this header i ill have to show som details
    like on the left side of the header i want to show the details of the user and on the right side i want to show he data of vendor .
    i am able to get the data in the left side but i am not able to show the data of vendor on the right side
    the data of vendor is by default coming on left side only just below the details of user but i want to show those details on the right side of the header .
    plz tell me how to do it .
    thanx in advance.

    Hi Anit,
    I am attaching here the whole Code. It is somewhat big code so go through it thoroughly.If you still face problem reply this thread otherwise <b>REWARD POINT</b>.
    REPORT test
           MESSAGE-ID zzrefn01
           NO STANDARD PAGE HEADING
         *** Portrait: 93x80
           LINE-SIZE 150
           LINE-COUNT 80.
         *** Landscape: 132x65
         LINE-SIZE 132
         LINE-COUNT 65.
       INCLUDES                                                        **
    INCLUDE zbc_i00.                         "Customer Standard Include
    INCLUDE <icon>.                          "For Button on the ALV Tool Bar
    INCLUDE yyef_check_isp_top.
    INCLUDE yyef_check_isp_f01.
    INCLUDE yyef_check_isp_o01.
    INCLUDE yyef_check_isp_i01.
          CLASS zcl_event_handler IMPLEMENTATION
    CLASS zcl_event_handler IMPLEMENTATION.
    Top-of-page event
      METHOD top_of_page.
        PERFORM event_top_of_page
                USING z_dyndoc_id.
      ENDMETHOD.   "METHOD top_of_page
    Change Status Button
      METHOD handle_toolbar.
        IF NOT pa_prodr IS INITIAL.
          DATA: lz_toolbar  TYPE stb_button.
          CLEAR lz_toolbar.
          MOVE    'CHANGE_STATUS'  TO lz_toolbar-function.
          MOVE    text-001         TO lz_toolbar-text.
          APPEND  lz_toolbar       TO e_object->mt_toolbar.
        ENDIF.          "IF NOT pa_prodr IS INITIAL
      ENDMETHOD.   "METHOD handle_toolbar
    Handle User Command
      METHOD handle_user_command.
        CASE e_ucomm.
          WHEN 'CHANGE_STATUS'.
            LOOP AT    it_output
                 INTO  wa_output.
              IF wa_output-chk_box EQ kc_x.
                z_flag = 1.
                EXIT.
              ENDIF.          "IF wa_output-chk_box EQ kc_x
            ENDLOOP.      "LOOP AT it_output INTO  wa_output
            IF z_flag EQ 1.
              PERFORM display_selected_data.
            ELSE.
              MESSAGE i001(zzrefn01)
                      WITH text-023.
            ENDIF.       "IF z_flag EQ 1
        ENDCASE.      "CASE e_ucomm
      ENDMETHOD.   "METHOD handle_user_command
    ENDCLASS.   "zcl_event_handler IMPLEMENTATION
       Processing of selection screen                                  **
        First time initialization                                        *
        Get Default variant                                              *
    INITIALIZATION.
      z_repid = sy-repid.
      PERFORM variant_init.
      zx_variant = z_variant.
      CALL FUNCTION 'LVC_VARIANT_DEFAULT_GET'
        EXPORTING
          i_save        = kc_u
        CHANGING
          cs_variant    = zx_variant
        EXCEPTIONS
          wrong_input   = 1
          not_found     = 2
          program_error = 3
          OTHERS        = 4.
      IF sy-subrc EQ 0.
        pa_vari = zx_variant-variant.
      ELSE.
        MESSAGE i001(zzrefn01)
                WITH text-021.
      ENDIF.   "IF sy-subrc EQ 0
    *** First time initialization in online mode except calls with variant
    *** (is not processed on return from prog to selection screen)
    pa_xyz = ....
    so_xyz.....
    SET PF-STATUS 'STAT1000'.
    *** An example for select options restrictions is available
    *** in TT1/YYKA_EXPORT_START_HOST (remove comment)
        Selection screen PBO                                             *
        Comment........                                                  *
    AT SELECTION-SCREEN OUTPUT.
    *** Init selection screen, also on variants
    *** (only for online reports)
      IF NOT zn_init_seldynp IS INITIAL
      AND sy-batch IS INITIAL   "Not on batch calls (e.g. AutoSys)
      AND sy-slset IS INITIAL.  "Not on calls with variant
        IF NOT pa_prodr IS INITIAL.
          CLEAR: pa_prodr.
          MESSAGE w999(zbcc).  "Flag prod.run reseted
        ENDIF.
       CLEAR: pa_start.
      ENDIF.
      CLEAR: zn_init_seldynp.
    *** Process dynpro fields
      LOOP AT SCREEN.
      *** --> Read-Only fields
        IF screen-group1 EQ 'RDO'
        AND screen-input NE '0'
        AND screen-group3 NE 'VPU'.
          screen-input = '0'.
          MODIFY SCREEN.
        ENDIF.
      ENDLOOP.
        Selection screen PAI                                             *
        Comment........                                                  *
    *AT SELECTION-SCREEN ON so_xyz.
    AT SELECTION-SCREEN.
      PERFORM pai_of_selection_screen.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR pa_vari.
      PERFORM f4_for_variant.
    PERFORM btci_at_sel_screen.  "Call BTCI checks (optional)
       Program                                                         **
        Main routine                                                     *
    START-OF-SELECTION.
      PERFORM fetch_data.
      PERFORM build_data.
      PERFORM prepare_field_catalog
              CHANGING it_fieldcat.
      CALL SCREEN 100.
        End routine                                                      *
    END-OF-SELECTION.
       Interactive Reporting                                           **
        Comment........                                                  *
    AT LINE-SELECTION.
    *** Good example in TT1/YIIHART (remove comment)
        Comment........                                                  *
    AT USER-COMMAND.
      PERFORM handle_user_command.
        Comment........                                                  *
      AT PFN.
    iNCLUDE YYEF_CHECK_ISP_F01
    *&  Include           YYEF_CHECK_ISP_F01                               *
    *&      Form  pai_of_selection_screen
             Check Variant Exist or not
    FORM pai_of_selection_screen .
      IF NOT pa_vari IS INITIAL.
        MOVE z_variant TO zx_variant.
        MOVE pa_vari   TO zx_variant-variant.
        CALL FUNCTION 'LVC_VARIANT_EXISTENCE_CHECK'
          EXPORTING
            i_save        = kc_u
          CHANGING
            cs_variant    = zx_variant
          EXCEPTIONS
            wrong_input   = 1
            not_found     = 2
            program_error = 3
            OTHERS        = 4.
        IF sy-subrc EQ 2.
          MESSAGE i001(zzrefn01)
                  WITH text-024.
        ENDIF.   "IF sy-subrc EQ 2
        z_variant = zx_variant.
      ELSE.
        PERFORM variant_init.
      ENDIF.   "IF NOT pa_vari IS INITIAL
    ENDFORM.  "pai_of_selection_screen
    *&      Form  variant_init
          Initialization of Variant
    FORM variant_init .
      CLEAR z_variant.
      z_variant-report = z_repid.
    ENDFORM.                    " variant_init
    *&      Form  f4_for_variant
          F4 Help for Layout
    FORM f4_for_variant .
      CALL FUNCTION 'LVC_VARIANT_F4'
        EXPORTING
          is_variant    = z_variant
          i_save        = kc_u
        IMPORTING
          e_exit        = z_exit
          es_variant    = zx_variant
        EXCEPTIONS
          not_found     = 1
          program_error = 2
          OTHERS        = 3.
      IF sy-subrc EQ 1.
        MESSAGE i001(zzrefn01)
                WITH text-022.
      ELSE.
        IF z_exit = space.
          pa_vari = zx_variant-variant.
        ENDIF.     "IF z_exit = space
      ENDIF.     "IF sy-subrc EQ 1
    ENDFORM.   "f4_for_variant
    *&      Form  fetch_data
          Fetch data from DB tables.
    FORM fetch_data .
      SELECT *
             FROM yyeft1200
             INTO TABLE it_yyeft1200
             WHERE id_rech  IN so_idrec
             AND   fnumkred IN so_fnumk
             AND   status   IN so_stat
             AND   erdat    IN so_erdat
             ORDER BY PRIMARY KEY.
      IF sy-subrc EQ 0.
        SELECT *
               FROM yyeft1201
               INTO TABLE it_yyeft1201
               FOR ALL ENTRIES IN it_yyeft1200
               WHERE id_rech   EQ it_yyeft1200-id_rech
               AND   artnr_bp  IN so_artnr
               ORDER BY PRIMARY KEY.
        IF sy-subrc EQ 0.
          SELECT *
                 FROM  yyeft1008
                 INTO TABLE it_yyeft1008
                 FOR ALL ENTRIES IN it_yyeft1201
                 WHERE bp_refnr EQ it_yyeft1201-bprefnr.
          IF sy-subrc EQ 0.
            SORT it_yyeft1008[] BY bp_refnr.
          ENDIF.  "IF sy-subrc EQ 0.
        ENDIF.  "IF sy-subrc EQ 0.
      ELSE.
        zn_cancel = kc_x.
      ENDIF.  "IF sy-subrc EQ 0.
    ENDFORM.                    " fetch_data
    *&      Form  build_data
          Gather the data from all the internal tables into one.
    FORM build_data .
      LOOP AT it_yyeft1200
           INTO wa_yyeft1200.
        CLEAR wa_output.
        wa_output-id_rech    = wa_yyeft1200-id_rech.
        wa_output-fnumkred   = wa_yyeft1200-fnumkred.
        wa_output-status     = wa_yyeft1200-status.
        wa_output-erdat      = wa_yyeft1200-erdat.
        wa_output-bukrs      = wa_yyeft1200-bukrs.
        wa_output-belnr      = wa_yyeft1200-belnr.
        wa_output-gjahr      = wa_yyeft1200-gjahr.
        IF  wa_yyeft1200-status  GE kc_status10
        AND wa_yyeft1200-belnr   IS INITIAL.
          wa_output-com_delfnd  = 'FI Doc NOT found'(t03).
        ENDIF.
        IF  wa_yyeft1200-status    LT kc_status10
        AND NOT wa_yyeft1200-belnr IS INITIAL
        AND wa_output-com_delfnd   IS INITIAL
        AND NOT pa_det             IS INITIAL.
          wa_output-com_delfnd = 'FI Doc should be empty'(t01).
        ENDIF.
        LOOP AT it_yyeft1201
            INTO wa_yyeft1201
            WHERE id_rech EQ wa_yyeft1200-id_rech.
          wa_output-bprefnr    = wa_yyeft1201-bprefnr.
          wa_output-lfdat      = wa_yyeft1201-lfdat.
          wa_output-artnr_bp   = wa_yyeft1201-artnr_bp.
          READ TABLE it_yyeft1008
               WITH KEY bp_refnr = wa_yyeft1201-bprefnr
               BINARY SEARCH
               TRANSPORTING NO FIELDS.
          IF sy-subrc EQ 0.
            LOOP AT it_yyeft1008
                 INTO wa_yyeft1008
                 FROM sy-tabix.
              IF wa_yyeft1008-bp_refnr NE wa_yyeft1201-bprefnr.
                EXIT.
              ENDIF.
              wa_output-id_anlief  = wa_yyeft1008-id_anlief.
              IF NOT pa_det               IS INITIAL
              OR NOT wa_output-com_delfnd IS INITIAL.
                APPEND wa_output TO it_output.
              ENDIF.
            ENDLOOP.  "LOOP AT it_yyeft1008
          ELSE.
            CLEAR wa_output-id_anlief.
            wa_output-com_delfnd = 'Deliv. NOT found'(t06).
            APPEND wa_output TO it_output.
          ENDIF.
        ENDLOOP.  "LOOP AT it_yyeft1201
        IF sy-subrc NE 0.
          wa_output-com_delfnd = 'No Detail records in YYEFT1201'(e01).
          APPEND wa_output TO it_output.
        ENDIF.  "IF sy-subrc NE 0.
      ENDLOOP.  "LOOP AT it_yyeft1200
    Checkbox Editable for Production Run
      IF pa_prodr IS INITIAL.
        LOOP AT   it_output
             INTO wa_output.
          zs_style-fieldname = 'CHK_BOX'.
          zs_style-style     = cl_gui_alv_grid=>mc_style_disabled.
          INSERT zs_style INTO TABLE wa_output-celltab.
          MODIFY it_output FROM wa_output
                 TRANSPORTING celltab.
        ENDLOOP.      "LOOP AT it_output INTO wa_output.
      ENDIF.      "IF pa_prodr IS INITIAL
      LOOP AT   it_output
           INTO wa_output.
        IF  wa_output-status GE kc_status10
        AND wa_output-belnr  IS INITIAL
        AND NOT pa_prodr     IS INITIAL.
          zs_style-fieldname = 'CHK_BOX'.
          zs_style-style     = cl_gui_alv_grid=>mc_style_enabled.
          INSERT zs_style INTO TABLE wa_output-celltab.
          MODIFY it_output FROM wa_output
                 TRANSPORTING celltab.
        ENDIF.      "IF wa_output-status GE kc_status10
      ENDLOOP.    "LOOP AT it_output INTO wa_output
    ENDFORM.   "build_data
    *&      Form  prepare_field_catalog
          Field Catalog Preparation
         <--PIT_FIELDCAT     Field catalog
    FORM prepare_field_catalog
         CHANGING pit_fieldcat TYPE lvc_t_fcat.
      DATA: ls_fcat TYPE lvc_s_fcat.
      IF it_output1 IS INITIAL.
      Check Box
        CLEAR ls_fcat.
        ls_fcat-fieldname  = 'CHK_BOX'.
        ls_fcat-datatype   = 'CHAR'.
        ls_fcat-intlen     = '1'.
        ls_fcat-edit       = kc_x.
        ls_fcat-coltext    = text-014.
        ls_fcat-checkbox   = kc_x.
        ls_fcat-outputlen  = '5'.
        APPEND ls_fcat TO pit_fieldcat.
      ENDIF.      "IF it_output1 IS INITIAL
    ID RECH
      CLEAR ls_fcat.
      ls_fcat-fieldname  = 'ID_RECH'.
      ls_fcat-outputlen  = '10'.
      ls_fcat-coltext    = text-002.
      APPEND ls_fcat TO pit_fieldcat.
    BP Reference
      CLEAR ls_fcat.
      ls_fcat-fieldname  = 'BPREFNR'.
      ls_fcat-outputlen  = '15'.
      ls_fcat-coltext    = text-003.
      APPEND ls_fcat TO pit_fieldcat.
    Delivery date
      CLEAR ls_fcat.
      ls_fcat-fieldname  = 'LFDAT'.
      ls_fcat-outputlen  = '10'.
      ls_fcat-coltext    = text-004.
      APPEND ls_fcat TO pit_fieldcat.
    Article
      CLEAR ls_fcat.
      ls_fcat-fieldname  = 'ARTNR_BP'.
      ls_fcat-outputlen  = '18'.
      ls_fcat-coltext    = text-005.
      APPEND ls_fcat TO pit_fieldcat.
    Account Payable invoice
      CLEAR ls_fcat.
      ls_fcat-fieldname  = 'FNUMKRED'.
      ls_fcat-outputlen  = '16'.
      ls_fcat-coltext    = text-006.
      APPEND ls_fcat TO pit_fieldcat.
    Status
      CLEAR ls_fcat.
      ls_fcat-fieldname  = 'STATUS'.
      ls_fcat-outputlen  = '2'.
      ls_fcat-coltext    = text-007.
      APPEND ls_fcat TO pit_fieldcat.
    Create date
      CLEAR ls_fcat.
      ls_fcat-fieldname  = 'ERDAT'.
      ls_fcat-outputlen  = '10'.
      ls_fcat-coltext    = text-008.
      APPEND ls_fcat TO pit_fieldcat.
    Comment
      CLEAR ls_fcat.
      ls_fcat-fieldname  = 'COM_DELFND'.
      ls_fcat-outputlen  = '25'.
      ls_fcat-coltext    = text-009.
      APPEND ls_fcat TO pit_fieldcat.
    Delivery ID
      CLEAR ls_fcat.
      ls_fcat-fieldname  = 'ID_ANLIEF'.
      ls_fcat-outputlen  = '10'.
      ls_fcat-coltext    = text-010.
      APPEND ls_fcat TO pit_fieldcat.
    Company Code
      CLEAR ls_fcat.
      ls_fcat-fieldname  = 'BUKRS'.
      ls_fcat-outputlen  = '4'.
      ls_fcat-coltext    = text-011.
      APPEND ls_fcat TO pit_fieldcat.
    Accounting Document Number
      CLEAR ls_fcat.
      ls_fcat-fieldname  = 'BELNR'.
      ls_fcat-outputlen  = '10'.
      ls_fcat-coltext    = text-012.
      APPEND ls_fcat TO pit_fieldcat.
    Financial Year
      CLEAR ls_fcat.
      ls_fcat-fieldname  = 'GJAHR'.
      ls_fcat-outputlen  = '4'.
      ls_fcat-coltext    = text-013.
      APPEND ls_fcat TO pit_fieldcat.
    ENDFORM.                    " prepare_field_catalog
    *&      Form  EVENT_TOP_OF_PAGE
          TOP-OF-PAGE Preparation
         -->z_dyndoc_id  Text of TOP-OF-PAGE
    FORM event_top_of_page
         USING   z_dyndoc_id TYPE REF TO cl_dd_document.
      DATA : lz_text(255) TYPE c.
    System ID
      CLEAR :     lz_text.
      CONCATENATE text-015
                  sy-sysid
                  INTO lz_text
                  SEPARATED BY space.
      PERFORM     add_text
                  USING lz_text.
      CALL METHOD z_dyndoc_id->new_line.
    Title
      CLEAR :     lz_text.
      CONCATENATE text-016
                  sy-title
                  INTO lz_text
                  SEPARATED BY space.
      PERFORM     add_text
                  USING lz_text.
      CALL METHOD z_dyndoc_id->new_line.
    Date
      CLEAR :     lz_text.
      WRITE       sy-datum TO lz_text.
      CONCATENATE text-017
                  lz_text
                  INTO lz_text
                  SEPARATED BY space.
      PERFORM     add_text
                  USING lz_text.
      CALL METHOD z_dyndoc_id->new_line.
    User ID
      CLEAR :     lz_text.
      CONCATENATE text-018
                  sy-uname
                  INTO lz_text
                  SEPARATED BY space.
      PERFORM     add_text
                  USING lz_text.
      CALL METHOD z_dyndoc_id->new_line.
    Time
      CLEAR :     lz_text.
      WRITE       sy-uzeit TO lz_text.
      CONCATENATE text-019
                  lz_text
                  INTO lz_text
                  SEPARATED BY space.
      PERFORM     add_text
                  USING lz_text.
      CALL METHOD z_dyndoc_id->new_line.
    Program Name
      CLEAR :     lz_text.
      WRITE       sy-repid TO lz_text.
      CONCATENATE text-020
                  lz_text
                  INTO lz_text
                  SEPARATED BY space.
      PERFORM     add_text
                  USING lz_text.
      CALL METHOD z_dyndoc_id->new_line.
    Populating data to TOP-OF-PAGE
      PERFORM top-of-page.
    ENDFORM.                    " EVENT_TOP_OF_PAGE
    *&      Form  ADD_TEXT
          Add Text To TOP-OF-PAGE
    FORM add_text
         USING p_text TYPE sdydo_text_element.
      CALL METHOD z_dyndoc_id->add_text
        EXPORTING
          text = p_text.
    ENDFORM.                    " ADD_TEXT
    *&      Form  TOP-OF-PAGE
          TOP-OF-PAGE
    FORM top-of-page.
      CALL METHOD z_dyndoc_id->display_document
        EXPORTING
          reuse_control      = kc_x
          parent             = z_parent_top
        EXCEPTIONS
          html_display_error = 1.
      IF sy-subrc NE 0.
        MESSAGE i001(zzrefn01)
                WITH text-036 ' '.
      ENDIF.      "IF sy-subrc NE 0
    ENDFORM.   "TOP-OF-PAGE
    *&      Form  handle_user_command
          Handle the user command
    FORM handle_user_command .
      DATA lzi_lin TYPE i.
      REFRESH ra_id_rech[].
      CLEAR ra_id_rech.
      ra_id_rech-sign   = kc_include.
      ra_id_rech-option = kc_equal.
      CASE sy-ucomm.
        WHEN kc_ucomm-upd.
          DESCRIBE LIST NUMBER OF LINES lzi_lin.
          DO lzi_lin TIMES.
            CLEAR wa_output.
            READ LINE sy-index
                 FIELD VALUE wa_output-chk_box
                             wa_output-id_rech.
            IF sy-subrc NE 0.
              EXIT.
            ELSE.
              IF wa_output-chk_box EQ kc_x.
                ra_id_rech-low    = wa_output-id_rech.
                APPEND ra_id_rech.
              ENDIF.
            ENDIF.
          ENDDO.
          IF NOT ra_id_rech IS INITIAL.
            SORT ra_id_rech BY low.
            DELETE ADJACENT DUPLICATES FROM ra_id_rech
                   COMPARING low.
            IF NOT pa_prodr IS INITIAL.
              UPDATE yyeft1200
                     SET status = kc_status00
                     WHERE id_rech IN ra_id_rech.
              IF sy-subrc EQ 0.
                MESSAGE s900(zbcc)
                        WITH 'Status change successful'(m08)
                             space
                             space
                             space.
              ELSE.
                MESSAGE i900(zbcc)
                        WITH 'Status change failed'(m09)
                             space
                             space
                             space.
              ENDIF.  "IF sy-subrc EQ 0.
            ELSE.
              MESSAGE i900(zbcc)
                      WITH 'TEST RUN: NO databases will be changed'(m03)
                           space
                           space
                           space.
            ENDIF.  "IF NOT pa_prodr IS INITIAL.
          ELSE.
            MESSAGE i900(zbcc)
                    WITH 'Atleast one line should be selected'(m01)
                         'in order to update.'(m02)
                         space
                         space.
          ENDIF.  "IF NOT ra_id_rech IS INITIAL
        WHEN kc_ucomm-back
          OR kc_ucomm-exit
          OR kc_ucomm-cancel.
          LEAVE TO SCREEN 0.
        WHEN OTHERS.
      ENDCASE.  "CASE sy-ucomm
    ENDFORM.                    " handle_user_command
    *&      Form  display_selected_data
          Display Selected Data
    FORM display_selected_data.
      LOOP AT it_output
              INTO wa_output
              WHERE chk_box EQ kc_x.
        MOVE-CORRESPONDING wa_output TO wa_output1.
        APPEND wa_output1 TO it_output1.
      ENDLOOP.   "LOOP AT it_output
    call dialog screen and display new alv control
      IF NOT it_output1[] IS INITIAL.
        CALL SCREEN 101 STARTING AT 10 5.
      ENDIF.    "IF NOT it_output1[] IS INITIAL
    ENDFORM.   " change_status
    iNCLUDE YYEF_CHECK_ISP_I01
    *&  Include           YYEF_CHECK_ISP_I01                               *
    *&      Module  USER_COMMAND_0100  INPUT
          Handle user command for screen 0100
    MODULE user_command_0100 INPUT.
      CASE sy-ucomm.
        WHEN kc_ucomm-back.
          LEAVE TO SCREEN 0.
        WHEN kc_ucomm-exit.
          LEAVE TO SCREEN 0.
      ENDCASE.                 "CASE sy-ucomm.
    ENDMODULE.              "USER_COMMAND_0100  INPUT
    *&      Module  USER_COMMAND_0101  INPUT
          Handle User Command for screen 0101
    MODULE user_command_0101 INPUT.
      CASE sy-ucomm.
        WHEN kc_ucomm-back.
          LEAVE TO SCREEN 0.
      ENDCASE.      "CASE sy-ucomm
    ENDMODULE.    " USER_COMMAND_0101  INPUT
    Include YYEF_CHECK_ISP_O01
    *&  Include           YYEF_CHECK_ISP_O01                               *
    *&      Module  PBO  OUTPUT
          OO ALV Display
    MODULE pbo OUTPUT.
      CREATE OBJECT z_container
             EXPORTING container_name = kc_container.
    Create TOP-Document
      CREATE OBJECT z_dyndoc_id
             EXPORTING style = kc_alv.
    Create Splitter for custom_container
      CREATE OBJECT z_splitter
             EXPORTING parent  = z_container
                       rows    = 2
                       columns = 1.
    For TOP-OF-PAGE
      CALL METHOD z_splitter->get_container
        EXPORTING
          row       = 1
          column    = 1
        RECEIVING
          container = z_parent_top.
    For ALV Display
      CALL METHOD z_splitter->get_container
        EXPORTING
          row       = 2
          column    = 1
        RECEIVING
          container = z_parent_grid.
    Set height for g_parent_html
      CALL METHOD z_splitter->set_row_height
        EXPORTING
          id     = 1
          height = 20.
      CREATE OBJECT z_grid
             EXPORTING i_parent = z_parent_grid.
    Set Handler for TOP-OF-PAGE
      CREATE OBJECT z_handler.
      SET HANDLER z_handler->top_of_page FOR z_grid.
      z_repid = sy-repid.
      z_variant-report = z_repid.
    Display ALV
      zs_layout-stylefname = kc_style.
      CALL METHOD z_grid->set_table_for_first_display
        EXPORTING
          is_layout       = zs_layout
          i_save          = kc_u
          is_variant      = z_variant
        CHANGING
          it_outtab       = it_output[]
          it_fieldcatalog = it_fieldcat.
    Processing TOP-OF-PAGE Event
      CALL METHOD z_grid->list_processing_events
        EXPORTING
          i_event_name = kc_top
          i_dyndoc_id  = z_dyndoc_id.
    Set handler for ALV Tool Bar
      SET HANDLER z_handler->handle_toolbar      FOR z_grid.
      SET HANDLER z_handler->handle_user_command FOR z_grid.
      CALL METHOD z_grid->set_toolbar_interactive.
    ENDMODULE.                 " PBO  OUTPUT
    *&      Module  STATUS_0100  OUTPUT
          Set the GUI status
    MODULE status_0100 OUTPUT.
      SET PF-STATUS kc_status.
    ENDMODULE.                 " STATUS_0100  OUTPUT
    *&      Module  STATUS_0101  OUTPUT
          Display selected records on screen 0101
    MODULE status_0101 OUTPUT.
      SET TITLEBAR kc_title.
      CREATE OBJECT z_container1
             EXPORTING container_name = kc_container1.
      CREATE OBJECT z_grid1
             EXPORTING i_parent = z_container1.
      PERFORM prepare_field_catalog
              CHANGING it_fieldcat1.
    Display ALV
      CALL METHOD z_grid1->set_table_for_first_display
        EXPORTING
          is_layout       = zs_layout
        CHANGING
          it_outtab       = it_output1[]
          it_fieldcatalog = it_fieldcat1.
    ENDMODULE.                 " STATUS_0101  OUTPUT
    INCLUDE YYEF_CHECK_ISP_TOP
    *&  Include           YYEF_CHECK_ISP_TOP                               *
       DATA DEFINITIONS                                                **
        Class declarations                                               *
    *class zcl_xyz definition deferred.
    CLASS :cl_gui_alv_grid DEFINITION LOAD,
           cl_gui_custom_container DEFINITION LOAD.
        Tables (old SAP style, please avoid and use workareas instead)   *
    TABLES: yyeft1200,
            yyeft1201.
    *tables: xyz.
        Controls                                                         *
    *controls: ctrl_xyz.
        Types                                                            *
    TYPES: BEGIN OF ty_output,
             chk_box(1) TYPE c,
             celltab    TYPE lvc_t_styl,
             id_rech    TYPE yyeft1200-id_rech,
             bprefnr    TYPE yyeft1201-bprefnr,
             lfdat      TYPE yyeft1201-lfdat,
             artnr_bp   TYPE yyeft1201-artnr_bp,
             fnumkred   TYPE yyeft1200-fnumkred,
             status     TYPE yyeft1200-status,
             erdat      TYPE yyeft1200-erdat,
             com_delfnd TYPE char25,
             id_anlief  TYPE yyeft1008-id_anlief,
             bukrs      TYPE yyeft1200-bukrs,
             belnr      TYPE yyeft1200-belnr,
             gjahr      TYPE yyeft1200-gjahr,
           END OF ty_output.
    TYPES: BEGIN OF ty_output1,
             celltab    TYPE lvc_t_styl,
             id_rech    TYPE yyeft1200-id_rech,
             bprefnr    TYPE yyeft1201-bprefnr,
             lfdat      TYPE yyeft1201-lfdat,
             artnr_bp   TYPE yyeft1201-artnr_bp,
             fnumkred   TYPE yyeft1200-fnumkred,
             status     TYPE yyeft1200-status,
             erdat      TYPE yyeft1200-erdat,
             com_delfnd TYPE char25,
             id_anlief  TYPE yyeft1008-id_anlief,
             bukrs      TYPE yyeft1200-bukrs,
             belnr      TYPE yyeft1200-belnr,
             gjahr      TYPE yyeft1200-gjahr,
           END OF ty_output1.
    TYPES: BEGIN OF ty_status,
             id_rech TYPE yyeft1200-id_rech,
           END OF ty_status.
    *TYPES-POOLS: xyz.
    *TYPES: ty_xyz.
        Internal tables                                                  *
    *DATA: it_xyz.
    DATA: it_yyeft1200 TYPE STANDARD TABLE OF yyeft1200,
          it_yyeft1201 TYPE SORTED   TABLE OF yyeft1201
                       WITH UNIQUE KEY id_rech posnr,
          it_yyeft1008 TYPE STANDARD TABLE OF yyeft1008,
          it_output    TYPE STANDARD TABLE OF ty_output,
          it_output1   TYPE STANDARD TABLE OF ty_output1,
          it_fieldcat  TYPE lvc_t_fcat,
          it_fieldcat1 TYPE lvc_t_fcat.
        Workareas                                                        *
    *DATA: wa_xyz.
    DATA: wa_yyeft1200 TYPE yyeft1200,
          wa_yyeft1201 TYPE yyeft1201,
          wa_yyeft1008 TYPE yyeft1008,
          wa_output    TYPE ty_output,
          wa_output1    TYPE ty_output1.
    *****OO ALV DATA DECLARATION
    DATA:  zs_style           TYPE        lvc_s_styl,
           zs_layout          TYPE        lvc_s_layo,
           z_container        TYPE REF TO cl_gui_custom_container,
           z_container1       TYPE REF TO cl_gui_custom_container,
           z_grid             TYPE REF TO cl_gui_alv_grid,
           z_grid1            TYPE REF TO cl_gui_alv_grid,
           z_dyndoc_id        TYPE REF TO cl_dd_document,
           z_splitter         TYPE REF TO cl_gui_splitter_container,
           z_parent_grid      TYPE REF TO cl_gui_container,
           z_parent_top       TYPE REF TO cl_gui_container.
        Constants                                                        *
    *constants: kc_xyz         value ...     "character
    *constants: kn_xyz         value ...     "numeric
    *constants: ki_xyz         value ...     "integer
    *constants: kp_xyz         value ...     "packed
    *constants: kx_xyz         value ...     "hex
    CONSTANTS: kc_status00   TYPE yyeft1200-status VALUE '00',
               kc_status10   TYPE yyeft1200-status VALUE '10',
               kc_x          TYPE char01           VALUE 'X',
               kc_include    TYPE char01           VALUE 'I',
               kc_equal(2)   TYPE c                VALUE 'EQ',
               kc_status(11) TYPE c                VALUE 'ZGUI_STATUS',
               kc_container  TYPE char10           VALUE 'ZCONTAINER',
               kc_container1 TYPE char11           VALUE 'ZCONTAINER1',
               kc_u          TYPE char01           VALUE 'U',
               kc_top        TYPE char30           VALUE 'TOP_OF_PAGE',
               kc_alv        TYPE char50           VALUE 'ALV_GRID',
               kc_style      TYPE char07           VALUE 'CELLTAB',
               kc_title      TYPE char07           VALUE 'ZTITLE'.
    CONSTANTS: BEGIN OF kc_ucomm,
                 upd     TYPE sy-ucomm VALUE  'UPD',
                 back    TYPE sy-ucomm VALUE  'BACK',
                 exit    TYPE sy-ucomm VALUE  'EXIT',
                 cancel  TYPE sy-ucomm VALUE  'CANCEL',
               END OF kc_ucomm.
        Sentence counters                                                *
    *data: cnt_xyz type i value 0.
        Calculation variables (Rechenfelder)                             *
    *data: r_xyz.
        Switches                                                         *
    *data: sw_xyz(1) type n value 0.
        Misc variables                                                   *
    *DATA: z_xyz.
    *** Initialization of parameters at call of/return to
    *** selection dynpro (for Online-only-reports)
    DATA: zn_init_seldynp(1) TYPE n
                                  VALUE 1.

  • How doi print Any variable at the end of page in ALV report?

    Hi,
    Anyone can tell me that How do i print Any variable at the end of page in ALV report?
    Exmale: at the ende of alv report i want to print total no of employee who has taken house loan or education loan.

    Hi,
    Go through these links
    Thread in sdn regarding FOOTER IN ALV
    [ALV  FOOTER;
    Wiki in sdn regarding HEADER AND FOOTER IN ALV
    [https://wiki.sdn.sap.com/wiki/display/Snippets/ABAP%20Objects%20-%20ALV%20Model%20-%20Using%20Header%20and%20Footer]
    Header and Footer in ALV
    [http://www.sap-img.com/abap/test-alv-display-with-header-footer.htm]
    Hope this helps.
    Thank you,
    Pavan.

  • END OF PAGE IN ALV LIST

    Hi All,
    I am generating the report output in ALV list and downloading in the PDF format. It is working fine.
    But I am not able to print last line(AS SOME TEXT) on each page of the report. I think the output of report in ALV LIST does not show the END OF PAGE, But It should show once we take print out.
    Please let me know.
    Waiting for reply.
    Thanks,
    Rakesh Singh

    Rakesh,
    END OF PAGE can be found in ALV Printout, you can't see it in Display. So if you download as PDF without printing, it is normal not to display END-OF-PAGE.
    You can print your report and you can see the END-OF-PAGE in spool and maybe you can convert this spool as PDF. Otherwise you won't use END-OF-PAGE.
    Look at these links, same topic:
    End of page in ALV reports
    ALV - END_OF_PAGE event
    http://help.sap.com/saphelp_webas630/helpdata/en/ee/c8e071d52611d2b468006094192fe3/content.htm
    End of Page event not triggering in ALV report

  • End of page in ALV display using OOPS

    Hi all,
       How can i display end of page or footer in ALV display using OOPS concept.
    Thanks,
    vinit

    Hi ,
    Try using this code.
    First add a handler method in your handler class definition as:
    e.g. METHOD handle__end_of_page
    FOR EVENT print_end_of_page OF cl_gui_alv_grid .
    Then implement the method in the implementation part of your local class.
    e.g. METHOD handle_print_end_of_page .
    WRITE:/ 'Flights Made on ', sy-datum .
    ENDMETHOD .
    And register this method as the handler.
    SET HANDLER gr_event_handler->handle_print_end_of_page FOR gr_alvgrid .
    Hope this helps.
    Regards,
    Janaki.

Maybe you are looking for