To find total in blocked alv

hi experts,
i have created blocked ALV program.
in the o/p , it displays list of recors for open items,then list of records for cleared items.
now i want it  to display sum of both open and cleared items of particular column.
in grid display it is displaying total for open and cleared items.
but in blocked alv it is not displaying total for open and closed items separately.
and also i need grand total of both.
if any body knows please tell me..

Hi Sridevi
Refer this code as an example.
This code calculates the occupied column from sflight table.
TYPE-POOLS: slis.
DATA:it_fieldcat  TYPE  slis_t_fieldcat_alv,
     is_layout TYPE slis_layout_alv,
     it_events TYPE  slis_t_event ,
    it_sort TYPE  slis_t_sortinfo_alv .
DATA: wa_fcat LIKE LINE OF it_fieldcat,
      wa_sort LIKE LINE OF it_sort.
DATA: i_flight TYPE sflight_tab1.
SELECT * FROM sflight
INTO TABLE i_flight
UP TO 10 ROWS.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
  EXPORTING
    i_program_name         = sy-repid
    i_structure_name       = 'SFLIGHT'
  CHANGING
    ct_fieldcat            = it_fieldcat
  EXCEPTIONS
    inconsistent_interface = 1
    program_error          = 2.
wa_fcat-do_sum = 'X'.
MODIFY it_fieldcat FROM wa_fcat
     TRANSPORTING do_sum WHERE fieldname = 'SEATSOCC'.
wa_sort-up = 'X'.
wa_sort-fieldname = 'CARRID'.
wa_sort-subtot = 'X'.
APPEND wa_sort TO it_sort.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'
  EXPORTING
    i_callback_program = sy-repid.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
  EXPORTING
    is_layout                        = is_layout
    it_fieldcat                      = it_fieldcat
    i_tabname                        = 'I_FLIGHT'
    it_events                        = it_events
    it_sort                          = it_sort
*   I_TEXT                           = ' '
  TABLES
    t_outtab                         = i_flight
EXCEPTIONS
   program_error                    = 1
   maximum_of_appends_reached       = 2
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
  EXPORTING
    is_layout                        = is_layout
    it_fieldcat                      = it_fieldcat
    i_tabname                        = 'I_FLGIHT'
    it_events                        = it_events
   it_sort                          = it_sort
*   I_TEXT                           = ' '
  TABLES
    t_outtab                         = i_flight
EXCEPTIONS
   program_error                    = 1
   maximum_of_appends_reached       = 2
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'
Thanks and Regards

Similar Messages

  • How to calculate totals in Blocked ALV Report

    Hi All,
    Can any body tell how to calculate totals & sub totals in
    Blocked ALV Report[Blocked List].
    Thanks in advance
    Thanks & Regards,
    Rayeezuddin.

    read this it might help
    Sums                                                       
    15. No_sumchoice(1) TYPE c : This parameter allows the choice for summing up
    Only by fieldcatalog.
    Value set: SPACE, 'X'
    'X' = fields which are to be summed, passed by the calling program (FIELDCAT-DO_SUM = 'X'). The user should not be able to change this value interactively.
    16. No_totalline(1) TYPE c : Removes the option of having totals after sub-totals.
    Value set: SPACE, 'X'
    'X' = no total record is to be output. Subtotals can still be calculated and output. The fields in the subtotals are flagged DO_SUM = 'X' in the field list.
    17. No_subchoice(1) TYPE c : Does not allow the user to interactively change the field chosen for subtotals.
    Value set: SPACE, 'X'
    'X' = value whose change triggers subtotals, provided by the calling program. The user should not be able to change this value interactively.
    18. No_subtotals(1) TYPE c : No subtotals possible          
    Value set: SPACE, 'X'
    'X' = no subtotals.
    19. Numc_sum(1)  TYPE c : Totals only possible for NUMC-Fields.
    20. No_unit_splitting TYPE c: No separate total lines by inh.units   
    21.totals_before_items TYPE c: Display totals before the items   
    22. Totals_only(1) TYPE c :  Show only totals      
    Value set: SPACE, 'X'
    'X' = only total records are output.
    23. Totals_text(60) TYPE c : Text for 1st col. in totals   
    Value set: SPACE, string (max.60)
    ' ' = The first column in the total record contains an appropriate number of '*'s to indicate the total by default. If the first column is wide enough, the string 'Total' is output after the asterisks.
    'String’ = The string passed is output after the total indicated by '*', if the column is wide enough.
    24. Subtotals_text(60) TYPE c : Texts for subtotals
    Value set: SPACE, string (max.60)
    ' ' = In the first column of subtotal records, the subtotal is indicated by an appropriate number of '*' by default. If the first column is not a subtotal criterion, the string 'Total' is output after the asterisks, if the column is wide enough.
    'String’ = the string passed is output after the subtotal indicated by '*', if the column is wide enough and the first column is not a subtotal criterion. If it is a subtotal criterion, its value is repeated after the total, if the column is wide enough.
    ELSE TELL ME I WILL PASTE COMPLETE HELP
    regards

  • Sub total in blocked alv

    hi experts,
    i have tried to subtotal in blocked alv. i used the coding for sorting in grid display. its working in FM reuse_alv_grid_display.
    but its not working in blocked alv, i.e., in FM reuse_alv_block_list_append .
    so what to do ?
    kind regards,
    debendra

    hi all,
    yes my question has been answered.
    as per below.
    have to maintain this line : WA_SORT-TABNAME = 'IT_MUSTER'
    where IT_MUSTER is the table name.
    FORM APPEND USING FTAB TYPE C FDATA TYPE STANDARD TABLE.
      CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
        EXPORTING
          IS_LAYOUT                        = layout
          IT_FIELDCAT                      = it_fcat
          I_TABNAME                        = FTAB
          IT_EVENTS                        = it_event
          IT_SORT                          = IT_SORT
        TABLES
          T_OUTTAB                         = FDATA.
    ENDFORM.
    Form sort.
      WA_SORT-TABNAME = 'IT_MUSTER'.
      wa_sort-fieldname = 'MON'.
      wa_sort-SUBTOT = 'X'.
      append wa_sort to it_sort.
      clear wa_sort.
    Endform.
    ragards,
    debendra

  • Page Number - Total Page number in Blocked ALV

    Hi Gurus,
      I need to print the page numbers like 1 of 5 in the ALV footer. Am able to print the current page number but am unable to print the total page number in the footer of the Blocked ALV. Can any one guide me how to display the total number of pages.
    Points will be awarded
    Thanks
    Ravi

    Hi,
    Please refer to the link below :
    http://www.sapdev.co.uk/reporting/alv/alvgrid_events.htm
    Thanks,
    Sri.

  • How to find out the total, subtotal in alv report

    hi dears,
    how to find out the total, subtotal in alv report?
    pls tell me logic ,
    i will be waiting for eply
    regards
    eswar

    Hi,
    <b>ALV Grid List with sub-totals</b>
    REPORT z_demo_alv_sort.
    * This program lists orders (VBAK) with sort and sub-total for        *
    * 'sold-to-party' (KUNNR) and 'Sales organization' (VKORG)            *
    TABLES : vbak.
    TYPE-POOLS: slis.                      " ALV Global types
    SELECT-OPTIONS :
      s_vkorg FOR vbak-vkorg,              " Sales organization
      s_kunnr FOR vbak-kunnr,              " Sold-to party
      s_vbeln FOR vbak-vbeln.              " Sales document
    SELECTION-SCREEN :
      SKIP, BEGIN OF LINE,COMMENT 5(27) v_1 FOR FIELD p_max.
    PARAMETERS p_max(2) TYPE n DEFAULT '20' OBLIGATORY.
    SELECTION-SCREEN END OF LINE.
    DATA:
      BEGIN OF gt_vbak OCCURS 0,
        vkorg LIKE vbak-vkorg,             " Sales organization
        kunnr LIKE vbak-kunnr,             " Sold-to party
        vbeln LIKE vbak-vbeln,             " Sales document
        netwr LIKE vbak-netwr,             " Net Value of the Sales Order
        waerk LIKE vbak-waerk,             " Document currency
      END OF gt_vbak.
    INITIALIZATION.
      v_1 = 'Maximum of records to read'.
    START-OF-SELECTION.
      PERFORM f_read_data.
      PERFORM f_display_data.
    *      Form  f_read_data
    FORM f_read_data.
      SELECT * INTO CORRESPONDING FIELDS OF TABLE gt_vbak
               FROM vbak
                 UP TO p_max ROWS
              WHERE kunnr IN s_kunnr
                AND vbeln IN s_vbeln
                AND vkorg IN s_vkorg.
    ENDFORM.                               " F_READ_DATA
    *      Form  f_display_data
    FORM f_display_data.
      DEFINE m_fieldcat.
        add 1 to ls_fieldcat-col_pos.
        ls_fieldcat-fieldname   = &1.
        ls_fieldcat-ref_tabname = 'VBAK'.
        ls_fieldcat-do_sum      = &2.
        ls_fieldcat-cfieldname  = &3.
        append ls_fieldcat to lt_fieldcat.
      END-OF-DEFINITION.
      DEFINE m_sort.
        add 1 to ls_sort-spos.
        ls_sort-fieldname = &1.
        ls_sort-up        = 'X'.
        ls_sort-subtot    = &2.
        append ls_sort to lt_sort.
      END-OF-DEFINITION.
      DATA:
        ls_fieldcat TYPE slis_fieldcat_alv,
        lt_fieldcat TYPE slis_t_fieldcat_alv,
        lt_sort     TYPE slis_t_sortinfo_alv,
        ls_sort     TYPE slis_sortinfo_alv,
        ls_layout   TYPE slis_layout_alv.
      m_fieldcat 'VKORG' ''  ''.
      m_fieldcat 'KUNNR' ''  ''.
      m_fieldcat 'VBELN' ''  ''.
      m_fieldcat 'NETWR' 'X' 'WAERK'.
      m_fieldcat 'WAERK' ''  ''.
      m_sort 'VKORG' 'X'.                  " Sort by vkorg and subtotal
      m_sort 'KUNNR' 'X'.                  " Sort by kunnr and subtotal
      m_sort 'VBELN' ''.                   " Sort by vbeln
      ls_layout-cell_merge = 'X'.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
           EXPORTING
                is_layout   = ls_layout
                it_fieldcat = lt_fieldcat
                it_sort     = lt_sort
           TABLES
                t_outtab    = gt_vbak.
    ENDFORM.                               " F_DISPLAY_DATA
    ***************** END OF PROGRAM Z_DEMO_ALV_SORT **********************
    Regards
    Sudheer

  • Totals and subtotals in blocked alv

    hi
    totals and subtotals for data type (CURR) fields is not coming in blocked alv report... Plz can u help us in this regard.. urgent.
    thnx in advance

    have a look on this
    REPORT  YMS_ALVBLOCKLIST.
    TABLES:LFA1,EKKO.
    SELECT-OPTIONS:LIFNR FOR LFA1-LIFNR.
    DATA:BEGIN OF ITAB OCCURS 0,
    LIFNR LIKE LFA1-LIFNR,
    NAME1 LIKE LFA1-NAME1,
    LAND1 LIKE LFA1-LAND1,
    ORT01 LIKE LFA1-ORT01,
    REGIO LIKE LFA1-REGIO,
    END OF ITAB.
    DATA:BEGIN OF JTAB OCCURS 0,
    LIFNR LIKE EKKO-LIFNR,
    EBELN LIKE EKKO-EBELN,
    BUKRS LIKE EKKO-BUKRS,
    BSTYP LIKE EKKO-BSTYP,
    EKORG LIKE EKKO-EKORG,
    BSART LIKE EKKO-BSART,
    END OF JTAB.
    SELECT * FROM LFA1 INTO CORRESPONDING FIELDS OF TABLE ITAB WHERE LIFNR
    IN LIFNR.
    SELECT * FROM EKKO INTO CORRESPONDING FIELDS OF TABLE JTAB WHERE LIFNR
    IN LIFNR.
    TYPE-POOLS:SLIS.
    DATA:LAYOUT TYPE slis_layout_alv.
    DATA:EVE TYPE slis_t_event WITH HEADER LINE.
    DATA:EVE1 TYPE slis_t_event WITH HEADER LINE.
    DATA:HEAD TYPE slis_t_listheader WITH HEADER LINE.
    DATA:FCAT TYPE slis_t_fieldcat_alv.
    DATA:FCAT1 TYPE slis_t_fieldcat_alv.
    LAYOUT-ZEBRA = 'X'.
    LAYOUT-colwidth_optimize = 'X'.
    LAYOUT-WINDOW_TITLEBAR = 'VENDOR DETAILS SCREEN'.
    EVE1-NAME = 'TOP_OF_PAGE'.
    EVE1-FORM = 'TOP_OF_PAGE1'.
    APPEND EVE1.
    CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
    EXPORTING
    I_LIST_TYPE = 0
    IMPORTING
    ET_EVENTS = EVE[]
    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.
    READ TABLE EVE WITH KEY NAME = 'TOP_OF_PAGE'.
    EVE-FORM = 'TOP_OF_PAGE'.
    MODIFY EVE TRANSPORTING FORM WHERE NAME = 'TOP_OF_PAGE'.
    CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'
    EXPORTING
    I_CALLBACK_PROGRAM = SY-REPID
    * I_CALLBACK_PF_STATUS_SET = ' '
    * I_CALLBACK_USER_COMMAND = ' '
    * IT_EXCLUDING =
    CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
    EXPORTING
    I_PROGRAM_NAME = SY-REPID
    I_INTERNAL_TABNAME = 'ITAB'
    * I_STRUCTURE_NAME =
    * I_CLIENT_NEVER_DISPLAY = 'X'
    I_INCLNAME = SY-REPID
    * I_BYPASSING_BUFFER =
    * I_BUFFER_ACTIVE =
    CHANGING
    CT_FIELDCAT = FCAT
    * EXCEPTIONS
    * INCONSISTENT_INTERFACE = 1
    * PROGRAM_ERROR = 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 = LAYOUT
    IT_FIELDCAT = FCAT
    I_TABNAME = 'ITAB'
    IT_EVENTS = EVE[]
    * IT_SORT =
    * I_TEXT = ' '
    TABLES
    T_OUTTAB = ITAB
    * 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_FIELDCATALOG_MERGE'
    EXPORTING
    I_PROGRAM_NAME = SY-REPID
    I_INTERNAL_TABNAME = 'JTAB'
    * I_STRUCTURE_NAME =
    * I_CLIENT_NEVER_DISPLAY = 'X'
    I_INCLNAME = SY-REPID
    * I_BYPASSING_BUFFER =
    * I_BUFFER_ACTIVE =
    CHANGING
    CT_FIELDCAT = FCAT1
    * EXCEPTIONS
    * INCONSISTENT_INTERFACE = 1
    * PROGRAM_ERROR = 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 = LAYOUT
    IT_FIELDCAT = FCAT1
    I_TABNAME = 'JTAB'
    IT_EVENTS = EVE1[]
    * IT_SORT =
    * I_TEXT = ' '
    TABLES
    T_OUTTAB = JTAB
    * 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 =
    * 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.
    FORM TOP_OF_PAGE.
    REFRESH HEAD.
    HEAD-TYP = 'H'.
    HEAD-INFO = 'VENDORS DETAILS'.
    APPEND HEAD.
    CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
    IT_LIST_COMMENTARY = HEAD[]
    * I_LOGO =
    * I_END_OF_LIST_GRID =
    ENDFORM.
    FORM TOP_OF_PAGE1.
    REFRESH HEAD.
    HEAD-TYP = 'H'.
    HEAD-INFO = 'PURCHASE DOCCUMENTS DETAILS'.
    APPEND HEAD.
    CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
    IT_LIST_COMMENTARY = HEAD[]
    * I_LOGO =
    * I_END_OF_LIST_GRID =
    ENDFORM.

  • Blocked ALV sub total Display

    hi,
    I'm working with Blocked ALV. In my program, passed the  Fieldcatlog-do_sum = 'X' . But then also i'm not getting totals. For that what i want to do in Blocked ALV.
    Regards,
    Bab

    Hi,
    For ALV Totals you can try doing,
    DATA : it_field TYPE slis_t_fieldcat_alv,
                 wa_field TYPE slis_fieldcat_alv.
    DATA:  itab_sort TYPE slis_t_sortinfo_alv,
                 wa_sort TYPE slis_sortinfo_alv.
      wa_field-fieldname = 'MENGE'.
      wa_field-tabname = 'IT_TAB'.
      wa_field-outputlen = 20.
      wa_field-seltext_l ='Quantity'.
      wa_field-input = ' '.
      wa_field-edit = ' '.
      wa_field-col_pos = '4'.
      wa_field-hotspot = 'X'.
      wa_field-do_sum = 'X'.              "For totalling
      APPEND wa_field TO it_field.
      CLEAR wa_field.
    *Manintainig internal table for sorting
    wa_sort-spos = 1.
      wa_sort-fieldname = 'EBELP'.
      wa_sort-tabname = 'IT_tab'.
      wa_sort-up = 'X'.
      wa_sort-subtot = 'X'.              "For totalling
      APPEND wa_sort TO itab_sort.
      CLEAR wa_sort.
    Then you can pass these two internal tables in Reuse ALV grid Function Module.
    Hope it helps
    Regards
    Mansi

  • How to find item wise totals and header wise total using hierarchical ALV

    Hi Friends,
    I came across an issue of finding  item wise total using hierarchical ALV. I am getting header wise total by setting the field catalog. May you help me in finding  Item wise total.
    Regards
    Nikhil.

    hi,
    you must use "w_fieldcat-do_sum = 'X'" and change your layout like :
    w_sort-fieldname = 'FIELD'.
      w_sort-tabname   = 'TABNEME'.
      w_sort-up        = 'X'.
      w_sort-subtot    = 'X'.
      APPEND w_sort TO i_sort.
      CLEAR w_sort.
    you can use detailed code from http://wiki.sdn.sap.com/wiki/display/Snippets/Subtotalsinhirarchial+report.
    regards,
    orhan
    Edited by: goktasor on Jun 1, 2010 11:03 AM (need points : ) )

  • Finding Total Number Of Corrupted Blocks

    Hello,
    I just browsed several websites including RMAN documentation and information on how to identifiy corrupted blocks.
    I´m in the middle of reorganizing production backups and their restore tests by duplication, which should (in my opinion) be followed by an analysis for corrupted blocks.
    I found RMAN command  BACKUP VALIDATE CHECK LOGICAL DATABASE ARCHIVELOG ALL; to fit my needs. Recently I read the validate command only writes NEWLY found corrupted blocks to View V$DATABASE_BLOCK_CORRUPTION.
    1. How do I check the WHOLE database for its TOTAL physical and logical corrupted blocks?
    2.Under which circumstances is it NOT necesssary to check the database after the restore? In other words is there a way to ensure the backup cancels immediately when finding a corrupted block?
    3. Is it necessary to set maxcorrupt to "0" during the Backup to get it cancelled for every corrupted block found?
    4. What does dbv in contrast to backup validation?
    Please be so kind to post me some short hints.
    Regards
    Dominik

    Hi,
    thanks for your feedback again.
    Yesterday I "accidently" faced the situation to work with a block corrupted database during a restore test.
    So I had the chance to run both backup validate and dbv against its corrupted files.
    dbv worked fine, recognized all corrupted blocks and reported them in its output.
    Disappointingly backup validate neither reportted any corrupt withtin the whole database (there are several datafiles with corrupted blocks), nor posted them to V$DATABASE_BLOCK_CORRUPTION. There I could only find a hand full, but not all of them.
    I´m very consufed now, what would I need backup validate for anymore??? :-/
    I built myself a script to check the whole database with dbverify. Regarding production databases we cannot live with uncertainties like that
    Regards
    Dominik

  • Subtotal in Blocked ALV

    Hi All,
    I am facing the problem in displaying the subtotal in Blocked ALV.
    My requirement is, I need to display the subtotals in 3 lines like below.
    for ex:
    subtotal:          7 <above total>
                          (5)<coming from someother field>
                           2
    from the above: 7 is total of that column.
                              5 is coming from some other field.
                              2 is substraction of above 2.
    Could anyone please help me in the above.
    Many thanks in advance.
    Regards,
    venkat.

    Hi Vaibhav,
    Thanks for your response.
    and one thing here in my above example is,  the value  5 is neither total nor subtotal. its just a different value coming from some other field.
    only the 7 is total of that column.
    and if I write that logic manually, It may not able display as the position of that column is around 500. because write statment may display upto 252nd position in the output, I guess.
    thank you very much.
    Regards,
    Venkat.
    Edited by: venkat reddy on Jan 18, 2010 8:45 PM

  • Block ALV Report Doubt!

    Hi!
       In Block AlV we r using Fun Mod
                              REUSE_ALV_BLOCK_LIST_APPEND
        To display data in blocks and called again to display other data in block in same screen.
      I want to know REUSE_ALV_BLOCK_LIST_DISPLAY Fun mod is optional  or mandatory
       without using this also shall i get the required o/p.
      Looking for your reply.
    Rahul.

    REUSE_ALV_BLOCK_LIST_DISPLAY  is mandatory, without calling this FM, you will not get any disply.
    In the below ALV if you comment out t REUSE_ALV_BLOCK_LIST_DISPLAY   FM call call you will not get disply.
    REPORT ztest1 .
    TABLES:     ekko, mara.
    TYPE-POOLS: slis.
    *Data Declaration
    TYPES: BEGIN OF t_ekko,
      ebeln TYPE ekpo-ebeln,
      ebelp TYPE ekpo-ebelp,
      statu TYPE ekpo-statu,
      aedat TYPE ekpo-aedat,
      matnr TYPE ekpo-matnr,
      menge TYPE ekpo-menge,
      meins TYPE ekpo-meins,
      netpr TYPE ekpo-netpr,
      peinh TYPE ekpo-peinh,
    END OF t_ekko.
    TYPES: BEGIN OF t_mara,
      matnr TYPE mara-matnr,
      mtart TYPE mara-mtart,
      matkl TYPE mara-matkl,
    END OF t_mara.
    DATA: it_ekko TYPE STANDARD TABLE OF t_ekko INITIAL SIZE 0,
          it_mara TYPE STANDARD TABLE OF t_mara INITIAL SIZE 0.
    *ALV data declarations
    DATA: fieldcatalog1 TYPE slis_t_fieldcat_alv WITH HEADER LINE,
          fieldcatalog2 TYPE slis_t_fieldcat_alv WITH HEADER LINE,
          gd_layout     TYPE slis_layout_alv,
          gt_events_ekko TYPE slis_t_event,
          xs_event      TYPE slis_alv_event,
          gt_events_mara TYPE slis_t_event,
          gd_repid       TYPE sy-repid,
          gt_print TYPE slis_print_alv.
    * START-OF-SELECTION
    START-OF-SELECTION.
      PERFORM data_retrival.
      PERFORM build_fieldcat.
      PERFORM build_layout.
      PERFORM events_ekko.
      PERFORM events_mara.
      PERFORM display_alv_report.
    *SUBROUTINES
    *&      Form  data_retrival
    FORM data_retrival .
      SELECT ebeln ebelp statu aedat matnr menge meins netpr peinh
       UP TO 10 ROWS
        FROM ekpo
        INTO TABLE it_ekko.
      SELECT matnr mtart matkl
       UP TO 10 ROWS
        FROM mara
        INTO TABLE it_mara.
    ENDFORM.                    " data_retrival
    *&      Form  build_fieldcat
    FORM build_fieldcat .
    * FOR EKKO
      fieldcatalog1-fieldname   = 'EBELN'.
      fieldcatalog1-seltext_m   = 'Purchase Order'.
      fieldcatalog1-col_pos     = 0.
      fieldcatalog1-outputlen   = 10.
      fieldcatalog1-emphasize   = 'X'.
      fieldcatalog1-key         = 'X'.
      APPEND fieldcatalog1 TO fieldcatalog1.
      CLEAR  fieldcatalog1.
      fieldcatalog1-fieldname   = 'EBELP'.
      fieldcatalog1-seltext_m   = 'PO Item'.
      fieldcatalog1-col_pos     = 1.
      APPEND fieldcatalog1 TO fieldcatalog1.
      CLEAR  fieldcatalog1.
      fieldcatalog1-fieldname   = 'STATU'.
      fieldcatalog1-seltext_m   = 'Status'.
      fieldcatalog1-col_pos     = 2.
      APPEND fieldcatalog1 TO fieldcatalog1.
      CLEAR  fieldcatalog1.
      fieldcatalog1-fieldname   = 'AEDAT'.
      fieldcatalog1-seltext_m   = 'Item change date'.
      fieldcatalog1-col_pos     = 3.
      APPEND fieldcatalog1 TO fieldcatalog1.
      CLEAR  fieldcatalog1.
      fieldcatalog1-fieldname   = 'MATNR'.
      fieldcatalog1-seltext_m   = 'Material Number'.
      fieldcatalog1-col_pos     = 4.
      APPEND fieldcatalog1 TO fieldcatalog1.
      CLEAR  fieldcatalog1.
      fieldcatalog1-fieldname   = 'MENGE'.
      fieldcatalog1-seltext_m   = 'PO quantity'.
      fieldcatalog1-col_pos     = 5.
      APPEND fieldcatalog1 TO fieldcatalog1.
      CLEAR  fieldcatalog1.
      fieldcatalog1-fieldname   = 'MEINS'.
      fieldcatalog1-seltext_m   = 'Order Unit'.
      fieldcatalog1-col_pos     = 6.
      APPEND fieldcatalog1 TO fieldcatalog1.
      CLEAR  fieldcatalog1.
      fieldcatalog1-fieldname   = 'NETPR'.
      fieldcatalog1-seltext_m   = 'Net Price'.
      fieldcatalog1-col_pos     = 7.
      fieldcatalog1-outputlen   = 15.
      fieldcatalog1-do_sum      = 'X'.        "Display column total
      fieldcatalog1-datatype     = 'CURR'.
      APPEND fieldcatalog1 TO fieldcatalog1.
      CLEAR  fieldcatalog1.
      fieldcatalog1-fieldname   = 'PEINH'.
      fieldcatalog1-seltext_m   = 'Price Unit'.
      fieldcatalog1-col_pos     = 8.
      APPEND fieldcatalog1 TO fieldcatalog1.
      CLEAR  fieldcatalog1.
    * FOR MARA
      fieldcatalog2-fieldname   = 'MATNR'.
      fieldcatalog2-seltext_m   = 'Material No'.
      fieldcatalog2-col_pos     = 0.
      fieldcatalog2-outputlen   = 10.
      fieldcatalog2-emphasize   = 'X'.
      fieldcatalog2-key         = 'X'.
      APPEND fieldcatalog2 TO fieldcatalog2.
      CLEAR  fieldcatalog1.
      fieldcatalog2-fieldname   = 'MTART'.
      fieldcatalog2-seltext_m   = 'Material type'.
      fieldcatalog2-col_pos     = 1.
      APPEND fieldcatalog2 TO fieldcatalog2.
      CLEAR  fieldcatalog2.
      fieldcatalog2-fieldname   = 'MATKL'.
      fieldcatalog2-seltext_m   = 'Material Group'.
      fieldcatalog2-col_pos     = 2.
      APPEND fieldcatalog2 TO fieldcatalog2.
      CLEAR  fieldcatalog2.
    ENDFORM.                    " build_fieldcat
    *&      Form  build_layout
    FORM build_layout .
      gd_layout-no_input          = 'X'.
      gd_layout-colwidth_optimize = 'X'.
      gd_layout-totals_text       = 'Totals'(201).
    ENDFORM.                    " build_layout
    *&      Form  events_ekko
    FORM events_ekko .
      CLEAR xs_event.
      xs_event-name = slis_ev_top_of_page.
      xs_event-form = 'TOP_OF_PAGE-EKKO'.
      APPEND xs_event TO gt_events_ekko.
      CLEAR xs_event.
      xs_event-name = slis_ev_end_of_list.
      xs_event-form = 'END_OF_LIST_EKKO'.
      APPEND xs_event TO gt_events_ekko.
    ENDFORM.                    " events_ekko
    *&      Form  TOP_OF_PAGE-EKKO
    FORM top_of_page-ekko.
      WRITE: / 'TOP OF PAGE : Purchase Order'.
    ENDFORM.                    "XTOP_OF_PAGE
    *&      Form  END_OF_LIST_EKKO
    FORM end_of_list_ekko.
      WRITE: / 'end OF list : Purchase Order'.
    ENDFORM.                    "END_OF_LIST_EKKO
    *&      Form  events_mara
    FORM events_mara .
      CLEAR xs_event.
      xs_event-name = slis_ev_top_of_list.
      xs_event-form = 'TOP_OF_LIST-MARA'.
      APPEND xs_event TO gt_events_mara.
      CLEAR xs_event.
      xs_event-name = slis_ev_end_of_page.
      xs_event-form = 'END_OF_PAGE_MARA'.
      APPEND xs_event TO gt_events_mara.
    ENDFORM.                    "events_mara
    *&      Form  TOP_OF_LIST-MARA
    FORM top_of_list-mara.
      WRITE: / 'TOP OF LIST : Material Master'.
    ENDFORM.                    "TOP_OF_LIST-MARA
    *&      Form  END_OF_PAGE_MARA
    FORM end_of_page_mara.
      WRITE: / 'End OF Page : Material Master'.
    ENDFORM.                    "END_OF_PAGE_MARA
    *&      Form  display_alv_report
    FORM display_alv_report .
      gd_repid = sy-repid.
      CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'
        EXPORTING
          i_callback_program = sy-repid.
      CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
        EXPORTING
          is_layout                        = gd_layout
          it_fieldcat                      = fieldcatalog1[]
          i_tabname                        = 'it_ekko'
          it_events                        = gt_events_ekko
        TABLES
          t_outtab                         = it_ekko
       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                        = gd_layout
          it_fieldcat                      = fieldcatalog2[]
          i_tabname                        = 'it_mara'
          it_events                        = gt_events_mara
        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.
      gt_print-reserve_lines = 2.
      CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'
        EXPORTING
          is_print = gt_print.
    ENDFORM.                    " display_alv_report

  • 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

  • Problem In Block ALV

    Dear Friends,
      I am using Block ALV. I need diffrent labels (headings) before each block of alv. Is there any way?
    Regards,
    Bhavin

    *& Report  ZSD_DESPATCH
    REPORT  ZSD_DESPATCH NO STANDARD PAGE HEADING.
    *& Type Pool Declaration
    TYPE-POOLS: SLIS.
    *& External Table Declaration
    TABLES: VBRK, VBRP.
    *& Types Declaration
    TYPES: BEGIN OF ST_VBRKVBRP,
                 SORTL LIKE KNA1-SORTL, "Customer Sort Name
                 SALE(15),
                 BISMT LIKE MARA-BISMT, "Size
                 VBELN LIKE VBRK-VBELN, "Billing Doc Number
                 KUNAG LIKE VBRK-KUNAG, "Customer
                 VTWEG LIKE VBRK-VTWEG, "Distribution Channel
                 FKART LIKE VBRK-FKART, "Billing Doc Type
                 KNUMV LIKE VBRK-KNUMV, "Condition Record Number
                 VKORG LIKE VBRK-VKORG, "Sales Organization
                 KURRF LIKE VBRK-KURRF, "Billing Exchange Rate
                 WAERK LIKE VBRK-WAERK, "SD document currency
                 MATNR LIKE VBRP-MATNR, "Material Number
                 MATKL LIKE VBRP-MATKL, "Material group
                 FKIMG LIKE VBRP-FKIMG, "Actual billed quantity
                 POSNR LIKE VBRP-POSNR, "Item Position Number
                 PR00  LIKE KONV-KWERT, "PR00 Condition Based Value
                 ZDRP  LIKE KONV-KWERT, "ZDRP Condition Based Value
                 FUNEL LIKE VBRP-FKIMG, "FUNEL Quantity
                 PANEL LIKE VBRP-FKIMG, "PANEL Quantity
                 FKDAT LIKE VBRK-FKDAT, "Billing date
           END   OF ST_VBRKVBRP.
    TYPES: BEGIN OF ST_FOR_MONTH,
                 SORTL LIKE KNA1-SORTL,
                 SALE(15),
                 BISMT LIKE MARA-BISMT,
                 PANEL LIKE VBRP-FKIMG,
                 FUNEL LIKE VBRP-FKIMG,
                 PR00  LIKE KONV-KWERT,
                 ZDRP  LIKE KONV-KWERT,
           END   OF ST_FOR_MONTH.
    TYPES: BEGIN OF ST_FOR_DAY,
                 SORTL LIKE KNA1-SORTL,
                 SALE(15),
                 BISMT LIKE MARA-BISMT,
                 PANEL LIKE VBRP-FKIMG,
                 FUNEL LIKE VBRP-FKIMG,
                 PR00  LIKE KONV-KWERT,
                 ZDRP  LIKE KONV-KWERT,
           END   OF ST_FOR_DAY.
    *& Internal Table Declaration
    DATA: IT_VBRKVBRP  TYPE STANDARD TABLE OF ST_VBRKVBRP.
    DATA: IT_FOR_MONTH TYPE STANDARD TABLE OF ST_FOR_MONTH.
    DATA: IT_FOR_DAY   TYPE STANDARD TABLE OF ST_FOR_DAY.
    *& Work Areas Declaration
    DATA: WA_VBRKVBRP  LIKE LINE OF IT_VBRKVBRP.
    DATA: WA_FOR_MONTH LIKE LINE OF IT_FOR_MONTH.
    DATA: WA_FOR_DAY   LIKE LINE OF IT_FOR_DAY.
    *& Variables Declaration
    DATA : VALU        TYPE D,
           LOWDATE     TYPE D,
           HIGHDATE    TYPE D,
           L_LOWDT     TYPE D,
           L_HIGHDT    TYPE D,
           DAY         TYPE I,
           MONTH       TYPE I,
           LMONTH      TYPE I,
           MODN        TYPE I,
           PARTY_C(9)  TYPE C,
           LCMON(2)    TYPE C,
           YEAR(4)     TYPE C,
           LYEAR(4)    TYPE C,
           MONTH_NM(4) TYPE C,
           PARTY       LIKE VBRK-KUNAG,
           MATR        LIKE VBRP-MATNR,
           MATGRP      LIKE VBRP-MATKL.
    DATA: COUNTER TYPE I.
    *& ALV Data Declaration
    DATA: IT_FIELDCAT_FOR_DAY    TYPE SLIS_T_FIELDCAT_ALV.
    DATA: IT_FIELDCAT_FOR_MONTH  TYPE SLIS_T_FIELDCAT_ALV.
    DATA: WA_FIELDCAT_FOR_DAY    LIKE LINE OF IT_FIELDCAT_FOR_DAY.
    DATA: IT_EVENT_FOR_DAY      TYPE SLIS_T_EVENT WITH HEADER LINE.
    DATA: IT_EVENT_FOR_MONTH    TYPE SLIS_T_EVENT WITH HEADER LINE.
    DATA: TOP_OF_LIST_FOR_DAY TYPE SLIS_FORMNAME VALUE 'TOP_OF_LIST_FOR_DAY'.
    DATA: TOP_OF_LIST_FOR_MON TYPE SLIS_FORMNAME VALUE 'TOP_OF_LIST_FOR_MONTH'.
    DATA: IS_LAYOUT_FOR_DAY   TYPE SLIS_LAYOUT_ALV.
    DATA: IS_LAYOUT_FOR_MONTH TYPE SLIS_LAYOUT_ALV.
    *& Selection Screen
    SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT_001.
    SELECTION-SCREEN: BEGIN OF LINE.
    SELECTION-SCREEN: COMMENT 1(20) TEXT_003.
    SELECT-OPTIONS: S_WERKS FOR VBRP-WERKS OBLIGATORY.
    SELECTION-SCREEN: END OF LINE.
    SELECTION-SCREEN: BEGIN OF LINE.
    SELECTION-SCREEN: COMMENT 1(20) TEXT_004.
    SELECT-OPTIONS:   S_VKORG FOR VBRK-VKORG OBLIGATORY.
    SELECTION-SCREEN: END OF LINE.
    SELECTION-SCREEN: BEGIN OF LINE.
    SELECTION-SCREEN: COMMENT 1(20) TEXT_005.
    SELECT-OPTIONS:   S_VTWEG FOR VBRK-VTWEG OBLIGATORY.
    SELECTION-SCREEN: END OF LINE.
    SELECTION-SCREEN: BEGIN OF LINE.
    SELECTION-SCREEN: COMMENT 1(23) TEXT_006.
    PARAMETERS : DATE LIKE VBRK-FKDAT OBLIGATORY.
    SELECTION-SCREEN: END OF LINE.
    SELECTION-SCREEN END OF BLOCK B1.
    SELECTION-SCREEN : BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT_002.
    SELECTION-SCREEN: BEGIN OF LINE.
    SELECTION-SCREEN: COMMENT 1(20) TEXT_007.
    PARAMETERS : G1 RADIOBUTTON GROUP 1.
    SELECTION-SCREEN: END OF LINE.
    SELECTION-SCREEN: BEGIN OF LINE.
    SELECTION-SCREEN: COMMENT 1(20) TEXT_008.
    PARAMETERS : CH1 AS CHECKBOX DEFAULT 'X'.
    SELECTION-SCREEN: END OF LINE.
    SELECTION-SCREEN: BEGIN OF LINE.
    SELECTION-SCREEN: COMMENT 1(20) TEXT_009.
    PARAMETERS : CH2 AS CHECKBOX DEFAULT 'X'.
    SELECTION-SCREEN: END OF LINE.
    SELECTION-SCREEN: BEGIN OF LINE.
    SELECTION-SCREEN: COMMENT 1(20) TEXT_010.
    PARAMETERS : CH3 AS CHECKBOX DEFAULT 'X'.
    SELECTION-SCREEN: END OF LINE.
    SELECTION-SCREEN: BEGIN OF LINE.
    SELECTION-SCREEN: COMMENT 1(20) TEXT_011.
    PARAMETERS : CH4 AS CHECKBOX DEFAULT 'X'.
    SELECTION-SCREEN: END OF LINE.
    SELECTION-SCREEN: BEGIN OF LINE.
    SELECTION-SCREEN: COMMENT 1(20) TEXT_012.
    PARAMETERS : G2 RADIOBUTTON GROUP 1.
    SELECTION-SCREEN: END OF LINE.
    SELECTION-SCREEN : END OF BLOCK B2.
    *& Initialization Event
    INITIALIZATION.
      TEXT_001 = 'Despatch details report'.
      TEXT_002 = 'Data selection criteria'.
      TEXT_003 = 'Plant'.
      TEXT_004 = 'Sales Organization'.
      TEXT_005 = 'Distribution Channel'.
      TEXT_006 = 'Date'.
      TEXT_007 = 'Daily'.
      TEXT_008 = 'Monthly Despatch'.
      TEXT_009 = 'Plan Vs Despatch'.
      TEXT_010 = 'Total Basic Value'.
      TEXT_011 = 'Despatch Report'.
      TEXT_012 = 'Despatch Rep with only basic'.
    *& Start of Selection
    START-OF-SELECTION.
      PERFORM GET_LYEAR.
      PERFORM GET_DATA.
      PERFORM FILL_FOR_DAY.
      PERFORM FILL_FOR_MONTH.
      PERFORM FIELDCAT_FOR_DAY.
      PERFORM FIELDCAT_FOR_MONTH.
      PERFORM EVENTS_FOR_DAY.
      PERFORM EVENTS_FOR_MONTH.
      PERFORM APPEND_FOR_DAY.
      PERFORM APPEND_FOR_MONTH.
      PERFORM LIST_DISPLAY.
    *&      Form  GET_LYEAR
          text
    -->  p1        text
    <--  p2        text
    FORM GET_LYEAR.
      VALU      = DATE.
      DAY       = ( VALU+6(2) ) - 1.
      MONTH     = VALU+4(2).
      YEAR      = VALU+0(4).
      IF MONTH  = 1.
        LMONTH = 12.
        LYEAR  = VALU+0(4) - 1.
      ELSE.
        LMONTH = VALU+4(2) - 1.
        LYEAR  = YEAR.
      ENDIF.
      LCMON     = LMONTH.
      MODN = LYEAR MOD 4.
      IF LMONTH < 10 .
        CONCATENATE LYEAR '0' LCMON '01' INTO L_LOWDT.
        IF LMONTH = 01  OR LMONTH = 03  OR
           LMONTH = 05  OR LMONTH = 07  OR
           LMONTH = 08.
          CONCATENATE LYEAR '0' LCMON '31' INTO L_HIGHDT.
        ELSEIF LMONTH = 2.
          IF  MODN = 0.
            CONCATENATE LYEAR '0' LCMON '29' INTO L_HIGHDT.
          ELSE.
            CONCATENATE LYEAR '0' LCMON '28' INTO L_HIGHDT.
          ENDIF.
        ELSE.
          CONCATENATE LYEAR '0' LCMON '30' INTO L_HIGHDT.
        ENDIF.
      ELSE.
        CONCATENATE LYEAR LCMON '01' INTO L_LOWDT.
        IF LMONTH = 10  OR LMONTH = 12.
          CONCATENATE LYEAR LCMON '31' INTO L_HIGHDT.
        ELSE.
          CONCATENATE LYEAR LCMON '30' INTO L_HIGHDT.
        ENDIF.
      ENDIF.
      LOWDATE  = DATE - ( DAY ).
      HIGHDATE = DATE.
    *& At the of this form following date we get
    *& L_HIGHDT - Last Month Hight Date
    *& L_LOWDT  - Last Month Low Date
    *& LOWDATE  - Current Month Low Date
    *& HIGHDATE - Current Month High Date
    ENDFORM.                    " GET_LYEAR
    *&      Form  get_data
          text
    -->  p1        text
    <--  p2        text
    FORM GET_DATA.
      SELECT VBRKVBELN VBRKKUNAG VBRK~VTWEG
             VBRKFKART VBRKKNUMV VBRP~MATNR
             VBRPMATKL VBRPFKIMG VBRK~VKORG
             VBRKWAERK VBRKKURRF VBRP~POSNR
             VBRK~FKDAT
             INTO CORRESPONDING FIELDS OF WA_VBRKVBRP
             FROM VBRK INNER JOIN VBRP ON
             VBRKVBELN = VBRPVBELN
              WHERE VBRP~WERKS IN S_WERKS AND
                    VBRP~VKORG_AUFT IN S_VKORG AND
                    VBRP~VTWEG_AUFT IN S_VTWEG AND
                    VBRK~FKDAT BETWEEN LOWDATE AND DATE  AND
                    ( VBRP~MATKL = 'GLASS SHE'     OR
                      VBRP~MATKL = 'GLASS FNL'     OR
                      VBRP~MATKL = 'GLASS PNL')   AND
                    VBRK~RFBSK = 'C'.
                  ORDER BY VBRKVBELN VBRPMATNR.
    *& Select PR00 based value
        SELECT SINGLE KWERT INTO WA_VBRKVBRP-PR00
              FROM KONV
              WHERE KNUMV = WA_VBRKVBRP-KNUMV AND
                    KPOSN = WA_VBRKVBRP-POSNR AND
                    KSCHL = 'PR00'.
    *& Select ZDRP based value
        SELECT SINGLE KWERT INTO WA_VBRKVBRP-ZDRP
              FROM KONV
              WHERE KNUMV = WA_VBRKVBRP-KNUMV AND
                    KPOSN = WA_VBRKVBRP-POSNR AND
                    KSCHL = 'ZDRP'.
    *& Select Sort name of the party
        SELECT SINGLE SORTL INTO WA_VBRKVBRP-SORTL
               FROM KNA1
               WHERE KUNNR = WA_VBRKVBRP-KUNAG.
    *& Select size of the product
        SELECT SINGLE BISMT INTO WA_VBRKVBRP-BISMT
               FROM MARA
               WHERE MATNR = WA_VBRKVBRP-MATNR.
    *& Multiply with exchange Rate
        WA_VBRKVBRP-PR00 = WA_VBRKVBRP-PR00 * WA_VBRKVBRP-KURRF.
        WA_VBRKVBRP-ZDRP = WA_VBRKVBRP-ZDRP * WA_VBRKVBRP-KURRF.
    *& Deciding Return and Fresh Sale
        IF WA_VBRKVBRP-VKORG = '1200' AND
           WA_VBRKVBRP-VTWEG = '40'.
          IF WA_VBRKVBRP-FKART = 'ZVRO' OR
             WA_VBRKVBRP-FKART = 'ZVRW'.
            WA_VBRKVBRP-SALE = 'Return'.
          ELSE.
            WA_VBRKVBRP-SALE = 'Fresh Sale'.
          ENDIF.
        ENDIF.
    *& Deciding Export Sale
        IF WA_VBRKVBRP-VKORG = '1202' AND
           WA_VBRKVBRP-VTWEG = '45'.
          WA_VBRKVBRP-SALE = 'Export'.
        ENDIF.
    *& Deciding Panel Quantity for the billing
        IF WA_VBRKVBRP-MATKL = 'GLASS SHE' OR
           WA_VBRKVBRP-MATKL = 'GLASS PNL'.
          WA_VBRKVBRP-PANEL = WA_VBRKVBRP-FKIMG.
        ENDIF.
    *& Deciding Funel Quantity for the billing
        IF WA_VBRKVBRP-MATKL = 'GLASS FNL'.
          WA_VBRKVBRP-FUNEL = WA_VBRKVBRP-FKIMG.
        ENDIF.
    *& Indicating Minus Price and quantity for the Return Sale
        IF WA_VBRKVBRP-FKART = 'ZVRO' OR
           WA_VBRKVBRP-FKART = 'ZVRW'.
          WA_VBRKVBRP-PANEL = WA_VBRKVBRP-PANEL * -1.
          WA_VBRKVBRP-FUNEL = WA_VBRKVBRP-FUNEL * -1.
          WA_VBRKVBRP-PR00  = WA_VBRKVBRP-PR00  * -1.
          WA_VBRKVBRP-ZDRP  = WA_VBRKVBRP-ZDRP  * -1.
        ENDIF.
        APPEND WA_VBRKVBRP TO IT_VBRKVBRP.
        CLEAR: WA_VBRKVBRP.
      ENDSELECT.
      SORT IT_VBRKVBRP BY SORTL SALE BISMT.
    ENDFORM.                    " get_data
    *&      Form  FILL_FOR_DAY
          text
    -->  p1        text
    <--  p2        text
    FORM FILL_FOR_DAY.
      LOOP AT IT_VBRKVBRP INTO WA_VBRKVBRP WHERE FKDAT = HIGHDATE.
        AT NEW BISMT.
          WA_FOR_DAY-SORTL = WA_VBRKVBRP-SORTL.
          WA_FOR_DAY-SALE  = WA_VBRKVBRP-SALE.
          WA_FOR_DAY-BISMT = WA_VBRKVBRP-BISMT+0(3).
        ENDAT.
        WA_FOR_DAY-PANEL = WA_FOR_DAY-PANEL + WA_VBRKVBRP-PANEL.
        WA_FOR_DAY-FUNEL = WA_FOR_DAY-FUNEL + WA_VBRKVBRP-FUNEL.
        WA_FOR_DAY-PR00  = WA_FOR_DAY-PR00  + WA_VBRKVBRP-PR00.
        WA_FOR_DAY-ZDRP  = WA_FOR_DAY-ZDRP  + WA_VBRKVBRP-ZDRP.
        AT END OF BISMT.
          APPEND WA_FOR_DAY TO IT_FOR_DAY.
          CLEAR: WA_FOR_DAY.
        ENDAT.
        CLEAR: WA_VBRKVBRP.
      ENDLOOP.
    ENDFORM.                    " FILL_FOR_DAY
    *&      Form  FILL_FOR_MONTH
          text
    -->  p1        text
    <--  p2        text
    FORM FILL_FOR_MONTH.
      LOOP AT IT_VBRKVBRP INTO WA_VBRKVBRP.
        AT NEW BISMT.
          WA_FOR_MONTH-SORTL = WA_VBRKVBRP-SORTL.
          WA_FOR_MONTH-SALE  = WA_VBRKVBRP-SALE.
          WA_FOR_MONTH-BISMT = WA_VBRKVBRP-BISMT.
        ENDAT.
        WA_FOR_MONTH-PANEL = WA_FOR_MONTH-PANEL + WA_VBRKVBRP-PANEL.
        WA_FOR_MONTH-FUNEL = WA_FOR_MONTH-FUNEL + WA_VBRKVBRP-FUNEL.
        WA_FOR_MONTH-PR00  = WA_FOR_MONTH-PR00  + WA_VBRKVBRP-PR00.
        WA_FOR_MONTH-ZDRP  = WA_FOR_MONTH-ZDRP  + WA_VBRKVBRP-ZDRP.
        AT END OF BISMT.
          APPEND WA_FOR_MONTH TO IT_FOR_MONTH.
          CLEAR: WA_FOR_MONTH.
        ENDAT.
        CLEAR: WA_VBRKVBRP.
      ENDLOOP.
    ENDFORM.                    " FILL_FOR_MONTH
    *&      Form  FIELDCAT_FOR_DAY
          text
    -->  p1        text
    <--  p2        text
    FORM FIELDCAT_FOR_DAY .
      COUNTER = COUNTER + 1.
      WA_FIELDCAT_FOR_DAY-COL_POS    = COUNTER.
      WA_FIELDCAT_FOR_DAY-FIELDNAME  = 'SORTL'.
      WA_FIELDCAT_FOR_DAY-TABNAME    = 'IT_FOR_DAY'.
      WA_FIELDCAT_FOR_DAY-SELTEXT_L  = 'Party Name'.
      WA_FIELDCAT_FOR_DAY-OUTPUTLEN  = 10.
      APPEND WA_FIELDCAT_FOR_DAY TO IT_FIELDCAT_FOR_DAY.
      CLEAR WA_FIELDCAT_FOR_DAY.
      COUNTER = COUNTER + 1.
      WA_FIELDCAT_FOR_DAY-COL_POS    = COUNTER.
      WA_FIELDCAT_FOR_DAY-FIELDNAME  = 'SALE'.
      WA_FIELDCAT_FOR_DAY-TABNAME    = 'IT_FOR_DAY'.
      WA_FIELDCAT_FOR_DAY-SELTEXT_L  = 'Sale 4 day'.
      WA_FIELDCAT_FOR_DAY-OUTPUTLEN  = 10.
      APPEND WA_FIELDCAT_FOR_DAY TO IT_FIELDCAT_FOR_DAY.
      CLEAR WA_FIELDCAT_FOR_DAY.
      COUNTER = COUNTER + 1.
      WA_FIELDCAT_FOR_DAY-COL_POS    = COUNTER.
      WA_FIELDCAT_FOR_DAY-FIELDNAME  = 'BISMT'.
      WA_FIELDCAT_FOR_DAY-TABNAME    = 'IT_FOR_DAY'.
      WA_FIELDCAT_FOR_DAY-SELTEXT_L  = 'Sizes'.
      WA_FIELDCAT_FOR_DAY-OUTPUTLEN  = 5.
      APPEND WA_FIELDCAT_FOR_DAY TO IT_FIELDCAT_FOR_DAY.
      CLEAR WA_FIELDCAT_FOR_DAY.
      COUNTER = COUNTER + 1.
      WA_FIELDCAT_FOR_DAY-COL_POS    = COUNTER.
      WA_FIELDCAT_FOR_DAY-FIELDNAME  = 'PANEL'.
      WA_FIELDCAT_FOR_DAY-TABNAME    = 'IT_FOR_DAY'.
      WA_FIELDCAT_FOR_DAY-SELTEXT_L  = 'Panel'.
      WA_FIELDCAT_FOR_DAY-OUTPUTLEN  = 10.
      APPEND WA_FIELDCAT_FOR_DAY TO IT_FIELDCAT_FOR_DAY.
      CLEAR WA_FIELDCAT_FOR_DAY.
      COUNTER = COUNTER + 1.
      WA_FIELDCAT_FOR_DAY-COL_POS    = COUNTER.
      WA_FIELDCAT_FOR_DAY-FIELDNAME  = 'FUNEL'.
      WA_FIELDCAT_FOR_DAY-TABNAME    = 'IT_FOR_DAY'.
      WA_FIELDCAT_FOR_DAY-SELTEXT_L  = 'Funel'.
      WA_FIELDCAT_FOR_DAY-OUTPUTLEN  = 10.
      APPEND WA_FIELDCAT_FOR_DAY TO IT_FIELDCAT_FOR_DAY.
      CLEAR WA_FIELDCAT_FOR_DAY.
      COUNTER = COUNTER + 1.
      WA_FIELDCAT_FOR_DAY-COL_POS    = COUNTER.
      WA_FIELDCAT_FOR_DAY-FIELDNAME  = 'PR00'.
      WA_FIELDCAT_FOR_DAY-TABNAME    = 'IT_FOR_DAY'.
      WA_FIELDCAT_FOR_DAY-SELTEXT_L  = 'Basic Value (Rs.)'.
      WA_FIELDCAT_FOR_DAY-OUTPUTLEN  = 15.
      APPEND WA_FIELDCAT_FOR_DAY TO IT_FIELDCAT_FOR_DAY.
      CLEAR WA_FIELDCAT_FOR_DAY.
      COUNTER = COUNTER + 1.
      WA_FIELDCAT_FOR_DAY-COL_POS    = COUNTER.
      WA_FIELDCAT_FOR_DAY-FIELDNAME  = 'ZDRP'.
      WA_FIELDCAT_FOR_DAY-TABNAME    = 'IT_FOR_DAY'.
      WA_FIELDCAT_FOR_DAY-SELTEXT_L  = 'Disc Value (Lacs.)'.
      WA_FIELDCAT_FOR_DAY-OUTPUTLEN  = 15.
      APPEND WA_FIELDCAT_FOR_DAY TO IT_FIELDCAT_FOR_DAY.
      CLEAR WA_FIELDCAT_FOR_DAY.
    ENDFORM.                    " FIELDCAT_FOR_DAY
    *&      Form  FIELDCAT_FOR_MONTH
          text
    -->  p1        text
    <--  p2        text
    FORM FIELDCAT_FOR_MONTH .
      COUNTER = COUNTER + 1.
      WA_FIELDCAT_FOR_DAY-COL_POS    = COUNTER.
      WA_FIELDCAT_FOR_DAY-FIELDNAME  = 'SORTL'.
      WA_FIELDCAT_FOR_DAY-TABNAME    = 'IT_FOR_MONTH'.
      WA_FIELDCAT_FOR_DAY-SELTEXT_L  = 'Party Name'.
      WA_FIELDCAT_FOR_DAY-OUTPUTLEN  = 10.
      APPEND WA_FIELDCAT_FOR_DAY TO IT_FIELDCAT_FOR_MONTH.
      CLEAR WA_FIELDCAT_FOR_DAY.
      COUNTER = COUNTER + 1.
      WA_FIELDCAT_FOR_DAY-COL_POS    = COUNTER.
      WA_FIELDCAT_FOR_DAY-FIELDNAME  = 'SALE'.
      WA_FIELDCAT_FOR_DAY-TABNAME    = 'IT_FOR_MONTH'.
      WA_FIELDCAT_FOR_DAY-SELTEXT_L  = 'Sale'.
      WA_FIELDCAT_FOR_DAY-OUTPUTLEN  = 10.
      APPEND WA_FIELDCAT_FOR_DAY TO IT_FIELDCAT_FOR_MONTH.
      CLEAR WA_FIELDCAT_FOR_DAY.
      COUNTER = COUNTER + 1.
      WA_FIELDCAT_FOR_DAY-COL_POS    = COUNTER.
      WA_FIELDCAT_FOR_DAY-FIELDNAME  = 'BISMT'.
      WA_FIELDCAT_FOR_DAY-TABNAME    = 'IT_FOR_MONTH'.
      WA_FIELDCAT_FOR_DAY-SELTEXT_L  = 'Sizes'.
      WA_FIELDCAT_FOR_DAY-OUTPUTLEN  = 5.
      APPEND WA_FIELDCAT_FOR_DAY TO IT_FIELDCAT_FOR_MONTH.
      CLEAR WA_FIELDCAT_FOR_DAY.
      COUNTER = COUNTER + 1.
      WA_FIELDCAT_FOR_DAY-COL_POS    = COUNTER.
      WA_FIELDCAT_FOR_DAY-FIELDNAME  = 'PANEL'.
      WA_FIELDCAT_FOR_DAY-TABNAME    = 'IT_FOR_MONTH'.
      WA_FIELDCAT_FOR_DAY-SELTEXT_L  = 'Panel'.
      WA_FIELDCAT_FOR_DAY-OUTPUTLEN  = 10.
      APPEND WA_FIELDCAT_FOR_DAY TO IT_FIELDCAT_FOR_MONTH.
      CLEAR WA_FIELDCAT_FOR_DAY.
      COUNTER = COUNTER + 1.
      WA_FIELDCAT_FOR_DAY-COL_POS    = COUNTER.
      WA_FIELDCAT_FOR_DAY-FIELDNAME  = 'FUNEL'.
      WA_FIELDCAT_FOR_DAY-TABNAME    = 'IT_FOR_MONTH'.
      WA_FIELDCAT_FOR_DAY-SELTEXT_L  = 'Funel'.
      WA_FIELDCAT_FOR_DAY-OUTPUTLEN  = 10.
      APPEND WA_FIELDCAT_FOR_DAY TO IT_FIELDCAT_FOR_MONTH.
      CLEAR WA_FIELDCAT_FOR_DAY.
      COUNTER = COUNTER + 1.
      WA_FIELDCAT_FOR_DAY-COL_POS    = COUNTER.
      WA_FIELDCAT_FOR_DAY-FIELDNAME  = 'PR00'.
      WA_FIELDCAT_FOR_DAY-TABNAME    = 'IT_FOR_MONTH'.
      WA_FIELDCAT_FOR_DAY-SELTEXT_L  = 'Basic Value (Rs.)'.
      WA_FIELDCAT_FOR_DAY-OUTPUTLEN  = 15.
      APPEND WA_FIELDCAT_FOR_DAY TO IT_FIELDCAT_FOR_MONTH.
      CLEAR WA_FIELDCAT_FOR_DAY.
      COUNTER = COUNTER + 1.
      WA_FIELDCAT_FOR_DAY-COL_POS    = COUNTER.
      WA_FIELDCAT_FOR_DAY-FIELDNAME  = 'ZDRP'.
      WA_FIELDCAT_FOR_DAY-TABNAME    = 'IT_FOR_MONTH'.
      WA_FIELDCAT_FOR_DAY-SELTEXT_L  = 'Disc Value (Lacs.)'.
      WA_FIELDCAT_FOR_DAY-OUTPUTLEN  = 15.
      APPEND WA_FIELDCAT_FOR_DAY TO IT_FIELDCAT_FOR_MONTH.
      CLEAR WA_FIELDCAT_FOR_DAY.
    ENDFORM.                    " FIELDCAT_FOR_MONTH
    *&      Form  EVENTS_FOR_DAY
          text
    -->  p1        text
    <--  p2        text
    FORM EVENTS_FOR_DAY .
      CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
        EXPORTING
          I_LIST_TYPE     = 0
        IMPORTING
          ET_EVENTS       = IT_EVENT_FOR_DAY[]
        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.
      READ TABLE IT_EVENT_FOR_DAY
                 WITH KEY NAME = SLIS_EV_TOP_OF_LIST
                 INTO IT_EVENT_FOR_DAY.
      IF SY-SUBRC = 0.
        MOVE TOP_OF_LIST_FOR_DAY TO IT_EVENT_FOR_DAY-FORM.
        APPEND IT_EVENT_FOR_DAY.
      ENDIF.
    ENDFORM.                    " EVENTS_FOR_DAY
    *&      Form  EVENTS_FOR_MONTH
          text
    -->  p1        text
    <--  p2        text
    FORM EVENTS_FOR_MONTH .
      CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
        EXPORTING
          I_LIST_TYPE     = 0
        IMPORTING
          ET_EVENTS       = IT_EVENT_FOR_MONTH[]
        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.
      READ TABLE IT_EVENT_FOR_MONTH
                 WITH KEY NAME = SLIS_EV_TOP_OF_LIST
                 INTO IT_EVENT_FOR_MONTH.
      IF SY-SUBRC = 0.
        MOVE TOP_OF_LIST_FOR_MON TO IT_EVENT_FOR_MONTH-FORM.
        APPEND IT_EVENT_FOR_MONTH.
      ENDIF.
      CLEAR: IT_EVENT_FOR_MONTH.
    ENDFORM.                    " EVENTS_FOR_MONTH
    *&      Form  TOP_OF_LIST_FOR_DAY
          text
    -->  p1        text
    <--  p2        text
    FORM TOP_OF_LIST_FOR_DAY.
      WRITE: / 'FOR DAY'.
    ENDFORM.                    " EVENTS_FOR_MONTH
    *&      Form  TOP_OF_LIST_FOR_MONTH
          text
    -->  p1        text
    <--  p2        text
    FORM TOP_OF_LIST_FOR_MONTH.
      WRITE: / 'FOR MONTH'.
    ENDFORM.                    " EVENTS_FOR_MONTH
    *&      Form  APPEND_FOR_DAY
          text
    -->  p1        text
    <--  p2        text
    FORM APPEND_FOR_DAY .
      IF NOT IT_FOR_DAY IS INITIAL.
        WA_FOR_DAY-SORTL = ''.
        APPEND WA_FOR_DAY TO IT_FOR_DAY.
        CLEAR: WA_FOR_DAY.
      ENDIF.
      CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
        EXPORTING
          IT_FIELDCAT = IT_FIELDCAT_FOR_DAY
          IS_LAYOUT   = IS_LAYOUT_FOR_DAY
          I_TABNAME   = 'IT_FOR_DAY'
          IT_EVENTS   = IT_EVENT_FOR_DAY[]
        TABLES
          T_OUTTAB    = IT_FOR_DAY[].
      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.                    " APPEND_FOR_DAY
    *&      Form  APPEND_FOR_MONTH
          text
    -->  p1        text
    <--  p2        text
    FORM APPEND_FOR_MONTH .
      CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
        EXPORTING
          IT_FIELDCAT = IT_FIELDCAT_FOR_MONTH
          IS_LAYOUT   = IS_LAYOUT_FOR_MONTH
          I_TABNAME   = 'IT_FOR_MONTH'
          IT_EVENTS   = IT_EVENT_FOR_MONTH[]
        TABLES
          T_OUTTAB    = IT_FOR_MONTH[].
      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.                    " APPEND_FOR_MONTH
    *&      Form  LIST_DISPLAY
          text
    -->  p1        text
    <--  p2        text
    FORM LIST_DISPLAY .
      DATA: GT_PRINT TYPE SLIS_PRINT_ALV.
      GT_PRINT-RESERVE_LINES = 2.
      CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'
        EXPORTING
          IS_PRINT = GT_PRINT.
      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.                    " LIST_DISPLAY

  • How to find total memory for Oralce Memory utilization

    Hi,
    How to find total amount of memory utilized by oracle including SGA+PGA+PROCESS
    Thanks,
    Abk

    Is you OS 32-bit ? If you add /3gb in boot.ini , then it will limit oracle.exe to go only upto 3gb.
    Add /PAE in the boot.ini and remove /3gb.
    then use db_block_buffers parameter instead of db_cache_size
    for using db_block_buffers, you need to set another parameter also.
    use_indirect_data_buffers=true
    db_block_buffers=<number of blocks
    db_block_buffers=db_cache_size in kilobytes /db_block_size
    (since db_block_size is 8 kllobytes by default in Windows..
    {color:blue}Please refer Metalink Note : [373602.1|https://metalink2.oracle.com/metalink/plsql/ml2_documents.showDocument?p_database_id=NOT&p_id=373602.1]{color}
    Edited by: Mahesh Menon on Apr 29, 2009 2:56 PM

  • Hw to find total number of records

    Hi All,
    Can anyone help from these
    1. how to find total number of reports for a particular cube/ods... need step - step solution
    2. how to find total number of records for a particular Cube and ODS and Aggr's to till date.
    3.what is sandbox,mirror sys,instance of a sys..?
    4.what r TWS(Tivoli Workload Scheduler) jobs? how these r different to standard schedulers?
    Thanks in ADv
    Linda

    Hello Linda,
    As you have lots of answers on first 2 so i'll start from 3rd onward.
    3. Sandbox is mostly practice system where you can do all kind of R&D, mirror sys can be mirror image of any system depends on the organization and instance of system is again mirror image of one system.
    4. TWS is third party tool for scheduling which doesn't come along with SAP like standard scheduler as TWS has been prepared specially for this purpose so it has some more features than standard.
    Hope it helps.
    San.

Maybe you are looking for

  • How do I use two BT Cloud accounts on 1 computer

    Hi All, I we have two fibre connections and two cloud accounts, I want to be able to access both of them from the desk top, at thw moment I cant work this out< I can use 1 in a browser and one on the desk top, unfortunately in a hurry to share some p

  • Real-time apply in Maximum Performance Mode Not Working

    We have configured physical standby database in maximum performance mode. It's working perfectly fine. Archive logs are being applied to the physical standby. We can open the DB in read-only mode, but real-time apply is not working. Physical standby

  • Cover flow displays the same two pieces of artwork for all videos.

    I've been adding a collection of tv series I have on DVD to iTunes 9.1.1, it all worked fine initially, I opened each video up of a series of tv programs and used the "Set Poster Frame" option to capture a frame of the program to use as the artwork f

  • I can't fix the margin value with Report6i on windowXP

    You know that page setup box in the menu after executing a report program, The situation is like that following... printer server : window2000 then i can fix margin value of the report HOWEVER, printer server : windowXP then i can't enter a number in

  • My question mark key is not working

    when i go to type a question mark, it comes up like this ^. Thoughts