Reg: ALV (REUSE_ALV_GRID_DISPLAY)

Hi Experts,
I need to know how to give drop down list in one of the field in my ALV.
I found some posting in sdn, but that are related to OOPS concepts.
But i am using REUSE function module.
Can you please provide me the solution how to achecive drop down list in ALV using REUSE_ALV_GRID_DISPLAY.
Thanks
Vijay.R

Hi Vijayendran,
   There is only oops method available to create drop down list in ALV.
Go through the program below and modify your program accordingly.
Only thing that you have to do is to create container for your alv and use this container for displaying drop down list.
This program displays a dropdown list in one of the fields of the ALV.
*& Report  Z_LISTBOX_ALV
*& Program to display a dropdown list in ALV.
REPORT  z_listbox_alv.
TYPE-POOLS: slis.
TYPES: BEGIN OF ty_rating,
         task(20) TYPE c,
         rating TYPE i,
         weightage(2) TYPE c,
         comments(40) TYPE c,
       END OF ty_rating.
DATA: g_alvgrid TYPE REF TO cl_gui_alv_grid,
      g_alv_container TYPE REF TO cl_gui_custom_container,
      int_fieldcat TYPE lvc_t_fcat,
      ok_code TYPE sy-ucomm.
DATA: int_outputdata TYPE TABLE OF ty_rating.
INITIALIZATION.
START-OF-SELECTION.
* call new screen for displaying the oop alv
  CALL SCREEN 1100.
* Double click on the screen, it takes you the screen painter (SE51). Create
* Custom Container on the screen and name is as u2018CONTAINERu2019. Set the Ok-Code
* the screen as u2018OK_CODEu2019. Also create a GUI status named 'STANDARD' and
* in set Ok-code '&F03' for the back button.
* The screen 1100 thus gets created to hold the grid ALV.
* In the PBO of the screen, call the modules to set pf-status, title and
* to display the ALV list.
* In case we have an interactive ALV or for additional functionalities we can
* create OK-CODES and based on the user command we do the coding in the PAI.
*&      Module  STATUS_0600  OUTPUT
*       set the PF status of the screen. Called in PBO of screen.
MODULE status_0600 OUTPUT.
  SET PF-STATUS 'STANDARD'.
ENDMODULE.                 " STATUS_0600  OUTPUT
*&      Module  DISPLAY_ALV  OUTPUT
*       Displays the alv list. Called in PBO of screen.
MODULE display_alv OUTPUT.
*  get the data.
  PERFORM retrieve_data.
*  prepare fieldcatalog for displaying the alv
  PERFORM prepare_fieldcatalog.
*  create a container to display the list
  CREATE OBJECT g_alv_container
    EXPORTING
      container_name = 'CONTAINER'.
*  create a reference for the alv
  CREATE OBJECT g_alvgrid
    EXPORTING
      i_parent = g_alv_container.
*  prepare a listbox for the rating column
  PERFORM fill_dropdown.
*  call the method to display the list
  CALL METHOD g_alvgrid->set_table_for_first_display
    EXPORTING
      i_bypassing_buffer            = 'X'
      i_save                        = 'X'
    CHANGING
      it_outtab                     = int_outputdata
      it_fieldcatalog               = int_fieldcat
    EXCEPTIONS
      invalid_parameter_combination = 1
      program_error                 = 2
      too_many_lines                = 3
      others                        = 4
  IF sy-subrc <> 0.
   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.
ENDMODULE.                    "DISPLAY_ALV OUTPUT
*&      Form  PREPARE_FIELDCATALOG
*       prepares fieldcatalog
FORM prepare_fieldcatalog .
  DATA: lws_fieldcat TYPE lvc_s_fcat.
  CLEAR int_fieldcat.
  CLEAR lws_fieldcat.
  lws_fieldcat-col_pos   = 1.
  lws_fieldcat-fieldname = 'TASK'.
  lws_fieldcat-scrtext_m = 'TASK'.
  APPEND lws_fieldcat TO int_fieldcat.
  CLEAR lws_fieldcat.
  lws_fieldcat-col_pos   = 2.
  lws_fieldcat-fieldname = 'RATING'.
  lws_fieldcat-edit = 'X'.
  lws_fieldcat-scrtext_m = 'RATING'.
  lws_fieldcat-just = 'L'.
  lws_fieldcat-outputlen = '6'.
  lws_fieldcat-drdn_hndl = '1'.        "handle for listbox
  APPEND lws_fieldcat TO int_fieldcat.
  CLEAR lws_fieldcat.
  lws_fieldcat-col_pos   = 3.
  lws_fieldcat-fieldname = 'WEIGHTAGE'.
  lws_fieldcat-scrtext_m = 'WEIGHTAGE'.
  lws_fieldcat-outputlen = '9'.
  APPEND lws_fieldcat TO int_fieldcat.
  CLEAR lws_fieldcat.
  lws_fieldcat-col_pos   = 4.
  lws_fieldcat-fieldname = 'COMMENTS'.
  lws_fieldcat-scrtext_m = 'COMMENTS'.
  lws_fieldcat-edit = 'X'.
  APPEND lws_fieldcat TO int_fieldcat.
ENDFORM.                    " PREPARE_FIELDCATALOG
*&      Form  RETRIEVE_DATA
*       retreives the data to be displayed
FORM retrieve_data .
  DATA: lws_outputdata TYPE ty_rating.
  CLEAR int_outputdata.
  CLEAR lws_outputdata.
  lws_outputdata-task = 'proj. related'.
  lws_outputdata-weightage = '20'.
  APPEND lws_outputdata TO int_outputdata.
  CLEAR lws_outputdata.
  lws_outputdata-task = 'process. related'.
  lws_outputdata-weightage = '10'.
  APPEND lws_outputdata TO int_outputdata.
  CLEAR lws_outputdata.
  lws_outputdata-task = 'knowledge mgnt.'.
  lws_outputdata-weightage = '30'.
  APPEND lws_outputdata TO int_outputdata.
ENDFORM.                    " RETRIEVE_DATA
*&      Form  FILL_DROPDOWN
*       prepares the listbox to be displayed and assigns it to the alv
FORM fill_dropdown .
  DATA: lint_dropdown TYPE lvc_t_drop,
        lws_dropdown TYPE lvc_s_drop.
  CLEAR lint_dropdown.
  CLEAR lws_dropdown.
  lws_dropdown-handle = '1'.
  lws_dropdown-value = '5'.
  APPEND lws_dropdown TO lint_dropdown.
  CLEAR lws_dropdown.
  lws_dropdown-handle = '1'.
  lws_dropdown-value = '4'.
  APPEND lws_dropdown TO lint_dropdown.
  CLEAR lws_dropdown.
  lws_dropdown-handle = '1'.
  lws_dropdown-value = '3'.
  APPEND lws_dropdown TO lint_dropdown.
  CLEAR lws_dropdown.
  lws_dropdown-handle = '1'.
  lws_dropdown-value = '2'.
  APPEND lws_dropdown TO lint_dropdown.
  CLEAR lws_dropdown.
  lws_dropdown-handle = '1'.
  lws_dropdown-value = '1'.
  APPEND lws_dropdown TO lint_dropdown.
  CALL METHOD g_alvgrid->set_drop_down_table
    EXPORTING
      it_drop_down = lint_dropdown.
ENDFORM.                    " FILL_DROPDOWN
*&      Module  HANDLE_GOBACK  INPUT
*       handles 'back' button. Called in PAI of the screen.
MODULE handle_goback INPUT.
  IF ok_code EQ '&F03'.
    LEAVE PROGRAM.
  ENDIF.
ENDMODULE.
Get back to me for any clarification.
Regards,
Bhavesh

Similar Messages

  • ** Filtering is not working correctly in ALV (REUSE_ALV_GRID_DISPLAY)

    Hi Friends,
    We have one Z report that output is displayed in ALV. We are using the standard FM 'REUSE_ALV_GRID_DISPLAY. 
    We have requirement to remove leading zeros for the field like Material Number (MATNR), Equipment Number (EQUNR) etc. We did the changes by applying the field catalog properties as below.
    lw_fieldcat-lzero = space.
    lw_fieldcat-no_zero = 'X'.
    After this, the MATNR and EQUNR is displayed correctly in the ALV. (Leading zeros are suppressed). But, when we do filter for these fields, in the filter window it displays all the values with leading zeros.
    1. We don't understand why it is showing in the Filter widow with all leading zeros. All it shows all the records instead of unique items.
    Later on, we removed the above fieldcat coding. Then, we have called the CONVERSION_EXIT routines (in the domain) for the fields to remove leading zeros.
    Now, the MATNR and EQUNR is displayed correctly (without leading zeros) in ALV. When we do filter, it is also doing filtering correctly. But, when we do filter which have EQUNR having long values (after zero suppression), it is not working correctly. i.e no items are displayed in the ALV.
    Not only for this items. If we filter character columns which have long text, it is not filtering correctly.
    2. It is not able to understand why the filtering is not working for long items. But in the standard report, the filtering is working correctly.
    We are using SAP ECC 6.0.
    Friends, can you clarify the about doubts. It is surprising for me.
    Kind regards,
    Jegathees P.
    Our customer is asked to remove the leading zeros for the numeric field

    Hi Clemens Li
    I agreed on your point. When we define the Internal table the type for element EQUNR & QUMNR , we are referring the SAP data element for EQUNR, QMNUM field.
    Our doubt is even though we refer the standard data element, in the ALV display, it shows with leading zeros and also it creates problems in the filtering and in the filter window all values instead of unique nos.
    Hi Abhii
    I have given below the fieldcat coding.
    Friends, can you kindly clarify the above said problems. Since we use SAP ECC 6.0 any notes or patches apply is required. ( this is the basic functionality in ALV, that is my doubt).
        wls_fieldcat-col_pos   = wpv_pos.
        wls_fieldcat-fieldname = wpv_champ.
        wls_fieldcat-tabname   = wlc_tabname.
      wls_fieldcat-seltext_s = wls_fieldcat-seltext_m
        wls_fieldcat-seltext_l = wpv_libelle.
        wls_fieldcat-ddictxt   = 'L'.
        wls_fieldcat-no_out    = wv_no_out.
        APPEND wls_fieldcat TO gt_fieldcat.
    Kind regards,
    Jegathees P.

  • Reg ALV grid display

    Hi Expert,
    I am facing simple problem regarding alv display.
    While retrieving data, records are shown in internal table (It_final), but it doesn't goes to alv display in output.
    The code is:
    FORM merge_data .
      SORT it_qasr BY probenr prueflos  vorglfnr.
      LOOP AT it_qasr INTO wa_qasr.
        w_mittelwert = wa_qasr-mittelwert.
        READ TABLE it_qapp INTO wa_qapp WITH KEY prueflos = wa_qasr-prueflos
                                                 vorglfnr = wa_qasr-vorglfnr
                                                 probenr  = wa_qasr-probenr.
        wa_final-userd1 = wa_qapp-userd1.
        wa_final-usert1 = wa_qapp-usert1.
        wa_final-userc1 = wa_qapp-userc1.
        SHIFT wa_final-userc1 LEFT DELETING LEADING '0'.
        wa_final-userc2 = wa_qapp-userc2.
        READ TABLE it_plmk INTO wa_plmk WITH KEY merknr  = wa_qasr-merknr
                                                 plnnr   = wa_mapl-plnnr.
                                                plnkn = wa_qasr-vorglfnr  " changed by DEVK909452
        READ TABLE it_qpmt INTO wa_qpmt WITH KEY mkmnr = wa_plmk-verwmerkm.
        READ TABLE it_qpct INTO wa_qpct WITH KEY codegruppe = wa_qasr-gruppe1
                                                 code = wa_qasr-code1.
        TRANSLATE wa_qpmt-mkmnr TO UPPER CASE.
        IF wa_qpmt-mkmnr CS 'RQZMOI'.
          wa_qpmt-mkmnr = 'MOIS_Q'.
        ENDIF.
        IF wa_qpmt-mkmnr CS 'RIOSI+AL'.
          wa_qpmt-mkmnr = 'SIAL_IR'.
        ENDIF.
    CASE wa_qpmt-mkmnr.
          WHEN 'MOIS_Q'.
            wa_final-MOIS_Q = w_mittelwert.
          WHEN 'SIAL_IR'.
            wa_final-SiAl_IR = w_mittelwert.
    WHEN 'SHIFT'.
            wa_final-shift = wa_qpct-kurztext.
          WHEN 'MATERIAL'.
            wa_final-material = wa_qpct-kurztext.
        ENDCASE.
          APPEND wa_final TO it_final.
          CLEAR wa_final.
    FORM alv_display .
    *fieldcatalog template with 105 fields
    PERFORM sub_make_field_cat1 USING :
            '1'      'USERD1'          'DATE',
            '2'      'MATERIAL'          'MATERIAL',
            '3'      'USERC2'          'SOURCE',
            '4'      'USERC1'          'LOCATION',
            '5'      'USERT1'          'TIME',
            '6'      'SHIFT'          'SHIFT',
            '7'      'MATERIAL'          'MATERIAL',
            '8'      'SHIFT'          'SHIFT',
            '9'      'MOIS_Q'          'MOISTURE-Q',
            '10'      'SI_Q'          'SILICA-Q',
            '11'      'AL_Q'          'ALUMINA-Q',
            '12'      'FO_Q'          'FERRIC OXIDE-Q',
            '13'      'SIZE_Q'          'SIZE-Q',
            '14'      'MOIS_IR'          'MOISTURE-IR',
            '15'      'TIRON_IR'          'TOTAL IRON-IR',
            '16'      'SI_IR'          'SILICA-IR',
            '17'      'AL_IR'          'ALUMINA-IR',
            '18'      'SIAL_IR'          'SILICA + ALUMINA-IR',
            '19'      'P_IR'          'PHOSPHOROUS-IR',
            '20'      'L_O_I_IR'          'LOSS ON IGNITION-IR',
            '21'      'MN_IR'          'MANGANESS-IR',
            '22'      'TITOX_IR'          'TITANIUM OXIDE-IR',
            '23'      'ALK_IR'          'ALKALIES-IR',
            '24'      'SUL_IR'          'SULPHUR-IR',
            '25'      'TIND_IR'          'TUMBLER INDEX-IR',
            '26'      'ABBIND_IR'          'ABBRATION INDEX-IR',
            '27'      'BDEN_IR'          'BULK DENSITY-IR',
            '28'      'SIZE_IR'          'SIZE-IR',
            '29'      'MOIS_IRF'          'MOISTURE-IRF',
            '30'      'TIRON_IRF'          'TOTAL IRON-IRF',
            '31'      'SI_IRF'          'SILICA-IRF',
            '32'      'AL_IRF'          'ALUMINA-IRF',
            '33'      'P_IRF'          'PHOSPHOROUS-IRF',
            '34'      'L_O_I_IRF'          'LOSS ON IGNITION-IRF',
            '35'      'MOIS_COKE'          'MOISTURE-COKE',
            '36'      'VOL_MAT_COKE'          'VOLATILE MATTER-COKE',
            '37'      'ASH_COKE'          'ASH-COKE',
            '38'      'FIX_CA_COKE'          'FIXED CARBON-COKE',
            '39'      'SUL_COKE'          'SULPHUR-COKE',
            '40'      'P_COKE'          'PHOSPHOROUS-COKE',
            '41'      'ALK_COKE'          'ALKALIES-COKE',
            '42'      'SI_COKE'          'SILICA-COKE',
            '43'      'AL_COKE'          'ALUMINA-COKE',
            '44'      'FEO_COKE'          'FERRIC OXIDE-COKE',
            '45'      'CAO_COKE'          'CALCIUM OXIDE-COKE',
            '46'      'MGO_COKE'          'MAGNESIUM OXIDE-COKE',
            '47'      'PPOX_COKE'          'PHOSPHOROUS PENTAOXIDE-COKE',
            '48'      'SIZE_COKE'          'SIZE-COKE',
            '49'      'MOIS_LS'          'MOISTURE-LS',
            '50'      'SI_LS'          'SILICA-LS',
            '51'      'AL_LS'          'ALUMINA-LS',
            '52'      'FEO_LS'          'FERRIC OXIDE-LS',
            '53'      'CAO_LS'          'CALCIUM OXIDE-LS',
            '54'      'MGO_LS'          'MAGNESIUM OXIDE-LS',
            '55'      'ALK_LS'          'ALKALIES-LS',
            '56'      'SIZE_LS'          'SIZE-LS',
            '57'      'MOIS_LSF'          'MOISTURE-LSF',
            '58'      'SI_LSF'          'SILICA-LSF',
            '59'      'AL_LSF'          'ALUMINA-LSF',
            '60'      'FEO_LSF'          'FERRIC OXIDE-LSF',
            '61'      'CAO_LSF'          'CALCIUM OXIDE-LSF',
            '62'      'MGO_LSF'          'MAGNESIUM OXIDE-LSF',
            '63'      'SIZE_LSF'          'SIZE-LSF',
            '64'      'MOIS_D'          'MOISTURE-D',
            '65'      'SI_D'          'SILICA-D',
            '66'      'AL_D'          'ALUMINA-D',
            '67'      'FEO_D'          'FERRIC OXIDE-D',
            '68'      'CAO_D'          'CALCIUM OXIDE-D',
            '69'      'MGO_D'          'MAGNESIUM OXIDE-D',
            '70'      'ALK_D'          'ALKALIES-D',
            '71'      'SIZE_D'          'SIZE-D',
            '72'      'MOIS_DF'          'MOISTURE-DF',
            '73'      'SI_DF'          'SILICA-DF',
            '74'      'AL_DF'          'ALUMINA-DF',
            '75'      'FEO_DF'          'FERRIC OXIDE-DF',
            '76'      'CAO_DF'          'CALCIUM OXIDE-DF',
            '77'      'MGO_DF'          'MAGNESIUM OXIDE-DF',
            '78'      'SIZE_DF'          'SIZE-DF',
            '79'      'MOIS_MO'          'MOISTURE-MO',
            '80'      'SI_MO'          'SILICA-MO',
            '81'      'AL_MO'          'ALUMINA-MO',
            '82'      'TIRON_MO'          'TOTAL IRON-MO',
            '83'      'MN_MO'          'MANGENESE-MO',
            '84'      'P_MO'          'PHOSPHAROUS-MO',
            '85'      'ALK_MO'          'ALKALIES-MO',
            '86'      'SIZE_MO'          'SIZE-MO',
            '87'      'MOIS_STR'          'MOISTURE-STR',
            '88'      'SI_STR'          'SILICA-STR',
            '89'      'AL_STR'          'ALUMINA-STR',
            '90'      'TIRON_STR'          'TOTAL IRON-STR',
            '91'      'FO_STR'          'FERROUS OXOIDE-STR',
            '92'      'P_STR'          'PHOSPHAROUS-STR',
            '93'      'CAO_STR'          'CALCIUM OXIDE-STR',
            '94'      'MGO_STR'          'MAGNESIUM OXIDE-STR',
            '95'      'TIND_STR'          'TUMBLER INDEX-STR',
            '96'      'ABBIND_STR'          'ABBRATION INDEX-STR',
            '97'      'CAOSIO2_STR'          'CAO / SIO2-STR',
            '98'      'SI_SLG'          'SILICA-SLG',
            '99'      'AL_SLG'          'ALUMINA-SLG',
            '100'      'FEO_SLG'          'FERRIC OXIDE-SLG',
            '101'      'CAO_SLG'          'CALCIUM OXIDE-SLG',
            '102'      'MGO_SLG'          'MAGNESIUM OXIDE-SLG',
            '103'      'MNO_SLG'          'MANGANESE OXIDE-SLG',
            '104'      'FO_SLG'          'FERROUS OXIDE-SLG',
            '105'      'BAS_SLG'          'BASICITY-SLG'.
      is_layout-zebra = 'X'.
      is_layout-colwidth_optimize = 'X'.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          i_callback_program       = sy-repid
          i_callback_pf_status_set = 'SET_PF_STATUS'
          i_callback_user_command  = 'USER_COMMAND'
          is_layout                = is_layout
          it_fieldcat              = it_fieldcat
          i_save                   = 'X'
          is_variant               = gs_variant
        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.
    ENDFORM.                    " ALV_DISPLAY
    form SUB_MAKE_FIELD_CAT1  using    p_col TYPE char3
                                       p_fnam TYPE char30
                                       p_text TYPE char30.
      is_fieldcat-col_pos = p_col.
      is_fieldcat-fieldname = p_fnam.
      is_fieldcat-seltext_m = p_text.
      APPEND is_fieldcat TO it_fieldcat.
    endform.                    " SUB_MAKE_FIELD_CAT1
    This is the code i have.
    In debugging, i found data in internal table (it_final). But, it doesn't display in output.
    Please help me in this regard?
    Thanks in advance....
    Sai..
    Edited by: Sai Babu on Sep 16, 2008 3:07 PM

    Sai Babu wrote:
    > Any experts.........
    no,No,NO....
    There is no expert(active since last 3months or so) beyond him 
    Specially in ALV moreover in OOPS ALV
    Edited by: Ámit Güjärgoüd on Sep 16, 2008 3:19 PM

  • ALV REUSE_ALV_GRID_DISPLAY in new screen.

    Hello Friends,
    I have a small problem and would appreciate any input.
    I have an ALV grid, where I click a button and another ALV grid pops up.
    My problem is the GUI status. When I leave the screen of the second ALV, the first ALV shows the same GUI status. How do I get the first gui_status not to be changed when I return??
    best regards B

    REPORT  ZALV_SECONDSCREEN.
    DEFINE m_fieldcat.
      add 1 to ls_fieldcat-col_pos.
      ls_fieldcat-fieldname   = &1.
      ls_fieldcat-ref_tabname = &2.
      ls_fieldcat-cfieldname  = &3.
      ls_fieldcat-qfieldname  = &4.
      append ls_fieldcat to lt_fieldcat.
    END-OF-DEFINITION.
    TYPE-POOLS: slis.                      " ALV Global types
    TYPES:
      BEGIN OF ty_vbak,
        vkorg TYPE vbak-vkorg,             " Sales organization
        kunnr TYPE vbak-kunnr,             " Sold-to party
        vbeln TYPE vbak-vbeln,             " Sales document
        netwr TYPE vbak-netwr,             " Net Value of the Sales Order
        waerk TYPE vbak-waerk,             " Currency
      END OF ty_vbak,
      BEGIN OF ty_vbap,
        vbeln  TYPE vbap-vbeln,            " Sales document
        posnr  TYPE vbap-posnr,            " Sales document item
        matnr  TYPE vbap-matnr,            " Material number
        arktx  TYPE vbap-arktx,            " Short text for sales order item
        kwmeng TYPE vbap-kwmeng,           " Order quantity
        vrkme  TYPE vbap-vrkme,            " Quantity Unit
        netwr  TYPE vbap-netwr,            " Net value of the order item
        waerk  TYPE vbap-waerk,            " Currency
      END OF ty_vbap.
    DATA :
      gs_vbak TYPE ty_vbak,
    Data displayed in the first list
      gt_vbak TYPE TABLE OF ty_vbak,
    Data displayed in the second list
      gt_vbap TYPE TABLE OF ty_vbap.
    SELECT-OPTIONS :
      s_vkorg FOR gs_vbak-vkorg,           " Sales organization
      s_kunnr FOR gs_vbak-kunnr,           " Sold-to party
      s_vbeln FOR gs_vbak-vbeln.           " Sales document
    SELECTION-SCREEN :
      SKIP, BEGIN OF LINE,COMMENT 5(27) v_1 FOR FIELD p_max.    "#EC NEEDED
    PARAMETERS p_max(2) TYPE n DEFAULT '20' OBLIGATORY.
    SELECTION-SCREEN END OF LINE.
    INITIALIZATION.
      v_1 = 'Maximum of records to read'.
    START-OF-SELECTION.
      PERFORM f_read_data_vbak.
      PERFORM f_display_data_vbak.
         Form  f_read_data_vbak
    FORM f_read_data_vbak.
      SELECT vkorg kunnr vbeln netwr waerk
        INTO CORRESPONDING FIELDS OF TABLE gt_vbak
          UP TO p_max ROWS
        FROM vbak
       WHERE kunnr IN s_kunnr
         AND vbeln IN s_vbeln
         AND vkorg IN s_vkorg
         and vbtyp = 'C'.                  " C = Sales Orders.
    ENDFORM.                               " F_READ_DATA_VBAK
         Form  f_display_data_vbak
    FORM f_display_data_vbak.
      DATA:
        ls_fieldcat TYPE slis_fieldcat_alv,
        lt_fieldcat TYPE slis_t_fieldcat_alv.
    Build the field catalog
      m_fieldcat 'VKORG' 'VBAK' '' ''.
      m_fieldcat 'KUNNR' 'VBAK' '' ''.
      m_fieldcat 'VBELN' 'VBAK' ''  ''.
      m_fieldcat 'NETWR' 'VBAK' 'WAERK' ''.
      m_fieldcat 'WAERK' 'VBAK' ''  ''.
    Display the first list
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          i_callback_program      = sy-cprog
          i_callback_user_command = 'USER_COMMAND'
          it_fieldcat             = lt_fieldcat
        TABLES
          t_outtab                = gt_vbak.
    ENDFORM.                               " F_DISPLAY_DATA_VBAK
          FORM USER_COMMAND                                             *
    FORM user_command USING u_ucomm     TYPE syucomm
                            us_selfield TYPE slis_selfield.     "#EC CALLED
      CASE u_ucomm.
        WHEN '&IC1'.
          READ TABLE gt_vbak INDEX us_selfield-tabindex INTO gs_vbak.
          CHECK sy-subrc EQ 0.
          PERFORM f_read_data_vbap.        " Read data from VBAP
          PERFORM f_display_data_vbap.
      ENDCASE.
    ENDFORM.                               " USER_COMMAND
         Form  f_read_data_vbap
    FORM f_read_data_vbap.
      SELECT vbeln posnr matnr arktx kwmeng vrkme netwr waerk
        INTO CORRESPONDING FIELDS OF TABLE gt_vbap
        FROM vbap
       WHERE vbeln = gs_vbak-vbeln.
    ENDFORM.                               " F_READ_DATA_VBAP
         Form  f_display_data_vbap
    FORM f_display_data_vbap.
      DATA:
        ls_fieldcat TYPE slis_fieldcat_alv,
        lt_fieldcat TYPE slis_t_fieldcat_alv.
    Build the field catalog
      m_fieldcat 'VBELN'  'VBAP' '' ''.
      m_fieldcat 'POSNR'  'VBAP' '' ''.
      m_fieldcat 'MATNR'  'VBAP' '' ''.
      m_fieldcat 'ARKTX'  'VBAP' '' ''.
      m_fieldcat 'KWMENG' 'VBAP' '' 'VRKME'.
      m_fieldcat 'VRKME'  'VBAP' '' ''.
      m_fieldcat 'NETWR'  'VBAP' 'WAERK' ''.
      m_fieldcat 'WAERK'  'VBAP' '' ''.
    Display the second list
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          it_fieldcat = lt_fieldcat
        TABLES
          t_outtab    = gt_vbap.
    ENDFORM.                               " F_DISPLAY_DATA_VBAP

  • Reg ALv layout display

    Hi All,
    I have an issue with ALV report.I have basic list and secondary list.The problem is the layout selection of one list is effecting the other list display.Could you please let me know some body what parameters I have to pass for IS_LAYOUT parameter in the ALV_Griddisplay ?what is the purpose of IS_Variant--handle parameter?
    Regards
    Mahesh

    Hi,
    Check the sample Interactive ALV Grid Report.
    REPORT z_demo_3_alv_list.
    This program is an example with 3 ALV Grid lists                    *
    The customers are displayed in the first list                       *
    When a line is selected, the customer's orders are displayed in     *
    the second list                                                     *
    When a line is selected in the second list, the items orders are    *
    displayed in the second list                                        *
    Macro definition
    DEFINE m_fieldcat.
      add 1 to ls_fieldcat-col_pos.
      ls_fieldcat-fieldname   = &1.
      ls_fieldcat-ref_tabname = &2.
      append ls_fieldcat to lt_fieldcat.
    END-OF-DEFINITION.
    TYPE-POOLS: slis.                      " ALV Global types
    SELECTION-SCREEN :
      SKIP, BEGIN OF LINE,COMMENT 5(27) v_1 FOR FIELD p_max.    "#EC NEEDED
    PARAMETERS p_max(2) TYPE n DEFAULT '20' OBLIGATORY.
    SELECTION-SCREEN END OF LINE.
    TYPES:
    Data displayed in the first list
      BEGIN OF ty_kna1,
        kunnr TYPE kna1-kunnr,             " Customer number
        name1 TYPE kna1-name1,             " Customer name
        ort01 TYPE kna1-ort01,             " Customer city
      END OF ty_kna1,
    Data displayed in the second list
      BEGIN OF ty_vbak,
        vkorg TYPE vbak-vkorg,             " Sales organization
        kunnr TYPE vbak-kunnr,             " Sold-to party
        vbeln TYPE vbak-vbeln,             " Sales document
        netwr TYPE vbak-netwr,             " Net Value of the Sales Order
      END OF ty_vbak,
    Data displayed in the third list
      BEGIN OF ty_vbap,
        vbeln  TYPE vbap-vbeln,            " Sales document
        posnr  TYPE vbap-posnr,            " Sales document item
        matnr  TYPE vbap-matnr,            " Material number
        arktx  TYPE vbap-arktx,            " Short text for sales order item
        kwmeng TYPE vbap-kwmeng,           " Order quantity
        netwr  TYPE vbap-netwr,            " Net value of the order item
      END OF ty_vbap.
    DATA:
      gs_kna1 TYPE ty_kna1,
      gt_kna1 TYPE TABLE OF ty_kna1,
      gs_vbak TYPE ty_vbak,
      gt_vbak TYPE TABLE OF ty_vbak,
      gt_vbap TYPE TABLE OF ty_vbap.
    INITIALIZATION.
      v_1 = 'Maximum of records to read'.
    START-OF-SELECTION.
      PERFORM f_read_data_kna1.
    END-OF-SELECTION.
      PERFORM f_display_data_kna1.
         Form  f_read_data_kna1
    FORM f_read_data_kna1.
    Read customer data with a least one order
      SELECT kunnr name1 ort01 INTO TABLE gt_kna1
               FROM kna1 AS k
                 UP TO p_max ROWS
              WHERE EXISTS
           ( SELECT kunnr FROM vbak WHERE kunnr = k~kunnr ).
    ENDFORM.                               " F_READ_DATA_KNA1
         Form  f_display_data_kna1
    FORM f_display_data_kna1.
      DATA:
        ls_fieldcat TYPE slis_fieldcat_alv,
        lt_fieldcat TYPE slis_t_fieldcat_alv.
    Build the field catalog
      m_fieldcat 'KUNNR' 'KNA1'.
      m_fieldcat 'NAME1' 'KNA1'.
      m_fieldcat 'ORT01' 'KNA1'.
    Display the first list
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          i_callback_program      = sy-cprog
          i_callback_user_command = 'USER_COMMAND_KNA1'
          it_fieldcat             = lt_fieldcat
        TABLES
          t_outtab                = gt_kna1.
    ENDFORM.                               " F_DISPLAY_DATA_KNA1
          FORM USER_COMMAND_KNA1                                        *
    FORM user_command_kna1 USING u_ucomm     TYPE sy-ucomm
                                 us_selfield TYPE slis_selfield."#EC CALLED
      CASE u_ucomm.
        WHEN '&IC1'.
          READ TABLE gt_kna1 INDEX us_selfield-tabindex INTO gs_kna1.
          CHECK sy-subrc EQ 0.
          PERFORM f_read_data_vbak.        " Read data from VBAK
          PERFORM f_display_data_vbak.     " Display orders
      ENDCASE.
    ENDFORM.                               " USER_COMMAND_KNA1
         Form  f_read_data_vbak
    FORM f_read_data_vbak.
      SELECT vkorg kunnr vbeln netwr
        INTO TABLE gt_vbak
        FROM vbak
          UP TO p_max ROWS
       WHERE kunnr = gs_kna1-kunnr.
    ENDFORM.                               " F_READ_DATA_VBAK
         Form  f_display_data_vbak
    FORM f_display_data_vbak.
      DATA:
        ls_fieldcat TYPE slis_fieldcat_alv,
        lt_fieldcat TYPE slis_t_fieldcat_alv.
    Build the field catalog
      m_fieldcat 'VKORG' 'VBAK'.
      m_fieldcat 'KUNNR' 'VBAK'.
      m_fieldcat 'VBELN' 'VBAK'.
      m_fieldcat 'NETWR' 'VBAK'.
    Display the second list
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          i_callback_program      = sy-cprog
          i_callback_user_command = 'USER_COMMAND_VBAK'
          it_fieldcat             = lt_fieldcat
        TABLES
          t_outtab                = gt_vbak.
    ENDFORM.                               " F_DISPLAY_DATA_VBAK
          FORM USER_COMMAND_VBAK                                        *
    FORM user_command_vbak USING u_ucomm     TYPE sy-ucomm
                                 us_selfield TYPE slis_selfield."#EC CALLED
      CASE u_ucomm.
        WHEN '&IC1'.
          READ TABLE gt_vbak INDEX us_selfield-tabindex INTO gs_vbak.
          CHECK sy-subrc EQ 0.
          PERFORM f_read_data_vbap.        " Read data from VBAP
          PERFORM f_display_data_vbap.     " Display items
      ENDCASE.
    ENDFORM.                               " USER_COMMAND_VBAK
         Form  f_read_data_vbap
    FORM f_read_data_vbap.
      SELECT vbeln posnr matnr arktx kwmeng netwr
        INTO TABLE gt_vbap
        FROM vbap
       WHERE vbeln = gs_vbak-vbeln.
    ENDFORM.                               " F_READ_DATA_VBAP
         Form  f_display_data_vbap
    FORM f_display_data_vbap.
      DATA:
        ls_fieldcat TYPE slis_fieldcat_alv,
        lt_fieldcat TYPE slis_t_fieldcat_alv.
    Build the field catalog
      m_fieldcat 'VBELN'  'VBAP'.
      m_fieldcat 'POSNR'  'VBAP'.
      m_fieldcat 'MATNR'  'VBAP'.
      m_fieldcat 'ARKTX'  'VBAP'.
      m_fieldcat 'KWMENG' 'VBAP'.
      m_fieldcat 'NETWR'  'VBAP'.
    Display the third list
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          it_fieldcat = lt_fieldcat
        TABLES
          t_outtab    = gt_vbap.
    ENDFORM.                               " F_DISPLAY_DATA_VBAP
    END OF PROGRAM Z_DEMO_3_ALV_LIST ******************
    Regards,
    Raj.

  • Reg: ALV report -  output download

    Hi Friends,
    I am having one issue reg download of  ALV (Grid display) report output. we are having vendor number at 1st colomn. It's displaying correctly in output.
    (eg:0000100069). But, when I download the output into a excel file, last digit of the vendor number getting truncated. (eg: 100069 becomes 10006). 
    Kindly help me regarding this ..
    Thanks in advance.
    Regards,
    Bharat.

    Hi,
    The problem is in formatting in Excel. U download the data. Then select the column u want to format, right click and select format cells. In that, choose Number and assign decimal places to 0. U will get according to the format u needed.
    I worked in this, and got as per the specified format.
    Reward if found useful.

  • Total number lines, in an alv (REUSE_ALV_GRID_DISPLAY)

    Hi,
    i want to know, if it´s possible to show the total number of lines displayed in an alv. I´not not sure if that, is an event of the table gt_events[] (maybe the end_of_list one???)
    I would like to show this total, like an status message...
    Thanks in advance
    Carles

    report  ztest_alv1                              .
    type-pools: slis.
    data:
      ls_fieldcat type slis_fieldcat_alv,
      lt_fieldcat type slis_t_fieldcat_alv,
      lt_sort     type slis_t_sortinfo_alv,
      ls_sort     type slis_sortinfo_alv.
    data: v_line type i,
          lines(3) type c.
    DATA: GT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER.
    data: it_events type slis_t_event,
          x_events type slis_alv_event.
    data: begin of itab occurs 0,
           vbeln like vbak-vbeln,
           posnr like vbap-posnr,
          end of itab.
    itab-vbeln  = '12345'.
    itab-posnr = '10'.
    append itab.
    clear itab.
    itab-vbeln = '12345'.
    itab-posnr = '11'.
    append itab.
    clear itab.
    itab-vbeln = '12345'.
    itab-posnr = '12'.
    append itab.
    clear itab.
    itab-vbeln = '12356'.
    itab-posnr = '10'.
    append itab.
    clear itab.
    itab-vbeln = '12356'.
    itab-posnr = '11'.
    append itab.
    clear itab.
    itab-vbeln = '12356'.
    itab-posnr = '12'.
    append itab.
    clear itab.
    describe table itab lines v_line.
    lines = v_line.
    PERFORM E04_COMMENT_BUILD  USING GT_LIST_TOP_OF_PAGE[].
    x_events-name = 'TOP_OF_PAGE'.
    x_events-form = 'TOP_OF_PAGE'.
    append x_events to it_events.
    call function 'REUSE_ALV_FIELDCATALOG_MERGE'
      exporting
        i_program_name         = sy-repid
        i_internal_tabname     = 'ITAB'
        i_inclname             = sy-repid
      changing
        ct_fieldcat            = lt_fieldcat
      exceptions
        inconsistent_interface = 1
        program_error          = 2
        others                 = 3.
    if sy-subrc <> 0.
      message id sy-msgid type sy-msgty number sy-msgno
              with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    endif.
    ls_sort-fieldname = 'VBELN'.
    ls_sort-up        = 'X'.
    *ls_sort-group = 'UL'.
    append ls_sort to lt_sort.
    clear ls_sort.
    ls_sort-fieldname = 'POSNR'.
    ls_sort-up        = 'X'.
    *ls_sort-group = '*'.
    append ls_sort to lt_sort.
    call function 'REUSE_ALV_GRID_DISPLAY'
      exporting
        it_fieldcat = lt_fieldcat
        it_sort     = lt_sort
        it_events   = it_events
      tables
        t_outtab    = itab.
    FORM E04_COMMENT_BUILD USING E04_LT_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER.
      DATA: LS_LINE TYPE SLIS_LISTHEADER.
      CLEAR LS_LINE.
      LS_LINE-TYP  = 'S'.
      LS_LINE-KEY  = 'NO of lines'.
      LS_LINE-INFO = lines.
      APPEND LS_LINE TO E04_LT_TOP_OF_PAGE.
    ENDFORM.
    * FORM TOP_OF_PAGE *
    form top_of_page.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
           EXPORTING
                I_LOGO             = 'ENJOYSAP_LOGO'
                IT_LIST_COMMENTARY = GT_LIST_TOP_OF_PAGE.
    endform.                    "top_of_page
    check this code..
    regards
    vijay

  • Reg: Alv and selection-screen

    Hi,
    I created a ALV report,
    I gave the user provision delete rows and dispalyed the new list without the deleted rows( one row at a time)
    when i deleted few rows and when i press the back button i am getting all the rows deleted, but i want to jump directly to selection screen
    please help me how to jump to selection screen after pressing the back button
    i tried set screen 0     leave to screen 0 but of no use,
    please help in this regard
    thnx

    Hi learner,
    After deleting a row in ur internal tab u hav to refresh the display to remove dat row from display rite .....how r u doing it...??
    Are u calling the ALV FM again... if ur doin so !! its a wrong way and der lies de problem....
    check the sample code below in which if u double click on a row dat row gets deleted and the screen is refreshed.....also if u click back it goes to the selection-screen and not the previous alv display with deleted rows......
    TYPE-POOLS: slis.
    PARAMETERS rows TYPE i DEFAULT 20.
    DATA: itab        TYPE TABLE OF mara      WITH HEADER LINE,
          ls_layout   TYPE slis_layout_alv.
    START-OF-SELECTION.
      SELECT * UP TO rows ROWS
      FROM   mara
      INTO   CORRESPONDING FIELDS  OF TABLE itab.
      ls_layout-colwidth_optimize = 'X'.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          i_structure_name        = 'MARA'
          is_layout               = ls_layout
          i_callback_program      = sy-repid
          i_grid_title            = 'Double click on a row'
          i_callback_user_command = 'EVENT_HANDLER'
        TABLES
          t_outtab                = itab[].
    *&      Form  event_handler
    FORM event_handler  USING r_ucomm     TYPE sy-ucomm
                              rs_selfield TYPE slis_selfield.
      CLEAR  itab.
      DELETE itab INDEX rs_selfield-tabindex.
      MOVE 'X'   TO rs_selfield-refresh .                 " this automatically refreshes the display
    ENDFORM.                    "event_handler
    Cheers,
    jose.

  • REG ALV

    Hi,
       In ALV report How to change enable mode for particular field and If I change any field that will reflect in Database? Can any one send me the sample coding for this?
    Thanks,
    M.Manickam

    Hello,
    Check this code:
    *&      Form  ALV_DISPLAY
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM ALV_DISPLAY.
      DATA: IT_EVENTS TYPE SLIS_T_EVENT,
            WA_EVENTS LIKE LINE OF IT_EVENTS.
      REFRESH: IT_EVENTS.
      CLEAR: WA_EVENTS,IT_EVENTS.
      WA_EVENTS-NAME = 'PF_STATUS_SET'.
      WA_EVENTS-FORM = 'STATUS'.
      APPEND WA_EVENTS TO IT_EVENTS .
    *--- ALV List Display
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
           EXPORTING
                I_CALLBACK_PROGRAM      = G_PROGNAME
                I_CALLBACK_USER_COMMAND = G_CALLBACK_USER_COMMAND
                IT_FIELDCAT             = GT_FIELDCAT
                IT_EVENTS               = IT_EVENTS
           TABLES
                T_OUTTAB                = G_T_EKPO
           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  USER_COMMAND_ALV
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM ALV_USER_COMMAND USING R_UCOMM     LIKE SY-UCOMM
                               RS_SELFIELD TYPE SLIS_SELFIELD.
      CASE R_UCOMM.
        WHEN '&IC1'.
    *--- Hotspot selektion
          CASE RS_SELFIELD-FIELDNAME.
            WHEN 'NOTE'.
              SELECT * FROM  Z48M_NOTE_LIST INTO TABLE IT_TC01.
              READ TABLE G_T_EKPO INDEX RS_SELFIELD-TABINDEX.
              SELECT SINGLE * FROM Z48M_LIEF_NOTE
                          WHERE EBELN = G_T_EKPO-EBELN
                            AND EBELP = G_T_EKPO-EBELP.
              IF SY-SUBRC = 0.
                LOOP AT IT_TC01.
                  IF IT_TC01-KRITER = 'QUALITÄT'.
                    IT_TC01-NOTE = Z48M_LIEF_NOTE-QUALI.
                  ENDIF.
                  IF IT_TC01-KRITER = 'KOSTEN'.
                    IT_TC01-NOTE = Z48M_LIEF_NOTE-KOSTE.
                  ENDIF.
                  IF IT_TC01-KRITER = 'LIEFERTERMIN'.
                    IT_TC01-NOTE = Z48M_LIEF_NOTE-LIEFE.
                  ENDIF.
                  IF IT_TC01-KRITER = 'FLEXIBILITÄT'.
                    IT_TC01-NOTE = Z48M_LIEF_NOTE-FLEXI.
                  ENDIF.
                  IF IT_TC01-KRITER = 'ZUSAMMENARBEIT'.
                    IT_TC01-NOTE = Z48M_LIEF_NOTE-ZUSAM.
                  ENDIF.
                  IF IT_TC01-KRITER = 'SCHWIERIGKEITSGRAD'.
                    IT_TC01-NOTE = Z48M_LIEF_NOTE-SCHWI.
                  ENDIF.
                  MODIFY IT_TC01.
                ENDLOOP.
    *            MESSAGE I999(Z48MM) WITH TEXT-004 G_T_EKPO-EBELN
    *                                              G_T_EKPO-EBELP.
                CALL SCREEN 0100 STARTING AT 20 05  ENDING AT 80 14.
                G_T_EKPO-NOTE = G_F_AVG.
                G_T_EKPO-FLAG = 'X'.
                MODIFY G_T_EKPO INDEX RS_SELFIELD-TABINDEX.
                RS_SELFIELD-REFRESH = 'X'.
              ELSE.
                CALL SCREEN 0100 STARTING AT 20 05  ENDING AT 80 14.
                G_T_EKPO-NOTE = G_F_AVG.
                G_T_EKPO-FLAG = 'X'.
                MODIFY G_T_EKPO INDEX RS_SELFIELD-TABINDEX.
                RS_SELFIELD-REFRESH = 'X'.
              ENDIF.
          ENDCASE.
        WHEN '&EMAIL'.
          PERFORM BUILD_XLS_DATA_TABLE.
          PERFORM MAIL_SEND.
      ENDCASE.
    ENDFORM. "USER_COMMAND_ALV
    If useful reward.
    Vasanth

  • ALV Reuse_alv_grid_display

    Hi ,
    I am running a small report.
    Now i enter some values on the selection screen.
    And the results i am able to display in an ALV using the FM Reuse_alv_grid_display.
    I am trying to have a Push Button & i have added the following code in my program.
    REPORT  Z_TABLE_UPLOAD.
    SET PF-STATUS 'XYZ'.
    LL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
          EXPORTING
            I_CALLBACK_PROGRAM       = SY-REPID
            IT_FIELDCAT              = WA_FIELD
            I_GRID_TITLE             = 'ZTDA DETAILS'
            I_CALLBACK_PF_STATUS_SET = 'XYZ'
          TABLES
            T_OUTTAB                 = IT_ZTDA[]
          EXCEPTIONS
            PROGRAM_ERROR            = 1
            OTHERS                   = 2.
    I have added a push button in  XYZ.
    But i am not getting any push button in the application toolbar.
    pls suggest.
    regards,
    Kevin.

    Hi,
    See this code snippet:
    FORM alv_display.
      DATA: l_repid TYPE sy-repid.
      l_repid = sy-repid.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
       EXPORTING
         i_callback_program                = l_repid
         i_callback_pf_status_set          = 'SET_PF_STATUS'   "pass subroutine name not status name here
         i_callback_user_command           = 'USER_COMMAND'
         i_callback_top_of_page            = 'TOP_OF_PAGE'
         is_layout                         = wa_alv_layout
         it_fieldcat                       = it_alv_fieldcat[]
         it_sort                           = it_alv_sortinfo[]
         i_default                         = 'X'
         i_save                            = 'A'
         it_events                         = it_alv_events[]
        TABLES
          t_outtab                          = ft_alv_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.
    ENDFORM.
    FORM set_pf_status USING ft_extab TYPE slis_t_extab.  "subroutine must have this signature
      SET PF-STATUS 'ALV_STATUS'.  "here you set your status
    ENDFORM.                   
    Regards
    Marcin

  • Reg: ALV Field catalog refresh

    Hello All,
    Initially I have to display an ALV grid. Upon a buttons click(User Command)  , an additional col should be displayed for which the field catalog of the ALV needs to be changed. Iam using FM ''REUSE_ALV_GRID_DISPLAY'.My question is , how cld v refresh filedcatalog ? To refresh the grid data , we use selfield-refresh = 'X'. Is there any thing some thing like that to refresh fieldcat or v have to build the fieldcat again?
    I have pasted part of code below:
    CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
        EXPORTING
          i_program_name   = sy-repid
          i_structure_name = 'TRIGS_IGT_WRKLIST'
        CHANGING
          ct_fieldcat      = c_tab_fieldcat_main.
      LOOP AT c_tab_fieldcat_main ASSIGNING <l_wa_fieldcat_main>.
        IF <l_wa_fieldcat_main>-fieldname = 'BUSTRANSCAT_TEXT' OR
        <l_wa_fieldcat_main>-fieldname = 'VALUATION_AREA' OR
        <l_wa_fieldcat_main>-fieldname = 'VALUATION_CLASS' OR
        <l_wa_fieldcat_main>-fieldname = 'COMPANY_CODE' OR
        <l_wa_fieldcat_main>-fieldname = 'PRODUCT_TYPE' OR
        <l_wa_fieldcat_main>-fieldname = 'SECURITY_ACCOUNT' OR
        <l_wa_fieldcat_main>-fieldname = 'SECURITY_ID' OR
        <l_wa_fieldcat_main>-fieldname = 'IGT_STATUS_TEXT' OR
        <l_wa_fieldcat_main>-fieldname = 'POSDATE' OR
        <l_wa_fieldcat_main>-fieldname = 'TRLDATE' OR
        <l_wa_fieldcat_main>-fieldname = 'COMPANY_ID' OR
        <l_wa_fieldcat_main>-fieldname = 'COUNTERPARTY' OR
        <l_wa_fieldcat_main>-fieldname = 'UNITS' OR
        <l_wa_fieldcat_main>-fieldname = 'POSITION_CURR' OR
        <l_wa_fieldcat_main>-fieldname = 'DEAL_NUMBER' OR
        <l_wa_fieldcat_main>-fieldname = 'POSITION_AMT' .
        ELSE.
          <l_wa_fieldcat_main>-no_out = 'X'.
        ENDIF.
    Assign postion
        IF <l_wa_fieldcat_main>-fieldname = 'BUSTRANSCAT_TEXT'.
          <l_wa_fieldcat_main>-col_pos   = 2.
          <l_wa_fieldcat_main>-ddictxt   = 'M'.
          <l_wa_fieldcat_main>-outputlen = '5'.
        ENDIF.
        IF <l_wa_fieldcat_main>-fieldname = 'COMPANY_CODE'.
          <l_wa_fieldcat_main>-col_pos  = 3.
        ENDIF.
        IF <l_wa_fieldcat_main>-fieldname = 'VALUATION_AREA'.
          <l_wa_fieldcat_main>-col_pos  = 4.
        ENDIF.
        IF <l_wa_fieldcat_main>-fieldname = 'PRODUCT_TYPE'.
          <l_wa_fieldcat_main>-col_pos  = 5.
        ENDIF.
        IF <l_wa_fieldcat_main>-fieldname = 'SECURITY_ID'.
          <l_wa_fieldcat_main>-col_pos  = 6.
        ENDIF.
        IF <l_wa_fieldcat_main>-fieldname = 'SECURITY_ACCOUNT'.
          <l_wa_fieldcat_main>-col_pos  = 7.
        ENDIF.
        IF <l_wa_fieldcat_main>-fieldname = 'DEAL_NUMBER'.
          <l_wa_fieldcat_main>-col_pos  = 8.
        ENDIF.
        IF <l_wa_fieldcat_main>-fieldname = 'IGT_STATUS_TEXT'.
          <l_wa_fieldcat_main>-col_pos  = 9.
          <l_wa_fieldcat_main>-ddictxt  = 'M'.
        ENDIF.
        IF <l_wa_fieldcat_main>-fieldname = 'POSDATE'.
          <l_wa_fieldcat_main>-col_pos  = 10.
        ENDIF.
        IF <l_wa_fieldcat_main>-fieldname = 'TRLDATE'.
          <l_wa_fieldcat_main>-col_pos  = 11.
        ENDIF.
        IF <l_wa_fieldcat_main>-fieldname = 'COMPANY_ID'.
          <l_wa_fieldcat_main>-col_pos  = 12.
        ENDIF.
        IF <l_wa_fieldcat_main>-fieldname = 'UNITS'.
          <l_wa_fieldcat_main>-col_pos  = 13.
        ENDIF.
        IF <l_wa_fieldcat_main>-fieldname = 'POSITION_AMT'.
          <l_wa_fieldcat_main>-col_pos  = 14.
        ENDIF.
      ENDLOOP.
      CASE sy-ucomm.
        WHEN 'MATCH'.
          READ TABLE c_tab_fieldcat_main ASSIGNING <l_wa_fieldcat_main>
            WITH KEY fieldname = 'MATCHED'.
          CHECK sy-subrc EQ 0.
          <l_wa_fieldcat_main>-col_pos  = 1.
          <l_wa_fieldcat_main>-seltext_s = 'Matched Pairs'.
          <l_wa_fieldcat_main>-seltext_m = 'Matched Pairs'.
          <l_wa_fieldcat_main>-seltext_l = 'Matched Pairs'.
          <l_wa_fieldcat_main>-no_out = ' '.
        WHEN 'REVERSAL'.
          READ TABLE c_tab_fieldcat_main ASSIGNING <l_wa_fieldcat_main>
            WITH KEY fieldname = 'ICON_REVERSAL'.
          CHECK sy-subrc EQ 0.
          <l_wa_fieldcat_main>-col_pos  = 1.
          <l_wa_fieldcat_main>-icon = 'X'.
          <l_wa_fieldcat_main>-outputlen = 3.
          <l_wa_fieldcat_main>-no_out  = ' '.
      ENDCASE.
    Thanks,
    Sri

    Hi
    U need to use the fm REUSE_ALV_GRID_LAYOUT_INFO_SET, here you can change the catalog table.
    Max

  • Reg. alv reports

    how can u maintain top-of -page end-of -page ,at-line selection,at user command all in one alv report program?

    hi,
    try like this
    TYPE-POOLS : slis.
    TABLES : mara,
             makt,
             marc.
    DATA : BEGIN OF itab OCCURS 0,
            matnr LIKE mara-matnr,
            maktx LIKE makt-maktx,
            werks LIKE marc-werks,
           END OF itab.
    DATA : t_fcat TYPE slis_t_fieldcat_alv,
           t_eve TYPE slis_t_event,
           st_line TYPE slis_listheader,
           t_list_top_page TYPE slis_t_listheader,
           t_list_end_page TYPE slis_t_listheader.
    DATA : t_mat LIKE mara-matnr.
    SELECTION-SCREEN : BEGIN OF BLOCK blk1 WITH FRAME TITLE text-001.
    SELECT-OPTIONS : mat FOR mara-matnr.
    SELECTION-SCREEN : END OF BLOCK blk1.
    INITIALIZATION.
      PERFORM build_cat USING t_fcat.
      PERFORM build_eve.
    START-OF-SELECTION.
      PERFORM get_data.
      PERFORM build_header USING t_list_top_page[].
      PERFORM build_footer USING t_list_end_page[].
      PERFORM dis_data.
    *&      Form  buils_cat
          text
         -->TEMP_FCAT  text
    FORM build_cat USING temp_fcat TYPE slis_t_fieldcat_alv.
      DATA : wa_fcat TYPE slis_fieldcat_alv.
      wa_fcat-tabname = 'ITAB'.
      wa_fcat-fieldname = 'MATNR'.
      wa_fcat-seltext_m = 'Material'.
      APPEND wa_fcat TO temp_fcat.
      CLEAR wa_fcat.
      wa_fcat-tabname = 'ITAB'.
      wa_fcat-fieldname = 'MAKTX'.
      wa_fcat-seltext_m = 'Material Description'.
      APPEND wa_fcat TO temp_fcat.
      CLEAR wa_fcat.
      wa_fcat-tabname = 'ITAB'.
      wa_fcat-fieldname = 'WERKS'.
      wa_fcat-seltext_m = 'Plant'.
    wa_fcat-row_pos = 2.
      APPEND wa_fcat TO temp_fcat.
      CLEAR wa_fcat.
    ENDFORM.                    "build_cat
    *&      Form  build_eve
          text
    FORM build_eve.
      DATA : wa_eve TYPE slis_alv_event.
      CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
       EXPORTING
         i_list_type           = 0
       IMPORTING
         et_events             = t_eve
    EXCEPTIONS
      LIST_TYPE_WRONG       = 1
      OTHERS                = 2
      IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      READ TABLE t_eve INTO wa_eve WITH KEY name = 'END_OF_LIST'.
      IF sy-subrc = 0.
        wa_eve-form = 'END_OF_PAGE'.
        MODIFY t_eve FROM wa_eve INDEX sy-tabix.
      ENDIF.
    ENDFORM.                    "build_eve
    *&      Form  get_data
          text
    FORM get_data.
      SELECT maramatnr maktmaktx marc~werks INTO CORRESPONDING FIELDS OF TABLE itab
      FROM mara INNER JOIN makt ON
      maramatnr = maktmatnr
      INNER JOIN marc ON
      maramatnr = marcmatnr
      WHERE mara~matnr IN mat.
    ENDFORM.                    "get_data
    *&      Form  dis_data
          text
    FORM dis_data.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
       EXPORTING
         i_callback_program                = 'ZALV_PRDS'
         i_callback_user_command           = 'USER_COMMAND'
         i_callback_top_of_page            = 'TOP_OF_PAGE'
         it_fieldcat                       = t_fcat
         i_save                            = 'A'
         it_events                         = t_eve
       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.
    ENDFORM.                    "dis_data
    *&      Form  build_header
          text
         -->TEMP_LIST          text
         -->TTYPE              text
         -->SLIS_T_LISTHEADER  text
    FORM build_header USING temp_list TYPE slis_t_listheader.
      CLEAR st_line.
      st_line-typ = 'H'.
      st_line-info = 'Material Info'.
      APPEND st_line TO temp_list.
      CLEAR st_line.
      st_line-typ = 'H'.
      st_line-info = '----
      APPEND st_line TO temp_list.
      CLEAR st_line.
      st_line-typ = 'H'.
      st_line-info = 'Material Info1'.
      APPEND st_line TO temp_list.
    ENDFORM.                    "build_header
    *&      Form  build_footer
          text
         -->TEMP_LIST  text
    FORM build_footer USING temp_list TYPE slis_t_listheader.
      CLEAR st_line.
      st_line-typ = 'H'.
      st_line-info = 'Dhwani Shah'.
      APPEND st_line TO temp_list.
    ENDFORM.                    "build_header
    *&      Form  top_Of_page
          text
    FORM top_of_page.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
        EXPORTING
          it_list_commentary = t_list_top_page.
    ENDFORM.                    "top_Of_page
    *&      Form  end_of_page
          text
    FORM end_of_page.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
        EXPORTING
          it_list_commentary = t_list_end_page.
    ENDFORM.                    "end_of_page
    *&      Form  user_command
          text
    FORM user_command USING u_com LIKE sy-ucomm sel_field TYPE slis_selfield.
      CASE u_com.
        WHEN '&IC1'.
          IF sel_field-fieldname = 'MATNR'.
            READ TABLE itab INDEX sel_field-tabindex.
            IF sy-subrc = 0.
              t_mat = itab-matnr.
              SET PARAMETER ID 'MAT' FIELD t_mat.
              CALL TRANSACTION 'MM03' AND SKIP FIRST SCREEN.
            ENDIF.
          ENDIF.
      ENDCASE.
    ENDFORM.                    "user_command
    In this
    END-OF-page, top-of-page, user_commamnd (&IC1 for double click like line selection) used
    reward if usefull.

  • Reg ALV interactive

    Hi,
    I am displaying 14 fields as output using ALV grid display. Now the new request is that when you click on the PO number field it has to go the ME23N for the PO.
    Could you plz give tell me how to proceed in detail.
    Thanks
    Reddy

    Hi,
    Thanks for assisting, But still i am not able to resolve. I have made the changes as suggested. and i have doubt how system will recognise the subroutine. No where we are using perform.  Please suggest necessary changes to resolve this.. THis is very urgent.
    Syntax error: Statement is not accessible.          
    data : w_callback_subroutine TYPE slis_formname.
    w_callback_subroutine = 'USER_COMMAND'.
    w_program = sy-repid.
    FORM USER_COMMAND USING P_UCOMM TYPE SY-UCOMM
                            P_SELFIELD TYPE SLIS_SELFIELD.
    CASE P_UCOMM.
        WHEN '&IC1'.   
            SET PARAMETER ID 'BES' FIELD p_selfield-value.
            CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.
          CLEAR: P_UCOMM.
    ENDCASE.
    ENDFORM.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
       I_CALLBACK_PROGRAM                = W_PROGRAM
       I_CALLBACK_PF_STATUS_SET          = 'PF_STATUS'
       I_CALLBACK_USER_COMMAND           = w_callback_subroutine   I_GRID_TITLE                      = GV_GRID_TITLE
       IS_LAYOUT                         = LAYOUT
       IT_FIELDCAT                       = GT_FIELDCAT
       IT_EVENT_EXIT                     =
      TABLES
        T_OUTTAB                          = GT_OUT
    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.

  • Reg ALV Interactive  rpts

    Hi Guru's,
    A  Very Good Morning,
    I am doing ALV interactive reports . In that i want to show the details in column wise like ,if i click it in any column like  1,2,3,.........it will display that particular column only. can any body could give the logic of this issue.
    Please put lights on this issue.
    Thanks & regards,
    kalyan.

    Kalyan,
    This is the right report for your requirement.
    An Interactive ALV Report
    *& Report  ZZ_22038_22098_002                                          *
    *& This is an Interactive ALV report, where on line slection we can see
    *&  the secondry list
    REPORT  ZZ_22038_22098_002 NO STANDARD PAGE HEADING LINE-SIZE 650
    MESSAGE-ID ZZ_9838                      .
    TYPE-POOLS: SLIS.
    *type declaration for values from ekko
    TYPES: BEGIN OF I_EKKO,
           EBELN LIKE EKKO-EBELN,
           AEDAT LIKE EKKO-AEDAT,
           BUKRS LIKE EKKO-BUKRS,
           BSART LIKE EKKO-BSART,
           LIFNR LIKE EKKO-LIFNR,
           END OF I_EKKO.
    DATA: IT_EKKO TYPE STANDARD TABLE OF I_EKKO INITIAL SIZE 0,
          WA_EKKO TYPE I_EKKO.
    *type declaration for values from ekpo
    TYPES: BEGIN OF I_EKPO,
           EBELN LIKE EKPO-EBELN,
           EBELP LIKE EKPO-EBELP,
           MATNR LIKE EKPO-MATNR,
           MENGE LIKE EKPO-MENGE,
           MEINS LIKE EKPO-MEINS,
           NETPR LIKE EKPO-NETPR,
           END OF I_EKPO.
    DATA: IT_EKPO TYPE STANDARD TABLE OF I_EKPO INITIAL SIZE 0,
          WA_EKPO TYPE I_EKPO .
    *variable for Report ID
    DATA: V_REPID LIKE SY-REPID .
    *declaration for fieldcatalog
    DATA: I_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
          WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
    DATA: IT_LISTHEADER TYPE SLIS_T_LISTHEADER.
    declaration for events table where user comand or set PF status will
    be defined
    DATA: V_EVENTS TYPE SLIS_T_EVENT,
          WA_EVENT TYPE SLIS_ALV_EVENT.
    declartion for layout
    DATA: ALV_LAYOUT TYPE SLIS_LAYOUT_ALV.
    declaration for variant(type of display we want)
    DATA: I_VARIANT TYPE DISVARIANT,
          I_VARIANT1 TYPE DISVARIANT,
          I_SAVE(1) TYPE C.
    *PARAMETERS : p_var TYPE disvariant-variant.
    *Title displayed when the alv list is displayed
    DATA:  I_TITLE_EKKO TYPE LVC_TITLE VALUE 'FIRST LIST DISPLAYED'.
    DATA:  I_TITLE_EKPO TYPE LVC_TITLE VALUE 'SECONDRY LIST DISPLAYED'.
    INITIALIZATION.
      V_REPID = SY-REPID.
      PERFORM BUILD_FIELDCATLOG.
      PERFORM EVENT_CALL.
      PERFORM POPULATE_EVENT.
    START-OF-SELECTION.
      PERFORM DATA_RETRIEVAL.
      PERFORM BUILD_LISTHEADER USING IT_LISTHEADER.
      PERFORM DISPLAY_ALV_REPORT.
    *&      Form  BUILD_FIELDCATLOG
          Fieldcatalog has all the field details from ekko
    FORM BUILD_FIELDCATLOG.
      WA_FIELDCAT-TABNAME = 'IT_EKKO'.
      WA_FIELDCAT-FIELDNAME = 'EBELN'.
      WA_FIELDCAT-SELTEXT_M = 'PO NO.'.
      APPEND WA_FIELDCAT TO I_FIELDCAT.
      CLEAR WA_FIELDCAT.
      WA_FIELDCAT-TABNAME = 'IT_EKKO'.
      WA_FIELDCAT-FIELDNAME = 'AEDAT'.
      WA_FIELDCAT-SELTEXT_M = 'DATE.'.
      APPEND WA_FIELDCAT TO I_FIELDCAT.
      CLEAR WA_FIELDCAT.
      WA_FIELDCAT-TABNAME = 'IT_EKKO'.
      WA_FIELDCAT-FIELDNAME = 'BUKRS'.
      WA_FIELDCAT-SELTEXT_M = 'COMPANY CODE'.
      APPEND WA_FIELDCAT TO I_FIELDCAT.
      CLEAR WA_FIELDCAT.
    WA_FIELDCAT-TABNAME = 'IT_EKKO'.
      WA_FIELDCAT-FIELDNAME = 'BUKRS'.
      WA_FIELDCAT-SELTEXT_M = 'DOCMENT TYPE'.
      APPEND WA_FIELDCAT TO I_FIELDCAT.
      CLEAR WA_FIELDCAT.
    WA_FIELDCAT-TABNAME = 'IT_EKKO'.
      WA_FIELDCAT-FIELDNAME = 'LIFNR'.
      WA_FIELDCAT-NO_OUT    = 'X'.
      WA_FIELDCAT-SELTEXT_M = 'VENDOR CODE'.
      APPEND WA_FIELDCAT TO I_FIELDCAT.
      CLEAR WA_FIELDCAT.
    ENDFORM.                    "BUILD_FIELDCATLOG
    *&      Form  EVENT_CALL
      we get all events - TOP OF PAGE or USER COMMAND in table v_events
    FORM EVENT_CALL.
      CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
       EXPORTING
         I_LIST_TYPE           = 0
       IMPORTING
         ET_EVENTS             = V_EVENTS
    EXCEPTIONS
       LIST_TYPE_WRONG       = 1
       OTHERS                = 2
      IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDFORM.                    "EVENT_CALL
    *&      Form  POPULATE_EVENT
         Events populated for TOP OF PAGE & USER COMAND
    FORM POPULATE_EVENT.
      READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.
      IF SY-SUBRC EQ 0.
        WA_EVENT-FORM = 'TOP_OF_PAGE'.
        MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =
    WA_EVENT-FORM.
      ENDIF.
      READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'USER_COMMAND'.
      IF SY-SUBRC EQ 0.
        WA_EVENT-FORM = 'USER_COMMAND'.
        MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =
    WA_EVENT-NAME.
      ENDIF.
    ENDFORM.                    "POPULATE_EVENT
    *&      Form  data_retrieval
      retreiving values from the database table ekko
    FORM DATA_RETRIEVAL.
      SELECT EBELN AEDAT BUKRS BSART LIFNR FROM EKKO INTO TABLE IT_EKKO.
    ENDFORM.                    "data_retrieval
    *&      Form  bUild_listheader
          text
         -->I_LISTHEADEtext
    FORM BUILD_LISTHEADER USING I_LISTHEADER TYPE SLIS_T_LISTHEADER.
      DATA HLINE TYPE SLIS_LISTHEADER.
      HLINE-INFO = 'this is my first alv pgm'.
      HLINE-TYP = 'H'.
    ENDFORM.                    "build_listheader
    *&      Form  display_alv_report
          text
    FORM DISPLAY_ALV_REPORT.
      V_REPID = SY-REPID.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
       EXPORTING
         I_CALLBACK_PROGRAM                = V_REPID
      I_CALLBACK_PF_STATUS_SET           = ' '
         I_CALLBACK_USER_COMMAND           = 'USER_COMMAND'
         I_CALLBACK_TOP_OF_PAGE            = 'TOP_OF_PAGE'
         I_GRID_TITLE                      = I_TITLE_EKKO
      I_GRID_SETTINGS                    =
      IS_LAYOUT                          = ALV_LAYOUT
         IT_FIELDCAT                       = I_FIELDCAT[]
      IT_EXCLUDING                       =
      IT_SPECIAL_GROUPS                  =
      IT_SORT                            =
      IT_FILTER                          =
      IS_SEL_HIDE                        =
        i_default                        = 'ZLAY1'
         I_SAVE                            = 'A'
        is_variant                       = i_variant
         IT_EVENTS                         = V_EVENTS
        TABLES
          T_OUTTAB                         = IT_EKKO
    EXCEPTIONS
      PROGRAM_ERROR                      = 1
      OTHERS                             = 2
      IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDFORM.                    "display_alv_report
    *&      Form  TOP_OF_PAGE
          text
    FORM TOP_OF_PAGE.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
        EXPORTING
          IT_LIST_COMMENTARY       = IT_LISTHEADER
       i_logo                   =
       I_END_OF_LIST_GRID       =
    ENDFORM.                    "TOP_OF_PAGE
    *&      Form  USER_COMMAND
          text
         -->R_UCOMM    text
         -->,          text
         -->RS_SLEFIELDtext
    FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
    RS_SELFIELD TYPE SLIS_SELFIELD.
      CASE R_UCOMM.
        WHEN '&IC1'.
          READ TABLE IT_EKKO INTO WA_EKKO INDEX RS_SELFIELD-TABINDEX.
          PERFORM BUILD_FIELDCATLOG_EKPO.
          PERFORM EVENT_CALL_EKPO.
          PERFORM POPULATE_EVENT_EKPO.
          PERFORM DATA_RETRIEVAL_EKPO.
          PERFORM BUILD_LISTHEADER_EKPO USING IT_LISTHEADER.
          PERFORM DISPLAY_ALV_EKPO.
      ENDCASE.
    ENDFORM.                    "user command
    *&      Form  BUILD_FIELDCATLOG_EKPO
          text
    FORM BUILD_FIELDCATLOG_EKPO.
      WA_FIELDCAT-TABNAME = 'IT_EKPO'.
      WA_FIELDCAT-FIELDNAME = 'EBELN'.
      WA_FIELDCAT-SELTEXT_M = 'PO NO.'.
      APPEND WA_FIELDCAT TO I_FIELDCAT.
      CLEAR WA_FIELDCAT.
      WA_FIELDCAT-TABNAME = 'IT_EKPO'.
      WA_FIELDCAT-FIELDNAME = 'EBELP'.
      WA_FIELDCAT-SELTEXT_M = 'LINE NO'.
      APPEND WA_FIELDCAT TO I_FIELDCAT.
      CLEAR WA_FIELDCAT.
      WA_FIELDCAT-TABNAME = 'I_EKPO'.
      WA_FIELDCAT-FIELDNAME = 'MATNR'.
      WA_FIELDCAT-SELTEXT_M = 'MATERIAL NO.'.
      APPEND WA_FIELDCAT TO I_FIELDCAT.
      CLEAR WA_FIELDCAT.
    WA_FIELDCAT-TABNAME = 'I_EKPO'.
      WA_FIELDCAT-FIELDNAME = 'MENGE'.
      WA_FIELDCAT-SELTEXT_M = 'QUANTITY'.
      APPEND WA_FIELDCAT TO I_FIELDCAT.
      CLEAR WA_FIELDCAT.
    WA_FIELDCAT-TABNAME = 'I_EKPO'.
      WA_FIELDCAT-FIELDNAME = 'MEINS'.
      WA_FIELDCAT-SELTEXT_M = 'UOM'.
      APPEND WA_FIELDCAT TO I_FIELDCAT.
      CLEAR WA_FIELDCAT.
    WA_FIELDCAT-TABNAME = 'I_EKPO'.
      WA_FIELDCAT-FIELDNAME = 'NETPR'.
      WA_FIELDCAT-SELTEXT_M = 'PRICE'.
      APPEND WA_FIELDCAT TO I_FIELDCAT.
      CLEAR WA_FIELDCAT.
    ENDFORM.                    "BUILD_FIELDCATLOG_EKPO
    *&      Form  event_call_ekpo
      we get all events - TOP OF PAGE or USER COMMAND in table v_events
    FORM EVENT_CALL_EKPO.
      CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
       EXPORTING
         I_LIST_TYPE           = 0
       IMPORTING
         ET_EVENTS             = V_EVENTS
    EXCEPTIONS
      LIST_TYPE_WRONG       = 1
      OTHERS                = 2
      IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDFORM.                    "event_call_ekpo
    *&      Form  POPULATE_EVENT
           Events populated for TOP OF PAGE & USER COMAND
    FORM POPULATE_EVENT_EKPO.
      READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.
      IF SY-SUBRC EQ 0.
        WA_EVENT-FORM = 'TOP_OF_PAGE'.
        MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =
    WA_EVENT-FORM.
      ENDIF.
      ENDFORM.                    "POPULATE_EVENT
    *&      Form  TOP_OF_PAGE
          text
    FORM F_TOP_OF_PAGE.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
        EXPORTING
          IT_LIST_COMMENTARY       = IT_LISTHEADER
       i_logo                   =
       I_END_OF_LIST_GRID       =
    ENDFORM.                    "TOP_OF_PAGE
    *&      Form  USER_COMMAND
          text
         -->R_UCOMM    text
         -->,          text
         -->RS_SLEFIELDtext
    *retreiving values from the database table ekko
    FORM DATA_RETRIEVAL_EKPO.
    SELECT EBELN EBELP MATNR MENGE MEINS NETPR FROM EKPO INTO TABLE IT_EKPO.
    ENDFORM.
    FORM BUILD_LISTHEADER_EKPO USING I_LISTHEADER TYPE SLIS_T_LISTHEADER.
    DATA: HLINE1 TYPE SLIS_LISTHEADER.
    HLINE1-TYP = 'H'.
    HLINE1-INFO = 'CHECKING PGM'.
    ENDFORM.
    FORM DISPLAY_ALV_EKPO.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      I_INTERFACE_CHECK                 = ' '
      I_BYPASSING_BUFFER                = ' '
      I_BUFFER_ACTIVE                   = ' '
       I_CALLBACK_PROGRAM                = V_REPID
      I_CALLBACK_PF_STATUS_SET          = ' '
      I_CALLBACK_USER_COMMAND           = 'F_USER_COMMAND'
       I_CALLBACK_TOP_OF_PAGE            = '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_TITLE_EKPO
      I_GRID_SETTINGS                   =
      IS_LAYOUT                         =
       IT_FIELDCAT                       = I_FIELDCAT[]
      IT_EXCLUDING                      =
      IT_SPECIAL_GROUPS                 =
      IT_SORT                           =
      IT_FILTER                         =
      IS_SEL_HIDE                       =
      I_DEFAULT                         =
       I_SAVE                            = 'A'
      IS_VARIANT                        =
       IT_EVENTS                         = V_EVENTS
      TABLES
        T_OUTTAB                          = IT_EKPO
    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.
    Interactive with calling transaction code.
    report zrich_0001.
    Global ALV Data Declarations
    type-pools: slis.
    Internal Tables
    data: begin of itab occurs 0,
          matnr type mara-matnr,
          maktx type makt-maktx,
          end of itab.
    start-of-selection.
      perform get_data.
      perform call_alv.
         Form  GET_DATA
    form get_data.
      select maramatnr maktmaktx
              into corresponding fields of table itab
                   from mara
                     inner join makt
                      on maramatnr = maktmatnr
                                 up to 20 rows.
    endform.
    CALL_ALV
    form call_alv.
      data: ifc type slis_t_fieldcat_alv.
      data: xfc type slis_fieldcat_alv.
      data: repid type sy-repid.
      repid = sy-repid.
      clear xfc. refresh ifc.
      clear xfc.
      xfc-reptext_ddic = 'Material Number'.
      xfc-fieldname    = 'MATNR'.
      xfc-tabname      = 'ITAB'.
      xfc-outputlen    = '18'.
      append xfc to ifc.
      clear xfc.
      xfc-reptext_ddic = 'Material Description'.
      xfc-fieldname    = 'MAKTX'.
      xfc-tabname      = 'ITAB'.
      xfc-outputlen    = '40'.
      append xfc to ifc.
    Call ABAP List Viewer (ALV)
      call function 'REUSE_ALV_GRID_DISPLAY'
           exporting
                i_callback_program      = repid
                i_callback_user_command = 'HANDLE_USER_COMMAND'
                it_fieldcat             = ifc
           tables
                t_outtab                = itab.
    endform.
          FORM handle_User_Command                                      *
    form handle_user_command using r_ucomm     like sy-ucomm
                                   rs_selfield type slis_selfield.
      case r_ucomm.
        when '&IC1'.
        case rs_selfield-FIELDNAME.
          when 'MATNR'.
             set parameter id 'MAT' field rs_selfield-value.
             call transaction 'MD04' and skip first screen.
          endcase.
      endcase.
    endform.
    Don't forget to reward if useful....

  • Reg:ALVS

    Hai,
    I am working on alvs i want to display top-of page heading but its not displaying the heading i am sending my code just go through that
    *& Report  ZPROG1
    REPORT  zprog1.
    TABLES:kna1,vbak.
    TYPE-POOLS: slis.
    *parameters:cust like kna1-kunnr.
    DATA:BEGIN OF it_kna1 ,
           kunnr LIKE kna1-kunnr,
           land1 LIKE kna1-land1,
           name1 LIKE kna1-name1,
           ort01 LIKE kna1-ort01,
         END OF it_kna1.
    DATA:BEGIN OF it_vbak OCCURS 0,
         vbeln LIKE vbak-vbeln,
         erdat LIKE vbak-erdat,
         netwr LIKE vbak-netwr,
         kunnr LIKE vbak-kunnr,
        END OF it_vbak.
    DATA:i_kna1 LIKE TABLE OF it_kna1 WITH HEADER LINE.
    DATA:i_fieldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE,
        i_fieldcat1 TYPE slis_t_fieldcat_alv WITH HEADER LINE,
        it_event TYPE slis_t_event WITH HEADER LINE.
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
    SELECT-OPTIONS:cust FOR kna1-kunnr.
    SELECTION-SCREEN END OF BLOCK b1.
    START-OF-SELECTION.
      SELECT kunnr land1 name1 ort01 FROM kna1 INTO CORRESPONDING FIELDS OF
      TABLE i_kna1 WHERE kunnr IN cust.
      i_fieldcat-fieldname = 'KUNNR'.
      i_fieldcat-col_pos = 1.
      i_fieldcat-seltext_l = 'Customer NO'.
      APPEND i_fieldcat.
    *CLEAR i_fieldcat.
      i_fieldcat-fieldname = 'LAND1'.
      i_fieldcat-col_pos = 2.
      i_fieldcat-seltext_l = 'Country'.
      APPEND i_fieldcat.
    *CLEAR i_fieldcat.
      i_fieldcat-fieldname = 'NAME1'.
      i_fieldcat-col_pos = 3.
      i_fieldcat-seltext_l = 'Customer Name'.
      APPEND i_fieldcat.
    *CLEAR i_fieldcat.
      i_fieldcat-fieldname = 'ORT01'.
      i_fieldcat-col_pos = 4.
      i_fieldcat-seltext_l = 'City'.
      APPEND i_fieldcat.
    IT_EVENT-form = 'interractive'.
    IT_EVENT-name = 'USER_COMMAND'.
    append it_event.
    PERFORM TOP-OF-PAGE.
    PERFORM eventcall.
    PERFORM populate_event.
      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          = 'STATUS'
       i_callback_user_command           = 'PROCESS_USER_COMMANDS'
       i_callback_top_of_page            = 'TOP-OF-PAGE'
      I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
      I_CALLBACK_HTML_END_OF_LIST       = ' '
      I_STRUCTURE_NAME                  = I_STRUCTURE_NAME
      I_BACKGROUND_ID                   = ' '
       i_grid_title                      = 'CUSTOMER GRID DISPLAY'
      I_GRID_SETTINGS                   = I_GRID_SETTINGS
        is_layout                         = l_layout
         it_fieldcat                       = i_fieldcat[]
      IT_EXCLUDING                      = l_exculd
      IT_SPECIAL_GROUPS                 = IT_SPECIAL_GROUPS
      IT_SORT                           = IT_SORT
      IT_FILTER                         = IT_FILTER
      IS_SEL_HIDE                       = IS_SEL_HIDE
      i_default                         = 'X'
      I_SAVE                            = ' '
      IS_VARIANT                        = IS_VARIANT
      it_events                         = it_event[]
      IT_EVENT_EXIT                     = IT_EVENT_EXIT
      IS_PRINT                          = IS_PRINT
      IS_REPREP_ID                      = 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                   = i_graphic
      IT_HYPERLINK                      = IT_HYPERLINK
      IT_ADD_FIELDCAT                   = IT_ADD_FIELDCAT
      IT_EXCEPT_QINFO                   = IT_EXCEPT_QINFO
      IR_SALV_FULLSCREEN_ADAPTER        = IR_SALV_FULLSCREEN_ADAPTER
    IMPORTING
      E_EXIT_CAUSED_BY_CALLER           = E_EXIT_CAUSED_BY_CALLER
      ES_EXIT_CAUSED_BY_USER            = ES_EXIT_CAUSED_BY_USER
        TABLES
          t_outtab                          = i_kna1
    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.
    *perform top_of_page.
    FORM TOP-OF-PAGE.
      DATA: t_header type slis_t_listheader,
           wa_header TYPE slis_listheader.
    Title
      wa_header-typ = 'A'.
      wa_header-info = ' KNA1 Table Report '.
      APPEND wa_header TO t_header.
    CLEAR wa_header.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
        EXPORTING
          it_list_commentary = t_header.
         i_logo   = 'ENJOYSAP_LOGO'
      I_END_OF_LIST_GRID       = I_END_OF_LIST_GRID
      I_ALV_FORM               = I_ALV_FORM
    ENDFORM.                    "top-of-page
    *FORM PROCESS_USER_COMMANDS USING syst_ucomm LIKE sy-ucomm
                                    selfield TYPE slis_selfield.
    case syst-ucomm.
    *DATA:repid LIKE sy-repid.
    *data:&IC1 like sy-ucomm.
    *data:field like selfield-fieldname.
    *data:i_index like selfield-tabindex.
    repid = sy-repid.
    *data:ls_kna1 like i_kna1.
    *data:field1 like selfield-fieldname.
    *i_index = selfield-tabindex.
    *read table i_kna1 index i_index into ls_kna1.
    *field = ls_kna1-kunnr.
    if field = ls_kna1-kunnr.
    *field1 = field.
    SELECT * FROM vbak INTO CORRESPONDING FIELDS OF table it_vbak WHERE
    *kunnr = field1.
    i_fieldcat1-fieldname = 'VBELN'.
    i_fieldcat1-col_pos = 1.
    i_fieldcat1-seltext_l = 'BILLING DO'.
    APPEND i_fieldcat1.
    i_fieldcat1-fieldname = 'ERDAT'.
    i_fieldcat1-col_pos = 2.
    i_fieldcat1-seltext_l = 'CREATED ON'.
    APPEND i_fieldcat1.
    i_fieldcat1-fieldname = 'NETWR'.
    i_fieldcat1-col_pos = 3.
    i_fieldcat1-seltext_l = 'AMOUNT'.
    APPEND i_fieldcat1.
    CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
      EXPORTING
      I_INTERFACE_CHECK              = ' '
      I_BYPASSING_BUFFER             = I_BYPASSING_BUFFER
      I_BUFFER_ACTIVE                = ' '
        i_callback_program             = repid
      I_CALLBACK_PF_STATUS_SET       = ' '
      I_CALLBACK_USER_COMMAND        = ' '
      I_STRUCTURE_NAME               = I_STRUCTURE_NAME
      IS_LAYOUT                      = IS_LAYOUT
        it_fieldcat                    = i_fieldcat1[]
      IT_EXCLUDING                   = IT_EXCLUDING
      IT_SPECIAL_GROUPS              = IT_SPECIAL_GROUPS
      IT_SORT                        = IT_SORT
      IT_FILTER                      = IT_FILTER
      IS_SEL_HIDE                    = IS_SEL_HIDE
      I_DEFAULT                      = 'X'
      I_SAVE                         = ' '
      IS_VARIANT                     = IS_VARIANT
      IT_EVENTS                      = IT_EVENTS
      IT_EVENT_EXIT                  = IT_EVENT_EXIT
      IS_PRINT                       = IS_PRINT
      IS_REPREP_ID                   = 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           = IR_SALV_LIST_ADAPTER
      IT_EXCEPT_QINFO                = IT_EXCEPT_QINFO
      I_SUPPRESS_EMPTY_DATA          = ABAP_FALSE
    IMPORTING
      E_EXIT_CAUSED_BY_CALLER        = E_EXIT_CAUSED_BY_CALLER
      ES_EXIT_CAUSED_BY_USER         = 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.
    perform display2.
    endif.
    **endloop.
    *endform.
    **&      Form  eventcall
          text
    **FORM eventcall.
    CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
    EXPORTING
      I_LIST_TYPE           = 0
      IMPORTING
        et_events             = it_event[]
    EXCEPTIONS
      LIST_TYPE_WRONG       = 1
      OTHERS                = 2
    IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    **ENDFORM.                    "eventcall
    **&      Form  populate_event
          text
    **FORM populate_event.
    it_event-form = 'interractive'.
    it_event-name = 'USER_COMMAND'.
    APPEND it_event.
    **ENDFORM.                    "populate_event
    **FORM STATUS USING p_extab TYPE slis_t_extab.
    SET PF-STATUS 'ZSTATUS' EXCLUDING p_extab.
    *ENDFORM.                    "status
    could any body suggest me.
    thanks in advance.
    regards,
    Chaitanya

    HI,
    use yout top of page like this.
    FORM TOP-OF-PAGE.
    DATA: t_header type slis_t_listheader,
    wa_header TYPE slis_listheader.
    Title
    wa_header-typ = 'H'.
    wa_header-info = ' KNA1 Table Report '.
    APPEND wa_header TO t_header.
    CLEAR wa_header.
    CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
    it_list_commentary = t_header
    i_logo = 'ENJOYSAP_LOGO'
    I_END_OF_LIST_GRID =  space.
    I_ALV_FORM = I_ALV_FORM
    ENDFORM. "top-of-page
    Thanks,
    Chandra.
    ****Please reward if helpful.

Maybe you are looking for

  • How to suppress duplicate records in rtf templates

    Hi All, I am facing issue with payment reason comments in check template. we are displaying payment reason comments. Now the issue is while making batch payment we are getting multiple payment reason comments from multiple invoices with the same name

  • OLT 12.2.0.1 & ADF 11g R2 (11.1.2.3)

    Hi, I am evaluating the OLT ADF Module for testing applications developed with JDeveloper/ADF 11g R2. Unfortunately, the latest version of JDeveloper/ADF 11.1.2.3(PS3) looks like not compatible with OLT release 12.2.0.1 (Openscript 12.2.0.1 Build 238

  • Images not loaded correctly

    <i>Locking duplicate thread.<br>Please continue here: [[/questions/1056930]]</i> Dear reader, Since a week my firefox experiences strange image loading behavior. The problem is seen on various pages, in particular when there are more images/pictures

  • Adcfgclone.pl dbTier is not prompting for ORACLE_HOME variable

    hi, adcfgclone.pl is not prompting for ORACLE_HOME variable. and erroring out with Checking the port pool 12 done: Port Pool 12 is free Report file located at /appsutil/out/portpool.lst RC-00203: Unable to create/write to file /appsutil/out/portpool.

  • Hello every one... from where to start abap.

    dear all                i come to know that there is a minisap by which we can know about...      from where i can get this free download how to instal mnisap & work as beginner in abap.... pls do reply me soon i am eagerly waithin for u r suggestion