Alv in alv

after i made an alv report, i need to make button that when i click on it i get a list of icon and there meaning 
any one know??

Hi,
create a button in you pf-status and user clicks on it use call transaction 'ICON'.
Kostas

Similar Messages

  • Difference between alv & oops alv

    please anybody know the difference between alv & oops alv
    Edited by: prahlad sahu on Dec 18, 2007 5:47 AM

    please anybody know the difference between alv & oops alv
    Edited by: prahlad sahu on Dec 18, 2007 5:47 AM

  • Web Dynpro ALV vs ALV

    hi all,
    i use the alv with the new model in a normal abap-program and there i use the statement SET COUNTRY 'US' to show the date-format in us-mode, which works fine.
    doing the same with webDynpro ALV does not work.
    Is there another possibility to use that, is this a bug - we use nw2004s with SP8, or any workaround possible.
    kind regards,
    oliver

    set country
    statement is used by write statements.
    This implies the original ALV tool user write statements to help construct output.
    It is plausible the WDA ALV used write to statements to help format output for the grid but
    not it is not necessary.
    Important is that the users date format as in the SU01 is correctly interpreted.
    ie the DATE out in WDA ALV should reflect the user's settings. Otherwise raise OSS message.
    I just tested an WDA ALV and it reflected user ID date format changes immediately. Ie
    next call to an application.
    Cheers
    Phil

  • ALV: Send ALV output as mail - background processing

    Hi all,
    I'm a newbie in SDC and try to implement the following functionality (Version 4.0B):
    A ABAP report (to be scheduled as e.g. a daily job run) with ALV output should send an automated email containing the ALV informations to a receiver specified in the selection criterias.
    I already have the following pieces:
    1) The report with ALV output (running online and clicking on List/send/office works perfectly, the alv-output is attached to the mail). The report runs also in background and generates a spool.
    2) A subroutine wich sends a email (input has to be in an itab)
    Now I try to put them together.
    Question: How can I automate the send process?
    I did a little bit of debugging, but got lost in the SAP Office functions.
    Any help appreciated!
    Thomas

    Hi Michael,
    thank you again a helpfull reply. To solve the issue I ended up writing a second little report.
    Here is a short description of my solution just in case anybody else is also interested in.
    I set up a Job with two steps.
    Step 1 is the ABAP that creates e.g. a ALV output (anything that goes to spool).
    Step 2 is a little ABAP that does nothing else than reading the output of step 1 (Spool) and send it as SAP Office Document. (To be a little more flexible I added some selection criterias for step 2 like Jobstep number, receiver, sendmode, ...).
    It works fine online (by keying in the spool number manually) and in batch mode (by determining the spool  number based on the job number). I think this solution is flexible and lightwight.
    Kind regards,
    Thomas
    Message was edited by: Thomas Hager
    Message was edited by: Thomas Hager

  • Comparing OO ALV and ALV using Function modules

    Hi All,
    Please provide me what are the advantages of developing ALV using Objects compared to creation using function modules. What are the disadvantages of creating using the conventional FM way.
    I have not worked much on ALV using Function modules, have been developing using standard abap classes. I wanted to have an detailed understanding and differences between the two.
    Please provide your views on the same.
    I have searched SDN forum, but didnt find much information, so it will be of great help if you provide some inputs.
    Thanks & Regards,
    Navneeth K.

    Hi, Navneeth,
    With ALV functions, you can everything that you would do otherwise with the OOPS ALV. However , I don't think you can possibily have more controls in case of alv function because it occupies the entire screen and the function only calls 2 screens internally ( screen numbers 500 and 700 (for popup alv)).
    But with OOPS on the other hand, you can have many controls on one screen, for example, you can have 2 ALV lists, or a splitter control with one of them having a Tree control and the other alv grid/list, pictures etc.
    So the sole motive of the function is if you want to display a list, but when developing a serious application, I  would go for OOPs ALV.
    regards,
    Advait

  • BalanceSheet ALV to ALV grid

    Hiii experts..
    I have created one report program similar to RFBILA00 standard program...
    now all the information is present in my internal table IT... now what I want to create a ALV tree similar to the output of the this standard program when ALV grid tree control is selected...
    can any1 help me...
    thanks in advance..

    Hi,
    Please refer the program "BCALV_TREE_02".
    Hope this might help you to solve your problem.
    With Regards,
    Sumodh.p

  • Normal ALVs vrs ALV OOPs

    I am using ALV OOPs. In ALV OOPs Appl tool bar is working by default when we create PF-STATUS. But in case of normal ALVs we need to write code for SY-UCOMM in PAI. why this happens, can anybody give tips. 
    Regards,
    Naseer.

    Hi Naseer,
    In Normal ALV we use Function mnodule and in OOPs we use classes and methods.
    In Normal ALV we cannot place grids on screens but in OOALV we can place grids on screens.
    we can insert logos in OOPS ALV.
    see the code below
    for displaying LOGO in ALV GRID CONTROL, we work with
    Predefined global class. CL_GUI_ALV_TREE_SIMPLE. FOR
    displaying LOGO. AND we use CL_GUI_CUSTOM_CONTAINTER for
    identifies the location where we r goinh to display.
    DECLARATIONS;
    TYPE-POOLS: SDYDO, SLIS.
    DATA: L_LOGO TYPE SDYDO_VALUE,” FOR DISPLAYING LOGO
    L_LIST TYPE SLIS_T_LISTHEADER. ” FOR LIST HEADING
    DATA: LOGO TYPE SCRFNAME VALUE ‘SLOGO’,
    CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER,
    LOGO1 TYPE REF TO CL_GUI_ALV_TREE_SIMPLE.
    CREATE INSTANCE FOR ABOVE DEFINED CLASSES IN PBO EVENT
    OF SCREEN FLOW LOGIC.
    IF CONTAINER IS INITIAL.
    CREATE OBJECT CONTAINER EXPORTING CONTAINER_NAME =
    LOGO.
    CREATE OBJECT LOGO1 EXPORTING I_PARENT = CONTAINER.
    NOW CALL THE METHOD FOR DISPLAYING LOGO IN GRID CONTROL
    CALL METHOD LOGO->‘CREATE_REPORT_HEADER’
    EXPORTING
    I_LIST_COMMENTARY = L_LIST
    I_LOGO = ’ ’ ” HERE PASS WHERE LOGO EXISTING.
    THE ABOVE METHOD EXISTING
    Please reward points if helpful..
    Cheers,
    Chaitanya.

  • Maximum Number of Columns in OOPs ALV / Normal ALV Grid

    Hi Experts ,
    We got Stuck in Displaying the 150 Columns in the ALV Display .
    Need to Confirm how many Columns can be displayed in ALV - 60/90/99/1023  Or 1023 characters in ALv Display
    1. How It can be achieved to display 150 Columns in ALV .
    2. By Which way it should be More Efficient Using OOPs ALV or Normal ALV Grid.
    We had check almost all the forums Post but didnt get any satisfactory answer for the same .
    Thanks in advance
    Regards,
    Saurabh Goel

    Hello,
    If you are preparing your field catalog by using the function module REUSE_ALV_FIELDCAT_MERGE, then you can display a
    maximum of something around 70 to 82 fields.
    But if you are creating your field catalog manually, then you can display N number of columns in ALV grid.
    Check the point of fieldcat preparation.
    Hope this helps
    Cheers!
    Mishra

  • Field should not display in the subtotal row in ALV report after sorting .

    we have a requirement, after sorting and subtotaling, the output in ALV is -
    vbeln        amount1  amount2  amount3
    123           11              12            13
    123           12             13             14
    123           23             25             27 
    133           11              12            13
    133           12             13             14
    133           23             25             27
    Now the customer wants the ALV outpput in this fashion -
    123           11              12            13
    123           12             13             14
                     23             25             27    --->123 (vbeln) should not come in subtotaling row
    133           11              12            13
    133           12             13             14
                      23             25             27--->133(vbeln) should not come in subtotaling row

    Hi,
    if it helps you could create a hierachy. In this way you can define the field catalog for the lines and for the subtotal columns. The only thing is that you would always show the subtotal rows.
    You have references of hierachy alvs in
    http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/c060fcb4-2c62-2b10-d2b2-f32407a5cc6f
    ALV Hierarchy
    alv hierarchy
    In this case it also sorts
    Sorting for ALV hierarchy
    I hope it helps.
    Edited by: Oscar Pecharroman on Aug 2, 2010 1:13 PM

  • How to trigger New page while using ALV with classes/oops?

    Hi All
    I am trying to print a report which has to show the data in two pages.
    I am using ALV with classes/oops.
    Though I am able to print the report but a new page is not coming. Whole of the data is coming in one single page.
    Please tell me as to how to trigger a NEW PAGE while using ALV with classes/oops.
    Please send some code samples also if available.
    Thanks in advance.
    Jerry

    using sort option you can do it. in case of grid/oo alv class ALV you can view that only in print mode/preview mode.
    in case of list you can view that directly.
    sort-fieldname = 'FIELDNAME'.
    sort-group = '*'  "triggers new page
    sort-up = 'X'.
    append sort to it_sort.

  • ALV-GRID TOTAL

    Hi Experts,
    i have issue were in i need to show sum of the amount. like example...
    for Custmer 100 there are vendor number 10,20,30,40,50. so for all this vendor numbers..
    vendor-----  amount
    10 -
       100
    20----
    200
    30----
    300
    40----
    400
    50-------500
    so in the output i want it to be..
    customer--vendornumber--
    amount
       1000--10--
    1500
    20---
    30---
    40---
    50---
    .hope u experts have undestood. so how can i add the it and show it in the output....
    am  forwarding my code also..
    Corrects answers will be fully rewarded..
    REPORT  zrfi007 NO STANDARD PAGE HEADING LINE-SIZE 255 MESSAGE-ID z01.
    TYPE-POOLS: slis, abap.
    * TYPES Declaration
    TYPES: BEGIN OF ty_lfa1,
          lifnr TYPE lfa1-lifnr,
          name1 TYPE lfa1-name1,
          END OF ty_lfa1.
    TYPES:  BEGIN OF ty_bsik,
             bukrs  TYPE    bsik-bukrs,
             lifnr  TYPE    bsik-lifnr,
             belnr  TYPE    bsik-belnr,
             bldat  TYPE    bsik-bldat,
             waers  TYPE    bsik-waers,
             dmbtr  TYPE    bsik-dmbtr,
             wrbtr  TYPE    bsik-wrbtr,
              zfbdt TYPE    bsik-zfbdt,
             zbd1t  TYPE    bsik-zbd1t,
            zbd2t   TYPE    bsik-zbd2t,
            zbd3t   TYPE    bsik-zbd3t,
           END OF ty_bsik.
    TYPES: BEGIN OF ty_lfb1,
           lifnr TYPE lfb1-lifnr,
           bukrs TYPE lfb1-bukrs,
           END OF ty_lfb1.
    TYPES: BEGIN OF ty_final,
             bukrs  TYPE    bsik-bukrs,
             lifnr  TYPE    bsik-lifnr,
             belnr  TYPE    bsik-belnr,
             bldat  TYPE    bsik-bldat,
             days   TYPE    sy-datum,
             waers  TYPE    bsik-waers,
             dmbtr  TYPE    bsik-dmbtr,
    *         waers  type    bsik-waers,
             wrbtr  TYPE    bsik-wrbtr,
             zfbdt  TYPE    bsik-zfbdt,
             zbd1t  TYPE    bsik-zbd1t,
             zbd2t  TYPE    bsik-zbd2t,
             zbd3t  TYPE    bsik-zbd3t,
             name1  TYPE    lfa1-name1,
             current  TYPE    bsik-dmbtr,
            d30     TYPE    bsik-dmbtr,
            d60     TYPE    bsik-dmbtr,
            d90     TYPE    bsik-dmbtr,
            d120    TYPE    bsik-dmbtr,
            d180    TYPE    bsik-dmbtr,
            d240    TYPE    bsik-dmbtr,
            d360    TYPE    bsik-dmbtr,
            da365   TYPE    bsik-dmbtr,
    *        ct_date TYPE  sy-datum,
    *         date   TYPE datum,
    *         days  TYPE char8,
           END OF ty_final.
    * Data Declaration.
    DATA: gt_lfa1 TYPE STANDARD TABLE OF ty_lfa1,
          wa_lfa1 TYPE ty_lfa1.
    DATA: gt_final TYPE STANDARD TABLE OF ty_final,
          wa_final TYPE ty_final.
    DATA: gt_bsik TYPE STANDARD TABLE OF ty_bsik,
          wa_bsik TYPE ty_bsik.
    DATA: gt_lfb1 TYPE STANDARD TABLE OF ty_lfb1,
          wa_lfb1 TYPE ty_lfb1.
    DATA:   days        TYPE sy-datum.
    * ALV Components
    **** ALV Internal Table
    DATA : i_layout     TYPE slis_layout_alv OCCURS 0 WITH HEADER LINE,
           i_events     TYPE slis_t_event,
           i_fieldcat   TYPE slis_t_fieldcat_alv,
           i_print      TYPE slis_print_alv,
           i_list_top   TYPE slis_t_listheader,
           i_list_end   TYPE slis_t_listheader,
           i_sort       TYPE slis_t_sortinfo_alv.
    DATA:  wa_fieldcat  LIKE LINE OF i_fieldcat.
    * ALV Variable.
    DATA: v_top        TYPE slis_formname VALUE 'TOP_OF_PAGE',
          v_eop        TYPE slis_formname VALUE 'END_OF_PAGE',
          v_eol        TYPE slis_formname VALUE 'END_OF_LIST',
          v_tol        TYPE slis_formname VALUE 'TOP_OF_LIST'.
    **** ALV Variants
    DATA: i_variant      LIKE disvariant.
    * Selection screen
    DATA: v_bukrs TYPE bukrs,
          v_lifnr TYPE kunnr,
          pa_bldat TYPE bldat.
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
    SELECT-OPTIONS: s_bukrs FOR v_bukrs NO INTERVALS NO-EXTENSION OBLIGATORY,
                    s_lifnr FOR v_lifnr.
    *                bldat FOR v_bldat no-extension.
    PARAMETERS: p_bldat TYPE  bsik-bldat.
    SELECTION-SCREEN END OF BLOCK b1.
    SELECTION-SCREEN SKIP 2.
    SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.
    PARAMETERS: p_detail RADIOBUTTON GROUP r1 DEFAULT 'X',
                p_sumry RADIOBUTTON GROUP r1.
    SELECTION-SCREEN END OF BLOCK b2.
    *  Top-Of-Page Declaration Header
    DATA: lwa_list_top LIKE LINE OF i_list_top.
    DATA: lv_header(70),
          lv_text(50),
          lv_text1(60),
          lv_text2(50),
          lv_text3(50) ,
          lv_text4(50),
          lv_date TYPE char10,
          lv_time TYPE char10.
    DATA: lv_butxt LIKE t001-butxt,
          lv_butxt1 LIKE lfa1-name1,
          lv_butxt2 LIKE lfb1-lifnr.
    INITIALIZATION.
    *TOP-OF-PAGE.
    * Validations for Selection screen
    AT SELECTION-SCREEN ON s_bukrs.
      IF NOT s_bukrs[] IS INITIAL.
        SELECT SINGLE bukrs FROM lfb1
         INTO s_bukrs
        WHERE bukrs IN s_bukrs.
      ENDIF.
      IF sy-subrc NE 0.
        MESSAGE e003.
      ENDIF.
    AT SELECTION-SCREEN ON s_lifnr.
      IF NOT s_lifnr[] IS INITIAL.
        SELECT SINGLE lifnr FROM lfa1
        INTO s_lifnr
        WHERE lifnr IN s_lifnr.
        IF sy-subrc NE 0.
          MESSAGE e005.
        ENDIF.
      ENDIF.
    AT SELECTION-SCREEN ON p_bldat.
      IF NOT p_bldat IS INITIAL.
        SELECT SINGLE bldat FROM bsid
        INTO p_bldat
        WHERE bldat = p_bldat.
        IF sy-subrc NE 0 .
          MESSAGE e004.
        ENDIF.
      ENDIF.
    * Selection For Top-of-page.
    ** Get company code description
      SELECT SINGLE butxt
        FROM t001 INTO lv_butxt
        WHERE bukrs IN s_bukrs.
    *  SELECT SINGLE lifnr  FROM lfb1
    *  INTO  lv_butxt2  WHERE bukrs IN s_bukrs.
    *  SELECT SINGLE name1 FROM lfa1
    *   INTO lv_butxt1 WHERE lifnr = lv_butxt2.
    START-OF-SELECTION.
      PERFORM data_retrival.
      PERFORM f_layout_init.
      PERFORM f_eventtab_build.
      i_variant-report = sy-repid.
      PERFORM f_print_control.
    *  PERFORM f_build_header_list.
    *  perform f_build_header_list1.
    *    PERFORM f_build_fieldcat.
      IF p_detail = 'X'.
        PERFORM f_build_sort.
        PERFORM fill_fieldcat.
        PERFORM f_build_header_list.
      ELSE.
        PERFORM f_build_sort1.
        PERFORM fill_fieldcat_sum.
        PERFORM f_build_header_list1.
      ENDIF.
      PERFORM f_list_display TABLES gt_final[].
    END-OF-SELECTION.
    *&      Form  data_retrival
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM data_retrival .
      SELECT   bukrs
               lifnr
               belnr
               bldat
               waers
               dmbtr
               wrbtr
               zfbdt
               zbd1t
               zbd2t
               zbd3t
               FROM bsik INTO TABLE gt_bsik
               WHERE bukrs IN s_bukrs
               AND   lifnr IN s_lifnr.
      SELECT lifnr
             name1
             FROM lfa1 INTO TABLE gt_lfa1
             FOR ALL ENTRIES IN gt_bsik
             WHERE lifnr = gt_bsik-lifnr.
      LOOP AT gt_bsik INTO wa_bsik.
        READ TABLE gt_lfa1 INTO wa_lfa1 WITH KEY lifnr = wa_bsik-lifnr.
        MOVE-CORRESPONDING wa_bsik TO wa_final.
        MOVE-CORRESPONDING wa_lfa1 TO wa_final.
        DATA: days TYPE char2,
              c4 TYPE char2.
        DATA: days1 TYPE sy-datum.
        DATA:duedate TYPE rfpos-faedt.
        CALL FUNCTION 'NET_DUE_DATE_GET'
          EXPORTING
            i_zfbdt       = wa_final-zfbdt
            i_zbd1t       = wa_final-zbd1t
            i_zbd2t       = wa_final-zbd2t
            i_zbd3t       = wa_final-zbd3t
            i_shkzg       = ' '
            i_rebzg       = ' '
    *   I_KOART       = 'D'
         IMPORTING
           e_faedt       = duedate.
        CALL FUNCTION 'DAYS_BETWEEN_TWO_DATES'
          EXPORTING
            i_datum_bis                   = duedate
            i_datum_von                   = wa_final-bldat
    *   I_KZ_EXCL_VON                 = '0'
    *   I_KZ_INCL_BIS                 = '0'
    *   I_KZ_ULT_BIS                  = ' '
    *   I_KZ_ULT_VON                  = ' '
    *   I_STGMETH                     = '0'
    *   I_SZBMETH                     = '1'
         IMPORTING
           e_tage                        = days
         EXCEPTIONS
           days_method_not_defined       = 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.
        wa_final-days = duedate.
        DATA : wf_char TYPE char10.
        wf_char = days.
        IF wf_char+0(1) EQ '*' .
          SKIP.
        ELSE.
          IF days EQ 0.
            wa_final-current = wa_bsik-wrbtr.
          ELSEIF days LE 30 AND days GT 0.
            wa_final-d30 = wa_bsik-wrbtr.
          ELSEIF days LE 60 AND days GT 30 .
            wa_final-d60 = wa_bsik-wrbtr.
          ELSEIF days LE 90 AND days GT 60.
            wa_final-d90 = wa_bsik-wrbtr.
          ELSEIF days LE 120 AND days GT 90.
            wa_final-d120 = wa_bsik-wrbtr.
          ELSEIF days LE 180 AND days GT 120.
            wa_final-d180 = wa_bsik-wrbtr.
          ELSEIF days LE 240 AND days GT 180.
            wa_final-d240 = wa_bsik-wrbtr.
          ELSEIF days LE 360 AND days GT 240.
            wa_final-d360 = wa_bsik-wrbtr.
          ELSEIF days GT 365 .
            wa_final-da365 = wa_bsik-wrbtr.
          ENDIF.
        ENDIF.
        APPEND wa_final TO gt_final.
        CLEAR: wa_final,
               days,
               duedate,days1.
      ENDLOOP.
    ENDFORM.                    " data_retrival
    *&      Form  fill_fieldcat
    *       text
    FORM fill_fieldcat.
      PERFORM  fill_fields USING: 'Vendor Number' 'LIFNR',
                                  'Vendor Name' 'NAME1',
                                  'Document Number' 'BELNR',
                                  'Document Date' 'BLDAT',
                                  'Due Date' 'DAYS',
                                  'Total In Document Currency' 'WRBTR',
                                  'Currency' 'WAERS',
                                  'Total In Reporting Currency' 'DMBTR',
                                  'Current' 'CURRENT',
                                  '1-30 days' 'D30',
                                  '31-60 days' 'D60',
                                  '61-90 days' 'D90',
                                  '91-120 days' 'D120',
                                  '121-180 days' 'D180',
                                  '181-240 days' 'D240',
                                  '241-360 days'  'D360',
    *                              '181-365 days' 'D365',
                                  'Above 365 days' 'DA365'.
    ENDFORM.                    "fill_fieldcat
    *&      Form  fill_fieldcat_sum
    *       text
    FORM fill_fieldcat_sum.
      PERFORM  fill_fields USING: 'Vendor Number' 'LIFNR',
                                  'Vendor Name' 'NAME1',
                                  'Total In Reporting Currency' 'DMBTR',
                                  'Current' 'CURRENT',
                                  '1-30 days' 'D30',
                                  '31-60 days' 'D60',
                                  '61-90 days' 'D90',
                                  '91-120 days' 'D120',
                                  '121-180 days' 'D180',
                                  '181-240 days' 'D240',
                                  '241-360 days'  'D360',
                                  'Above 365 days' 'DA365'.
    ENDFORM.                    "fill_fieldcat_sum
    *&      Form  fill_fields
    *       text
    *      -->&01        text
    *      -->&02        text
    FORM fill_fields USING &01 &02 .
      wa_fieldcat-tabname = 'T_OUTPUT'.  "t_output_provgr
      wa_fieldcat-fieldname = &02.
      wa_fieldcat-seltext_m = &01.
    *  wa_fieldcat-ref_fieldname = fieldname.
    *  wa_fieldcat-ref_tabname = 'SFLIGHT'.
    *  w_fieldcat-do_sum = &03.
      APPEND wa_fieldcat TO i_fieldcat.
      CLEAR wa_fieldcat.
    ENDFORM.                    "fill_fields
    *&      Form  f_layout_init
    *       Set the layout
    FORM f_layout_init.
    *  P_layout-min_linesize       = 170.
    *  p_layout-max_linesize       = 170.
    *  P_layout-no_colhead         = abap_true.
    *  p_layout-detail_popup       = abap_true.
      i_layout-colwidth_optimize  = abap_true.
      i_layout-zebra              = abap_true.
    *  i_layout-subtotals_text     = 'SubTotal'.
    *  i_layout-totals_text        = 'Total'.
    ENDFORM.                    " f_layout_init
    *&      Form  f_eventtab_build
    *       Set the events
    FORM f_eventtab_build.
      DATA: ls_event TYPE slis_alv_event.
      CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
        EXPORTING
          i_list_type = 0
        IMPORTING
          et_events   = i_events.
      READ TABLE i_events WITH KEY name = slis_ev_top_of_page
                               INTO ls_event.
      IF sy-subrc = 0.
        MOVE v_top TO: ls_event-form,
                       ls_event-name.
        APPEND ls_event TO i_events.
      ENDIF.
      READ TABLE i_events WITH KEY name = slis_ev_end_of_page
                               INTO ls_event.
      IF sy-subrc = 0.
        MOVE v_eop TO: ls_event-form,
                       ls_event-name.
        APPEND ls_event TO i_events.
      ENDIF.
      READ TABLE i_events WITH KEY name = slis_ev_end_of_list
                               INTO ls_event.
      IF sy-subrc = 0.
        MOVE v_eol TO: ls_event-form,
                       ls_event-name.
        APPEND ls_event TO i_events.
      ENDIF.
      READ TABLE i_events WITH KEY name = slis_ev_top_of_list
                               INTO ls_event.
      IF sy-subrc = 0.
        MOVE v_tol TO: ls_event-form,
                       ls_event-name.
        APPEND ls_event TO i_events.
      ENDIF.
    ENDFORM.                    " f_eventtab_build
    *&      Form  f_print_control
    *       Set the print control
    FORM f_print_control .
    *  i_print-no_print_listinfos     = abap_true.
    *  i_print-no_print_selinfos      = abap_true.
    *  i_print-reserve_lines          = 2.
    *  i_print-no_change_print_params = abap_true.
    ENDFORM.                    " f_print_control
    *&      Form  f_build_header_list
    *       Build the header list (top of page)
    FORM f_build_header_list .
      lv_header = 'Vendor Open Item Analysis By Balance Of Overdue Items'(h01).
      lv_text   = 'Company Name:'(s01).
      lv_text1   = 'Open Item As Key Date:'(s02).
      lv_text2   = 'Company Code:'(s03).
      lv_text3   =  'Vendor Number:'(s04).
      lv_text4   =  'Vendor Name:'(s05).
    * Header
      CLEAR lwa_list_top.
      lwa_list_top-typ  = 'H'.
      lwa_list_top-info = lv_header.
      APPEND lwa_list_top TO i_list_top.
    * Run date Display
      lwa_list_top-typ  = 'S'.                " Item
      WRITE: sy-datum  TO lv_date MM/DD/YYYY.
      lwa_list_top-key = 'Date :'(025).
      lwa_list_top-info = lv_date.
      APPEND lwa_list_top TO i_list_top.
      CLEAR: lwa_list_top,
             lv_date.
    * Run time Display
      lwa_list_top-typ  = 'S'.                " Item
      WRITE: sy-uzeit  TO lv_time USING EDIT MASK '__:__:__'.
      lwa_list_top-key  = 'Time :'(026).
      lwa_list_top-info =  lv_time.
      APPEND lwa_list_top TO i_list_top.
      CLEAR: lwa_list_top,
             lv_time.
      CLEAR lwa_list_top.
    * Company Name
      lwa_list_top-typ  = 'S'.
      lwa_list_top-key  = lv_text.
      lwa_list_top-info = lv_butxt.
      APPEND lwa_list_top TO i_list_top.
      CLEAR lwa_list_top.
    *Open Item As Key Date
      lwa_list_top-typ  = 'S'.
      lwa_list_top-key  = lv_text1.
      lwa_list_top-info = p_bldat.
      APPEND lwa_list_top TO i_list_top.
      CLEAR lwa_list_top.
    * Company Code
      lwa_list_top-typ  = 'S'.
      lwa_list_top-key  = lv_text2.
      lwa_list_top-info = s_bukrs-low.
      APPEND lwa_list_top TO i_list_top.
      CLEAR lwa_list_top.
    ** Vendor Number
    *  lwa_list_top-typ  = 'S'.
    *  lwa_list_top-key  = lv_text3.
    *  lwa_list_top-info = lv_butxt2.
    *  APPEND lwa_list_top TO i_list_top.
    *  CLEAR lwa_list_top.
    **Vendor Name
    *  lwa_list_top-typ  = 'S'.
    *  lwa_list_top-key  = lv_text4.
    *  lwa_list_top-info = lv_butxt1.
    *  APPEND lwa_list_top TO i_list_top.
    ENDFORM.                    " f_build_header_list
    *&      Form  f_build_header_list1
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM f_build_header_list1 .
      lv_header = 'Vendor Open Item Analysis By Balance Of Overdue Items'(h01).
      lv_text   = 'Company Name:'(s01).
      lv_text1   = 'Open Item As Key Date:'(s02).
      lv_text2   = 'Company Code:'(s03).
      lv_text3   =  'Vendor Number:'(s04).
      lv_text4   =  'Vendor Name:'(s05).
      lwa_list_top-typ  = 'H'.
      lwa_list_top-info = lv_header.
      APPEND lwa_list_top TO i_list_top.
    * Run date Display
      lwa_list_top-typ  = 'S'.                " Item
      WRITE: sy-datum  TO lv_date MM/DD/YYYY.
      lwa_list_top-key = 'Date :'(025).
      lwa_list_top-info = lv_date.
      APPEND lwa_list_top TO i_list_top.
      CLEAR: lwa_list_top,
             lv_date.
    * Run time Display
      lwa_list_top-typ  = 'S'.                " Item
      WRITE: sy-uzeit  TO lv_time USING EDIT MASK '__:__:__'.
      lwa_list_top-key  = 'Time :'(026).
      lwa_list_top-info =  lv_time.
      APPEND lwa_list_top TO i_list_top.
      CLEAR: lwa_list_top,
             lv_time.
      CLEAR lwa_list_top.
    * Company Name
      lwa_list_top-typ  = 'S'.
      lwa_list_top-key  = lv_text.
      lwa_list_top-info = lv_butxt.
      APPEND lwa_list_top TO i_list_top.
      CLEAR lwa_list_top.
    *Open Item As Key Date
      lwa_list_top-typ  = 'S'.
      lwa_list_top-key  = lv_text1.
      lwa_list_top-info = p_bldat.
      APPEND lwa_list_top TO i_list_top.
      CLEAR lwa_list_top.
    ENDFORM.                    " f_build_header_list1
    *&      Form  f_build_sort
    *       Set the sorting sequence
    FORM f_build_sort .
      DATA: l_sort TYPE slis_sortinfo_alv.
      l_sort-spos      =  '1'.
      l_sort-fieldname = 'LIFNR'.
      l_sort-up        = abap_true.
      l_sort-group     = '*'.
    *  l_sort-subtot    = 'X'.
      APPEND l_sort TO i_sort.
    *  l_sort-spos      =  '2'.
    *  l_sort-fieldname = 'NAME1'.
    *  l_sort-up        = abap_true.
    *  l_sort-group     = '*'.
    **  l_sort-subtot    = 'X'.
    *  APPEND l_sort TO i_sort.
    *  l_sort-spos      =  '2'.
    *  l_sort-fieldname = 'LIFNR'.
    *  l_sort-up        = abap_true.
    *  l_sort-subtot    = abap_true.
    *  APPEND l_sort TO i_sort.
    *  l_sort-spos      =  '1'.
    *  l_sort-fieldname = 'VBELN'.
    *  l_sort-up        = abap_true.
    *  l_sort-subtot    = abap_true.
    *  APPEND l_sort TO i_sort.
    *  l_sort-spos      =  '2'.
    *  l_sort-fieldname = 'POSNR'.
    *  l_sort-up        = abap_true.
    *  l_sort-subtot    = abap_true.
    *  APPEND l_sort TO i_sort.
    ENDFORM.                    " f_build_sort
    *&      Form  f_list_display
    *       Display the ALV list report
    *      -->PT_DATA    Internal table containing the data
    FORM f_list_display TABLES pt_data.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          i_callback_program = i_variant-report
          is_layout          = i_layout
          it_fieldcat        = i_fieldcat[]
          it_sort            = i_sort
          i_default          = 'X'
          i_save             = 'A'
          is_variant         = i_variant
          it_events          = i_events[]
          is_print           = i_print
        TABLES
          t_outtab           = pt_data.
    ENDFORM.                    "f_list_display
    *&      Form  TOP_OF_PAGE
    *       TOP_OF_PAGE Event
    FORM top_of_page.                                           "#EC CALLED
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
        EXPORTING
    *      i_logo             = 'ZLOGO_BAB'
          it_list_commentary = i_list_top
          i_alv_form         = 'X'.
    *  PERFORM f_print_header USING SPACE SPACE SPACE.
    ENDFORM.                    "TOP_OF_PAGE
    *&      Form  END_OF_PAGE
    *       END_OF_PAGE Event
    FORM end_of_page.                                           "#EC CALLED
    *  DATA: l_pos(3) TYPE n VALUE 0,
    *        l_foot(30) VALUE '*** END OF PAGE ***'.
    *  l_pos = ( sy-linsz / 2 ) - ( STRLEN( l_foot ) / 2 ).
    *  ULINE.
    *  WRITE: /, AT l_pos l_foot.
    ENDFORM.                    "END_OF_PAGE
    *&      Form  END_OF_LIST
    *       END_OF_LIST Event
    FORM end_of_list.                                           "#EC CALLED
    *  DATA: l_pos(3) TYPE n VALUE 0,
    *        l_foot(30) VALUE '*** END OF REPORT ***'.
    *  l_pos = ( sy-linsz / 2 ) - ( STRLEN( l_foot ) / 2 ).
    *  ULINE.
    *  WRITE: /, AT l_pos l_foot.
    ENDFORM.                    "END_OF_LIST
    *&      Form  f_print_header
    *       Print the header (Top-Of-Page)
    *      -->P_P_TITLE1  Title text 1
    *      -->P_P_TITLE2  Title text 2
    *      -->P_P_TITLE3  Title text 3
    FORM f_print_header  USING    p_title1 LIKE sy-title
                                  p_title2 LIKE sy-title
                                  p_title3 LIKE sy-title.
      DATA: l_post1 TYPE i,
            l_post2 TYPE i,
            l_post3 TYPE i,
            l_posin TYPE i.
      l_post1 = ( sy-linsz / 2 ) - ( STRLEN( p_title1 ) / 2 ).
      l_post2 = ( sy-linsz / 2 ) - ( STRLEN( p_title2 ) / 2 ).
      l_post3 = ( sy-linsz / 2 ) - ( STRLEN( p_title3 ) / 2 ).
      l_posin = sy-linsz - 17.
      WRITE:  / 'Report  :', sy-cprog.
      WRITE AT  l_post1 p_title1.
      WRITE AT  l_posin 'Date :'.
      WRITE     sy-datum.
      WRITE:  / 'Cli/Sys :', sy-mandt, '/', sy-sysid.
      WRITE AT  l_post2 p_title2.
      WRITE AT: l_posin 'Time :'.
      WRITE     sy-uzeit.
      WRITE:  / 'UserID  :', sy-uname.
      WRITE AT  l_post3 p_title3.
      WRITE AT  l_posin 'Page :'.
      WRITE     sy-pagno NO-ZERO.
    ENDFORM.                    " f_print_header
    *&      Form  f_build_sort1
    *       text
    *  -->  p1        text
    *  <--  p2        text
    form f_build_sort1 .
    DATA: l_sort TYPE slis_sortinfo_alv.
      l_sort-spos      =  '1'.
      l_sort-fieldname = 'LIFNR'.
      l_sort-up        = abap_true.
      l_sort-group     = '*'.
    *  l_sort-subtot    = 'X'.
      APPEND l_sort TO i_sort.
    l_sort-spos      =  '2'.
      l_sort-fieldname = 'NAME1'.
      l_sort-up        = abap_true.
      l_sort-group     = '*'.
    *  l_sort-subtot    = 'X'.
      APPEND l_sort TO i_sort.
    *  l_sort-spos      =  '3'.
    *  l_sort-fieldname = 'DMBTR'.
    *  l_sort-up        = abap_true.
    *  l_sort-group     = '*'.
    *  l_sort-subtot    = 'X'.
    *  APPEND l_sort TO i_sort.
    endform.                    " f_build_sort1
    Regards
    Sunita.

    Hey,
    U can try out "SORTING THE VENDORS AND DO THE SUM in the NETWR"... try it out....see u sort the customers...rit?...keep it as usual and little mentoned above...
    hope dis help u out...
    Thanks.

  • Checkbox field in ALV for REUSE_ALV_GRID_DISPLAY

    how to handle Checkbox field in ALV for REUSE_ALV_GRID_DISPLAY????
    For example Alv has displayed 400 entries if user checks 4 entries and wants to donwload only those 4 entries from ALV using Copy to local file option then how should it be done. please provide some help...

    REPORT  YHRMR_LTC_TAXABLE NO STANDARD PAGE HEADING LINE-SIZE 120.
    TYPE-POOLS: SLIS.
    Start of Data Declaration                                            *
    DATA: G_PLVAR               TYPE PLVAR.
    DATA: P_MONTH               TYPE TFMATAGE.
    DATA: TOTAL_NO              TYPE I.
    DATA: TOTAL_NO_SUM          TYPE I.
    DATA: COUNT_15              TYPE I.
    DATA: COUNT_15_SUM          TYPE I.
    DATA: COUNT_LTC             TYPE I.
    DATA: COUNT_LTC_SUM         TYPE I.
    DATA: COUNT_ERROR_IT15      TYPE I.
    DATA: COUNT_ERROR_IT15_SUM  TYPE I.
    DATA: COUNT_ERROR_LTC       TYPE I.
    DATA: COUNT_ERROR_LTC_SUM   TYPE I.
    DATA: COUNT_ENTRY_IT15      TYPE I.
    DATA: COUNT_ENTRY_IT15_SUM  TYPE I.
    --LOCAL TABLE TYPE--
    DATA: T_DATA_LTC     LIKE YHRMT_LTC OCCURS 0 WITH HEADER LINE.
    DATA: T_DATA_LTC_NEW LIKE YHRMT_LTC OCCURS 0 WITH HEADER LINE.
    DATA: T_PA0015 LIKE PA0015 OCCURS 0 WITH HEADER LINE.
    DATA: T_P0015 LIKE PA0015 OCCURS 0 WITH HEADER LINE.
    DATA: BEGIN OF T_FINAL OCCURS 0,
          CHECK_BOX(1),
          MANDT        TYPE MANDT,
          PERNR        TYPE PERSNO,
          ABKRS        TYPE ABKRS,
          PERSK        TYPE PERSK,
          WAGETYPE     TYPE LGART,
          LTCSTART     TYPE YAJAHR,
          LTCEND       TYPE YYAJAHR,
          FLAG         TYPE YCHAR1,
          SEQNR        TYPE SEQNR,
          LEVSTART     TYPE URBEG,
          LEVEND       TYPE BDATU_052R,
          PAYDATE      TYPE YBEGDA,
          AMOUNTPAY    TYPE AMUNT,
          TAXYR        TYPE PHK_TAXYR,
          DOCUNO       TYPE YCHAR20,
          DOCUDATE     TYPE YENDDA,
          VOUCHNO      TYPE YCHAR20,
          APDATE       TYPE BPS_APPDA,
          CANCEL_MOD   TYPE YCANCELMOD,
          LTC_IND      TYPE ATZH1,
          APPL_TAG     TYPE YAPPTAG,
          CANCEL_DATE  TYPE AEDTM,
          CANCEL_USER  TYPE AENAM,
          LASTCHANGE   TYPE AEDTM,
          USERNAME     TYPE AENAM,
          END OF T_FINAL.
    DATA: BEGIN OF T_PA0001 OCCURS 0,
          PERNR LIKE PA0001-PERNR,
          ABKRS LIKE PA0001-ABKRS,
          END OF T_PA0001.
    --Message Part Declaration--
    DATA: BEGIN OF T_SUCCESS OCCURS 0,
          PERNR       TYPE PERSNO,
          MESSAGE(50) TYPE C,
          END OF T_SUCCESS.
    DATA: BEGIN OF T_ERROR OCCURS 0,
          PERNR       TYPE PERSNO,
          MESSAGE(50)  TYPE C,
          END OF T_ERROR.
    --TABLE TYPE OF SLIS TYPE-GROUP--
    DATA: G_FLD TYPE SLIS_T_FIELDCAT_ALV,
          G_EV TYPE SLIS_T_EVENT,
          G_SORT TYPE SLIS_T_SORTINFO_ALV,
          G_LST TYPE SLIS_T_LISTHEADER.
    DATA: FIELDCATALOG TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,
          GD_TAB_GROUP TYPE SLIS_T_SP_GROUP_ALV,
          GD_LAYOUT    TYPE SLIS_LAYOUT_ALV,
          I_EVENTS TYPE SLIS_T_EVENT,
          GD_REPID     LIKE SY-REPID.
    --STRUCTURE TYPE OF SLIS TYPE-GROUP--
    DATA: L_EV TYPE SLIS_ALV_EVENT.
    CONSTANTS : C_PF TYPE SLIS_FORMNAME VALUE 'PF_STATUS_SET',
                C_UCOM TYPE SLIS_FORMNAME VALUE 'USER_COMMAND'.
    *---- Start Change by Bibek/Shankar Dated : 12-03-2008 via cmr no : J/08/03/062/1.
    DATA: L_ENDDATE   LIKE SY-DATUM.
    *---- End   Change by Bibek/Shankar Dated : 12-03-2008 via cmr no : J/08/03/062/1.
    End of Data Declaration                                              *
    Start of Selection screen Parameters                                 *
    SELECTION-SCREEN BEGIN OF BLOCK A WITH FRAME TITLE TEXT-002.
    *START CHANGE BY SHAYARI ON 18.02.2008, CMR No.:- J/08/02/323
    PARAMETERS:P_ABKRS LIKE PA0001-ABKRS OBLIGATORY.
    *END CHANGE BY SHAYARI ON 18.02.2008,  CMR No.:- J/08/02/323
    *START CHANGE BY BIBEk Dt : 06.03.2008, CMR No.:- J/08/03/062/1
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN POSITION 1.
    SELECTION-SCREEN COMMENT 1(78) TEXT-006 FOR FIELD P_LES.
    PARAMETER P_LES RADIOBUTTON GROUP RB1.
    SELECTION-SCREEN END OF LINE.
    *END CHANGE BY BIBEk Dt : 06.03.2008, CMR No.:- J/08/03/062/1
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN POSITION 1.
    SELECTION-SCREEN COMMENT 1(78) TEXT-003 FOR FIELD P_ONE.
    PARAMETER P_ONE RADIOBUTTON GROUP RB1.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN POSITION 1.
    SELECTION-SCREEN COMMENT 1(78) TEXT-004 FOR FIELD P_TWO.
    PARAMETER P_TWO  RADIOBUTTON GROUP RB1.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN POSITION 1.
    SELECTION-SCREEN COMMENT 1(78) TEXT-005 FOR FIELD P_MORE.
    PARAMETER P_MORE RADIOBUTTON GROUP RB1.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN END OF BLOCK A.
    End of Selection screen Parameters                                   *
    *Get Plan Version
    CALL FUNCTION 'RH_GET_PLVAR'
      IMPORTING
        PLVAR = G_PLVAR.
    PERFORM CLEAR.
    CALL FUNCTION 'HR_JP_MONTH_BEGIN_END_DATE'
      EXPORTING
        IV_DATE                   = SY-DATUM
    IMPORTING
      EV_MONTH_BEGIN_DATE       =
        EV_MONTH_END_DATE         = L_ENDDATE.
    SELECT *
      FROM YHRMT_LTC
      INTO TABLE T_DATA_LTC
    WHERE FLAG   = '1'
       AND WAGETYPE = '1640'
       AND LEVEND LE L_ENDDATE
       AND PAYDATE GE '20080101'.
    If SY-SUBRC <> 0.
    MESSAGE I398(00) with 'No Records to display '.
    ENDIF.
    DELETE T_DATA_LTC WHERE LEVEND = '00000000'.
    *START CHANGE BY BIBEk Dt : 06.03.2008, CMR No.:- J/08/03/062/1
    *For Less Than One Month from Leave End Date
    IF P_LES = 'X'.
      LOOP AT T_DATA_LTC.
        CLEAR P_MONTH.
        CALL FUNCTION 'HR_AUPBS_MONTH_DAY'
          EXPORTING
            BEG_DA   = T_DATA_LTC-LEVEND
            END_DA   = SY-DATUM
          IMPORTING
            NO_MONTH = P_MONTH.
        IF P_MONTH LT '1'.
          T_FINAL-MANDT       =  T_DATA_LTC-MANDT.
          T_FINAL-PERNR       =  T_DATA_LTC-PERSONNELNO.
          T_FINAL-PERSK       =  T_DATA_LTC-PERSK.
          T_FINAL-WAGETYPE    =  T_DATA_LTC-WAGETYPE.
          T_FINAL-LTCSTART    =  T_DATA_LTC-LTCSTART.
          T_FINAL-LTCEND      =  T_DATA_LTC-LTCEND.
          T_FINAL-FLAG        =  T_DATA_LTC-FLAG.
          T_FINAL-SEQNR       =  T_DATA_LTC-SEQNR.
          T_FINAL-LEVSTART    =  T_DATA_LTC-LEVSTART.
          T_FINAL-LEVEND      =  T_DATA_LTC-LEVEND.
          T_FINAL-PAYDATE     =  T_DATA_LTC-PAYDATE.
          T_FINAL-AMOUNTPAY   =  T_DATA_LTC-AMOUNTPAY.
          T_FINAL-TAXYR       =  T_DATA_LTC-TAXYR.
          T_FINAL-DOCUNO      =  T_DATA_LTC-DOCUNO.
          T_FINAL-DOCUDATE    =  T_DATA_LTC-DOCUDATE.
          T_FINAL-VOUCHNO     =  T_DATA_LTC-VOUCHNO.
          T_FINAL-APDATE      =  T_DATA_LTC-APDATE.
          T_FINAL-CANCEL_MOD  =  T_DATA_LTC-CANCEL_MOD.
          T_FINAL-LTC_IND     =  T_DATA_LTC-LTC_IND.
          T_FINAL-APPL_TAG    =  T_DATA_LTC-APPL_TAG.
          T_FINAL-CANCEL_DATE =  T_DATA_LTC-CANCEL_DATE.
          T_FINAL-CANCEL_USER =  T_DATA_LTC-CANCEL_USER.
          T_FINAL-LASTCHANGE  =  T_DATA_LTC-LASTCHANGE.
          T_FINAL-USERNAME    =  T_DATA_LTC-USERNAME.
          APPEND T_FINAL.
          CLEAR  T_FINAL.
        ENDIF.
      ENDLOOP.
    *For One Month from Leave End Date
    ELSEIF P_ONE = 'X'.
      LOOP AT T_DATA_LTC.
        CLEAR P_MONTH.
        CALL FUNCTION 'HR_AUPBS_MONTH_DAY'
          EXPORTING
            BEG_DA   = T_DATA_LTC-LEVEND
            END_DA   = SY-DATUM
          IMPORTING
            NO_MONTH = P_MONTH.
        IF P_MONTH EQ '1' AND P_MONTH LT '2'.
          T_FINAL-MANDT       =  T_DATA_LTC-MANDT.
          T_FINAL-PERNR       =  T_DATA_LTC-PERSONNELNO.
          T_FINAL-PERSK       =  T_DATA_LTC-PERSK.
          T_FINAL-WAGETYPE    =  T_DATA_LTC-WAGETYPE.
          T_FINAL-LTCSTART    =  T_DATA_LTC-LTCSTART.
          T_FINAL-LTCEND      =  T_DATA_LTC-LTCEND.
          T_FINAL-FLAG        =  T_DATA_LTC-FLAG.
          T_FINAL-SEQNR       =  T_DATA_LTC-SEQNR.
          T_FINAL-LEVSTART    =  T_DATA_LTC-LEVSTART.
          T_FINAL-LEVEND      =  T_DATA_LTC-LEVEND.
          T_FINAL-PAYDATE     =  T_DATA_LTC-PAYDATE.
          T_FINAL-AMOUNTPAY   =  T_DATA_LTC-AMOUNTPAY.
          T_FINAL-TAXYR       =  T_DATA_LTC-TAXYR.
          T_FINAL-DOCUNO      =  T_DATA_LTC-DOCUNO.
          T_FINAL-DOCUDATE    =  T_DATA_LTC-DOCUDATE.
          T_FINAL-VOUCHNO     =  T_DATA_LTC-VOUCHNO.
          T_FINAL-APDATE      =  T_DATA_LTC-APDATE.
          T_FINAL-CANCEL_MOD  =  T_DATA_LTC-CANCEL_MOD.
          T_FINAL-LTC_IND     =  T_DATA_LTC-LTC_IND.
          T_FINAL-APPL_TAG    =  T_DATA_LTC-APPL_TAG.
          T_FINAL-CANCEL_DATE =  T_DATA_LTC-CANCEL_DATE.
          T_FINAL-CANCEL_USER =  T_DATA_LTC-CANCEL_USER.
          T_FINAL-LASTCHANGE  =  T_DATA_LTC-LASTCHANGE.
          T_FINAL-USERNAME    =  T_DATA_LTC-USERNAME.
          APPEND T_FINAL.
          CLEAR  T_FINAL.
        ENDIF.
      ENDLOOP.
    *For Two Month from Leave End Date
    ELSEIF P_TWO = 'X'.
      LOOP AT T_DATA_LTC.
        CLEAR P_MONTH.
        CALL FUNCTION 'HR_AUPBS_MONTH_DAY'
          EXPORTING
            BEG_DA   = T_DATA_LTC-LEVEND
            END_DA   = SY-DATUM
          IMPORTING
            NO_MONTH = P_MONTH.
        IF P_MONTH EQ '2' AND P_MONTH LT '3'.
          T_FINAL-MANDT       =  T_DATA_LTC-MANDT.
          T_FINAL-PERNR       =  T_DATA_LTC-PERSONNELNO.
          T_FINAL-PERSK       =  T_DATA_LTC-PERSK.
          T_FINAL-WAGETYPE    =  T_DATA_LTC-WAGETYPE.
          T_FINAL-LTCSTART    =  T_DATA_LTC-LTCSTART.
          T_FINAL-LTCEND      =  T_DATA_LTC-LTCEND.
          T_FINAL-FLAG        =  T_DATA_LTC-FLAG.
          T_FINAL-SEQNR       =  T_DATA_LTC-SEQNR.
          T_FINAL-LEVSTART    =  T_DATA_LTC-LEVSTART.
          T_FINAL-LEVEND      =  T_DATA_LTC-LEVEND.
          T_FINAL-PAYDATE     =  T_DATA_LTC-PAYDATE.
          T_FINAL-AMOUNTPAY   =  T_DATA_LTC-AMOUNTPAY.
          T_FINAL-TAXYR       =  T_DATA_LTC-TAXYR.
          T_FINAL-DOCUNO      =  T_DATA_LTC-DOCUNO.
          T_FINAL-DOCUDATE    =  T_DATA_LTC-DOCUDATE.
          T_FINAL-VOUCHNO     =  T_DATA_LTC-VOUCHNO.
          T_FINAL-APDATE      =  T_DATA_LTC-APDATE.
          T_FINAL-CANCEL_MOD  =  T_DATA_LTC-CANCEL_MOD.
          T_FINAL-LTC_IND     =  T_DATA_LTC-LTC_IND.
          T_FINAL-APPL_TAG    =  T_DATA_LTC-APPL_TAG.
          T_FINAL-CANCEL_DATE =  T_DATA_LTC-CANCEL_DATE.
          T_FINAL-CANCEL_USER =  T_DATA_LTC-CANCEL_USER.
          T_FINAL-LASTCHANGE  =  T_DATA_LTC-LASTCHANGE.
          T_FINAL-USERNAME    =  T_DATA_LTC-USERNAME.
          APPEND T_FINAL.
          CLEAR  T_FINAL.
        ENDIF.
      ENDLOOP.
    *For More than Two Month from Leave End Date
    ELSEIF P_MORE = 'X'.
      LOOP AT T_DATA_LTC.
        CLEAR P_MONTH.
        CALL FUNCTION 'HR_AUPBS_MONTH_DAY'
          EXPORTING
            BEG_DA   = T_DATA_LTC-LEVEND
            END_DA   = SY-DATUM
          IMPORTING
            NO_MONTH = P_MONTH.
        IF P_MONTH GT '2' .
          T_FINAL-MANDT       =  T_DATA_LTC-MANDT.
          T_FINAL-PERNR       =  T_DATA_LTC-PERSONNELNO.
          T_FINAL-PERSK       =  T_DATA_LTC-PERSK.
          T_FINAL-WAGETYPE    =  T_DATA_LTC-WAGETYPE.
          T_FINAL-LTCSTART    =  T_DATA_LTC-LTCSTART.
          T_FINAL-LTCEND      =  T_DATA_LTC-LTCEND.
          T_FINAL-FLAG        =  T_DATA_LTC-FLAG.
          T_FINAL-SEQNR       =  T_DATA_LTC-SEQNR.
          T_FINAL-LEVSTART    =  T_DATA_LTC-LEVSTART.
          T_FINAL-LEVEND      =  T_DATA_LTC-LEVEND.
          T_FINAL-PAYDATE     =  T_DATA_LTC-PAYDATE.
          T_FINAL-AMOUNTPAY   =  T_DATA_LTC-AMOUNTPAY.
          T_FINAL-TAXYR       =  T_DATA_LTC-TAXYR.
          T_FINAL-DOCUNO      =  T_DATA_LTC-DOCUNO.
          T_FINAL-DOCUDATE    =  T_DATA_LTC-DOCUDATE.
          T_FINAL-VOUCHNO     =  T_DATA_LTC-VOUCHNO.
          T_FINAL-APDATE      =  T_DATA_LTC-APDATE.
          T_FINAL-CANCEL_MOD  =  T_DATA_LTC-CANCEL_MOD.
          T_FINAL-LTC_IND     =  T_DATA_LTC-LTC_IND.
          T_FINAL-APPL_TAG    =  T_DATA_LTC-APPL_TAG.
          T_FINAL-CANCEL_DATE =  T_DATA_LTC-CANCEL_DATE.
          T_FINAL-CANCEL_USER =  T_DATA_LTC-CANCEL_USER.
          T_FINAL-LASTCHANGE  =  T_DATA_LTC-LASTCHANGE.
          T_FINAL-USERNAME    =  T_DATA_LTC-USERNAME.
          APPEND T_FINAL.
          CLEAR  T_FINAL.
        ENDIF.
      ENDLOOP.
    ENDIF.
    ****Payroll Area Put
    SELECT PERNR ABKRS FROM PA0001
    INTO CORRESPONDING FIELDS OF TABLE T_PA0001
    FOR ALL ENTRIES IN T_FINAL
    WHERE PERNR = T_FINAL-PERNR
    AND ABKRS = P_ABKRS
    AND BEGDA LE SY-DATUM
    AND ENDDA GE SY-DATUM.
    LOOP AT T_FINAL.
      READ TABLE T_PA0001 WITH KEY PERNR = T_FINAL-PERNR.
      IF SY-SUBRC = 0.
        T_FINAL-ABKRS = T_PA0001-ABKRS.
        MODIFY T_FINAL.
        CLEAR  T_FINAL.
      ENDIF.
    ENDLOOP.
    CLEAR T_FINAL.
    DELETE T_FINAL WHERE ABKRS = ''.
    *Output Form ALV List
    PERFORM ALV.
    *&      Form  ALV
    FORM ALV .
      PERFORM BUILD_FIELDCATALOG.
      PERFORM BUILD_EVENT.
      PERFORM DISPLAY_DATA.
    ENDFORM.                    " ALV
    *&      Form  BUILD_FIELDCATALOG
    FORM BUILD_FIELDCATALOG .
      FIELDCATALOG-TABNAME     = 'T_FINAL'.
      FIELDCATALOG-FIELDNAME   = 'PERNR'.
      FIELDCATALOG-SELTEXT_M   = 'Personnel number'.
      FIELDCATALOG-COL_POS     = 1.
      FIELDCATALOG-OUTPUTLEN   = 17.
      APPEND FIELDCATALOG TO FIELDCATALOG.
      CLEAR  FIELDCATALOG.
      FIELDCATALOG-TABNAME     = 'T_FINAL'.
      FIELDCATALOG-FIELDNAME   = 'ABKRS'.
      FIELDCATALOG-SELTEXT_M   = 'Payroll Area'.
      FIELDCATALOG-COL_POS     = 2.
      FIELDCATALOG-OUTPUTLEN   = 17.
      APPEND FIELDCATALOG TO FIELDCATALOG.
      CLEAR  FIELDCATALOG.
      FIELDCATALOG-TABNAME     = 'T_FINAL'.
      FIELDCATALOG-FIELDNAME   = 'LTCSTART'.
      FIELDCATALOG-SELTEXT_M   = 'LTC Start year'.
      FIELDCATALOG-COL_POS     = 3.
      FIELDCATALOG-OUTPUTLEN   = 15.
      APPEND FIELDCATALOG TO FIELDCATALOG.
      CLEAR  FIELDCATALOG.
      FIELDCATALOG-TABNAME     = 'T_FINAL'.
      FIELDCATALOG-FIELDNAME   = 'LTCEND'.
      FIELDCATALOG-SELTEXT_M   = 'LTC End year'.
      FIELDCATALOG-COL_POS     = 4.
      FIELDCATALOG-OUTPUTLEN   = 15.
      APPEND FIELDCATALOG TO FIELDCATALOG.
      CLEAR  FIELDCATALOG.
      FIELDCATALOG-TABNAME     = 'T_FINAL'.
      FIELDCATALOG-FIELDNAME   = 'LEVSTART'.
      FIELDCATALOG-SELTEXT_M   = 'Start of leave'.
      FIELDCATALOG-COL_POS     = 5.
      FIELDCATALOG-OUTPUTLEN   = 15.
      APPEND FIELDCATALOG TO FIELDCATALOG.
      CLEAR  FIELDCATALOG.
      FIELDCATALOG-TABNAME     = 'T_FINAL'.
      FIELDCATALOG-FIELDNAME   = 'LEVEND'.
      FIELDCATALOG-SELTEXT_M   = 'End of leave'.
      FIELDCATALOG-COL_POS     = 6.
      FIELDCATALOG-OUTPUTLEN   = 15.
      APPEND FIELDCATALOG TO FIELDCATALOG.
      CLEAR  FIELDCATALOG.
      FIELDCATALOG-TABNAME     = 'T_FINAL'.
      FIELDCATALOG-FIELDNAME   = 'AMOUNTPAY'.
      FIELDCATALOG-SELTEXT_M   = 'Amount'.
      FIELDCATALOG-DO_SUM      = 'X'.
      FIELDCATALOG-COL_POS     = 7.
      FIELDCATALOG-OUTPUTLEN   = 13.
      APPEND FIELDCATALOG TO FIELDCATALOG.
      CLEAR  FIELDCATALOG.
      FIELDCATALOG-TABNAME     = 'T_FINAL'.
      FIELDCATALOG-FIELDNAME   = 'PAYDATE'.
      FIELDCATALOG-SELTEXT_M   = 'Payment Date'.
      FIELDCATALOG-COL_POS     = 8.
      FIELDCATALOG-OUTPUTLEN   = 15.
      APPEND FIELDCATALOG TO FIELDCATALOG.
      CLEAR  FIELDCATALOG.
      FIELDCATALOG-TABNAME     = 'T_FINAL'.
      FIELDCATALOG-FIELDNAME   = 'APPL_TAG'.
      FIELDCATALOG-SELTEXT_M   = 'Application Tag '.
      FIELDCATALOG-COL_POS     = 9.
      FIELDCATALOG-OUTPUTLEN   = 15.
      APPEND FIELDCATALOG TO FIELDCATALOG.
      CLEAR  FIELDCATALOG.
    *Check Box Field Add
      CLEAR GD_LAYOUT.
      GD_LAYOUT-BOX_FIELDNAME = 'CHECK_BOX'.
      GD_LAYOUT-BOX_TABNAME = 'T_FINAL'.
    ENDFORM.                    " BUILD_FIELDCATALOG
    *&      Form  BUILD_EVENT
    FORM BUILD_EVENT .
    *Event Handler
      CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
        EXPORTING
          I_LIST_TYPE     = 0
        IMPORTING
          ET_EVENTS       = G_EV
        EXCEPTIONS
          LIST_TYPE_WRONG = 1
          OTHERS          = 2.
      IF SY-SUBRC <> 0.
      ELSE.
        READ TABLE G_EV INTO L_EV WITH KEY NAME = SLIS_EV_PF_STATUS_SET.
        IF SY-SUBRC = 0.
          MOVE C_PF TO L_EV-FORM.
          MODIFY G_EV FROM L_EV INDEX SY-TABIX TRANSPORTING FORM.
        ENDIF.
        READ TABLE G_EV INTO L_EV WITH KEY NAME = SLIS_EV_USER_COMMAND.
        IF SY-SUBRC = 0.
          MOVE C_UCOM TO L_EV-FORM.
          MODIFY G_EV FROM L_EV INDEX SY-TABIX TRANSPORTING FORM.
        ENDIF.
      ENDIF.
    ENDFORM.                    " BUILD_EVENT
    *&      Form  DISPLAY_DATA
    FORM DISPLAY_DATA .
      GD_REPID = SY-REPID.
      CLEAR I_EVENTS. REFRESH I_EVENTS.
      CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
        EXPORTING
          I_CALLBACK_PROGRAM       = GD_REPID
          I_CALLBACK_PF_STATUS_SET = C_PF
          I_CALLBACK_USER_COMMAND  = C_UCOM
          IS_LAYOUT                = GD_LAYOUT
          IT_FIELDCAT              = FIELDCATALOG[]
          IT_EVENTS                = G_EV
        TABLES
          T_OUTTAB                 = T_FINAL.
    ENDFORM.                    " DISPLAY_DATA
          FORM PF_STATUS_SET                                            *
    FORM PF_STATUS_SET USING RX_TAB TYPE SLIS_T_EXTAB.
      SET PF-STATUS 'LTC'.
    ENDFORM.                    "PF_STATUS_SET
          FORM USER_COMMAND                                             *
    FORM USER_COMMAND USING R_UCOM LIKE SY-UCOMM
                            RS_SELFIELD TYPE SLIS_SELFIELD.
      CASE R_UCOM.
        WHEN 'POST'.
          PERFORM POST_IT15_LTC_TABLE.
      ENDCASE.
    ENDFORM.                    "USER_COMMAND
    *&      Form  POST_IT15_LTC_TABLE
    FORM POST_IT15_LTC_TABLE .
    ENDFORM.                    " POST_IT15_LTC_TABLE
    *&      Form  clear
    FORM CLEAR .
      CLEAR   T_DATA_LTC.
      REFRESH T_DATA_LTC.
      CLEAR   T_DATA_LTC_NEW.
      REFRESH T_DATA_LTC_NEW.
      CLEAR   T_FINAL.
      REFRESH T_FINAL.
      CLEAR   T_PA0015.
      REFRESH T_PA0015.
      CLEAR   T_SUCCESS.
      REFRESH T_SUCCESS.
      CLEAR   T_ERROR.
      REFRESH T_ERROR.
      CLEAR G_PLVAR.
      CLEAR P_MONTH.
      CLEAR COUNT_15.
      CLEAR COUNT_15_SUM.
      CLEAR COUNT_LTC.
      CLEAR COUNT_LTC_SUM.
      CLEAR TOTAL_NO.
      CLEAR TOTAL_NO_SUM.
      CLEAR COUNT_ERROR_IT15.
      CLEAR COUNT_ERROR_IT15_SUM.
      CLEAR COUNT_ERROR_LTC.
      CLEAR COUNT_ERROR_LTC_SUM.
      CLEAR COUNT_ENTRY_IT15.
      CLEAR COUNT_ENTRY_IT15_SUM.
    ENDFORM.                    " clear

  • DB Table for Layout Variant in ALV report

    Please help me by providing the table name which will get an entry when we save Layout Variant in ALV(OO ALV grid) output.

    Hi,
    I have seen the table LTDX which is giving me the Variant names for a particular program. Hope this will help you.
    Database table is LTDX
    Database view is V_LTDX.
    Regards,
    Venaktesh

  • ALV Report - Field Overflow message in status Bar

    Hi
    I am trying to display ALV report , ALV report is displaying fine but on execution of report , an message in status bar is coming as "Field copy Number can not be totalled because of field overflow."
    Can anyone tell why such messgae is comming?
    Thanks,
    Debadatta

    Just a wild guess, treat the below as an example.
    Eg:
    assuming one field in the output is of length 2 type i.
    values: 20, 30, 60, 45.
    Totalling the values result as 155. but due to the length of the field as 2. We can encounter the overflow message.
      Considering the above example, manually total the values of your numerical columns and see if any of the column is execeeding the specified length.
    Regards
    Eswar
    Note: Reward if you find the info useful.

  • Action for ENTER KEY is not working in alv grid output (Classical)

    Hi Experts,
      I have searched SDN around 8 hours and could not get any help on my below issue.
      I am developing ALV report using function module (Classical ALV). ALV output has 4 input enable fields, if user enters data in any of those fields and clicks on enter button from key pad..the remaining fields needs to be filled automatically.
      I am facing the issue with enter key, even if i press enter key in the output there is no action and hence no user command triggered. May be i am using wrong funcion code in wrong way.
      Could any one tell me what function code can we assign for ENTER action in PF-STATUS?
    Regards,
    Murali Mohan

    Hi
    Try this simple code, it works fine:
    TYPE-POOLS: SLIS.
    DATA: BEGIN OF ITAB1 OCCURS 0,
           BUKRS LIKE T001-BUKRS,
           BUTXT LIKE T001-BUTXT,
          END OF ITAB1.
    DATA: GT_FIELDCAT   TYPE SLIS_T_FIELDCAT_ALV,
          GT_REPID    LIKE SY-REPID.
    START-OF-SELECTION.
      SELECT BUKRS BUTXT INTO TABLE ITAB1
         FROM T001.
    END-OF-SELECTION.
      GT_REPID = SY-REPID.
      CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
        EXPORTING
          I_PROGRAM_NAME     = GT_REPID
          I_INTERNAL_TABNAME = 'ITAB1'
          I_INCLNAME         = GT_REPID
        CHANGING
          CT_FIELDCAT        = GT_FIELDCAT.
      CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
        EXPORTING
          I_CALLBACK_PROGRAM       = GT_REPID
          I_CALLBACK_PF_STATUS_SET = 'SET_PF_STATUS'
          I_CALLBACK_USER_COMMAND  = 'USER_COMMAND'
          IT_FIELDCAT              = GT_FIELDCAT
        TABLES
          T_OUTTAB                 = ITAB1.
    FORM USER_COMMAND USING R_UCOMM     LIKE SY-UCOMM
                          RS_SELFIELD TYPE SLIS_SELFIELD.
      CASE R_UCOMM.
        WHEN 'ENTER'. MESSAGE I208(00) WITH 'Pressed ENTER key'.
        WHEN OTHERS.
      ENDCASE.
    ENDFORM.                    "USER_COMMAND
    FORM SET_PF_STATUS  USING RT_EXTAB TYPE SLIS_T_EXTAB.
      SET PF-STATUS 'LIST_ALV' EXCLUDING RT_EXTAB.
    ENDFORM.                    "SET_PF_STATUS
    Max

Maybe you are looking for

  • Gallery not Working in Powerview

    I am using Powerview in Sharepoint 2013. We have done a very nice powerview and gave the link to an end user over e-mail without giving the user permission. So he couldn't see the see the Powerview. After that our Gallery Screen doesn't work on the P

  • How to make use of class cl_gui_alv_grid

    Hi Expert, I have an ALV which has been developed using Object Oriented Programming. Now i need to enable the push button, that will enable the users to select any row they want. i have investigated and found the i need to update the field SEL_MODE w

  • How much hard drive space left

    How do I find out how much hard drive space I'm using? My system profiler doesn't tell me didley.

  • Where to buy oracle openworld presentations?

    Hi all, I've been searching for the whole oracle website and could not find the url for buying all the presentations for oracle openworld. (or just database presentations) can anybody help? thanks andrew

  • SAP Conversion Agent for PI 7.1 EHP 1 and Windows 2008 Support

    Hello I have read that some people were able to run SAP Conversion Agent on a PI 7.1 EHP1 Installation on Windows 2008 Sever. But in the Product Availability Matrix there is no support for 2008 yet. In the SAP Library (http://help.sap.com/saphelp_nwp