Selecting rows in ALV Grid using Classes

I am displaying the output in ALV grid format.
Now i am using cl_gui_alv_grid->Get_selected_ROWS to get the row index selected by User and on clicking a button it will take us to another screen which will hold the values of the selected row.
Problem Faced: But when we again go back to the first screen and select another row  or same rows and click this button the selected rows index remains initial, that value is not getting captured.
I cleared the parameters and refershed grid also.
But the problem is not yet solved.
Please Give me the solution.
Regards,
Balaji.

Hi Lavanya,
I did debugging also.
First time Get_Selected_rows is working fine.
But Second time it is failed.

Similar Messages

  • Editable ALV-Grid  Using Class

    Hi experts.....
    I like to know How to create Editable ALV Grid using Class...
    Also i like to to know how to add The contains to Z-Table...
    Whether we can delete ALV grid contents........
    ...Thanks
    ..Ashish

    Hello Ashish
    You may want to have a look at thread Select Row in OO-ALV programmatically
    Regards
      Uwe

  • HOW CAN I HAVE THE NUMBER OF SELECTED ROWS IN ALV GRID?

    HI.
    HOW CAN I HAVE THE NUMBER OF SELECTED ROWS IN ALV GRID????
    GABRY =)

    You need to use
    data : grid1  type ref to cl_gui_alv_grid.
      call method grid1->get_selected_rows
        importing
          et_index_rows = i_sel_alvrows[].

  • Header in alv grid using class

    Hello All,
        I developed alv grid using class method.
    First I created CREATE OBJECT GR_CCONTAINER
    then  CREATE OBJECT GR_ALVGRID
    then  PERFORM FIELD_CATALOG TABLES GT_FIELDCAT----
    for field catalog
        PERFORM LAYOUT CHANGING GS_LAYOUT.----
    for header
        p_gs_layout-grid_title = 'class method'.
      p_gs_layout-sel_mode = 'D'.
      APPEND P_GS_LAYOUT TO IT_LAYOUT.
    and finally CALL METHOD GR_ALVGRID->SET_TABLE_FOR_FIRST_DISPLAY
    the report is cooming fine but in header it comes only "class method".
    but i need also
    1. reporting date
    2. reporting time.
       can any body tell me how i can i put 2 more heading line
    Thanks,
    Rakesh

    Hi Dude,
    Please refer the below link how to handle  the header in alv using abap oo
    https://www.sdn.sap.com/irj/scn/wiki?path=/display/snippets/abapObjects-ALVModel-UsingHeaderand+Footer
    Hope it clears,..............
    Thanks & Regards
    Ramakrishna Pathi

  • Is it possbile to create ALV Grid using Class &  without using SE51

    Is it possible to create a alv grid using Class, with out using the screen painter(SE51).

    Hi Preethi,
    It is possible to creat ALV grid using class, provided u have to create a custom control in the screen dialog.
    Try with the foll code. This is an example for flight detail.
    DATA: container TYPE REF TO cl_gui_custom_container,
          alv_con TYPE REF TO cl_gui_alv_grid.
    data : it_sflight like table of wa with header line,
           g_fieldcat type lvc_t_fcat.
    /* Paste the code the PBO
        CREATE OBJECT container
          EXPORTING
            container_name              = 'C_SPFLI'. "Specify the container name which u created in the dialog screen.
        CREATE OBJECT alv_con
          EXPORTING
            i_parent          = container.
    /* Use the foll. to dislay the report
    CALL METHOD cl_grid->set_table_for_first_display
            EXPORTING
             I_STRUCTURE_NAME              = 'SFLIGHT'
            CHANGING
              it_outtab                     = it_sflight[]
              IT_FIELDCATALOG               = g_fieldcat.
    First create the container and then place the ALV in the container and for dislaying pass the necessary table.
    Hope this will useful for u.
    Get back if u r unable to do it.
    Regards
    Router

  • How to detect a selected row in ALV GRID

    Hi,
    Can anyone tell me how to detect and catch an event when a row is selected in an ALV GRID?
    I would like to catch such event when the end user presses Ctrl + Shif + Space bar.
    Thank you and best regards.
    Hassane.

    Hi,
    Use this wiki link, to have a checkbox with all the records in ALV Grid and to process those selected records at a user command, as per the requirement.
    https://www.sdn.sap.com/irj/scn/wiki?path=/display/snippets/alv%252bgrid%252bdisplay%252bwith%252bcheckbox%252bto%252bprocess%252bselected%252brecords%252bat%252bruntime
    Hope this solves your problem.
    Thanks & Regards,
    Tarun Gambhir

  • Coulmn validation on ALV Grid (using Classes)

    Hi All,
       I'm creating a ALV Grid using calsses. I want to check the column value of Grid and raise some errror message. How to do this.
    Regards
    Jaker.

    have a look at sample report BCALV_EDIT_03

  • Displaying the selected rows in ALV Grid output

    Hi Experts,
    I am developing one interactive ALV Grid report where user can process the selected records/rows from the ALV Grid output.
    for displaying the ALV Grid, I have used the class CL_GUI_ALV_GRID class. I am working on ECC 6.0 system.
    when I select any records/rows from output and then press any Application Toolbar button, PAI and then PBO modules of the screen gets executed as per the normal flow.
    however After PBO, when same ALV output comes, all the selected/highlighted rows appear as unselected, that means I want to retain the ALV
    rows selection during the round trip.
    please advise.
    Regards,
    Jagesh

    Hi,
    Feiyun Wu is correct.
    Get_selected_rows and set_selected_rows are the methods to be used .
    Some code:
    Note the sequence of code:
    FORM set_gui_alv_grid_1 .
      DATA: wa_layout TYPE lvc_s_layo ,
            wa_print TYPE lvc_s_prnt .
      DATA: it_sort TYPE lvc_t_sort ,
            wa_sort TYPE LINE OF lvc_t_sort .
      DATA: it_fieldcatalog TYPE lvc_t_fcat.
      IF gui_custom_container_1 IS INITIAL .
        CREATE OBJECT gui_custom_container_1
          EXPORTING
            container_name = 'GUI_CUSTOM_CONTAINER_1'
          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.
        ENDIF.
        PERFORM get_field_catalog
          USING gc_log_group_1
          CHANGING it_fieldcatalog  .
        CREATE OBJECT gui_alv_grid_1
          EXPORTING i_parent = gui_custom_container_1.
        CREATE OBJECT ob_event_receiver_1
          EXPORTING log_group = gc_log_group_1 .
    * registers the event handlers
        SET HANDLER ob_event_receiver_1->handle_toolbar      FOR gui_alv_grid_1 .
        SET HANDLER ob_event_receiver_1->handle_user_command FOR gui_alv_grid_1 .
        SET HANDLER ob_event_receiver_1->print_top_of_page   FOR gui_alv_grid_1 .
        SET HANDLER ob_event_receiver_1->hotspot_click       FOR gui_alv_grid_1 .
        wa_layout-cwidth_opt = abap_true .
    *   wa_layout-excp_fname = gc_excp_fname .
    *   wa_layout-ctab_fname = gc_ctab_fname.
    *   wa_layout-excp_led   = abap_true .
        CALL METHOD gui_alv_grid_1->set_table_for_first_display
          EXPORTING
            is_layout       = wa_layout
            is_print        = wa_print
            i_save          = 'A'
            is_variant      = gs_disvariant_1
          CHANGING
            it_sort         = it_sort
            it_fieldcatalog = it_fieldcatalog
            it_outtab       = it_alv_grid_1.
      ELSE .
        CALL METHOD gui_alv_grid_1->refresh_table_display.
    * Restore selections
        CALL METHOD gui_alv_grid_1->set_selected_rows
          EXPORTING
            it_index_rows = ob_event_receiver_1->it_rows.
    * Restore position
        CALL METHOD gui_alv_grid_1->set_scroll_info_via_id
          EXPORTING
            is_col_info = ob_event_receiver_1->wa_col
            is_row_no   = ob_event_receiver_1->wa_roid.
      ENDIF.
    ENDFORM .                    "set_gui_alv_grid_1
    Regards.

  • Problem in selecting rows in ALV Grid

    Hi All,
    I am doing a ALV Grid program using Classes. when i select 2 rows from that grid and executes,
    it going next screen. Again when  i am using back button and selecting same rows or different rows from teh same Grid and executing it is not retrieving any rows. In dedugger it is showing that the there is no selection of rows.
    Please suggest me the solution.
    Thanks in advance,
    Regards,
    Balaji.

    Hi chaitanya,
    I am not clearing any code.
    please find the code...
    CALL METHOD g_grid1->get_selected_rows
            IMPORTING
              et_index_rows = w_lvc_t_row_1.
          IF w_lvc_t_row_1 IS INITIAL.
            MESSAGE e004(zmsg).
          ELSE.
            CLEAR it_memis1-signal.
            REFRESH po_memis1.
            LOOP AT w_lvc_t_row_1 INTO w_lvc_s_row_1.
              READ TABLE it_memis1 INTO po_memis1 INDEX w_lvc_s_row_1-index.
              SELECT SINGLE name INTO v_nam FROM icon WHERE id = po_memis1-signal.
              IF v_nam = 'ICON_LED_GREEN' OR v_nam = 'ICON_LED_YELLOW'.
                APPEND po_memis1.
                CLEAR po_memis1-signal.
              ELSE.
                MESSAGE 'This item Cannot be processed due to errors' TYPE 'E'.
              ENDIF.
            ENDLOOP.
          ENDIF.
    regards,
    Balaji.

  • How to Calculate sum for the selected rows in ALV gird using custom button

    Hi I am trying to implement an ALV Grid display where the user can select few rows in the output and if he click on some custom button he should get the sum for only those rows.
    Can anyone give me some idea regarding this.
    Thanks in advance

    While building the fieldcatalog for amount field use gt_fieldcat-do_sum = 'X'. And use the below for doc type sorting and subtotal.
    *  ALV data declarations
      data: it_sortcat   type slis_sortinfo_alv occurs 1,
            wa_sort like line of it_sortcat.
    perform build_sortcat.
    *&      Form  build_sortcat
    *       Build Sort catalog
    FORM build_sortcat .
      wa_sort-spos      = 1.
      wa_sort-fieldname = 'EBELN'.
      wa_sort-SUBTOT    = 'X'. "subtotals any totals column by this field
    *  gd_sortcat-tabname
      APPEND wa_sort TO it_sortcat.
      wa_sort-spos      = 2.
      wa_sort-fieldname = 'EBELP'.
    *  gd_sortcat-tabname
      APPEND wa_sort TO it_sortcat.
    ENDFORM.                    " build_sortcat
    call function 'REUSE_ALV_LIST_DISPLAY'
           exporting
                i_callback_program      = gd_repid
                i_callback_top_of_page   = 'TOP-OF-PAGE'
                is_layout               = gd_layout
                it_fieldcat             = fieldcatalog[]
                it_sort                 = it_sortcat
                i_save                  = 'X'
           tables
                t_outtab                = it_ekko
           exceptions
                program_error           = 1
                others                  = 2.
    Regards,
    Chandru

  • ALV Grid using classes

    Hi gurus,
               can anyone send me sample code to develop a repot using classes with all possibilities i.e, using events and interactive, pop-up.
    Best answers wil be rewarded.
    Regards,
    alson

    REPORT zex35 MESSAGE-ID zsmg NO STANDARD PAGE HEADING.
    INCLUDE <icon>.
    CLASS myclass DEFINITION DEFERRED.
    TABLES: vbak,kna1.
    TYPE-POOLS: slis,sdydo.
    DATA: BEGIN OF jtab OCCURS 0,
          ch(1),
          vbeln LIKE vbak-vbeln,
          erdat LIKE vbak-erdat,
          kunnr LIKE vbak-kunnr,
          ernam LIKE vbak-ernam,
          netwr LIKE vbak-netwr,
          knumv LIKE vbak-knumv,
          bstnk LIKE vbak-bstnk,
          ktext LIKE vbak-ktext,
          styletable TYPE lvc_t_styl,
          rowcolor(4),
          cellcolor TYPE lvc_t_scol,
          ptype_dd_hndl TYPE int4 ,
          END OF jtab.
    DATA : ejtab LIKE jtab OCCURS 0 WITH HEADER LINE.
    DATA: BEGIN OF vjtab OCCURS 0,
          vbeln LIKE vbak-vbeln,
          erdat LIKE vbak-erdat,
          kunnr LIKE vbak-kunnr,
          ernam LIKE vbak-ernam,
          netwr LIKE vbak-netwr,
          knumv LIKE vbak-knumv,
          bstnk LIKE vbak-bstnk,
          ktext LIKE vbak-ktext,
          END OF vjtab.
    DATA: alv TYPE scrfname VALUE 'ALV',
          obj_c_container_alv TYPE REF TO cl_gui_custom_container,
          obj_grid TYPE REF TO cl_gui_alv_grid,
          obj_myclass TYPE REF TO myclass,
          i_fieldcat TYPE lvc_t_fcat,
          wa_fieldcat LIKE LINE OF i_fieldcat,
          ei_fieldcat TYPE lvc_t_fcat,
          ewa_fieldcat LIKE LINE OF i_fieldcat,
          gs_layout   TYPE lvc_s_layo.
    DATA:   l_rows TYPE lvc_t_row.
    DATA :  modi TYPE  lvc_s_modi ,
            rowid TYPE i,
            ind TYPE i,
            wjtab LIKE jtab,
            it_exclude TYPE ui_functions,
            it_sort TYPE lvc_t_sort,
            it_filt TYPE lvc_t_filt,
            gi_index_rows TYPE lvc_t_row,
            g_selected_row LIKE lvc_s_row.
    DATA: ls_edit TYPE lvc_s_styl,
          lt_edit TYPE lvc_t_styl.
    DATA: ls_outtab LIKE LINE OF jtab.
    CALL SCREEN 100.
          CLASS MYCLASS DEFINITION
    CLASS myclass DEFINITION.
      PUBLIC SECTION.
        METHODS:
        toolbar FOR EVENT toolbar OF cl_gui_alv_grid IMPORTING e_object
                 e_interactive,
        user_command FOR EVENT user_command OF cl_gui_alv_grid IMPORTING
                 e_ucomm.
       after_user_command FOR EVENT BEFORE_user_command OF cl_gui_alv_grid
             IMPORTING
                e_ucomm,
       handle_change_click
        FOR EVENT data_changed OF cl_gui_alv_grid IMPORTING
             er_data_changed.
       handle_change_click
        FOR EVENT data_changed OF cl_gui_alv_grid IMPORTING
             er_data_changed.
    ENDCLASS.
          CLASS MYCLASS IMPLEMENTATION
    CLASS myclass IMPLEMENTATION.
      METHOD toolbar.
        DATA: ls_toolbar  TYPE stb_button.
        CLEAR ls_toolbar.
        MOVE 3 TO ls_toolbar-butn_type.
        APPEND ls_toolbar TO e_object->mt_toolbar.
        CLEAR ls_toolbar.
        MOVE 'BACK' TO ls_toolbar-function.
       MOVE icon_previous_object TO ls_toolbar-icon.
        MOVE 'BACK' TO ls_toolbar-text.
        MOVE ' ' TO ls_toolbar-disabled.
        APPEND ls_toolbar TO e_object->mt_toolbar.
        CLEAR ls_toolbar.
        MOVE 'CLEA' TO ls_toolbar-function.
       MOVE icon_refresh TO ls_toolbar-icon.
        MOVE 'CLEAR' TO ls_toolbar-text.
        MOVE ' ' TO ls_toolbar-disabled.
        APPEND ls_toolbar TO e_object->mt_toolbar.
        CLEAR ls_toolbar.
        MOVE 'TEXT' TO ls_toolbar-function.
       MOVE icon_display TO ls_toolbar-icon.
        MOVE 'READ' TO ls_toolbar-text.
        MOVE ' ' TO ls_toolbar-disabled.
        APPEND ls_toolbar TO e_object->mt_toolbar.
        CLEAR ls_toolbar.
        MOVE 'INSERT' TO ls_toolbar-function.
       MOVE icon_display TO ls_toolbar-icon.
        MOVE 'INSERT' TO ls_toolbar-text.
        MOVE ' ' TO ls_toolbar-disabled.
        APPEND ls_toolbar TO e_object->mt_toolbar.
        CLEAR ls_toolbar.
        MOVE 'FCAT' TO ls_toolbar-function.
       MOVE icon_display TO ls_toolbar-icon.
        MOVE 'FCAT' TO ls_toolbar-text.
        MOVE ' ' TO ls_toolbar-disabled.
        APPEND ls_toolbar TO e_object->mt_toolbar.
      ENDMETHOD.
    METHOD after_user_command.
       CASE e_ucomm.
         WHEN '&LOCAL&INSERT_ROW'.
           PERFORM insert_data.
       ENDCASE.
    ENDMETHOD.
      METHOD user_command.
        CASE e_ucomm.
          WHEN 'BACK'.
            LEAVE PROGRAM.
          WHEN 'INSERT'.
            PERFORM insert_data.
          WHEN 'FCAT'.
            PERFORM fcat_change.
        ENDCASE.
      ENDMETHOD.
    METHOD handle_change_click.
       LOOP AT er_data_changed->mt_mod_cells INTO modi.
         rowid = modi-row_id.
         READ TABLE jtab INTO wjtab INDEX rowid.
      WJTAB-VBELN = MODI-VALUE.
         MODIFY jtab FROM wjtab INDEX rowid.
       ENDLOOP.
    ENDMETHOD.
    ENDCLASS.
    *&      Module  STATUS_0100  OUTPUT
    MODULE status_0100 OUTPUT.
      CASE sy-ucomm.
        WHEN 'EXIT'.
          LEAVE PROGRAM.
        WHEN 'DISPLAY'.
          SELECT  vbeln erdat kunnr ernam netwr knumv bstnk ktext
              FROM vbak INTO CORRESPONDING FIELDS OF TABLE vjtab
              WHERE vbeln LT  '0000000500'.
          PERFORM display1.
        WHEN 'EXIT'.
          LEAVE PROGRAM.
      ENDCASE.
    ENDMODULE.                 " STATUS_0100  OUTPUT
    *&      Form  display1
    FORM display1.
      CREATE OBJECT obj_c_container_alv
        EXPORTING
          container_name              = alv.
      IF obj_grid IS INITIAL.
        CREATE OBJECT obj_grid
              EXPORTING
                i_parent          = obj_c_container_alv.
        CREATE OBJECT obj_myclass.
        SET HANDLER obj_myclass->toolbar FOR obj_grid.
        SET HANDLER obj_myclass->user_command FOR obj_grid.
       SET HANDLER obj_myclass->handle_change_click FOR obj_grid.
       gs_layout-sel_mode = 'C'.
       gs_layout-cwidth_opt = 'X'.
       gs_layout-smalltitle = 'X'.
        gs_layout-grid_title = 'ALV TITLE'.
       gs_layout-no_headers = 'X'.
        gs_layout-stylefname = 'STYLETABLE'.
       gs_layout-no_hgridln = 'X'.
       gs_layout-no_vgridln = 'X'.
       gs_layout-NO_ROWMARK = 'X'.
       gs_layout-no_toolbar = 'X'.
        gs_layout-info_fname = 'ROWCOLOR'.
        gs_layout-ctab_fname = 'CELLCOLOR'.
        LOOP AT vjtab.
          jtab-vbeln = vjtab-vbeln.
          jtab-erdat = vjtab-erdat.
          jtab-kunnr = vjtab-kunnr.
          jtab-ernam = vjtab-ernam.
          jtab-netwr = vjtab-netwr.
          jtab-knumv = vjtab-knumv.
          jtab-bstnk = vjtab-bstnk.
          jtab-ktext = vjtab-ktext.
          APPEND jtab.
          CLEAR jtab.
        ENDLOOP.
        PERFORM build_fieldcat.
        PERFORM exclude_toolbaricons CHANGING it_exclude.
        PERFORM sort_table CHANGING it_sort.
        PERFORM filter_table CHANGING it_filt.
        PERFORM rowcolor.
        PERFORM colcolor.
        PERFORM drilldown_values.
        CALL METHOD obj_grid->set_table_for_first_display
          EXPORTING
            i_structure_name              = 'JTAB'
            is_layout                     = gs_layout
            it_toolbar_excluding          = it_exclude
          CHANGING
            it_outtab                     = jtab[]
           it_sort                       = it_sort
            it_filter                     = it_filt
            it_fieldcatalog               = i_fieldcat.
      ELSE .
        CALL METHOD obj_grid->refresh_table_display.
      ENDIF.
    ENDFORM.                                                    " display1
    *&      Form  SAVE_DATA
    FORM save_data.
    ENDFORM.                    " SAVE_DATA
    *&      Form  INSERT_DATA
    FORM insert_data.
      DATA:l_lines TYPE i.
      REFRESH gi_index_rows.
      CLEAR   g_selected_row.
      DATA ls_listrow LIKE LINE OF jtab .
      CALL METHOD obj_grid->get_selected_rows
        IMPORTING
          et_index_rows = gi_index_rows.
      READ TABLE gi_index_rows INTO g_selected_row INDEX 1.
      ind = g_selected_row-index + 1.
      INSERT INITIAL LINE INTO jtab INDEX ind.
      READ TABLE jtab INDEX ind.
      CLEAR ls_edit.
      ls_edit-fieldname = 'VBELN'.
      ls_edit-style = cl_gui_alv_grid=>mc_style_disabled.
      INSERT ls_edit INTO TABLE lt_edit.
    CLEAR ls_edit.
    ls_edit-fieldname = 'ERDAT'.
    ls_edit-style = cl_gui_alv_grid=>mc_style_enabled.
    INSERT ls_edit INTO TABLE lt_edit.
      CLEAR ls_edit.
      ls_edit-fieldname = 'KUNNR'.
      ls_edit-style = cl_gui_alv_grid=>mc_style_enabled.
      INSERT ls_edit INTO TABLE lt_edit.
      CLEAR ls_edit.
      ls_edit-fieldname = 'ERNAM'.
      ls_edit-style = cl_gui_alv_grid=>mc_style_enabled.
      INSERT ls_edit INTO TABLE lt_edit.
    CLEAR ls_edit.
    ls_edit-fieldname = 'NETWR'.
    ls_edit-style = cl_gui_alv_grid=>mc_style_enabled.
    INSERT ls_edit INTO TABLE lt_edit.
      CLEAR ls_edit.
      ls_edit-fieldname = 'KNUMV'.
      ls_edit-style = cl_gui_alv_grid=>mc_style_enabled.
      INSERT ls_edit INTO TABLE lt_edit.
      CLEAR ls_edit.
      ls_edit-fieldname = 'BSTNK'.
      ls_edit-style = cl_gui_alv_grid=>mc_style_enabled.
      INSERT ls_edit INTO TABLE lt_edit.
    CLEAR ls_edit.
    ls_edit-fieldname = 'KTEXT'.
    ls_edit-style = cl_gui_alv_grid=>mc_style_enabled.
    INSERT ls_edit INTO TABLE lt_edit.
      CLEAR : ls_outtab.
      INSERT LINES OF lt_edit INTO TABLE ls_outtab-styletable.
      MODIFY jtab INDEX ind FROM ls_outtab  TRANSPORTING
                                      styletable .
      CALL METHOD obj_grid->refresh_table_display.
    GS_LAYOUT-STYLEFNAME = 'STYLETABLE'.
      REFRESH : lt_edit.
    ENDFORM.                    " INSERT_DATA
    *&      Form  FCAT_CHANGE
    FORM fcat_change.
    DATA ls_fcat TYPE lvc_s_fcat .
    DATA lt_fcat TYPE lvc_t_fcat .
    DATA ls_layout TYPE lvc_s_layo .
    CALL METHOD obj_grid->get_frontend_fieldcatalog
    IMPORTING
    et_fieldcatalog = lt_fcat[] .
    LOOP AT lt_fcat INTO ls_fcat .
       IF ls_fcat-fieldname = 'ERNAM' .
         ls_fcat-coltext = 'MYNAME'.
         ls_fcat-no_out = 'X'.
         MODIFY lt_fcat FROM ls_fcat .
       ENDIF .
    ENDLOOP .
    CALL METHOD obj_grid->set_frontend_fieldcatalog
    EXPORTING
    it_fieldcatalog = lt_fcat[] .
    CALL METHOD obj_grid->get_frontend_layout
    IMPORTING
    es_layout = ls_layout .
    ls_layout-grid_title = 'Changed ALV Grid Title' .
    ls_layout-zebra = 'X' .
    CALL METHOD obj_grid->set_frontend_layout
    EXPORTING
    is_layout = ls_layout .
    LOOP AT jtab.
       IF jtab-netwr > '400.00'.
         CLEAR ls_edit.
         ls_edit-fieldname = 'ERDAT'.
         ls_edit-style = cl_gui_alv_grid=>mc_style_disabled.
         INSERT ls_edit INTO TABLE lt_edit.
         CLEAR : ls_outtab.
         INSERT LINES OF lt_edit INTO TABLE ls_outtab-styletable.
         MODIFY jtab INDEX sy-tabix FROM ls_outtab  TRANSPORTING
                                         styletable .
       ENDIF.
    ENDLOOP.
      LOOP AT jtab.
        IF jtab-netwr LE '400.00'.
          ejtab-vbeln = jtab-vbeln.
          ejtab-erdat = jtab-erdat.
          ejtab-kunnr = jtab-kunnr.
          ejtab-ernam = jtab-ernam.
          ejtab-netwr = jtab-netwr.
          ejtab-knumv = jtab-knumv.
          ejtab-bstnk = jtab-bstnk.
          ejtab-ktext = jtab-ktext.
          APPEND ejtab.
          CLEAR ejtab.
        ENDIF.
      ENDLOOP.
      PERFORM ebuild_fieldcat.
      CALL METHOD obj_grid->set_table_for_first_display
           EXPORTING
             i_structure_name              = 'EJTAB'
             is_layout                     = gs_layout
             it_toolbar_excluding          = it_exclude
           CHANGING
             it_outtab                     = ejtab[]
           it_sort                       = it_sort
             it_filter                     = it_filt
             it_fieldcatalog               = ei_fieldcat.
    ENDFORM.                    " FCAT_CHANGE
    *&      Form  exclude_toolbaricons
    FORM exclude_toolbaricons CHANGING   pt_exclude TYPE ui_functions.
      DATA ls_exclude TYPE ui_func.
      ls_exclude = cl_gui_alv_grid=>mc_fc_maximum .
      APPEND ls_exclude TO pt_exclude.
      ls_exclude = cl_gui_alv_grid=>mc_fc_minimum .
      APPEND ls_exclude TO pt_exclude.
      ls_exclude = cl_gui_alv_grid=>mc_fc_subtot .
      APPEND ls_exclude TO pt_exclude.
      ls_exclude = cl_gui_alv_grid=>mc_fc_find .
      APPEND ls_exclude TO pt_exclude.
      ls_exclude = cl_gui_alv_grid=>mc_fc_sum .
      APPEND ls_exclude TO pt_exclude.
      ls_exclude = cl_gui_alv_grid=>mc_fc_average .
      APPEND ls_exclude TO pt_exclude.
      ls_exclude = cl_gui_alv_grid=>mc_mb_sum .
      APPEND ls_exclude TO pt_exclude.
      ls_exclude = cl_gui_alv_grid=>mc_mb_subtot.
      APPEND ls_exclude TO pt_exclude.
      ls_exclude = cl_gui_alv_grid=>mc_fc_loc_insert_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_move_row .
      APPEND ls_exclude TO pt_exclude.
    ENDFORM.                    " exclude_toolbaricons
    *&      Form  sort_table
    FORM sort_table CHANGING pt_sort TYPE lvc_t_sort.
      DATA ls_sort TYPE lvc_s_sort .
      ls_sort-spos = '1' .
      ls_sort-fieldname = 'VBELN' .
      ls_sort-up = 'X' .
      ls_sort-down = space .
      APPEND ls_sort TO pt_sort .
      ls_sort-spos = '2' .
      ls_sort-fieldname = 'KUNNR' .
      ls_sort-up = space .
      ls_sort-down = 'X' .
      APPEND ls_sort TO pt_sort .
    ENDFORM.                    " sort_table
    *&      Form  filter_table
    FORM filter_table CHANGING pt_filt TYPE lvc_t_filt.
      DATA ls_filt TYPE lvc_s_filt .
      ls_filt-fieldname = 'VBELN' .
      ls_filt-sign = 'E' .
      ls_filt-option = 'BT' .
      ls_filt-low = '0000000010' .
      ls_filt-high = '0000000100' .
      APPEND ls_filt TO pt_filt .
    ENDFORM.                    " filter_table
    *&      Form  ROWCOLOR
    FORM rowcolor.
      CLEAR wjtab.
      LOOP AT jtab INTO wjtab.
        IF wjtab-netwr LE '400.00'.
          wjtab-rowcolor    = 'C611'.
        ENDIF.
        MODIFY jtab FROM wjtab.
      ENDLOOP.
    ENDFORM.                    " ROWCOLOR
    *&      Form  colcolor
    FORM colcolor.
      DATA ls_cellcolor TYPE lvc_s_scol .
      CLEAR ls_cellcolor.
      READ TABLE jtab INDEX 8 .
      ls_cellcolor-fname = 'KUNNR' .
      ls_cellcolor-color-col = '0' .
      ls_cellcolor-color-int = '0' .
      APPEND ls_cellcolor TO jtab-cellcolor .
      MODIFY jtab INDEX 8 .
      CLEAR ls_cellcolor.
      READ TABLE jtab INDEX 13 .
      ls_cellcolor-fname = 'NETWR' .
      ls_cellcolor-color-col = '5' .
      ls_cellcolor-color-int = '1' .
      APPEND ls_cellcolor TO jtab-cellcolor .
      MODIFY jtab INDEX 13 .
    ENDFORM.                    " colcolor
    *&      Form  DRILLDOWN_VALUES
    FORM drilldown_values.
      DATA lt_ddval TYPE lvc_t_drop .
      DATA ls_ddval TYPE lvc_s_drop .
      ls_ddval-handle = '1' .
      ls_ddval-value = 'JFK-12' .
      APPEND ls_ddval TO lt_ddval .
      ls_ddval-handle = '1' .
      ls_ddval-value = 'JSF-44' .
      APPEND ls_ddval TO lt_ddval .
      ls_ddval-handle = '1' .
      ls_ddval-value = 'KMDA-53' .
      APPEND ls_ddval TO lt_ddval .
      ls_ddval-handle = '1' .
      ls_ddval-value = 'SS3O/N' .
      APPEND ls_ddval TO lt_ddval .
      CALL METHOD obj_grid->set_drop_down_table
      EXPORTING
      it_drop_down = lt_ddval .
    ENDFORM.                    " DRILLDOWN_VALUES
    *&      Form  BUILD_FIELDCAT
          text
    -->  p1        text
    <--  p2        text
    FORM build_fieldcat.
      CLEAR i_fieldcat[].
    *CLEAR wa_fieldcat.
    *wa_fieldcat-col_pos = 1.
    *wa_fieldcat-fieldname = 'CH'.
    **wa_fieldcat-tabname = 'JTAB'.
    *wa_fieldcat-outputlen = '2'.
    **wa_fieldcat-coltext = 'CHECKBOX'.
    *wa_fieldcat-checkbox = 'X'.
    *wa_fieldcat-edit        = 'X'.
    *APPEND wa_fieldcat TO i_fieldcat.
      CLEAR wa_fieldcat.
      wa_fieldcat-col_pos = 2.
      wa_fieldcat-fieldname = 'VBELN'.
      wa_fieldcat-tabname = 'JTAB'.
    *wa_fieldcat-outputlen = '10'.
      wa_fieldcat-coltext = 'SALES ORDER'.
    *wa_fieldcat-CHECKBOX = 'X'.
      APPEND wa_fieldcat TO i_fieldcat.
      CLEAR wa_fieldcat.
      wa_fieldcat-col_pos = 4.
      wa_fieldcat-fieldname = 'KUNNR'.
      wa_fieldcat-tabname = 'JTAB'.
      wa_fieldcat-outputlen = '20'.
      wa_fieldcat-coltext = 'CUSTOMER NO'.
      APPEND wa_fieldcat TO i_fieldcat.
      CLEAR wa_fieldcat.
      wa_fieldcat-col_pos = 3.
      wa_fieldcat-fieldname = 'ERDAT'.
      wa_fieldcat-tabname = 'JTAB'.
    *wa_fieldcat-outputlen = '8'.
      wa_fieldcat-coltext = 'DATE'.
      wa_fieldcat-edit        = 'X'.
      APPEND wa_fieldcat TO i_fieldcat.
      CLEAR wa_fieldcat.
      wa_fieldcat-col_pos = 5.
      wa_fieldcat-fieldname = 'ERNAM'.
      wa_fieldcat-tabname = 'JTAB'.
    *wa_fieldcat-outputlen = '12'.
      wa_fieldcat-coltext = 'NAME'.
      APPEND wa_fieldcat TO i_fieldcat.
      CLEAR wa_fieldcat.
      wa_fieldcat-col_pos = 6.
      wa_fieldcat-fieldname = 'NETWR'.
      wa_fieldcat-tabname = 'JTAB'.
    *wa_fieldcat-outputlen = '15'.
      wa_fieldcat-coltext = 'NET WEIGHT'.
      wa_fieldcat-edit        = 'X'.
      APPEND wa_fieldcat TO i_fieldcat.
      CLEAR wa_fieldcat.
      wa_fieldcat-col_pos = 7.
      wa_fieldcat-fieldname = 'KNUMV'.
      wa_fieldcat-tabname = 'JTAB'.
    *wa_fieldcat-outputlen = '10'.
      wa_fieldcat-coltext = 'DOC COND'.
      APPEND wa_fieldcat TO i_fieldcat.
      CLEAR wa_fieldcat.
      wa_fieldcat-col_pos = 8.
      wa_fieldcat-fieldname = 'BSTNK'.
      wa_fieldcat-tabname = 'JTAB'.
    *wa_fieldcat-outputlen = '20'.
      wa_fieldcat-coltext = 'CUST PO'.
      APPEND wa_fieldcat TO i_fieldcat.
      CLEAR wa_fieldcat.
      wa_fieldcat-col_pos = 9.
      wa_fieldcat-fieldname = 'KTEXT'.
      wa_fieldcat-tabname = 'JTAB'.
    *wa_fieldcat-outputlen = '40'.
      wa_fieldcat-coltext = 'SEARCH TERM FOR PRODUCT PROPOSAL'.
      wa_fieldcat-edit        = 'X'.
      wa_fieldcat-drdn_field = 'PTYP_DD_HNDL'.
      APPEND wa_fieldcat TO i_fieldcat.
    ENDFORM.                    " BUILD_FIELDCAT
    *&      Form  ebuild_fieldcat
          text
    -->  p1        text
    <--  p2        text
    FORM ebuild_fieldcat.
      CLEAR ei_fieldcat[].
      CLEAR ewa_fieldcat.
      ewa_fieldcat-col_pos = 1.
      ewa_fieldcat-fieldname = 'CH'.
    *ewa_fieldcat-tabname = 'JTAB'.
      ewa_fieldcat-outputlen = '2'.
    *ewa_fieldcat-coltext = 'CHECKBOX'.
      ewa_fieldcat-checkbox = 'X'.
      ewa_fieldcat-edit        = 'X'.
      APPEND ewa_fieldcat TO ei_fieldcat.
      CLEAR ewa_fieldcat.
      ewa_fieldcat-col_pos = 2.
      ewa_fieldcat-fieldname = 'VBELN'.
      ewa_fieldcat-tabname = 'JTAB'.
    *ewa_fieldcat-outputlen = '10'.
      ewa_fieldcat-coltext = 'SALES ORDER'.
    *ewa_fieldcat-CHECKBOX = 'X'.
      APPEND ewa_fieldcat TO ei_fieldcat.
      CLEAR ewa_fieldcat.
      ewa_fieldcat-col_pos = 4.
      ewa_fieldcat-fieldname = 'KUNNR'.
      ewa_fieldcat-tabname = 'JTAB'.
      ewa_fieldcat-outputlen = '20'.
      ewa_fieldcat-coltext = 'CUSTOMER NO'.
      APPEND ewa_fieldcat TO ei_fieldcat.
      CLEAR ewa_fieldcat.
      ewa_fieldcat-col_pos = 3.
      ewa_fieldcat-fieldname = 'ERDAT'.
      ewa_fieldcat-tabname = 'JTAB'.
    *ewa_fieldcat-outputlen = '8'.
      ewa_fieldcat-coltext = 'DATE'.
      ewa_fieldcat-edit        = 'X'.
      APPEND ewa_fieldcat TO ei_fieldcat.
      CLEAR ewa_fieldcat.
      ewa_fieldcat-col_pos = 5.
      ewa_fieldcat-fieldname = 'ERNAM'.
      ewa_fieldcat-tabname = 'JTAB'.
    *ewa_fieldcat-outputlen = '12'.
      ewa_fieldcat-coltext = 'NAME'.
      ewa_fieldcat-edit        = 'X'.
      APPEND ewa_fieldcat TO ei_fieldcat.
      CLEAR ewa_fieldcat.
      ewa_fieldcat-col_pos = 6.
      ewa_fieldcat-fieldname = 'NETWR'.
      ewa_fieldcat-tabname = 'JTAB'.
    *ewa_fieldcat-outputlen = '15'.
      ewa_fieldcat-coltext = 'NET WEIGHT'.
      ewa_fieldcat-edit        = 'X'.
      APPEND ewa_fieldcat TO ei_fieldcat.
      CLEAR ewa_fieldcat.
      ewa_fieldcat-col_pos = 7.
      ewa_fieldcat-fieldname = 'KNUMV'.
      ewa_fieldcat-tabname = 'JTAB'.
    *ewa_fieldcat-outputlen = '10'.
      ewa_fieldcat-coltext = 'DOC COND'.
      ewa_fieldcat-edit        = 'X'.
      APPEND ewa_fieldcat TO ei_fieldcat.
      CLEAR ewa_fieldcat.
      ewa_fieldcat-col_pos = 8.
      ewa_fieldcat-fieldname = 'BSTNK'.
      ewa_fieldcat-tabname = 'JTAB'.
    *ewa_fieldcat-outputlen = '20'.
      ewa_fieldcat-coltext = 'CUST PO'.
      APPEND ewa_fieldcat TO ei_fieldcat.
      CLEAR ewa_fieldcat.
      ewa_fieldcat-col_pos = 9.
      ewa_fieldcat-fieldname = 'KTEXT'.
      ewa_fieldcat-tabname = 'JTAB'.
    *ewa_fieldcat-outputlen = '40'.
      ewa_fieldcat-coltext = 'SEARCH TERM FOR PRODUCT PROPOSAL'.
      ewa_fieldcat-edit        = 'X'.
      ewa_fieldcat-drdn_field = 'PTYP_DD_HNDL'.
      APPEND ewa_fieldcat TO ei_fieldcat.
    ENDFORM.                    " ebuild_fieldcat

  • Getting selected rows in ALV grid output

    Hi All,
    As per my requirement, in the ALV output i have 3 push buttons (Display, Edit and Print).
    Using the below code, I am trying to get the selected rows from the output.
        CALL METHOD ob_grid->check_changed_data
          CHANGING
            c_refresh = w_x.
        CALL METHOD ob_grid->get_selected_rows
          IMPORTING
            et_index_rows = is_rows.
    When I execute the code wid Display/Edit push buttons it is working fine as long as Print button is not used.
    If I use the Print button and then try to select any other push button, I am not getting the entries in is_rows internal table.
    Kindly help me.
    Thanks in Advance.

    Would your user actually select a row if they wanted simply to print?   I don't see that you're checking to see if the user actually selected a row ( after et_index_rows = is_rows, need to be sure is_rows is not initial (zero)).    Debug should show you exactly what is happening in the situation you described.

  • ALV grid using classes(displaying subtotals groupwise in ALV grid control)

    Hello ,
      please can any body help me its urgent tome.
    displaying subtotals groupwise ..say for ex..
    cost group  costelement         amount     
    10          101         100.00
    10                            102          200.00
    10                            103          300.00
    20                            104          400.00
    20                            105          500.00
    20                            106          600.00
                    101         100.00
                    102         200.00
                    103         300.00
    10                          600.00
              104         400.00
              105         500.00
              106         600.00
    20                         1500.00
    In ALV grid control using classes.
    Thanks in Advance

    Hi alson,
    MODULE pbo OUTPUT.
    SET PF-STATUS 'MAIN100'.
    IF g_custom_container IS INITIAL.
    CREATE OBJECT g_custom_container
    EXPORTING container_name = g_container.
    CREATE OBJECT grid1
    EXPORTING i_parent = g_custom_container.
    <b>CALL METHOD grid1->set_table_for_first_display
    EXPORTING IS_LAYOUT = it_LAY
    CHANGING it_fieldcatalog = fieldcat
    it_sort = it_sort
    it_outtab = itab[].</b>
    ENDIF.
    ENDMODULE. " PBO OUTPUT
    keep the below code
    <b>CALL METHOD grid1->set_table_for_first_display
    EXPORTING IS_LAYOUT = it_LAY
    CHANGING it_fieldcatalog = fieldcat
    it_sort = it_sort
    it_outtab = itab[].</b>
    here
    IF pdel = 'X'.
    *BEGIN OF CHANGES BY VINAY DASARI
    PERFORM get_data.
    <b>CALL METHOD grid1->set_table_for_first_display
    EXPORTING IS_LAYOUT = it_LAY
    CHANGING it_fieldcatalog = fieldcat
    it_sort = it_sort
    it_outtab = itab[].</b>
    ENDIF.

  • Refreshing of ALV Grid(using class)

    Hi all,
      In my program, i found that the ALV grid is displaying the same data for different criteria's. when debugging i found that the data is populated correctly in the output table that is passed to the method SET_TABLE_FOR_FIRST_DISPLAY according to the criteria's, yet i could only see the grid with the previous data.Please suggest on what could be done to correct this.
    Thanks,
    saran

    Hi Saran,
    There is a lifetime attribute that you have to set .
    Set this when you create object container at the first time .
    Here is the sample syntax :
    Variable definition
    DATA: grid_pr1 TYPE REF TO cl_gui_alv_grid,
          g_cconth TYPE REF TO cl_gui_custom_container,
          gs_layout2 TYPE lvc_s_layo,
          it_alv TYPE lvc_t_fcat .
    DATA: it_pr1 type table of ZP119H. " custom structure
    Create the object
    IF g_cconth is INITIAL.
        CREATE OBJECT g_cconth
           EXPORTING
              container_name = 'CCONTH'
              lifetime = g_cconth->lifetime_dynpro.
        CREATE OBJECT grid_pr1
           EXPORTING
             i_parent = g_cconth .
        CALL METHOD grid_pr1->set_table_for_first_display
          EXPORTING
            is_layout            = gs_layout2
          CHANGING
            it_outtab            = it_pr1
            it_fieldcatalog      = it_alv.
    ENDIF. " g_cconth
    Message was edited by:
            TUWUHSIH WINEDYA

  • Changing Values on ALV Grid (using Classes)

    Hi all,
        I have ALV Grid output, on which ZMENG (Target Qty) column is editable. So user will enter in value in ZMENG column and press ENTER. Then TOTAL column should be populated with ZMENG * NETWR columns. I have tried with changing/ entering values with char data type columns like MAKTX etc.. Its working fine with them. But when I entered in value in ZMENG, the actual value which I have entered is not flowing into LS_GOOD-VALUE. For char data types its been populated with user entered values.
          Can anyone please tell why its not happening with Quantity or Currency fields.
      method handle_data_changed.
        DATA: ls_good TYPE lvc_s_modi,
              l_netwr TYPE vbap-netwr,
              l_total TYPE vbap-netwr,
              l_zmeng TYPE vbap-zmeng.
        LOOP AT er_data_changed->mt_good_cells INTO ls_good.
          CASE ls_good-fieldname.
            WHEN 'ZMENG'.
              <<<<l_zmeng = ls_good-value.>>>>
              call method er_data_changed->get_cell_value
                             exporting i_row_id = ls_good-row_id
                                       i_fieldname = 'NETWR'
                             importing e_value = l_netwr.
              l_total = l_zmeng * l_netwr.
              call method er_data_changed->modify_cell
                        exporting i_row_id = ls_good-row_id
                                  i_fieldname = 'TOTAL'
                                  i_value     = l_total.
          ENDCASE.
      ENDLOOP.
    ENDMETHOD.
    Fieldcatlog for Quantity field:
      l_fcat-tabname = 'IT_VBAP'.
      l_fcat-fieldname = 'ZMENG'.
      l_fcat-coltext = 'Qty'.
      l_fcat-outputlen = 17.
      l_fcat-edit = 'X'.
      APPEND l_fcat TO ct_fcat.
      CLEAR l_fcat.

    Hi Jaker 
    Try calling cl_gui_alv_Grid->refresh_table_display.
    refresh table display when ever the qty is changed.
    It should work.
    Venkat.

Maybe you are looking for

  • Internal error while compiling a package

    When I update a view within from a pulic procedure the package compiles without any issue. However If I make the same procedure as private(no declartion in specifcation) the package gives an internal error

  • Greater Than or Less Than using String Variables

    I seem to have a problem when trying to sort an ALPHABETIC LIST, seeing if one text field is greater tan or less than another. i.e. Lets say my variables are called FirstLetter and SecondLetter. FirstLetter="A", SecondLetter="B" So as an example and

  • Sender's email id in function module SO_DOCUMENT_SEND_API1

    Hi All, I am fetching the sender's email id dynamically from HR database and then trying to use it while sending email via FM SO_DOCUMENT_SEND_API1. But the email does not go. The FM is erroring out with return code 6. If I maintain email id in the u

  • How assign formula to condition type??

    I have a condition type with calculation type G (Formula).  I know that formula is calculated in VOFM, however, how to assign this formula to Condition Type??. Thanks in advance.

  • Help! Audigy 2: 5.1 setup Subwoofer and Center tied togeth

    argh this is SUPER frustrating! what is wrong with this sound card? I have had it for like 2 years and finally got a 5. setup. I have 5. correctly selected. Speakers are all set correctly. If I go do an audio test and they do the check on the CENTER