ALV objects

Hi all,
I am Using ALV grid using Object Oriented methods.I am doing some changes in my Internal table in HANDLED_DATA_CHANGED event method.But while coming out from this Screen flowlogic,the updated records were disapper in Internal table...What is the reason for this..how can i overcome this...?
Thanks In advance..

Hi,
DATA: lt_rows TYPE lvc_t_row,
          lt_index TYPE  lvc_s_row-index.
CALL METHOD ref_grid->get_selected_rows
         IMPORTING
            et_index_rows = lt_rows.
LOOP AT lt_rows INTO lt_index.
      READ TABLE it_tab INTO wa_it_tab  "reading internal tab with current index
                             INDEX lt_index.
      modify it_tab from wa_it_tab
                          INDEX lt_index.
ENDLOOP.
Thanks & Regards,
Krishna...

Similar Messages

  • Editable field in ALV Object Model

    Hi Guys,
    I'm using method cl_salv_table=>factory to display an ALV (Object Model) in my report.
    I want to "open up" one field for user entries, in other words make one column of my table editable.
    I assumed to find the respective methods in class cl_salv_table, cl_salv_columns_table or cl_salv_display_settings, so far without getting anywhere.
    I know about the field-catalogue and the method set_ready_for_input in class CL_GUI_ALV_GRID - it's not working once you're in the object model.
    Any ideas how to do that?
    Thank you!
    With best regards,
    Andreas

    Hi Guys,
    I'm using method cl_salv_table=>factory to display an ALV (Object Model) in my report.
    I want to "open up" one field for user entries, in other words make one column of my table editable.
    I assumed to find the respective methods in class cl_salv_table, cl_salv_columns_table or cl_salv_display_settings, so far without getting anywhere.
    I know about the field-catalogue and the method set_ready_for_input in class CL_GUI_ALV_GRID - it's not working once you're in the object model.
    Any ideas how to do that?
    Thank you!
    With best regards,
    Andreas

  • How to add search help for field in ALV object

    Hello,
    In a program, we use ALV object ( container) to create a liste like : field1, field2 .. but when display we do not have search help for this . Could you please help me how to add match code in this case for field 1 and field2, We use set_table_for_first_display
    Thanks,

    Hi,
    when you define your field catalogue you can create data elements with search help in se11 and use them for field 1 and field 2.
    But maybe it is enough to use data elements belonging to a domain with a value help and to set field F$AVAILABL in the field catalogue or to fill the name of the field CHECKTABLE.
    Regards,
    Klaus

  • END_OF_PAGE in ALV Object model

    Dear all,
    I am using ALV Object model, but the END_OF_PAGE is not triggering. I have pasted the sample code below. Let me know how to get  END_OF_PAGE  in ALV OM.
    REPORT  ztest_rr.
    DATA : it_sflight TYPE TABLE OF sflight.
    DATA : gr_sflight TYPE REF TO cl_salv_table,
           gr_content TYPE REF TO cl_salv_form_element,
           gr_sorts   TYPE REF TO cl_salv_sorts,
           gr_events  TYPE REF TO cl_salv_events,
           gr_print   TYPE REF TO cl_salv_print.
          CLASS lcl_eventhandler DEFINITION
    CLASS lcl_eventhandler DEFINITION.
      PUBLIC SECTION.
        CLASS-METHODS:
          handle_top_of_page FOR EVENT
              top_of_page OF cl_salv_events
              IMPORTING
              page
              table_index
              r_top_of_page,
          handle_end_of_page FOR EVENT
              end_of_page OF cl_salv_events
              IMPORTING
              page
              r_end_of_page.
    ENDCLASS.                    "lcl_eventhandler DEFINITION
    DATA : gr_handler TYPE REF TO lcl_eventhandler.
          CLASS lcl_eventhandler IMPLEMENTATION
    CLASS lcl_eventhandler IMPLEMENTATION.
      METHOD handle_top_of_page.
        PERFORM create_alv_form_content_top
          USING    page
                   table_index
          CHANGING gr_content.
        r_top_of_page->set_content( gr_content ).
      ENDMETHOD.                    "handle_top_of_page
      METHOD handle_end_of_page.
        PERFORM create_alv_form_content_eop
        USING    page
        CHANGING gr_content.
        r_end_of_page->set_content( gr_content ).
      ENDMETHOD.                    "handle_end_of_page
    ENDCLASS.                    "lcl_eventhandler IMPLEMENTATION
    START-OF-SELECTION.
      SELECT *
      FROM sflight
      INTO TABLE it_sflight.
      TRY.
          CALL METHOD cl_salv_table=>factory
            EXPORTING
              list_display   = if_salv_c_bool_sap=>true
       r_container    =
       container_name =
            IMPORTING
              r_salv_table   = gr_sflight
            CHANGING
              t_table        = it_sflight
        CATCH cx_salv_msg .
      ENDTRY.
      CALL METHOD gr_sflight->get_sorts
        RECEIVING
          value = gr_sorts.
      CALL METHOD gr_sorts->set_group_active
        EXPORTING
          value = if_salv_c_bool_sap=>true.
      TRY.
          CALL METHOD gr_sorts->add_sort
            EXPORTING
              columnname = 'CARRID'
       position   =
       sequence   = IF_SALV_C_SORT=>SORT_UP
       subtotal   = IF_SALV_C_BOOL_SAP=>FALSE
               group      = if_salv_c_sort=>group_with_newpage
       obligatory = IF_SALV_C_BOOL_SAP=>FALSE
    receiving
       value      =
        CATCH cx_salv_not_found .
        CATCH cx_salv_existing .
        CATCH cx_salv_data_error .
      ENDTRY.
      CALL METHOD gr_sflight->get_event
        RECEIVING
          value = gr_events.
      CALL METHOD gr_sflight->get_print
        RECEIVING
          value = gr_print.
      CALL METHOD gr_print->set_reserve_lines
        EXPORTING
          value = 5.
      CREATE OBJECT gr_handler.
      SET HANDLER gr_handler->handle_top_of_page FOR gr_events.
      SET HANDLER gr_handler->handle_end_of_page FOR gr_events.
      CALL METHOD gr_sflight->display
    *&      Form  CREATE_ALV_FORM_CONTENT_TOP
          text
         -->P_PAGE  text
         -->P_TABLE_INDEX  text
         <--P_GR_CONTENT  text
    FORM create_alv_form_content_top  USING    l_page
                                               l_table_index
                                      CHANGING lr_content.
      WRITE 'HAI'.
    ENDFORM.                    " CREATE_ALV_FORM_CONTENT_TOP
    *&      Form  CREATE_ALV_FORM_CONTENT_EOP
          text
         -->P_PAGE  text
         <--P_GR_CONTENT  text
    FORM create_alv_form_content_eop  USING    l_page
                                      CHANGING lr_content.
      WRITE 'BYE'.
    ENDFORM.                    " CREATE_ALV_FORM_CONTENT_EOP

    Dear all,
    I am using ALV Object model, but the END_OF_PAGE is not triggering. I have pasted the sample code below. Let me know how to get  END_OF_PAGE  in ALV OM.
    REPORT  ztest_rr.
    DATA : it_sflight TYPE TABLE OF sflight.
    DATA : gr_sflight TYPE REF TO cl_salv_table,
           gr_content TYPE REF TO cl_salv_form_element,
           gr_sorts   TYPE REF TO cl_salv_sorts,
           gr_events  TYPE REF TO cl_salv_events,
           gr_print   TYPE REF TO cl_salv_print.
          CLASS lcl_eventhandler DEFINITION
    CLASS lcl_eventhandler DEFINITION.
      PUBLIC SECTION.
        CLASS-METHODS:
          handle_top_of_page FOR EVENT
              top_of_page OF cl_salv_events
              IMPORTING
              page
              table_index
              r_top_of_page,
          handle_end_of_page FOR EVENT
              end_of_page OF cl_salv_events
              IMPORTING
              page
              r_end_of_page.
    ENDCLASS.                    "lcl_eventhandler DEFINITION
    DATA : gr_handler TYPE REF TO lcl_eventhandler.
          CLASS lcl_eventhandler IMPLEMENTATION
    CLASS lcl_eventhandler IMPLEMENTATION.
      METHOD handle_top_of_page.
        PERFORM create_alv_form_content_top
          USING    page
                   table_index
          CHANGING gr_content.
        r_top_of_page->set_content( gr_content ).
      ENDMETHOD.                    "handle_top_of_page
      METHOD handle_end_of_page.
        PERFORM create_alv_form_content_eop
        USING    page
        CHANGING gr_content.
        r_end_of_page->set_content( gr_content ).
      ENDMETHOD.                    "handle_end_of_page
    ENDCLASS.                    "lcl_eventhandler IMPLEMENTATION
    START-OF-SELECTION.
      SELECT *
      FROM sflight
      INTO TABLE it_sflight.
      TRY.
          CALL METHOD cl_salv_table=>factory
            EXPORTING
              list_display   = if_salv_c_bool_sap=>true
       r_container    =
       container_name =
            IMPORTING
              r_salv_table   = gr_sflight
            CHANGING
              t_table        = it_sflight
        CATCH cx_salv_msg .
      ENDTRY.
      CALL METHOD gr_sflight->get_sorts
        RECEIVING
          value = gr_sorts.
      CALL METHOD gr_sorts->set_group_active
        EXPORTING
          value = if_salv_c_bool_sap=>true.
      TRY.
          CALL METHOD gr_sorts->add_sort
            EXPORTING
              columnname = 'CARRID'
       position   =
       sequence   = IF_SALV_C_SORT=>SORT_UP
       subtotal   = IF_SALV_C_BOOL_SAP=>FALSE
               group      = if_salv_c_sort=>group_with_newpage
       obligatory = IF_SALV_C_BOOL_SAP=>FALSE
    receiving
       value      =
        CATCH cx_salv_not_found .
        CATCH cx_salv_existing .
        CATCH cx_salv_data_error .
      ENDTRY.
      CALL METHOD gr_sflight->get_event
        RECEIVING
          value = gr_events.
      CALL METHOD gr_sflight->get_print
        RECEIVING
          value = gr_print.
      CALL METHOD gr_print->set_reserve_lines
        EXPORTING
          value = 5.
      CREATE OBJECT gr_handler.
      SET HANDLER gr_handler->handle_top_of_page FOR gr_events.
      SET HANDLER gr_handler->handle_end_of_page FOR gr_events.
      CALL METHOD gr_sflight->display
    *&      Form  CREATE_ALV_FORM_CONTENT_TOP
          text
         -->P_PAGE  text
         -->P_TABLE_INDEX  text
         <--P_GR_CONTENT  text
    FORM create_alv_form_content_top  USING    l_page
                                               l_table_index
                                      CHANGING lr_content.
      WRITE 'HAI'.
    ENDFORM.                    " CREATE_ALV_FORM_CONTENT_TOP
    *&      Form  CREATE_ALV_FORM_CONTENT_EOP
          text
         -->P_PAGE  text
         <--P_GR_CONTENT  text
    FORM create_alv_form_content_eop  USING    l_page
                                      CHANGING lr_content.
      WRITE 'BYE'.
    ENDFORM.                    " CREATE_ALV_FORM_CONTENT_EOP

  • ALV object model - List download

    H Experts,
    I have used ALV object model to list display.
    Also i have used class CL_ALV_COLUMNS_TABLE and its method set_long_text to set the column heading.
    Now if i execute this report, long text is displayed properly in column heading.
    But when i download this report output in spreadsheet, short text is displayed in column heading which is taken from the data element in DDIC.
    Example:
    I have declaed a column of type ABWTG.
    I have set leng text as 'TEST'.
    When i execute the report, column heading is displayed "TEST', which is as expected.
    But when i download this report in spreadsheet, column heading is displayed as 'NUMBER' in spread sheet. While downloading column heading is taken from the data element for field ABWTG. But i want the long text 'TEST' to be displayed when the report output is downloaded.
    Please suggest how to do it.
    Regards

    Hi,
    As per my understanding , it is displaying in excel based on ur ddic_output_length field.
    only becoz of that field it will show the same header.
    IF u will change the value at run time for this field then u will not get that issue,
    I m also searching on the same issue.
    Thanks
    Rahul

  • ALV object in Web dynpro ABAP

    Hi All,
    I want to include ALV object in web dynpro ABAP, instead of a table in a window. I have SAP Version 4.6 as backend.
    Pl help.

    Hi Nirmal,
    the information on ALV and WDA is here: http://help.sap.com/saphelp_nw2004s/helpdata/en/74/fd4142646ab46be10000000a155106/frameset.htm
    As you know, Web Dynpro ABAP is availiable with NW2004s, not before.
    Regards, Heidi

  • How do I create a context menu in the new ALV object model (cl_salv_table)?

    Hi,
    Does anyone know how to create a context menu (right click on line or field) in the new ALV object model (class CL_SALV_TABLE)?
    Thanks in advance
    Keld Gregersen
    PS: In the past we could use event CONTEXT_MENU_REQUEST in class CL_GUI_ALV_GRID, so it must be possible

    I don't think there's "any such animal" in the new class. I'm not 100% certain however but the new class is only useful for fairly simple display only type grids.
    There's no edit capability either.
    I'd stick with cl_gui_alv_grid until there's some decent extra functionality in the cl_salv_table class.
    It's fine for quick "bog standard" displays as it doesn't need a field catalog or any screens to be created by the user or developer  - but you pay a price for that in limited fnctionality.
    Cheers
    jimbo

  • Multiple ALV Objects in one Report

    I have multiple ALV ojbects in one ABAP report (one a grid, and one a tree).  When selecting the choose display layout for either object - it returns the layouts for BOTH objects.  Is there any way of limiting this to only return the layouts for the appropriate object?
    Thanks in advance.

    Hi Heather,
    in methode set_table_for_first_display you can use the parameter is_variant of type DISVARIANT. Use the field HANDLE in this structure to distinguish the two ALV Objects. Fill also field REPORT of the same structure with sy-repid.
    Regards Florian

  • ALV OBJECT FN

    Hi,
             i have a requirment like this : Out put is an alv grid with standard icons like sort , filter , excel download etc. In the Excel Download Functionality drop down there are options like  Crystal report designer , Crystal Reort tool which should be excluded in the drop down . Is there any way i could resrict these . Am using ALV OBJECTS meathod to display the grid.
    CL_AlV_GUI.
    Thanks,
    Vind.

    Hi,
    search for "Sorting by Columns" in the SAP Library:
    http://help.sap.com/saphelp_erp2005vp/helpdata/en/e1/8e51341a06084de10000009b38f83b/frameset.htm
    Regards
    Bernd

  • Questions about ALV object model

    Hi,
    for a new report i´m planing to use the "new" ALV object model to create the ALV list. Now I´ve got two questions concerning this topic:
    - is it possible to switch the ALV into the edit mode like it´s possible if  the "old" CL_GUI_ALV_GRID class  
      is used?
    - how I can encolor specific cells?
    I couldn´t find any hints or demo programms for these questions
    Regards,
    Andy

    it is not possible to Edit the ALV using Object Model.
    For coloring...check this code.
    DATA: alv TYPE REF TO cl_salv_table.
    TYPES: BEGIN OF ty_tab,
             carrid TYPE sflight-carrid,
             connid TYPE sflight-connid,
             color  TYPE lvc_t_scol,
           END OF ty_tab.
    DATA: wt_color TYPE  lvc_t_scol,
          wa_color TYPE  lvc_s_scol,
          w_color  TYPE  lvc_s_colo.
    DATA: wa_flight TYPE ty_tab.
    DATA: column_tab TYPE REF TO cl_salv_columns_table,
          column TYPE REF TO cl_salv_column_table.
    DATA: column_ref TYPE   salv_t_column_ref,
          wa LIKE LINE OF column_ref.
    DATA: it_flight TYPE STANDARD TABLE OF ty_tab.
    SELECT carrid connid FROM sflight
    INTO CORRESPONDING FIELDS OF TABLE it_flight
    UP TO 10 ROWS.
    w_color-col = 4.
    w_color-int = 0.
    w_color-inv = 0.
    LOOP AT it_flight INTO wa_flight.
      w_color-col = 4.
      wa_color-fname = 'CARRID'.
      wa_color-color = w_color.
      APPEND wa_color TO wt_color.
      w_color-col = 6.
      wa_color-fname = 'CONNID'.
      wa_color-color = w_color.
      APPEND wa_color TO wt_color.
      wa_flight-color = wt_color.
      MODIFY it_flight FROM wa_flight.
    ENDLOOP.
    cl_salv_table=>factory(
      IMPORTING
        r_salv_table   = alv
      CHANGING
        t_table        = it_flight
    "get all the columns
    column_tab = alv->get_columns( ).
    column_tab->set_color_column( value = 'COLOR' ).
    column_ref = column_tab->get( ).
    "loop each column
    LOOP AT column_ref INTO wa.
      "Conditionally set the column type as key or non key
      IF wa-columnname   = 'CARRID'.
        column ?= wa-r_column.
        column->set_key( abap_true ).
      ENDIF.
    ENDLOOP.
    alv->display( ).

  • ALV Object Model - Merged Cells

    Hi all
       When utilizing ALV Object Model, how do I display cells as merged when they have the same content?
       Can someone help me out?
       Thank you very much!

    Hello Yun
    In dialog cells are merged automatically as soon as you sort the column containing repeated values.
    Thus, when you call method SET_TABLE_FOR_FIRST_DISPLAY you should additionally provide parameter IT_SORT with the appropriate entries.
    For example, you want to sort your ALV list according to COL_A (1st) and COL_B (2nd):
    ls_sort-spos = 1.
    ls_sort-fieldname = 'COL_A'.
    ls_sort-up        = 'X'.  " sort ascending
    append ls_sort to lt_sort.
    ls_sort-spos = 2.
    ls_sort-fieldname = 'COL_B'.
    ls_sort-up        = 'X'.  " sort ascending
    append ls_sort to lt_sort.
    Regards
      Uwe

  • Message in Status Bar while using ALV Objects

    Hi All,
    If we use ALV in objects (Build in class and methods for ALV),is it possible to display a error message using Message statement in Status bar.
    Thanks in advance.

    Hi,
    Yes, it is possible.  You can do it using the ALV Object Model (ALV OO methods) within an event handler method.  For example, the event "added_function of cl_salv_events" can be used and you can add code similar to the following code within the event handler method:
    CASE e_salv_function.
      WHEN 'XYZ'.
        MESSAGE w001(00) WITH 'Message text goes here...'.
    ENDCASE.
    The warning message will either show up as a popup or in the status bar depending on your user settings.  Of course, you can also use other message types (e.g. I, E, S) or other message techniques besides the message statement.
    Best Regards,
    Jamie

  • ALV Object : how to manage two grid in one screen ?

    Hello,
    I would like to print in a same screen two ALV grid with different command for each.
    The two grid will be linked.
    One is the header of the datas and the second represent the items of the selected data in the the header grid.
    Is it possible to do this in ALV object or only in transaction with "control tables"?
    Do you have any example for me, please ?
    Thanks in advance for help,
    Best regards,
    Bertrand

    Hi,
    go through this code,
    REPORT  Z7RNP_ALV_SO_BLOCK  MESSAGE-ID Z7NEW                     .
    TABLE DECLARATION
    TABLES: VBAK ,             "Sales Document: Header Data
            VBAP ,             "Sales Document: Item Data
            MAKT ,             "Material Descriptions
            LIPS .             "SD document: Delivery: Item data
    DECLARATION OF TYPE-POOL
    *THIS TYPE-POOL CONTAINS THE EVENTS,
    TYPE-POOLS : SLIS.
    DECLARATION OF EVENTS
    DECLARATION OF FIELD LAYOUT
    DATA: I_LAYOUT TYPE SLIS_LAYOUT_ALV.
    DATA: T_LAYOUT TYPE SLIS_LAYOUT_ALV.
    DATA: T_EVENT TYPE SLIS_T_EVENT.
    DATA: X_EVENT TYPE SLIS_ALV_EVENT.
    DECLARATION OF LIST HEADER
    DATA: I_LISTHEADER TYPE SLIS_T_LISTHEADER.
    DECLARATION OF FIELD CATALOG FOR SCREEN 1
    DATA: I_FLDCAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE.
    DECLARATION OF FIELD CATALOG FOR SCREEN 2
    DATA: I_FLDCAT2 TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE.
    SORTING OF OUTPUT
    DATA: I_SORT TYPE SLIS_T_SORTINFO_ALV.
    DATA: T_SORT TYPE SLIS_T_SORTINFO_ALV.
    *DATA DECLARATION
    DATA: V_AUART TYPE TVAK-AUART,
          V_VKORG TYPE TVKO-VKORG,
          V_KUNNR TYPE KNA1-KUNNR,
          V_MATNR TYPE MARA-MATNR ,
          V_SPART TYPE TVTA-SPART .
    DATA: V_REPID LIKE SY-REPID .
    TYPES: BEGIN OF IT_SO ,
           VBELN TYPE VBELN_VA ,          "SALES ORDER NO.
           AUART TYPE AUART ,             "SALES DOC. TYPE
           VKORG TYPE VKORG ,             "SALES ORG.
           SPART TYPE SPART ,             "DIVISION
           KUNNR TYPE KUNAG ,             "SOLD TO PARTY
           POSNR TYPE POSNR_VA ,          "SALES DOC. ITEM
           MATNR TYPE MATNR ,             "MATERIAL NO
           MAKTX TYPE MAKTX ,             "DESCRIPTION
           KWMENG TYPE KWMENG ,           "QUANTITY
           VRKME TYPE VRKME ,             "SALES UNIT
           END OF IT_SO .
    TYPES: BEGIN OF IT_DEL ,
           VBELN TYPE VBELN_VL ,         "SALES ORDER NO.
           POSNR TYPE POSNR_VL ,         "SALES DOC. ITEM
           MATNR TYPE MATNR ,            "MATERIAL NO
           WERKS TYPE WERKS_D ,          "PLANT
           LGORT TYPE LGORT_D ,          "STORAGE LOCATION
           CHARG TYPE CHARG_D ,          "BATCH NO.
           LFIMG TYPE LFIMG ,            "ACTUAL DELIVERY QTY.
           VRKME TYPE VRKME ,            "SALES UNIT
           END OF IT_DEL .
    TYPES: BEGIN OF TYPE_VBFA ,
           VBELV TYPE VBELN_VON ,
           "Preceding sales and distribution document
           POSNV TYPE POSNR_VON ,      "Preceding item of an SD document
           VBELN TYPE VBELN_NACH ,
           "Subsequent sales and distribution document
           POSNN TYPE POSNR_NACH,
           "Document category of subsequent document
           VBTYP_N TYPE VBTYP_N ,
          END OF TYPE_VBFA .
    DATA: IT_SO1 TYPE STANDARD TABLE OF IT_SO ,
          IT_DEL1 TYPE STANDARD TABLE OF IT_DEL ,
          IT_VBFA TYPE STANDARD TABLE OF TYPE_VBFA,
          IT_DEL_FUL TYPE STANDARD TABLE OF IT_DEL.
    DATA: WA_SO TYPE IT_SO ,
          WA_DEL TYPE IT_DEL ,
          WA_VBFA TYPE TYPE_VBFA,
          wa_IT_DEL_FUL TYPE IT_DEL.
    *SELECTION SCREEN
    SELECTION-SCREEN BEGIN OF BLOCK BLK1 WITH FRAME TITLE TEXT-004 .
    SELECT-OPTIONS: S_VBELN FOR VBAK-VBELN ,
                    S_AUART FOR V_AUART ,
                    S_VKORG FOR V_VKORG ,
                    S_SPART FOR V_SPART ,
                    S_KUNNR FOR V_KUNNR ,
                    S_MATNR FOR V_MATNR .
    SELECTION-SCREEN END OF BLOCK BLK1 .
    *AT SELECTION SCREEN
    AT SELECTION-SCREEN.
      SELECT SINGLE VBELN
                     FROM VBAK INTO VBAK-VBELN
                     WHERE VBELN IN S_VBELN.
      IF SY-SUBRC <> 0.
        MESSAGE E202.
      ENDIF.
    *START OF SELECTION
    INITIALIZATION.
      V_REPID = SY-REPID.
    START-OF-SELECTION .
      PERFORM DATA_SELECT.
    FOR BLOCK 1
      PERFORM INITIALIZE_BLOCK .
      PERFORM FLD_CAT USING I_FLDCAT[] .
      PERFORM T_LAYOUT USING I_LAYOUT .
      PERFORM I_SORT USING I_SORT .
      PERFORM EVENT USING T_EVENT .
      PERFORM CALL_ALV.
    FOR BLOCK 2
      PERFORM FLD_CAT2 USING I_FLDCAT2[] .
      PERFORM I_LAYOUT USING I_LAYOUT .
    PERFORM T_SORT USING I_SORT .
      PERFORM EVENT1 USING T_EVENT .
      PERFORM CALL_ALV1.
      PERFORM BLOCK-DISPLAY .
    *&      Form  DATA_SELECT
          text
    -->  p1        text
    <--  p2        text
    FORM DATA_SELECT .
      REFRESH: IT_VBFA, IT_SO1, IT_DEL1, IT_DEL_FUL.
      SELECT
            A~VBELN
            A~AUART
            A~VKORG
            A~SPART
            A~KUNNR
            B~POSNR
            B~MATNR
            C~MAKTX
            B~KWMENG
            B~VRKME
            INTO TABLE IT_SO1 FROM VBAK AS A
                  JOIN VBAP AS B ON BVBELN = AVBELN
                  JOIN MAKT AS C ON CMATNR = BMATNR
                  AND C~SPRAS = SY-LANGU
                  WHERE A~VBELN IN S_VBELN .
      IF SY-SUBRC = 0.
        SELECT VBELV POSNV VBELN POSNN VBTYP_N INTO TABLE IT_VBFA
               FROM VBFA
               FOR ALL ENTRIES IN IT_SO1
               WHERE VBELV = IT_SO1-VBELN
               AND   POSNN = IT_SO1-POSNR
               AND VBTYP_N ='J' .
       IF SY-SUBRC = 0.
          SELECT VBELN POSNR MATNR WERKS LGORT CHARG LFIMG VRKME
                 FROM LIPS INTO TABLE IT_DEL_FUL
                 FOR ALL ENTRIES IN IT_VBFA
                 WHERE VBELN = IT_VBFA-VBELN
                 AND   POSNR = IT_VBFA-POSNN.
        ENDIF.
        ENDIF .
        V_REPID = SY-REPID .
    ENDFORM.                    " DATA_SELECT
    *&      Form  INITIALIZE_BLOCK
          text
    -->  p1        text
    <--  p2        text
    FORM INITIALIZE_BLOCK .
    CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'
      EXPORTING
        I_CALLBACK_PROGRAM             = V_REPID .
      I_CALLBACK_PF_STATUS_SET       = ' '
      I_CALLBACK_USER_COMMAND        = ' '
      IT_EXCLUDING                   =
    ENDFORM.                    " INITIALIZE_BLOCK
    *&      Form  FLD_CAT
          text
         -->P_I_FLDCAT[]  text
    FORM FLD_CAT  USING    P_I_FLDCAT TYPE SLIS_T_FIELDCAT_ALV.
      CLEAR I_FLDCAT.
      I_FLDCAT-FIELDNAME   = 'VBELN'. "FIELD FOR WHICH CATALOG ID FILLED
      I_FLDCAT-TABNAME     = 'IT_SO1'.
      I_FLDCAT-SELTEXT_M   = 'SALES ORDER NO.'.
      I_FLDCAT-COL_POS     = 1.        " POSITION OF THE COLUMN.
      I_FLDCAT-OUTPUTLEN   = 20.       " SET THE OUTPUT LENGTH.
      I_FLDCAT-EMPHASIZE   = 'X'.      " COLOR OF THIS COLUMN.
      I_FLDCAT-KEY         = 'X'.      " SO THAT THIS FIELD IS NOT
      "SCROLLABLE AND HIDDABLE.
      I_FLDCAT-HOTSPOT     = 'X'.
      APPEND I_FLDCAT.
      CLEAR I_FLDCAT.
      I_FLDCAT-FIELDNAME   = 'AUART'. "FIELD FOR WHICH CATALOG ID FILLED
      I_FLDCAT-TABNAME     = 'IT_SO1'.
      I_FLDCAT-SELTEXT_M   = 'SALES DOC. TYPE'.
      I_FLDCAT-COL_POS     = 2.        " POSITION OF THE COLUMN.
      I_FLDCAT-OUTPUTLEN   = 20.       " SET THE OUTPUT LENGTH.
      I_FLDCAT-EMPHASIZE   = 'X'.      " COLOR OF THIS COLUMN.
      I_FLDCAT-KEY         = 'X'.
      " SO THAT THIS FIELD IS NOT SCROLLABLE AND HIDDABLE.
    I_FLDCAT-HOTSPOT     = 'X'.
      APPEND I_FLDCAT.
      CLEAR I_FLDCAT.
      I_FLDCAT-FIELDNAME   = 'VKORG'. "FIELD FOR WHICH CATALOG ID FILLED
      I_FLDCAT-TABNAME     = 'IT_SO1'.
      I_FLDCAT-SELTEXT_M   = 'SALES ORG.'.
      I_FLDCAT-COL_POS     = 3.        " POSITION OF THE COLUMN.
      I_FLDCAT-OUTPUTLEN   = 20.       " SET THE OUTPUT LENGTH.
      I_FLDCAT-EMPHASIZE   = 'X'.      " COLOR OF THIS COLUMN.
      I_FLDCAT-KEY         = 'X'.
      " SO THAT THIS FIELD IS NOT SCROLLABLE AND HIDDABLE.
    I_FLDCAT-HOTSPOT     = 'X'.
      APPEND I_FLDCAT.
      CLEAR I_FLDCAT.
      I_FLDCAT-FIELDNAME   = 'SPART'. "FIELD FOR WHICH CATALOG ID FILLED
      I_FLDCAT-TABNAME     = 'IT_SO1'.
      I_FLDCAT-SELTEXT_M   = 'DIVISION'.
      I_FLDCAT-COL_POS     = 4.        " POSITION OF THE COLUMN.
      I_FLDCAT-OUTPUTLEN   = 20.       " SET THE OUTPUT LENGTH.
      I_FLDCAT-EMPHASIZE   = 'X'.      " COLOR OF THIS COLUMN.
      I_FLDCAT-KEY         = 'X'.
      " SO THAT THIS FIELD IS NOT SCROLLABLE AND HIDDABLE.
    I_FLDCAT-HOTSPOT     = 'X'.
      APPEND I_FLDCAT.
      CLEAR I_FLDCAT.
      I_FLDCAT-FIELDNAME   = 'KUNNR'. "FIELD FOR WHICH CATALOG ID FILLED
      I_FLDCAT-TABNAME     = 'IT_SO1'.
      I_FLDCAT-SELTEXT_M   = 'SOLD TO PARTY'.
      I_FLDCAT-COL_POS     = 5.        " POSITION OF THE COLUMN.
      I_FLDCAT-OUTPUTLEN   = 20.       " SET THE OUTPUT LENGTH.
      I_FLDCAT-EMPHASIZE   = 'X'.      " COLOR OF THIS COLUMN.
      I_FLDCAT-KEY         = 'X'.
      " SO THAT THIS FIELD IS NOT SCROLLABLE AND HIDDABLE.
    I_FLDCAT-HOTSPOT     = 'X'.
      APPEND I_FLDCAT.
      CLEAR I_FLDCAT.
      I_FLDCAT-FIELDNAME   = 'POSNR'. "FIELD FOR WHICH CATALOG ID FILLED
      I_FLDCAT-TABNAME     = 'IT_SO1'.
      I_FLDCAT-SELTEXT_M   = 'SALES DOC. ITEM'.
      I_FLDCAT-COL_POS     = 6.        " POSITION OF THE COLUMN.
      I_FLDCAT-OUTPUTLEN   = 20.       " SET THE OUTPUT LENGTH.
      I_FLDCAT-EMPHASIZE   = 'X'.      " COLOR OF THIS COLUMN.
      I_FLDCAT-KEY         = 'X'.
      " SO THAT THIS FIELD IS NOT SCROLLABLE AND HIDDABLE.
    I_FLDCAT-HOTSPOT     = 'X'.
      APPEND I_FLDCAT.
      CLEAR I_FLDCAT.
      I_FLDCAT-FIELDNAME   = 'MATNR'. "FIELD FOR WHICH CATALOG ID FILLED
      I_FLDCAT-TABNAME     = 'IT_SO1'.
      I_FLDCAT-SELTEXT_M   = 'MATERIAL NO.'.
      I_FLDCAT-COL_POS     = 7.        " POSITION OF THE COLUMN.
      I_FLDCAT-OUTPUTLEN   = 20.       " SET THE OUTPUT LENGTH.
      I_FLDCAT-EMPHASIZE   = 'X'.      " COLOR OF THIS COLUMN.
      I_FLDCAT-KEY         = 'X'.
      " SO THAT THIS FIELD IS NOT SCROLLABLE AND HIDDABLE.
    I_FLDCAT-HOTSPOT     = 'X'.
      APPEND I_FLDCAT.
      CLEAR I_FLDCAT.
      I_FLDCAT-FIELDNAME   = 'MAKTX'. "FIELD FOR WHICH CATALOG ID FILLED
      I_FLDCAT-TABNAME     = 'IT_SO1'.
      I_FLDCAT-SELTEXT_M   = 'DESCRIPTION'.
      I_FLDCAT-COL_POS     = 8.        " POSITION OF THE COLUMN.
      I_FLDCAT-OUTPUTLEN   = 20.       " SET THE OUTPUT LENGTH.
      I_FLDCAT-EMPHASIZE   = 'X'.      " COLOR OF THIS COLUMN.
      I_FLDCAT-KEY         = 'X'.
      " SO THAT THIS FIELD IS NOT SCROLLABLE AND HIDDABLE.
    I_FLDCAT-HOTSPOT     = 'X'.
      APPEND I_FLDCAT.
      CLEAR I_FLDCAT.
      I_FLDCAT-FIELDNAME   = 'KWMENG'. "FIELD FOR WHICH CATALOG ID FILLED
      I_FLDCAT-TABNAME     = 'IT_SO1'.
      I_FLDCAT-SELTEXT_M   = 'QUANTITY'.
      I_FLDCAT-COL_POS     = 9.        " POSITION OF THE COLUMN.
      I_FLDCAT-OUTPUTLEN   = 20.       " SET THE OUTPUT LENGTH.
      I_FLDCAT-EMPHASIZE   = 'X'.      " COLOR OF THIS COLUMN.
      I_FLDCAT-KEY         = 'X'.
      " SO THAT THIS FIELD IS NOT SCROLLABLE AND HIDDABLE.
    I_FLDCAT-HOTSPOT     = 'X'.
      APPEND I_FLDCAT.
      CLEAR I_FLDCAT.
      I_FLDCAT-FIELDNAME   = 'VRKME'. "FIELD FOR WHICH CATALOG ID FILLED
      I_FLDCAT-TABNAME     = 'IT_SO1'.
      I_FLDCAT-SELTEXT_M   = 'SALES UNIT'.
      I_FLDCAT-COL_POS     = 10.        " POSITION OF THE COLUMN.
      I_FLDCAT-OUTPUTLEN   = 20.       " SET THE OUTPUT LENGTH.
      I_FLDCAT-EMPHASIZE   = 'X'.      " COLOR OF THIS COLUMN.
      I_FLDCAT-KEY         = 'X'.
      " SO THAT THIS FIELD IS NOT SCROLLABLE AND HIDDABLE.
    I_FLDCAT-HOTSPOT     = 'X'.
      APPEND I_FLDCAT.
    ENDFORM.                    " FLD_CAT
    *&      Form  T_LAYOUT
          text
         -->P_I_LAYOUT  text
    FORM T_LAYOUT  USING    P_I_LAYOUT TYPE SLIS_LAYOUT_ALV .
    P_I_LAYOUT-ZEBRA = 'X'.
    P_I_LAYOUT-KEY_HOTSPOT = 'X'.
    P_I_LAYOUT-F2CODE            = 'DISP'.
    ENDFORM.                    " T_LAYOUT
    *&      Form  I_SORT
          text
         -->P_I_SORT  text
    FORM I_SORT  USING    P_I_SORT TYPE SLIS_T_SORTINFO_ALV .
      DATA: I_SORT TYPE SLIS_SORTINFO_ALV .
      REFRESH P_I_SORT .
      CLEAR I_SORT.
      I_sort-spos = 1.
      I_sort-fieldname = 'VBELN'.
      I_sort-up = 'X'.
      I_sort-subtot = 'X'.
      I_sort-group = '*'.
      APPEND I_SORT TO P_I_SORT.
    ENDFORM.                    " I_SORT
    *&      Form  CALL_ALV
          text
    -->  p1        text
    <--  p2        text
    FORM   CALL_ALV .
    CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
      EXPORTING
        IS_LAYOUT                        = T_LAYOUT
        IT_FIELDCAT                      = I_FLDCAT[]
        I_TABNAME                        = 'IT_SO1'
        IT_EVENTS                        = T_EVENT
       IT_SORT                          = I_SORT
       I_TEXT                           = TEXT-202
      TABLES
        T_OUTTAB                         = IT_SO1
    EXCEPTIONS
      PROGRAM_ERROR                    = 1
      MAXIMUM_OF_APPENDS_REACHED       = 2
      OTHERS                           = 3
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    REFRESH T_EVENT .
    CLEAR T_EVENT .
    ENDFORM.                    " CALL_ALV
    *&      Form  FLD_CAT2
          text
         -->P_I_FLDCAT2[]  text
    FORM FLD_CAT2  USING    P_I_FLDCAT2 TYPE SLIS_T_FIELDCAT_ALV.
      CLEAR I_FLDCAT2.
      I_FLDCAT2-FIELDNAME   = 'VBELN'. "FIELD FOR WHICH CATALOG ID FILLED
      I_FLDCAT2-SELTEXT_M   = 'DELIVERY NO.'.
      I_FLDCAT2-COL_POS     = 1.        " POSITION OF THE COLUMN.
      I_FLDCAT2-OUTPUTLEN   = 20.       " SET THE OUTPUT LENGTH.
      I_FLDCAT2-EMPHASIZE   = 'X'.      " COLOR OF THIS COLUMN.
      I_FLDCAT2-KEY         = 'X'.      " SO THAT THIS FIELD IS NOT
      "SCROLLABLE AND HIDDABLE.
      I_FLDCAT2-HOTSPOT     = 'X'.
      APPEND I_FLDCAT2.
      CLEAR I_FLDCAT2.
      I_FLDCAT2-FIELDNAME   = 'POSNR'. "FIELD FOR WHICH CATALOG ID FILLED
      I_FLDCAT2-SELTEXT_M   = 'DELIVERY ITEM'.
      I_FLDCAT2-COL_POS     = 2.        " POSITION OF THE COLUMN.
      I_FLDCAT2-OUTPUTLEN   = 20.       " SET THE OUTPUT LENGTH.
      I_FLDCAT2-EMPHASIZE   = 'X'.      " COLOR OF THIS COLUMN.
      I_FLDCAT2-KEY         = 'X'.      " SO THAT THIS FIELD IS NOT
      "SCROLLABLE AND HIDDABLE.
    I_FLDCAT-HOTSPOT     = 'X'.
      APPEND I_FLDCAT2.
      CLEAR I_FLDCAT2.
      I_FLDCAT2-FIELDNAME   = 'MATNR'. "FIELD FOR WHICH CATALOG ID FILLED
      I_FLDCAT2-SELTEXT_M   = 'MATERIAL NO.'.
      I_FLDCAT2-COL_POS     = 3.        " POSITION OF THE COLUMN.
      I_FLDCAT2-OUTPUTLEN   = 20.       " SET THE OUTPUT LENGTH.
      I_FLDCAT2-EMPHASIZE   = 'X'.      " COLOR OF THIS COLUMN.
      I_FLDCAT2-KEY         = 'X'.      " SO THAT THIS FIELD IS NOT
      "SCROLLABLE AND HIDDABLE.
    I_FLDCAT-HOTSPOT     = 'X'.
      APPEND I_FLDCAT2.
      CLEAR I_FLDCAT2.
      I_FLDCAT2-FIELDNAME   = 'WERKS'. "FIELD FOR WHICH CATALOG ID FILLED
      I_FLDCAT2-SELTEXT_M   = 'PLANT.'.
      I_FLDCAT2-COL_POS     = 4.        " POSITION OF THE COLUMN.
      I_FLDCAT2-OUTPUTLEN   = 20.       " SET THE OUTPUT LENGTH.
      I_FLDCAT2-EMPHASIZE   = 'X'.      " COLOR OF THIS COLUMN.
      I_FLDCAT2-KEY         = 'X'.      " SO THAT THIS FIELD IS NOT
      "SCROLLABLE AND HIDDABLE.
    I_FLDCAT-HOTSPOT     = 'X'.
      APPEND I_FLDCAT2.
      CLEAR I_FLDCAT2.
      I_FLDCAT2-FIELDNAME   = 'LGORT'. "FIELD FOR WHICH CATALOG ID FILLED
      I_FLDCAT2-SELTEXT_M   = 'ST. LOCATION'.
      I_FLDCAT2-COL_POS     = 5.        " POSITION OF THE COLUMN.
      I_FLDCAT2-OUTPUTLEN   = 20.       " SET THE OUTPUT LENGTH.
      I_FLDCAT2-EMPHASIZE   = 'X'.      " COLOR OF THIS COLUMN.
      I_FLDCAT2-KEY         = 'X'.      " SO THAT THIS FIELD IS NOT
      "SCROLLABLE AND HIDDABLE.
    I_FLDCAT-HOTSPOT     = 'X'.
      APPEND I_FLDCAT2.
      CLEAR I_FLDCAT2.
      I_FLDCAT2-FIELDNAME   = 'CHARG'. "FIELD FOR WHICH CATALOG ID FILLED
      I_FLDCAT2-SELTEXT_M   = 'BATCH NO.'.
      I_FLDCAT2-COL_POS     = 6.        " POSITION OF THE COLUMN.
      I_FLDCAT2-OUTPUTLEN   = 20.       " SET THE OUTPUT LENGTH.
      I_FLDCAT2-EMPHASIZE   = 'X'.      " COLOR OF THIS COLUMN.
      I_FLDCAT2-KEY         = 'X'.      " SO THAT THIS FIELD IS NOT
      "SCROLLABLE AND HIDDABLE.
    I_FLDCAT-HOTSPOT     = 'X'.
      APPEND I_FLDCAT2.
      CLEAR I_FLDCAT2.
      I_FLDCAT2-FIELDNAME   = 'LFIMG'. "FIELD FOR WHICH CATALOG ID FILLED
      I_FLDCAT2-SELTEXT_M   = 'ACT. DEL. QTY.'.
      I_FLDCAT2-COL_POS     = 7.        " POSITION OF THE COLUMN.
      I_FLDCAT2-OUTPUTLEN   = 20.       " SET THE OUTPUT LENGTH.
      I_FLDCAT2-EMPHASIZE   = 'X'.      " COLOR OF THIS COLUMN.
      I_FLDCAT2-KEY         = 'X'.      " SO THAT THIS FIELD IS NOT
      "SCROLLABLE AND HIDDABLE.
    I_FLDCAT-HOTSPOT     = 'X'.
      APPEND I_FLDCAT2.
      CLEAR I_FLDCAT2.
      I_FLDCAT2-FIELDNAME   = 'VRKME'. "FIELD FOR WHICH CATALOG ID FILLED
      I_FLDCAT2-SELTEXT_M   = 'SALES UNIT.'.
      I_FLDCAT2-COL_POS     = 8.        " POSITION OF THE COLUMN.
      I_FLDCAT2-OUTPUTLEN   = 20.       " SET THE OUTPUT LENGTH.
      I_FLDCAT2-EMPHASIZE   = 'X'.      " COLOR OF THIS COLUMN.
      I_FLDCAT2-KEY         = 'X'.      " SO THAT THIS FIELD IS NOT
      "SCROLLABLE AND HIDDABLE.
    I_FLDCAT-HOTSPOT     = 'X'.
      APPEND I_FLDCAT2.
    ENDFORM.                    " FLD_CAT2
    *&      Form  I_LAYOUT
          text
         -->P_I_LAYOUT  text
    FORM I_LAYOUT  USING    P_I_LAYOUT TYPE SLIS_LAYOUT_ALV .
    P_I_LAYOUT-ZEBRA = 'X'.
    P_I_LAYOUT-KEY_HOTSPOT = 'X'.
    P_I_LAYOUT-F2CODE            = 'DISP'.
    ENDFORM.                    " I_LAYOUT
    *&      Form  CALL_ALV1
          text
    -->  p1        text
    <--  p2        text
    FORM CALL_ALV1 .
    CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
      EXPORTING
        IS_LAYOUT                        = I_LAYOUT
        IT_FIELDCAT                      = I_FLDCAT2[]
        I_TABNAME                        = 'IT_DEL_FUL'
        IT_EVENTS                        = T_EVENT
      IT_SORT                          =
      I_TEXT                           = ' '
      TABLES
        T_OUTTAB                         = IT_DEL_FUL
    EXCEPTIONS
      PROGRAM_ERROR                    = 1
      MAXIMUM_OF_APPENDS_REACHED       = 2
      OTHERS                           = 3
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    ENDFORM.                    " CALL_ALV1
    *&      Form  BLOCK-DISPLAY
          text
    -->  p1        text
    <--  p2        text
    FORM BLOCK-DISPLAY .
    CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'
    EXPORTING
      I_INTERFACE_CHECK             = ' '
      IS_PRINT                      =
      I_SCREEN_START_COLUMN         = 0
      I_SCREEN_START_LINE           = 0
      I_SCREEN_END_COLUMN           = 0
      I_SCREEN_END_LINE             = 0
    IMPORTING
      E_EXIT_CAUSED_BY_CALLER       =
      ES_EXIT_CAUSED_BY_USER        =
    EXCEPTIONS
       PROGRAM_ERROR                 = 1
       OTHERS                        = 2
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
             WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    ENDFORM.                    " BLOCK-DISPLAY
    *&      Form  EVENT
          text
         -->P_T_EVENT  text
    FORM EVENT  USING    P_T_EVENT type slis_t_event.
    x_event-form = 'TOP_OF_LIST1'.
    x_event-name = slis_ev_top_of_list.
    append x_event to p_t_event.
    clear x_event .
    ENDFORM.                    " EVENT
    *&      Form  EVENT1
          text
         -->P_T_EVENT  text
    FORM EVENT1  USING    P_T_EVENT type slis_t_event.
    x_event-form = 'TOP_OF_LIST2'.
    x_event-name = slis_ev_top_of_list.
    append x_event to p_t_event.
    ENDFORM.                    " EVENT1
    FORM TOP_OF_LIST1.
    SKIP 1.
    WRITE: 10 'BLOCK LIST 1 FOR SALES ORDER DETAILS ' COLOR 4 .
    skip 1.
    format reset.
    endform.
    FORM TOP_OF_LIST2.
    skip 1.
    WRITE: 10 'BLOCK LIST 2 FOR DELIVERY ORDER DETAILS ' COLOR 4 .
    skip 1.
    format reset.
    endform.
    reward if useful.

  • Do editable a column of a ALV (object oriented programming)

    Hello,
    How I can do editable a column of a ALV (object oriented programming) ??
    What field of a fieldcatalog let it ??
    Thanks.
      wa_fieldcatalog-fieldname = 'NUM_KGS'.
      wa_fieldcatalog-seltext = 'Kg'.
      wa_fieldcatalog-coltext = 'Kg'.
      wa_fieldcatalog-just = 'L'.
      wa_fieldcatalog-tabname = 'IT_DATOS'.
       wa_fieldcatalog- ?????????

    In the program add the following field
    wa_fieldcatalog-EDIT = 'X'.
    append wa_fieldcatalog.
    you will get the column editable

  • ALV : building FIELDCATALOG in ALV object

    Hello,
    Could somebody give me a method for building the fieldcatalog from a static internal table in ALV object.
    Thanks for help,
    Bertrand

    Hi,
    I am sendin the sample code for alv grid display.
    REPORT  YMS_EXCISE MESSAGE-ID E4 NO STANDARD PAGE HEADING LINE-SIZE 350.                              .
    TABLES : J_1IEXCHDR,      " header table
             J_1IEXCDTL,      " item table
             J_1IPART2,       " Excise Part II details
             LFA1,            " vendor master table
             J_1IMOVEND,      " vendor excise details table
             MSEG,            " Document Segment: Material
             MKPF,            " Header: Material Document
             DD07T,           " domain text table
             T001W.           " Plant and Branch Details
    DATA : BEGIN OF IT_CHDR OCCURS 100,
           DOCNO LIKE J_1IEXCHDR-DOCNO,
           DOCYR LIKE J_1IEXCHDR-DOCYR,
           EXNUM LIKE J_1IEXCHDR-EXNUM,
           EXDAT LIKE J_1IEXCHDR-EXDAT,
           WERKS LIKE J_1IEXCHDR-WERKS,
           EXBED LIKE J_1IEXCHDR-EXBED,
           EXCCD LIKE J_1IEXCHDR-EXCCD,
           ECS LIKE J_1IEXCHDR-ECS,
           END OF IT_CHDR.
    DATA : BEGIN OF IT_CDTL OCCURS 100,
           DOCYR LIKE J_1IEXCDTL-DOCYR,
           DOCNO LIKE J_1IEXCDTL-DOCNO,
           EXNUM LIKE J_1IEXCDTL-EXNUM,
           EXDAT LIKE J_1IEXCDTL-EXDAT,
           LIFNR LIKE J_1IEXCDTL-LIFNR,
           MATNR LIKE J_1IEXCDTL-MATNR,
           MAKTX LIKE J_1IEXCDTL-MAKTX,
           CHAPID LIKE J_1IEXCDTL-CHAPID,
           EXBAS LIKE J_1IEXCDTL-EXBAS,
           EXBED LIKE J_1IEXCDTL-EXBED,
           ECS   LIKE J_1IEXCDTL-ECS,
           MENGE LIKE J_1IEXCDTL-MENGE,
           MEINS LIKE J_1IEXCDTL-MEINS,
           RDOC2 LIKE J_1IEXCDTL-RDOC2,
           END OF IT_CDTL.
    DATA TEXT(10).
    DATA : BEGIN OF IT_OUT OCCURS 0,
           SERIALNO LIKE J_1IPART2-SERIALNO,
           TEXT1 LIKE TEXT,
           EXNUM LIKE J_1IEXCDTL-EXNUM,
           EXDAT LIKE J_1IEXCDTL-EXDAT,
           NAME LIKE LFA1-NAME1,
           DDTEXT LIKE DD07T-DDTEXT,
           EXCCD LIKE J_1IEXCHDR-EXCCD,
           BUDAT LIKE MKPF-BUDAT,
           EXBAS LIKE IT_CDTL-EXBAS,
           EXBED LIKE IT_CDTL-EXBED,
           ECS   LIKE IT_CDTL-ECS,
           MATNR LIKE IT_CDTL-MATNR,
           MAKTX LIKE IT_CDTL-MAKTX,
           CHAPID LIKE IT_CDTL-CHAPID,
           MENGE LIKE IT_CDTL-MENGE,
           MEINS LIKE IT_CDTL-MEINS,
           DEL_IND(1),
           END OF IT_OUT.
    DATA IT_PART2 LIKE J_1IPART2 OCCURS 0 WITH HEADER LINE.
    DATA S_NO(4) .
    DATA DB_CNT LIKE SY-TABIX.
    DATA EBELN_T LIKE MSEG-EBELN .
    TYPE-POOLS : SLIS.
    DATA : AFIELD TYPE SLIS_FIELDCAT_ALV.
    DATA : LIST_HEADER TYPE SLIS_T_LISTHEADER,
           FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
           LS_FTCAT TYPE LVC_S_FCAT,
           SORTCAT TYPE SLIS_T_SORTINFO_ALV,
           SORTCAT_LN  LIKE LINE OF SORTCAT,
           G_REPID LIKE SY-REPID,
           G_BACK_GROUND(70),  "like bapibds01-objkey,
           GS_VARIANT LIKE DISVARIANT,
           G_SAVE ,
           GT_EVENTS TYPE SLIS_T_EVENT,
           ALV_EVENT TYPE SLIS_ALV_EVENT,
           EVENTCAT             TYPE SLIS_T_EVENT,
           EVENTCAT_LN          LIKE LINE OF EVENTCAT,
           LAYOUT_IN            TYPE SLIS_LAYOUT_ALV,
           LAYOUT_IN1           TYPE SLIS_LAYOUT_ALV.
    CONSTANTS : GC_FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE
    'TOP_OF_PAGE',
                GC_FORMNAME_USER_COMMAND TYPE SLIS_FORMNAME VALUE
    'USER_COMMAND',
                GC_FORMNAME_BEFORE_OUTPUT TYPE SLIS_FORMNAME VALUE
    'BEFORE_OUTPUT'.
      ALV_EVENT TYPE SLIS_ALV_EVENT,
    DATA EX_NO LIKE IT_CHDR-EXNUM VALUE 0.
    DATA REGTYP_1 LIKE J_1IPART2-REGTYP.
    SELECTION-SCREEN BEGIN OF BLOCK B WITH FRAME.
    PARAMETERS  WERKS TYPE J_1IEXCHDR-WERKS.
    SELECT-OPTIONS : BUDAT FOR J_1IEXCHDR-EXDAT.
    PARAMETERS : R1 RADIOBUTTON GROUP GRP DEFAULT 'X',
                 R2 RADIOBUTTON GROUP GRP.
    SELECTION-SCREEN END OF BLOCK B.
    INITIALIZATION.
      G_REPID = SY-REPID.
      G_SAVE = 'A'.
    PERFORM BUILD_EVENT USING GT_EVENTS[].
      PERFORM ALV_EVENT_INIT.
    AT SELECTION-SCREEN.
      REFRESH LIST_HEADER.
      PERFORM TOP_OF_PAGE_LIST_HEADER USING LIST_HEADER.
    START-OF-SELECTION.
    PERFORM ALV_EVENT_INIT.
      G_REPID = SY-REPID.
      G_BACK_GROUND = ' ' .
      IF R1 = 'X'.
        CLEAR R2. CLEAR : REGTYP_1.
        REGTYP_1 = 'A'.
         set titlebar 'BALAJI' with DB_CNT.
      ELSEIF R2 = 'X'.
        CLEAR R1.CLEAR : REGTYP_1.
        REGTYP_1 = 'C'.
         set titlebar 'BALAJI1' with DB_CNT.
      ENDIF.
      SELECT * FROM J_1IPART2
                       INTO CORRESPONDING FIELDS OF TABLE IT_PART2
                       WHERE REGTYP = REGTYP_1 AND
                             TRNTYP = 'GRPO' AND
                             BUDAT IN BUDAT.
                              DOCYR = IT_CDTL-DOCYR AND
                              DOCNO = IT_CDTL-DOCNO.
      LOOP AT IT_PART2.
        SELECT SINGLE * FROM J_1IEXCHDR
                  INTO CORRESPONDING FIELDS OF IT_CHDR
                          WHERE  TRNTYP = 'GRPO' AND
                          DOCYR = IT_PART2-DOCYR AND
                          DOCNO = IT_PART2-DOCNO AND
                          WERKS = WERKS AND
                          exdat IN BUDAT.
                       ORDER BY EXDAT.
        IF SY-SUBRC = 0.
          APPEND IT_CHDR.
        ELSE.
          CONTINUE.
        ENDIF.
    IF SY-SUBRC <> 0.
       MESSAGE E084.
    ENDIF.
      ENDLOOP.
      LOOP AT IT_CHDR.
        SELECT * FROM J_1IEXCDTL
                  INTO CORRESPONDING FIELDS OF IT_CDTL
                FOR ALL ENTRIES IN IT_CHDR
                         WHERE
                          TRNTYP = 'GRPO' AND
                          DOCNO  = IT_CHDR-DOCNO AND
                          DOCYR  = IT_CHDR-DOCYR AND
                          EXNUM  = IT_CHDR-EXNUM AND
                          EXDAT  = IT_CHDR-EXDAT AND
                          WERKS  = IT_CHDR-WERKS.
          IF SY-SUBRC = 0.
            APPEND IT_CDTL.
          ELSE.
            CONTINUE.
          ENDIF.
        ENDSELECT.
      ENDLOOP.
      LOOP AT IT_CDTL.
        CLEAR TEXT.
        DB_CNT = DB_CNT + 1.
        READ TABLE IT_CHDR WITH KEY EXNUM = IT_CDTL-EXNUM.
        READ TABLE IT_PART2 WITH KEY DOCNO = IT_CDTL-DOCNO .
        IT_OUT-SERIALNO = IT_PART2-SERIALNO.
        SELECT SINGLE NAME1 FROM LFA1
                        INTO IT_OUT-NAME
                        WHERE LIFNR = IT_CDTL-LIFNR.
        SELECT SINGLE * FROM LFA1
                          WHERE LIFNR = IT_CDTL-LIFNR.
        IF LFA1-LAND1 EQ 'IN'.
          TEXT = 'INVOICE'.
          IT_OUT-TEXT1 = TEXT.
        ELSE.
          TEXT = 'BOE'.
          IT_OUT-TEXT1 = TEXT.
        ENDIF.
        SELECT SINGLE * FROM J_1IMOVEND
                        WHERE LIFNR = IT_CDTL-LIFNR.
        SELECT SINGLE * FROM DD07T
                       INTO IT_OUT-DDTEXT
                        WHERE DOMNAME = 'J_1IVTYP' AND
                              DDLANGUAGE = 'EN' AND
                              DOMVALUE_L = J_1IMOVEND-J_1IVTYP.
      IF DD07T-DDTEXT = 'First Stage Dealer of indigenous excisable goods'
    OR
        DD07T-DDTEXT = 'Second Stage Dealer of indigenous excisablegoods'.
          DD07T-DDTEXT = 'Dealer'.
        ENDIF.
        IT_OUT-DDTEXT = DD07T-DDTEXT.
       ELSEIF DD07T-DDTEXT = 'Second Stage Dealer of indigenous excisable
    *goods'.
          DD07T-DDTEXT =
        CLEAR EBELN_T.
        SELECT SINGLE LFBNR FROM MSEG
                            INTO EBELN_T
                            WHERE MBLNR = IT_CDTL-RDOC2 .
        SELECT SINGLE * FROM MSEG
                          WHERE BWART = '106' AND
                                LFBNR = EBELN_T ."and
                               ebeln = ebeln_t.
        IF SY-SUBRC = 0.
          IT_OUT-DEL_IND = 'X'.
        ELSE.
          IT_OUT-DEL_IND = ' '.
        ENDIF.
        SELECT SINGLE BUDAT FROM MKPF
                          INTO IT_OUT-BUDAT
                          WHERE MBLNR = EBELN_T  ."MSEG-LFBNR.
        IT_OUT-EXNUM = IT_CDTL-EXNUM.
        IT_OUT-EXDAT = IT_CDTL-EXDAT.
        IT_OUT-EXCCD = IT_CHDR-EXCCD.
        IT_OUT-EXBAS = IT_CDTL-EXBAS.
        IT_OUT-EXBED = IT_CDTL-EXBED.
        IT_OUT-ECS   = IT_CDTL-ECS.
        IT_OUT-MATNR = IT_CDTL-MATNR.
        IT_OUT-MAKTX = IT_CDTL-MAKTX.
        IT_OUT-CHAPID = IT_CDTL-CHAPID.
        IT_OUT-MENGE = IT_CDTL-MENGE.
        IT_OUT-MEINS = IT_CDTL-MEINS.
        APPEND IT_OUT.
       EX_NO = IT_CDTL-EXNUM.
      ENDLOOP.
    Title Portion
      IF REGTYP_1 = 'A'.
        SET TITLEBAR 'BALAJI' WITH DB_CNT.
      ELSEIF REGTYP_1 = 'C'.
        SET TITLEBAR 'BALAJI1' WITH DB_CNT.
      ENDIF.
      AFIELD-COL_POS = 1.
      AFIELD-FIELDNAME = 'SERIALNO'.
      AFIELD-SELTEXT_L = 'INPUTS'.
      AFIELD-JUST = 'L'.
      APPEND AFIELD TO FIELDCAT.
      AFIELD-COL_POS = 2.
      AFIELD-FIELDNAME = 'TEXT1'.
      AFIELD-SELTEXT_L = 'TYPE OF DOC'.
      AFIELD-JUST = 'L'.
      AFIELD-DECIMALS_OUT = '0'.
      AFIELD-NO_ZERO = 'X'.
      APPEND AFIELD TO FIELDCAT.
      AFIELD-COL_POS = 3.
      AFIELD-FIELDNAME = 'EXNUM'.
      AFIELD-SELTEXT_L = 'DOC.NO'.
      AFIELD-JUST = 'L'.
      APPEND AFIELD TO FIELDCAT.
      AFIELD-COL_POS = 4.
      AFIELD-FIELDNAME = 'EXDAT'.
      AFIELD-SELTEXT_L = 'DOC.DATE'.
      AFIELD-JUST = 'C'.
      APPEND AFIELD TO FIELDCAT.
      AFIELD-COL_POS = 5.
      AFIELD-FIELDNAME = 'NAME'.
      AFIELD-SELTEXT_L = 'NAME OF THE SUPPLIER'.
      AFIELD-NO_ZERO = 'X'.
      AFIELD-JUST = 'L'.
      APPEND AFIELD TO FIELDCAT.
      AFIELD-COL_POS = 6.
      AFIELD-FIELDNAME = 'DDTEXT'.
      AFIELD-SELTEXT_L = 'TYPE-OF-SUPPLIER'.
      AFIELD-JUST = 'L'.
      APPEND AFIELD TO FIELDCAT.
      AFIELD-COL_POS = 7.
      AFIELD-FIELDNAME = 'EXCCD'.
      AFIELD-SELTEXT_L = 'ECC OF THE SUPPLIER'.
      AFIELD-NO_ZERO = 'X'.
      AFIELD-JUST = 'L'.
      APPEND AFIELD TO FIELDCAT.
      AFIELD-COL_POS = 8.
      AFIELD-FIELDNAME = 'BUDAT'.
      AFIELD-SELTEXT_L = 'INPUT RECV DATE'.
      AFIELD-JUST = 'C'.
      APPEND AFIELD TO FIELDCAT.
      AFIELD-COL_POS = 9.
      AFIELD-FIELDNAME = 'EXBAS'.
      AFIELD-SELTEXT_L = 'ASSESSABLE-VALUE'.
      AFIELD-DO_SUM             = 'X'.
      AFIELD-JUST = 'R'.
      AFIELD-DECIMALS_OUT = '2'.
      APPEND AFIELD TO FIELDCAT.
      AFIELD-COL_POS = 10.
      AFIELD-FIELDNAME = 'EXBED'.
      AFIELD-SELTEXT_L = 'DET OF CREDIT TAKEN CENVAT'.
      AFIELD-JUST = 'R'.
      APPEND AFIELD TO FIELDCAT.
      AFIELD-COL_POS = 11.
      AFIELD-FIELDNAME = 'ECS'.
      AFIELD-SELTEXT_L = 'DET OF CREDIT TAKEN E-CESS'.
      AFIELD-JUST = 'R'.
      APPEND AFIELD TO FIELDCAT.
      AFIELD-COL_POS = 12.
      AFIELD-FIELDNAME = 'MATNR'.
      AFIELD-SELTEXT_L = 'MATERIAL-CODE'.
      AFIELD-JUST = 'L'.
      APPEND AFIELD TO FIELDCAT.
      AFIELD-COL_POS = 13.
      AFIELD-FIELDNAME = 'MAKTX'.
      AFIELD-SELTEXT_L = 'DESCRIPTION'.
      AFIELD-JUST = 'L'.
      APPEND AFIELD TO FIELDCAT.
      AFIELD-COL_POS = 14.
      AFIELD-FIELDNAME = 'CHAPID'.
      AFIELD-SELTEXT_L = 'TARIFF-ID'.
      AFIELD-JUST = 'L'.
      APPEND AFIELD TO FIELDCAT.
      AFIELD-COL_POS = 15.
      AFIELD-FIELDNAME = 'MENGE'.
      AFIELD-SELTEXT_L = 'QUANTITY'.
      AFIELD-JUST = 'R'.
      AFIELD-DO_SUM             = ' '.
      APPEND AFIELD TO FIELDCAT.
      AFIELD-COL_POS = 16.
      AFIELD-FIELDNAME = 'MEINS'.
      AFIELD-SELTEXT_L = 'UOM'.
      AFIELD-JUST = 'C'.
      APPEND AFIELD TO FIELDCAT.
      AFIELD-COL_POS = 17.
      AFIELD-FIELDNAME = 'DEL_IND'.
      AFIELD-SELTEXT_L = 'Deleted'.
      AFIELD-JUST = 'C'.
      APPEND AFIELD TO FIELDCAT.
    * LAYOUT FOR ZEBRA CATLOG
      LAYOUT_IN-COLWIDTH_OPTIMIZE = 'X'.
      LAYOUT_IN-ZEBRA             = 'X'.
      LAYOUT_IN-GET_SELINFOS      = 'X'.
      LAYOUT_IN-CONFIRMATION_PROMPT = 'X'.
      LAYOUT_IN-DETAIL_POPUP = 'X' .
    SORTCAT-decimals     = '0'.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          I_CALLBACK_PROGRAM      = G_REPID
          I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
          I_SAVE                  = G_SAVE
          IS_VARIANT              = GS_VARIANT
          IT_FIELDCAT             = FIELDCAT
          IT_SORT                 = SORTCAT
          IS_LAYOUT               = LAYOUT_IN
          IT_EVENTS               = EVENTCAT
         I_BACKGROUND_ID         = g_back_ground
        TABLES
          T_OUTTAB                = IT_OUT.
    *&      Form  TOP_OF_PAGE_LIST_HEADER
          text
         -->LIST_HEADERtext
    FORM TOP_OF_PAGE_LIST_HEADER USING LIST_HEADER TYPE SLIS_T_LISTHEADER.
      DATA : HLINE TYPE SLIS_LISTHEADER,
             TEXT(60) TYPE C.
      CLEAR : HLINE,TEXT.
      HLINE-TYP = 'H'.
    WRITE 'ROOTS INDUSTRIES LTD' TO TEXT.
      HLINE-INFO = TEXT.
      APPEND HLINE TO LIST_HEADER.
      SELECT SINGLE * FROM T001W WHERE WERKS = WERKS.
      CLEAR : HLINE,TEXT.
      HLINE-TYP = 'H'.
      WRITE 'PLANT :' TO TEXT.
      WRITE WERKS TO TEXT+8.
      HLINE-INFO = TEXT.
      APPEND HLINE TO LIST_HEADER.
      CLEAR : HLINE,TEXT.
      HLINE-TYP = 'H'.
      WRITE T001W-NAME1 TO TEXT.
      HLINE-INFO = TEXT.
      APPEND HLINE TO LIST_HEADER.
      CLEAR : HLINE,TEXT.
      HLINE-TYP = 'H'.
      WRITE T001W-STRAS TO TEXT.
      HLINE-INFO = TEXT.
      APPEND HLINE TO LIST_HEADER.
      CLEAR : HLINE,TEXT.
      HLINE-TYP = 'H'.
      WRITE T001W-ORT01 TO TEXT.
      HLINE-INFO = TEXT.
      APPEND HLINE TO LIST_HEADER.
      CLEAR : HLINE,TEXT.
      HLINE-TYP = 'H'.
      WRITE 'DATE :' TO TEXT.
      WRITE BUDAT-LOW TO TEXT+7.
      IF BUDAT-HIGH NE ''.
        WRITE 'TO' TO TEXT+18.
        WRITE BUDAT-HIGH TO TEXT+22.
      ENDIF.
      HLINE-INFO = TEXT.
      APPEND HLINE TO LIST_HEADER.
    ENDFORM.                    "TOP_OF_PAGE_LIST_HEADER
    *&      Form  ALV_EVENT_INIT
          text
    FORM ALV_EVENT_INIT .
      CLEAR ALV_EVENT.
      ALV_EVENT-NAME = SLIS_EV_TOP_OF_PAGE.
      ALV_EVENT-FORM = 'ALV_TOP_OF_PAGE'.
      APPEND ALV_EVENT TO EVENTCAT.
      CLEAR ALV_EVENT.
      ALV_EVENT-NAME = SLIS_EV_TOP_OF_LIST.
      ALV_EVENT-FORM = 'ALV_TOP_OF_LIST'.
      APPEND ALV_EVENT TO EVENTCAT.
       CLEAR ALV_EVENT.
       ALV_EVENT-NAME = SLIS_EV_END_OF_LIST.
       ALV_EVENT-FORM = 'ALV_END_OF_LIST'.
       APPEND ALV_EVENT TO GT_EVENTS.
       CLEAR ALV_EVENT.
       ALV_EVENT-NAME = SLIS_EV_END_OF_PAGE.
       ALV_EVENT-FORM = 'ALV_END_OF_PAGE'.
       APPEND ALV_EVENT TO GT_EVENTS.
    ENDFORM.                    "ALV_EVENT_INIT
    *&      Form  ALV_TOP_OF_PAGE
          text
    FORM ALV_TOP_OF_PAGE.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
        EXPORTING
          IT_LIST_COMMENTARY = LIST_HEADER
          I_LOGO             = 'ENJOYSAP_LOGO'.
    ENDFORM.                    "ALV_TOP_OF_PAGE
    *&      Form  BUILD_EVENT
          text
         -->P_GT_EVENTS[]  text
    FORM BUILD_EVENT USING P_EVENTS TYPE SLIS_T_EVENT.
      CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
        EXPORTING
          I_LIST_TYPE     = 0
        IMPORTING
          ET_EVENTS       = P_EVENTS
        EXCEPTIONS
          LIST_TYPE_WRONG = 1
          OTHERS          = 2.
      READ TABLE P_EVENTS WITH KEY NAME = SLIS_EV_USER_COMMAND INTO
    ALV_EVENT.
      IF SY-SUBRC = 0.
        MOVE GC_FORMNAME_USER_COMMAND TO ALV_EVENT-FORM.
        APPEND ALV_EVENT TO P_EVENTS.
      ENDIF.
      READ TABLE P_EVENTS WITH KEY NAME = SLIS_EV_BEFORE_LINE_OUTPUT INTO
    ALV_EVENT.
      IF SY-SUBRC = 0.
        MOVE GC_FORMNAME_BEFORE_OUTPUT TO ALV_EVENT-FORM.
        APPEND ALV_EVENT TO P_EVENTS.
      ENDIF.
    ENDFORM.                    " BUILD_EVENT
    Thanks,
    Shankar

  • Using alv objects for mouseover events

    Hello again with the same problem.
    on my previous post my requirement was to show a table about a field when mouse is on that field.
    all of the comments were negative about this requirement.
    later, i have learnt that this requirement can be done by creating an alv object.but i dont know how to do that.
    i hope someone knows it?

    hello masters,
    at least give me some ideas to search for.
    regards
    cem

Maybe you are looking for