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.

Similar Messages

  • Reg: ALV report download to excel currency columns

    Hi All,
    While downloading the alv report to excel, currency fields with negative sign(less than 0) is downloading without negative sign.
    And field catalog wad declared as 'CURR' field for that particular column, if I declared as 'CHAR', i am getting shortdump.
    Can any one tell me how to get the negative sign.
    Thanks in advance.

    Hi,
    Do you use ALV to excel standard functionality or your own code to excel?
    Please provide more information.
    Thanks,

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

  • Reg : Print Issue in ALV Report

    Hi Experts,
                     I have created an ALV Report for USER Requirement and it is working fine. While taking printout the SORTED Field is not working, it gets repeated in the Print... How to rectify..?

    hi,
    did u use SORT-UP equal to 'X'?
    wa_sort-up = c_x.
    ags.

  • Reg check boxes in ALV report

    Hi All,
    I am displaying check boxes in my ALV report.I want to capture what all are the values that has been selected in the basic list ALV accordingly I want to write the code for the secondary ALV list .Could you please suggest somebody how to capture this info?
    Regards
    Ramesh

    hi,
    here is the code...
    i havent checkbox but i have first filed of char type and u can select more than one record by pressing control...
    i have created one button DET in pf status and when i press on that i am getting detain info of selected record in secondary list...
    TABLES:     ekko.
    TYPE-POOLS: slis.                                 "ALV Declarations
    TYPES: BEGIN OF t_ekko,
      sel,                         "stores which row user has selected
      ebeln TYPE ekpo-ebeln,
      ebelp TYPE ekpo-ebelp,
      statu TYPE ekpo-statu,
      aedat TYPE ekpo-aedat,
      matnr TYPE ekpo-matnr,
      menge TYPE ekpo-menge,
      meins TYPE ekpo-meins,
      netpr TYPE ekpo-netpr,
      peinh TYPE ekpo-peinh,
    END OF t_ekko.
    DATA: it_ekko TYPE STANDARD TABLE OF t_ekko INITIAL SIZE 0,
          wa_ekko TYPE t_ekko.
    DATA: fieldcatalog TYPE slis_t_fieldcat_alv WITH HEADER LINE,
          fieldcatalog1 TYPE slis_t_fieldcat_alv WITH HEADER LINE,
          gd_tab_group TYPE slis_t_sp_group_alv,
          gd_layout    TYPE slis_layout_alv,
          gd_repid     LIKE sy-repid.
    DATA : BEGIN OF det_tab OCCURS 0,
            ebeln LIKE ekpo-ebeln,
           END OF det_tab.
    START-OF-SELECTION.
      PERFORM data_retrieval.
      PERFORM build_fieldcatalog.
      PERFORM build_layout.
      PERFORM display_alv_report.
    *&      Form  BUILD_FIELDCATALOG
    *       Build Fieldcatalog for ALV Report
    FORM build_fieldcatalog.
      fieldcatalog-fieldname   = 'EBELN'.
      fieldcatalog-seltext_m   = 'Purchase Order'.
      fieldcatalog-outputlen   = 10.
      fieldcatalog-emphasize   = 'X'.
      fieldcatalog-key         = 'X'.
      APPEND fieldcatalog TO fieldcatalog.
      CLEAR  fieldcatalog.
      fieldcatalog-fieldname   = 'EBELP'.
      fieldcatalog-seltext_m   = 'PO Item'.
      APPEND fieldcatalog TO fieldcatalog.
      CLEAR  fieldcatalog.
      fieldcatalog-fieldname   = 'STATU'.
      fieldcatalog-seltext_m   = 'Status'.
      APPEND fieldcatalog TO fieldcatalog.
      CLEAR  fieldcatalog.
      fieldcatalog-fieldname   = 'AEDAT'.
      fieldcatalog-seltext_m   = 'Item change date'.
      APPEND fieldcatalog TO fieldcatalog.
      CLEAR  fieldcatalog.
      fieldcatalog-fieldname   = 'MATNR'.
      fieldcatalog-seltext_m   = 'Material Number'.
      APPEND fieldcatalog TO fieldcatalog.
      CLEAR  fieldcatalog.
      fieldcatalog-fieldname   = 'MENGE'.
      fieldcatalog-seltext_m   = 'PO quantity'.
      APPEND fieldcatalog TO fieldcatalog.
      CLEAR  fieldcatalog.
      fieldcatalog-fieldname   = 'MEINS'.
      fieldcatalog-seltext_m   = 'Order Unit'.
      APPEND fieldcatalog TO fieldcatalog.
      CLEAR  fieldcatalog.
      fieldcatalog-fieldname   = 'NETPR'.
      fieldcatalog-seltext_m   = 'Net Price'.
      fieldcatalog-outputlen   = 15.
      fieldcatalog-do_sum      = 'X'.        "Display column total
      fieldcatalog-datatype     = 'CURR'.
      APPEND fieldcatalog TO fieldcatalog.
      CLEAR  fieldcatalog.
      fieldcatalog-fieldname   = 'PEINH'.
      fieldcatalog-seltext_m   = 'Price Unit'.
      APPEND fieldcatalog TO fieldcatalog.
      CLEAR  fieldcatalog.
    ENDFORM.                    " BUILD_FIELDCATALOG
    *&      Form  BUILD_LAYOUT
    *       Build layout for ALV grid report
    FORM build_layout.
      gd_layout-box_fieldname     = 'SEL'.
      gd_layout-zebra             = 'X'.
    ENDFORM.                    " BUILD_LAYOUT
    *&      Form  DISPLAY_ALV_REPORT
    *       Display report using ALV grid
    FORM display_alv_report.
      gd_repid = sy-repid.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          i_callback_program       = gd_repid
          i_callback_user_command  = 'USER_COMMAND'
          i_callback_pf_status_set = 'SET_STAT'
          is_layout                = gd_layout
          it_fieldcat              = fieldcatalog[]
          i_save                   = 'X'
        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  DATA_RETRIEVAL
    *       Retrieve data form EKPO table and populate itab it_ekko
    FORM data_retrieval.
      SELECT ebeln ebelp statu aedat matnr menge meins netpr peinh
       UP TO 10 ROWS
        FROM ekpo
        INTO CORRESPONDING FIELDS OF TABLE it_ekko.
    ENDFORM.                    " DATA_RETRIEVAL
    *       FORM USER_COMMAND                                          *
    *       --> R_UCOMM                                                *
    *       --> RS_SELFIELD                                            *
    FORM user_command USING r_ucomm LIKE sy-ucomm
                      rs_selfield TYPE slis_selfield.
      CASE r_ucomm.
        WHEN '&IC1'.
          IF rs_selfield-fieldname = 'EBELN'.
            READ TABLE it_ekko INTO wa_ekko INDEX rs_selfield-tabindex.
            SET PARAMETER ID 'BES' FIELD wa_ekko-ebeln.
            CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.
          ENDIF.
        WHEN 'DET'.  "user presses SAVE
          CLEAR det_tab.
          REFRESH det_tab.
          LOOP AT it_ekko INTO wa_ekko WHERE sel = 'X'.
            MOVE-CORRESPONDING wa_ekko TO det_tab.
            APPEND det_tab.
          ENDLOOP.
          PERFORM build_cat.
          PERFORM dis_data.
      ENDCASE.
    ENDFORM.                    "user_command
    *&      Form  set_stat
    *       text
    *      -->RT_EXTAB   text
    FORM set_stat USING rt_extab TYPE slis_t_extab.
      SET PF-STATUS 'ZSTAT' EXCLUDING rt_extab.
    ENDFORM.                    "set_stat
    *&      Form  build_cat
    *       text
    FORM build_cat.
      CLEAR fieldcatalog1.
      REFRESH fieldcatalog1.
      fieldcatalog1-fieldname = 'EBELN'.
      fieldcatalog1-tabname = 'DET_TAB'.
      fieldcatalog1-seltext_m = 'Order No.'.
      fieldcatalog1-outputlen = 10.
      APPEND fieldcatalog1 TO fieldcatalog1.
      CLEAR fieldcatalog1.
    ENDFORM.                    "build_cat
    *&      Form  dis_data
    *       text
    FORM dis_data.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          i_callback_program = 'ZTEST_DS'
          it_fieldcat        = fieldcatalog1[]
          i_save             = 'X'
        TABLES
          t_outtab           = det_tab.
    ENDFORM.                    "dis_data
    reward if usefull....

  • Reg. Alv report using function modules

    I have a ALV report in which i am displaying a report in main screen1. i have a pushbutton on the main screen.
    when i click the pushbutton it has to display the interactive report below, in the main screen1 itself.
    like it has to display first the main report and then when i click the pushbutton, it has to display the corresponding report on the same screen below it.
    points will be rewarded..

    hi use this ,
    *& Report  ZPR_02
    REPORT  ZPR_02.
    TYPE-POOLS: SLIS.
    Tables Declaration.
    TABLES: MARA.
    *Internal tables and data declaration.
    DATA: BEGIN OF IT_MARA OCCURS 0,
            MATNR LIKE MARA-MATNR,
            MTART LIKE MARA-MTART,
            MBRSH LIKE MARA-MBRSH,
          END OF IT_MARA,
          BEGIN OF IT_MARC OCCURS 0,
            MATNR LIKE MARC-MATNR,
            WERKS LIKE MARC-WERKS,
            EKGRP LIKE MARC-EKGRP,
          END OF IT_MARC,
          BEGIN OF IT_MARD OCCURS 0,
            MATNR LIKE MARD-MATNR,
            WERKS LIKE MARD-WERKS,
            LGORT LIKE MARD-LGORT,
            LABST LIKE MARD-LABST,
          END OF IT_MARD.
    DATA: WA_FIELD_CAT TYPE SLIS_FIELDCAT_ALV,
          IT_FIELD_CAT1 TYPE SLIS_T_FIELDCAT_ALV,
          IT_FIELD_CAT2 TYPE SLIS_T_FIELDCAT_ALV,
          IT_FIELD_CAT3 TYPE SLIS_T_FIELDCAT_ALV,
          WA_KEYINFO TYPE SLIS_KEYINFO_ALV,
          IT_LAYOUT TYPE SLIS_LAYOUT_ALV,
          IT_EVENTS1    TYPE SLIS_T_EVENT WITH HEADER LINE,
          IT_EVENTS2    TYPE SLIS_T_EVENT WITH HEADER LINE,
          IT_EVENTS3    TYPE SLIS_T_EVENT WITH HEADER LINE.
    *Selection Screen.
    SELECT-OPTIONS: S_MATNR FOR MARA-MATNR.
    *Start Of selection.
    START-OF-SELECTION.
    *Selecting the data.
      PERFORM SELECT_DATA.
    *Populating the field catelogue.
      PERFORM BUILD_FIELD_CAT.
    *Displaying the final output.
      PERFORM DISPLY_OUTPUT.
    *&      Form  Select_data
          Selecting the data.
    FORM SELECT_DATA .
      SELECT MATNR
             MTART
             MBRSH FROM MARA
           INTO TABLE IT_MARA
           WHERE MATNR IN S_MATNR.
      IF NOT IT_MARA[] IS INITIAL.
        SELECT MATNR
               WERKS
               EKGRP FROM MARC
             INTO TABLE IT_MARC
             FOR ALL ENTRIES IN IT_MARA
             WHERE MATNR EQ IT_MARA-MATNR.
      ENDIF.
      IF NOT IT_MARC[] IS INITIAL.
        SELECT MATNR
               WERKS
               LGORT
               LABST FROM MARD
             INTO TABLE IT_MARD
             FOR ALL ENTRIES IN IT_MARC
             WHERE MATNR = IT_MARC-MATNR
             AND   WERKS = IT_MARC-WERKS.
      ENDIF.
    ENDFORM.                    " Select_data
    *&      Form  Build_field_cat
         Populating the field catelogue.
    FORM BUILD_FIELD_CAT .
      DEFINE M_FIELDCAT1.
        WA_FIELD_CAT-TABNAME = &1.
        WA_FIELD_CAT-FIELDNAME = &2.
        WA_FIELD_CAT-SELTEXT_L = &3.
        APPEND WA_FIELD_CAT TO IT_FIELD_CAT1.
      END-OF-DEFINITION.
      DEFINE M_FIELDCAT2.
        WA_FIELD_CAT-TABNAME = &1.
        WA_FIELD_CAT-FIELDNAME = &2.
        WA_FIELD_CAT-SELTEXT_L = &3.
        APPEND WA_FIELD_CAT TO IT_FIELD_CAT2.
      END-OF-DEFINITION.
      DEFINE M_FIELDCAT3.
        WA_FIELD_CAT-TABNAME = &1.
        WA_FIELD_CAT-FIELDNAME = &2.
        WA_FIELD_CAT-SELTEXT_L = &3.
        APPEND WA_FIELD_CAT TO IT_FIELD_CAT3.
      END-OF-DEFINITION.
      M_FIELDCAT1 'MARA' 'MATNR' 'Material No'.
      M_FIELDCAT1 'MARA' 'MTART' 'Material type'.
      M_FIELDCAT1 'MARA' 'MBRSH' 'Industry Sector'.
      M_FIELDCAT2 'MARC' 'MATNR' 'Material No'.
      M_FIELDCAT2 'MARC' 'WERKS' 'Plant'.
      M_FIELDCAT2 'MARC' 'EKGRP' 'Purchasing Group'.
      M_FIELDCAT3 'MARD' 'MATNR' 'Material No'.
      M_FIELDCAT3 'MARD' 'WERKS' 'Plant'.
      M_FIELDCAT3 'MARD' 'LGORT' 'Storage Loc'.
      M_FIELDCAT3 'MARD' 'LABST' 'Valued Stock'.
      IT_EVENTS1-NAME  =  'TOP_OF_PAGE'.
      IT_EVENTS1-FORM  =  'F_TOP_OF_PAGE_ONE'.
      APPEND IT_EVENTS1.
      CLEAR IT_EVENTS1.
      IT_EVENTS2-NAME  =  'TOP_OF_PAGE'.
      IT_EVENTS2-FORM  =  'F_TOP_OF_PAGE_TWO'.
      APPEND IT_EVENTS2.
      CLEAR IT_EVENTS2.
      IT_EVENTS3-NAME  =  'TOP_OF_PAGE'.
      IT_EVENTS3-FORM  =  'F_TOP_OF_PAGE_THREE'.
      APPEND IT_EVENTS3.
      CLEAR IT_EVENTS3.
    ENDFORM.                    " Build_field_cat
    *&      Form  disply_output
         Displaying the final output.
    FORM DISPLY_OUTPUT .
      CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'
        EXPORTING
          I_CALLBACK_PROGRAM = SY-REPID.
      CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
        EXPORTING
          IS_LAYOUT                        = IT_LAYOUT
          IT_FIELDCAT                      = IT_FIELD_CAT1[]
          I_TABNAME                        = 'IT_MARA'
          IT_EVENTS                        = IT_EVENTS1[]
      IT_SORT                          = IT_SORT
      I_TEXT                           = ' '
        TABLES
          T_OUTTAB                         = IT_MARA     .
      CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
        EXPORTING
          IS_LAYOUT                        = IT_LAYOUT
          IT_FIELDCAT                      = IT_FIELD_CAT2[]
          I_TABNAME                        = 'IT_MARC'
          IT_EVENTS                        = IT_EVENTS2[]
      IT_SORT                          = IT_SORT
      I_TEXT                           = ' '
        TABLES
          T_OUTTAB                         = IT_MARC    .
      CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
        EXPORTING
          IS_LAYOUT                        = IT_LAYOUT
          IT_FIELDCAT                      = IT_FIELD_CAT3[]
          I_TABNAME                        = 'IT_MARD'
          IT_EVENTS                        = IT_EVENTS3[]
      IT_SORT                          = IT_SORT
      I_TEXT                           = ' '
        TABLES
          T_OUTTAB                         = IT_MARD    .
      CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'
    EXPORTING
      I_INTERFACE_CHECK             = ' '
      IS_PRINT                      = IS_PRINT
      I_SCREEN_START_COLUMN         = 0
      I_SCREEN_START_LINE           = 0
      I_SCREEN_END_COLUMN           = 0
      I_SCREEN_END_LINE             = 0
    IMPORTING
      E_EXIT_CAUSED_BY_CALLER       = E_EXIT_CAUSED_BY_CALLER
      ES_EXIT_CAUSED_BY_USER        = ES_EXIT_CAUSED_BY_USER
    EXCEPTIONS
      PROGRAM_ERROR                 = 1
      OTHERS                        = 2
      IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDFORM.                    " disply_output
    *&      Form  top_of_page_one
          text
    FORM F_TOP_OF_PAGE_ONE.
      WRITE: / 'Header details (MARA)'.
    ENDFORM.                    "top_of_page_one
    *&      Form  top_of_page_one
          text
    FORM F_TOP_OF_PAGE_TWO.
      WRITE: / 'Item details (MARC)'.
    ENDFORM.                    "top_of_page_one
    *&      Form  top_of_page_one
          text
    FORM F_TOP_OF_PAGE_THREE.
      WRITE: / 'Item details (MARD)'.
    ENDFORM.                    "top_of_page_one
    reward points if useful,
    venkat.

  • Reg. Events in ALV Reports

    Hi all,
    Can anybody send me the sample program, related to Events on ALV Reports.
    Use ful answers rewards more.

    Hi Raj,
    Here I'm sending 2 programs with user command on grid and list.
    along with interaction and commentory boxes and all.
    separate box ****************
    TABLES: KNA1,VBAK,VBAP.
    TYPE-POOLS: SLIS.
    SELECT-OPTIONS: CUST FOR KNA1-KUNNR.
    DATA: BEGIN OF ITAB OCCURS 0,
          KUNNR LIKE KNA1-KUNNR,
          NAME LIKE KNA1-NAME1,
          LAND1 LIKE KNA1-LAND1,
          END OF ITAB.
    DATA: BEGIN OF JTAB OCCURS 0,
          VBELN LIKE VBAK-VBELN,
          NETWR LIKE VBAK-NETWR,
          END OF JTAB.
    DATA: BEGIN OF KTAB OCCURS 0,
          POSNR LIKE VBAP-POSNR,
          MATNR LIKE VBAP-MATNR,
          END OF KTAB.
    DATA: REPID LIKE SY-REPID,
    *INTERNAL TABLE AND STRUCTURE.
    *SLIS_T_FIELDCAT_ALV IS AN INTERNAL TABLE.
    *SLIS_FIELDCAT_ALV   IS AN STRUCTURE.
          F_KNA11 TYPE SLIS_T_FIELDCAT_ALV,
          F_KNA1 TYPE SLIS_FIELDCAT_ALV,
          F_VBAK1 TYPE SLIS_T_FIELDCAT_ALV,
          F_VBAK TYPE SLIS_FIELDCAT_ALV,
          F_VBAP1 TYPE SLIS_T_FIELDCAT_ALV,
          F_VBAP TYPE SLIS_FIELDCAT_ALV,
          I_EVENTS TYPE SLIS_T_EVENT,
          S_EVENTS TYPE SLIS_ALV_EVENT.
      PERFORM GET-VAL.
      REPID = SY-REPID.
      SELECT KUNNR NAME1 LAND1 FROM KNA1 INTO TABLE ITAB WHERE KUNNR IN
    CUST
      CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
      EXPORTING
         I_CALLBACK_PROGRAM             = REPID
         IT_FIELDCAT                    = F_KNA11
         IT_EVENTS                      = I_EVENTS
        TABLES
          T_OUTTAB                       = ITAB.
    GET VAL
    FORM GET-VAL.
          F_KNA1-FIELDNAME = 'KUNNR'.
          F_KNA1-REF_TABNAME = 'KNA1'.
          F_KNA1-REF_FIELDNAME = 'KUNNR'.
          APPEND F_KNA1 TO F_KNA11.
          F_KNA1-FIELDNAME = 'NAME'.
          F_KNA1-REF_TABNAME = 'KNA1'.
          F_KNA1-REF_FIELDNAME = 'NAME1'.
          APPEND F_KNA1 TO F_KNA11.
          F_KNA1-FIELDNAME = 'LAND1'.
          F_KNA1-REF_TABNAME = 'KNA1'.
          F_KNA1-REF_FIELDNAME = 'LAND1'.
          APPEND F_KNA1 TO F_KNA11.
          F_VBAK-FIELDNAME = 'VBELN'.
          F_VBAK-REF_TABNAME = 'VBAK'.
          F_VBAK-REF_FIELDNAME = 'VBELN'.
          APPEND F_VBAK TO F_VBAK1.
          F_VBAK-FIELDNAME = 'NETWR'.
          F_VBAK-REF_TABNAME = 'VBAK'.
          F_VBAK-REF_FIELDNAME = 'NETWR'.
          F_VBAK-DO_SUM = 'X'.
          APPEND F_VBAK TO F_VBAK1.
          F_VBAP-FIELDNAME = 'POSNR'.
          F_VBAP-REF_TABNAME = 'VBAP'.
          F_VBAP-REF_FIELDNAME = 'POSNR'.
          APPEND F_VBAP TO F_VBAP1.
          F_VBAP-FIELDNAME = 'MATNR'.
          F_VBAP-REF_TABNAME = 'VBAP'.
          F_VBAP-REF_FIELDNAME = 'MATNR'.
          APPEND F_VBAP TO F_VBAP1.
          S_EVENTS-NAME = 'USER_COMMAND'.
          S_EVENTS-FORM = 'VAL'.
          APPEND S_EVENTS TO I_EVENTS.
    ENDFORM.
    FORM VAL USING USER_COMMAND LIKE SY-UCOMM SEL TYPE SLIS_SELFIELD.
    DATA: CUS(10) TYPE N,
          SALNO(10) TYPE N,
          MAT(10) TYPE C.
    display lists
    IF SEL-FIELDNAME = 'KUNNR'.
        CUS = SEL-VALUE.
        SELECT VBELN NETWR FROM VBAK INTO TABLE JTAB WHERE KUNNR = CUS.
    CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
    EXPORTING
         I_CALLBACK_PROGRAM             = REPID
         IT_FIELDCAT                    = F_VBAK1
         IT_EVENTS                      = I_EVENTS
        TABLES
          T_OUTTAB                       = JTAB.
    ENDIF.
    IF SEL-FIELDNAME = 'VBELN'.
        SALNO = SEL-VALUE.
        SELECT POSNR MATNR FROM VBAP INTO TABLE KTAB WHERE VBELN = SALNO.
    CALL FUNCTION 'REUSE_ALV_POPUP_TO_SELECT'
      EXPORTING
       I_TITLE                       = ' ITEM DETAILS'
        I_TABNAME                     = VBAP
       IT_FIELDCAT                   = F_VBAP1
       I_CALLBACK_PROGRAM            = REPID
    IMPORTING
       ES_SELFIELD                   = SEL
      TABLES
        T_OUTTAB                      = KTAB.
    ENDIF.
    IF SEL-FIELDNAME = 'MATNR'.
    MAT = SEL-VALUE.
    SET PARAMETER ID 'MAT' FIELD MAT.
    CALL TRANSACTION 'MM03' AND SKIP FIRST SCREEN.
    ENDIF.
    ENDFORM.
    Grid Display ***************
    TYPE-POOLS: SLIS.
    TABLES: KNA1.
    *DATA: ITAB TYPE STANDARD TABLE OF ZJKNA1 WITH HEADER LINE.
    DATA: BEGIN OF ITAB OCCURS 0,
          KUNNR TYPE KUNNR,
          NAME1 TYPE KNA1-NAME1,
          END OF ITAB.
    DATA: JTAB LIKE ITAB OCCURS 0 WITH HEADER LINE.
    DATA: IT_TOP TYPE SLIS_T_LISTHEADER.
    DATA: W_TOP TYPE SLIS_LISTHEADER.
    DATA: IT_EVENT TYPE SLIS_T_EVENT.
    DATA: W_EVENT TYPE SLIS_ALV_EVENT.
    W_EVENT-NAME = 'TOP_OF_PAGE'.
    W_EVENT-FORM = 'TOPS'.
    APPEND W_EVENT TO IT_EVENT.
    W_EVENT-NAME = 'USER_COMMAND'.
    W_EVENT-FORM = 'UCOM'.
    APPEND W_EVENT TO IT_EVENT.
    DATA: S_LAYOUT TYPE SLIS_LAYOUT_ALV.
    *S_LAYOUT-NO_VLINE = 'X'.
    S_LAYOUT-ZEBRA = 'X'.
    S_LAYOUT-NO_COLHEAD = ''.
    S_LAYOUT-TOTALS_ONLY = 'TL'.
    DATA: IT_LISTHEADER TYPE SLIS_T_LISTHEADER.
    DATA: W_LISTHEADER TYPE SLIS_LISTHEADER.
    W_LISTHEADER-TYP = 'H'.
    W_LISTHEADER-KEY = 'THIS IS LIST'.
    APPEND W_LISTHEADER TO IT_LISTHEADER.
    DATA: IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
    DATA: W_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
    W_FIELDCAT-COL_POS = 1.
    W_FIELDCAT-FIELDNAME = 'KUNNR'.
    W_FIELDCAT-TABNAME = 'ITAB'.
    W_FIELDCAT-SELTEXT_M = 'CUST. NO'.
    W_FIELDCAT-HOTSPOT = 'X'.
    APPEND W_FIELDCAT TO IT_FIELDCAT.
    CLEAR W_FIELDCAT.
    W_FIELDCAT-COL_POS = 2.
    W_FIELDCAT-FIELDNAME = 'NAME1'.
    W_FIELDCAT-TABNAME = 'ITAB'.
    W_FIELDCAT-SELTEXT_M = 'CUST. NAME'.
    W_FIELDCAT-OUTPUTLEN = 30.
    APPEND W_FIELDCAT TO IT_FIELDCAT.
    CLEAR W_FIELDCAT.
    SELECT KUNNR NAME1 FROM KNA1 INTO CORRESPONDING FIELDS OF TABLE ITAB
    UP TO 50 ROWS.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      I_INTERFACE_CHECK                 = ' '
      I_BYPASSING_BUFFER                = ' '
      I_BUFFER_ACTIVE                   = ' '
       I_CALLBACK_PROGRAM                = SY-REPID
      I_CALLBACK_PF_STATUS_SET          = ' '
      I_CALLBACK_USER_COMMAND           = ' '
      I_CALLBACK_TOP_OF_PAGE            = W_LISTHEADER
      I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
      I_CALLBACK_HTML_END_OF_LIST       = ' '
      I_STRUCTURE_NAME                  =
      I_BACKGROUND_ID                   = 'ENJOY.BMP'
      I_GRID_TITLE                      = 'THIS IS MY FIRST ALV REPORT'
      I_GRID_SETTINGS                   = W_LISTHEADER
       IS_LAYOUT                         = S_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
      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  TOPS
          text
    -->  p1        text
    <--  p2        text
    FORM TOPS .
    REFRESH IT_TOP.
    W_TOP-TYP = 'H'.
    *W_TOP-KEY = 'JAGAN'.
    W_TOP-INFO = 'THIS IS SAMPLE HEADER'.
    APPEND W_TOP TO IT_TOP.
    CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
      EXPORTING
       IT_LIST_COMMENTARY       = IT_TOP
       I_LOGO                   = 'IDLOGO1'
      I_END_OF_LIST_GRID       =
    ENDFORM.                    " TOPS
    *&      Form  UCOM
          text
    -->  p1        text
    <--  p2        text
    FORM UCOM USING USER_COMMAND LIKE SY-UCOMM SEL TYPE SLIS_SELFIELD.
    DATA: CUS(10) TYPE N VALUE '0000000000'.
    CUS = SEL-VALUE.
    REFRESH ITAB.
    SELECT KUNNR NAME1 FROM KNA1 INTO TABLE ITAB WHERE KUNNR = CUS.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
         I_CALLBACK_PROGRAM             = SY-REPID
         IT_FIELDCAT                    = IT_FIELDCAT
        IT_EVENTS                      = IT_EVENTS
        TABLES
          T_OUTTAB                       = ITAB.
    ENDFORM.                    " UCOM

  • Reg : Dynamic Drown list in ALV Report

    Hi Guru's,
    Please help on showing Dynamic drop down list in ALV Report.
    My requirement is to show sales partner function in ALV report for each and every line.Every line item may have different partner function.
    Regards
    P.Senthil Kumar

    ok

  • Sending ALV report(As a attachment ) through EMail

    Dear Friends,
    Could anyone please help me to solve this problem.
    I need to send ALV report <b>as an attachment</b> to External mail-id as well as SAP USER ID..The user wants to schedule this ABAP program in background, at the end the final output should be send to his ID. I facing problem to locate correct Functional Module....
    I would like to thank, if anyone give some idea on this issue also if possible a sample code.
    Thanks in advance
    With Reg
    Babu

    HI Kamal Babu
    After sending your ABAP List to the spool request (SP01), you can use the SAP standard spool PDF conversion program.
    RSTXPDFT4 - This report program converts ABAP List to PDF files.
    Or Just try this sample code:
    After running the background jobs, send the spool to the SAP users Office Mail Box.
    REPORT ZMAILSPOOL.
    INCLUDE LBTCHDEF.
    Include the Business Object Repository object
    INCLUDE <CNTN01>.
    DATA ABAPNM LIKE SY-REPID.
    DATA BEGIN OF LOCAL_JOB.
    INCLUDE STRUCTURE TBTCJOB.
    DATA END OF LOCAL_JOB.
    DATA BEGIN OF LOCAL_STEP_TBL OCCURS 10.
    INCLUDE STRUCTURE TBTCSTEP.
    DATA END OF LOCAL_STEP_TBL.
    Data declarations for the mail recipient
    DATA RECIPIENT TYPE SWC_OBJECT.
    DATA RECIPIENT_OBJ LIKE SWOTOBJID.
    SWC_CONTAINER CONTAINER.
    Data declarations for the background job
    PARAMETERS ABAPNAME(20) DEFAULT 'ZTEST1'.
    PARAMETERS EMPFNAME LIKE SY-UNAME DEFAULT SY-UNAME.
    ABAPNM = ABAPNAME.
    LOCAL_JOB-JOBNAME = ABAPNAME.
    Generate recipient object (see report RSSOKIF1 for an example)
    1. Create the recipient:
    IF EMPFNAME <> SPACE.
    "** 1.1 Generate an object reference to a recipient object
    SWC_CREATE_OBJECT RECIPIENT 'RECIPIENT' SPACE.
    "** 1.2 Write the import parameters for method
    "** recipient.createaddress into the container
    "** and empty the container
    SWC_CLEAR_CONTAINER CONTAINER.
    "** Set address element (internal user 'JSMITH')
    SWC_SET_ELEMENT CONTAINER 'AddressString' EMPFNAME.
    "** Set address type (internal user)
    SWC_SET_ELEMENT CONTAINER 'TypeId' 'B'.
    "** 1.3 Call the method recipient.createaddress
    SWC_CALL_METHOD RECIPIENT 'CreateAddress' CONTAINER.
    "** Issue any error message generated by a method exception
    IF SY-SUBRC NE 0.
    MESSAGE ID SY-MSGID TYPE 'E' NUMBER SY-MSGNO.
    ENDIF.
    SWC_CALL_METHOD RECIPIENT 'Save' CONTAINER.
    SWC_OBJECT_TO_PERSISTENT RECIPIENT RECIPIENT_OBJ.
    ENDIF.
    Recipient has been generated and is ready for use in a
    background job
    CALL FUNCTION 'JOB_OPEN'
         exporting
         DELANFREP              = ' '
         JOBGROUP               = ' '
           jobname                = LOCAL_JOB-JOBNAME
         SDLSTRTDT              = NO_DATE
         SDLSTRTTM              = NO_TIME
         IMPORTING
           JOBCOUNT               = LOCAL_JOB-JOBCOUNT
         EXCEPTIONS
           CANT_CREATE_JOB        = 1
           INVALID_JOB_DATA       = 2
           JOBNAME_MISSING        = 3
           OTHERS                 = 4
       if sy-subrc <> 0.
          WRITE: / 'JOB_OPEN PROBLEM ', SY-SUBRC.
       ELSE.
          WRITE: / 'JOB OPEN SUCCESS',
                                      LOCAL_JOB-JOBNAME, LOCAL_JOB-JOBCOUNT.
       endif.
    CALL FUNCTION 'JOB_SUBMIT'
         exporting
         ARCPARAMS                         =
           authcknam                         = SY-UNAME
         COMMANDNAME                       = ' '
         OPERATINGSYSTEM                   = ' '
         EXTPGM_NAME                       = ' '
         EXTPGM_PARAM                      = ' '
         EXTPGM_SET_TRACE_ON               = ' '
         EXTPGM_STDERR_IN_JOBLOG           = 'X'
         EXTPGM_STDOUT_IN_JOBLOG           = 'X'
         EXTPGM_SYSTEM                     = ' '
         EXTPGM_RFCDEST                    = ' '
         EXTPGM_WAIT_FOR_TERMINATION       = 'X'
           jobcount                          = LOCAL_JOB-JOBCOUNT
           jobname                           = LOCAL_JOB-JOBNAME
         LANGUAGE                          = SY-LANGU
         PRIPARAMS                         = ' '
           REPORT                            = ABAPNM
         REPORT                            = 'ZTEST1'
         VARIANT                           = ' '
       IMPORTING
         STEP_NUMBER                       = LOCAL_JOB-STEPCOUNT
         EXCEPTIONS
           BAD_PRIPARAMS                     = 1
           BAD_XPGFLAGS                      = 2
           INVALID_JOBDATA                   = 3
           JOBNAME_MISSING                   = 4
           JOB_NOTEX                         = 5
           JOB_SUBMIT_FAILED                 = 6
           LOCK_FAILED                       = 7
           PROGRAM_MISSING                   = 8
           PROG_ABAP_AND_EXTPG_SET           = 9
           OTHERS                            = 10
       if sy-subrc <> 0.
          WRITE: / 'JOB_SUBMIT PROBLEM ', LOCAL_JOB-JOBCOUNT,
                   LOCAL_JOB-JOBNAME, ABAPNAME, SY-SUBRC.
       endif.
    IF EMPFNAME <> SPACE.
    CALL FUNCTION 'JOB_CLOSE'
      exporting
      AT_OPMODE                         = ' '
      AT_OPMODE_PERIODIC                = ' '
      CALENDAR_ID                       = ' '
      EVENT_ID                          = ' '
      EVENT_PARAM                       = ' '
      EVENT_PERIODIC                    = ' '
        jobcount                          = LOCAL_JOB-JOBCOUNT
        jobname                           = LOCAL_JOB-JOBNAME
      LASTSTRTDT                        = NO_DATE
      LASTSTRTTM                        = NO_TIME
      PRDDAYS                           = 0
      PRDHOURS                          = 0
      PRDMINS                           = 0
      PRDMONTHS                         = 0
      PRDWEEKS                          = 0
      PREDJOB_CHECKSTAT                 = ' '
      PRED_JOBCOUNT                     = ' '
      PRED_JOBNAME                      = ' '
      SDLSTRTDT                         = NO_DATE
      SDLSTRTTM                         = NO_TIME
      STARTDATE_RESTRICTION             = BTC_PROCESS_ALWAYS
        STRTIMMED                         = 'X'
      TARGETSYSTEM                      = ' '
      START_ON_WORKDAY_NOT_BEFORE       = SY-DATUM
      START_ON_WORKDAY_NR               = 0
      WORKDAY_COUNT_DIRECTION           = 0
        RECIPIENT_OBJ                     = RECIPIENT_OBJ
      TARGETSERVER                      = ' '
      DONT_RELEASE                      = ' '
    IMPORTING
      JOB_WAS_RELEASED                  = 'X'
      EXCEPTIONS
        CANT_START_IMMEDIATE              = 1
        INVALID_STARTDATE                 = 2
        JOBNAME_MISSING                   = 3
        JOB_CLOSE_FAILED                  = 4
        JOB_NOSTEPS                       = 5
        JOB_NOTEX                         = 6
        LOCK_FAILED                       = 7
        OTHERS                            = 8
    IF ( SY-SUBRC <> 0 ).
      WRITE: / 'Job_Close Problem:', ABAPNAME, SY-SUBRC.
    ELSE.
      WRITE: / 'Job_Close done'.
    ENDIF.
    ELSE. "no empfname
    ENDIF.
    Cheers,
    Vijay Raheja

  • ALV Report DUMP

    Hi Experts,
    I developed one alv report. Its executing properly. But once i select tab local file in application toolbar its going to dump.
    im gettign this error:
    Field symbol has not yet been assigned.
    The current ABAP program "SAPLKKBL" had to be terminated because it has
    come across a statement that unfortunately cannot be executed.
    please help me in this regard.
    Regards,
    Vamsi.

    REPORT  ZMM_PURCHREG.
    TABLES: RBKP,RSEG,KONV,J_1IMOVEND.
    TYPE-POOLS: SLIS.
    DATA: IT_RBKP TYPE STANDARD TABLE OF RBKP WITH HEADER LINE.
    DATA: IT_LFA1 TYPE STANDARD TABLE OF LFA1 WITH HEADER LINE.
    DATA: IT_J_1IMOVEND TYPE STANDARD TABLE OF J_1IMOVEND WITH HEADER LINE.
    DATA: IT_RSEG TYPE STANDARD TABLE OF RSEG WITH HEADER LINE.
    TYPES: BEGIN OF IT_BAMT1 ,
          RMWWR TYPE RBKP-RMWWR,
          WMWST1 TYPE RBKP-WMWST1,
          END OF IT_BAMT1.
    DATA: IT_BAMT TYPE STANDARD TABLE OF IT_BAMT1.
    DATA: G_BAMT TYPE RBKP-RMWWR.
    DATA: G_RMAMT TYPE RBKP-RMWWR,
          G_WMWST1 TYPE RBKP-WMWST1.
    DATA: BEGIN OF IT_TAXCOM OCCURS 0.
          INCLUDE STRUCTURE TAXCOM.
    DATA: END OF IT_TAXCOM.
    DATA: BEGIN OF IT_MAIN OCCURS 0.
          INCLUDE STRUCTURE ZPO_REG.
    DATA: END OF IT_MAIN.
    DATA: BEGIN OF IT_EKKO OCCURS 0,
          EBELN TYPE EKKO-EBELN,
          KNUMV TYPE EKKO-KNUMV,
          WAERS TYPE EKKO-WAERS,
          LIFNR TYPE EKKO-LIFNR,
          EKORG TYPE EKKO-EKORG,
          LANDS TYPE EKKO-LANDS,
          END OF IT_EKKO.
    DATA: BEGIN OF IT_EKPO OCCURS 0,
          EBELP TYPE EKPO-EBELP,
          EBELN TYPE EKPO-EBELN,
          MWSKZ TYPE EKPO-MWSKZ,
          NETWR TYPE EKPO-NETWR,
          TXJCD TYPE EKPO-TXJCD,
          MATNR TYPE EKPO-MATNR,
          MATKL TYPE EKPO-MATKL,
          MTART TYPE EKPO-MTART,
          WERKS TYPE EKPO-WERKS,
          MEINS TYPE EKPO-MEINS,
          MENGE TYPE EKPO-MENGE,
          END OF IT_EKPO.
    DATA : BEGIN OF it_xkomv OCCURS 0.
            INCLUDE STRUCTURE komv.
    DATA : END OF it_xkomv.
    DATA :  fieldcat TYPE slis_fieldcat_alv,
            fieldcat_t TYPE  slis_t_fieldcat_alv,
            top_of_page TYPE slis_formname VALUE 'TOP_OF_PAGE',
            layout TYPE slis_layout_alv,
            pos TYPE sy-tabix,
            xhead(70).
    DATA:  lt_sort     TYPE slis_t_sortinfo_alv,
            lt_sp_group TYPE slis_t_sp_group_alv.
    ==========================SELECTION SCREEN===========================
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
    SELECTION-SCREEN SKIP 1.
    SELECT-OPTIONS: S_BELNR FOR RBKP-BELNR.
    SELECTION-SCREEN SKIP 1.
    SELECT-OPTIONS: P_BUKRS FOR RBKP-BUKRS NO INTERVALS.
    SELECTION-SCREEN SKIP 1.
    SELECT-OPTIONS: P_LIFNR FOR RBKP-LIFNR NO INTERVALS.
    SELECTION-SCREEN SKIP 1.
    SELECT-OPTIONS: P_BLDAT FOR RBKP-BLDAT NO INTERVALS.
    SELECTION-SCREEN SKIP 1.
    SELECT-OPTIONS: P_BUDAT FOR RBKP-BUDAT NO INTERVALS.
    SELECTION-SCREEN SKIP 1.
    SELECTION-SCREEN END OF BLOCK b1.
    ===============AT SELECTION SCREEN==================================
    AT SELECTION-SCREEN.
    PERFORM VALIDATE_DATA.
    ===============START OF SELECTION===================================
    START-OF-SELECTION.
    PERFORM VENDORDETAILS.
    *PERFORM BASICAMT.
    PERFORM EXCISEDUTY.
    PERFORM CONSTRUCT_FIELD_CATALOG.
    PERFORM REUSE_ALV_GRID_DISPLAY.
    *&      Form  VALIDATE_DATA
          text
    -->  p1        text
    <--  p2        text
    form VALIDATE_DATA .
    SELECT BELNR BUKRS LIFNR
           BLDAT BUDAT
           FROM RBKP CLIENT SPECIFIED
           INTO
           CORRESPONDING FIELDS OF TABLE IT_RBKP
           WHERE
           MANDT = SY-MANDT
           AND BELNR IN S_BELNR.
    IF SY-SUBRC NE 0.
    MESSAGE 'NOT A VALID DOCUMENT NO.' TYPE 'E'.
    ELSE.
    READ TABLE IT_RBKP INDEX 1.
    ENDIF.
    endform.         " VALIDATE_DATA
    *&      Form  VENDORDETAILS
          text
    -->  p1        text
    <--  p2        text
    form VENDORDETAILS .
    SELECT BELNR BUKRS LIFNR
           BLDAT BUDAT XBLNR RMWWR WMWST1
           FROM RBKP CLIENT SPECIFIED
           INTO
           CORRESPONDING FIELDS OF TABLE IT_RBKP
           WHERE
           MANDT = SY-MANDT
           AND BELNR IN S_BELNR
           AND BUKRS IN P_BUKRS
           AND LIFNR IN P_LIFNR
           AND BLDAT IN P_BLDAT
           AND BUDAT IN P_BUDAT.
    sort IT_RBKP by lifnr.
    LOOP AT IT_RBKP.
    SELECT SINGLE LIFNR J_1IEXCD J_1ICSTNO J_1ILSTNO
           FROM J_1IMOVEND CLIENT SPECIFIED
           INTO (IT_J_1IMOVEND-lifnr, IT_J_1IMOVEND-J_1IEXCD,
             IT_J_1IMOVEND-J_1ICSTNO, IT_J_1IMOVEND-J_1ILSTNO)
           WHERE
           MANDT = SY-MANDT and
           LIFNR = IT_RBKP-LIFNR.
    APPEND IT_J_1IMOVEND.
    ENDLOOP.
    sort IT_J_1IMOVEND by lifnr.
    delete adjacent duplicates from IT_J_1IMOVEND comparing lifnr.
    LOOP AT IT_RBKP.
    read table IT_J_1IMOVEND with key LIFNR = it_rbkp-lifnr.
    G_BAMT = IT_RBKP-RMWWR - IT_RBKP-WMWST1.
    IT_MAIN-BASICAMT = G_BAMT.
    IT_MAIN-BUDAT = IT_RBKP-BUDAT.
    IT_MAIN-BLDAT = IT_RBKP-BLDAT.
    IT_MAIN-BELNR = IT_RBKP-BELNR.
    IT_MAIN-XBLNR = IT_RBKP-XBLNR.
    IT_MAIN-LIFNR = IT_RBKP-LIFNR.
    IT_MAIN-XBLNR = IT_RBKP-XBLNR.
    IT_MAIN-J_1IEXCD = IT_J_1IMOVEND-J_1IEXCD.
    IT_MAIN-J_1ILSTNO = IT_J_1IMOVEND-J_1ILSTNO.
    IT_MAIN-J_1ICSTNO = IT_J_1IMOVEND-J_1ICSTNO.
    IT_MAIN-J_1ILSTNO = IT_J_1IMOVEND-J_1ILSTNO.
    APPEND IT_MAIN.
    CLEAR G_BAMT.
    ENDLOOP.
    FOR CALCULATING  VAT REG NO.
    loop at it_main.
    SELECT SINGLE STCEG FROM LFA1
           INTO  it_main-STCEG
           WHERE LIFNR = it_main-LIFNR.
    MODIFY IT_MAIN.
    ENDLOOP.
    endform.                    " VENDORDETAILS
    *&      Form  EXCISEDUTY
          text
    -->  p1        text
    <--  p2        text
    form EXCISEDUTY .
    LOOP AT IT_RBKP.
    SELECT  belnr EBELN EBELP  menge FROM RSEG
                   INTO corresponding fields of IT_RSEG
                   WHERE BELNR = IT_RBKP-BELNR.
    APPEND IT_RSEG.
    endselect.
    endloop.
    LOOP AT IT_MAIN.
           READ TABLE IT_RSEG WITH KEY BELNR = IT_MAIN-BELNR.
           IT_MAIN-EBELN = IT_RSEG-EBELN.
           IT_MAIN-MENGE = IT_RSEG-MENGE.
           MODIFY IT_MAIN.
    ENDLOOP.
    LOOP AT IT_MAIN.
    SELECT  SINGLE KNUMV FROM EKKO
                   INTO
                   IT_MAIN-KNUMV
                    WHERE EBELN = IT_MAIN-EBELN.
    MODIFY IT_MAIN.
    ENDLOOP.
    LOOP AT IT_MAIN.
    SELECT EBELP FROM EKPO
                 INTO  TABLE IT_EKPO
                 WHERE EBELN = IT_MAIN-EBELN.
    APPEND IT_EKPO.
    ENDLOOP.
    DATA: V_RATE  TYPE KWERT,
          V_RATE1 TYPE KWERT,
          V_RATE2 TYPE KWERT,
          V_RATE4 TYPE KWERT,
          V_RATE5 TYPE KWERT,
          V_RATE3 TYPE KWERT,
          V_RATE6 TYPE KWERT.
    CLACULATING SECESS
    LOOP AT IT_MAIN.
    LOOP AT IT_RSEG where belnr = IT_MAIN-belnr
                      and ebeln = IT_MAIN-ebeln.
    LOOP AT IT_EKPO WHERE EBELN = IT_MAIN-EBELN.
      SELECT SINGLE kbetr FROM konv
           INTO V_rate WHERE knumv = it_MAIN-knUMV
           AND  kposn = IT_EKPO-EBELP
           AND ( kschl EQ 'JSEI' OR kschl EQ 'JSEP' ).
    IF sy-subrc = 0.
    IT_MAIN-SECESS = IT_MAIN-SECESS + ( V_RATE / IT_MAIN-MENGE ).
    ENDIF.
    ENDLOOP.
    MODIFY it_main.
    ENDLOOP.
    ENDLOOP.
    Getting ECS
    LOOP AT IT_MAIN.
    LOOP AT IT_RSEG where belnr = IT_MAIN-belnr
                      and ebeln = IT_MAIN-ebeln.
    SELECT SINGLE kbetr FROM konv
           INTO V_rate1 WHERE knumv = it_MAIN-knumv
           AND  kposn = it_RSEG-ebelp
           AND ( kschl EQ 'JEC1' OR kschl EQ 'JEC2' ).
    IF sy-subrc = 0.
    IT_MAIN-ECS = IT_MAIN-ECS + ( V_RATE1 / IT_MAIN-MENGE ).
    CLEAR V_RATE1.
    ENDIF.
    ENDLOOP.
    MODIFY it_main.
    ENDLOOP.
    Excise Duty
    LOOP AT IT_MAIN.
    LOOP AT IT_RSEG where belnr = IT_MAIN-belnr
                      and ebeln = IT_MAIN-ebeln.
    SELECT SINGLE kbetr FROM konv
           INTO V_rate2 WHERE knumv = it_MAIN-knumv
           AND  kposn = it_RSEG-ebelp
           AND ( kschl EQ 'JMOP' OR kschl EQ 'JMIP' ).
    IF sy-subrc = 0.
    IT_MAIN-EXCISE = IT_MAIN-EXCISE  + ( V_RATE2 / IT_MAIN-MENGE ).
    ENDIF.
    CLEAR V_RATE2.
    ENDLOOP.
    MODIFY it_main.
    ENDLOOP.
    Freight / Octroi
    LOOP AT IT_MAIN.
    LOOP AT IT_RSEG where belnr = IT_MAIN-belnr
                      and ebeln = IT_MAIN-ebeln.
    SELECT SINGLE kbetr FROM konv
           INTO V_rate3 WHERE knumv = it_MAIN-knumv
           AND  kposn = it_RSEG-ebelp
           AND ( kschl EQ 'FRA1' OR kschl EQ 'FRB1'
              OR KSCHL EQ 'FRC1').
    IF sy-subrc = 0.
    SELECT SINGLE KBETR FROM KONV
            INTO V_RATE4 WHERE KNUMV = IT_MAIN-KNUMV
            AND KPOSN = IT_RSEG-EBELP
            AND KSCHL EQ 'JOCM'.
    IF SY-SUBRC = 0.
            V_RATE5 = V_RATE3 + V_RATE4.
    IT_MAIN-OCTROI = IT_MAIN-OCTROI + ( V_RATE5 / IT_MAIN-MENGE ).
    ENDIF.
    ENDIF.
    CLEAR: V_RATE3,
           V_RATE4,
           V_RATE5.
    ENDLOOP.
    MODIFY it_main.
    ENDLOOP.
    Other Charges
    LOOP AT IT_MAIN.
    LOOP AT IT_RSEG where belnr = IT_MAIN-belnr
                      and ebeln = IT_MAIN-ebeln.
    SELECT SINGLE kbetr FROM konv
           INTO V_rate6 WHERE knumv = it_MAIN-knumv
           AND  kposn = it_RSEG-ebelp
           AND ( kschl EQ 'ZOTC' ).
    IF sy-subrc = 0.
    IT_MAIN-OTC = IT_MAIN-OTC  + ( V_RATE6 / IT_MAIN-MENGE ).
    ENDIF.
    CLEAR V_RATE6.
    ENDLOOP.
    MODIFY it_main.
    ENDLOOP.
    ENDFORM.
    *&      Form  CONSTRUCT_FIELD_CATALOG
          text
    -->  p1        text
    <--  p2        text
    form CONSTRUCT_FIELD_CATALOG .
      CLEAR : fieldcat_t,pos.
      layout-colwidth_optimize = 'X'.
      CLEAR fieldcat.
      fieldcat-fieldname = 'BUDAT'.
      fieldcat-tabname   = 'IT_MAIN'.
      fieldcat-seltext_l = 'DOC DATE'.
      fieldcat-just = 'L'.
      fieldcat-col_pos = pos.
      pos = pos + 1.
      APPEND fieldcat TO fieldcat_t.
      CLEAR fieldcat.
      fieldcat-fieldname = 'BLDAT'.
      fieldcat-tabname   =  'IT_MAIN'.
      fieldcat-seltext_l = 'BILL DATE'.
      fieldcat-just = 'L'.
      fieldcat-col_pos = pos.
      pos = pos + 1.
      APPEND fieldcat TO fieldcat_t.
      CLEAR fieldcat.
      fieldcat-fieldname = 'BELNR'.
      fieldcat-tabname   =  'IT_MAIN'.
      fieldcat-seltext_l = 'INVOICE RECIEPT NO.'.
      fieldcat-just = 'L'.
      fieldcat-col_pos = pos.
      pos = pos + 1.
      APPEND fieldcat TO fieldcat_t.
      CLEAR fieldcat.
      fieldcat-fieldname = 'XBLNR'.
      fieldcat-tabname   = 'IT_MAIN'.
      fieldcat-seltext_l = 'BILL NO.'.
      fieldcat-just = 'L'.
      fieldcat-col_pos = pos.
      pos = pos + 1.
      APPEND fieldcat TO fieldcat_t.
      CLEAR fieldcat.
      fieldcat-fieldname = 'LIFNR'.
      fieldcat-tabname   =  'IT_MAIN'.
      fieldcat-seltext_l = 'VENDOR NAME'.
      fieldcat-just = 'L'.
      fieldcat-col_pos = pos.
      pos = pos + 1.
      APPEND fieldcat TO fieldcat_t.
    CLEAR fieldcat.
    fieldcat-fieldname = 'STCEG'.
    fieldcat-tabname   =  'IT_MAIN'.
    fieldcat-seltext_l = 'VAT REG NO.'.
    fieldcat-just = 'L'.
    fieldcat-col_pos = pos.
    pos = pos + 1.
    APPEND fieldcat TO fieldcat_t.
      CLEAR fieldcat.
      fieldcat-fieldname = 'J_1IEXCD'.
      fieldcat-tabname   = 'IT_MAIN'.
      fieldcat-seltext_l = 'ECC REG NO.'.
      fieldcat-just = 'L'.
      fieldcat-col_pos = pos.
      pos = pos + 1.
      APPEND fieldcat TO fieldcat_t.
      CLEAR fieldcat.
      fieldcat-fieldname = 'J_1ILSTNO'.
      fieldcat-tabname   = 'IT_MAIN'.
      fieldcat-seltext_l = 'PAN REG NO.'.
      fieldcat-just = 'L'.
      fieldcat-col_pos = pos.
      pos = pos + 1.
      APPEND fieldcat TO fieldcat_t.
      CLEAR fieldcat.
      fieldcat-fieldname = 'J_1ICSTNO'.
      fieldcat-tabname   =  'IT_MAIN'.
      fieldcat-seltext_l = 'CST REG NO.'.
      fieldcat-just = 'L'.
      fieldcat-col_pos = pos.
      pos = pos + 1.
      APPEND fieldcat TO fieldcat_t.
      CLEAR fieldcat.
      fieldcat-fieldname = 'J_1ILSTNO'.
      fieldcat-tabname   =  'IT_MAIN'.
      fieldcat-seltext_l = 'LST REG NO.'.
      fieldcat-just = 'L'.
      fieldcat-col_pos = pos.
      pos = pos + 1.
      APPEND fieldcat TO fieldcat_t.
      CLEAR fieldcat.
      fieldcat-fieldname = 'BASICAMT'.
      fieldcat-tabname   = 'IT_MAIN'.
      fieldcat-seltext_l = 'BASIC AMOUNT'.
      fieldcat-just = 'L'.
      fieldcat-col_pos = pos.
      pos = pos + 1.
      APPEND fieldcat TO fieldcat_t.
      CLEAR fieldcat.
      fieldcat-fieldname = 'EXCISE'.
      fieldcat-tabname   =  'IT_MAIN'.
      fieldcat-seltext_l = 'EXCISE AMOUNT'.
      fieldcat-just = 'L'.
      fieldcat-col_pos = pos.
      pos = pos + 1.
      APPEND fieldcat TO fieldcat_t.
      CLEAR fieldcat.
      fieldcat-fieldname = 'ECSS'.
      fieldcat-tabname   =  'IT_MAIN'.
      fieldcat-seltext_l = 'ECSS'.
      fieldcat-just = 'L'.
      fieldcat-col_pos = pos.
      pos = pos + 1.
      APPEND fieldcat TO fieldcat_t.
      CLEAR fieldcat.
      fieldcat-fieldname = 'SECESS'.
      fieldcat-tabname   = 'IT_MAIN'.
      fieldcat-seltext_l = 'SECESS'.
      fieldcat-just = 'L'.
      fieldcat-col_pos = pos.
      pos = pos + 1.
      APPEND fieldcat TO fieldcat_t.
      CLEAR fieldcat.
      fieldcat-fieldname = 'VAT'.
      fieldcat-tabname   = 'IT_MAIN'.
      fieldcat-seltext_l = 'VAT'.
      fieldcat-just = 'L'.
      fieldcat-col_pos = pos.
      pos = pos + 1.
      APPEND fieldcat TO fieldcat_t.
      CLEAR fieldcat.
      fieldcat-fieldname = 'OCTROI'.
      fieldcat-tabname   = 'IT_MAIN'.
      fieldcat-seltext_l = 'Octroi'.
      fieldcat-just = 'L'.
      fieldcat-col_pos = pos.
      pos = pos + 1.
      APPEND fieldcat TO fieldcat_t.
      CLEAR fieldcat.
      fieldcat-fieldname = 'OTC'.
      fieldcat-tabname   = 'IT_MAIN'.
      fieldcat-seltext_l = 'Other charges'.
      fieldcat-just = 'L'.
      fieldcat-col_pos = pos.
      pos = pos + 1.
      APPEND fieldcat TO fieldcat_t.
    endform.                    " CONSTRUCT_FIELD_CATALOG
    *&      Form  REUSE_ALV_GRID_DISPLAY
          text
    -->  p1        text
    <--  p2        text
    form REUSE_ALV_GRID_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          = ' '
      I_CALLBACK_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                  = 'ZPO_REG'
      I_BACKGROUND_ID                   = ' '
        I_GRID_TITLE                      = 'PURCHASE REGISTER'
      I_GRID_SETTINGS                   =
        IS_LAYOUT                         = LAYOUT
        IT_FIELDCAT                       = FIELDCAT_T
      IT_EXCLUDING                      =
      IT_SPECIAL_GROUPS                 =
      IT_SORT                           =
      IT_FILTER                         =
      IS_SEL_HIDE                       =
      I_DEFAULT                         = 'X'
        I_SAVE                            = 'A'
      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                 = 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_MAIN
    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.

  • Open Field in ALV Report

    Hi all,
    i have to develop a ALV report.
    In that report i have to put a open quantity column , so that the user can enter values in that, and that value should get updated in the database.
    So please suggest me how to develop such report with open field.
    Thanks in advance,
    Regards,
    Pawan

    Hi,
    Try executing the below code
    REPORT YMS_EDITBLOCKALV.
    TABLES : rmmg1,MCHB, mkpf.
    DATA: BEGIN OF t_mseg OCCURS 0,
    zeile LIKE mseg-zeile,
    menge LIKE mseg-menge,
    meins LIKE mseg-meins,
    matnr LIKE mseg-matnr,
    werks LIKE mseg-werks,
    charg LIKE mseg-charg,
    bwart LIKE mseg-bwart,
    END OF t_mseg.
    DATA:BEGIN OF t_mchb OCCURS 0.
    INCLUDE STRUCTURE mchb.
    data flag type c.
    matnr LIKE mchb-matnr,
    charg LIKE mchb-charg,
    werks LIKE mchb-werks,
    clabs LIKE mchb-clabs,
    DATA END OF t_mchb.
    TYPE-POOLS slis.
    data: progname like sy-repid,
    fieldcattab TYPE slis_t_fieldcat_alv WITH HEADER LINE.
    data tabindex type i.
    data wa_matnr LIKE mchb-matnr.
    progname = sy-repid.
    SELECTION-SCREEN BEGIN OF BLOCK b_b1 WITH FRAME TITLE text-001.
    SELECT-OPTIONS s_docno FOR mkpf-mblnr. " OBLIGATORY.
    PARAMETERS p_docyr LIKE mkpf-mjahr. " OBLIGATORY.
    SELECTION-SCREEN END OF BLOCK b_b1.
    START-OF-SELECTION.
    SELECT zeile
    menge
    meins
    matnr
    werks
    charg
    bwart
    FROM mseg
    INTO TABLE t_mseg
    WHERE mblnr IN s_docno AND mjahr = p_docyr.
    CLEAR fieldcattab.
    fieldcattab-col_pos = 1.
    fieldcattab-fieldname = 'ZEILE'.
    fieldcattab-tabname = 'T_MSEG'.
    fieldcattab-fix_column = 'X'.
    fieldcattab-seltext_l = 'Item'.
    APPEND fieldcattab.
    CLEAR fieldcattab.
    fieldcattab-col_pos = 2.
    fieldcattab-fieldname = 'MENGE'.
    fieldcattab-tabname = 'T_MSEG'.
    fieldcattab-seltext_l = 'Quantity'.
    APPEND fieldcattab.
    CLEAR fieldcattab.
    fieldcattab-col_pos = 3.
    fieldcattab-fieldname = 'MEINS'.
    fieldcattab-tabname = 'T_MSEG'.
    fieldcattab-seltext_l = 'Unit'.
    APPEND fieldcattab.
    CLEAR fieldcattab.
    fieldcattab-col_pos = 4.
    fieldcattab-fieldname = 'MATNR'.
    fieldcattab-tabname = 'T_MSEG'.
    fieldcattab-seltext_l = 'Material'.
    APPEND fieldcattab.
    CLEAR fieldcattab.
    fieldcattab-col_pos = 5.
    fieldcattab-fieldname = 'WERKS'.
    fieldcattab-tabname = 'T_MSEG'.
    fieldcattab-seltext_l = 'Plant'.
    APPEND fieldcattab.
    CLEAR fieldcattab.
    fieldcattab-col_pos = 6.
    fieldcattab-fieldname = 'CHARG'.
    fieldcattab-tabname = 'T_MSEG'.
    fieldcattab-seltext_l = 'Batch No'.
    APPEND fieldcattab.
    CLEAR fieldcattab.
    fieldcattab-col_pos = 7.
    fieldcattab-fieldname = 'BWART'.
    fieldcattab-tabname = 'T_MSEG'.
    fieldcattab-seltext_l = 'Inventory'.
    fieldcattab-hotspot = 'X'.
    APPEND fieldcattab.
    end-of-selection.
    CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
    EXPORTING
    I_INTERFACE_CHECK = ' '
    I_BYPASSING_BUFFER =
    I_BUFFER_ACTIVE = ' '
    I_CALLBACK_PROGRAM = PROGNAME
    I_CALLBACK_PF_STATUS_SET = ' '
    I_CALLBACK_USER_COMMAND = 'USERCOMMAND1'
    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 = fieldcattab[]
    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
    IT_ALV_GRAPHICS =
    IT_ADD_FIELDCAT = fieldcattab
    IT_HYPERLINK =
    IMPORTING
    E_EXIT_CAUSED_BY_CALLER =
    ES_EXIT_CAUSED_BY_USER =
    TABLES
    t_outtab = t_mseg
    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 usercommand1 USING r_ucomm LIKE sy-ucomm rs_selfield TYPE
    slis_selfield.
    CASE r_ucomm.
    WHEN '&IC1'.
    tabindex = rs_selfield-tabindex.
    read table t_mseg INDEX tabindex.
    select * from mchb into table t_mchb where matnr = t_mseg-matnr.
    clear fieldcattab.
    CLEAR fieldcattab[].
    fieldcattab-col_pos = 1.
    fieldcattab-fieldname = 'FLAG'.
    fieldcattab-tabname = 'T_MCHB'.
    fieldcattab-fix_column = 'X'.
    fieldcattab-seltext_l = 'Check Box'.
    fieldcattab-input = 'X'.
    fieldcattab-edit = 'X'.
    fieldcattab-checkbox = 'X'.
    APPEND fieldcattab.
    clear fieldcattab.
    fieldcattab-col_pos = 2.
    fieldcattab-fieldname = 'MATNR'.
    fieldcattab-tabname = 'T_MCHB'.
    fieldcattab-fix_column = 'X'.
    fieldcattab-seltext_l = 'Material'.
    fieldcattab-emphasize = 'C1'.
    fieldcattab-input = 'X'.
    fieldcattab-edit = 'X'.
    fieldcattab-checkbox = 'X'.
    APPEND fieldcattab.
    clear fieldcattab.
    fieldcattab-col_pos = 3.
    fieldcattab-fieldname = 'CHARG'.
    fieldcattab-tabname = 'T_MCHB'.
    fieldcattab-seltext_l = 'Batch No'.
    fieldcattab-emphasize = 'C2'.
    fieldcattab-input = 'X'.
    fieldcattab-edit = 'X'.
    APPEND fieldcattab.
    clear fieldcattab.
    fieldcattab-col_pos = 4.
    fieldcattab-fieldname = 'WERKS'.
    fieldcattab-tabname = 'T_MCHB'.
    fieldcattab-seltext_l = 'Plant'.
    fieldcattab-emphasize = 'C30'.
    fieldcattab-input = 'X'.
    fieldcattab-edit = 'X'.
    APPEND fieldcattab.
    clear fieldcattab.
    fieldcattab-col_pos = 5.
    fieldcattab-fieldname = 'CLABS'.
    fieldcattab-tabname = 'T_MCHB'.
    fieldcattab-seltext_l = 'Stock'.
    fieldcattab-emphasize = 'C601'.
    fieldcattab-input = 'X'.
    fieldcattab-edit = 'X'.
    APPEND fieldcattab.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
    I_INTERFACE_CHECK = ' '
    I_BYPASSING_BUFFER =
    I_BUFFER_ACTIVE = ' '
    I_CALLBACK_PROGRAM = PROGNAME
    I_CALLBACK_PF_STATUS_SET = ' '
    I_CALLBACK_USER_COMMAND = 'USERCOMMAND2'
    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 = FIELDCATTAB[]
    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
    IT_ALV_GRAPHICS =
    IT_ADD_FIELDCAT =
    IT_HYPERLINK =
    IMPORTING
    E_EXIT_CAUSED_BY_CALLER =
    ES_EXIT_CAUSED_BY_USER =
    TABLES
    t_outtab = t_mchb
    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.
    endcase.
    endform.
    FORM usercommand2 USING r_ucomm LIKE sy-ucomm rs_selfield TYPE
    slis_selfield.
    CASE r_ucomm.
    WHEN '&IC1'.
    IF rs_selfield-sel_tab_field = 'T_MCHB-MATNR'.
    CALL FUNCTION 'ZALV2'
    EXPORTING
    CTU = 'X'
    MODE = 'E'
    UPDATE = 'A'
    GROUP =
    USER =
    KEEP =
    HOLDDATE =
    NODATA = '/'
    MATNR_001 = '200-200'
    KZSEL_01_002 = 'X'
    IMPORTING
    SUBRC =
    TABLES
    MESSTAB =
    SET PARAMETER ID 'RID' FIELD RMMG1-MATNR.
    CALL TRANSACTION 'MM03' and skip first screen.
    ENDIF.
    ENDCASE.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
    i_callback_program = progname
    i_callback_user_command = 'USERCOMMAND3'
    it_fieldcat = fieldcattab[]
    TABLES
    t_outtab = t_mchb
    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.
    endcase.
    ENDFORM.
    Regards,
    chandru

  • '@' not getting displayed in the ALV report

    Hello,
    I am facing  a strange issue in the ALV report display. A string starting with '@' is not getting displayed and says "default icon " on the report. and this is varying from system to system for the same user.
    can anyone please help me in resolving the issue.
    Thanks in advance.
    Thanks and Regards,
    Santhosh Guptha N.

    @ is a default value as per ALV internal process. This is used in icons .
    I think this is causing the confusion.
    Check in the fieldcat if there is any adjsutment to be made to handle this.
    Br,
    Vijay

  • PF STATUS IN ALV REPORT

    hi,
    How to use PF STATUS IN ALV REPORT?

    HI,
    see this code.
    TABLES:MARA.
    SELECT-OPTIONS: MATNR FOR MARA-MATNR.
    DATA:BEGIN OF ITAB OCCURS 0,
         MATNR LIKE MARA-MATNR,
         ERSDA LIKE MARA-ERSDA,
         MTART LIKE MARA-MTART,
         MBRSH LIKE MARA-MBRSH,
    END OF ITAB.
    SELECT * FROM MARA INTO CORRESPONDING FIELDS OF TABLE ITAB WHERE MATNR
    IN MATNR.
    TYPE-POOLS SLIS.
    DATA:FCAT TYPE slis_t_fieldcat_alv.
    DATA:LAYOUT TYPE slis_layout_alv.
    DATA:EVE TYPE slis_t_event WITH HEADER LINE.
    DATA:HEAD TYPE slis_t_listheader WITH HEADER LINE.
    DATA:SORT TYPE slis_t_sortinfo_alv WITH HEADER LINE.
    SORT-UP = 'X'.
    SORT-SPOS = 1.
    SORT-FIELDNAME = 'ERSDA'.
    SORT-tabname = 'MARA'.
    APPEND SORT.
    SORT-SPOS = 2.
    SORT-FIELDNAME = 'MTART'.
    SORT-tabname = 'MARA'.
    APPEND SORT.
    EVE-NAME = 'TOP_OF_PAGE'.
    EVE-FORM = 'TOPOFPAGE'.
    APPEND EVE.
    EVE-NAME = 'TOP_OF_LIST'.
    EVE-FORM = 'TOPOFLIST'.
    APPEND EVE.
    EVE-NAME = 'END_OF_LIST'.
    EVE-FORM = 'ENDOFLIST'.
    APPEND EVE.
    LAYOUT-ZEBRA = 'X'.
    LAYOUT-no_hline = 'X'.
    LAYOUT-NO_VLINE = 'X'.
    LAYOUT-window_titlebar = 'MATERIAL DETAILS'.
    CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
    EXPORTING
       I_PROGRAM_NAME               = SY-REPID
       I_INTERNAL_TABNAME           = 'ITAB'
      I_STRUCTURE_NAME             =
      I_CLIENT_NEVER_DISPLAY       = 'X'
       I_INCLNAME                   = SY-REPID
      I_BYPASSING_BUFFER           =
      I_BUFFER_ACTIVE              =
      CHANGING
        CT_FIELDCAT                  = FCAT
    EXCEPTIONS
      INCONSISTENT_INTERFACE       = 1
      PROGRAM_ERROR                = 2
      OTHERS                       = 3
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
    EXPORTING
      I_INTERFACE_CHECK              = ' '
      I_BYPASSING_BUFFER             =
      I_BUFFER_ACTIVE                = ' '
       I_CALLBACK_PROGRAM             = SY-REPID
    <b>   I_CALLBACK_PF_STATUS_SET       = 'STATUS'
       I_CALLBACK_USER_COMMAND        = 'UCOMM'</b>
      I_STRUCTURE_NAME               =
       IS_LAYOUT                      = LAYOUT
       IT_FIELDCAT                    = FCAT
      IT_EXCLUDING                   =
      IT_SPECIAL_GROUPS              =
       IT_SORT                        = SORT[]
      IT_FILTER                      =
      IS_SEL_HIDE                    =
      I_DEFAULT                      = 'X'
      I_SAVE                         = ' '
      IS_VARIANT                     =
       IT_EVENTS                      = EVE[]
      IT_EVENT_EXIT                  =
      IS_PRINT                       =
      IS_REPREP_ID                   =
      I_SCREEN_START_COLUMN          = 5
      I_SCREEN_START_LINE            = 5
      I_SCREEN_END_COLUMN            = 120
      I_SCREEN_END_LINE              = 25
    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 TOPOFPAGE.
    REFRESH HEAD.
        HEAD-TYP = 'H'.
        HEAD-INFO = 'MATERIALS'.
        APPEND HEAD.
        CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
          EXPORTING
            IT_LIST_COMMENTARY       = HEAD[]
          I_LOGO                   =
          I_END_OF_LIST_GRID       =
    ENDFORM.
    FORM TOPOFLIST.
    REFRESH HEAD.
        HEAD-TYP = 'H'.
        HEAD-INFO = 'MATERIALS-LISTTOP'.
        APPEND HEAD.
        CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
          EXPORTING
            IT_LIST_COMMENTARY       = HEAD[]
          I_LOGO                   =
          I_END_OF_LIST_GRID       =
    ENDFORM.
    FORM ENDOFLIST.
    REFRESH HEAD.
        HEAD-TYP = 'H'.
        HEAD-INFO = 'MATERIALS-LISTEND'.
        APPEND HEAD.
        CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
          EXPORTING
            IT_LIST_COMMENTARY       = HEAD[]
          I_LOGO                   =
          I_END_OF_LIST_GRID       =
    ENDFORM.
    <b>FORM STATUS USING MYMENU.
        SET PF-STATUS 'MENU' excluding MYMENU.
    ENDFORM.
    FORM UCOMM USING CODE STEXT.
        CASE CODE.
            WHEN 'ABC'.
            WRITE:/ 'YOU HAVE CLICKED ON ABC'.
            WHEN 'XYZ'.
            WRITE:/ 'YOU HAVE CLICKED ON XYZ'.
        ENDCASE.
    ENDFORM.</b>
    rgds,
    bharat.

  • Menu options in ALV report

    Hi,
    Im not getting Menu options in ALV report output. Not even default menu options SYSTEM, HELP Its dispalying as <b>????????????????????????????????</b>. Can someone help me regarding this?
    Regards,
    amal

    Hi Amal,
                Check the screen number if you are using a seperate screen and Menu painter.
    Thanks and Regards,
    Sampath

  • Double click in alv report

    Hi all,
    I have below output in alv report.
    matnr 101_102 121_122 123_124
    10000   23          34              45
    10001   34          34              456
    if i m clicking on 23 in combination of 121_122 and 10000 then i want to see detail for 121_122 and if i m clicking on 34 combination of 101_102 then i want to see detail according to it.
    plz help me. its urgent.
    thanks in advance.

    Check the below report and do compare and modify the report as per your req.
    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.
    Thanks
    Seshu

Maybe you are looking for

  • How do I backup without an external hard drive?

    Well, the first time I asked this question it was deleted as a "rant." Seriously, how do I backup my iTunes library without an external hard drive? My HD is hanging on for dear life and I've been trying to backup my library. For years, I just used th

  • How to block field groups instead of fields on tcode BP in SAP ECC

    Hi Experts, Does anyone know how I can block modification of entire tabs in tcode BP for a given user access role instead of down at the field level only? Example: how can I make the entire Address tab of the General Data view nonmodifiable instead o

  • How to provide custom messages while viewing reports in obiee.

    Hi, I would like to show some custom message in all Dashboards. For instance when a user logs into the Dashboard, the report would take long time to get processed. So what to do so that we could provide custom message stating that.."Please select the

  • Passing Enum Values to a common method.Please see

    How do I pass the value of an Enum to a method? I have an Enum called myEnums with several values to a common method public enum MYEnums {         FULL,         EMPTY,         PARTIAL         CPTY_CODE; //Invoke isEmpty(myEnums.FULL) isEmpty(myEnums.

  • Queries In Smart Forms

    Hi Friends, I am doing smartforms for the first time and have gone thru the SAP's document for smartforms but still have few querries which are left unanswered. Kindly help in clarifying those : 1.  If we are retrieving data from driver program and d