Regarding making ALV Online.

Dear SAP Gurus,
I am displaying an ALV Report fetching data from a Z-Table. Now my requirement is,
once the ALV output comes, it should automatically refresh for every 1 hour. ie, for every one hour data is to be checked from the Z-Table and updated in the list.
Please help.
Thanks & Regards
Pavan.

Some user(s) will have this report running continuously on their desktop, hour after hour? And, you're going to change the report they're looking at?    I seriously doubt that....  In my case, I added a refresh button to my ALV function buttons, and allow the user to manually choose to refresh, once they have completed working the original list....At that time, I close my SALV screen, clear the underlying data table, then re-execute the data retrieval and SALV startup.
Edited by: BreakPoint on Mar 14, 2011 12:50 PM

Similar Messages

  • Regarding making hyperlink in OOPs ALV

    Please see the following ALV Code. Its based on OOPs. There is no fieldcatalog defined in the program. In the output I want to make a hotspot on the filed VBELN & want to call T.code VA03 using SET PARAMETER ID. Please help. If I would have made it through Function Modules, It could have been easier as I can modify the fieldcatalog. Please help me urgently. Points will be rewarded.
    *& Report  ZTEST_OOPS_REPT1                                            *
    REPORT  ztest_oops_rept1                        .
    Type pool for icons - used in the toolbar
    TYPE-POOLS: icon.
    TYPE-POOLS: slis.
    TABLES: vbak.
    To allow the declaration of o_event_receiver before the
    lcl_event_receiver class is defined, decale it as deferred in the
    start of the program
    CLASS lcl_event_receiver DEFINITION DEFERRED.
    G L O B A L   I N T E R N  A L   T A B L E S
    *DATA: gi_sflight TYPE STANDARD TABLE OF sflight.
    To include a traffic light and/or color a line the structure of the
    table must include fields for the traffic light and/or the color
    TYPES: BEGIN OF st_vbak.
            INCLUDE STRUCTURE vbak.
    TYPES: END OF st_vbak.
    TYPES: tt_vbak TYPE STANDARD TABLE OF st_vbak.
    DATA: gi_vbak TYPE tt_vbak.
    *declaration for fieldcatalog
    DATA: lit_fieldcat TYPE slis_t_fieldcat_alv,
        ls_fieldcat  TYPE slis_fieldcat_alv.
    G L O B A L   D A T A
    DATA: ok_code         LIKE sy-ucomm,
        Work area for internal table
          g_wa_vbak    TYPE st_vbak,
        ALV control: Layout structure
          gs_layout       TYPE lvc_s_layo.
    Declare reference variables to the ALV grid and the container
    DATA:
      go_grid             TYPE REF TO cl_gui_alv_grid,
      go_custom_container TYPE REF TO cl_gui_custom_container,
      o_event_receiver    TYPE REF TO lcl_event_receiver.
    DATA:
    Work area for screen 200
      g_screen200 LIKE vbak.
    Data for storing information about selected rows in the grid
    DATA:
    Internal table
      gi_index_rows TYPE lvc_t_row,
    Information about 1 row
      g_selected_row LIKE lvc_s_row.
                            SELECTION-SCREEN                             *
    SELECTION-SCREEN BEGIN OF BLOCK ch1 WITH FRAME.
    SELECT-OPTIONS:  s_vbeln FOR vbak-vbeln OBLIGATORY.
    SELECTION-SCREEN END OF BLOCK ch1.
    C L A S S E S
    CLASS lcl_event_receiver DEFINITION.
      PUBLIC SECTION.
        METHODS:
         handle_toolbar FOR EVENT toolbar OF cl_gui_alv_grid
           IMPORTING
             e_object e_interactive,
         handle_user_command FOR EVENT user_command OF cl_gui_alv_grid
           IMPORTING e_ucomm.
    ENDCLASS.                    "lcl_event_receiver DEFINITION
          CLASS lcl_event_receiver IMPLEMENTATION
    CLASS lcl_event_receiver IMPLEMENTATION.
      METHOD handle_toolbar.
    Event handler method for event toolbar.
        CONSTANTS:
    Constants for button type
          c_button_normal           TYPE i VALUE 0,
          c_menu_and_default_button TYPE i VALUE 1,
          c_menu                    TYPE i VALUE 2,
          c_separator               TYPE i VALUE 3,
          c_radio_button            TYPE i VALUE 4,
          c_checkbox                TYPE i VALUE 5,
          c_menu_entry              TYPE i VALUE 6.
        DATA:
            ls_toolbar  TYPE stb_button.
      Append seperator to the normal toolbar
        CLEAR ls_toolbar.
        MOVE c_separator TO ls_toolbar-butn_type..
        APPEND ls_toolbar TO e_object->mt_toolbar.
      Append a new button that to the toolbar. Use E_OBJECT of
      event toolbar. E_OBJECT is of type CL_ALV_EVENT_TOOLBAR_SET.
      This class has one attribute MT_TOOLBAR which is of table type
      TTB_BUTTON. The structure is STB_BUTTON
        CLEAR ls_toolbar.
        MOVE 'CHANGE'        TO ls_toolbar-function.
        MOVE  icon_change    TO ls_toolbar-icon.
        MOVE 'Change flight' TO ls_toolbar-quickinfo.
        MOVE 'Change'        TO ls_toolbar-text.
        MOVE ' '             TO ls_toolbar-disabled.
        APPEND ls_toolbar    TO e_object->mt_toolbar.
      ENDMETHOD.                    "handle_toolbar
      METHOD handle_user_command.
      Handle own functions defined in the toolbar
        CASE e_ucomm.
          WHEN 'CHANGE'.
            PERFORM change_flight.
           LEAVE TO SCREEN 0.
        ENDCASE.
      ENDMETHOD.                    "handle_user_command
    ENDCLASS.                    "lcl_event_receiver IMPLEMENTATION
    S T A R T - O F - S E L E C T I O N.
    START-OF-SELECTION.
      SET SCREEN '100'.
    *&      Module  USER_COMMAND_0100  INPUT
    MODULE user_command_0100 INPUT.
      CASE ok_code.
        WHEN 'BACK'.
          LEAVE TO SCREEN 0.
      ENDCASE.
    ENDMODULE.                 " USER_COMMAND_0100  INPUT
    *&      Module  STATUS_0100  OUTPUT
    MODULE status_0100 OUTPUT.
      SET PF-STATUS 'ZTEST_ALV'.
      SET TITLEBAR 'ZTEST_ALV'.
      DATA:
      For parameter IS_VARIANT that is sued to set up options for storing
      the grid layout as a variant in method set_table_for_first_display
        l_layout TYPE disvariant,
      Utillity field
        l_lines TYPE i.
    After returning from screen 200 the line that was selected before
    going to screen 200, should be selected again. The table gi_index_rows
    was the output table from the GET_SELECTED_ROWS method in form
    CHANGE_FLIGHT
      DESCRIBE TABLE gi_index_rows LINES l_lines.
      IF l_lines > 0.
        CALL METHOD go_grid->set_selected_rows
          EXPORTING
            it_index_rows = gi_index_rows.
        CALL METHOD cl_gui_cfw=>flush.
        REFRESH gi_index_rows.
      ENDIF.
    Read data and create objects
      IF go_custom_container IS INITIAL.
      Read data from datbase table
        PERFORM get_data.
      Create objects for container and ALV grid
        CREATE OBJECT go_custom_container
          EXPORTING container_name = 'ALV_CONTAINER'.
        CREATE OBJECT go_grid
          EXPORTING
            i_parent = go_custom_container.
      Create object for event_receiver class
      and set handlers
        CREATE OBJECT o_event_receiver.
        SET HANDLER o_event_receiver->handle_user_command FOR go_grid.
        SET HANDLER o_event_receiver->handle_toolbar FOR go_grid.
      Layout (Variant) for ALV grid
        l_layout-report = sy-repid. "Layout fo report
    Setup the grid layout using a variable of structure lvc_s_layo
      Set grid title
        gs_layout-grid_title = 'SALES ORDER'.
      Selection mode - Single row without buttons
      (This is the default  mode
        gs_layout-sel_mode = 'B'.  "B for single selection.
      Grid setup for first display
        CALL METHOD go_grid->set_table_for_first_display
          EXPORTING
            i_structure_name = 'VBAK'
            is_variant       = l_layout
            i_save           = 'A'
            is_layout        = gs_layout
          CHANGING
            it_outtab        = gi_vbak.
    *-- End of grid setup -
      Raise event toolbar to show the modified toolbar
        CALL METHOD go_grid->set_toolbar_interactive.
      Set focus to the grid. This is not necessary in this
      example as there is only one control on the screen
        CALL METHOD cl_gui_control=>set_focus
          EXPORTING
            control = go_grid.
      ENDIF.
    ENDMODULE.                 " STATUS_0100  OUTPUT
    *&      Module  USER_COMMAND_0200  INPUT
          text
    MODULE user_command_0200 INPUT.
      CASE ok_code.
        WHEN 'BACK'.
          LEAVE TO SCREEN 100.
          WHEN'SAVE'.
          PERFORM save_changes.
      ENDCASE.
    ENDMODULE.                 " USER_COMMAND_0200  INPUT
    *&      Form  get_data
          text
    FORM get_data.
    Read data from table VBAK
      SELECT *
        FROM vbak
        INTO TABLE gi_vbak
        WHERE vbeln IN s_vbeln.
    ENDFORM.                    " load_data_into_grid
    *&      Form  change_flight
    Reads the contents of the selected row in the grid, ans transfers
    the data to screen 200, where it can be changed and saved.
    FORM change_flight.
      DATA:l_lines TYPE i.
      REFRESH gi_index_rows.
      CLEAR   g_selected_row.
    Read index of selected rows
      CALL METHOD go_grid->get_selected_rows
        IMPORTING
          et_index_rows = gi_index_rows.
    Check if any row are selected at all. If not
    table  gi_index_rows will be empty
      DESCRIBE TABLE gi_index_rows LINES l_lines.
      IF l_lines = 0.
        CALL FUNCTION 'POPUP_TO_DISPLAY_TEXT'
          EXPORTING
            textline1 = 'You must choose a line'.
        EXIT.
      ENDIF.
    Read indexes of selected rows. In this example only one
    row can be selected as we are using gs_layout-sel_mode = 'B',
    so it is only ncessary to read the first entry in
    table gi_index_rows
      LOOP AT gi_index_rows INTO g_selected_row.
        IF sy-tabix = 1.
          READ TABLE gi_vbak INDEX g_selected_row-index
           INTO g_wa_vbak.
        ENDIF.
      ENDLOOP.
    Transfer data from the selected row to screenm 200 and show
    screen 200
      CLEAR g_screen200.
      MOVE-CORRESPONDING g_wa_vbak TO g_screen200.
      LEAVE TO SCREEN '200'.
    ENDFORM.                    " change_flight
    *&      Form  save_changes
    Changes made in screen 200 are written to the datbase table
    zsflight, and to the grid table gi_sflight, and the grid is
    updated with method refresh_table_display to display the changes
    FORM save_changes.
    Update traffic light field
    Update database table
      MODIFY vbak FROM g_screen200.
    Refresh grid
      CALL METHOD go_grid->refresh_table_display.
      CALL METHOD cl_gui_cfw=>flush.
      LEAVE TO SCREEN '100'.
    ENDFORM.                    " save_changes
    *&      Module  STATUS_0200  OUTPUT
          text
    MODULE status_0200 OUTPUT.
      SET PF-STATUS 'ZTEST_ALV'.
      SET TITLEBAR 'ZTEST_ALV'.
    ENDMODULE.                 " STATUS_0200  OUTPUT
                     " lit_fieldcat_init

    Use FM -LVC_FIELDCATALOG_MERGE to derive the field catalog for table VBAK. It will give you the field catalog. You can modify the column VBELN  by changing HOTSPOT = 'X".
    and in your code - at the method SET_TABLE_FOR....DISPLAY , you comment out the structure name and pass the modified field catalog.
    Hope it helps.

  • Making alv deactive

    Hi All,
    I have one button  and one alv.
    Now my requirement is when i press the button on first time the entire table should be in deactive mode
    ( i got this ) and if i press the same button on second time the entire table should be in edit mode ( i got this also ).But if i press the same button on  third time , am able to get non editable mode ,but here i want in deactive mode .
    I want display/Change toggle button.
    My code is as follows ...Chech it Once..
      DATA:V_FLAG TYPE C.
      DATA LO_ND_FLAG TYPE REF TO IF_WD_CONTEXT_NODE.
      DATA LO_EL_FLAG TYPE REF TO IF_WD_CONTEXT_ELEMENT.
      DATA LS_FLAG TYPE WD_THIS->ELEMENT_FLAG.
    navigate from <CONTEXT> to <FLAG> via lead selection
      LO_ND_FLAG = WD_CONTEXT->GET_CHILD_NODE( NAME = WD_THIS->WDCTX_FLAG ).
    get element via lead selection
      LO_EL_FLAG = LO_ND_FLAG->GET_ELEMENT(  ).
    get all declared attributes
      LO_EL_FLAG->GET_STATIC_ATTRIBUTES(
        IMPORTING
          STATIC_ATTRIBUTES = LS_FLAG ).
      IF LS_FLAG-DIS_CHG EQ 'D'.
        CALL METHOD LO_EL_FLAG->SET_ATTRIBUTE
          EXPORTING
            VALUE = 'C'
            NAME  = `DIS_CHG`.
        V_FLAG = 'X'.
      ELSEIF LS_FLAG-DIS_CHG EQ 'C'.
        CALL METHOD LO_EL_FLAG->SET_ATTRIBUTE
          EXPORTING
            VALUE = 'D'
            NAME  = `DIS_CHG`.
        CLEAR V_FLAG.
      ENDIF.
    *Instantiate used component
      DATA LO_CMP_USAGE TYPE REF TO IF_WD_COMPONENT_USAGE.
      LO_CMP_USAGE =   WD_THIS->WD_CPUSE_ALV( ).
      IF LO_CMP_USAGE->HAS_ACTIVE_COMPONENT( ) IS INITIAL.
        LO_CMP_USAGE->CREATE_COMPONENT( ).
      ENDIF.
    *Get config model
      DATA LO_INTERFACECONTROLLER TYPE REF TO IWCI_SALV_WD_TABLE .
      LO_INTERFACECONTROLLER =   WD_THIS->WD_CPIFC_ALV( ).
      DATA LO_VALUE TYPE REF TO CL_SALV_WD_CONFIG_TABLE.
      LO_VALUE = LO_INTERFACECONTROLLER->GET_MODEL(
      DATA: LR_TABLE_SETTINGS TYPE REF TO IF_SALV_WD_TABLE_SETTINGS.
      DATA: LR_COLUMN_SETTINGS TYPE REF TO IF_SALV_WD_COLUMN_SETTINGS,
            LR_INPUT_FIELD TYPE REF TO CL_SALV_WD_UIE_INPUT_FIELD.
      DATA: LR_COLUMN TYPE REF TO CL_SALV_WD_COLUMN.
      IF V_FLAG = 'X'.
        LO_VALUE->IF_SALV_WD_STD_FUNCTIONS~SET_EDIT_DELETE_ROW_ALLOWED( ABAP_TRUE ).
        LO_VALUE->IF_SALV_WD_STD_FUNCTIONS~SET_EDIT_INSERT_ROW_ALLOWED( ABAP_FALSE ).
        LO_VALUE->IF_SALV_WD_STD_FUNCTIONS~SET_EDIT_CHECK_AVAILABLE( ABAP_FALSE ).
        LO_VALUE->IF_SALV_WD_STD_FUNCTIONS~SET_EDIT_APPEND_ROW_ALLOWED( ABAP_FALSE ).
        LR_TABLE_SETTINGS ?= LO_VALUE.
        LR_TABLE_SETTINGS->SET_READ_ONLY( ABAP_FALSE ).
    Making the Fields Editable -
        LR_COLUMN_SETTINGS ?= LO_VALUE.
        LR_COLUMN = LR_COLUMN_SETTINGS->GET_COLUMN( 'NAME1' ).
        CREATE OBJECT LR_INPUT_FIELD
          EXPORTING
            VALUE_FIELDNAME = 'NAME1'.
        LR_COLUMN->SET_CELL_EDITOR( LR_INPUT_FIELD ).
        LR_TABLE_SETTINGS ?= LO_VALUE.
        LR_TABLE_SETTINGS->SET_READ_ONLY( ABAP_FALSE ).
        LR_COLUMN_SETTINGS ?= LO_VALUE.
        LR_COLUMN = LR_COLUMN_SETTINGS->GET_COLUMN( 'EMAIL_ID' ).
        CREATE OBJECT LR_INPUT_FIELD
          EXPORTING
            VALUE_FIELDNAME = 'EMAIL_ID'.
        LR_COLUMN->SET_CELL_EDITOR( LR_INPUT_FIELD ).
        LR_TABLE_SETTINGS ?= LO_VALUE.
        LR_TABLE_SETTINGS->SET_READ_ONLY( ABAP_FALSE ).
      ELSE.
        LR_TABLE_SETTINGS ?= LO_VALUE.
        LR_TABLE_SETTINGS->SET_READ_ONLY( ABAP_TRUE ).
      ENDIF.
    Could any one help me in this regard.
    Thanks in advance.
    Regards,
    sravan.

    Hi Sravan ,
    Thats very easy .
    Please follow the below steps.
    I have seen ur code....plz make following changes in the ELSE PART .
    ELSE.
    LR_TABLE_SETTINGS ?= LO_VALUE.
    LR_TABLE_SETTINGS->SET_READ_ONLY( ABAP_TRUE ).------>>>>>>>this is ur code .
    now add this .
    *make columns   editable
    DATA : l_column TYPE REF TO cl_salv_wd_column ,
             l_column1 TYPE REF TO cl_salv_wd_column ,
             lr_input TYPE REF TO cl_salv_wd_uie_input_field ,
             l_input1 TYPE REF TO cl_salv_wd_uie_input_field .
      l_column = lo_value->if_salv_wd_column_settings~get_column( 'NAME1' ).
      CREATE OBJECT lr_input
        EXPORTING
          value_fieldname = 'NAME1'.
    *MAKE COLUMN EDIATBLE
      l_column->set_cell_editor( value = lr_input ) .
    MAKE   COULNMN  NON EDITABLE i.e. read ony
    CALL METHOD LR_INPUT->SET_READ_ONLY
      EXPORTING
        VALUE  = ABAP_TRUE
    *repaeat the same step for another field.
      l_column = lo_value->if_salv_wd_column_settings~get_column( 'EMAIL_ID' ).
      CREATE OBJECT lr_input
        EXPORTING
          value_fieldname = 'EMAIL_ID'.
    *MAKE COLUMN EDIATBLE
      l_column->set_cell_editor( value = lr_input ) .
    MAKE   COULNMN  NON EDITABLE i.e. read ony
    CALL METHOD LR_INPUT->SET_READ_ONLY
      EXPORTING
        VALUE  = ABAP_TRUE
        lo_value->IF_SALV_WD_TABLE_SETTINGS~set_read_only( abap_false ).
    ENDIF.
    hope this will solve ur problem...i have tested  and its working  perfectly
    regards
    Arjun .

  • Regarding editable alv

    Hi all,
              Frnds i am working in editable alv using function modules not object oriented abap.
    i m trying to edit a Field(MATNR ) in my output list and finally update it with changed values in the DB table.
    But i m getting syntax error like
    "the work area i_final is not alligned properly
    below i m providing my code.
    <code>
    *& Report  ZEDITABLE_ALV1
    REPORT  ZEDITABLE_ALV1.
    TABLES: vbak,vbap.
    TYPE-POOLS: slis. "ALV Declarations
    data: BEGIN OF i_final occurs 0,
          vbeln like vbap-vbeln,
          posnr like vbap-posnr,
          matnr like vbap-matnr,
          erdat like vbap-erdat,
    END OF i_final.
    DATA : C_X(1) TYPE C VALUE 'X',
           C_FC_MODIFY(6) TYPE C VALUE 'MODIFY'.
    *DATA: i_final TYPE STANDARD TABLE OF T_FINAL with header line.
         i_temp type standard table of T_FINAL with header line.
    *wa_final like line of i_final.
    *DATA:i_final LIKE vbap OCCURS 0.
    *DATA:wa_final LIKE vbap.
    *ALV data declarations
    DATA: fieldcatalog TYPE slis_t_fieldcat_alv WITH HEADER LINE,
    gd_tab_group TYPE slis_t_sp_group_alv,
    gd_layout TYPE slis_layout_alv,
    gd_repid LIKE sy-repid.
    *Start-of-selection.
    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 = 'VBELN'.
    fieldcatalog-seltext_m = 'sales order'.
    fieldcatalog-col_pos = 0.
    APPEND fieldcatalog TO fieldcatalog.
    CLEAR fieldcatalog.
    fieldcatalog-fieldname = 'ERDAT'.
    fieldcatalog-seltext_m = 'date'.
    fieldcatalog-col_pos = 1.
    APPEND fieldcatalog TO fieldcatalog.
    CLEAR fieldcatalog.
    fieldcatalog-fieldname = 'MATNR'.
    fieldcatalog-seltext_m = 'material no.'.
    fieldcatalog-col_pos = 2.
    fieldcatalog-edit = 'X'.
    APPEND fieldcatalog TO fieldcatalog.
    CLEAR fieldcatalog.
    fieldcatalog-fieldname = 'POSNR'.
    fieldcatalog-seltext_m = 'line item no.'.
    fieldcatalog-col_pos = 3.
    APPEND fieldcatalog TO fieldcatalog.
    CLEAR fieldcatalog.
    fieldcatalog-FIELDNAME = 'REC_SEL'.
    fieldcatalog-NO_OUT = C_X.
    APPEND fieldcatalog TO fieldcatalog.
    CLEAR fieldcatalog.
    ENDFORM. " BUILD_FIELDCATALOG
    *& Form BUILD_LAYOUT
    *•     Build layout for ALV grid report
    FORM build_layout.
    gd_layout-no_input = 'X'.
    gd_layout-colwidth_optimize = 'X'.
    gd_layout-totals_text = 'Totals'(201).
         gd_layout-totals_only = 'X'.
         gd_layout-f2code = 'DISP'. "Sets fcode for when double
         "click(press f2)
         gd_layout-zebra = 'X'.
         gd_layout-group_change_edit = 'X'.
         gd_layout-header_text = 'helllllo'.
    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 = 'GUI_STAT'
    *i_grid_title = outtext
    is_layout = gd_layout
    it_fieldcat = fieldcatalog[]
    *it_special_groups = gd_tabgroup
    *it_events = it_events
    i_save = 'X'
    *is_variant = z_template
    TABLES
    t_outtab = i_final
    EXCEPTIONS
    program_error = 1
    OTHERS = 2.
    IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    ENDFORM. " DISPLAY_ALV_REPORT
    **& Form DATA_RETRIEVAL
    *•     Retrieve data form EKPO table and populate itab it_ekko
    FORM data_retrieval.
    *SELECT avbeln aerdat bmatnr bposnr FROM vbak AS a
    *INNER JOIN vbap AS b ON avbeln = bvbeln
    *INTO TABLE i_final WHERE a~vbeln = b~vbeln.
    select VBELN ERDAT MATNR POSNR up to 10 rows from vbap into corresponding fields of  table i_final.
    ENDFORM. " DATA_RETRIEVAL
    *•     FORM GUI_STAT *
    *•     --> RT_EXTAB *
    FORM gui_stat USING rt_extab TYPE slis_t_extab.
    SET PF-STATUS 'MODIFY' EXCLUDING rt_extab.
    ENDFORM.
    *•     FORM USER_COMMAND *
    *•     --> U_COMM *
    *•     --> RS_SELFIELD *
    FORM user_command USING u_comm LIKE sy-ucomm
    rs_selfield TYPE slis_selfield.
    DATA:selfield TYPE slis_selfield.
    *RS_SELFIELD-REFRESH = C_X.
    CASE u_comm.
    *IF U_COMM = C_FC_MODIFY.
    WHEN 'UPDATE'.
    LOOP AT i_final. " into wa_final."into wa_final.
    *READ TABLE I_TEMP WITH KEY VBELN = I_FINAL-VBELN.
    *IF SY-SUBRC = 0.
    i_final-matnr = vbap-matnr.
    *MODIFY I_final INDEX SY-TABIX.
    *ENDIF.
    ENDLOOP.
    *ENDIF.
    MODIFY VBAP FROM TABLE i_final.
    IF SY-SUBRC = 0.
    COMMIT WORK AND WAIT.
    *MESSAGE I000 WITH SY-DBCNT
    *' Record(s) has been Updated'(020).
    ENDIF.
    *append i_final.
    *it_temp = i_final.
    *append it_temp.
    **UPDATE sflight FROM TABLE sflight_tab.
    *ENDLOOP.
    *update vbap from table i_final.
    *IF sy-subrc = 0.
    *MESSAGE s000(0) WITH 'records updated successfully'.
    *ENDIF.
    ENDCASE.
    ENDFORM.
    </code>
    Frnds plz help me in this regard.
    Thanks,
    satya

    Try something like this...ur code was not clear..i have done something u can understand.
    First check that u r not trying to update the primary key field.
    first before updating.
    Before updating select the record u r going to update from the main table.
    select single * from VBAP where <pass the key values>.
    if sy-subrc = 0.
    move the rest of the values to the table header except the key values.
    vbap-<field1> = value1.
    vbap-<field2> = value2.
    after moving the values.
    update <table>.
    if sy-subrc = 0.
    commit work.
    endif.
    data:st_vbap type vbap.
    WHEN 'UPDATE'.
    LOOP AT i_final. " into wa_final."into wa_final.
    select single * from vbap where vbeln = I_FINAL-VBELN.
    move-corresponding i_final to vbap.
    update vbap.
    if sy-subrc = 0.
    commit work.
    wk_cnt = wk_cnt + 1.
    endif.
    at last.
    *MESSAGE I000 WITH SY-DBCNT
    *' Record(s) has been Updated'(020).
    endat.
    endloop

  • Regarding list alv display

    Hi All,
    I am catching double click event in user command for alv list display,where we get one structure filled on runtime called slis_selfield upon double clicking on alv rows. in this structure i am not getting the field 'sel_tab_field' filled. and i am in need of that field value.
    can you help me out in this regard.
    Thanks in advance.
    Regards
    Ashutosh

    Hi ,
    FORM user_command USING p_ucomm LIKE sy-ucomm
    f_selfield TYPE slis_selfield.
    capture double click event on document number created.
    CASE p_ucomm.
    WHEN '&IC1'.
    IF f_selfield-tabname EQ 'I_DOC_CREATED'.
    CHECK NOT f_selfield-value IS INITIAL.
    SET PARAMETER ID 'BLN' FIELD f_selfield-value.
    SET PARAMETER ID 'BUK' FIELD so_bukrs-low.
    SET PARAMETER ID 'GJR' FIELD w_gjahr.
    CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN.
    ELSEIF f_selfield-tabname EQ 'I_ELOG'.
    CHECK NOT f_selfield-value IS INITIAL.
    SET PARAMETER ID 'BLN' FIELD f_selfield-value.
    SET PARAMETER ID 'BUK' FIELD so_bukrs-low.
    SET PARAMETER ID 'GJR' FIELD w_gjahr.
    CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN.
    ENDIF.
    ENDCASE.
    I am not getting fieldname field of slis_selfield populated upon double clicking

  • Regarding Hierarchial ALV Display

    Can any one please tell me the 'keyinfo' parameter in the ALV function REUSE_ALV_HIERSEQ_LIST_DISPLAY.
    I want all the details regarding the parameter keyinfo.
    Thanks in advance.

    this is used to specify that according to which field u want hierarchy....
    means i want that according to material number i want hierarchical display than i have to pass matnr in this
    and
    key_info-header01 = 'MAT'.
    key_info-item01 = 'MAT'.
    In this we passing field name of header table and item table....
    Now see this example..
    In this i want hierarchy depend on Material and palnt both..
    so my code will be
    TYPE-POOLS : slis.
    TABLES : mseg.
    DATA : BEGIN OF itab_head OCCURS 0,
    mat LIKE mseg-matnr,
    matnr LIKE mseg-matnr,
    werks LIKE mseg-werks,
    END OF itab_head.
    DATA : BEGIN OF itab_item OCCURS 0,
    mat LIKE mseg-matnr,
    matnr LIKE mseg-matnr,
    werks LIKE mseg-werks,
    mblnr LIKE mseg-mblnr,
    menge LIKE mseg-menge,
    END OF itab_item.
    DATA : t_fcat TYPE slis_t_fieldcat_alv,
    key_info TYPE slis_keyinfo_alv,
    t_eve TYPE slis_t_event,
    gt_subtot TYPE slis_t_sortinfo_alv,
    subtot LIKE LINE OF gt_subtot,
    t_listhead TYPE slis_t_listheader,
    st_line TYPE slis_listheader.
    DATA : t_mtdoc LIKE mseg-mblnr.
    SELECT-OPTIONS : mat FOR mseg-matnr.
    INITIALIZATION.
    PERFORM build_cat USING t_fcat.
    PERFORM build_eve.
    START-OF-SELECTION.
    PERFORM get_data.
    PERFORM dis_data.
    *& Form build_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_HEAD'.
    wa_fcat-fieldname = 'MAT'.
    wa_fcat-seltext_m = 'Material'.
    APPEND wa_fcat TO temp_fcat.
    CLEAR wa_fcat.
    wa_fcat-tabname = 'ITAB_HEAD'.
    wa_fcat-fieldname = 'WERKS'.
    wa_fcat-seltext_m = 'Plant'.
    APPEND wa_fcat TO temp_fcat.
    CLEAR wa_fcat.
    wa_fcat-tabname = 'ITAB_ITEM'.
    wa_fcat-fieldname = 'MBLNR'.
    wa_fcat-seltext_m = 'Material Doc.'.
    APPEND wa_fcat TO temp_fcat.
    CLEAR wa_fcat.
    wa_fcat-tabname = 'ITAB_ITEM'.
    wa_fcat-fieldname = 'MENGE'.
    wa_fcat-seltext_m = 'Quantity'.
    wa_fcat-do_sum = 'Y'.
    APPEND wa_fcat TO temp_fcat.
    CLEAR wa_fcat.
    subtot-spos = 1.
    subtot-fieldname = 'MAT'.
    subtot-tabname = 'ITAB_HEAD'.
    subtot-up = 'X'.
    subtot-group = 'X'.
    subtot-subtot = 'X'.
    subtot-expa = 'X'.
    APPEND subtot TO gt_subtot.
    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.
    ENDFORM. "build_eve
    *& Form get_data
    text
    FORM get_data.
    SELECT matnr AS mat werks mblnr menge FROM mseg INTO CORRESPONDING FIELDS OF TABLE itab_item
    WHERE matnr IN mat.
    ENDFORM. "get_data
    *& Form dis_data
    text
    FORM dis_data.
    key_info-header01 = 'MAT'.
    key_info-item01 = 'MAT'.
    key_info-header02 = 'WERKS'.
    key_info-item02 = 'WERKS'.
    REFRESH itab_head.
    LOOP AT itab_item.
    ON CHANGE OF itab_item-mat OR itab_item-werks.
    MOVE-CORRESPONDING itab_item TO itab_head.
    APPEND itab_head.
    ENDON.
    ENDLOOP.
    CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
    EXPORTING
    i_callback_program = 'ZALV_PRDS'
    it_fieldcat = t_fcat
    it_sort = gt_subtot
    it_events = t_eve[]
    i_tabname_header = 'ITAB_HEAD'
    i_tabname_item = 'ITAB_ITEM'
    is_keyinfo = key_info
    TABLES
    t_outtab_header = itab_head
    t_outtab_item = itab_item
    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
    reward if usefull.....

  • Need information regarding Hierarchical ALV display

    How to total sub items in an Heirarchical ALV List display?

    Hi,
    I have one Hierarchical alv example .. please see it. Also check B*ALV in se38.
    *& Report  ZLAXMI_ALVEXER4                                             *
    REPORT  ZLAXMI_ALVEXER4    MESSAGE-ID ZZ        .
    *& TABLES DECLARATION                                                  *
    TABLES: VBAK, VBAP.
    *& TYPE POOLS DECLARATION                                              *
    TYPE-POOLS: SLIS.
                          DATA DECLARATIONS                             *
    DATA: V_FLAG TYPE C.                        "Flag to display the header
    DATA: V_REPID TYPE SY-REPID.
    *& INTERNAL TABLE DECLARATION                                          *
    DATA: BEGIN OF IT_VBAK OCCURS 0,
           VBELN LIKE VBAK-VBELN,
           AUDAT LIKE VBAK-AUDAT,
           AUART LIKE VBAK-AUART,
           NETWR LIKE VBAK-NETWR,
           EXPAND(1),
          END OF IT_VBAK.
    DATA: BEGIN OF IT_VBAP OCCURS 0,
           VBELN LIKE VBAP-VBELN,
           POSNR LIKE VBAP-POSNR,
           MATNR LIKE VBAP-MATNR,
           PSTYV LIKE VBAP-PSTYV,
           CHARG LIKE VBAP-CHARG,
         END OF IT_VBAP.
    DATA: IT_FLDCAT TYPE SLIS_T_FIELDCAT_ALV,
          IT_FLDCAT1 TYPE SLIS_T_FIELDCAT_ALV,
    *events
          IT_EVENTS TYPE SLIS_T_EVENT WITH HEADER LINE,
          V_CALL TYPE C,
          X_USER TYPE  SLIS_EXIT_BY_USER,
          IT_VARIANT LIKE  DISVARIANT OCCURS 0 WITH HEADER LINE,
          X_KEYINFO TYPE SLIS_KEYINFO_ALV,
    *layout
          X_LAYOUT TYPE SLIS_LAYOUT_ALV,
    *sort
          IT_SORT TYPE SLIS_T_SORTINFO_ALV,
          WA_SORT LIKE LINE OF IT_SORT,
          X_CAT TYPE SLIS_FIELDCAT_ALV,
          V_TABIX LIKE SY-TABIX.
          Selection screen Declaration
    *--BLOCK1
    SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
    SELECT-OPTIONS: S_VBELN FOR VBAK-VBELN,
                    S_AUART FOR VBAK-AUART.
    SELECTION-SCREEN END OF BLOCK B1.
    AT SELECTION-SCREEN                                                 *
    *- Validations
    AT SELECTION-SCREEN.
      PERFORM VALIDATE_SCREEN.
                  START OF SELECTION                                    *
    START-OF-SELECTION.
    *- To get data from VBAK
      PERFORM GET_DATA.
    *to get data from VBAP
      PERFORM GET_DATA_VBAP.
      PERFORM PREPARE_ALV.
                  END OF SELECTION                                    *
    END-OF-SELECTION.
      PERFORM DISPLAY_REPORT.
    *&      Form  VALIDATE_SCREEN
          text
    -->  p1        text
    <--  p2        text
    FORM VALIDATE_SCREEN .
      DATA: LV_VBELN LIKE VBAK-VBELN,
            LV_AUART LIKE VBAK-AUART.
      IF NOT S_VBELN[] IS INITIAL.
        SELECT VBELN
               INTO LV_VBELN
               FROM VBAK
               WHERE VBELN IN S_VBELN.
        ENDSELECT.
        IF SY-SUBRC <> 0.
          MESSAGE E000 WITH 'INVALID SALES DOC'(002).
        ENDIF.
      ENDIF.
      IF NOT S_AUART[] IS INITIAL.
        SELECT AUART
               INTO LV_AUART
               FROM VBAK
               WHERE AUART IN S_AUART.
        ENDSELECT.
        IF SY-SUBRC <> 0.
          MESSAGE E000 WITH 'INVALID SALES DOC TYPE'(003).
        ENDIF.
      ENDIF.
    ENDFORM.                    " VALIDATE_SCREEN
    *&      Form  GET_DATA
          text
    -->  p1        text
    <--  p2        text
    FORM GET_DATA .
      SELECT VBELN
             AUDAT
             AUART
             NETWR
             FROM VBAK
             INTO TABLE IT_VBAK
             WHERE VBELN IN S_VBELN
             AND AUART IN S_AUART.
      IF SY-SUBRC = 0.
        SORT IT_VBAK BY VBELN.
      ENDIF.
    ENDFORM.                    " GET_DATA
    *&      Form  GET_DATA_VBAP
          text
    -->  p1        text
    <--  p2        text
    FORM GET_DATA_VBAP .
      SELECT VBELN
             POSNR
             MATNR
             PSTYV
             CHARG
             INTO TABLE IT_VBAP
             FROM VBAP
             FOR ALL ENTRIES IN IT_VBAK
             WHERE VBELN = IT_VBAK-VBELN.
      IF SY-SUBRC = 0.
        SORT IT_VBAP BY VBELN POSNR.
      ENDIF.
    ENDFORM.                    " GET_DATA_VBAP
    *&      Form  prepare_alv
          text
    -->  p1        text
    <--  p2        text
    FORM PREPARE_ALV .
    Prepare field catalog .
      PERFORM PREPARE_CATALOG.
    Modify catalog
      PERFORM CHANGE_ATTR_OF_CATALOG.
    Modify Layout
      PERFORM MODIFY_LAYOUT.
    Sort Catalog
      PERFORM SORT_CATALOG.
    ENDFORM.                    " prepare_alv
    *&      Form  prepare_catalog
          text
    -->  p1        text
    <--  p2        text
    FORM PREPARE_CATALOG .
      CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
        EXPORTING
          I_PROGRAM_NAME         = SY-REPID
          I_INTERNAL_TABNAME     = 'IT_VBAK'
          I_INCLNAME             = SY-REPID
        CHANGING
          CT_FIELDCAT            = IT_FLDCAT1[]
        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.
      APPEND LINES OF IT_FLDCAT1 TO IT_FLDCAT.
      CLEAR: IT_FLDCAT1[].
      CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
        EXPORTING
          I_PROGRAM_NAME         = SY-REPID
          I_INTERNAL_TABNAME     = 'IT_VBAP'
          I_INCLNAME             = SY-REPID
        CHANGING
          CT_FIELDCAT            = IT_FLDCAT1[]
        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.
      APPEND LINES OF IT_FLDCAT1 TO IT_FLDCAT.
    ENDFORM.                    " prepare_catalog
    *&      Form  change_attr_of_catalog
          text
    -->  p1        text
    <--  p2        text
    FORM CHANGE_ATTR_OF_CATALOG .
      LOOP AT IT_FLDCAT INTO X_CAT.
        V_TABIX = SY-TABIX.
        CASE X_CAT-FIELDNAME.
          WHEN  'EXPAND'.
            IF X_CAT-TABNAME = 'IT_VBAK'.
              X_CAT-NO_OUT = 'X'.
            ENDIF.
         when  'VBELN'.
           if x_cat-tabname = 'IT_VBAK'.
             x_cat-no_out = 'X'.
           endif.
          WHEN  'VBELN'.
            IF X_CAT-TABNAME = 'IT_VBAK'.
              X_CAT-COL_POS   = '1'.
              X_CAT-SELTEXT_M = 'SALES DOC'.
              X_CAT-SELTEXT_L = 'SALES DOC'.
              X_CAT-SELTEXT_S = 'SALES DOC'.
              X_CAT-OUTPUTLEN = '10'.
            ENDIF.
          WHEN  'AUDAT'.
            IF X_CAT-TABNAME = 'IT_VBAK'.
              X_CAT-COL_POS   = '2'.
              X_CAT-SELTEXT_M = 'DOC DATE'.
              X_CAT-SELTEXT_L = 'DOC DATE'.
              X_CAT-SELTEXT_S = 'DOC DATE'.
              X_CAT-OUTPUTLEN = '8'.
            ENDIF.
          WHEN  'AUART'.
            IF X_CAT-TABNAME = 'IT_VBAK'.
              X_CAT-COL_POS   = '3'.
              X_CAT-SELTEXT_M = 'ORDER REASON'.
              X_CAT-SELTEXT_L = 'ORDER REASON'.
              X_CAT-SELTEXT_S = 'ORDER REASON'.
              X_CAT-OUTPUTLEN = '5'.
            ENDIF.
          WHEN  'NETWR'.
            IF X_CAT-TABNAME = 'IT_VBAK'.
              X_CAT-COL_POS   = '4'.
              X_CAT-SELTEXT_M = 'NET PRICE'.
              X_CAT-SELTEXT_L = 'NET PRICE'.
              X_CAT-SELTEXT_S = 'NET PRICE'.
              X_CAT-OUTPUTLEN = '15'.
            ENDIF.
        ENDCASE.
        MODIFY IT_FLDCAT FROM X_CAT.
        CLEAR X_CAT.
      ENDLOOP.
    ENDFORM.                    " change_attr_of_catalog
    *&      Form  modify_layout
          text
    -->  p1        text
    <--  p2        text
    FORM MODIFY_LAYOUT .
      X_LAYOUT-DEFAULT_ITEM = 'X'.
      X_LAYOUT-ZEBRA = 'X'.
      X_LAYOUT-EXPAND_FIELDNAME = 'EXPAND'.
    ENDFORM.                    " modify_layout
    *&      Form  sort_catalog
          text
    -->  p1        text
    <--  p2        text
    FORM SORT_CATALOG .
      CLEAR WA_SORT.
      WA_SORT-SPOS = '01'.
      WA_SORT-FIELDNAME = 'VBELN' .
      WA_SORT-TABNAME   = 'IT_VBAP'.
      WA_SORT-UP        = 'X'.
      APPEND WA_SORT TO IT_SORT.
      CLEAR  WA_SORT.
      WA_SORT-SPOS = '02'.
      WA_SORT-FIELDNAME = 'POSNR' .
      WA_SORT-TABNAME   = 'IT_VBAP'.
      WA_SORT-UP        = 'X'.
      APPEND WA_SORT TO IT_SORT.
    ENDFORM.                    " sort_catalog
    *&      Form  DISPLAY_REPORT
          text
    -->  p1        text
    <--  p2        text
    FORM DISPLAY_REPORT .
      IT_VARIANT-REPORT = SY-REPID.
      SORT IT_VBAK BY VBELN.
      SORT IT_VBAP BY VBELN POSNR.
      CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
        EXPORTING
          I_CALLBACK_PROGRAM      = SY-REPID
          IS_LAYOUT               = X_LAYOUT
          IT_FIELDCAT             = IT_FLDCAT[]
          IT_SORT                 = IT_SORT
          IS_VARIANT              = IT_VARIANT
          IT_EVENTS               = IT_EVENTS[]
          I_TABNAME_HEADER        = 'IT_VBAK'
          I_TABNAME_ITEM          = 'IT_VBAP'
          IS_KEYINFO              = X_KEYINFO
        IMPORTING
          E_EXIT_CAUSED_BY_CALLER = V_CALL
          ES_EXIT_CAUSED_BY_USER  = X_USER
        TABLES
          T_OUTTAB_HEADER         = IT_VBAK
          T_OUTTAB_ITEM           = IT_VBAP
        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_REPORT
    Regards,
    Laxmi.

  • Regarding interactive Alv

    Hi abapers,
                          i am developing the alv interactive report . such that if any user clicks on particular matnr then it has to go for the MM02 Transaction Accounting tab.
    i should not do BDC. i am using function module called selection_view_find. how to acheive it? i am keep trying but not able to search in sdn . if possible post the sample code without doing bdc.
    my code is
    { IF rs_selfield-fieldname = 'MATNR'.}
    {READ TABLE t_vbap INTO w_vbap INDEX rs_selfield-tabindex.}
    {SET PARAMETER ID 'MAT' FIELD w_vbap-matnr.}
    { CALL TRANSACTION 'MM02' AND SKIP FIRST SCREEN.}

    Use a
    IF rs_selfield-fieldname = 'MATNR'.
      READ TABLE t_vbap INTO w_vbap INDEX rs_selfield-tabindex.
      SET PARAMETER ID 'MAT' FIELD w_vbap-matnr. " material number
      SET PARAMETER ID 'WRK' FIELD w_vbap-werks. " Plant
      SET PARAMETER ID 'BWT' FIELD w_vbap-bwtar. " Valuation type
      SET PARAMETER ID 'MXX' FIELD 'B'. " function(s) to call
      CALL TRANSACTION 'MM02' AND SKIP FIRST SCREEN.
    Check table T132(T) for values of MXX parameter, and provide every required parameters.
    Regards,
    Raymond

  • Regarding multiple ALV's in a screen.

    Hi gurus,
                  I have to develop one ALV report having multiple reports in one screen, also if i click any of the row items in one screen, it will move to the second, the approach i am using is using oops-ABAP i m new to this subject, thought there are
    many materials available still i am not able to understand, so can some one please show me a sample code for 2 reports in a screen and explain it?
    Thanks & Regards,
    Swordfish.

    Hi,
    <li>We have one concept in ALV called ALV Blocked report. It means displaying multiple outputs on one screen.
    <li> We use 3 function modules for that.
    REUSE_ALV_BLOCK_LIST_INIT
    REUSE_ALV_BLOCK_LIST_APPEND  
    REUSE_ALV_BLOCK_LIST_DISPLAY
    <li>Try this program.It works fine.
    <pre><font color=blue>REPORT  zvenkat_blocked_alv.
    DATA: i_0000 TYPE STANDARD TABLE OF pa0000,
          i_0001 TYPE STANDARD TABLE OF pa0001,
          i_0002 TYPE STANDARD TABLE OF pa0002,
          i_0008 TYPE STANDARD TABLE OF pa0008.
    ALV Declarations
    TYPE-POOLS:slis.
    TYPES:
       t_fieldcat         TYPE slis_fieldcat_alv,
       t_events           TYPE slis_alv_event,
       t_layout           TYPE slis_layout_alv.
    DATA:
       w_fieldcat1        TYPE t_fieldcat,
       w_fieldcat2        TYPE t_fieldcat,
       w_fieldcat3        TYPE t_fieldcat,
       w_fieldcat4        TYPE t_fieldcat,
       w_events           TYPE t_events,
       w_layout           TYPE t_layout.
    DATA:
       i_fieldcat1         TYPE STANDARD TABLE OF t_fieldcat,
       i_fieldcat2         TYPE STANDARD TABLE OF t_fieldcat,
       i_fieldcat3         TYPE STANDARD TABLE OF t_fieldcat,
       i_fieldcat4         TYPE STANDARD TABLE OF t_fieldcat,
       i_events            TYPE STANDARD TABLE OF t_events.
    START-OF-SELECTION.
      PERFORM get_data.
      PERFORM display_data.
    FORM get_data.
      SELECT *  FROM pa0000 INTO TABLE i_0000 UP TO 10 ROWS.
      SELECT *  FROM pa0001 INTO TABLE i_0001 UP TO 10 ROWS.
      SELECT *  FROM pa0002 INTO TABLE i_0002 UP TO 10 ROWS.
      SELECT *  FROM pa0008 INTO TABLE i_0008 UP TO 10 ROWS.
    ENDFORM. "get_data
    FORM display_data.
      PERFORM build_fieldcatalog USING 'PA0000' CHANGING i_fieldcat1.
      PERFORM build_fieldcatalog USING 'PA0001' CHANGING i_fieldcat2[].
      PERFORM build_fieldcatalog USING 'PA0002' CHANGING i_fieldcat3[].
      PERFORM build_fieldcatalog USING 'PA0008' CHANGING i_fieldcat4[].
      w_layout-max_linesize = '500'.
      PERFORM display_data_alv.
    ENDFORM. "display_data
    FORM display_data_alv .
      DATA:l_program TYPE sy-repid.
      l_program = sy-repid.
      CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'
        EXPORTING
          i_callback_program = l_program.
    PERFORM build_block_list_append TABLES i_0000[] USING w_layout  i_fieldcat1[] 'PA0000' i_events[].
      PERFORM build_block_list_append TABLES i_0001[] USING w_layout i_fieldcat2[] 'PA0001' i_events[].
      PERFORM build_block_list_append TABLES i_0002[] USING w_layout i_fieldcat3[] 'PA0002' i_events[].
      PERFORM build_block_list_append TABLES i_0008[] USING w_layout i_fieldcat4[] 'PA0008' i_events[].
      CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'.
      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_data_ALV
    FORM build_block_list_append  TABLES outtab USING  layout fieldcat tabname events .
      CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
        EXPORTING
          is_layout                        = layout
          it_fieldcat                      = fieldcat
          i_tabname                        = tabname
          it_events                        = events
        TABLES
          t_outtab                         = outtab.
      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.                    " build_block_list_append
    FORM build_fieldcatalog  USING    structure CHANGING i_fieldcat1.
      DATA:l_program TYPE sy-repid.
      l_program = sy-repid.
      CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
        EXPORTING
          i_program_name   = l_program
          i_structure_name = structure
        CHANGING
          ct_fieldcat      = i_fieldcat1.
      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.                    " build_fieldcatalo</pre></font>
    Thanks
    Venkat.O

  • Regarding editable alv  save button

    Hi Friends,
                      I have an ALV report in which one of the Column is in editable mode.
                       i want to edit that column field with new value and press save .
                       Friends , i want to know what should i write to get things done.
    regards,
    Rajesh

    Hi Friends,
                      I have an ALV report in which one of the Column is in editable mode.
                       i want to edit that column field with new value and press save .
                       Friends , i want to know what should i write to get things done.
    regards,
    Rajesh

  • Regarding SAP ABAP Online Training

    Hi All,
    I have around 2 years of Exp in SAP Business One as Technical Consultant.
    i am planning for SAP ABAP online Training from NIIT Mumbai.
    due to my budget constraint i m going for online training.
    NIIT is Authorised SAP Education Partner.
    Can u please guide me regarding Online training?
    i would like to know whether it will be fruitfull or not?
    How  user friendly  it is?
    Is it tough to understand the online training?
    is it right decision to go for online training for me?
    waiting for ur valuable reply....
    thanx in advance...
    Regards,
    Chetan .

    I would love to start with the development for business one. I have 3 years experience with the "big" SAP (ABAP and stuff) and would like to exchange the knowledge. If you would be interested, please drop me a line on my eml. I wanted to reach you through eml but it is not a public one. Looking forward to hear from you, Otto

  • Doubt regarding editable ALV report using Classes

    I need to create an ALV report and make few fields editable
    and i need to update the changes  to the corresponding database tables
    for that please suggest me some idea or provide me sample code for that
    urgent

    Hi ramesh,
    Please check this example program. I think it will help for some extent.
    [code]&----
    *& Report  ZSUMA_INTERACTIVEREPORT                                     *
    report zsuma_interactivereport.
    tables: vbak.
    data :gr_alvgrid type ref to cl_gui_alv_grid,
          gr_cc_name type scrfname value 'CC_ALV',
          gr_ccontainer type ref to cl_gui_custom_container,
          gr_fieldcat type lvc_t_fcat,
          gr_layout type lvc_s_layo,
          gr_sort type lvc_t_sort,
          gr_get_cell type lvc_t_cell,
          gr_set_cell type lvc_t_cell,
          gr_hyper type lvc_t_hype,
          gr_drop_down type lvc_t_drop,
          is_variant type disvariant,
          line_number type lvc_s_roid-row_id,
          line(5) type c ,
          cell_value type lvc_value.
    data: begin of it_vbak occurs 0,
          vbeln type vbak-vbeln,
          erdat like vbak-erdat,
          erzet like vbak-erzet,
          netwr like vbak-netwr,
          waerk like vbak-waerk,
    *Below field is useful for making the entire row with different colors.
    it must be a char of 4.and layout-info_fname should populate with
    *this field.
          rowcolor(4) type c,
    *Below field is useful for making the INDIVIDUAL CELL with different
    *colors.for this we have to include structure of type lvc_t_scol.
    *layout-ctab_fname should be populate with this field.
          cellcolor type lvc_t_scol,
    *below field is added for for providing the hyperlinks to perticular
    *field. at the time of field catalog , it_fcatalog-web_field should be
    *populate with this field.
          vbeln_hyper type int4,
    *For displaying one cell as button.we have to declare one styles
    *internal table .it has to be populate.at layout structure this table
    *name has to be populate at layout-stylename.
         cellstyle type lvc_t_styl,
          end of it_vbak.
    *&   SELECTION SCREEN
    selection-screen begin of block b1 with frame title text-001.
    select-options s_vbeln for vbak-vbeln.
    selection-screen end of block b1.
    start-of-selection.
    select vbeln
           erdat
           erzet
           netwr
           waerk
           from vbak
           into corresponding fields of table it_vbak
           where vbeln in s_vbeln.
    data: wa_cellcolor type lvc_s_scol,
          wa_style type lvc_s_styl.
    loop at it_vbak.
    FOR ROW COLORING
    if sy-tabix = 1.
    it_vbak-rowcolor = 'C511'.
    FOR PUTTING THE HYPERLINKS ON VBELN FIELD
    it_vbak-vbeln_hyper = '1'.
    modify it_vbak.
    endif.
    FOR CELL COLORING
    if sy-tabix = 2.
    wa_cellcolor-fname = 'ERZET'.
    wa_cellcolor-color-col = '6'.
    wa_cellcolor-color-int = '1'.
    wa_cellcolor-color-inv = '1'.
    append wa_cellcolor to it_vbak-cellcolor.
    modify it_vbak index 2.
    endif.
    FOR DISPLAYING THE CELL AS A BUTTON
    clear it_vbak-cellstyle.
    at last.
    read table it_vbak index sy-tabix.
    wa_style-fieldname = 'NETWR'.
    wa_style-style = cl_gui_alv_grid=>mc_style_button.
    append wa_style to it_vbak-cellstyle .
    modify it_vbak .
    endat.
    endloop.
    if not it_vbak[] is initial.
      call screen 100.
    endif.
    *CLASS DEFINITION FOR HANDLING THE EVENTS IN ALV GRID
    class gr_event_handler definition.
    public section.
    methods:handle_hotspot_click
                  for event hotspot_click of cl_gui_alv_grid
                   importing e_row_id e_column_id es_row_no.
    endclass.
    *CLASS IMPLEMENTATIONFOR HANDLING THE EVENTS IN ALV GRID
    class gr_event_handler implementation.
    method handle_hotspot_click.
    perform handle_hotspot_click using e_row_id e_column_id es_row_no.
    endmethod.
    endclass.
    *&      Form  BUILDING_FIELDCATALOG
          text
         <--P_GR_FIELDCAT  text
    form building_fieldcatalog  changing p_gr_fieldcat type lvc_t_fcat.
    data s_fieldcat type lvc_s_fcat.
    s_fieldcat-fieldname = 'VBELN'.
    s_fieldcat-outputlen = '15'.
    s_fieldcat-col_pos   = '1'.
    s_fieldcat-coltext   = 'DOCCUMENT NO.'.
    s_fieldcat-key   = ' '.
    s_fieldcat-emphasize = 'C511'.
    s_fieldcat-web_field = 'VBELN_HYPER'.
    append s_fieldcat to p_gr_fieldcat .
    clear s_fieldcat.
    s_fieldcat-fieldname = 'ERDAT'.
    s_fieldcat-outputlen = '15'.
    s_fieldcat-col_pos   = '2'.
    s_fieldcat-coltext   = 'REC CREATE DATE.'.
    s_fieldcat-emphasize = 'C311'.
    s_fieldcat-hotspot = 'X'.
    append s_fieldcat to p_gr_fieldcat .
    clear s_fieldcat.
    s_fieldcat-fieldname = 'ERZET'.
    s_fieldcat-outputlen = '15'.
    s_fieldcat-col_pos   = '3'.
    s_fieldcat-coltext   = 'TIME ENTRY.'.
    *S_FIELDCAT-EMPHASIZE = 'C311'.
    append s_fieldcat to p_gr_fieldcat .
    clear s_fieldcat.
    s_fieldcat-fieldname = 'NETWR'.
    s_fieldcat-outputlen = '15'.
    s_fieldcat-col_pos   = '4'.
    s_fieldcat-emphasize = 'C311'.
    s_fieldcat-coltext   = 'NET WEIGHT.'.
    s_fieldcat-do_sum   = 'X'.
    append s_fieldcat to p_gr_fieldcat .
    clear s_fieldcat.
    s_fieldcat-fieldname = 'WAERK'.
    s_fieldcat-outputlen = '5'.
    s_fieldcat-col_pos   = '5'.
    s_fieldcat-emphasize = 'C511'.
    s_fieldcat-coltext   = 'CURR.'.
    FOR PUTTING THE DROP DOWN BOX.
    s_fieldcat-drdn_hndl = '1'.
    s_fieldcat-edit = 'X'.
    append s_fieldcat to p_gr_fieldcat .
    clear s_fieldcat.
    endform.                    " BUILDING_FIELDCATALOG
    *&      Form  CREATE_CCONTAINER_INSTANCE
          text
    -->  p1        text
    <--  p2        text
    form create_ccontainer_instance .
    create object gr_ccontainer
    exporting
    container_name              = gr_cc_name
    exceptions
    cntl_error                  = 1
    cntl_system_error           = 2
    create_error                = 3
    lifetime_error              = 4
    lifetime_dynpro_dynpro_link = 5
    others                      = 6
    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.                    " CREATE_CCONTAINER_INSTANCE
    *&      Form  CREATE_ALVGRID_INSTANCE
          text
    -->  p1        text
    <--  p2        text
    form create_alvgrid_instance .
    create object gr_alvgrid
      exporting
        i_parent          = gr_ccontainer
      exceptions
        error_cntl_create = 1
        error_cntl_init   = 2
        error_cntl_link   = 3
        error_dp_create   = 4
        others            = 5
    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.                    " CREATE_ALVGRID_INSTANCE
    *&      Form  DISPLAYING_ALVGRID
          text
    -->  p1        text
    <--  p2        text
    form displaying_alvgrid .
    call method gr_alvgrid->set_table_for_first_display
      exporting
       I_BUFFER_ACTIVE               =
       I_BYPASSING_BUFFER            =
       I_CONSISTENCY_CHECK           =
       I_STRUCTURE_NAME              =
        is_variant                    = is_variant
        i_save                        = 'A'
       I_DEFAULT                     = 'X'
        is_layout                     = gr_layout
       IS_PRINT                      =
       IT_SPECIAL_GROUPS             =
       IT_TOOLBAR_EXCLUDING          =
        it_hyperlink                  = gr_hyper
       IT_ALV_GRAPHICS               =
       IT_EXCEPT_QINFO               =
      changing
        it_outtab                     = it_vbak[]
        it_fieldcatalog               = gr_fieldcat
       it_sort                       = gr_sort
       IT_FILTER                     =
    EXCEPTIONS
       INVALID_PARAMETER_COMBINATION = 1
       PROGRAM_ERROR                 = 2
       TOO_MANY_LINES                = 3
       others                        = 4
    if sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
               WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    endif.
    *CALL METHOD GR_ALVGRID->GET_FRONTEND_LAYOUT
    IMPORTING
       ES_LAYOUT = GR_LAYOUT
    *GR_LAYOUT-GRID_TITLE = 'HAI ALV'.
    *CALL METHOD GR_ALVGRID->SET_FRONTEND_LAYOUT
    EXPORTING
       IS_LAYOUT = GR_LAYOUT
    endform.                    " DISPLAYING_ALVGRID
    *&      Form  REFRESH_DISPLAY_TABLE
          text
    -->  p1        text
    <--  p2        text
    form refresh_display_table .
    call method gr_alvgrid->refresh_table_display
    EXPORTING
       IS_STABLE      =
       I_SOFT_REFRESH =
      exceptions
        finished       = 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.                    " REFRESH_DISPLAY_TABLE
    *&      Form  SETTING_LAYOUT
          text
         <--P_GR_LAYOUT  text
    form setting_layout  changing p_gr_layout type lvc_s_layo.
    p_gr_layout-grid_title = 'ALV GRID USING ABAP OBJECTS'.
    p_gr_layout-zebra = 'X'.
    p_gr_layout-no_toolbar = ''.
    p_gr_layout-sel_mode = 'D'.
    p_gr_layout-info_fname = 'ROWCOLOR'.
    p_gr_layout-ctab_fname = 'CELLCOLOR'.
    p_gr_layout-stylefname = 'CELLSTYLE'.
    endform.                    " SETTING_LAYOUT
    *&      Module  STATUS_0100  OUTPUT
          text
    module status_0100 output.
    SET PF-STATUS 'xxxxxxxx'.
    SET TITLEBAR 'xxx'.
    set pf-status 'MENU'.
    if gr_alvgrid is initial.
    *CREATING THE CONTAINER INSTANCE BY SENDING THE CONTAINER NAME( IT HAS
    *TO COINSIDE WITH COSTUM CONTROL NAME OF TRANSACTION SCREEN
    perform create_ccontainer_instance.
    perform create_alvgrid_instance.
    *VARIANT POPULATION.
    perform setting_variants changing is_variant.
    *BELOW FORM IS USEFUL TO FILL THE HYPER LINK TABLE AND WE PASS THAT
    *TABLE TO 'IT_HYPERLINK' PARAMETER IN FIRST DISPLAY METHOD.
    perform setting_hyperlinks_field changing gr_hyper.
    *TO MAKE THE COLOUMN AS DROP DOWN.
    perform setting_dropdown_column changing gr_drop_down.
    perform building_fieldcatalog changing gr_fieldcat.
    perform setting_layout changing gr_layout.
    perform setting_sorting changing gr_sort.
    perform setting_cells changing gr_set_cell.
    perform displaying_alvgrid.
    *PERFORM GETTING_CELL_DETAILS CHANGING GR_GET_CELL. " IT IS NOT WORKING
                                                 FOR ME AND I HAVE DOUBT .
    perform creating_event_object.
    *PERFORM REFRESH_DISPLAY_TABLE.
    endif.
    endmodule.                 " STATUS_0100  OUTPUT
    *&      Module  USER_COMMAND_0100  INPUT
          text
    module user_command_0100 input.
    case sy-ucomm.
      when 'BACK'.
      leave to screen 000.
      endcase.
    endmodule.                 " USER_COMMAND_0100  INPUT
    *&      Form  SETTING_SORTING
          text
         <--P_GR_SORT  text
    form setting_sorting  changing p_gr_sort type lvc_t_sort.
    data: lr_sort type lvc_s_sort.
    lr_sort-spos = '1'.
    lr_sort-fieldname = 'VBELN'.
    lr_sort-up = 'X'.
    append lr_sort to p_gr_sort.
    lr_sort-spos = '2'.
    lr_sort-fieldname = 'ERDAT'.
    lr_sort-up = 'X'.
    append lr_sort to p_gr_sort.
    endform.                    " SETTING_SORTING
    *&      Form  GETTING_CELL_DETAILS
          text
         <--P_GR_GET_CELL  text
    form getting_cell_details  changing p_gr_get_cell.
    call method gr_alvgrid->get_selected_cells
      importing
        et_cell = p_gr_get_cell
    *CELL_VALUE = P_GR_GET_CELL-VALUE.
    endform.                    " GETTING_CELL_DETAILS
    *&      Form  SETTING_CELLS
          text
         <--P_GR_SET_CELL  text
    form setting_cells  changing p_gr_set_cell type lvc_t_cell.
    data:s_gr_set_cell type lvc_s_cell.
    s_gr_set_cell-col_id-fieldname = 'NETWR'.
    s_gr_set_cell-row_id-index = '3'.
    append s_gr_set_cell to p_gr_set_cell.
    call method gr_alvgrid->set_selected_cells
      exporting
        it_cells = p_gr_set_cell.
    endform.                    " SETTING_CELLS
    *&      Form  SETTING_HYPERLINKS_FIELD
          text
         <--P_GR_HYPER  text
    form setting_hyperlinks_field  changing p_gr_hyper type lvc_t_hype.
    data: is_hype type lvc_s_hype.
    is_hype-handle = '1'.
    is_hype-href = 'HTTP://WWW.GOOGLE.CO.IN'.
    append is_hype to p_gr_hyper.
    is_hype-handle = '2'.
    is_hype-href = 'HTTP://SDN.SAP.COM'.
    append is_hype to p_gr_hyper.
    endform.                    " SETTING_HYPERLINKS_FIELD
    *&      Form  SETTING_DROPDOWN_COLUMN
          text
         <--P_GR_DROP_DOWN  text
    form setting_dropdown_column  changing p_gr_drop_down type lvc_t_drop.
    data: wa_drop type lvc_s_drop.
    wa_drop-handle = '1'.
    wa_drop-value = '$'.
    append wa_drop to p_gr_drop_down.
    wa_drop-handle = '1'.
    wa_drop-value = 'Rs'.
    append wa_drop to p_gr_drop_down.
    wa_drop-handle = '1'.
    wa_drop-value = 'CUR'.
    append wa_drop to p_gr_drop_down.
    call method gr_alvgrid->set_drop_down_table
      exporting
        it_drop_down       = p_gr_drop_down
       IT_DROP_DOWN_ALIAS =
    endform.                    " SETTING_DROPDOWN_COLUMN
    *&      Form  SETTING_VARIANTS
          text
         <--P_IS_VARIANT  text
    form setting_variants  changing p_is_variant type disvariant.
    p_is_variant-report = sy-repid.
    endform.                    " SETTING_VARIANTS
    *&      Form  HANDLE_HOTSPOT_CLICK
          text
         -->P_E_ROW  text
         -->P_E_COLUMN  text
         -->P_E_ROW_NO  text
    form handle_hotspot_click  using    p_e_row_id type lvc_s_row
                                        p_e_column_id type lvc_s_col
                                        p_es_row_no type lvc_s_roid.
    read table it_vbak index p_es_row_no-row_id.
    if sy-subrc = 0 and p_e_column_id-fieldname = 'ERDAT'.
    line = p_es_row_no-row_id.
    line_number = p_es_row_no-row_id.
    leave to screen 200.
    endif.
    endform.                    " HANDLE_HOTSPOT_CLICK
    *&      Form  CREATING_EVENT_OBJECT
          text
    -->  p1        text
    <--  p2        text
    form creating_event_object .
    data event_handle type ref to gr_event_handler.
    create object event_handle.
    set handler event_handle->handle_hotspot_click for gr_alvgrid.
    endform.                    " CREATING_EVENT_OBJECT
    *&      Module  STATUS_0200  OUTPUT
          text
    module status_0200 output.
      set pf-status 'BB'.
    SET TITLEBAR 'xxx'.
    *LINE = LINE_NUMBER.
    endmodule.                 " STATUS_0200  OUTPUT
    *&      Module  USER_COMMAND_0200  INPUT
          text
    module user_command_0200 input.
    if sy-ucomm = 'BACK'.
    leave to screen 100.
    endif.
    endmodule.                 " USER_COMMAND_0200  INPUT[/code]
    Reward points if helpful
    Thanks,
    Suma.

  • Regarding editable ALV in OOPS

    Hi,
    I have an editable alv.
    I have requirement like i need to validate the data which is edited on pressing "ENTER" or "SAVE"
    for this iam using the event DATA_CHANGED
    and define a local class lcl_event handler and also set handler for it.
    But iam able to validate using this event only if the data is changed inspite of SAVE or ENTER its getting triggered.
    But if the data is not changed its not triggering please suggest me an event which triggers on clicking SAVE in menu bar.
    Thanks,
    Phani.

    Hello
    If the event is not triggered but you need to do the validation then just call the event handler method yourself:
    " PAI: USER_COMMAND module
      CASE gd_okcode.
       WHEN 'SAVE'.
         " Now call your event handler method directly
         go_grid->handle_data_changed( )
           EXPORTING
      WHEN OTHERS.
      ENDCASE.
    Within your event handler method you can easily distinguish between whether the method is triggered by the control framework or by your direct call:
    METHOD handle_data_changed.
    " instance exists -> triggered by framework
      IF ( er_data_changed IS BOUND ).
    " direct call
      ELSE.
      ENDIF.
    ENDMETHOD.
    Regards
      Uwe

  • Regarding colring alv cell

    Hi all,
    I am using lvc_t_scol to color a cell of ALV List. In this, i used as below,
          IF wa_admi_files-status_fil EQ '3'.
            MOVE 'STATUS_FIL' TO wa_color-fname.
            MOVE '6'         TO wa_color-color-col.
            MOVE '1'         TO wa_color-color-int.
            MOVE '0'         TO wa_color-color-inv.
            APPEND wa_color TO t_color.
            wa_joblog-color_cell[] = t_color[].
          ENDIF.
    i am passing different color codes to wa_color-color-col. But color is not changing.
    It is always displaying Green color.
    Please suggest how to resolve this.
    Regards,
    Neha

    m sending u a repost.
    copy it paste.
    execute.
    read n understand each n every line of it.
    tables mara.
    type-POOLS: slis.
    DATA M TYPE I.
    data: begin of itab occurs 0,
          matnr like mara-matnr,
          maTKL like mara-maTKl,
          tcolor type slis_t_specialcol_alv,  "cell
        end of itab.
    data: layout type slis_layout_alv,
          fcat type slis_fieldcat_alv,
          bcat type slis_t_fieldcat_alv.
    data:xcolor type slis_specialcol_alv.
    SELECTION-SCREEN: begin of block abc.
    SElect-OPTIONS: matnr for mara-matnr.
    SELECtion-SCREEN: END OF block abc.
    INITIALIZATION.
      matnr-low = '7'.
      matnr-high = '200'.
      append matnr.
    START-OF-SELECTION.
      select * from mara into CORRESPONDING FIELDS OF table itab where matnr IN MATNR.
    if sy-subrc   = '0'.
      loop at itab.
    M = SY-TABIX MOD 2.
        if m = 1.          "color CELL
          clear xcolor.
          xcolor-fieldname = 'MATKL'.
          xcolor-color-col = '3'.
          xcolor-color-int = '1'. "Intensified on/off
          xcolor-color-inv = '0'.
          append xcolor to itab-tcolor.
        endif.
        if m = 0.          "color CELL
          clear xcolor.
          xcolor-fieldname = 'MATKL'.
          xcolor-color-col = '4'.
          xcolor-color-int = '1'. "Intensified on/off
          xcolor-color-inv = '0'.
          append xcolor to itab-tcolor.
        endif.
        modify itab.
      endloop.
      layout-coltab_fieldname = 'TCOLOR'.
      fcat-COL_POS = '1'.
      fcat-fieldname = 'MATNR'.
      fcat-seltext_l = 'MATERIAL NO'.
      fcat-OUTPUTLEN = '30'.
      APPEND fcat to bcat.
      clear fcat.
    FCAT-COL_POS = '2'.
      FCAT-fieldname = 'MATKL'.
      fcat-seltext_l = 'MATKL'.
      append fcat  to bcat.
      clear fcat.
      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           = 'USER_COMM'
      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                         = LAYOUT
         IT_FIELDCAT                       = BCAT[]
      IT_EXCLUDING                      =
      IT_SPECIAL_GROUPS                 =
      IT_SORT                           =
      IT_FILTER                         =
      IS_SEL_HIDE                       =
         I_DEFAULT                         = 'X'
      I_SAVE                            = ' '
      IS_VARIANT                        =
      IT_EVENTS                         = bdy_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                          = 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.

  • Why has BC stopped sending us email alerts regarding workflow or online form submissions?

    It appears our site has stopped alerting us via email regarding online form submissions...what's going on with this? www.smilegalaxykids.com
    Brent

    It appears the "orders" box is checked as it should be....and I know we haven changed anything recently on our end. (see screen shot attached)

Maybe you are looking for

  • Preinstaller failing at install Application Server Role, Web Server (IIS) Role

    Hi,   I am trying to install SharePoint 2013 on Windows 2008 R2. I have database MS SQL Server 2012 on the same machine itself. My SharePoint Preinstaller fails at installing Application server and Web server roles.. Even though the roles get created

  • Using a Template on a Different Folder

    Hi! I have a website which home page is in \folder1\subf1. It uses a template located on \folder1\subf1\templates. This template has several links referring to files located on \folder1\subf1, and images located on \folder1\subf1\images. I am modifyi

  • How To Cycle a Battery? 12% Health!!!

    How do i cycle it? My health is Down to 12% and its only 18 months old. So any help will do! b and cycle count is 64 if that means anything????? Message was edited by: bradley Glaberson

  • IPhoto on an iPad Air: Save As?

    I opened an image from my iPad Air camera roll in my iPhoto App. Is there a way from inside my iPhoto App to save a duplicate to the camera roll or iPad Air? I get confused in iPhoto when I crop an image, how do I keep the original and work on a dupl

  • Ouvrir Fichiers RAW X30 Fuji avec Lightroom

    Je viens de me procurer le X30 de fuji et il m'est impossible d'ouvrir les fichiers RAW avec la dernière version de Lightroom... Quand pourrais-je les ouvrir?