RE:ALV grid (oops concept)

Hi,
I have an object oriented alv which is having 5 rows of data.I have a pushbutton to make any row in editable mode.My requirement is i will select any row in oops alv grid and press
the button to make the row editable.How can i do this in oops alv.
Can anyone send a sample code for this.
Thanks in advance,
Alex.

See I have an internal table I_output.
and u create a button by name  vald or ente. and then try to implement the below code.
if u still not cleared just give me your mail id, i will send u a program i which we have the same functionality.
WHEN 'VALD' OR 'ENTE'.
        CALL METHOD grid1->check_changed_data.
        CALL METHOD grid1->get_selected_rows
          IMPORTING
            et_index_rows = i_index_rows.
        IF i_index_rows IS INITIAL.
          MESSAGE i000 WITH 'Select Rows to be Saved'.
          EXIT.
        ENDIF.
        LOOP AT i_index_rows INTO wa_index_rows.
          CLEAR: wa_output.
          READ TABLE i_output INDEX wa_index_rows-index INTO wa_output.
          MOVE-CORRESPONDING wa_output TO wa_insert.        "#EC ENHOK
          wa_insert-changed_by = sy-uname.
          wa_insert-change_date  = sy-datum.
          wa_insert-change_time = sy-uzeit.
          APPEND wa_insert TO i_insert.
        ENDLOOP.
        CLEAR: flg_upd.”flag
        LOOP AT i_insert INTO wa_insert.
          PERFORM f0005_validate_data.
          CLEAR: wa_insert, flg_err.
        ENDLOOP.
        IF e_ucomm = 'VALD'.
          IF NOT i_insert[] IS INITIAL.
            LOOP AT i_insert INTO wa_insert.
              UPDATE zfocp_details SET date_ack_rec = wa_insert-date_ack_rec
                                       time_ack_rec = wa_insert-time_ack_rec
                                       changed_by   = wa_insert-changed_by
                                       change_date  = wa_insert-change_date
                                       change_time  = wa_insert-change_time
                                   WHERE text = wa_insert-text
                                   AND   laufd = wa_insert-laufd
                                   AND   laufi = wa_insert-laufi
                                   AND   absbu = wa_insert-absbu
                                   AND   rzawe = wa_insert-rzawe
                                   AND   hbkid = wa_insert-hbkid
                                   AND   hktid = wa_insert-hktid
                                   AND   date_sent = wa_insert-date_sent
                                   AND   time_sent = wa_insert-time_sent.
              IF sy-subrc = 0.
                MESSAGE s000(zf_ebb1) WITH 'Records saved successfully'.
Endif.

Similar Messages

  • RE:ALV grid (oops concept)-to make selected row editable

    Hi,
    I have an object oriented alv which is having 5 rows of data.I have a pushbutton to make any row in editable mode.My requirement is i will select any row in oops alv grid and press
    the button to make the row editable.How can i do this in oops alv.
    thanks,
    Alex

    Hi,
    Use the Link [http://www.sapdev.co.uk/reporting/alv/alvgrid_editable.htm]
    Check demo pgm BCALV_EDIT_05.
    *& Report ZUS_SDN_ALVGRID_EDITABLE_8
    *& Description: editable ALV -> ENTER jumps to next row
    *& Dynpro flow logic: no screen elements, ok_code = GD_OKCODE
    PROCESS BEFORE OUTPUT.
    MODULE STATUS_0100.
    PROCESS AFTER INPUT.
    MODULE USER_COMMAND_0100.
    REPORT zus_sdn_alvgrid_editable_8.
    DATA:
    gd_repid TYPE syst-repid,
    gd_okcode TYPE ui_func,
    gt_fcat TYPE lvc_t_fcat,
    go_docking TYPE REF TO cl_gui_docking_container,
    go_grid TYPE REF TO cl_gui_alv_grid.
    DATA:
    gt_knb1 TYPE STANDARD TABLE OF knb1.
    CLASS lcl_eventhandler DEFINITION
    CLASS lcl_eventhandler DEFINITION.
    PUBLIC SECTION.
    CLASS-METHODS:
    handle_data_changed
    FOR EVENT data_changed OF cl_gui_alv_grid
    IMPORTING
    er_data_changed
    e_onf4
    e_onf4_before
    e_onf4_after
    e_ucomm
    sender.
    ENDCLASS. "lcl_eventhandler DEFINITION
    CLASS lcl_eventhandler IMPLEMENTATION
    CLASS lcl_eventhandler IMPLEMENTATION.
    METHOD handle_data_changed.
    define local data
    cl_gui_cfw=>set_new_ok_code( 'NEXT_ROW' ). " not possible on 4.6c
    CALL METHOD cl_gui_cfw=>set_new_ok_code
    EXPORTING
    new_code = 'NEXT_ROW'
    IMPORTING
    RC =
    " Triggers PAI of dynpro with ok_code = 'NEXT_ROW'
    ENDMETHOD. "handle_data_changed
    ENDCLASS. "lcl_eventhandler IMPLEMENTATION
    PARAMETERS:
    p_bukrs TYPE bukrs DEFAULT '2000' OBLIGATORY.
    START-OF-SELECTION.
    SELECT * FROM knb1 INTO TABLE gt_knb1
    WHERE bukrs = p_bukrs.
    Create docking container
    CREATE OBJECT go_docking
    EXPORTING
    parent = cl_gui_container=>screen0
    ratio = 90
    EXCEPTIONS
    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.
    Create ALV grid
    CREATE OBJECT go_grid
    EXPORTING
    i_parent = go_docking
    EXCEPTIONS
    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.
    " Triggers event DATA_CHANGED when ENTER is pushed
    CALL METHOD go_grid->register_edit_event
    EXPORTING
    i_event_id = cl_gui_alv_grid=>mc_evt_enter
    EXCEPTIONS
    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.
    SET HANDLER:
    lcl_eventhandler=>handle_data_changed FOR go_grid.
    Build fieldcatalog and set hotspot for field KUNNR
    PERFORM build_fieldcatalog_knb1.
    Display data
    CALL METHOD go_grid->set_table_for_first_display
    CHANGING
    it_outtab = gt_knb1
    it_fieldcatalog = gt_fcat
    EXCEPTIONS
    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.
    Link the docking container to the target dynpro
    gd_repid = syst-repid.
    CALL METHOD go_docking->link
    EXPORTING
    repid = gd_repid
    dynnr = '0100'
    CONTAINER =
    EXCEPTIONS
    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.
    ok-code field = GD_OKCODE
    CALL SCREEN '0100'.
    END-OF-SELECTION.
    *& Module STATUS_0100 OUTPUT
    text
    MODULE status_0100 OUTPUT.
    SET PF-STATUS 'STATUS_0100'.
    SET TITLEBAR 'xxx'.
    CALL METHOD go_grid1->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.
    ENDMODULE. " STATUS_0100 OUTPUT
    *& Module USER_COMMAND_0100 INPUT
    text
    MODULE user_command_0100 INPUT.
    go_grid->check_changed_data( ).
    CASE gd_okcode.
    WHEN 'BACK' OR
    'END' OR
    'CANC'.
    SET SCREEN 0. LEAVE SCREEN.
    " NOTE: ENTER button alone works apparently only if the cursor
    " is placed within the command window (left-upper corner)
    WHEN 'ENTER' OR
    'NEXT_ROW'.
    PERFORM set_cursor_next_row.
    WHEN OTHERS.
    ENDCASE.
    CLEAR: gd_okcode.
    ENDMODULE. " USER_COMMAND_0100 INPUT
    *& Form BUILD_FIELDCATALOG_KNB1
    text
    --> p1 text
    <-- p2 text FORM build_fieldcatalog_knb1 .
    define local data
    DATA:
    ls_fcat TYPE lvc_s_fcat.
    CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
    EXPORTING
    I_BUFFER_ACTIVE =
    i_structure_name = 'KNB1'
    I_CLIENT_NEVER_DISPLAY = 'X'
    I_BYPASSING_BUFFER =
    I_INTERNAL_TABNAME =
    CHANGING
    ct_fieldcat = gt_fcat
    EXCEPTIONS
    inconsistent_interface = 1
    program_error = 2
    OTHERS = 3.
    IF sy-subrc 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    LOOP AT gt_fcat INTO ls_fcat
    WHERE ( fieldname = 'ZUAWA' ).
    ls_fcat-edit = abap_true.
    ls_fcat-col_opt = abap_true.
    MODIFY gt_fcat FROM ls_fcat.
    ENDLOOP.
    ENDFORM. " BUILD_FIELDCATALOG_KNB1
    *& Form SET_CURSOR_NEXT_ROW
    text
    --> p1 text
    <-- p2 text FORM set_cursor_next_row .
    define local data
    DATA:
    ls_row TYPE lvc_s_row,
    ls_col TYPE lvc_s_col.
    CALL METHOD go_grid->get_current_cell
    IMPORTING
    E_ROW =
    E_VALUE =
    E_COL =
    es_row_id = ls_row
    es_col_id = ls_col
    ES_ROW_NO =
    ADD 1 TO ls_row-index. " next row
    CALL METHOD go_grid->set_current_cell_via_id
    EXPORTING
    is_row_id = ls_row
    is_column_id = ls_col
    IS_ROW_NO =
    ENDFORM. " SET_CURSOR_NEXT_ROW
    HTH
    Regards,
    Dhruv Shah

  • Dynamically change in size of the custom container using ALV GRID (OOPS)

    Hi Gurus!!!!
    I have an issue with the output of the report which is developed using ALV GRID (OOPS). I have used the custom container occupying full screen (Screen painter). When I execute the report using my PC the output displays report as expected in full screen. The problem is when we execute this report in 19 INCH monitor then there is always gap below the report.
    As per my understanding we should have a code to change the size of custom container dynamically.
    Please suggest some help on this.
    Thanks,
    Hemal Shah

    Hi,
    If you set the attributes, Resizing - Vertical and Horizontal for the customer container, than system will resize the size of the custome continer as per the resolution.
    Hope it helps,
    Sumana

  • HI   ALV USING OOPS CONCEPT

    hi
    i would like to have coding for total and subtotal in alv using oops concept and (not using function module).
    also i would like to have coding for cell color and heading and footer.
    thanx in adv
    rocky

    Hi Rocky,
    please check this link
    http://www.****************/Tutorials/ALV/Total/text.htm
    While modifying field catalog , try the following.
    Field-symbols: <lfs_fieldcat> TYPE lvc_s_fcat.
    LOOP AT i_fieldcat ASSIGNING <lfs_fieldcat>.
    CASE <lfs_fieldcat>-fieldname.
    WHEN 'LOSGR'.
    <lfs_fieldcat>-coltext = text-007.
    <lfs_fieldcat>-do_sum = c_x.
    ENDCASE.
    ENDLOOP.
    Or if you want to use field symbols.
    data: total type ref to data,
    subtotal1 type ref to data.
    field-symbols <total> like gt_sflight.
    field-symbols <subtotal1> like gt_sflight.
    call method grid1->get_subtotals
    importing
    ep_collect00 = total
    ep_collect01 = subtotal1.
    assign total->* to <total>.
    assign subtotal1->* to <subtotal1>.
    Best regards,
    raam

  • Regarding ALV using OOPS Concept

    Hi Experts,
    Can abody explain to me how can i disable some settings in the tool bar of ALV Grid using oops concept??

    Hi Alex,
    You can perform this step, before you call set_table_for_first_display and pass that to this call.
    **Exculude all unnecessary standard function in ALV
      PERFORM exclude_tb_functions CHANGING lt_exclude.
    CALL METHOD g_grid->set_table_for_first_display
        EXPORTING
      is_layout            = gs_layout
          is_variant           = l_variant
          i_save               = 'A'
          it_toolbar_excluding = lt_exclude
        CHANGING
          it_fieldcatalog      = gt_fieldcat
          it_sort              = gt_sort[]
          it_outtab            = it_final[].
    You can exclude all unwanted function in the subroutine.
    FORM exclude_tb_functions  CHANGING pt_exclude TYPE ui_functions.
      DATA ls_exclude TYPE ui_func.
      ls_exclude = cl_gui_alv_grid=>mc_fc_loc_copy_row.
      APPEND ls_exclude TO pt_exclude.
      ls_exclude = cl_gui_alv_grid=>mc_fc_loc_delete_row.
      APPEND ls_exclude TO pt_exclude.
      ls_exclude = cl_gui_alv_grid=>mc_fc_loc_append_row.
      APPEND ls_exclude TO pt_exclude.
    ENDFORM.                    " exclude_tb_functions
    This will give you complete the solution for your query.
    Thanks
    Lakshmi

  • ALV using OOPs concept

    Hi All,
    How do we create a hotspot using OOPs concept in ALV? Also tell me how to call a transaction code after doing a Hotspot click on a field.

    try factory methods like this:
    form display .
    Sort output table
      sort it_out by vbeln_vl vbeln_vf fkart.
      try.
    Using Factory classes for output display
          call method cl_salv_table=>factory
            importing
              r_salv_table = o_table
            changing
              t_table      = it_out.
          o_functions = o_table->get_functions( ).
          o_functions->set_all( abap_true ).
          To sort the table by Delivery, billing document.
          o_sorts = o_table->get_sorts( ).
          o_sorts->add_sort( columnname = 'VBELN_VL' subtotal = abap_true ).
          o_sorts = o_table->get_sorts( ).
          o_sorts->add_sort( columnname = 'VBELN_VF' subtotal = abap_true ).
    To goto transaction*
          o_cevents = o_table->get_event( ).
          create object o_levents.
          set handler o_levents->on_double_click for o_cevents.
      Catch exceptions
        catch cx_salv_msg into o_salv_msg.
          message e184 with o_salv_msg->msgv1
                            o_salv_msg->msgv2
                            o_salv_msg->msgv3
                            o_salv_msg->msgv4.
        catch cx_salv_not_found   into o_salv_not_found.
          message e184 with o_salv_not_found->object
                         o_salv_not_found->textid
                         o_salv_not_found->key
                         o_salv_not_found->method.
        catch cx_salv_data_error into  o_salv_data_error .
          message e184 with o_salv_data_error->object
                         o_salv_data_error->textid
                         o_salv_data_error->key
                         o_salv_data_error->method.
        catch cx_salv_existing into  o_salv_existing .
          message e184 with o_salv_existing->object
                         o_salv_existing->textid
                         o_salv_existing->key
                         o_salv_existing->method.
      endtry.
    Display
      o_table->display( ).
    endform.                    " display
    *&      Form  disp_line_item
    To display the delivery data using transaction VL03n*
           on double click on any row.*
    form disp_line_item  using    fp_row type salv_de_row
                                  fp_column type salv_de_column.
    Read the output table*
      read table it_out into wa_out index fp_row.
      if sy-subrc eq 0 .
        set parameter id 'VL' field wa_out-vbeln_vl.
        call transaction 'VL03N' and skip first screen. " Call transaction vl03n
      endif.
    endform.                    " disp_line_item
    Edited by: kartik tarla on Dec 15, 2008 7:35 PM

  • ALV Grid OOPS error

    Hi all,
    I am using ALV oops for displaying table.
    CL_GUI_ALV_GRID->set_table_for_first_display.
    I  have cretaed an Custom Container for this.
    Now scenario is like, First i have to display normal classical report when user double click on classical report
    it will show alv grid on other screen depending on the row of report user clicks i am picking data and showing it on other screen as ALV grid.
    First time its showing correct data when i press back on ALV grid screen and came back on report screen and select other row and double click  its not showing anything ..
    Please help.
    Its required very urgently by client.
    Thanks in advance..
    Harsh

    Hi,
    Check whether the internal table in which you are passing data to the grid has the correct data.
    Do not call the method set_table_for_first_display once again.
    Instead call the method REFRESH_TABLE_DISPLAY.
    Call the method SET_TABLE_FOR_FIRST_DISPLAY only once when the ALV grid object is created.
    Call the method  flush of the class cl_gui_cfw in the PBO after the grid is displayed; after the method SET_TABLE_FOR_FIRST_DISPLAY
    Check if this works.
    Regards,
    Ankur Parab

  • Dopdown Listbox in ALV Grid OO Concept

    Is it possible to put a dropdownlist bow for an alv grid?
    Is it possible to put different List of values for same cell of column ?
    How do we do it ?
    regards,

    Hi,
    steps..
    1. X_FIELDCAT-DRDN_HNDL = '1'. "pass this to the field you want to show as drop down
    2.
    DATA: X_OCRC LIKE LINE OF IT_OCRC.
      DATA:LT_DRAL TYPE LVC_T_DRAL,
            LS_DRAL TYPE LVC_S_DRAL.
      LOOP AT IT_OCRC INTO X_OCRC.
    * First listbox (handle '1').
        IF SY-INDEX = 1.
          LS_DRAL-HANDLE = '1'.
          LS_DRAL-VALUE =  ' '.
          LS_DRAL-INT_VALUE =  ' '.
        ELSE.
          LS_DRAL-HANDLE = '1'.
          LS_DRAL-VALUE =  X_OCRC-COMBI.
          LS_DRAL-INT_VALUE =  X_OCRC-COMBI.
        ENDIF.
        APPEND LS_DRAL TO LT_DRAL.
      ENDLOOP.
    **Setting the Drop down table for field1
      CALL METHOD G_GRID->SET_DROP_DOWN_TABLE
        EXPORTING
          IT_DROP_DOWN_ALIAS = LT_DRAL.
    Regards
    vijay

  • Obtaining subtotals based on 2 fields.(ALV using oops concept)

    Need help on how to apply sort on 2 fields and obtain subtotals.For example if I have some records for similar tax code and some more records  for a similar tax jurisdiction (under which all tax codes come).I need to calculate subtotals for same tax code as well as same tax jurisdiction code.Currently I am able to generate subtotals by sorting on 1 field only ,using OOPs concept.How do I apply for both the fields? This is what is being done currently with regard to sorting and subtotaling : 
    METHOD set_sorts.
    lr_sorts = gr_alv_data->get_sorts( ).
    TRY.
            lr_sorts->add_sort( 'TXJCD' ). ---sorting based on tax jurisdiction
          CATCH: cx_salv_not_found,
                cx_salv_existing,
                cx_salv_data_error.
        ENDTRY.
        TRY.
            lr_sorts->add_sort( columnname = 'MSKWZ'
                                        subtotal = if_salv_c_bool_sap=>true ).
          CATCH cx_salv_data_error cx_salv_not_found
                cx_salv_existing.                          
        ENDTRY.
      ENDMETHOD.                    "set_sorts
    Thanks & Regards,
    Savitha

    Hi Savitha,
    Use the other paramenters like POSITION, SEQUENCE, SUBTOTAL for both fields like as follows. Then it will work fine.
    TRY.
    lr_sorts->add_sort( columnname = 'TXJCD'
    sequence = 1
    Position = 1
    subtotal = if_salv_c_bool_sap=>true ).
    CATCH cx_salv_data_error cx_salv_not_found
    cx_salv_existing.
    ENDTRY.
    TRY.
    lr_sorts->add_sort( columnname = 'MSKWZ'
    sequence = 2
    Position = 1
    subtotal = if_salv_c_bool_sap=>true ).
    CATCH cx_salv_data_error cx_salv_not_found
    cx_salv_existing.
    ENDTRY.

  • How to decrease the row height in ALV Grid (OOPS).

    HI Experts,
    I have displayed ALV Grid using CL_GUI_ALV_GRID=>SET_TABLE_FOR_DISPLAY.
    I want to decrease the row height and width.
    Can any one suggest how to do this?
    Regards,
    Kumar.

    Hi Kumar,
    Row height it predefined and you won't change it, but you can adjust column width.
    For that use field COL_OPT of layout structure ( type LVC_SLAYO ) to optimize all columns width, or set explicit width using field catalog, setting field OUTPUTLEN for certain column.
    Regards
    Marcin

  • Populate a field on TAB press in ALV Grid (OOPs)

    Hi Experts,
    I have an ALV(oops) with cl_gui_alv_grid. I have a field MATNR as empty and when i input a value and i press TAB key d anit should go to next field (next coulmn) to fill the  old material# which can be got from MARA.
    I am not able to get the sy-ucomm or e_ucomm for TAB press.
    Q) WHERE should i write my query logic to fill the OLD MAtnr field.
    code sample : I have data change event as below.
    class lcl_event_handler definition
    PUBLIC SECTION .
        METHODS:
      changed_data for event data_changed of cl_gui_alv_grid importing er_data_changed
                                                                               e_ucomm sender,
    ENDCLASS.
    in Implemntation class...
    CLASS LCL_EVENT_HANDLER IMPLEMENTATION.
    METHOD changed_data.
        clear:      ls_stable-row, ls_stable-col.
       loop at er_data_changed->mt_mod_cells into ls_modified.
        clear wa_outdisp.
        READ TABLE gt_outdisp INTO wa_outdisp INDEX ls_modified-row_id.
        CHECK sy-subrc EQ 0.
        lv_field =  ls_modified-fieldname.
        if lv_field = 'MATNR'.
          wa_outdisp-MATNR = ls_modified-value.
          wa_outdisp-bismt = '123'.
        endif.
        MODIFY gt_outdisp FROM wa_outdisp INDEX ls_modified-row_id.
        ls_stable-row = 'X'.
        ls_stable-col = 'X'.
        grid->refresh_table_display( exporting is_stable = ls_stable  ).
        endloop.
      ENDMETHOD.                    "changed_data
    ENDCLASS.
    How can i do this?
    Thanks
    Dan

    Max,
    Yes i am using that event. I am using it before grid -> set_first_display method.
    The debugger is not stopping inside the data change method when i placed a break point.
    I am using refresh method also.
    My code for  sy-ucomm is as below.
    when'NEWROW '
        when others.
          CALL METHOD cl_gui_cfw=>dispatch
            IMPORTING
              return_code = w_return_code.
          CALL METHOD grid->register_edit_event
            EXPORTING
              i_event_id = cl_gui_alv_grid=>mc_evt_modified.

  • ALV GRID OOPS: Output refresh from data base

    Hi All,
    I have below issue.
    I display ALV and select a row and click a button to transfer stock for the selected row.
    I used BAPI_GOODSMOVEMENT_CREATE to update and after material document got posted, the row should update its stock information.
    Is there any solution without reselecting all data?
    Regards,
    Pratyusha

    You will have to select the latest data from the DB, so prepare the 'ITAB' containing your data again (should work if you change only for this row only).
    I believe after the BAPI commit call, refresh your ALV using REFRESH_TABLE_DISPLAY, modify the itab with new data and then call SET_TABLE_FOR_FIRST_DISPLAY.
    Regards,
    Diwakar

  • OOPS CONCEPTS IN  ALV

    Hi ,
          Can anyone help me out where we use the concepts of oops in alv's..I nned to work on alv with oops concepts so do anyone have any kind of material for oops concepts in alv.Can u pls tell me do we use any oops specific function modules to generate an alv report ??? Pls help me out ASAP in this regard..

    The following site points you in the direction of a few standard SAP programs which create OOPS ALV grids.
    http://www.sapdevelopment.co.uk/reporting/alv/alvscr.htm

  • Enable User Defined toolbar button on click -  editable alv grid using oops

    Hi all,
    I  have created editable alv using  oops concept.
    created 2 user defined toolbar button save and print using method toolbar
      ls_toolbar-text      = 'Print'.                         "#EC NOTEXT
        ls_toolbar-quickinfo = space.
        ls_toolbar-checked   = space.
        APPEND ls_toolbar TO e_object->mt_toolbar.
    requirement is
    initially print button should be disabled, and save enabled
    when i click save button, print button should be enabled.
    I want coding in editable alv oops concept
    kindly help
    regards
    senthil kumar

    Halo Senthil,
    You should call set_toolbar_interactive method of cl_gui_alv_grid in the on_user_command( ie the event handler for event user command) .
    method on_user_command.
    case e_ucomm.
    when 'SAVE'. or whatever your function code is .
    my_save_flag = 'X'.
    call method grid->set_toolbar_interactive.
    endmethod.
    This triggers the toolbar event of the
    cl_gui_alv_grid. Inside the eventhandler method ( ie the on_toolbar method ) you should set the toolbar.
    if my_save_flag = 'X'.
    read table e_object->mt_toolbar
    clear l_toolbar-disabled.
    modify e_object->mt_toolbar.
    endif.
    e_ucomm will not have  the function code if the save button is not in the toolbar area.
    then you can set the my_save_flag in the data_changed event handler of the Cl_gui_alv_grid.
    Regards
    Arshad

  • How to get Subtotal text in ALV using OOPS

    hi,
    Can any one pls help me out getting  <b>subtotals text</b> in ALV using OOPS concepts....Pls provide me if any of u have  sample code for that......
    my code:
    data:gr_grid_d0100 type ref to cl_gui_alv_grid.
    data : gr_events_d0100   type ref to lcl_events_d0100.
    classes**********
    class lcl_events_d0100 definition.
      public section.
        methods:
    subtotal_text for event subtotal_text
                        of cl_gui_alv_grid
                        importing es_subtottxt_info
                        ep_subtot_line
                        e_event_data.
    endclass.
    class lcl_events_d0100 implementation.
    method subtotal_text.
        perform d0100_event_subtotal_text using       es_subtottxt_info
    ep_subtot_line
    e_event_data.
      endmethod.                    "subtotal_text
    endclass.
    data : gr_event_handler type ref to lcl_events_d0100.
    SET HANDLER gr_event_handler->subtotal_text FOR wcl_alv_grid_request
    FORM d0100_event_subtotal_text USING
          es_subtottxt_info TYPE LVC_S_STXT
          ep_subtot_line TYPE REF TO data
          e_event_data TYPE REF TO cl_alv_event_data.
      DATA: l_text TYPE string.
      l_text = es_subtottxt_info.
      FIELD-SYMBOLS: <fs> TYPE ANY.
      ASSIGN e_event_data->m_data->* TO <fs>.
                            <fs> = text-007.

    hi vijay
    check this code
    if you want to use field symbols.
    data: total type ref to data,
    subtotal1 type ref to data.
    field-symbols <total> like gt_sflight.
    field-symbols <subtotal1> like gt_sflight.
    call method grid1->get_subtotals
    importing
    ep_collect00 = total
    ep_collect01 = subtotal1.
    assign total->* to <total>.
    assign subtotal1->* to <subtotal1>.
    or u can use
    U have to do the subtotal column wise.In the field catalog specify the following in addition to the corresponding field name(i.e. Column)
    DATA ls_fcat TYPE lvc_s_fcat.
    ls_fcat-do_sum = 'X'.
    Hope this helps u out.
    Thanks & Regards,
    naveen

Maybe you are looking for