Capturing the current ALV grid contents. How?

Hi forum,
After lots of searching, I still can't find out how I can get the current contents of the ALV grid. I need this for an editable ALV grid to keep track of the data changes.
By the way, I am using the traditional ALV, not OO ALV.
Let me share the steps I already did but still failed.
1
I used the FM GET_GLOBALS_FROM_SLVC_FULLSCR to have access to the CL_GUI_ALV_GRID object. I tried using some of the methods inside that class, all to no avail.
Some methods I tried were set_selected_columns and set_selected_rows and then call the method get_selected_cells. Basically, the idea is to simulate highlighting of cells, and select them using get_selected_cells. But the problem is that get_selected_cells is not returning the value (although it correctly returns the row and column that I set -- but not the value in that cell coordinates).
2
I also saw the protected method get_changed_data -- but the problem is that it is protected, so I created a subclass of CL_GUI_ALV_GRID to ZCL_GUI_ALV_GRID and copied the private attributes and methods that get_changed_data depends on. I was able to do this but GET_GLOBALS_FROM_SLVC_FULLSCR strictly returns CL_GUI_ALV_GRID. The upcast from CL_GUI_ALV_GRID to ZCL_GUI_ALV_GRID fails. So I still can't use/test get_changed_data.
3
I also saw some code regarding events. Here's a sample but this doesn't work:
    REFRESH lt_events.
    lwa_event-name = 'DATA_CHECK'. "Event name
    lwa_event-form = 'HANDLE_DATA_CHANGED'.
    APPEND lwa_event TO lt_events.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
        EXPORTING
            it_fieldcat_lvc         = it_fieldcat
            is_layout_lvc           = ls_layout
            it_events               = lt_events
FORM handle_data_changed using ref_data_changed
                          type ref to cl_alv_changed_data_protocol.
    BREAK-POINT.
ENDFORM.
I would really appreciate it (and I know a lot of other ABAPers will, too) if you could point me to how I can get the ALV grid contents. Thanks.
Kyle

Hi Keshav,
sure I will check those tomorrow when I get back to work.
All,
Here's the code if it helps:
*& Report  Z_ALV_EDITABLE
REPORT  Z_ALV_EDITABLE.
TYPE-POOLS:
    slis
DATA:
    BEGIN OF i_out OCCURS 0,
        operand1 TYPE i,
        operand2 TYPE i,
        operator TYPE c,
        result   TYPE i,
    END OF i_out
START-OF-SELECTION.
    PERFORM prepareData.
    PERFORM refreshResults.
    PERFORM createALV_LVC.
FORM prepareData.
    REFRESH i_out.
    DO 10 TIMES.
        i_out-operand1 = 1.
        i_out-operand2 = 2.
        i_out-operator = '+'.
        APPEND i_out.
    ENDDO.
ENDFORM.
FORM refreshResults.
    LOOP AT i_out.
        CASE i_out-operator.
            WHEN '+'.
                i_out-result = i_out-operand1 + i_out-operand2.
            WHEN '-'.
                i_out-result = i_out-operand1 - i_out-operand2.
            WHEN '*'.
                i_out-result = i_out-operand1 * i_out-operand2.
            WHEN '/'.
                IF i_out-operand2 NE 0.
                    i_out-result = i_out-operand1 - i_out-operand2.
                ENDIF.
            WHEN OTHERS.
                i_out-result = ''.
        ENDCASE.
        MODIFY i_out.
    ENDLOOP.
ENDFORM.
FORM createALV_LVC.
    DATA:
        it_fieldcat TYPE lvc_t_fcat,
        ls_layout   TYPE lvc_s_layo,
        lt_events   TYPE slis_t_event,
        lwa_event   TYPE slis_alv_event
    " Field Catalog
    PERFORM createFieldcat CHANGING it_fieldcat.
    " Sorting
    PERFORM createSort.
    " Layout
    ls_layout-cwidth_opt = 'X'.
    " Events
    REFRESH lt_events.
    lwa_event-name = 'DATA_CHECK'. "Event name
    lwa_event-form = 'HANDLE_DATA_CHANGED'.
    APPEND lwa_event TO lt_events.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
        EXPORTING
            it_fieldcat_lvc         = it_fieldcat
            is_layout_lvc           = ls_layout
*            it_sort                 =
            it_events               = lt_events
            i_callback_program      = 'Z_ALV_EDITABLE'
            i_callback_user_command = 'USER_COMMAND'
            i_callback_pf_status_set = 'PF_STATUS_SET'
            i_save                  = 'X'
        TABLES
            t_outtab                = i_out
        EXCEPTIONS
            program_error           = 1
            OTHERS                  = 2.
ENDFORM.
FORM createFieldcat CHANGING it_fieldcat TYPE lvc_t_fcat.
    DATA:
        wa_fcat LIKE LINE OF it_fieldcat
    REFRESH it_fieldcat.
    DEFINE m_append_fieldcat.
        CLEAR wa_fcat.
        wa_fcat-edit      = &1.
        wa_fcat-fieldname = &2.
        wa_fcat-scrtext_m = &3.
        APPEND wa_fcat TO it_fieldcat.
    END-OF-DEFINITION.
    m_append_fieldcat '' 'OPERAND1' 'Operand 1'.
    m_append_fieldcat '' 'OPERAND2' 'Operand 2'.
    m_append_fieldcat 'X' 'OPERATOR' 'Operator'.
    m_append_fieldcat '' 'RESULT'   'Result'.
ENDFORM.
FORM createSort.
ENDFORM.
FORM PF_STATUS_SET USING    P_EXTAB TYPE SLIS_T_EXTAB.
    SET PF-STATUS 'Z_ALV_STATUS' EXCLUDING P_EXTAB.
ENDFORM.                    "PF_STATUS_SET
FORM user_command
    USING
        r_ucomm TYPE sy-ucomm
        ls_selfield TYPE slis_selfield.
    CASE r_ucomm.
        WHEN 'REFRESH'.
            " CHECK i_out HERE IF IT CHANGED ALONG WITH THE EDITS
            BREAK-POINT.
*            PERFORM refreshALV.
    ENDCASE.
ENDFORM.
FORM handle_data_changed using ref_data_changed
                          type ref to cl_alv_changed_data_protocol.
    BREAK-POINT.
ENDFORM.

Similar Messages

  • How to capture the current info in the top-of-page event in Reuse block dis

    How to capture the current info in the top-of-page event in Reuse block dis

    Hi Geetha,
         If you don't have any information to pass the Heading Block, then why you are using this event ?
         please comment/ remove that TOP_OF_PAGE code. and use subtotal code in field catalog block.
          you can use below code for subtotal. 
          FORM field_catalog .
                    gs_fcat-do_sum = &2.
              fcat : 'WRBTR' '15' 'X' ' ' ' ' 'WRBTR' 'Amount',
           ENDFORM.
           Regards,
           Kunjan

  • Really how secure is the current erase all content and settings?

    I am not sure about taking my iPhone in for repair or exchange after reading many old articles about how unsecure the erase really is, seeing how many sensitive passwords and e-mails I have. I have the most current firmware. So tell me, how reliable for keeping my data safe and gone is the current "Erase all content and settings" feature?
    Also note: I have iPhone 3g, not later or earlier. So I am not sure if the hardware would make a difference, but yeah.
    Message was edited by: nkcrcr

    It is what it is. Erase all contents & settings overwrites user settings and information, writing a series of ones to the data partition. This process can take several hours, depending on the storage capacity of your iPhone. During this time, the device displays the Apple logo and a progress bar. If you had a 3GS, it would be instantaneous, as the 3GS supports hardware encryption. Can someone still recover data? Yes. But the software & equipment necessary to do so is very expensive & generally only available to law enforcement.

  • Capturing data from ALV grid

    Dear experts.
    Can anyone help me to capture data from ALV grid to pass to a BAPI FM.
    My ALV grid has the check box as first column and I want to capture only the rows in the grid with these checkboxes checked. I would prefer to do it without OO.
    Regards
    Sathar

    Loop at the table used for ALV data where <checkbox-field> = 'X'.
    Best,
    Jim

  • Problem in handling double click in the second alv grid control

    Hi all,
    I have a screen. In the screen , I have 2 custom container and each custom container has 1 alv grid control.
    I need to handle double click event for both of alv grid controls in my screen.
    I defined 2 local event handler class for each alv grid and defined 2 handle_double_click event.
    In the first Alv grid double click works fine , everything is ok, world is peaceful.
    But in the second alvgrid, the row parameters (E_ROW, E_COLUMN, ES_ROW_NO) comes initial so i cannot handle it.
    All i need is to call a different transaction (displaying the equipment-IE03) when user double-click on a field in the second alv grid control. I tried to use hotspot_click event too but it does'nt give the row id either.
    I read some posts in the forms ([Double click event of alv grid control|Double click event of alv grid control]).
    I tried everything but nothing works.
    Please help. Your answers will be appreciated.

    Hello Eagle
    I am not sure where the problem lies in your case but sample report ZUS_SDN_THREE_ALV_GRIDS_01 shows that you can always find out the current cell after the double-click event (in any case you have the current cell already as IMPORTING parameters of the event):
    *& Report  ZUS_SDN_THREE_ALV_GRIDS_01
    *& Flow logic of screen '0100' (no screen elements, ok-code => GD_OKCODE):
    **    PROCESS BEFORE OUTPUT.
    **      MODULE STATUS_0100.
    **    PROCESS AFTER INPUT.
    **      MODULE USER_COMMAND_0100.
    *& Thread: problem in handling double click in the second alv grid control
    *& <a class="jive_macro jive_macro_thread" href="" __jive_macro_name="thread" modifiedtitle="true" __default_attr="1172052"></a>
    REPORT  zus_sdn_three_alv_grids_01.
    DATA:
      gd_okcode        TYPE ui_func,
      gd_repid         TYPE syst-repid,
      go_docking       TYPE REF TO cl_gui_docking_container,
      go_splitter      TYPE REF TO cl_gui_splitter_container,
      go_splitter_2    TYPE REF TO cl_gui_splitter_container,
      go_cell_top      TYPE REF TO cl_gui_container,
      go_cell_bottom   TYPE REF TO cl_gui_container,
      go_cell_left     TYPE REF TO cl_gui_container,
      go_cell_right    TYPE REF TO cl_gui_container,
      go_grid1         TYPE REF TO cl_gui_alv_grid,
      go_grid2         TYPE REF TO cl_gui_alv_grid,
      go_grid3         TYPE REF TO cl_gui_alv_grid.
    DATA:
      gt_outtab        TYPE STANDARD TABLE OF vbak,
      gt_outtab_2      TYPE STANDARD TABLE OF vbap,
      gt_outtab_3      TYPE STANDARD TABLE OF vbep.
    **PARAMETERS:
    **  p_bukrs          TYPE bukrs  DEFAULT '1000'.
    *       CLASS lcl_eventhandler DEFINITION
    CLASS lcl_eventhandler DEFINITION.
      PUBLIC SECTION.
        CLASS-DATA:
          ms_row      TYPE lvc_s_row,
          ms_col      TYPE lvc_s_col.
        CLASS-METHODS:
          handle_double_click FOR EVENT double_click OF cl_gui_alv_grid
            IMPORTING
              e_row
              e_column
              es_row_no
              sender.
    ENDCLASS.                    "lcl_eventhandler DEFINITION
    *       CLASS lcl_eventhandler IMPLEMENTATION
    CLASS lcl_eventhandler IMPLEMENTATION.
      METHOD handle_double_click.
    *   define local data
        DATA:
          ls_outtab      TYPE vbak,
          ls_outtab_2    TYPE vbap,
          ls_outtab_3    TYPE vbep.
        "   Initialize class data
        CLEAR: ms_row,
               ms_col.
        CASE sender.
          WHEN go_grid1.
            ms_row = e_row.
            ms_col = e_column.
    *       Triggers PAI of the dynpro with the specified ok-code
            CALL METHOD cl_gui_cfw=>set_new_ok_code
              EXPORTING
                new_code = 'GET_ITEMS'
    *          IMPORTING
    *            rc       =
          WHEN go_grid2.
            ms_row = e_row.
            ms_col = e_column.
    *       Triggers PAI of the dynpro with the specified ok-code
            CALL METHOD cl_gui_cfw=>set_new_ok_code
              EXPORTING
                new_code = 'GET_SCHEDULE_LINES'
    *          IMPORTING
    *            rc       =
          WHEN go_grid3.
    **        READ TABLE gt_vbap INTO ls_vbap INDEX e_row-index.
    **        CHECK ( ls_vbap-matnr IS NOT INITIAL ).
    **        SET PARAMETER ID 'MAT' FIELD ls_vbap-matnr.
    **        CALL TRANSACTION 'MM02' AND SKIP FIRST SCREEN.
          WHEN OTHERS.
            RETURN.
        ENDCASE.
      ENDMETHOD.                    "handle_double_click
    ENDCLASS.                    "lcl_eventhandler IMPLEMENTATION
    START-OF-SELECTION.
      SELECT        * FROM  vbak INTO TABLE gt_outtab UP TO 100 ROWS.
      PERFORM init_controls.
    * Display data
      CALL METHOD go_grid1->set_table_for_first_display
        EXPORTING
          i_structure_name = 'VBAK'
        CHANGING
          it_outtab        = gt_outtab
        EXCEPTIONS
          OTHERS           = 4.
      IF sy-subrc NE 0.
    *   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      REFRESH: gt_outtab_2.
      CALL METHOD go_grid2->set_table_for_first_display
        EXPORTING
          i_structure_name = 'VBAP'
        CHANGING
          it_outtab        = gt_outtab_2    " empty !!!
        EXCEPTIONS
          OTHERS           = 4.
      IF sy-subrc NE 0.
    *   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      REFRESH: gt_outtab_3.
      CALL METHOD go_grid3->set_table_for_first_display
        EXPORTING
          i_structure_name = 'VBEP'
        CHANGING
          it_outtab        = gt_outtab_3    " empty !!!
        EXCEPTIONS
          OTHERS           = 4.
      IF sy-subrc NE 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 NE 0.
    *   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    * NOTE: dynpro does not contain any elements
      CALL SCREEN '0100'.
    * Flow logic of dynpro:
    *PROCESS BEFORE OUTPUT.
    *  MODULE STATUS_0100.
    *PROCESS AFTER INPUT.
    *  MODULE USER_COMMAND_0100.
    END-OF-SELECTION.
    *&      Module  STATUS_0100  OUTPUT
    *       text
    MODULE status_0100 OUTPUT.
      SET PF-STATUS 'STATUS_0100'.  " contains push button "ORDERS"
    *  SET TITLEBAR 'xxx'.
    * Refresh display of detail ALV list
      CALL METHOD go_grid2->refresh_table_display
    *    EXPORTING
    *      IS_STABLE      =
    *      I_SOFT_REFRESH =
        EXCEPTIONS
          OTHERS         = 2.
      IF sy-subrc NE 0.
    *   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    * Refresh display of detail ALV list
      CALL METHOD go_grid3->refresh_table_display
    *    EXPORTING
    *      IS_STABLE      =
    *      I_SOFT_REFRESH =
        EXCEPTIONS
          OTHERS         = 2.
      IF sy-subrc NE 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.
      CASE gd_okcode.
        WHEN 'BACK' OR
             'END'  OR
             'CANC'.
          SET SCREEN 0. LEAVE SCREEN.
        " Double-click on first or second ALV grid
        WHEN 'GET_ITEMS'  OR
             'GET_SCHEDULE_LINES'.
          PERFORM get_details.
        WHEN OTHERS.
      ENDCASE.
      CLEAR: gd_okcode.
    ENDMODULE.                 " USER_COMMAND_0100  INPUT
    *&      Form  INIT_CONTROLS
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM init_controls .
    * Create docking container
      CREATE OBJECT go_docking
        EXPORTING
          parent = cl_gui_container=>screen0
          ratio  = 90
        EXCEPTIONS
          OTHERS = 6.
      IF sy-subrc NE 0.
    *   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    * Create splitter container
      CREATE OBJECT go_splitter
        EXPORTING
          parent            = go_docking
          rows              = 1
          columns           = 2
    *      NO_AUTODEF_PROGID_DYNNR =
    *      NAME              =
        EXCEPTIONS
          cntl_error        = 1
          cntl_system_error = 2
          OTHERS            = 3.
      IF sy-subrc NE 0.
    *   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    * Get cell container
      CALL METHOD go_splitter->get_container
        EXPORTING
          row       = 1
          column    = 1
        RECEIVING
          container = go_cell_left.
      CALL METHOD go_splitter->get_container
        EXPORTING
          row       = 1
          column    = 2
        RECEIVING
          container = go_cell_right.
    * Create 2nd splitter container
      CREATE OBJECT go_splitter_2
        EXPORTING
          parent            = go_cell_left
          rows              = 2
          columns           = 1
    *      NO_AUTODEF_PROGID_DYNNR =
    *      NAME              =
        EXCEPTIONS
          cntl_error        = 1
          cntl_system_error = 2
          OTHERS            = 3.
      IF sy-subrc NE 0.
    *   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    * Get cell container
      CALL METHOD go_splitter_2->get_container
        EXPORTING
          row       = 1
          column    = 1
        RECEIVING
          container = go_cell_top.
      CALL METHOD go_splitter_2->get_container
        EXPORTING
          row       = 2
          column    = 1
        RECEIVING
          container = go_cell_bottom.
    * Create ALV grids
      CREATE OBJECT go_grid1
        EXPORTING
          i_parent = go_cell_top
        EXCEPTIONS
          OTHERS   = 5.
      IF sy-subrc NE 0.
    *   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      CREATE OBJECT go_grid2
        EXPORTING
          i_parent = go_cell_bottom
        EXCEPTIONS
          OTHERS   = 5.
      IF sy-subrc NE 0.
    *   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      CREATE OBJECT go_grid3
        EXPORTING
          i_parent = go_cell_right
        EXCEPTIONS
          OTHERS   = 5.
      IF sy-subrc NE 0.
    *   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    * Set event handler
      SET HANDLER: lcl_eventhandler=>handle_double_click FOR go_grid1.
      SET HANDLER: lcl_eventhandler=>handle_double_click FOR go_grid2.
      SET HANDLER: lcl_eventhandler=>handle_double_click FOR go_grid3.
    ENDFORM.                    " INIT_CONTROLS
    *&      Form  GET_DETAILS
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM get_details .
    * define local data
      DATA: ls_row      TYPE lvc_s_row,
            ls_col      TYPE lvc_s_col.
      data: ls_outtab   type vbak,
            ls_outtab_2 type vbap,
            ls_outtab_3 type vbep.
      BREAK-POINT.
      CASE gd_okcode.
        WHEN 'GET_ITEMS'.
          CALL METHOD go_grid1->get_current_cell
            IMPORTING
    *          e_row     =
    *          e_value   =
    *          e_col     =
              es_row_id = ls_row
              es_col_id = ls_col
    *          es_row_no =
          read TABLE gt_outtab into ls_outtab index ls_row-index.
          refresh: gt_outtab_2,
                   gt_outtab_3.
          SELECT        * FROM  vbap into TABLE gt_outtab_2
                 WHERE  vbeln  = ls_outtab-vbeln.
        WHEN 'GET_SCHEDULE_LINES'.
          CALL METHOD go_grid2->get_current_cell
            IMPORTING
    *          e_row     =
    *          e_value   =
    *          e_col     =
              es_row_id = ls_row
              es_col_id = ls_col
    *          es_row_no =
          READ TABLE gt_outtab_2 into ls_outtab_2 index ls_row-index.
          refresh: gt_outtab_3.
          SELECT        * FROM  vbep into TABLE gt_outtab_3
                 WHERE  vbeln  = ls_outtab_2-vbeln
                 AND    posnr  = ls_outtab_2-posnr.
        WHEN OTHERS.
          RETURN.
      ENDCASE.
      IF ( lcl_eventhandler=>ms_row = ls_row  AND
           lcl_eventhandler=>ms_col = ls_col ).
        MESSAGE 'Current cell identical'  TYPE 'I'.
      ELSE.
        MESSAGE 'Current cell NOT identical'  TYPE 'I'.
      ENDIF.
    ENDFORM.                    " GET_DETAILS
    Regards
      Uwe

  • Would like to make the entire ALV Grid invisible.

    Hello everyone,
    I have a screen with 2 alv grids on a custom control.
    Now when required I would like to hide one or both the alv grid. How can I do this?
    Custom controls cannot be made invisible. Is there a method in alv which would make  the entire alv grid disappear?
    Thanks in advance,
    Karan

    > Now when required I would like to hide one or both the alv grid. How can I do this?
    > Custom controls cannot be made invisible. Is there a method in alv which would make  the entire alv
    > grid disappear?
    Custom Control we cannot see directly on the screen output. If one of the Grid you want to make invisible
    then you can follw some thing similar approach ..
    in PBO you will intialize the controls. while initalizing it you pass the wrong Custom control name then it will not display the ALV GRID.
    Custom control name  is name of the Custom control of screen what ever you want to show.

  • Can I have multiple hotspots on the same ALV grid?

    Hi,
    I have a simple ALV grid report with a hotspot.  I can't seem to find any examples or information on whether I can have 2 hotspots on the same ALV grid line.
    Is this possible and is there an example somewhere that I can look at?
    Thanks for your help!
    Andy

    Check the code below
      METHODS:set_hotspot_ebeln CHANGING pc_alv TYPE REF TO cl_salv_table
                                         pc_report TYPE REF TO lcl_report.
    *--Event Handlers for alv
        METHODS:on_link_click FOR EVENT link_click OF cl_salv_events_table
                              IMPORTING row column .
    METHOD set_hotspot_ebeln.
        DATA: lf_cols_tab TYPE REF TO cl_salv_columns_table,
              lf_col_tab  TYPE REF TO cl_salv_column_table.
        DATA: lf_events TYPE REF TO cl_salv_events_table.
        lf_cols_tab = pc_alv->get_columns( ).
        TRY.
            lf_col_tab ?= lf_cols_tab->get_column( 'VGBEL' ).
          CATCH cx_salv_not_found.
        ENDTRY.
        TRY.
            CALL METHOD lf_col_tab->set_cell_type
              EXPORTING
                value = if_salv_c_cell_type=>hotspot. "5-stands for hot spot
          CATCH cx_salv_data_error .
        ENDTRY.
        TRY.
            lf_col_tab ?= lf_cols_tab->get_column( 'VBELN' ).
          CATCH cx_salv_not_found.
        ENDTRY.
        TRY.
            CALL METHOD lf_col_tab->set_cell_type
              EXPORTING
                value = if_salv_c_cell_type=>hotspot. "5-stands for hot spot
          CATCH cx_salv_data_error .
        ENDTRY.
        lf_events = pc_alv->get_event( ).
    *--Set event handler for click on cell
        SET HANDLER lf_report->on_link_click FOR lf_events.
      ENDMETHOD.                    "set_hotspot_ebeln
      METHOD on_link_click.
        DATA:la_put TYPE type_put.
        READ TABLE lf_report->i_put INTO la_put INDEX row.
        CHECK sy-subrc = 0.
        if column = 'VGBEL'.
        SET PARAMETER ID 'BES' FIELD la_put-vgbel.
        CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.
        elseif column = 'VBELN'
       "<----
       endif.
      ENDMETHOD.                    "on_link_click

  • When i log onto the internet a box come up on the bottom "show all content" how do i stop this

    When i log into windows a message comes up on the bottom of the screen "SHOW ALL CONTENT" how do I stop this message from coming up it is so annoying.
    This question was solved.
    View Solution.

    Hi,
    Close any open Internet Explorer windows.
    Open windows Control Panel, open Internet Options, click the Security tab and click Custom Level.  About half way down, under the heading Miscellaneous, there is an entry for 'Display Mixed Content' - click Enable and then Ok, then click Apply and Ok in the previous window.
    Regards,
    DP-K
    ****Click the White thumb to say thanks****
    ****Please mark Accept As Solution if it solves your problem****
    ****I don't work for HP****
    Microsoft MVP - Windows Experience

  • When I try to log into the app store to update apps or buy apps the user name that appears is an old one and it will not bring up the current user name/ email how do I stop that so that my current email show up ??

    When I try to log into the app store to update apps or buy apps the user name that appears is an old one and it will not bring up the current user name/ email how do I stop that so that my current email show up ??

    Settings>Store: Tap the AppleID and choose "Sign Out", it will then prompt you to sign in and you can use the new AppleID.
    NOTE: Apps must be updated with the AppleID they were purchased under.
    EE

  • USB-6259 to capture the current waveforms

    Hi all,
            I am pretty new to LabView and data aquisition. Sorry to bother you all. I have a question:
    "Can I use the USB-6259 DAQ device to capture the current waveform of electrical appliances e.g. electric kettle using current probes????? If yes, could you be very kind to guide me in this regard???"
             Thanking in anticipation.
    Best regards,
    Haroon

    Yes, you can do that.  You need to do the following:
    1. Put a shunt resistor (1ohm, high precision, high wattage) in series with your application.
    2. Use one of the Analog input from your DAQ to measure the voltage drop across the shunt, and this will be your current waveform, since the resistor has 1 ohm.
    Things to watch out for:
    1. Power rating on shunt: make sure your shunt can handle the power.
    2. Noise: you may need some filtering circuitry to get rid of the signal noise.  If you are comforable with digital filtering, you can use some of the filtering function in LabVIEW.
    3. Level at AI: maybe very low, since there are little drop across the shunt.  If you don't mind a larger voltage drop, you can increase the value of the shunt to increase the level; if you just want to look at the pulse shape.  Or, you can put an amplifying circuit for a little boost before you feel the signal to AI.
    Yik
    Kudos and Accepted as Solution are welcome!

  • ECATT SAPGUI method to capture ALV grid contents

    Dear All,
    I am using eCATT SAPGUI method to record the transaction VF04. The problem here is I am unable to capture the contents of the ALV grid present in the transaction.
    Were any one of you able to capture the contents of ALV grid using SAPGUI method, if so, please do help me to solve this problem.
    Thanks in advance,
    Sidharth

    Hi Sidharth,
    Did u find any solution for this problem .
    Iam facing same problem for MRIS,MRRL alv reports.Iam recording through SAP GUI but I want One out put field in log. If U find any solution for this plz forward to me.
    Thanks in advance
    Raju.K

  • How to edit the existing ALV grid output variants

    Hi experts,
    The requirement states that I need to rearrange the existing output layout of the ALV & add a few fields in it. Currently, the output layout is stored as a variant. The program uses the FM LT_DBDATA_READ_FROM_LTDX, to load the fields associated with the variant.
    Please explain how can i modify the existing variant? If not, then how to create a new variant?
    Thanks in advance!

    You may use one of those FM
    - REUSE_ALV_VARIANT_SELECT and REUSE_ALV_VARIANT_SAVE
    - LVC_VARIANT_SELECT and  LVC_VARIANT_SAVE
    Regards,
    Raymond

  • ALV Grid editable - How to raise the data_changed event from outside object

    Hi,
    i'd like to like to raise the data_changed event from outside the ALV-Grid object in order to display errors to the user.
    For example a new row was inserted within the program. The user has only to complete the missing informations. Before saving the transactions the program has to execute some semantic checks. The errors of this check process should be shown to the user by creating an instance of the cl_alv_changed_data_portocol object.
    Thanks.
    Regards

    You don't need to raise the data_changed event to perform the edits or to issue messages using cl_alv_changed_data_protocol.
    The following assumes you have an ALV grid object g_alv based on the CL_GUI_ALV_GRID class.
    You can mark the inserted records upon insertion as selected using the set_selected_rows method, and then retrieve these rows later using get_selected_rows and perform necessary edits.
    Save the row number of each inserted row into a table of the appropriate type (see the method definition for this):
    DATA: t_index_rows    TYPE  lvc_t_row.
    DATA: s_row_no        TYPE  lvc_s_roid.
    DATA: t_row_no        TYPE  lvc_t_roid.
    Load entries into t_row_no after each insert.  Capture the row number and save in the table t_row_no.
    e.g.
    PERFORM insert_row USING s_row_no-row_id.
    APPEND s_row_no TO t_row_no.
    FORM insert_row would have whatever code you are using to insert the row.  Save the row id into s_row_no-row_id (which is an INT4).
    When done with all inserts do the following
      IF t_row_no[] IS NOT INITIAL.
        CALL METHOD g_alv->set_selected_rows
          EXPORTING
            it_index_rows            = t_index_rows
            it_row_no                = t_row_no
            is_keep_other_selections = 'X'.
      ENDIF.
    Then, if SAVE is pressed without the data_changed event having been raised (such as if the user just pressed SAVE without changing anything), use method get_selected_rows to retrieve the rows that were inserted and perform the necessary edits.
      DATA: l_t_rows    TYPE lvc_t_row.              " ALV control: Table rows
      CALL METHOD g_alv->get_selected_rows
        IMPORTING
          et_index_rows = l_t_rows.
    Loop through l_t_rows and use the row as an index into the grid, perform the necessary edits, just as you would if the data_changed event had been raised.
    If any edits fail, then send messages to the user, abort the save, and re-display the grid.
    Remember to refresh the t_row_no and t_index_rows tables if you load a new data set.
    You can also use a similar technique with the data_changed event to mark each changed row as selected by saving the row ids, and then you only have to update the changed rows on SAVE, which can minimize database I/O.
    Good luck.
    Brian

  • ALV Grid contents to be saved as Report Varaint

    Hello Folks,
    There is a requirement to select and specify Table Fields on the Report Selection Screen. The UI should be something in a form of a Table Control or an Editable ALV grid. ALV Grid is the choice made for capturing the Table Fields (through classical Dynpro).
    This Table Fields will be then read in the program to retrieve data from the DB table and finally display it in the dynamic ALV.
    I am thinking of how to achieve the following:
    - Is it possible to have an editable ALV grid on a Report Selection Screen? If yes, how can it be achieved.
    - is it possible to save the contents (data) on the ALV grid in something like a report variant. So that the the user do not have to fill-up the data in the grid everytime.
    Thank you

    Well , Let this be a start for you. In the below code the alv is displayed in selection screen and the values can be saved as variant.
    The dynamic table creation stuff's are discussed a lot here, please search for that. The below code is just written instantly and can be firther corrected and optimized.
    Execute and check it once.
    TYPE-POOLS:slis.
    CLASS lcl_event_receiver DEFINITION DEFERRED.
    TYPES:BEGIN OF ty,
          field TYPE fld_namev,
          END OF ty.
    DATA:it TYPE TABLE OF ty,
         wa TYPE ty,
         fieldcat TYPE lvc_t_fcat,
         l_valid TYPE c,
         obj type ref to cl_gui_alv_grid,
         g_verifier type ref to lcl_event_receiver,
         wa_fcat type lvc_s_fcat,
         repid type sy-repid,
        dock type ref to cl_gui_docking_container.
    CLASS lcl_event_receiver DEFINITION.
      PUBLIC SECTION.
        METHODS:
          handle_data_changed
             FOR EVENT data_changed OF cl_gui_alv_grid
                 IMPORTING er_data_changed.
    ENDCLASS.
    CLASS lcl_event_receiver IMPLEMENTATION.
      METHOD handle_data_changed.
        DATA:ls_good TYPE lvc_s_modi.
        LOOP AT er_data_changed->mt_good_cells INTO ls_good.
        ENDLOOP.
      ENDMETHOD.
    ENDCLASS.
    PARAMETERS:pa_tab TYPE tabname16.
    PARAMETERS:pa_str TYPE string NO-DISPLAY.
    AT SELECTION-SCREEN OUTPUT.
      IF NOT sy-slset IS INITIAL.
        SPLIT pa_str AT cl_abap_char_utilities=>cr_lf INTO TABLE it.
      ENDIF.
      IF dock IS INITIAL.
        repid = sy-repid.
        CREATE OBJECT dock
             EXPORTING
               repid = repid
               dynnr = sy-dynnr
               ratio = 80
               side  = cl_gui_docking_container=>dock_at_bottom
               name  = 'DOCK_CONT'.
      ENDIF.
      IF obj IS INITIAL.
        CREATE OBJECT obj
         EXPORTING
             i_parent          =  dock.
      ENDIF.
      IF fieldcat IS INITIAL.
        wa_fcat-fieldname = 'FIELD'.
        wa_fcat-seltext = 'Field Name'.
        wa_fcat-edit = 'X'.
        APPEND wa_fcat TO fieldcat.
      ENDIF.
      if g_verifier is initial.
      CREATE OBJECT g_verifier.
      SET HANDLER g_verifier->handle_data_changed FOR obj.
      endif.
      CALL METHOD obj->set_table_for_first_display
       CHANGING
       it_fieldcatalog = fieldcat
       it_outtab = it.
      CALL METHOD obj->set_ready_for_input
       EXPORTING
        i_ready_for_input = 1.
    AT SELECTION-SCREEN.
      IF sy-ucomm EQ 'SPOS'.
        CALL METHOD obj->check_changed_data
                   IMPORTING e_valid = l_valid.
        LOOP AT it INTO wa.
          IF sy-tabix = 1.
            pa_str = wa-field.
          ELSE.
            CONCATENATE pa_str cl_abap_char_utilities=>cr_lf
                    wa-field INTO pa_str.
          ENDIF.
        ENDLOOP.
      ENDIF.
    START-OF-SELECTION.

  • Capture Changes on ALV Grid Display

    Hi,
    I am displaying a check box on ALV Grid Display. I have to provide a push button on the application tool bar through which i have to perform some other action. How can i capture the changes made to that check box?
    I am using the FM 'REUSE_ALV_GRID_DISPLAY'.
    Thanks in Advance.
    Best Regards,
    Phani
    Message was edited by:
            Sivapuram Phani Kumar

    Hi Amit,
    Solved the problem... Thank you very much.
    Yesterday i have raised one more thread regarding an issue with ALV Grid... Can u please check and help me out. Here is the link for that issue...
    Issue with ALV Display
    Regards,
    Phani

Maybe you are looking for