Application Development and Automation 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: 
Read only

ALV Editable code

manubhutani
Active Contributor
0 Likes
592

Hi Guru's

Does anybody have a code in which we have an editable ALV

and the content changes in it are saved at the backend in some database table.

I mean a program which i can run directly .

I would be very thankful 2 all of you if you can send me this code at the earliest..

Thanks and Regards

4 REPLIES 4
Read only

Former Member
0 Likes
553

Check these sample codes...

BCALV_EDIT_01

BCALV_EDIT_02

BCALV_EDIT_03

BCALV_EDIT_04

BCALV_EDIT_05

BCALV_EDIT_06

BCALV_EDIT_07

BCALV_EDIT_08

Precisely you can implement the below logic..............

In the field catalogue, change the attributes of that field as editable

fcat-edit = 'X'.

After creating the grid, register event entered and modified

  • Create alv grid

CREATE OBJECT w_grid_vend

EXPORTING

i_parent = w_vend_contnr

EXCEPTIONS

error_cntl_create = 1

error_cntl_init = 2

error_cntl_link = 3

error_dp_create = 4

others = 5.

IF sy-subrc <> 0.

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

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

ENDIF.

  • Register edit event

CALL METHOD w_grid_vend->register_edit_event

EXPORTING

i_event_id = cl_gui_alv_grid=>mc_evt_enter

EXCEPTIONS

error = 1

OTHERS = 2.

IF sy-subrc <> 0.

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

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

ENDIF.

  • Edit event for modified

CALL METHOD w_grid_vend->register_edit_event

EXPORTING

i_event_id = cl_gui_alv_grid=>mc_evt_modified

EXCEPTIONS

error = 1

OTHERS = 2.

Handle the changed data in the methods

  • Handle data changed

METHODS handle_data_changed FOR EVENT data_changed

OF cl_gui_alv_grid

IMPORTING er_data_changed.

Regards,

Pavan

Read only

Former Member
0 Likes
553

Also check these blogs...........

/people/srilatha.t/blog/2007/04/16/alv-grid-150-insert-row-function

/people/srilatha.t/blog/2007/04/13/alv-grid--delete-row-function

Regards,

Pavan

Read only

Former Member
0 Likes
553

Hi Gaurav,

Try this coding. it will be helpful

REPORT ZEDIT_ALV1 .

*Data Declaration

*----


DATA: BEGIN OF T_EKKO,

EBELN TYPE EKPO-EBELN,

EBELP TYPE EKPO-EBELP,

  • FLAG TYPE C,

  • HANDLE_STYLE TYPE LVC_T_STYL,

END OF T_EKKO.

DATA: GD_REPID LIKE SY-REPID, "Exists

REF_GRID TYPE REF TO CL_GUI_ALV_GRID. "new

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.

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

*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>

*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>*modify

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

Reward Points if Useful

Regards

Gokul<b></b>

Message was edited by:

Gokul

Read only

Former Member
0 Likes
553

RS_REFRESH_FROM_DYNAMICAL_SEL Returns values of dynamic selections (selection screen)

RS_REFRESH_FROM_SELECTOPTIONS Current contents of selection screen

use these function modules laong with refresh key on application toolbar ....i hope this will will help u .....

reward points if helpful...

Message was edited by:

raam