In REUSE_ALV_GRID_DISPLAY, significance of I_BUFFER_ACTIVE !

Hi All,
We have a Report prog, which is shceduled as Batch Job.
Now what happens is this batch  job gets cancelled due to lack of memory
Below is the FM used in the prog.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
         EXPORTING
              I_BUFFER_ACTIVE    = 'X'
              I_CALLBACK_PROGRAM = G_REPID
              IS_LAYOUT          = GS_LAYOUT
              IT_FIELDCAT        = GT_FIELDCAT[]
              IT_EVENTS          = GT_EVENTS[]
         TABLES
              T_OUTTAB           = P_GT_OUTTAB
         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.
Now what i noticed is I_BUFFER_ACTIVE is 'X' in the FM REUSE_ALV_GRID_DISPLAY
What is the significance of this parameter ?
Will my problem solve if i set I_BUFFER_ACTIVE to ''.
Any suggestions are invited.
Thanks!

Hi,
Essentially, the ALV uses a two-step buffer concept for performance reasons.
Buffer A:
Complete variants including field catalog, sorting, filter
static field catalog (shared buffer)
Buffer B:
DDIC information for each field of the field catalog (Shared Buffer + Memory)
Optimized access to field catalog (Shared Buffer + Memory)
With parameter I_BUFFER_ACTIVE = 'X', buffer A is activated.If I_BUFFER_ACTIVE remains initial, the contents are nevertheless buffered in buffer B. For dynamic reasons, you have to forgo buffering completely (for example, a constant dynamic creation of structures) so that you have the following options as a developer:
1. Set SET/GET parameters ALVBUFFER to the current date.All report, variant or field catalog buffers are reset until the current date exceeds the date of the SET/GET parameter.
2. Set I_BYPASSING_BUFFER = 'X' on the call interface for the function modules and class methods.
Which type of buffering can I use for which scenario? (=developer view)
1. Activate the statically constant field catalog of buffer A with I_BUFFER_ACTIVE = 'X'
2. Semi-statically constant field catalog, for example different columns are displayed and hidden for each call.Call ALV normally, optimization is carried out implicitly by using buffer B.
3. Dynamically generated structures with field enhancements or text element changes for data elements.
How can I influence or refresh the buffers?
1. Refresh once after the structure change in a system by, for example, importing the transport request:
Set the SET/GET parameter ALVBUFFER to the current date
Execute the affected transaction/report
Delete the SET/GET parameter ALVBUFFER
Restart in a new session ( !)
2. If refreshing over a longer time of development, static scenario should be implemented in production operation
Set the SET/GET parameter ALVBUFFER to a date in the future
3. If buffer A causes problems, it can be deactivated centrally by setting the static class attribute CL_GUI_ALV_GRID=>M_BUFFER_INACTIVE='X'.
4. If you want to reset all buffers (A and B) once and centrally for all ALV applications, then execute report BALVBUFDEL.With the option "Only delete EUINFO(%F)/LTDX", all ALV buffers are reset on the current application.Then execute your report/transaction in a new session.After you have imported note 378021 or the appropriate Support Package, the entries are deleted from the selection screen and the report automatically deletes the ALV area of all active application servers.
Hope, this helps....
Regards,
Vinod

Similar Messages

  • Problem in down loading to excel sheet from ALV report

    Hi Experts,
    I have used the funtion module REUSE_ALV_GRID_DISPLAY, and for field catalog I have individually written the field catalog  as there are not many fields instead of using the funtion module REUSE_ALV_FIELDCATALOG_MERGE.
    Report is getting displayed well but while getting  down load to xls only numeric fields are appearing and character fields are not appearing.
    Have  I selected the function module formats correctly.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
            I_BYPASSING_BUFFER          =
            I_BUFFER_ACTIVE             =
            I_INTERFACE_CHECK           = ' '
             I_CALLBACK_PROGRAM          = 'ZHR_DETAILS'
            I_CALLBACK_PF_STATUS_SET    = ' '
            I_CALLBACK_USER_COMMAND     = ' '
            I_CALLBACK_TOP_OF_PAGE      = ' '
            I_CALLBACK_HTML_TOP_OF_PAGE = ' '
            I_CALLBACK_HTML_END_OF_LIST = ' '
            I_STRUCTURE_NAME            =
            I_BACKGROUND_ID             = ' '
             I_GRID_TITLE                = 'Active ETA Details'
            I_GRID_SETTINGS             =
            IS_LAYOUT                   =
             IT_FIELDCAT                 =  RT_FCAT
            IT_EXCLUDING                =
            IT_SPECIAL_GROUPS           =
            IT_SORT                     =
            IT_FILTER                   =
            IS_SEL_HIDE                 =
            I_DEFAULT                   = 'X'
            I_SAVE                      = ' '
            IS_VARIANT                  =
            IT_EVENTS                   =
            IT_EVENT_EXIT               =
            IS_PRINT                    =
            IS_REPREP_ID                =
            I_SCREEN_START_COLUMN       = 0
            I_SCREEN_START_LINE         = 0
            I_SCREEN_END_COLUMN         = 0
            I_SCREEN_END_LINE           = 0
            I_HTML_HEIGHT_TOP           =
            I_HTML_HEIGHT_END           =
       IMPORTING
            E_EXIT_CAUSED_BY_CALLER     =
            ES_EXIT_CAUSED_BY_USER      =
         TABLES
              T_OUTTAB                    = ITAB
       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.
    Please advice me.
    Thanks in advance.
    Regards,
    Irfan Hussain

    Hi Irfan,
      This looks strange !!1
      Try to use the layout option also and checkout if it works

  • Urgent help ALV report

    HI,
    report zhr2.
    tables:pernr.
    type-POOLs:slis.
    INFOTYPES:0001,0004,0041.
    data: begin of itab,
          pernr type pernr-pernr,
          MASSN type p0000-MASSN,
          STAT2 type p0000-STAT2,
          STAT3 type p0000-STAT3,
          PLANS type p0001-plans,
          WERKS type p0001-werks,
          PERSG type p0001-PERSG,
          PERSK   type p0001-PERSK,
      end of itab.
    data:it_itab type STANDARD TABLE OF itab,
         wa_itab like  itab.
    DATA: alv_fieldcat TYPE slis_t_fieldcat_alv,
          alv_layout TYPE slis_layout_alv.
    DATA: filled_lines LIKE sy-index,
          stru_disvar TYPE disvariant.
    select-options:s_pernr for pernr-pernr.
    start-of-SELECTION.
    get pernr.
    describe table p0001 lines filled_lines.
    if filled_lines gt 0.
      rp_provide_from_last p0001 space pn-begda pn-endda.
    clear wa_itab.
    move-CORRESPONDING  p0001 to wa_itab.
    append wa_itab to it_itab.
    if pnp-sw-found eq 0.
       reject.
       endif.
    endif.
    end-of-SELECTION.
    PERFORM fieldcat_init USING alv_fieldcat.
      alv_layout-colwidth_optimize = 'X'.
      alv_layout-zebra             = 'X'.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
           EXPORTING
            I_INTERFACE_CHECK        = ' '
            I_BUFFER_ACTIVE             = ' '
                i_callback_program       = 'ZHR2'
            I_CALLBACK_PF_STATUS_SET = ' '
            I_CALLBACK_USER_COMMAND  = ' '
            I_CALLBACK_TOP_OF_PAGE      = ' '
            I_CALLBACK_HTML_TOP_OF_PAGE = ' '
            I_CALLBACK_HTML_END_OF_LIST = ' '
             I_STRUCTURE_NAME         =  'ITAB'
            I_BACKGROUND_ID             = ' '
              I_GRID_TITLE                = 'Date Specifications'
            I_GRID_SETTINGS             =
                is_layout              = alv_layout
                it_fieldcat            = alv_fieldcat
            IT_EXCLUDING             =
            IT_SPECIAL_GROUPS        =
            IT_SORT                  =
            IT_FILTER                =
            IS_SEL_HIDE              =
             I_DEFAULT                = 'X'
             I_SAVE                  = 'A'
             IS_VARIANT              = stru_disvar
            IT_EVENTS                =
            IT_EVENT_EXIT            =
            IS_PRINT                 =
            IS_REPREP_ID             =
            I_SCREEN_START_COLUMN    = 0
            I_SCREEN_START_LINE      = 0
            I_SCREEN_END_COLUMN      = 0
            I_SCREEN_END_LINE        = 0
            IT_ALV_GRAPHICS             =
            IT_ADD_FIELDCAT             =
            IT_HYPERLINK                =
       IMPORTING
            E_EXIT_CAUSED_BY_CALLER  =
            ES_EXIT_CAUSED_BY_USER   =
      TABLES
                t_outtab               = it_itab
          EXCEPTIONS
              program_error            = 1
              OTHERS                   = 2.
      IF sy-subrc = 1.
        WRITE: 'Program error'(002).
      ENDIF.
    FORM fieldcat_init USING p_fieldcat
              TYPE slis_t_fieldcat_alv.
      DATA: ls_fieldcat TYPE slis_fieldcat_alv.
      CLEAR ls_fieldcat.
      ls_fieldcat-fieldname = 'PERNR'.
      ls_fieldcat-ref_tabname = 'PERNR'.
      ls_fieldcat-key         = 'X'.
      APPEND ls_fieldcat TO p_fieldcat.
      CLEAR ls_fieldcat.
      ls_fieldcat-fieldname = 'MASSN'.
       ls_fieldcat-ref_fieldname = 'MASSN'.
    ls_fieldcat-ref_tabname = 'P0001'.
      APPEND ls_fieldcat TO p_fieldcat.
    CLEAR ls_fieldcat.
      ls_fieldcat-fieldname = 'STAT2'.
       ls_fieldcat-ref_fieldname = 'STAT2'.
    ls_fieldcat-ref_tabname = 'P0001'.
      APPEND ls_fieldcat TO p_fieldcat.
      CLEAR ls_fieldcat.
      ls_fieldcat-fieldname = 'STAT3'.
      ls_fieldcat-ref_tabname = 'STAT3'.
    ls_fieldcat-ref_tabname = 'P0001'.
      APPEND ls_fieldcat TO p_fieldcat.
      CLEAR ls_fieldcat.
      ls_fieldcat-fieldname = 'PLANS'.
       ls_fieldcat-ref_fieldname = 'PLANS'.
      ls_fieldcat-ref_tabname = 'P0001'.
      APPEND ls_fieldcat TO p_fieldcat.
      CLEAR ls_fieldcat.
    ls_fieldcat-fieldname = 'WERKS'.
    ls_fieldcat-ref_fieldname = 'WERKS'.
    ls_fieldcat-ref_tabname = 'P0001'.
      APPEND ls_fieldcat TO p_fieldcat.
      CLEAR ls_fieldcat.
    ls_fieldcat-fieldname = 'PERSG'.
      ls_fieldcat-ref_fieldname = 'PERSG'.
    ls_fieldcat-ref_tabname = 'P0001'.
      APPEND ls_fieldcat TO p_fieldcat.
      CLEAR ls_fieldcat.
    ls_fieldcat-fieldname = 'PERSK'.
      ls_fieldcat-ref_fieldname = 'PERSK'.
    ls_fieldcat-ref_tabname = 'P0001'.
      APPEND ls_fieldcat TO p_fieldcat.
    ENDFORM.
    IT is going dump plz can any one help in this .
    Thanks and regards,
    Vamshi

    HI,
    report zhr2.
    tables:pernr.
    type-POOLs:slis.
    INFOTYPES:0001,0004,0041.
    data: begin of itab,
          pernr type pernr-pernr,
          MASSN type p0000-MASSN,
          STAT2 type p0000-STAT2,
          STAT3 type p0000-STAT3,
          PLANS type p0001-plans,
          WERKS type p0001-werks,
          PERSG type p0001-PERSG,
          PERSK   type p0001-PERSK,
      end of itab.
    data:it_itab type STANDARD TABLE OF itab,
         wa_itab like  itab.
    DATA: alv_fieldcat TYPE slis_t_fieldcat_alv,
          alv_layout TYPE slis_layout_alv.
    DATA: filled_lines LIKE sy-index,
          stru_disvar TYPE disvariant.
    select-options:s_pernr for pernr-pernr.
    start-of-SELECTION.
    get pernr.
    describe table p0001 lines filled_lines.
    if filled_lines gt 0.
      rp_provide_from_last p0001 space pn-begda pn-endda.
    clear wa_itab.
    move-CORRESPONDING  p0001 to wa_itab.
    append wa_itab to it_itab.
    if pnp-sw-found eq 0.
       reject.
       endif.
    endif.
    end-of-SELECTION.
    PERFORM fieldcat_init USING alv_fieldcat.
      alv_layout-colwidth_optimize = 'X'.
      alv_layout-zebra             = 'X'.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
           EXPORTING
            I_INTERFACE_CHECK        = ' '
            I_BUFFER_ACTIVE             = ' '
                i_callback_program       = 'ZHR2'
            I_CALLBACK_PF_STATUS_SET = ' '
            I_CALLBACK_USER_COMMAND  = ' '
            I_CALLBACK_TOP_OF_PAGE      = ' '
            I_CALLBACK_HTML_TOP_OF_PAGE = ' '
            I_CALLBACK_HTML_END_OF_LIST = ' '
             I_STRUCTURE_NAME         =  'ITAB'
            I_BACKGROUND_ID             = ' '
              I_GRID_TITLE                = 'Date Specifications'
            I_GRID_SETTINGS             =
                is_layout              = alv_layout
                it_fieldcat            = alv_fieldcat
            IT_EXCLUDING             =
            IT_SPECIAL_GROUPS        =
            IT_SORT                  =
            IT_FILTER                =
            IS_SEL_HIDE              =
             I_DEFAULT                = 'X'
             I_SAVE                  = 'A'
             IS_VARIANT              = stru_disvar
            IT_EVENTS                =
            IT_EVENT_EXIT            =
            IS_PRINT                 =
            IS_REPREP_ID             =
            I_SCREEN_START_COLUMN    = 0
            I_SCREEN_START_LINE      = 0
            I_SCREEN_END_COLUMN      = 0
            I_SCREEN_END_LINE        = 0
            IT_ALV_GRAPHICS             =
            IT_ADD_FIELDCAT             =
            IT_HYPERLINK                =
       IMPORTING
            E_EXIT_CAUSED_BY_CALLER  =
            ES_EXIT_CAUSED_BY_USER   =
      TABLES
                t_outtab               = it_itab
          EXCEPTIONS
              program_error            = 1
              OTHERS                   = 2.
      IF sy-subrc = 1.
        WRITE: 'Program error'(002).
      ENDIF.
    FORM fieldcat_init USING p_fieldcat
              TYPE slis_t_fieldcat_alv.
      DATA: ls_fieldcat TYPE slis_fieldcat_alv.
      CLEAR ls_fieldcat.
      ls_fieldcat-fieldname = 'PERNR'.
      ls_fieldcat-ref_tabname = 'PERNR'.
      ls_fieldcat-key         = 'X'.
      APPEND ls_fieldcat TO p_fieldcat.
      CLEAR ls_fieldcat.
      ls_fieldcat-fieldname = 'MASSN'.
       ls_fieldcat-ref_fieldname = 'MASSN'.
    ls_fieldcat-ref_tabname = 'P0001'.
      APPEND ls_fieldcat TO p_fieldcat.
    CLEAR ls_fieldcat.
      ls_fieldcat-fieldname = 'STAT2'.
       ls_fieldcat-ref_fieldname = 'STAT2'.
    ls_fieldcat-ref_tabname = 'P0001'.
      APPEND ls_fieldcat TO p_fieldcat.
      CLEAR ls_fieldcat.
      ls_fieldcat-fieldname = 'STAT3'.
      ls_fieldcat-ref_tabname = 'STAT3'.
    ls_fieldcat-ref_tabname = 'P0001'.
      APPEND ls_fieldcat TO p_fieldcat.
      CLEAR ls_fieldcat.
      ls_fieldcat-fieldname = 'PLANS'.
       ls_fieldcat-ref_fieldname = 'PLANS'.
      ls_fieldcat-ref_tabname = 'P0001'.
      APPEND ls_fieldcat TO p_fieldcat.
      CLEAR ls_fieldcat.
    ls_fieldcat-fieldname = 'WERKS'.
    ls_fieldcat-ref_fieldname = 'WERKS'.
    ls_fieldcat-ref_tabname = 'P0001'.
      APPEND ls_fieldcat TO p_fieldcat.
      CLEAR ls_fieldcat.
    ls_fieldcat-fieldname = 'PERSG'.
      ls_fieldcat-ref_fieldname = 'PERSG'.
    ls_fieldcat-ref_tabname = 'P0001'.
      APPEND ls_fieldcat TO p_fieldcat.
      CLEAR ls_fieldcat.
    ls_fieldcat-fieldname = 'PERSK'.
      ls_fieldcat-ref_fieldname = 'PERSK'.
    ls_fieldcat-ref_tabname = 'P0001'.
      APPEND ls_fieldcat TO p_fieldcat.
    ENDFORM.
    IT is going dump plz can any one help in this .
    Thanks and regards,
    Vamshi

  • Top-of-page event is not triggered

    Hi,
    I have a problem with top-of-page event. I have a report that shows the results in ALV grid display. But I use "REUSE_ALV_GRID_DISPLAY" not OO alv and there is only one screen with number 1000. On the menu toolbar there is a button that prints the data of ALV in a list using "write" statement. While writing , "top of page" event is not triggered. I expect that it is triggered at the first "write" statement but isn't. Is there anyone who knows the cause of this problem?
    The code is below.
    Thanks.
    Tables ...
    TABLES : mara , makt , ekko , ekpo , zzith_yukh , lfa1 , t001w  , lips ,
             eket .
    global variables
    DATA : BEGIN OF list OCCURS 1,
           zztahsk LIKE ekko-zztahsk ,
           zterm LIKE ekko-zterm ,
           txz01 LIKE ekpo-txz01 ,
           name1 LIKE lfa1-name1 ,
           menge LIKE ekpo-menge ,
           meins LIKE ekpo-meins ,
           fyukl LIKE zzith_yukh-zzdel_flag ,
                             " Yüklenmi&#351; miktar var göstergesi ...
           inco1 LIKE ekko-inco1 ,
           netwr LIKE ekpo-netwr ,
           waers LIKE ekko-waers ,
           bedat LIKE ekko-bedat ,
           zzontar LIKE ekko-zzontar ,
           slfdt LIKE eket-slfdt ,
           tname1 LIKE t001w-name1 ,
           banfn LIKE ekpo-banfn ,
           ebeln LIKE ekko-ebeln ,
           ebelp LIKE ekpo-ebelp ,
           lifnr LIKE ekko-lifnr ,
           mtart LIKE mara-mtart ,
           matkl LIKE mara-matkl ,
           ekgrp LIKE ekko-ekgrp ,
           matnr LIKE mara-matnr ,
           eknam  LIKE t024-eknam,
           bukrs  LIKE ekko-bukrs,
           zzbltur LIKE ekko-zzbltur,
           END   OF list         .
    DATA temp  LIKE list OCCURS 1 WITH HEADER LINE .
    DATA total LIKE list OCCURS 1 WITH HEADER LINE .
    ALV fields
    TYPE-POOLS : slis.
    DATA : gt_fields TYPE  slis_fieldcat_alv OCCURS 1 WITH HEADER LINE .
    DATA : gt_events TYPE  slis_t_event.
    DATA : gs_layout TYPE  slis_layout_alv.
    DATA : gv_title  TYPE lvc_title VALUE 'Günlük Depo Say&#305;m Miktarlar&#305;'.
    DATA : gt_top_of_page TYPE slis_t_listheader.
    selection screen
    SELECTION-SCREEN BEGIN OF BLOCK a WITH FRAME TITLE text-001 .
    *Sat&#305;nalma organizasyonu
    *Sat&#305;nalma grubu
    *Sat&#305;c&#305;
    *Tarih
    *SAS no
    *Dosya no
    SELECT-OPTIONS:
    s_bukrs FOR ekko-bukrs .
    SELECTION-SCREEN SKIP .
    SELECT-OPTIONS:
    s_ekorg FOR  ekko-ekorg OBLIGATORY MEMORY ID eko ,
    s_ekgrp FOR  ekko-ekgrp ,
    s_lifnr FOR  ekko-lifnr ,
    s_ebeln FOR  ekko-ebeln .
    SELECTION-SCREEN END  OF BLOCK a        .
    Define Katalog
    DEFINE fill_catalog .
      gt_fields-fieldname  = &1.
      gt_fields-tabname    = &2.
      gt_fields-seltext_l  = &3.
      gt_fields-seltext_m  = &3.
      gt_fields-seltext_s  = &3.
      gt_fields-checkbox   = &4.
      gt_fields-cfieldname = &5.
      gt_fields-ref_tabname  = &6.
      gt_fields-ref_fieldname  = &7.
      gt_fields-edit       = &8.
      append gt_fields .
      clear gt_fields .
    END-OF-DEFINITION.
    Modify Catalog
    DEFINE modify_catalog .
      gt_fields-seltext_m = &1 .
      modify gt_fields  transporting seltext_m where fieldname = &2 .
    END-OF-DEFINITION     .
    TOP-OF-PAGE.
      write 'top of page'.
      PERFORM top-of-page.
    start-of-selection
    START-OF-SELECTION .
      PERFORM get_data.
      PERFORM listele .
    *&      Form  listele .
    FORM listele .
      PERFORM get_events .
      PERFORM alv_list_header.
      PERFORM get_field_catalog USING 'LIST' .
      PERFORM display_alv    .
    ENDFORM.                    " listele.
    *&      Form  getfield_Catalog
    FORM get_field_catalog  USING p_tabname .
      fill_catalog :
    'EBELN'   'LIST' '' '' '' 'EKPO' 'EBELN'   '' ,
    'ZZTAHSK' 'LIST' '' '' '' 'EKKO' 'ZZTAHSK' '' ,
    'ZZBLTUR' 'LIST' '' '' '' 'EKKO' 'ZZBLTUR' '' ,
    'MATNR'   'LIST' '' '' '' 'MARA' 'MATNR'   '' ,
    'MATKL'   'LIST' '' '' '' 'MARA' 'MATKL'   '' ,
    'TXZ01'   'LIST' '' '' '' 'EKPO' 'TXZ01'   '' ,
    'NAME1'   'LIST' '' '' '' 'LFA1' 'NAME1'   '' ,
    'MENGE'   'LIST' '' '' '' 'EKPO' 'MENGE'   '' ,
    'MEINS'   'LIST' '' '' '' 'EKPO' 'MENGE'   '' ,
    'FYUKL'   'LIST' '' '' '' 'ZZITH_YUKH' 'ZZDEL_FLAG'   '' ,
    'INCO1'   'LIST' '' '' '' 'EKKO' 'INCO1'   '' ,
    'NETWR'   'LIST' '' '' '' 'EKPO' 'NETWR'   '' ,
    'WAERS'   'LIST' '' '' '' 'EKKO' 'WAERS'   '' ,
    'BEDAT'   'LIST' '' '' '' 'EKKO' 'BEDAT'   '' ,
    'ZZONTAR' 'LIST' '' '' '' 'EKKO' 'ZZONTAR' '' ,
    'SLFDT'   'LIST' '' '' '' 'EKET' 'SLFDT'   '' ,
    'TNAME1'  'LIST' '' '' '' 'T001W' 'NAME1'  '' ,
    'BANFN'   'LIST' '' '' '' 'EKPO' 'BANFN'   '' ,
    'EKNAM'   'LIST' '' '' '' 'T024' 'EKNAM'   '' .
      gt_fields-ddictxt = 'M' .
      MODIFY gt_fields  TRANSPORTING ddictxt WHERE fieldname NE space.
      modify_catalog 'Yükleme No'            'VBELN'   .
      modify_catalog 'Malzeme Türü'          'ZZBLTUR' .
      modify_catalog 'Malzeme Tan&#305;m&#305;'        'TXZ01'   .
      modify_catalog 'Sat&#305;c&#305;'                'NAME1'   .
      modify_catalog 'Teslim &#350;ekli'          'INCO1'   .
      modify_catalog 'Döviz Tutar&#305;'          'ZZTOPLAM'.
      modify_catalog 'Döviz Kodu'            'WAERS'   .
      modify_catalog 'Sipari&#351;i Veren'        'TNAME1'  .
      modify_catalog 'Tahmini &#304;thalat Trh.'  'SLFDT'   .
      modify_catalog '&#304;thalata &#304;ntikal Trh.' 'BEDAT'   .
      modify_catalog 'Dosya Onay Tarihi'     'ZZONTAR' .
      modify_catalog 'Talep No'              'BANFN'   .
      modify_catalog 'Dosya Sorumlusu'       'EKNAM'   .
      modify_catalog 'Yük.Göstergesi'        'FYUKL'   .
    ENDFORM.                    " getfield_Catalog
    *&      Form  display_alv
          text
    -->  p1        text
    <--  p2        text
    FORM display_alv .
      DATA lv_repid LIKE sy-repid .
      lv_repid = sy-repid .
      CLEAR gs_layout.
      gs_layout-zebra                 = 'X'.
      gs_layout-colwidth_optimize     = 'X'.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          i_callback_program       = lv_repid
          i_callback_pf_status_set = 'SET_PF_STATUS'
          i_callback_user_command  = 'USER_COMMAND'
          is_layout                = gs_layout
          it_fieldcat              = gt_fields[]
          it_events                = gt_events[]
        TABLES
          t_outtab                 = list[].
    ENDFORM.                    " display_alv
    FORM set_pf_status USING  iv_nodisplay TYPE slis_t_extab.
      SET PF-STATUS 'STANDARD' ."excluding iv_nodisplay.
    ENDFORM.                    " SET_PF_STATUS
    FORM user_command  USING iv_ucomm LIKE sy-ucomm
                      rs_selfield TYPE slis_selfield.
      CASE iv_ucomm .
        WHEN 'PRINT'  . PERFORM print_data .
      ENDCASE       .
    ENDFORM.                    "USER_COMMAND
    FORM get_events .
      DATA: ls_event TYPE slis_alv_event.
      CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
        EXPORTING
          i_list_type = 0
        IMPORTING
          et_events   = gt_events.
      READ TABLE gt_events WITH KEY name = slis_ev_top_of_page
                               INTO ls_event.
      IF sy-subrc = 0.
        MOVE 'ALV_TOP_OF_PAGE' TO ls_event-form.
        APPEND ls_event TO gt_events.
      ENDIF.
    ENDFORM.                    " getevents
    FORM alv_list_header .
      DATA: ls_line TYPE slis_listheader.
      CLEAR ls_line.
      ls_line-typ  = 'S'.
      ls_line-key  = 'Sat&#305;nalma Org.:'.
      CONCATENATE s_ekorg-low s_ekorg-high
      INTO ls_line-info SEPARATED BY '/'.
      APPEND ls_line TO gt_top_of_page.
      ls_line-key  = 'Sat&#305;nalma Grubu.:'.
      CONCATENATE s_ekgrp-low s_ekgrp-high
      INTO ls_line-info SEPARATED BY '/'.
      APPEND ls_line TO gt_top_of_page.
      ls_line-key  = 'Sat&#305;c&#305;.:'.
      CONCATENATE s_lifnr-low s_lifnr-high
      INTO ls_line-info SEPARATED BY '/'.
      APPEND ls_line TO gt_top_of_page.
      ls_line-key  = 'SAS No.:'.
      CONCATENATE s_ebeln-low s_ebeln-high
      INTO ls_line-info SEPARATED BY '/'.
      APPEND ls_line TO gt_top_of_page.
    ENDFORM.                    " alv_list_header
    FORM alv_top_of_page.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
        EXPORTING
          it_list_commentary = gt_top_of_page.
    ENDFORM.                    "TOP_OF_PAGE
    FORM get_data .
      DATA : BEGIN OF tr ,
              menge LIKE eket-menge ,
              dabmg LIKE eket-dabmg ,
             END OF tr ,
             zzfiilytar LIKE zzith_yukh-zzfiilytar  .
    *- Get data ...
      SELECT *
        INTO CORRESPONDING FIELDS OF TABLE list
        FROM ekpo AS a
       INNER JOIN ekko AS b ON bebeln = aebeln
      WHERE b~ebeln IN s_ebeln AND
            b~bukrs IN s_bukrs AND
            b~loekz EQ space   AND
            b~lifnr IN s_lifnr AND
            b~ekorg IN s_ekorg AND
            b~ekgrp IN s_ekgrp AND
            a~loekz EQ space   AND
            a~elikz EQ space .
      LOOP AT list .
        CLEAR tr .
        SELECT menge dabmg
          INTO tr
          FROM eket
         WHERE ebeln = list-ebeln AND
               ebelp = list-ebelp.
          tr-menge = tr-menge - tr-dabmg .
        ENDSELECT.
        IF tr-menge LE 0 .
          DELETE list .
        ELSE .
          list-menge = tr-menge .
          IF tr-dabmg GT 0 .
            list-fyukl = '*' .
          ENDIF .
          SELECT SINGLE butxt INTO list-tname1 FROM t001
            WHERE bukrs = list-bukrs .
          SELECT SINGLE slfdt INTO list-slfdt FROM eket
          WHERE ebeln = list-ebeln AND
                ebelp = list-ebelp .
          SELECT SINGLE name1 INTO list-name1 FROM lfa1 WHERE lifnr = list-lifnr.
          SELECT SINGLE mtart matkl INTO (list-mtart,list-matkl)
          FROM mara WHERE matnr = list-matnr .
          SELECT SINGLE eknam INTO list-eknam FROM t024 WHERE ekgrp = list-ekgrp .
          MODIFY list .
        ENDIF .
      ENDLOOP      .
    ENDFORM.                    " get_data
    FORM print_data .
      LEAVE TO LIST-PROCESSING .
      NEW-PAGE NO-HEADING NO-TITLE LINE-SIZE 229 .
      SET PF-STATUS SPACE .
    PERFORM top-of-page .
    malzeme türü 1005 ler yazd&#305;r&#305;l&#305;r
      PERFORM yazdir_1005 .
    malzeme türü 1005 olmayanlar yazd&#305;r&#305;l&#305;r
      PERFORM yazdir_ne_1005 .
    Sat&#305;nalama gruplar&#305; bilgisi yazd&#305;r&#305;l&#305;r
      PERFORM yazdir_ekgrp .
    ENDFORM.                    " print_data
    FORM top-of-page .
      WRITE : 'ÜLKER GRUBU KONSOL&#304;DE' .
      WRITE AT 40 'Sevkiyat Bekleyen Malzemeler' COLOR COL_HEADING .
      WRITE :  180 sy-uname , sy-datum , sy-uzeit.
      NEW-LINE .
      ULINE 0(229) .
      WRITE :/2 'Rapor Kodu..............:' , (10) sy-tcode .
      WRITE :/2 'Sat&#305;nalma Organizasyonu.:' , (10) s_ekorg-low, '/', (10) s_ekorg-high .
      WRITE :/2 'Sat&#305;nalma Grubu.........:' , (10) s_ekgrp-low, '/', (10) s_ekgrp-high .
      WRITE :/2 'Sat&#305;c&#305;..................:' , (10) s_lifnr-low, '/', (10) s_lifnr-high .
      WRITE :/2 'Sat&#305;nalma Sipari&#351; No....:' , (10) s_ebeln-low, '/', (10) s_ebeln-high .
      NEW-LINE .
      ULINE 0(229) .
    Ba&#351;l&#305;klar yaz&#305;l&#305;r
      FORMAT COLOR COL_HEADING .
      WRITE :
      /(10) 'SAS NO.' CENTERED,
      (6)  'TAHS&#304;S'  CENTERED,
      (5)  'ÖDEME'   CENTERED,
      (5)  'Bel.T'   CENTERED,
      (25) 'MALZEME' CENTERED,
      (25) 'SATICI' CENTERED,
      (12) 'M&#304;KTAR' CENTERED,
      (3)  'BRM' CENTERED,
      (3)  'G' ,
      (7) 'TES.&#350;K.' CENTERED,
      (16) 'DÖV&#304;Z TUTARI' CENTERED,
      (3)  'DB.' CENTERED,
      (13) '&#304;TH.&#304;NTK.TRH.' CENTERED,
      (13) 'DOSYA ON.TRH.' CENTERED,
      (10) 'TAHM&#304;N.&#304;TH.TRH.' CENTERED,
      (20) 'S&#304;PAR&#304;&#350; VEREN' CENTERED,
      (10) 'TALEP NO.' CENTERED,
      (18) 'DOSYA SORUMLUSU' CENTERED.
      ULINE 0(229) .
      FORMAT RESET .
    ENDFORM.                    " top-of-page
    FORM yazdir_1005 .
      DATA ebeln LIKE list-ebeln  .
      SORT list BY zzbltur matnr .
      temp[] = list[] .
      DELETE temp WHERE mtart <> '1005' .
      LOOP AT list WHERE mtart = '1005' .
        CLEAR list-netwr .
        IF ebeln NE list-ebeln OR ebeln EQ space .
          REFRESH total . CLEAR total .
          ebeln = list-ebeln .
          LOOP AT temp WHERE ebeln = list-ebeln .
            list-netwr = list-netwr + temp-netwr  .
            CLEAR total .
            total-txz01 = '*** TKNK.MLZ. TOPLAMI ****' .
            total-meins = temp-meins .
            total-menge = temp-menge .
            COLLECT total .
          ENDLOOP                               .
          PERFORM write_list USING '1'  .
          LOOP AT total .
            PERFORM write_list USING '2'  .
          ENDLOOP .
          AT END OF zzbltur .
            ULINE 0(229) .
          ENDAT .
        ENDIF .
      ENDLOOP .
    ENDFORM.                    " yazdir_1005
    FORM write_list  USING    flag .
    flag 1 1005 için yazd&#305;rma
    flag 2 ise ara toplam
      IF flag = '1' .
       FORMAT COLOR COL_NORMAL .
        WRITE :
        /(10) list-ebeln ,
         (6)  list-zztahsk,
         (5)  list-zterm,
         (5)  list-zzbltur ,
         (25) list-txz01,
         (25) list-name1,
         (12) list-menge,
         (3)  list-meins,
         (3)  list-fyukl,
         (7)  list-inco1,
         (16) list-netwr,
         (3)  list-waers,
         (13) list-bedat,
         (13) list-zzontar,
         (10) list-slfdt ,
         (20) list-tname1,
         (10) list-banfn ,
         (18) list-eknam .
        FORMAT RESET .
      ELSEIF flag = '2'  .
       FORMAT COLOR COL_TOTAL .
        WRITE :
        /(10) '' ,
         (6)  '' ,
         (5)  '' ,
         (5)  '' ,
         (25) total-txz01,
         (25) '' ,
         (12) total-menge,
         (3)  total-meins,
         (3)  '' ,
         (7)  '' ,
         (16) '' ,
         (3)  '' ,
         (13) '' ,
         (13) '' ,
         (10) '' ,
         (20) '' ,
         (10) '' ,
         (18) '' .
        FORMAT RESET .
      ELSEIF flag = '3'  .
       FORMAT COLOR COL_TOTAL .
        WRITE :
       /(10) '' ,
        (6)  '' ,
        (5)  '' ,
        (5)  '' ,
        (25) total-txz01,
        (25) '' ,
        (12) total-menge,
        (3)  '' ,
        (3)  '' ,
        (7)  '' ,
        (16) total-netwr ,
        (3)  '' ,
        (13) '' ,
        (13) '' ,
        (10) '' ,
        (20) '' ,
        (10) '' ,
        (18) '' .
        FORMAT RESET .
      ENDIF .
    ENDFORM.                    " write_list
    FORM yazdir_ne_1005 .
      DATA matnr LIKE list-matnr .
      SORT list BY zzbltur matkl matnr .
      temp[] = list[] .
      DELETE temp WHERE mtart = '1005' .
      LOOP AT list WHERE mtart <> '1005' .
    Her yeni Malzeme için ara toplam yaz&#305;l&#305;r
        IF matnr NE list-matnr AND matnr NE space .
           REFRESH total . CLEAR total .
    Toplamlar al&#305;n&#305;r
          LOOP AT temp WHERE matnr = matnr .
            CLEAR total .
            total-netwr = temp-netwr  .
            total-menge = temp-menge  .
            total-txz01 =  '***     TOPLAM        ****' .
            COLLECT total .
          ENDLOOP                          .
          LOOP AT total .               .
            PERFORM write_list USING '3'  .
          ENDLOOP                       .
          ULINE 0(229) .
        ENDIF                      .
        PERFORM write_list USING '1'  .
        matnr = list-matnr            .
      ENDLOOP                           .
    Toplamlar al&#305;n&#305;r
      LOOP AT temp WHERE matnr = matnr .
        REFRESH total . CLEAR total .
        total-netwr = temp-netwr  .
        total-menge = temp-menge  .
        total-txz01 =  '***     TOPLAM        ****' .
        COLLECT total .
      ENDLOOP .
      LOOP AT total .
        PERFORM write_list USING '3'  .
      ENDLOOP       .
      ULINE 0(229)  .
    ENDFORM.                    " yazdir_ne_1005
    FORM yazdir_ekgrp .
      DATA: BEGIN OF total OCCURS 1 ,
            eknam LIKE list-eknam   ,
            zzbltur LIKE list-zzbltur ,
            sayi TYPE i ,
            END  OF  total          .
      DATA: BEGIN OF gtotal OCCURS 1 ,
            eknam LIKE list-eknam   ,
            zzbltur LIKE list-zzbltur ,
            sayi TYPE i ,
            END  OF  gtotal          .
      DATA: bltur LIKE zzith_bltur OCCURS 1 WITH HEADER LINE .
      DATA: len TYPE i  .
      DATA: wa LIKE total.
      REFRESH temp .
      SELECT * INTO TABLE bltur FROM zzith_bltur .
      CLEAR bltur .
      MOVE : 'ZZZZ'   TO bltur-zzbltur ,  " Sat&#305;r toplam&#305; için ...
             text-002 TO bltur-zztanim .
      APPEND bltur .
      CLEAR list   .
      SORT list BY eknam ebeln .
      DELETE ADJACENT DUPLICATES FROM list COMPARING eknam ebeln .
      LOOP AT list .
        CLEAR : total, gtotal .
        total-eknam = list-eknam .
        total-zzbltur = list-zzbltur .
        total-sayi  = 1 .
        COLLECT total   .
        total-eknam   = list-eknam .
        total-zzbltur = 'ZZZZ' .
        total-sayi  = 1 .
        COLLECT total   .
        gtotal-eknam = text-001 .
        gtotal-zzbltur = list-zzbltur .
        gtotal-sayi  = 1 .
        COLLECT gtotal   .
        gtotal-eknam = text-001 .
        gtotal-zzbltur = 'ZZZZ' .
        gtotal-sayi  = 1 .
        COLLECT gtotal   .
      ENDLOOP      .
      FORMAT COLOR COL_HEADING.
      ULINE AT /1(145).
      WRITE :/
      sy-vline , (15) 'Dosya Sorumlusu' , sy-vline .
      LOOP AT bltur .
        WRITE :(15) bltur-zztanim  , sy-vline .
      ENDLOOP  .
      ULINE AT /1(145).
      FORMAT RESET   .
      total-zzbltur = '0001' .
      MODIFY total TRANSPORTING zzbltur WHERE zzbltur = space .
      gtotal-zzbltur = '0001' .
      MODIFY gtotal TRANSPORTING zzbltur WHERE zzbltur = space .
      SORT total BY eknam .
      LOOP AT total  .
        AT NEW eknam .
          WRITE :/
          sy-vline , (15) total-eknam COLOR COL_HEADING ,
          sy-vline .
          LOOP AT bltur   .
            len = sy-tabix * 18 .
            len = len + 3 .
            CLEAR wa .
            READ TABLE total INTO wa WITH KEY zzbltur = bltur-zzbltur
                                              eknam   = total-eknam .
            WRITE AT len(15) wa-sayi NO-ZERO.
            WRITE sy-vline .
          ENDLOOP    .
        ENDAT      .
      ENDLOOP .
      LOOP AT gtotal  .
        AT NEW eknam .
          FORMAT COLOR COL_TOTAL .
          WRITE :/
          sy-vline , (15) gtotal-eknam ,
          sy-vline .
          LOOP AT bltur   .
            len = sy-tabix * 18 .
            len = len + 3 .
            CLEAR wa .
            READ TABLE gtotal INTO wa WITH KEY zzbltur = bltur-zzbltur
                                               eknam   = text-001    .
            WRITE AT len(15) wa-sayi NO-ZERO.
            WRITE sy-vline .
          ENDLOOP    .
        ENDAT      .
      ENDLOOP .
      ULINE AT /1(145).
      FORMAT RESET .
    ENDFORM.                    " yazdir_ekgrp

    Hi,
    In the function  use the top-of-page event as follows:
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
            EXPORTING
                    I_BYPASSING_BUFFER          =
                    I_BUFFER_ACTIVE             =
                    I_INTERFACE_CHECK           = ' '
                 I_CALLBACK_PROGRAM          = 'ZRPMSLM'
                    I_CALLBACK_PF_STATUS_SET    = ' '
                    I_CALLBACK_USER_COMMAND     = ' '
               <b>  I_CALLBACK_TOP_OF_PAGE      = 'TOP'</b>
    Define whatever to appear in top-of page in a subroutine named TOP.
    Hope this helps.
    Reward if helpful.
    Regards,
    Sipra

  • Problem with ALV Grid Display screen Back Button

    Dear Friends ,
    I have an ALV Grid Display,Here am facing a problem for my 'Back' button,i haven't defined any PF Status and is using the standard one.But after the Display when i press Back Button a blank Screen is appearing n then again i have to press back button to go to my Selection Screen.
    Please Suggest if i have to take care of something else.
    I want my Selection Screen when i press Back on my Display Screen.
    DATA:  IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
           FIELDCAT TYPE SLIS_FIELDCAT_ALV.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
            EXPORTING
             I_BYPASSING_BUFFER          =
             I_BUFFER_ACTIVE             =
             I_INTERFACE_CHECK           = ' '
                 I_CALLBACK_PROGRAM          = 'ZRMMPD01A'
             I_CALLBACK_PF_STATUS_SET    = ' '
             I_CALLBACK_USER_COMMAND     = ' '
             I_CALLBACK_TOP_OF_PAGE      = ' '
             I_CALLBACK_HTML_TOP_OF_PAGE = ' '
             I_CALLBACK_HTML_END_OF_LIST = ' '
             I_STRUCTURE_NAME            =
             I_BACKGROUND_ID             = ' '
             I_GRID_TITLE                =
             I_GRID_SETTINGS             =
               IS_LAYOUT                     =  I_LAYOUT
               IT_FIELDCAT                 =  IT_FIELDCAT
             IT_EXCLUDING                =
             IT_SPECIAL_GROUPS           =
             IT_SORT                     =
             IT_FILTER                   =
             IS_SEL_HIDE                 =
             I_DEFAULT                   = 'X'
             I_SAVE                      = ' '
             IS_VARIANT                  =
             IT_EVENTS                   =
             IT_EVENT_EXIT               =
             IS_PRINT                    =
             IS_REPREP_ID                =
             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      =
             TABLES
                  T_OUTTAB                    = IT_FINAL
            EXCEPTIONS
                 PROGRAM_ERROR               = 1
                 OTHERS                      = 2
    Thanks and Regards,
    Ashwini

    Hi Vijay ,
    No i dont have any write statement in my proggram.
    Here it is
    REPORT ZRMMPD01A  NO STANDARD PAGE HEADING.
    TABLES : EQUI,SER03,MKPF,OBJK.
    TYPE-POOLS : SLIS.
    DATA  IT_EQUI LIKE EQUI OCCURS 0 WITH HEADER LINE.
    DATA  IT_OBJK LIKE OBJK OCCURS 0 WITH HEADER LINE..
    DATA  IT_SER03 LIKE SER03 OCCURS 0 WITH HEADER LINE.
    DATA  IT_MKPF LIKE MKPF OCCURS 0 WITH HEADER LINE .
    DATA : BEGIN OF IT_DISPLAY OCCURS 0,
                MATNR LIKE EQUI-MATNR,
                SERNR LIKE EQUI-SERNR,
                BWART LIKE SER03-BWART,
                WERK LIKE SER03-WERK,
                CHARGE LIKE SER03-CHARGE,
                LAGERORT LIKE SER03-LAGERORT,
                MBLNR LIKE SER03-MBLNR,
                MJAHR LIKE SER03-MJAHR,
                ZEILE LIKE SER03-ZEILE,
                BUDAT LIKE MKPF-BUDAT,
                BKTXT LIKE MKPF-BKTXT,
                USNAM LIKE MKPF-USNAM,
                XBLNR LIKE MKPF-XBLNR,
            END OF IT_DISPLAY.
    DATA : WA_DISPLAY LIKE IT_DISPLAY.
    DATA  IT_FINAL LIKE IT_DISPLAY OCCURS 0 WITH HEADER LINE.
    DATA  IT_TEMP LIKE IT_DISPLAY OCCURS 0 WITH HEADER LINE.
    DATA:  IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
           FIELDCAT TYPE SLIS_FIELDCAT_ALV.
    DATA :I_LAYOUT TYPE SLIS_LAYOUT_ALV,
          I_EVENTS TYPE SLIS_T_EVENT.
    SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
    SELECT-OPTIONS : S_MATNR FOR EQUI-MATNR MATCHCODE OBJECT MCD,"OBLIGATORY
                    S_SERNR FOR EQUI-SERNR, "MATCHCODE OBJECT MCD OBLIGATORY
                    S_MBLNR FOR SER03-MBLNR MATCHCODE OBJECT MCD,
                    S_BWART FOR SER03-BWART MATCHCODE OBJECT MCD,
                    S_WERK FOR SER03-WERK MATCHCODE OBJECT MCD,
                    S_LAGET FOR SER03-LAGERORT MATCHCODE OBJECT MCD,
                    S_BUDAT FOR MKPF-BUDAT MATCHCODE OBJECT MCD,
                    S_XBLNR FOR MKPF-XBLNR MATCHCODE OBJECT MCD.
    SELECTION-SCREEN END OF BLOCK B1.
    SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-002.
    PARAMETERS : R1 RADIOBUTTON GROUP G1 DEFAULT 'X',
                 R2 RADIOBUTTON GROUP G1.
    SELECTION-SCREEN END OF BLOCK B2.
    START-OF-SELECTION.
    *Fetch Data.
      PERFORM GET_DATA.
    *Fill Display Fields.
      PERFORM FILL_TABLE.
    *Segregate data according to radio button selection.
      PERFORM SELECT_CONDITION.
    *Fill The Feild catalog.
      PERFORM FIELD_CATALOG.
    *Display Output.
      PERFORM OUTPUT_DISPLAY..
    *&      Form  GET_DATA
          text
    -->  p1        text
    <--  p2        text
    FORM GET_DATA.
      SELECT * FROM EQUI INTO TABLE IT_EQUI
        WHERE MATNR IN S_MATNR
        AND SERNR IN S_SERNR.
      SELECT * FROM OBJK INTO TABLE IT_OBJK
      FOR ALL ENTRIES IN IT_EQUI
      WHERE EQUNR = IT_EQUI-EQUNR.
      SELECT * FROM SER03 INTO TABLE IT_SER03
      FOR ALL ENTRIES IN IT_OBJK
      WHERE OBKNR = IT_OBJK-OBKNR
      AND MBLNR IN S_MBLNR
      AND BWART IN S_BWART
      AND WERK IN S_WERK
      AND LAGERORT IN S_LAGET.
      SELECT * FROM MKPF INTO TABLE IT_MKPF
      FOR ALL ENTRIES IN IT_SER03
      WHERE MBLNR = IT_SER03-MBLNR
      AND BUDAT IN S_BUDAT
      AND XBLNR IN S_XBLNR.
    ENDFORM.                    " GET_DATA
    *&      Form  FILL_TABLE
          text
    -->  p1        text
    <--  p2        text
    FORM FILL_TABLE.
      LOOP AT IT_EQUI.
        LOOP AT IT_OBJK.
          IF IT_OBJK-EQUNR <> IT_EQUI-EQUNR.
            SKIP.
          ELSE.
            READ TABLE IT_SER03 WITH KEY OBKNR = IT_OBJK-OBKNR.
            IF SY-SUBRC = 0.
              WA_DISPLAY-MATNR = IT_EQUI-MATNR.
              WA_DISPLAY-SERNR = IT_EQUI-SERNR.
              WA_DISPLAY-BWART = IT_SER03-BWART.
              WA_DISPLAY-WERK = IT_SER03-WERK.
              WA_DISPLAY-CHARGE = IT_SER03-CHARGE.
              WA_DISPLAY-LAGERORT = IT_SER03-LAGERORT.
              WA_DISPLAY-MBLNR = IT_SER03-MBLNR.
              WA_DISPLAY-MJAHR = IT_SER03-MJAHR.
              WA_DISPLAY-ZEILE = IT_SER03-ZEILE.
             READ TABLE IT_MKPF WITH KEY MBLNR = IT_SER03-MBLNR.
              IF SY-SUBRC = 0.
                WA_DISPLAY-BUDAT = IT_MKPF-BUDAT.
                WA_DISPLAY-BKTXT = IT_MKPF-BKTXT.
                WA_DISPLAY-USNAM = IT_MKPF-USNAM.
                WA_DISPLAY-XBLNR = IT_MKPF-XBLNR.
              ENDIF.
            ENDIF.
          ENDIF.
          IF NOT WA_DISPLAY IS INITIAL.
            APPEND WA_DISPLAY TO IT_DISPLAY.
            CLEAR WA_DISPLAY.
          ENDIF.
        ENDLOOP.
      ENDLOOP.
    ENDFORM.                    " FILL_TABLE
    *&      Form  FIELD_CATALOG
          text
    -->  p1        text
    <--  p2        text
    FORM FIELD_CATALOG.
      FIELDCAT-TABNAME = 'IT_DISPLAY'.
      FIELDCAT-FIELDNAME = 'MATNR'.
      FIELDCAT-SELTEXT_M = 'Material Number'.
      FIELDCAT-OUTPUTLEN =  18.
      APPEND FIELDCAT TO IT_FIELDCAT.
      CLEAR FIELDCAT.
      FIELDCAT-TABNAME = 'IT_DISPLAY'.
      FIELDCAT-FIELDNAME = 'SERNR'.
      FIELDCAT-SELTEXT_M = 'Serial number'.
      FIELDCAT-OUTPUTLEN =  18.
      APPEND FIELDCAT TO IT_FIELDCAT.
      CLEAR FIELDCAT.
      FIELDCAT-TABNAME = 'IT_DISPLAY'.
      FIELDCAT-FIELDNAME = 'MBLNR'.
      FIELDCAT-SELTEXT_L = 'Number of material document'.
      FIELDCAT-OUTPUTLEN =  18.
      APPEND FIELDCAT TO IT_FIELDCAT.
      CLEAR FIELDCAT.
      FIELDCAT-TABNAME = 'IT_DISPLAY'.
      FIELDCAT-FIELDNAME = 'BWART'.
      FIELDCAT-SELTEXT_M = 'Movement type'.
      FIELDCAT-OUTPUTLEN =  18.
      APPEND FIELDCAT TO IT_FIELDCAT.
      CLEAR FIELDCAT.
      FIELDCAT-TABNAME = 'IT_DISPLAY'.
      FIELDCAT-FIELDNAME = 'WERK'.
      FIELDCAT-SELTEXT_M = 'Plant'.
      FIELDCAT-OUTPUTLEN =  5.
      APPEND FIELDCAT TO IT_FIELDCAT.
      CLEAR FIELDCAT.
      FIELDCAT-TABNAME = 'IT_DISPLAY'.
      FIELDCAT-FIELDNAME = 'CHARGE'.
      FIELDCAT-SELTEXT_M = 'Batch number'.
      FIELDCAT-OUTPUTLEN =  18.
      APPEND FIELDCAT TO IT_FIELDCAT.
      CLEAR FIELDCAT.
      FIELDCAT-TABNAME = 'IT_DISPLAY'.
      FIELDCAT-FIELDNAME = 'LAGERORT'.
      FIELDCAT-SELTEXT_M = 'Storage Location'.
      FIELDCAT-OUTPUTLEN =  18.
      APPEND FIELDCAT TO IT_FIELDCAT.
      CLEAR FIELDCAT.
      FIELDCAT-TABNAME = 'IT_DISPLAY'.
      FIELDCAT-FIELDNAME = 'MJAHR'.
      FIELDCAT-SELTEXT_M = 'Material doc. year'.
      FIELDCAT-OUTPUTLEN =  18.
      APPEND FIELDCAT TO IT_FIELDCAT.
      CLEAR FIELDCAT.
      FIELDCAT-TABNAME = 'IT_DISPLAY'.
      FIELDCAT-FIELDNAME = 'ZEILE'.
      FIELDCAT-SELTEXT_L = 'Item in material document'.
      FIELDCAT-OUTPUTLEN =  18.
      APPEND FIELDCAT TO IT_FIELDCAT.
      CLEAR FIELDCAT.
      FIELDCAT-TABNAME = 'IT_DISPLAY'.
      FIELDCAT-FIELDNAME = 'BUDAT'.
      FIELDCAT-SELTEXT_L = 'Posting date in the document'.
      FIELDCAT-OUTPUTLEN =  10.
      APPEND FIELDCAT TO IT_FIELDCAT.
      CLEAR FIELDCAT.
      FIELDCAT-TABNAME = 'IT_DISPLAY'.
      FIELDCAT-FIELDNAME = 'BKTXT'.
      FIELDCAT-SELTEXT_L = 'Document header text'.
      FIELDCAT-OUTPUTLEN =  25.
      APPEND FIELDCAT TO IT_FIELDCAT.
      CLEAR FIELDCAT.
      FIELDCAT-TABNAME = 'IT_DISPLAY'.
      FIELDCAT-FIELDNAME = 'USNAM'.
      FIELDCAT-SELTEXT_M = 'User name'.
      FIELDCAT-OUTPUTLEN =  15.
      APPEND FIELDCAT TO IT_FIELDCAT.
      CLEAR FIELDCAT.
      FIELDCAT-TABNAME = 'IT_DISPLAY'.
      FIELDCAT-FIELDNAME = 'XBLNR'.
      FIELDCAT-SELTEXT_L = 'Reference document number'.
      FIELDCAT-OUTPUTLEN =  25.
      APPEND FIELDCAT TO IT_FIELDCAT.
      CLEAR FIELDCAT.
    ENDFORM.                    " FIELD_CATALOG
    *&      Form  DISPLAY_OUTPUT
          text
    -->  p1        text
    <--  p2        text
    FORM OUTPUT_DISPLAY.
      IF R1 = 'X'.
        CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
          EXPORTING
              I_CALLBACK_PROGRAM          = 'ZRMMPD01A'
              IS_LAYOUT                   =  I_LAYOUT
              IT_FIELDCAT                 = IT_FIELDCAT
          TABLES
              T_OUTTAB                    = IT_DISPLAY
            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.
        REFRESH IT_DISPLAY.
        CLEAR IT_DISPLAY.
      ELSEIF R2 = 'X'.
        CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
            EXPORTING
                 I_CALLBACK_PROGRAM          = 'ZRMMPD01A'
                 IS_LAYOUT                     =  I_LAYOUT
                 IT_FIELDCAT                 =  IT_FIELDCAT
             TABLES
                  T_OUTTAB                    = IT_FINAL
            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.
        REFRESH IT_DISPLAY.
        CLEAR IT_DISPLAY.
      ENDIF.
    ENDFORM.                    " DISPLAY_OUTPUT
    *&      Form  SELECT_CONDITION
          text
    -->  p1        text
    <--  p2        text
    FORM SELECT_CONDITION.
      IF R2 = 'X'.
        CLEAR WA_DISPLAY.
        SORT IT_DISPLAY BY MATNR SERNR MBLNR ZEILE.
        DELETE ADJACENT DUPLICATES FROM IT_DISPLAY.
        LOOP AT IT_DISPLAY WHERE ZEILE = '0002'.
          READ TABLE IT_DISPLAY WITH KEY MATNR = IT_DISPLAY-MATNR
          SERNR = IT_DISPLAY-SERNR ZEILE = '0001'.
          IF SY-SUBRC = 0.
            DELETE IT_DISPLAY.
          ENDIF.
        ENDLOOP.
        SORT IT_DISPLAY BY MATNR SERNR BWART MBLNR.
        DELETE ADJACENT DUPLICATES FROM IT_DISPLAY.
        LOOP AT IT_DISPLAY.
          IF WA_DISPLAY IS INITIAL.
            WA_DISPLAY =  IT_DISPLAY.
          ENDIF.
          LOOP AT IT_DISPLAY WHERE MATNR = WA_DISPLAY-MATNR
          AND SERNR = WA_DISPLAY-SERNR.
            IF IT_DISPLAY-BUDAT > WA_DISPLAY-BUDAT.
              WA_DISPLAY = IT_DISPLAY.
            ELSE.
              DELETE IT_DISPLAY.
            ENDIF.
          ENDLOOP.
          APPEND WA_DISPLAY TO IT_TEMP.
          CLEAR WA_DISPLAY.
        ENDLOOP.
        DELETE ADJACENT DUPLICATES FROM IT_TEMP.
        IF NOT IT_TEMP[] IS INITIAL.
          IT_FINAL[] = IT_TEMP[].
        ENDIF.
      ENDIF.
    ENDFORM.                    " SELECT_CONDITION
    Regards,
    Ashwini

  • Missing columns in print preview of ALV Grid

    In a report using ALV grid the output is ok in ALV grid when press print preview the 1st column is always missing and the 1st row shift by 1 character. Why is it happening. The same is happening in print out or when list saved in excel also.
    the coding is like
      call function 'REUSE_ALV_GRID_DISPLAY'
        exporting
          i_interface_check        = ' '
          i_buffer_active          = ' '
          i_callback_program       = i_repname
          i_callback_html_top_of_page = 'HTML_TOP_OF_PAGE'
          i_callback_pf_status_set = ' '
          i_callback_user_command = 'FRM_ALV_USER_COMMAND'
          i_structure_name         = 'IT_REPORT'
          i_background_id          = ' '
          is_layout                = i_layout
          it_fieldcat              = i_fieldtab[]
          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                 = it_report.
    Kindly resolve.
    thanks
    anya

    Sample code:
    REPORT ZALV_DISPLAY_CHANGE.
    TABLES :T247.
    TYPE-POOLS SLIS. "Type definitions for alv report
    DATA: IT_FIELDCAT TYPE LVC_T_FCAT,
    WA_FIELDCAT TYPE LVC_S_FCAT.
    DATA: WA_LAYOUT TYPE LVC_S_LAYO.
    DATA : BEGIN OF IT_FINAL OCCURS 0,
    CHECK(1),
    CELLTAB TYPE LVC_T_STYL, " Switch between display/change
    MNR LIKE T247-MNR,
    LTX LIKE T247-LTX,
    END OF IT_FINAL.
    DATA : WA_FINAL LIKE IT_FINAL.
    DATA : W_REPID LIKE SY-REPID.
    W_REPID = SY-REPID.
    REFRESH IT_FINAL.
    SELECT MNR LTX
    FROM T247
    INTO CORRESPONDING FIELDS OF TABLE IT_FINAL
    WHERE SPRAS EQ 'E'.
    WA_FIELDCAT-FIELDNAME = 'CHECK'.
    WA_FIELDCAT-TABNAME = 'IT_FINAL'.
    WA_FIELDCAT-CHECKBOX = 'X'.
    WA_FIELDCAT-EDIT = 'X'..
    WA_FIELDCAT-OUTPUTLEN = '3'.
    WA_FIELDCAT-COL_POS = '1'.
    APPEND WA_FIELDCAT TO IT_FIELDCAT.
    CLEAR WA_FIELDCAT.
    WA_FIELDCAT-FIELDNAME = 'MNR'.
    WA_FIELDCAT-TABNAME = 'IT_FINAL'.
    WA_FIELDCAT-OUTPUTLEN = '8'.
    WA_FIELDCAT-COL_POS = '2'.
    WA_FIELDCAT-REPTEXT = 'Month'.
    APPEND WA_FIELDCAT TO IT_FIELDCAT.
    CLEAR WA_FIELDCAT.
    WA_FIELDCAT-FIELDNAME = 'LTX'.
    WA_FIELDCAT-TABNAME = 'IT_FINAL'.
    WA_FIELDCAT-OUTPUTLEN = '20'.
    WA_FIELDCAT-COL_POS = '3'.
    WA_FIELDCAT-REPTEXT = 'Month Desc'.
    APPEND WA_FIELDCAT TO IT_FIELDCAT.
    CLEAR WA_FIELDCAT.
    DATA: WA_CELLTAB TYPE LVC_S_STYL,
    IT_CELLTAB TYPE LVC_T_STYL,
    L_INDEX TYPE I.
    CLEAR : WA_CELLTAB,WA_FINAL,IT_CELLTAB.
    REFRESH IT_CELLTAB.
    *Initialize the celltab table
    LOOP AT IT_FINAL INTO WA_FINAL.
    L_INDEX = SY-TABIX.
    WA_CELLTAB-FIELDNAME = 'CHECK'.
    WA_CELLTAB-STYLE = CL_GUI_ALV_GRID=>MC_STYLE_ENABLED.
    INSERT WA_CELLTAB INTO TABLE IT_CELLTAB.
    INSERT LINES OF IT_CELLTAB INTO TABLE WA_FINAL-CELLTAB.
    MODIFY IT_FINAL FROM WA_FINAL INDEX L_INDEX.
    ENDLOOP.
    *Make the first five 5 rows as disabled
    CLEAR L_INDEX.
    LOOP AT IT_FINAL INTO WA_FINAL.
    L_INDEX = SY-TABIX.
    IF SY-TABIX LE 5.
    LOOP AT WA_FINAL-CELLTAB INTO WA_CELLTAB.
    IF WA_CELLTAB-FIELDNAME EQ 'CHECK' .
    WA_CELLTAB-STYLE = CL_GUI_ALV_GRID=>MC_STYLE_DISABLED.
    MODIFY WA_FINAL-CELLTAB FROM WA_CELLTAB.
    MODIFY IT_FINAL INDEX L_INDEX FROM WA_FINAL TRANSPORTING CELLTAB.
    ENDIF.
    ENDLOOP.
    ENDIF.
    ENDLOOP.
    WA_LAYOUT-BOX_FNAME = 'CHECK'.
    WA_LAYOUT-NO_ROWMARK = 'X'.
    WA_LAYOUT-STYLEFNAME = 'CELLTAB'.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
    EXPORTING
    I_CALLBACK_PROGRAM = W_REPID
    I_GRID_TITLE = 'GRID DISPLAY'
    IS_LAYOUT_LVC = WA_LAYOUT
    IT_FIELDCAT_LVC = IT_FIELDCAT
    TABLES
    T_OUTTAB = IT_FINAL
    EXCEPTIONS
    PROGRAM_ERROR = 1
    OTHERS = 2.
    Please give me reward point If it is useful
    Thanks
    Murali Poli

  • Several browsers perfect, Navigator shows only top 1/3 of page

    Opera, Firefox, Safari, Seamonkey, Camino and IE all displpay iWeb-=created pages perfectly, but Netscape shows only the top third of pages. Somehow, too, the "Made on a Mac" logo appears at the bottom of the pat that IS diaplayed (i.e., it's "shifted" to show (behid??) the last text Netscape condescends to show.
    Site (still under construction, but at a viewable stage (except in Navigator!)) is at http://www.levencomco.org/default.html
    The default page was done in Freeway as it allowed me to hide the QT controls, which iWeb doesn't seem able to allow, but that page auto-redirects to the main site, which is all done in iWeb.
    Any suggestions, please?
    TIA.
    iMac G5 17" "iSight"   Mac OS X (10.4.5)  

    Hi,
    In the function  use the top-of-page event as follows:
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
            EXPORTING
                    I_BYPASSING_BUFFER          =
                    I_BUFFER_ACTIVE             =
                    I_INTERFACE_CHECK           = ' '
                 I_CALLBACK_PROGRAM          = 'ZRPMSLM'
                    I_CALLBACK_PF_STATUS_SET    = ' '
                    I_CALLBACK_USER_COMMAND     = ' '
               <b>  I_CALLBACK_TOP_OF_PAGE      = 'TOP'</b>
    Define whatever to appear in top-of page in a subroutine named TOP.
    Hope this helps.
    Reward if helpful.
    Regards,
    Sipra

  • PROGRAM_ERROR in ALV Exceptions

    Hi All,
       Can any one Please tell me when the 'PROGRAM_ERROR' Exception is handled in REUSE_ALV_GRID_DISPLAY.
    What are the conditions to get this exception when we use FM 'REUSE_ALV_GRID_DISPLAY'. I read the documentation i got some thing but i want to know where it is handled in program.
    Thanks& Regards,
    Kiran

    Hello,
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
       EXPORTING
            I_BYPASSING_BUFFER          =
            I_BUFFER_ACTIVE             =
            I_INTERFACE_CHECK           = ' '
            I_CALLBACK_PROGRAM          = ' '
            I_CALLBACK_PF_STATUS_SET    = ' '
            I_CALLBACK_USER_COMMAND     = ' '
            I_SCREEN_START_COLUMN       = 0
            I_SCREEN_START_LINE         = 0
            I_SCREEN_END_COLUMN         = 0
            I_SCREEN_END_LINE           = 0
            I_HTML_HEIGHT_TOP           =
            I_HTML_HEIGHT_END           =
       IMPORTING
            E_EXIT_CAUSED_BY_CALLER     =
            ES_EXIT_CAUSED_BY_USER      =
         TABLES
              T_OUTTAB                    =
    <b>    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.</b>
    Regards,
    Naimesh

  • ALV Print

    Hi ,
    I am trying to print the alv output ,but i dont want the popup screen which comes before the print,how can i  supress the screen,please suggest.below is my code.
    CALL FUNCTION 'GET_PRINT_PARAMETERS'
                  EXPORTING
                       mode                   = 'CURRENT'
                       immediately            = ''
                       line_size              = ''              "#EC *
               new_list_id            = l_new_list_id
                       no_dialog              = 'X'
                       in_parameters          = mstr_print_parms
                       in_archive_parameters  = t_arc_params
                  IMPORTING
                       out_archive_parameters = t_arc_params
                       out_parameters         = mstr_print_parms
                       valid                  = l_valid
                  EXCEPTIONS
                       archive_info_not_found = 1
                       invalid_print_params   = 2
                       invalid_archive_params = 3
                       OTHERS                 = 4.
        CLEAR variant-handle.
        variant-variant = p_vari.
        CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
           EXPORTING
              I_INTERFACE_CHECK        = ' '
                i_buffer_active          = space "c_x                  "ALRK241034
                i_callback_program       = 'Report Name'
                i_callback_pf_status_set = 'PF_STATUS_SET'
                i_callback_user_command  = 'HANDLE_USER_COMMAND'
              I_STRUCTURE_NAME         = 'BSEG'
                is_layout                = layout
                it_fieldcat              = fieldcat
                i_default                = 'X'
    (del)     i_save                   = 'A'                 "Note 319936
                i_save                   = l_save              "Note 319936
                is_variant               = variant
                is_print                 = gs_print
                it_events                = events
                it_event_exit            = it_event_exit
             TABLES
                  t_outtab                 = xbseg
             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.

    i think the length of table exeeds the layout length,,,
    in ur fieldcatalog,assign some fixedlength for all fields,
    there is one valiable   wa_fcat-outputlen = '0004'.
    u have to pass some fixed length and try d out put.
    regards,
    ramesh.

  • Handle variants in ALV.

    Hi,
             I am creating an interactive ALV lists.The basic list has default variant.
    when I dbl click contract in basic ALV the second ALV display the details.
    Both ALVs r created using REUSE_ALV_GRID_DISPLAY.
    in first FM I gave like
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
           EXPORTING
                i_interface_check       = ' '
                i_buffer_active         = ' '
                i_callback_program      = g_repid
                i_callback_user_command = 'DO_MESSAGE'  "form
                i_grid_title            = l_header
                is_layout               = layt
                it_fieldcat             = tcat
                i_save                  = 'X'
           TABLES
                t_outtab                = itab
           EXCEPTIONS
                program_error           = 1
                OTHERS                  = 2.
      CHECK NOT sy-subrc IS INITIAL.
    Then the second ALV FM
        fieldcat:
          1 'VBELN'    'CHAR'  10 'CONTRACT'(089)       ''    '' '',
          2 'BELNR'    'CHAR'  10 'DOCUMENT NUMBER'(090) 'X'   '' '',
          3 'BLDAT'    'DATS'  10 'DOC.DATE'(091)       ' '   '' '',
          8 'L_WTGBTR' 'CURR'   15 'AMOUNT'(092)         ' '   'R' 'X',
          5 'KEY'      'NUMC'  15 'KEY'(093)            ' '   '' '',
          6 'LTEXT'    'CHAR'  28 'DESCRIPTION'(094)    ' '   '' '',
          7 'CTGY'     'CHAR'   4 'CTGY'(095)           ' '   '' ''.
      ENDIF.
      gw_sort-fieldname = 'VBELN'.
      gw_sort-up        = 'X'.
      gw_sort-spos      = 1.
      gw_sort-subtot    = 'X'.
      APPEND gw_sort TO gt_sort.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
           EXPORTING
                i_buffer_active         = ' '
                i_callback_program      = pgm
                i_callback_user_command = 'DISP_ITEM'
                is_layout               = gt_layout
                it_fieldcat             = gt_fieldcat
                it_sort                 = gt_sort
           TABLES
                t_outtab                = gt_covp
           EXCEPTIONS
                program_error           = 1
                OTHERS                  = 2.
    when I pass I_SAVE = 'A' or 'U' or 'X' then the result will be displayed with
    single field.the other fields r hidden.That single field is displayed with length of 111ch.but its actual size is 10.
    without this its working fine.but I can't enable variants save button in second ALV.
    how to enable it.
    Regards,
    bala

    The problem is with the IS_VARIANT parameter. You must be passing the same values / no values to both the list.
    You should be using this parameter and differentiate between these list by passing different values to the HANDLE field for the different lists. Then you will have separate variants for each of the list.
    The value could be anything, as simple as FIRST and SECOND.
    Regards,
    Ravi
    Note - Please mark all the helpful answers

  • Retrive open order and open delivery value x custome

    Hi,
    how can i obtain a list of open order value and open delivery value per customer?
    10x
    bye

    Check the following code which give details of pending orders & values and it can be modified as per ur requirement.
    REPORT  ZPEND_ORDER no standard page heading line-size 255.
    *& Purpose : Details of Sale order having pending deliveries           *
    *&           ( For Rake order handling )                               *
    tables : vbak, vbap, likp, lips, kna1, vbuk, vbpa, vepvg, vbfa, vbup.
    data : pend_qty like  vbap-kwmeng,
           dlv_qty like  vbap-kwmeng,
           ord_qty like vbap-kwmeng.
    data: begin of itab_vbak occurs 0,
          vbeln like vbak-vbeln,           "sales order no
          audat like vbak-audat,           " created date
          auart like vbak-auart,           " Sales Document Type
          vkorg like vbak-vkorg,           "Sales Organization
          vtweg like vbak-vtweg,           " distribution channel
          spart like vbak-spart,           " Division
          vkgrp like vbak-vkgrp,           " Sales group
          vkbur like vbak-vkbur,           " Sales office
          kunnr like vbak-kunnr,           " sold to party
          kunag like vbak-kunnr,           " ship to party
          cust like vbak-kunnr,            " sold to party
          ship like kna1-name1,            " ship to party
          city like kna1-ort01,            " ship to party location
          deliv like likp-vbeln,           " delivery
          matnr like vbap-matnr,
          arktx like vbap-arktx,           " mat description
          kwmeng like vbap-kwmeng,
          kbmeng like vbap-kbmeng,
          fkrel like vbap-matnr,
          vstel like vbap-vstel,
          route like vbap-route,
          chln_no like likp-xabln,
          grn_no like likp-bolnr,
          truck_no like likp-traid,
          dlv_dt like vbfa-erdat,           "dlvy date
          ord_qty like vbap-kwmeng,
          dlvd_qty like vbap-kwmeng,
          pend_qty like vbap-kwmeng,
          kzwi5 like vbap-kzwi5,
          posnr like vbap-posnr,
    end of itab_vbak.
    data  posnr like vbap-posnr.
    *FOR ALV DISPLAY
    type-pools: slis.
    constants: formname_top_of_page type slis_formname value 'TOP_OF_PAGE'.
    *Data Decelararion for alv display
    data: i_fieldtab type slis_t_fieldcat_alv,
          i_heading  type slis_t_listheader,
          i_layout   type slis_layout_alv,
          i_sort     type slis_t_sortinfo_alv,
          i_print    type slis_print_alv,
          i_events   type slis_t_event,
          i_repname  like sy-repid,
          f2code   like sy-ucomm value  '&ETA',
          i_save(1) type c,
          i_exit(1) type c,
          i_variant like disvariant,
          h_text(50).
    start-of-selection.
      selection-screen skip 1.
      selection-screen begin of block v1 with frame title text-001.
      selection-screen skip 1.
      select-options:
                     ord_no for vepvg-vbeln,
                     audat for vbak-audat obligatory,
                     matnr for vbap-matnr,
                     spart for vbap-spart obligatory,
                     vstel for vepvg-vstel obligatory,
                     sale_org for vbak-vkorg obligatory,
                     sale_off for vbak-vkbur.
      selection-screen skip 1.
    check box for ALV display
      parameters p_alv as checkbox.
      selection-screen end of block v1.
      selection-screen skip 1.
      data:   ftab(72) occurs 5 with header line.
      refresh ftab.
      ftab = 'VBELN'. append ftab.
      refresh itab_vbak.
    initialization.
      i_repname = sy-repid.
    start-of-selection.
      select vbeln audat vkorg vtweg spart vkbur kunnr from vbak
           into
           (itab_vbak-vbeln, itab_vbak-audat,
            vbak-vkorg, vbak-vtweg, vbak-spart,
            itab_vbak-vkbur, itab_vbak-kunnr)
           where vbeln in ord_no
           and audat in audat
           and vbtyp = 'C'
           and vkorg in sale_org
           and spart in spart
           and vkbur in sale_off.
        if sy-subrc = 0.
          select posnr kwmeng kbmeng matnr arktx  "added for mat description
                   fkrel vstel route kzwi5 spart
                   from vbap into corresponding fields of itab_vbak
                   where vbeln = itab_vbak-vbeln .
            check ( itab_vbak-fkrel = 'A' or  "Delivery-related billing document
                    itab_vbak-fkrel = 'D' )   "Relevant for pro forma
              and itab_vbak-vstel in vstel
              and itab_vbak-matnr in matnr
              and itab_vbak-spart in spart.
            select single * from vbup where vbeln = itab_vbak-vbeln
                                        and posnr = itab_vbak-posnr.
            check vbup-gbsta ne 'C'.
            dlv_qty = 0.
            select single kunnr from vbpa into itab_vbak-kunnr
                   where vbeln = itab_vbak-vbeln
                   and parvw = 'WE'.
            select single name1 ort01 from kna1 into
                   (itab_vbak-cust, itab_vbak-city)
                    where kunnr = itab_vbak-kunnr.
          in case of partially processed sale order get delivery details
            clear : dlv_qty, itab_vbak-dlv_dt, itab_vbak-dlvd_qty, itab_vbak-chln_no,
                    itab_vbak-grn_no, itab_vbak-truck_no.
            if vbup-gbsta eq 'B'. "partially processed
              dlv_qty = 0.
            get details from delivery
              select vbfavbeln vbfarfmng vbfavbtyp_n vbfaerdat
                 into (vbfa-vbeln, vbfa-rfmng, vbfa-vbtyp_n, vbfa-erdat)
                 from vbfa
                 where vbelv = itab_vbak-vbeln
                   and posnv = itab_vbak-posnr.
                check vbfa-vbtyp_n = 'J'.
                clear : dlv_qty, itab_vbak-dlv_dt, itab_vbak-dlvd_qty, itab_vbak-chln_no,
                        itab_vbak-grn_no, itab_vbak-truck_no.
                select single erdat xabln bolnr traid kunag
                   into (itab_vbak-dlv_dt, itab_vbak-chln_no, itab_vbak-grn_no,
                         itab_vbak-truck_no, itab_vbak-kunag)
                   from likp
                   where vbeln = vbfa-vbeln.
                if sy-subrc = 0.
                  dlv_qty = dlv_qty + vbfa-rfmng.
                  itab_vbak-dlv_dt = vbfa-erdat.
                  itab_vbak-dlvd_qty = dlv_qty.
                  itab_vbak-deliv = vbfa-vbeln.
                endif.
                append itab_vbak.
              endselect.
            elseif vbup-gbsta eq 'A'.
            for unprocessed sale order
            ship to party details
              itab_vbak-kunag = itab_vbak-kunnr.
              itab_vbak-ship = itab_vbak-cust.
              append itab_vbak.
            endif.
          endselect.
        endif.
        clear itab_vbak.
      endselect.
      loop at itab_vbak.
      clear with change in document / item no
        on change of itab_vbak-vbeln or itab_vbak-posnr.
          clear: dlv_qty,ord_qty,pend_qty.
        endon.
        at new posnr.
        In case full qty not delivered
          if itab_vbak-kwmeng > itab_vbak-dlvd_qty.
            select single vbpa~kunnr into vbpa-kunnr
               from vbpa
               where vbeln = itab_vbak-vbeln
                and  posnr = itab_vbak-posnr
                and  parvw = 'WE'.
            if sy-subrc eq 0.
              itab_vbak-kunag = vbpa-kunnr.
              select single name1 ort01 from kna1 into
                    (itab_vbak-ship, itab_vbak-city)
                     where kunnr = itab_vbak-kunag.
              if sy-subrc ne 0.
                select single vbpa~kunnr into vbpa-kunnr
                   from vbpa
                   where vbeln = itab_vbak-vbeln
                   and parvw = 'WE'.
                itab_vbak-kunag = vbpa-kunnr.
                if sy-subrc ne 0 and p_alv ne 'X'.
                  write :/ 'vbpadetls' , itab_vbak-vbeln, itab_vbak-posnr, itab_vbak-vbeln.
                endif.
              endif.
            endif.
          endif.
          itab_vbak-ord_qty = itab_vbak-kwmeng.
        Delivered Qty & Pending qty
          dlv_qty = dlv_qty + itab_vbak-dlvd_qty.
          itab_vbak-pend_qty = itab_vbak-kwmeng - dlv_qty.
          modify itab_vbak transporting kunag ship city dlvd_qty ord_qty pend_qty .
        endat.
      endloop.
    end-of-selection.
      sort itab_vbak by vbeln posnr audat kunnr matnr.
      if p_alv ne 'X'.
        loop at itab_vbak.
          select single kna1name1 kna1ort01
                 into
                 (kna1-name1, kna1-ort01)
                 from kna1
                 where kunnr = itab_vbak-kunnr.
          pend_qty = itab_vbak-ord_qty - itab_vbak-dlvd_qty.
          format color col_normal.
          write : /01(10) itab_vbak-vbeln,
                  12(10)  itab_vbak-audat,
                  24(8)  itab_vbak-kunag no-zero,
                  34(6)  itab_vbak-posnr no-zero,
                  42(10) itab_vbak-matnr no-zero,
                  54(15) itab_vbak-arktx,
                  72(25) itab_vbak-ship,
                  100(15) itab_vbak-city,
                  118(8)  itab_vbak-ord_qty,
                  128(10) itab_vbak-route,
                  140(10) itab_vbak-dlv_dt,
                  152(10) itab_vbak-dlvd_qty,
                  164(10)  itab_vbak-chln_no,
                  176(10)  itab_vbak-grn_no,
                  188(10)  itab_vbak-truck_no,
                  200(10) itab_vbak-pend_qty,
                  218(15) itab_vbak-kzwi5 left-justified.
          format reset.
          at end of audat.
            sum.
            pend_qty = itab_vbak-ord_qty - itab_vbak-dlvd_qty.
            format color col_background.
            write: /118(8) itab_vbak-ord_qty,
                   152(10) itab_vbak-dlvd_qty,
                   200(10) pend_qty,
                   218 itab_vbak-kzwi5 left-justified.
            format reset.
          endat.
          at last.
            sum.
            pend_qty = itab_vbak-ord_qty - itab_vbak-dlvd_qty.
            format color col_total.
            write : /5 'Grand Total : '.
            write: /118(8) itab_vbak-ord_qty,
                  152(10) itab_vbak-dlvd_qty,
                  200(10) pend_qty,
                  218 itab_vbak-kzwi5 left-justified.
            format reset.
          endat.
        endloop.
      else.
      for ALV Display
        i_repname = sy-repid.
        perform fieldcat using i_fieldtab[].
        perform eventtab using i_events[].
        perform comment using i_heading[].
        perform call_alv.
        perform build_layout using i_layout.
      endif.
    top-of-page.
      if p_alv ne 'X'.
        format color col_heading.
        write: /01 'Ord No',
                12 'Ord Date',
                24 'Sold to Party',
                34 'Item No',
                42 'Mat No',
                54 'Mat Descp',
                72 'Ship to Party',
                100 'City',
                118 'Qty',
                128 'Route',
                140 'Dlv Date',
                152 'Dlv Qty',
                164 'Challan No',
                176 'GRN No',
                188 'Truck No',
                200 'Pend Qty',
                218 'Total Value'.
        format reset.
      endif.
    *&      Form  fieldcat
          text
         -->P_I_FIELDTAB[]  text
    form fieldcat using p_fieldtab type slis_t_fieldcat_alv.
      data: l_fieldcat type slis_fieldcat_alv.
      clear l_fieldcat.
      l_fieldcat-tabname    = 'ITAB_VBAK'.
      l_fieldcat-fix_column = 'X'.
      l_fieldcat-no_out     = ' '.
      l_fieldcat-fieldname  = 'VKBUR'.
      l_fieldcat-outputlen  = 6.
      l_fieldcat-seltext_l  = 'Sales Office'.
      l_fieldcat-no_zero = 'X'.
      append l_fieldcat to p_fieldtab.
      l_fieldcat-fieldname  = 'VSTEL'.
      l_fieldcat-outputlen  = 5.
      l_fieldcat-seltext_l  = 'Shipping Point'.
      l_fieldcat-no_zero = ' '.
      append l_fieldcat to p_fieldtab.
      l_fieldcat-fieldname  = 'VBELN'.
      l_fieldcat-outputlen  = 10.
      l_fieldcat-seltext_l  = 'Order No.'.
      l_fieldcat-no_zero = 'X'.
      l_fieldcat-hotspot = 'X'.
      append l_fieldcat to p_fieldtab.
      l_fieldcat-fieldname  = 'AUDAT'.
      l_fieldcat-outputlen  = 10.
      l_fieldcat-seltext_l  = 'Doc Date'.
      l_fieldcat-hotspot = ''.
      l_fieldcat-no_zero = ' '.
      append l_fieldcat to p_fieldtab.
      l_fieldcat-fieldname  = 'POSNR'.
      l_fieldcat-outputlen  = 5.
      l_fieldcat-seltext_l  = 'Item'.
      l_fieldcat-no_zero = 'X'.
      append l_fieldcat to p_fieldtab.
      l_fieldcat-fieldname  = 'MATNR'.
      l_fieldcat-outputlen  = 10.
      l_fieldcat-seltext_l  = 'Material No'.
      l_fieldcat-no_zero = 'X'.
      append l_fieldcat to p_fieldtab.
      l_fieldcat-fieldname  = 'ARKTX'.
      l_fieldcat-outputlen  = 15.
      l_fieldcat-seltext_l  = 'Mat. Description'.
      l_fieldcat-no_zero = 'X'.
      append l_fieldcat to p_fieldtab.
      l_fieldcat-fieldname  = 'KUNNR'.
      l_fieldcat-outputlen  = 8.
      l_fieldcat-seltext_l  = 'Sold to Party'.
      l_fieldcat-no_zero = 'X'.
      append l_fieldcat to p_fieldtab.
      l_fieldcat-fieldname  = 'CUST'.
      l_fieldcat-outputlen  = 15.
      l_fieldcat-seltext_l  = 'Sold to Party Descp.'.
      l_fieldcat-no_zero = 'X'.
      append l_fieldcat to p_fieldtab.
      l_fieldcat-fieldname  = 'KUNAG'.
      l_fieldcat-outputlen  = 8.
      l_fieldcat-seltext_l  = 'Ship to Party'.
      l_fieldcat-no_zero = 'X'.
      append l_fieldcat to p_fieldtab.
      l_fieldcat-fieldname  = 'SHIP'.
      l_fieldcat-outputlen  = 15.
      l_fieldcat-seltext_l  = 'Ship to Party Descp'.
      l_fieldcat-no_zero = 'X'.
      append l_fieldcat to p_fieldtab.
      l_fieldcat-fieldname  = 'CITY'.
      l_fieldcat-outputlen  = 13.
      l_fieldcat-seltext_l  = 'City'.
      l_fieldcat-no_zero = ' '.
      append l_fieldcat to p_fieldtab.
      l_fieldcat-fieldname  = 'DELIV'.
      l_fieldcat-outputlen  = 10.
      l_fieldcat-seltext_l  = 'Delivery No.'.
      l_fieldcat-no_zero = 'X'.
      l_fieldcat-hotspot = 'X'.
      append l_fieldcat to p_fieldtab.
      l_fieldcat-fieldname  = 'ORD_QTY'.
      l_fieldcat-outputlen  = 10.
      l_fieldcat-seltext_l  = 'Qty'.
      l_fieldcat-no_zero = ' '.
      l_fieldcat-hotspot = ' '.
      append l_fieldcat to p_fieldtab.
      l_fieldcat-fieldname  = 'ROUTE'.
      l_fieldcat-outputlen  = 10.
      l_fieldcat-seltext_l  = 'Route'.
      l_fieldcat-no_zero = 'X'.
      append l_fieldcat to p_fieldtab.
      l_fieldcat-fieldname  = 'DLV_DT'.
      l_fieldcat-outputlen  = 10.
      l_fieldcat-seltext_l  = 'Delivered date'.
      append l_fieldcat to p_fieldtab.
      l_fieldcat-fieldname  = 'DLVD_QTY'.
      l_fieldcat-outputlen  = 10.
      l_fieldcat-seltext_l  = 'Delivered Qty'.
      l_fieldcat-no_zero = ' '.
      append l_fieldcat to p_fieldtab.
      l_fieldcat-fieldname  = 'CHLN_NO'.
      l_fieldcat-outputlen  = 15.
      l_fieldcat-seltext_l  = 'Challan No'.
      append l_fieldcat to p_fieldtab.
      l_fieldcat-fieldname  = 'GRN_NO'.
      l_fieldcat-outputlen  = 15.
      l_fieldcat-seltext_l  = 'GR Number'.
      append l_fieldcat to p_fieldtab.
      l_fieldcat-fieldname  = 'TRUCK_NO'.
      l_fieldcat-outputlen  = 10.
      l_fieldcat-seltext_l  = 'Truck No'.
      append l_fieldcat to p_fieldtab.
      l_fieldcat-fieldname  = 'PEND_QTY'.
      l_fieldcat-outputlen  = 10.
      l_fieldcat-seltext_l  = 'Pending Qty'.
      l_fieldcat-no_zero = ' '.
      append l_fieldcat to p_fieldtab.
      l_fieldcat-fieldname  = 'KZWI5'.
      l_fieldcat-outputlen  = 13.
      l_fieldcat-seltext_l  = 'Value'.
      append l_fieldcat to p_fieldtab.
      clear l_fieldcat.
    endform.                    " FIELDCAT
    *&      Form  EVENTTAB
          text
         -->P_I_EVENTS[]  text
    form eventtab using p_events type slis_t_event.
      data: ls_event type slis_alv_event.
      call function 'REUSE_ALV_EVENTS_GET'
        exporting
          i_list_type = 0
        importing
          et_events   = p_events.
      read table p_events with key name = slis_ev_top_of_page
                               into ls_event.
      if sy-subrc = 0.
        move formname_top_of_page to ls_event-form.
        append ls_event to p_events.
      endif.
    endform.                    " EVENTTAB
    *&      Form  BUILD_LAYOUT
          text
         -->P_LAYOUT   text
    form build_layout using p_layout type slis_layout_alv.
      p_layout-f2code       = f2code.
      p_layout-zebra        = 'X'.
      p_layout-detail_popup = 'X'.
    endform.                    " BUILD_LAYOUT
    *&      Form  COMMENT
          text
         -->P_I_HEADING[]  text
    form comment  using    p_i_heading type slis_t_listheader.
      data: hline type slis_listheader,
            text(60) type c,
            sep(20) type c.
      clear: hline, text.
      hline-typ  = 'H'.
      write : 'Pending Sale Order Details' to hline-info.
      append hline to i_heading.
    endform.                    " COMMENT
    *&      Form  TOP_OF_PAGE
          text
    form top_of_page.
      call function 'REUSE_ALV_COMMENTARY_WRITE'
        exporting
          it_list_commentary = i_heading
          i_logo             = 'ALV_REPORT'.
    endform.                    " TOP_OF_PAGE
    *&      Form  call_alv
          text
    -->  p1        text
    <--  p2        text
    form call_alv .
      call function 'REUSE_ALV_GRID_DISPLAY'
        exporting
          i_interface_check        = ' '
          i_buffer_active          = ' '
          i_callback_program       = i_repname
          i_callback_pf_status_set = ' '
          i_callback_user_command  = 'FRM_ALV_USER_COMMAND'
          i_structure_name         = 'ITAB_VBAK'
          i_background_id          = ' '
          is_layout                = i_layout
          it_fieldcat              = i_fieldtab
          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                 = itab_vbak.
      if sy-subrc <> 0.
        write: 'SY-SUBRC: ', sy-subrc, 'REUSE_ALV_LIST_DISPLAY'.
      endif.
    endform.                    " call_alv
    *&      Form  frm_alv_user_command
          text
         -->UCOMM      text
         -->SELFIELD   text
    form frm_alv_user_command using ucomm like sy-ucomm
                  selfield type slis_selfield.
      case ucomm.
        when '&IC1'.
          if selfield-tabname = 'ITAB_VBAK'.
            if selfield-fieldname = 'VBELN'.
              read table itab_vbak index selfield-tabindex.
              if sy-subrc = 0.
                set parameter id 'AUN' field itab_vbak-vbeln.
                call transaction 'VA03' and skip first screen.
              endif.
            elseif selfield-fieldname = 'DELIV'.
              read table itab_vbak index selfield-tabindex.
              if sy-subrc = 0.
                set parameter id 'VL' field itab_vbak-deliv.
                call transaction 'VL03N' and skip first screen.
              endif.
            endif.
          endif.
      endcase.
    endform.                    "frm_alv_user_command

  • Button in ALV toolbar with REUSE_ALV_GRID_DISPLAY

    Hello friends,
    I am Displaying ALV using REUSE_ALV_GRID_IDSPLAY. i need to add a button in grid toolbar.
    i am doing it by adding a new ZSTATUS in  SET PF_STATUS. but the problem is that it is removing the standard buttons.
    i want to add button without removing the standard butttons.
    Please help.
    thanx in advance.
    Krishan Kumar

    hai friends.......
                       i had tried to add custom button to the reuse_alv_grid_display.please send  the coding...
    REPORT  ZHAJI_SAMPLE.
    tables:lfa1.
    TYPE-POOLS : slis.
    SELECT-OPTIONS: lifnr FOR lfa1-lifnr.
    types:begin of fs,
          flag type c,
          lifnr type lfa1-lifnr,
          land1 type lfa1-land1,
          name1 type lfa1-name1,
          end of fs.
    data: itab type table of fs,
          wa type fs.
    data: fcat type slis_t_fieldcat_alv,
          fcat1 type slis_fieldcat_alv.
    data: rt_extab type slis_t_extab.
    *CONSTANTS : c_check(1) VALUE 'X'.
    select lifnr land1 name1 from lfa1 into corresponding FIELDS OF table
    itab where lifnr IN
    lifnr.
    perform sub.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      I_INTERFACE_CHECK                 = ' '
      I_BYPASSING_BUFFER                = ' '
      I_BUFFER_ACTIVE                   = ' '
       I_CALLBACK_PROGRAM                = 'sy-repid'
       I_CALLBACK_PF_STATUS_SET           = 'PF'
      I_CALLBACK_USER_COMMAND           = ' '
      I_CALLBACK_TOP_OF_PAGE            = ' '
      I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
      I_CALLBACK_HTML_END_OF_LIST       = ' '
      I_STRUCTURE_NAME                  =
      I_BACKGROUND_ID                   = ' '
    I_GRID_TITLE                      = 'vendor details'
      I_GRID_SETTINGS                   =
    IS_LAYOUT                         = LAYOUT
       IT_FIELDCAT                       = fcat
      IT_EXCLUDING                      =
      IT_SPECIAL_GROUPS                 =
      IT_SORT                           =
      IT_FILTER                         =
      IS_SEL_HIDE                       =
      I_DEFAULT                         = 'X'
      I_SAVE                            = ' '
      IS_VARIANT                        =
    IT_EVENTS                         = I_EVENT
      IT_EVENT_EXIT                     =
      IS_PRINT                          =
      IS_REPREP_ID                      =
      I_SCREEN_START_COLUMN             = 0
      I_SCREEN_START_LINE               = 0
      I_SCREEN_END_COLUMN               = 0
      I_SCREEN_END_LINE                 = 0
      IT_ALV_GRAPHICS                   =
      IT_HYPERLINK                      =
      IT_ADD_FIELDCAT                   =
      IT_EXCEPT_QINFO                   =
      I_HTML_HEIGHT_TOP                 =
      I_HTML_HEIGHT_END                 =
    IMPORTING
      E_EXIT_CAUSED_BY_CALLER           =
      ES_EXIT_CAUSED_BY_USER            =
      TABLES
        T_OUTTAB                          = itab
    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 sub.
    fcat1-fieldname = 'FLAG'.
    fcat1-tabname = 'TAB'.
    *fcat1-COL_POS = 1.
    fcat1-checkbox = 'X'.
    fcat1-edit         = 'X'.
    append fcat1 to fcat.
    CLEAR FCAT1.
    fcat1-fieldname = 'LIFNR'.
    fcat1-ref_tabname = 'LFA1'.
    fcat1-ref_fieldname = 'LIFNR'.
    FCAT1-outputlen = 10.
    append fcat1 to fcat.
    CLEAR FCAT1.
    fcat1-fieldname = 'NAME1'.
    fcat1-ref_tabname = 'LFA1'.
    fcat1-ref_fieldname = 'NAME1'.
    append fcat1 to fcat.
    CLEAR FCAT1.
    fcat1-fieldname = 'LAND1'.
    fcat1-ref_tabname = 'LFA1'.
    fcat1-ref_fieldname = 'LAND1'.
    append fcat1 to fcat.
    CLEAR FCAT1.
    endform.
    form PF USING rt_extab TYPE slis_t_extab.
    SET PF-STATUS 'ZHAJI_P1' .
    ENDFORM.
    just give the fine coding

  • Button in alv grid cell using REUSE_ALV_GRID_DISPLAY

    Hi all,
      I want to make the contents of 2 columns of my alv grid as push button with values as text on it. I am not using classes or methods but alv grid fm. On clicking the button one dialog box has to pop up which gives edit option for the values in that coloumn, my question is how to introduce button in alv grid cell? if i can use t_fieldcatalog-icon, then please give me the complete steps for that.
    Thanks.

    this may helps u
    u need to copy stadard screen elemetn to MARATAB1(at PF -STATUS)
    You should copy the 'STANDARD' GUI status from program <b>SAPLSLVC_FULLSCREEN</b>
    type this one in SE41 program name is:<b>SAPLSLVC_FULLSCREEN</b>
    status : <b>STANDARD_FULLSCREEN</b>
    and copy it ...
             Type-pool
    type-pools slis.
             Tables
    tables: mara,sscrfields.
           Selection screen
    select-options: s_matnr for mara-matnr.
    PARAMETERS: p_email TYPE somlreci1-receiver.
    TYPES: BEGIN OF t_charmara,
      matnr(18)  TYPE c,                   " Material Number
      ernam(12)  TYPE c,                   " Person Credited
      aenam(12)  TYPE c,                   " Person Changed Object
      pstat(15)  TYPE c,                   " Maintenance Status
    END OF t_charmara.
             Data Declarations
    data: rt_extab    type slis_t_extab,   " Table of inactive function
                                           codes
          wa_charmara TYPE t_charmara,     " work area of mara Table
          fs_fieldcat type slis_t_fieldcat_alv,
                                           " Field catalog with field
                                           descriptions
          t_fieldcat  like line of fs_fieldcat,
                                           " Table of Field catalog
          r_ucomm     like sy-ucomm,       " User Command
          rs_selfield TYPE slis_selfield.  " cursor position ALV
    data: filedlayout   type slis_layout_alv,
          heading       type slis_t_listheader with header line,
          t_event       type slis_t_event.
    data: fs_event      like line of t_event.
    data: fs_sort type slis_sortinfo_alv,
           t_sort type slis_t_sortinfo_alv.
    data: w_char(200) type c,
          w_matnr     type mara-matnr.
    fs_sort-fieldname = 'MATNR'.
    fs_sort-up        = 'X'.
    fs_sort-group     = '*'.
    append fs_sort to t_sort.
    clear fS_sort.
    DATA:   t_packing_list  LIKE sopcklsti1 OCCURS 0 WITH HEADER LINE,
            t_contents      LIKE solisti1   OCCURS 0 WITH HEADER LINE,
            t_receivers     LIKE somlreci1  OCCURS 0 WITH HEADER LINE,
            t_attachment    LIKE solisti1   OCCURS 0 WITH HEADER LINE,
            t_object_header LIKE solisti1   OCCURS 0 WITH HEADER LINE,
            w_cnt           TYPE i,
            w_sent_all(1)   TYPE c,
            w_doc_data      LIKE sodocchgi1,
            gd_error        TYPE sy-subrc,
            gd_reciever     TYPE sy-subrc.
             Internal Tables
    data: begin of it_mara occurs 0,
            matnr like mara-matnr,         " Material Number
            ernam like mara-ernam,         " Person Credited
            aenam like mara-aenam,         " Person Changed Object
            pstat like mara-pstat,         " Maintenance Status
          end of it_mara.
    DATA:   it_message TYPE STANDARD TABLE OF solisti1 INITIAL SIZE 0
                    WITH HEADER LINE.
    DATA:   it_attach TYPE STANDARD TABLE OF solisti1 INITIAL SIZE 0
                    WITH HEADER LINE.
    *at selection-screen on field event
    AT SELECTION-SCREEN on s_matnr.
    PERFORM f0100_VALIDATE_MATERIAL_NUMBER.
    start-of-selection.
    retrive Data from the data base table Mara
    perform retrive_data_from_mara.
    end-of-selection.
    *Field catalog with field descriptions
    perform fieldcat.
    *perform top_of_page.
    PERFORM EVENT_LIST.
    *ALV Grid Display
    perform alv_display.
    Creating one Push button ENTER
    perform maratab1 USING    RT_EXTAB.
    *&      Form  f0100_VALIDATE_MATERIAL_NUMBER
          text
    There are no interface parameters to be passed to this subroutine
    FORM F0100_VALIDATE_MATERIAL_NUMBER .
    select matnr                          " Material Number
       from mara
      up to 1 rows
       into mara-matnr
      where matnr in s_matnr.
      endselect.
    IF sy-subrc NE 0.
          clear sscrfields-ucomm.
          MESSAGE e000 WITH 'Enter valid Material number'(003).
        ENDIF.                             " IF sy-subrc NE 0
    ENDFORM.                               " f0100_VALIDATE_MATERIAL_NUMBER
    *&      Form  retrive_data_from_mara
          text
    *There are no interface parameters to be passed to this subroutine
    FORM retrive_data_from_mara .
    select   matnr                         " Material Number
             ernam                         " Person Credited
             aenam                         " Person Changed Object
             pstat                         " Maintenance Status
        from mara
        into table It_mara
       where matnr in s_matnr.
    IF sy-subrc NE 0.
          MESSAGE i001 WITH 'Records are not found'.
          exit.
          stop.
        ENDIF.                             " IF sy-subrc NE 0
    ENDFORM.                               " retrive_data_from_mara
    *&      Form  fieldcat
          text
    *There are no interface parameters to be passed to this subroutine
    FORM fieldcat .
    *field catalog for MATNR
      t_FIELDCAT-REF_TABNAME = 'MARA'.
      t_fieldcat-fieldname   = 'MATNR'.
      t_fieldcat-col_pos     = 1.
      append t_fieldcat to fs_fieldcat.
      clear t_fieldcat.
    *field catalog for ERNAM
      t_FIELDCAT-REF_TABNAME = 'MARA'.
      t_fieldcat-fieldname   = 'ERNAM'.
      t_fieldcat-col_pos     = 2.
      append t_fieldcat to fs_fieldcat.
      clear t_fieldcat.
    *field catalog for AENAM
      t_FIELDCAT-REF_TABNAME = 'MARA'.
      t_fieldcat-fieldname   = 'AENAM'.
      t_fieldcat-col_pos     = 3.
      append t_fieldcat to fs_fieldcat.
      clear t_fieldcat.
    *field catalog for PSTAT
      t_FIELDCAT-REF_TABNAME = 'MARA'.
      t_fieldcat-fieldname   = 'PSTAT'.
      t_fieldcat-col_pos     = 4.
      append t_fieldcat to fs_fieldcat.
      clear t_fieldcat.
    ENDFORM.                               " fieldcat
    *&      Form  EVENT_LIST
          text
    *There are no interface parameters to be passed to this subroutine
    FORM EVENT_LIST .
      fs_event-name ='TOP_OF_PAGE'.
      fs_event-form = 'TOP_PAGE'.
      append fs_event TO t_EVENT.
      CLEAR FS_EVENT.
      fs_event-name ='END_OF_PAGE'.
      fs_event-form = 'END_PAGE'.
      append fs_event TO t_EVENT.
      CLEAR FS_EVENT.
      fs_event-name ='END_OF_LIST'.
      fs_event-form = 'LIST_END'.
      append fs_event TO t_EVENT.
      CLEAR FS_EVENT.
    ENDFORM.                               " EVENT_LIST
    *&      Form  alv_display
          text
    *There are no interface parameters to be passed to this subroutine
    FORM alv_display .
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      I_INTERFACE_CHECK              = ' '
      I_BYPASSING_BUFFER             =
      I_BUFFER_ACTIVE                = ' '
       I_CALLBACK_PROGRAM             = SY-REPID
       I_CALLBACK_PF_STATUS_SET       = 'MARATAB1'
       I_CALLBACK_USER_COMMAND        = 'USER_COMMAND'
      I_STRUCTURE_NAME               =
      IS_LAYOUT                      =
       IT_FIELDCAT                    = FS_FIELDCAT
      IT_EXCLUDING                   =
      IT_SPECIAL_GROUPS              =
       IT_SORT                        = T_SORT
      IT_FILTER                      =
      IS_SEL_HIDE                    =
      I_DEFAULT                      = 'X'
      I_SAVE                         = ' '
      IS_VARIANT                     =
       IT_EVENTS                      = T_EVENT
      IT_EVENT_EXIT                  =
      IS_PRINT                       =
      IS_REPREP_ID                   =
      I_SCREEN_START_COLUMN          = 0
      I_SCREEN_START_LINE            = 0
      I_SCREEN_END_COLUMN            = 0
      I_SCREEN_END_LINE              = 0
      IR_SALV_LIST_ADAPTER           =
      IT_EXCEPT_QINFO                =
      I_SUPPRESS_EMPTY_DATA          = ABAP_FALSE
    IMPORTING
      E_EXIT_CAUSED_BY_CALLER        =
      ES_EXIT_CAUSED_BY_USER         =
      TABLES
        T_OUTTAB                       = IT_MARA[]
    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.                               " alv_display
    form TOP_PAGE.
      data:tbl_listheader type slis_t_listheader,
            wa_listheader type slis_listheader .
       wa_listheader-typ = 'S'.
       wa_listheader-info = 'Created by : Vijay Pawar'.
       append wa_listheader to tbl_listheader.
       wa_listheader-typ = 'S'.
       concatenate ' Date ' sy-datum into
                  wa_listheader-info separated by space.
        append wa_listheader to tbl_listheader.
       wa_listheader-typ = 'S'.
       concatenate ' From ' s_matnr-low '  To  ' s_matnr-high into
                           wa_listheader-info separated by space.
       append wa_listheader to tbl_listheader.
    CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
      EXPORTING
        IT_LIST_COMMENTARY       = tbl_listheader
      I_LOGO                   =
      I_END_OF_LIST_GRID       =
      I_ALV_FORM               =
    endform.                               " form TOP_PAGE.
    form END_PAGE.
      STATICS W_PAGE TYPE I .
      data:tbl_listheader type slis_t_listheader,
            wa_listheader type slis_listheader .
      wa_listheader-typ   = 'S'.
      wa_listheader-info  = W_PAGE.
      append wa_listheader to tbl_listheader.
    CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
      EXPORTING
        IT_LIST_COMMENTARY       = tbl_listheader
      I_LOGO                   =
      I_END_OF_LIST_GRID       =
      I_ALV_FORM               =
    add 1 to w_page.
    endform.                               " form END_PAGE.
    form list_end.
      data:tbl_listheader type slis_t_listheader,
      wa_listheader type slis_listheader .
      wa_listheader-typ = 'S'.
      wa_listheader-info = '......................................Last Page'
      append wa_listheader to tbl_listheader.
    CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
      EXPORTING
        IT_LIST_COMMENTARY       = tbl_listheader
      I_LOGO                   =
      I_END_OF_LIST_GRID       =
      I_ALV_FORM               =
    endform.                               " form list_end.
    *&      Form  maratab1
          text
         -->P_RT_EXTAB  text
    FORM maratab1  USING    P_RT_EXTAB.
      SET PF-STATUS 'MARATAB1' EXCLUDING rt_extab.
    ENDFORM.                               " maratab1
    FORM user_command  USING r_ucomm LIKE sy-ucomm
                         rs_selfield TYPE slis_selfield.
    case r_ucomm.
       when 'ENTER'.
       perform bulid_xls_data_table.
       PERFORM send_file_as_email_attachment
                                      tables it_message
                                             it_attach
                                       using p_email "'[email protected]'
                                    'Example .xls documnet attachment'
                                             'XLS'
                                             'filename'
                                    changing gd_error
                                             gd_reciever.
        perform populate_email_message_body.
        PERFORM initiate_mail_execute_program.
      endcase.                             " case r_ucomm.
    endform.                               " FORM user_command
    perform populate_email_message_body.
    PERFORM initiate_mail_execute_program.
         CALL FUNCTION 'RH_START_EXCEL_WITH_DATA'
    EXPORTING
       DATA_FILENAME             = 'MARA.XLS'
       DATA_PATH_FLAG            = 'W'
      DATA_ENVIRONMENT          =
       DATA_TABLE                = ITAB[]
      MACRO_FILENAME            =
      MACRO_PATH_FLAG           = 'E'
      MACRO_ENVIRONMENT         =
       WAIT                      = 'X'
      DELETE_FILE               = 'X'
    EXCEPTIONS
       NO_BATCH                  = 1
       EXCEL_NOT_INSTALLED       = 2
       INTERNAL_ERROR            = 3
       CANCELLED                 = 4
       DOWNLOAD_ERROR            = 5
       NO_AUTHORITY              = 6
       FILE_NOT_DELETED          = 7
       OTHERS                    = 8
       IF SY-SUBRC <> 0.
        MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
       ENDIF.
       leave to list-processing.
    endcase.
    *&      Form  bulid_xls_data_table
          text
    *There are no interface parameters to be passed to this subroutine
    FORM bulid_xls_data_table .
    CONSTANTS: con_cret TYPE x VALUE '0D',  "OK for non Unicode
                con_tab TYPE x VALUE '09'.   "OK for non Unicode
    *If you have Unicode check active in program attributes thnen you will
    *need to declare constants as follows
    *class cl_abap_char_utilities definition load.
    constants:
        con_tab  type c value cl_abap_char_utilities=>HORIZONTAL_TAB,
        con_cret type c value cl_abap_char_utilities=>CR_LF.
      CONCATENATE 'matnr' 'ernam' 'aenam' 'pstat'
             INTO it_attach SEPARATED BY con_tab.
      CONCATENATE con_cret it_attach  INTO it_attach.
      APPEND  it_attach.
      LOOP AT It_mara INTO wa_charmara.
        CONCATENATE wa_charmara-matnr wa_charmara-ernam
                    wa_charmara-aenam wa_charmara-pstat
               INTO it_attach SEPARATED BY con_tab.
        CONCATENATE con_cret it_attach  INTO it_attach.
        APPEND  it_attach.
      ENDLOOP.                             " LOOP AT it_mara INTO...
    ENDFORM.                               " bulid_xls_data_table
    *&      Form  send_file_as_email_attachment
       Send email
         -->P_IT_MESSAGE  text
         -->P_IT_ATTACH  text
         -->P_P_EMAIL  text
         -->P_0387   text
         -->P_0388   text
         -->P_0389   text
         -->P_0390   text
         -->P_0391   text
         -->P_0392   text
         <--P_GD_ERROR  text
         <--P_GD_RECIEVER  text
    FORM send_file_as_email_attachment tables pit_message
                                              pit_attach
                                        using p_email
                                              p_mtitle
                                              p_format
                                              p_filename
                                              p_attdescription
                                              p_sender_address
                                              p_sender_addres_type
                                     changing p_error
                                              p_reciever.
      DATA: ld_error               TYPE sy-subrc,
            ld_reciever            TYPE sy-subrc,
            ld_mtitle              LIKE sodocchgi1-obj_descr,
            ld_email               LIKE  somlreci1-receiver,
            ld_format              TYPE  so_obj_tp ,
            ld_attdescription      TYPE  so_obj_nam ,
            ld_attfilename         TYPE  so_obj_des ,
            ld_sender_address      LIKE  soextreci1-receiver,
            ld_sender_address_type LIKE  soextreci1-adr_typ,
            ld_receiver            LIKE  sy-subrc.
      ld_email               = p_email.
      ld_mtitle              = p_mtitle.
      ld_format              = p_format.
      ld_attdescription      = p_attdescription.
      ld_attfilename         = p_filename.
      ld_sender_address      = p_sender_address.
      ld_sender_address_type = p_sender_addres_type.
    Fill the document data.
      w_doc_data-doc_size = 1.
    Populate the subject/generic message attributes
      w_doc_data-obj_langu = sy-langu.
      w_doc_data-obj_name  = 'SAPRPT'.
      w_doc_data-obj_descr = ld_mtitle .
      w_doc_data-sensitivty = 'F'.
    Fill the document data and get size of attachment
      CLEAR w_doc_data.
      READ TABLE it_attach INDEX w_cnt.
      w_doc_data-doc_size =
         ( w_cnt - 1 ) * 255 + STRLEN( it_attach ).
      w_doc_data-obj_langu  = sy-langu.
      w_doc_data-obj_name   = 'SAPRPT'.
      w_doc_data-obj_descr  = ld_mtitle.
      w_doc_data-sensitivty = 'F'.
      CLEAR t_attachment.
      REFRESH t_attachment.
      t_attachment[] = pit_attach[].
    Describe the body of the message
      CLEAR t_packing_list.
      REFRESH t_packing_list.
      t_packing_list-transf_bin  = space.
      t_packing_list-head_start  = 1.
      t_packing_list-head_num    = 0.
      t_packing_list-body_start  = 1.
      DESCRIBE TABLE it_message LINES t_packing_list-body_num.
      t_packing_list-doc_type    = 'RAW'.
      APPEND t_packing_list.
    Create attachment notification
      t_packing_list-transf_bin = 'X'.
      t_packing_list-head_start = 1.
      t_packing_list-head_num   = 1.
      t_packing_list-body_start = 1.
      DESCRIBE TABLE t_attachment LINES t_packing_list-body_num.
      t_packing_list-doc_type   =  ld_format.
      t_packing_list-obj_descr  =  ld_attdescription.
      t_packing_list-obj_name   =  ld_attfilename.
      t_packing_list-doc_size   =  t_packing_list-body_num * 255.
      APPEND t_packing_list.
    Add the recipients email address
      CLEAR t_receivers.
      REFRESH t_receivers.
      t_receivers-receiver   = ld_email.
      t_receivers-rec_type   = 'U'.
      t_receivers-com_type   = 'INT'.
      t_receivers-notif_del  = 'X'.
      t_receivers-notif_ndel = 'X'.
      APPEND t_receivers.
      CALL FUNCTION 'SO_DOCUMENT_SEND_API1'
           EXPORTING
                document_data              = w_doc_data
                put_in_outbox              = 'X'
                sender_address             = ld_sender_address
                sender_address_type        = ld_sender_address_type
                commit_work                = 'X'
           IMPORTING
                sent_to_all                = w_sent_all
           TABLES
                packing_list               = t_packing_list
                contents_bin               = t_attachment
                contents_txt               = it_message
                receivers                  = t_receivers
           EXCEPTIONS
                too_many_receivers         = 1
                document_not_sent          = 2
                document_type_not_exist    = 3
                operation_no_authorization = 4
                parameter_error            = 5
                x_error                    = 6
                enqueue_error              = 7
                OTHERS                     = 8.
    Populate zerror return code
      ld_error = sy-subrc.
    Populate zreceiver return code
      LOOP AT t_receivers.
        ld_receiver = t_receivers-retrn_code.
      ENDLOOP.
    ENDFORM.                               " send_file_as_email_attachment
    *&      Form  INITIATE_MAIL_EXECUTE_PROGRAM
          Instructs mail send program for SAPCONNECT to send email.
    FORM initiate_mail_execute_program.
      WAIT UP TO 2 SECONDS.
      SUBMIT rsconn01 WITH mode = 'INT'
                    WITH output = 'X'
                    AND RETURN.
    ENDFORM.                               " INITIATE_MAIL_EXECUTE_PROGRAM
    *&      Form  POPULATE_EMAIL_MESSAGE_BODY
           Populate message body text
    form populate_email_message_body.
      REFRESH it_message.
      it_message = 'Please find attached a list test mara records'.
      APPEND it_message.
    endform.                               "form populate_email_message_bod
    rewards if it helps u

  • FM REUSE_ALV_GRID_DISPLAY - runtime error

    I get the following error when I use FM REUSE_ALV_GRID_DISPLAY:
    "Field catalog not found".
    I realize that it is looking for the parameter it_fieldcat but I don't remember ever passing that parameter before; it also says that it is optional.  Below is my call to the FM.  Does the addition of it_sort mean that I must pass it_fieldcat?
          CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
           EXPORTING
    *     I_INTERFACE_CHECK                 = ' '
    *     I_BYPASSING_BUFFER                = ' '
    *     I_BUFFER_ACTIVE                   = ' '
    *     I_CALLBACK_PROGRAM                = ' '
    *     I_CALLBACK_PF_STATUS_SET          = ' '
    *     I_CALLBACK_USER_COMMAND           = ' '
    *     I_CALLBACK_TOP_OF_PAGE            = ' '
    *     I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
    *     I_CALLBACK_HTML_END_OF_LIST       = ' '
    *     I_STRUCTURE_NAME                  =
    *     I_BACKGROUND_ID                   = ' '
    *     I_GRID_TITLE                      =
    *     I_GRID_SETTINGS                   =
    *     IS_LAYOUT                         =
    *     it_fieldcat                       = it_fieldcat
    *     IT_EXCLUDING                      =
    *     IT_SPECIAL_GROUPS                 =
             it_sort                           = it_sort
    *     IT_FILTER                         =
    *     IS_SEL_HIDE                       =
    *     I_DEFAULT                         = 'X'
    *     I_SAVE                            = ' '
    *     IS_VARIANT                        =
    *     IT_EVENTS                         =
    *     IT_EVENT_EXIT                     =
    *       is_print                          = is_print
    *     IS_REPREP_ID                      =
    *     I_SCREEN_START_COLUMN             = 0
    *     I_SCREEN_START_LINE               = 0
    *     I_SCREEN_END_COLUMN               = 0
    *     I_SCREEN_END_LINE                 = 0
    *     I_HTML_HEIGHT_TOP                 = 0
    *     I_HTML_HEIGHT_END                 = 0
    *     IT_ALV_GRAPHICS                   =
    *     IT_HYPERLINK                      =
    *     IT_ADD_FIELDCAT                   =
    *     IT_EXCEPT_QINFO                   =
    *     IR_SALV_FULLSCREEN_ADAPTER        =
    *   IMPORTING
    *     E_EXIT_CAUSED_BY_CALLER           =
    *     ES_EXIT_CAUSED_BY_USER            =
            TABLES
              t_outtab                          = it_out
    *   EXCEPTIONS
    *     PROGRAM_ERROR                     = 1
    *     OTHERS                            = 2
    Davis

    Davis,
    I dont know how much it will be of help to you. But this is how I used in one of my programs.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
           EXPORTING
                I_BACKGROUND_ID         = 'ALV_BACKGROUND'
                I_CALLBACK_PROGRAM      = G_REPID
    *            I_STRUCTURE_NAME        = 'SFLIGHT'
                IS_LAYOUT               = GS_LAYOUT
                IT_FIELDCAT             = f_cat[]
    *           IT_EXCLUDING            =
    *            IT_SPECIAL_GROUPS       = GT_SP_GROUP[]
    *            IT_SORT                 = GT_SORT[]
    *           IT_FILTER               =
    *           IS_SEL_HIDE             =
    *           i_default               = g_default
                I_SAVE                  = G_SAVE
                IS_VARIANT              = G_VARIANT
                IT_EVENTS               = GT_xEVENTS
    *           IT_EVENT_EXIT           =
    *            IS_PRINT                = GS_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 =
           TABLES
                T_OUTTAB                = bestand.
    Regards
    Aneesh.

  • How to SUM in REUSE_ALV_GRID_DISPLAY ?

    Hi,
    I have below the code that I use to sort 1 column and sum 3 columns;
    PERFORM sort_item USING 'ARBPL' 'X' 'X'.
    PERFORM sum_item USING 'NO_OPR' 'X' 'X'.
    PERFORM sum_item USING 'LMNGA' 'X' 'X'.
    PERFORM sum_item USING 'QTY_MTRS' 'X' 'X'.
    FORM sort_item USING fieldname up subtot.
      DATA: ls_sort TYPE slis_sortinfo_alv .
      CLEAR ls_sort.
      ls_sort-fieldname = fieldname.
      ls_sort-up        = up.
      ls_sort-subtot    = subtot.
      APPEND ls_sort TO g_sort.
    ENDFORM.
    FORM sum_item USING fieldname group subtot.
      DATA: ls_sum TYPE slis_sortinfo_alv .
      CLEAR ls_sum.
      ls_sum-fieldname = fieldname.
      ls_sum-group     = group.
      ls_sum-subtot    = subtot.
      APPEND ls_sum TO g_sort.
    ENDFORM.
    The g_sort is attached to the REUSE_ALV_GRID_DISPLAY as follows;
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
        I_INTERFACE_CHECK                 = ' '
        I_BYPASSING_BUFFER                = ' '
        I_BUFFER_ACTIVE                   = ' '
        I_CALLBACK_PROGRAM                = ' '
        I_CALLBACK_PF_STATUS_SET          = ' '
        I_CALLBACK_USER_COMMAND           = ' '
        I_CALLBACK_TOP_OF_PAGE            = ' '
        I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
        I_CALLBACK_HTML_END_OF_LIST       = ' '
        I_STRUCTURE_NAME                  =
        I_BACKGROUND_ID                   = ' '
        I_GRID_TITLE                      =
        I_GRID_SETTINGS                   =
          IS_LAYOUT                         = g_layout
          IT_FIELDCAT                       = g_fieldcat
        IT_EXCLUDING                      =
        IT_SPECIAL_GROUPS                 =
          IT_SORT                           = g_sort
        IT_FILTER                         =
        IS_SEL_HIDE                       =
        I_DEFAULT                         = 'X'
          I_SAVE                            = 'U'
          IS_VARIANT                        = ls_variant
        IT_EVENTS                         =
        IT_EVENT_EXIT                     =
        IS_PRINT                          =
        IS_REPREP_ID                      =
        I_SCREEN_START_COLUMN             = 0
        I_SCREEN_START_LINE               = 0
        I_SCREEN_END_COLUMN               = 0
        I_SCREEN_END_LINE                 = 0
        I_HTML_HEIGHT_TOP                 = 0
        I_HTML_HEIGHT_END                 = 0
        IT_ALV_GRAPHICS                   =
        IT_HYPERLINK                      =
        IT_ADD_FIELDCAT                   =
        IT_EXCEPT_QINFO                   =
        IR_SALV_FULLSCREEN_ADAPTER        =
      IMPORTING
        E_EXIT_CAUSED_BY_CALLER           =
        ES_EXIT_CAUSED_BY_USER            =
        TABLES
          T_OUTTAB                          = ittab
        EXCEPTIONS
          PROGRAM_ERROR                     = 1
          OTHERS                            = 2.
    The 1st column get sorted but sum does not work at all, why?
    Thanks,
    Kishan

    For that particular field in the field catalog, please try adding this line when building the catalog.
    i_fieldcat-datatype   = 'QUAN'.
    or try this
    *& Form DEFINE_LAYOUT
    text
    FORM DEFINE_LAYOUT.
    LAYOUT-ZEBRA = 'X'.
    LAYOUT-SUBTOTALS_TEXT = 'SUBTOTAL SUM'.
    LAYOUT-WINDOW_TITLEBAR = 'EXERCISE 2'.
    LAYOUT-TOTALS_TEXT = 'TOTAL'.
    ENDFORM. "DEFINE_LAYOUT
    *& Form SORT_LIST
    text
    FORM SORT_LIST.
    WA_SORT-FIELDNAME = 'VBELN'.
    WA_SORT-TABNAME = 'IT_VBAK'.
    WA_SORT-SPOS = 1.
    WA_SORT-UP = 'X'.
    WA_SORT-SUBTOT = 'X'.
    APPEND WA_SORT TO IT_SORT.
    CLEAR WA_SORT.
    WA_SORT-FIELDNAME = 'NETWR'.
    WA_SORT-TABNAME = 'IT_VBAK'.
    WA_SORT-UP = 'X'.
    WA_SORT-SPOS = 2.
    WA_SORT-SUBTOT = 'X'.
    APPEND WA_SORT TO IT_SORT.
    CLEAR WA_SORT.
    ENDFORM. "SORT_LIST&----
    *& Form LIST_DISP
    text
    FORM LIST_DISP.
    PERFORM DEFINE_LAYOUT.
    CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
    EXPORTING
    I_CALLBACK_PROGRAM = SY-REPID
    IT_FIELDCAT = IT_FIELDCAT
    IS_LAYOUT = LAYOUT
    IT_SORT = IT_SORT
    I_CALLBACK_PF_STATUS_SET = 'STATUS'
    IT_EXCLUDING = I_FCODE_EXTAB
    I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
    IT_EVENTS = IT_EVENTS[]
    IMPORTING
    E_EXIT_CAUSED_BY_CALLER =
    ES_EXIT_CAUSED_BY_USER =
    TABLES
    T_OUTTAB = IT_VBAK
    EXCEPTIONS
    PROGRAM_ERROR = 1
    OTHERS = 2
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    ENDFORM. "LIST_DISP
    *& Form GRID_DISP
    text
    FORM GRID_DISP.
    PERFORM DEFINE_LAYOUT.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
    I_CALLBACK_PROGRAM = SY-REPID
    IS_LAYOUT = LAYOUT
    IT_FIELDCAT = IT_FIELDCAT
    IT_SORT = IT_SORT
    I_CALLBACK_PF_STATUS_SET = 'STATUS'
    IT_EXCLUDING = I_FCODE_EXTAB
    I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
    IT_EVENTS = IT_EVENTS[]
    TABLES
    T_OUTTAB = IT_VBAK.
    EXCEPTIONS
    PROGRAM_ERROR = 1
    OTHERS = 2
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    ENDFORM. "GRID_DISP

Maybe you are looking for

  • Signature links

    I am trying to add links, either text or graphic to my regular mail signature. In both cases, textual or graphical, after added they work for one or 2 emails, then go inactive (unclickable). What gives? It'd be great to add a small graphical LinkedIn

  • How WebLogic7.0 & 8.1 JMS connect to MSMQ?

              Hi Sir,           Is it possible that i use WebLogic JMS connect to MSMQ(Microsoft)?           If it possible, how can i configure/implement ? Do I have to create adapter class           for MSMQ?           Thanks           Yos           

  • Macbook Pro - No Wi-Fi Hardware or Bluetooth

    I have a late 2011 Macbook Pro 13". I had it repaired after water spillage on the laptop. Got everything working and returned to me and then when I turn it on I get 'No Wi-Fi Hardware Installed' and No bluetooth now! I just did a RAM reset, Hardware

  • Adjustment brush not showing correction options

    I am in the Develop module trying to use the Adjustment Brush. After selecting the brush I am not seeing the window below that allows me to apply the corrections (exposure, contrast, etc.) I want. This window does show up if I select Graduated or Rad

  • Macbook Pro disc drive failing to burn DVD-R.

    I am using a 2007, 17" Macbook Pro with 10.6.8. My drive information in System Profiler reads as follows: MATSHITA DVD-R   UJ-85J:   Firmware Revision:          FBZ8   Interconnect:          ATAPI   Burn Support:          Yes (Apple Shipping Drive)