Skip to Content
author's profile photo Former Member
Former Member

retrieve value from online editing ALV

Hi guys,

We're doing a online editable ALV to accept user key in(sales order price) and update the new price to the sale order.

There is a problem to capture the input data from user in ALV. Please advise how to get the input data. Thanks.

Add a comment
10|10000 characters needed characters exceeded

Assigned Tags

Related questions

4 Answers

  • Best Answer
    author's profile photo Former Member
    Former Member
    Posted on Jul 11, 2007 at 03:53 AM

    Boon,

    Pls. check this program.

    REPORT ZTESTALV .

    *Data Declaration

    *----


    DATA: BEGIN OF T_EKKO,

    EBELN TYPE EKPO-EBELN,

    EBELP TYPE EKPO-EBELP,

    END OF T_EKKO.

    DATA: BEGIN OF IT_EKKO OCCURS 0.

    INCLUDE STRUCTURE T_EKKO.

    DATA: END OF IT_EKKO.

    DATA: BEGIN OF IT_BACKUP OCCURS 0.

    INCLUDE STRUCTURE T_EKKO.

    DATA: END OF IT_BACKUP.

    *ALV data declarations

    TYPE-POOLS: SLIS. "ALV Declarations

    DATA: FIELDCATALOG TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,

    GD_LAYOUT TYPE SLIS_LAYOUT_ALV,

    GD_REPID LIKE SY-REPID.

    ************************************************************************

    *Start-of-selection.

    START-OF-SELECTION.

    PERFORM DATA_RETRIEVAL.

    PERFORM BUILD_FIELDCATALOG.

    PERFORM BUILD_LAYOUT.

    IT_BACKUP[] = IT_EKKO[].

    PERFORM DISPLAY_ALV_REPORT.

    &----


    *& Form build_fieldcatalog

    &----


    • text

    ----


    FORM BUILD_FIELDCATALOG.

    REFRESH FIELDCATALOG.

    CLEAR FIELDCATALOG.

    *

    FIELDCATALOG-FIELDNAME = 'EBELN'.

    FIELDCATALOG-SELTEXT_M = 'Purchase Order'.

    FIELDCATALOG-INPUT = 'X'.

    FIELDCATALOG-EDIT = 'X'.

    FIELDCATALOG-COL_POS = 2.

    APPEND FIELDCATALOG.

    CLEAR FIELDCATALOG.

    FIELDCATALOG-FIELDNAME = 'EBELP'.

    FIELDCATALOG-SELTEXT_M = 'PO Item'.

    FIELDCATALOG-COL_POS = 3.

    APPEND FIELDCATALOG.

    CLEAR FIELDCATALOG.

    ENDFORM. " BUILD_FIELDCATALOG

    &----


    *& Form BUILD_LAYOUT

    &----


    • Build layout for ALV grid report

    ----


    FORM BUILD_LAYOUT.

    "Permet d'ajuster les colonnes au text

    • gd_layout-colwidth_optimize = 'X'.

    GD_LAYOUT-TOTALS_TEXT = 'Totals'(201).

    • gd_layout-box_fieldname = 'SELECT'.

    • gd_layout-box_tabname = 'IT_EKKO'.

    ENDFORM. " BUILD_LAYOUT

    &----


    *& Form DISPLAY_ALV_REPORT

    &----


    • Display report using ALV grid

    ----


    FORM DISPLAY_ALV_REPORT.

    GD_REPID = SY-REPID.

    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

    EXPORTING

    I_CALLBACK_PROGRAM = GD_REPID

    • i_callback_top_of_page = 'TOP-OF-PAGE'

    I_CALLBACK_PF_STATUS_SET = 'SET_PF_STATUS'

    I_CALLBACK_USER_COMMAND = 'USER_COMMAND'

    • i_grid_title = 'My Title'

    IS_LAYOUT = GD_LAYOUT

    IT_FIELDCAT = FIELDCATALOG[]

    TABLES

    T_OUTTAB = IT_EKKO

    EXCEPTIONS

    PROGRAM_ERROR = 1

    OTHERS = 2.

    IF SY-SUBRC <> 0.

    WRITE:/ SY-SUBRC.

    ENDIF.

    ENDFORM. " DISPLAY_ALV_REPORT

    &----


    *& Form DATA_RETRIEVAL

    &----


    • Retrieve data form EKPO table and populate itab it_ekko

    ----


    FORM DATA_RETRIEVAL.

    SELECT EBELN EBELP

    UP TO 10 ROWS

    FROM EKPO

    INTO CORRESPONDING FIELDS OF TABLE IT_EKKO.

    ENDFORM. " DATA_RETRIEVAL

    ----


    • FORM SET_PF_STATUS *

    ----


    FORM SET_PF_STATUS USING RT_EXTAB TYPE SLIS_T_EXTAB.

    SET PF-STATUS 'STANDARD_FULLSCREEN1' EXCLUDING RT_EXTAB.

    ENDFORM. "set_pf_status

    &----


    *& Form user_command

    &----


    • text

    ----


    • -->R_UCOMM text

    • -->RS_SELFIELDtext

    ----


    FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM

    RS_SELFIELD TYPE SLIS_SELFIELD.

    <b>DATA: GD_REPID LIKE SY-REPID, "Exists

    REF_GRID TYPE REF TO CL_GUI_ALV_GRID. "new

    *then insert the following code in your USER_COMMAND routine...

    IF REF_GRID IS INITIAL.

    CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'

    IMPORTING

    E_GRID = REF_GRID.

    ENDIF.

    IF NOT REF_GRID IS INITIAL.

    CALL METHOD REF_GRID->CHECK_CHANGED_DATA

    .

    ENDIF.</b>

    CASE R_UCOMM.

    WHEN '&IC1'.

    CHECK RS_SELFIELD-TABINDEX > 0.

    IF RS_SELFIELD-VALUE EQ '6000000001'.

    CALL TRANSACTION 'ZDF2'.

    ENDIF.

    WHEN 'REFRESH'.

    READ TABLE IT_EKKO INDEX RS_SELFIELD-TABINDEX.

    IF SY-SUBRC = 0.

    READ TABLE IT_BACKUP INDEX RS_SELFIELD-TABINDEX.

    IF SY-SUBRC = 0.

    IF IT_EKKO <> IT_BACKUP.

    • then do your check

    ENDIF.

    ENDIF.

    ENDIF.

    PERFORM DATA_RETRIEVAL.

    RS_SELFIELD-REFRESH = 'X'.

    ENDCASE.

    ENDFORM. "user_command

    chk this link.

    http://www.sapdevelopment.co.uk/reporting/alv/alvgrid_editable.htm

    http://www.sapdevelopment.co.uk/reporting/alv/alvgrid_ucomm.htm

    See these threads

    making-selected-alv-rows-editable

    selective-edit-in-alv-grid

    Don't forget to reward if useful.......

    Add a comment
    10|10000 characters needed characters exceeded

  • author's profile photo Former Member
    Former Member
    Posted on Jul 11, 2007 at 06:18 AM

    hi,

    Chk his standard program. -> BCALV_EDIT_02

    Use the method -> <b>get_cell_value</b>

    Regards

    Reshma

    Add a comment
    10|10000 characters needed characters exceeded

  • author's profile photo Former Member
    Former Member
    Posted on Jul 11, 2007 at 03:53 AM

    You need to call the folowing method to get the changed data.

    CALL METHOD go_alvgrid->check_changed_data

    i hope this will solve your problem.

    Reward points if useful

    Add a comment
    10|10000 characters needed characters exceeded

  • Posted on Jul 11, 2007 at 04:11 AM

    Hi,

    Check this link.I am explaining the steps in detail.

    Editing the contents in ALV and saving it in Database

    https://wiki.sdn.sap.com/wiki/display/Snippets/ALV-Editingandsavingtheeditedvaluesin+Database(OOPS)

    (Copy and paste the URL)

    Message was edited by:

    Jayanthi Jayaraman

    Add a comment
    10|10000 characters needed characters exceeded

Before answering

You should only submit an answer when you are proposing a solution to the poster's problem. If you want the poster to clarify the question or provide more information, please leave a comment instead, requesting additional details. When answering, please include specifics, such as step-by-step instructions, context for the solution, and links to useful resources. Also, please make sure that you answer complies with our Rules of Engagement.
You must be Logged in to submit an answer.

Up to 10 attachments (including images) can be used with a maximum of 1.0 MB each and 10.5 MB total.