Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

SINGLE ROW EDITABLE in REUSE_ALV_GRID_DISPLAY

shrikanth_rathod
Explorer
0 Kudos

Hi Experts,

I have a requirement in which i need to make a single row editable in ALV . Can u please tell me the procedure to make a single row editable using REUSE_ALV_GRID_DISPLAY.

<<removed by moderator>>

Thanks,

Shrikanth

6 REPLIES 6

Former Member
0 Kudos

Hi Shrikanth,

Is it single ROW or COLUMN?

Because its only through field catalog, we make the fields editable..and using field catalog we can make one column as editable.......

Best Regards,

Ram.

Former Member
0 Kudos

Hi Sree,

There are many codes available on net do spend some time to search i have shown one sample code copy paste and execute and according to your issue you make the modifications.

You can see Net price will be in editable mode.

TABLES: ekko.

TYPE-POOLS: slis. "ALV Declarations

*Data Declaration

*----


TYPES: BEGIN OF t_ekko,

ebeln TYPE ekpo-ebeln,

ebelp TYPE ekpo-ebelp,

statu TYPE ekpo-statu,

aedat TYPE ekpo-aedat,

matnr TYPE ekpo-matnr,

menge TYPE ekpo-menge,

meins TYPE ekpo-meins,

netpr TYPE ekpo-netpr,

peinh TYPE ekpo-peinh,

field_style TYPE lvc_t_styl, "FOR DISABLE

END OF t_ekko.

DATA: it_ekko TYPE STANDARD TABLE OF t_ekko INITIAL SIZE 0,

wa_ekko TYPE t_ekko.

*ALV data declarations

DATA: fieldcatalog TYPE slis_t_fieldcat_alv WITH HEADER LINE.

DATA: it_fieldcat TYPE lvc_t_fcat, "slis_t_fieldcat_alv WITH HEADER LINE,

wa_fieldcat TYPE lvc_s_fcat,

gd_tab_group TYPE slis_t_sp_group_alv,

gd_layout TYPE lvc_s_layo, "slis_layout_alv,

gd_repid LIKE sy-repid.

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

*Start-of-selection.

START-OF-SELECTION.

PERFORM data_retrieval.

PERFORM set_specific_field_attributes.

PERFORM build_fieldcatalog.

PERFORM build_layout.

PERFORM display_alv_report.

&----


*& Form BUILD_FIELDCATALOG

&----


  • Build Fieldcatalog for ALV Report

----


FORM build_fieldcatalog.

wa_fieldcat-fieldname = 'EBELN'.

wa_fieldcat-scrtext_m = 'Purchase Order'.

wa_fieldcat-col_pos = 0.

wa_fieldcat-outputlen = 10.

wa_fieldcat-emphasize = 'X'.

wa_fieldcat-key = 'X'.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

wa_fieldcat-fieldname = 'EBELP'.

wa_fieldcat-scrtext_m = 'PO Item'.

wa_fieldcat-col_pos = 1.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

wa_fieldcat-fieldname = 'STATU'.

wa_fieldcat-scrtext_m = 'Status'.

wa_fieldcat-col_pos = 2.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

wa_fieldcat-fieldname = 'AEDAT'.

wa_fieldcat-scrtext_m = 'Item change date'.

wa_fieldcat-col_pos = 3.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

wa_fieldcat-fieldname = 'MATNR'.

wa_fieldcat-scrtext_m = 'Material Number'.

wa_fieldcat-col_pos = 4.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

wa_fieldcat-fieldname = 'MENGE'.

wa_fieldcat-scrtext_m = 'PO quantity'.

wa_fieldcat-col_pos = 5.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

wa_fieldcat-fieldname = 'MEINS'.

wa_fieldcat-scrtext_m = 'Order Unit'.

wa_fieldcat-col_pos = 6.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

wa_fieldcat-fieldname = 'NETPR'.

wa_fieldcat-scrtext_m = 'Net Price'.

wa_fieldcat-edit = 'X'. "sets whole column to be editable

wa_fieldcat-col_pos = 7.

wa_fieldcat-outputlen = 15.

wa_fieldcat-datatype = 'CURR'.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

wa_fieldcat-fieldname = 'PEINH'.

wa_fieldcat-scrtext_m = 'Price Unit'.

wa_fieldcat-col_pos = 8.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

ENDFORM. " BUILD_FIELDCATALOG

&----


*& Form BUILD_LAYOUT

&----


  • Build layout for ALV grid report

----


FORM build_layout.

  • Set layout field for field attributes(i.e. input/output)

gd_layout-stylefname = 'FIELD_STYLE'.

gd_layout-zebra = 'X'.

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'

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'

EXPORTING

i_callback_program = gd_repid

  • i_callback_user_command = 'USER_COMMAND'

is_layout_lvc = gd_layout

it_fieldcat_lvc = it_fieldcat

i_save = 'X'

TABLES

t_outtab = it_ekko

EXCEPTIONS

program_error = 1

OTHERS = 2.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

ENDFORM. " DISPLAY_ALV_REPORT

&----


*& Form DATA_RETRIEVAL

&----


  • Retrieve data form EKPO table and populate itab it_ekko

----


FORM data_retrieval.

SELECT ebeln ebelp statu aedat matnr menge meins netpr peinh

UP TO 10 ROWS

FROM ekpo

INTO CORRESPONDING FIELDS OF TABLE it_ekko.

ENDFORM. " DATA_RETRIEVAL

&----


*& Form set_specific_field_attributes

&----


  • populate FIELD_STYLE table with specific field attributes

----


form set_specific_field_attributes .

DATA ls_stylerow TYPE lvc_s_styl .

DATA lt_styletab TYPE lvc_t_styl .

  • Populate style variable (FIELD_STYLE) with style properties

*

  • The NETPR field/column has been set to editable in the fieldcatalog...

  • The following code sets it to be disabled(display only) if 'NETPR'

  • is gt than 10.

LOOP AT it_ekko INTO wa_ekko.

IF wa_ekko-netpr GT 10.

ls_stylerow-fieldname = 'NETPR' .

ls_stylerow-style = cl_gui_alv_grid=>mc_style_disabled.

"set field to disabled

APPEND ls_stylerow TO wa_ekko-field_style.

MODIFY it_ekko FROM wa_ekko.

ENDIF.

ENDLOOP.

endform. " set_specific_field_attributes

Cheers!!

VEnk@

Former Member
0 Kudos

Refer below thread..Check Vijay's reply .

[;

Regards

Sathar

former_member188685
Active Contributor
0 Kudos

see this sample code , this deals with ALV_GRID function. this can be done indirectly using the ALV class.

observe the TOP_OF_PAGE routine carefully.

REPORT  ztest_alv_001.
TYPE-POOLS: slis.

DATA: it_sort TYPE  slis_t_sortinfo_alv,
      wa_sort LIKE LINE OF it_sort.

DATA: it_fieldcat TYPE slis_t_fieldcat_alv,
      wa_fcat LIKE LINE OF it_fieldcat.

DATA: BEGIN OF it_flight OCCURS 0,
      carrid LIKE sflight-carrid,
      connid LIKE sflight-connid,
      style TYPE lvc_t_styl, "FOR DISABLE
     END OF it_flight.
DATA: wa_flight LIKE LINE OF it_flight.
DATA: layout TYPE lvc_s_layo.
DATA: o_grid TYPE REF TO cl_gui_alv_grid.

START-OF-SELECTION.

  SELECT carrid connid FROM sflight
  INTO CORRESPONDING FIELDS OF TABLE it_flight
  UP TO 20 ROWS.

  "{ FOR DISABLE
  DATA: ls_edit TYPE lvc_s_styl,
        lt_edit TYPE lvc_t_styl.
  "} FOR DISABLE


  wa_fcat-seltext_l = 'CARRID'.
  wa_fcat-fieldname = 'CARRID'.
  wa_fcat-tabname = 'IT_FLIGHT'.
  wa_fcat-edit = 'X'.
  wa_fcat-outputlen = '10'.
  APPEND wa_fcat TO it_fieldcat.
  CLEAR wa_fcat.

  wa_fcat-seltext_l = 'Connid'.
  wa_fcat-fieldname = 'CONNID'.
  wa_fcat-tabname = 'IT_FLIGHT'.
  wa_fcat-edit = 'X'.
  wa_fcat-outputlen = '10'.
  APPEND wa_fcat TO it_fieldcat.
  CLEAR wa_fcat.


  LOOP AT it_flight INTO wa_flight.
    IF sy-tabix = 6.
      ls_edit-style = cl_gui_alv_grid=>mc_style_enabled.
    ELSE.
      ls_edit-style = cl_gui_alv_grid=>mc_style_disabled.
    ENDIF.
    ls_edit-fieldname = 'CARRID'.
    ls_edit-style2 = space.
    ls_edit-style3 = space.
    ls_edit-style4 = space.
    ls_edit-maxlen = 10.
    INSERT ls_edit INTO TABLE lt_edit.
    ls_edit-fieldname = 'CONNID'.
    ls_edit-style2 = space.
    ls_edit-style3 = space.
    ls_edit-style4 = space.
    ls_edit-maxlen = 6.
    INSERT ls_edit INTO TABLE lt_edit.
    INSERT LINES OF lt_edit INTO TABLE wa_flight-style.
    MODIFY it_flight INDEX sy-tabix FROM wa_flight  TRANSPORTING
                                      style .
    CLEAR lt_edit.

  ENDLOOP.


  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      i_callback_program          = sy-repid
      i_callback_html_top_of_page = 'TOP_OF_PAGE'
      it_fieldcat                 = it_fieldcat
    TABLES
      t_outtab                    = it_flight
    EXCEPTIONS
      program_error               = 1
      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.


*&---------------------------------------------------------------------*
*&      Form  top_of_page
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->HEADER     text
*----------------------------------------------------------------------*
FORM top_of_page USING header TYPE REF TO cl_dd_document.
  DATA: ls_text TYPE sdydo_text_element,
        meth(20) TYPE c VALUE 'SET_FRONTEND_LAYOUT'.

  IF o_grid IS INITIAL.
    CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
      IMPORTING
        e_grid = o_grid.

    layout-stylefname = 'STYLE'.

    CALL METHOD o_grid->(meth)
      EXPORTING
        is_layout = layout.

    CALL METHOD o_grid->refresh_table_display.

  ENDIF.
  BREAK-POINT.
ENDFORM.                    "top_of_page

Former Member
0 Kudos

Hi,

first you have to pass the row position in field catalog

and then use edit parameter in the field catalog.

shrikanth_rathod
Explorer
0 Kudos

Solved.