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: 

Example of an OO ALV that reflects changes from an editable column...

aris_hidalgo
Contributor
0 Kudos

Hello Experts,

I am currently developing a report wherein I need to add the value entered by the user to

another column. For example, Column A is editable and the user entered the value 100 in a

given cell. I need to add that value(100) to column B. Simple examples would be highly appreciated.

Thank you guys and take care!

1 ACCEPTED SOLUTION

Former Member
0 Kudos

Hi

data: LC_GLAY TYPE LVC_S_GLAY.

LC_GLAY-EDT_CLL_CB = 'X'.<<<<<------

gt_layout-zebra = 'X'.

gt_layout-detail_popup = 'X'.

gt_layout-colwidth_optimize = 'X'.

call function 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = i_repid

i_callback_user_command = 'USER_COMMAND1'

it_fieldcat = header

is_layout = gt_layout

i_callback_top_of_page = 'TOP-OF-PAGE1'

i_grid_title = text-h17

it_sort = gt_sort[]

i_default = 'X'

i_save = 'U'

is_variant = gt_variant

it_events = gt_events

I_GRID_SETTINGS = LC_GLAY<<<<<<------

TABLES

t_outtab = itab.

clear itab.

----


  • Form USER_COMMAND1

----


FORM USER_COMMAND1 USING u_ucomm LIKE sy-ucomm

us_selfield TYPE slis_selfield."#EC CALLED

case u_ucomm.

when '&DATA_SAVE'.<<<<<<<<----


This will come after the data was EDITTED and when SAVE was clicked by user in output scren.

Here now in the final internal table(ITAB) you can find the data changed in EDIT mode.

After this you can do manipulation what ever you want.

You can also INSERT data into custom table.

3 REPLIES 3

Former Member
0 Kudos

Hi

data: LC_GLAY TYPE LVC_S_GLAY.

LC_GLAY-EDT_CLL_CB = 'X'.<<<<<------

gt_layout-zebra = 'X'.

gt_layout-detail_popup = 'X'.

gt_layout-colwidth_optimize = 'X'.

call function 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = i_repid

i_callback_user_command = 'USER_COMMAND1'

it_fieldcat = header

is_layout = gt_layout

i_callback_top_of_page = 'TOP-OF-PAGE1'

i_grid_title = text-h17

it_sort = gt_sort[]

i_default = 'X'

i_save = 'U'

is_variant = gt_variant

it_events = gt_events

I_GRID_SETTINGS = LC_GLAY<<<<<<------

TABLES

t_outtab = itab.

clear itab.

----


  • Form USER_COMMAND1

----


FORM USER_COMMAND1 USING u_ucomm LIKE sy-ucomm

us_selfield TYPE slis_selfield."#EC CALLED

case u_ucomm.

when '&DATA_SAVE'.<<<<<<<<----


This will come after the data was EDITTED and when SAVE was clicked by user in output scren.

Here now in the final internal table(ITAB) you can find the data changed in EDIT mode.

After this you can do manipulation what ever you want.

You can also INSERT data into custom table.

Former Member
0 Kudos

hi

THIS IS FOR NORMAL alv TRY FOR OOP

if u r using ALV reports use fieldcatalogs yhen u can edit the selected fields.

d_fieldcat_wa-fieldname = 'EMPADDRESS'.

d_fieldcat_wa-seltext_l = 'Employee Address'.

d_fieldcat_wa-edit= 'X'.

d_fieldcat_wa-input = 'X'.

d_fieldcat_wa-col_pos = 1.

append d_fieldcat_wa to d_fieldcat.

clear d_fieldcat_wa.

data : gd_repid like sy-repid.

gd_repid = sy-repid.

call fucction module reuse_alv_grid_display.

call_back_program = gd_repid.

t_fieldcat = d_fieldcat.

tables

t_outtab = itab.

Former Member
0 Kudos

Hi use this One.

WA_FIELDCAT-EDIT = 'X'.

WS_LAYOUT-EDIT_MODE = 'A'.

----


  • CLASS event_receiver DEFINITION

----


CLASS EVENT_RECEIVER DEFINITION.

PUBLIC SECTION.

METHODS: HANDLE_TOOLBAR_SET

FOR EVENT TOOLBAR OF CL_GUI_ALV_GRID

IMPORTING E_OBJECT E_INTERACTIVE,

HANDLE_USER_COMMAND

FOR EVENT USER_COMMAND OF CL_GUI_ALV_GRID

IMPORTING E_UCOMM SENDER,

DATA_CHANGED_FINISHED

FOR EVENT DATA_CHANGED OF CL_GUI_ALV_GRID

IMPORTING ER_DATA_CHANGED.

ENDCLASS. "event_receiver DEFINITION

&----


*& Class (Implementation) event_receiver

&----


  • Text

----


CLASS EVENT_RECEIVER IMPLEMENTATION.

METHOD HANDLE_TOOLBAR_SET.

ENDMETHOD. "HANDLE_TOOLBAR_SET

METHOD HANDLE_USER_COMMAND.

ENDMETHOD. "HANDLE_USER_COMMAND

METHOD DATA_CHANGED_FINISHED.

LOOP AT ER_DATA_CHANGED->MT_MOD_CELLS INTO WA_T_MODI.

READ TABLE IT_FINAL INTO WA_FINAL INDEX WA_T_MODI-TABIX.

IF SY-SUBRC = 0.

CASE WA_T_MODI-FIELDNAME.

WHEN 'INTEREST'.

WA_FINAL-INTEREST = WA_T_MODI-VALUE.

WA_FINAL-TOTTDS = WA_FINAL-TDSAMT + WA_FINAL-SURCHG + WA_FINAL-ECESS + WA_FINAL-HECESS +

WA_FINAL-INTEREST + WA_FINAL-OTHERS .

MODIFY IT_FINAL FROM WA_FINAL INDEX WA_T_MODI-TABIX

TRANSPORTING INTEREST TOTTDS.

WHEN 'OTHERS'.

WA_FINAL-OTHERS = WA_T_MODI-VALUE.

WA_FINAL-TOTTDS = WA_FINAL-TDSAMT + WA_FINAL-SURCHG + WA_FINAL-ECESS + WA_FINAL-HECESS +

WA_FINAL-INTEREST + WA_FINAL-OTHERS .

MODIFY IT_FINAL FROM WA_FINAL INDEX WA_T_MODI-TABIX

TRANSPORTING OTHERS TOTTDS.

ENDCASE.

ENDIF.

ENDLOOP.

CALL METHOD GV_GRID->REFRESH_TABLE_DISPLAY

EXCEPTIONS

FINISHED = 1

OTHERS = 2.

ENDMETHOD. "DATA_CHANGED_FINISHED

ENDCLASS. "event_receiver

DATA : LCL_OBJ TYPE REF TO EVENT_RECEIVER.

CREATE OBJECT LCL_OBJ.

CREATE OBJECT CONT

EXPORTING

CONTAINER_NAME = 'CC_ALV'

EXCEPTIONS

CNTL_ERROR = 1

CNTL_SYSTEM_ERROR = 2

CREATE_ERROR = 3

LIFETIME_ERROR = 4

LIFETIME_DYNPRO_DYNPRO_LINK = 5

OTHERS = 6.

CREATE OBJECT GV_GRID

EXPORTING

I_PARENT = CONT

EXCEPTIONS

ERROR_CNTL_CREATE = 1

ERROR_CNTL_INIT = 2

ERROR_CNTL_LINK = 3

ERROR_DP_CREATE = 4

OTHERS = 5.

SET HANDLER LCL_OBJ->HANDLE_TOOLBAR_SET FOR GV_GRID.

SET HANDLER LCL_OBJ->HANDLE_USER_COMMAND FOR GV_GRID.

CALL METHOD GV_GRID->SET_TABLE_FOR_FIRST_DISPLAY

EXPORTING

IS_VARIANT = WS_VARIANT

I_SAVE = 'A'

IS_LAYOUT = WS_LAYOUT

IT_TOOLBAR_EXCLUDING = IT_FCODES

CHANGING

IT_OUTTAB = IT_FINAL

IT_FIELDCATALOG = IT_FIELD_CAT

EXCEPTIONS

INVALID_PARAMETER_COMBINATION = 1

PROGRAM_ERROR = 2

TOO_MANY_LINES = 3

OTHERS = 4.

CALL METHOD GV_GRID->SET_READY_FOR_INPUT

EXPORTING

I_READY_FOR_INPUT = 1.

CALL METHOD GV_GRID->REGISTER_EDIT_EVENT

EXPORTING

I_EVENT_ID = CL_GUI_ALV_GRID=>MC_EVT_ENTER.

SET HANDLER LCL_OBJ->DATA_CHANGED_FINISHED FOR GV_GRID.

Edited by: VipulKumar Darji on Oct 20, 2010 11:29 AM