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

update internal table from editable alv list

Former Member
0 Likes
551

Hello,

I have an editable field in an alv list.

The alv displays data from the internal table IT and for the lines selected by the user the alv becomes editable.

The user makes the necessary changes into the editable alv fields and then presses SAVE and the new data should be updated into IT.

How to take the changes the user made to the editable alv fields and update them into the IT table?

I've seen some detailed answers for alv grids but not for alv lists.

Can you provide a solution for this?

Thanks.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
429

CASE SYST-UCOMM.

WHEN '&DATA_SAVE'.

  • Look for all changed records.

LOOP AT I_FINAL INTO WA_FINAL.

READ TABLE XX_FINAL INDEX SY-TABIX.

IF WA_FINAL <> XX_FINAL.

WA_FINAL-CS_N_PRICE = WA_FINAL-CS_L_PRICE - ( WA_FINAL-CS_L_PRICE * WA_FINAL-DISCOUNT ) / 100.

WA_FINAL-NETDIFF = WA_FINAL-CS_L_PRICE - WA_FINAL-CS_N_PRICE.

WA_FINAL-TOTPRICE = WA_FINAL-OUTBAL * WA_FINAL-CS_N_PRICE.

APPEND WA_FINAL TO ZZ_FINAL.

ELSE.

WA_FINAL-CS_N_PRICE = WA_FINAL-CS_L_PRICE - ( WA_FINAL-CS_L_PRICE * WA_FINAL-DISCOUNT ) / 100.

WA_FINAL-NETDIFF = WA_FINAL-CS_L_PRICE - WA_FINAL-CS_N_PRICE.

WA_FINAL-TOTPRICE = WA_FINAL-OUTBAL * WA_FINAL-CS_N_PRICE.

APPEND WA_FINAL TO ZZ_FINAL.

ENDIF.

ENDLOOP.

I_FINAL[] = ZZ_FINAL[].

REFRESH ZZ_FINAL.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'

EXPORTING

I_CALLBACK_PROGRAM = G_REPID

I_CALLBACK_PF_STATUS_SET = 'STATUS'

I_CALLBACK_USER_COMMAND = 'PROCESS_USER_COMMANDS'

IS_LAYOUT_LVC = GD_LAYOUT

IT_FIELDCAT_LVC = IT_FIELDCAT

I_SAVE = 'X'

I_GRID_SETTINGS = LC_GLAY

TABLES

T_OUTTAB = I_FINAL

EXCEPTIONS

PROGRAM_ERROR = 1

OTHERS = 2.

IF SY-UCOMM = '&F03'.

LEAVE TO SCREEN 0.

ELSEIF SY-UCOMM = 'BACK'.

LEAVE TO SCREEN 0.

ENDIF.

Hello,

I have an editable field in an alv list.

The alv displays data from the internal table IT and for the lines selected by the user the alv becomes editable.

The user makes the necessary changes into the editable alv fields and then presses SAVE and the new data should be updated into IT.

How to take the changes the user made to the editable alv fields and update them into the IT table?

I've seen some detailed answers for alv grids but not for alv lists.

Can you provide a solution for this?

Thanks.

1 REPLY 1
Read only

Former Member
0 Likes
430

CASE SYST-UCOMM.

WHEN '&DATA_SAVE'.

  • Look for all changed records.

LOOP AT I_FINAL INTO WA_FINAL.

READ TABLE XX_FINAL INDEX SY-TABIX.

IF WA_FINAL <> XX_FINAL.

WA_FINAL-CS_N_PRICE = WA_FINAL-CS_L_PRICE - ( WA_FINAL-CS_L_PRICE * WA_FINAL-DISCOUNT ) / 100.

WA_FINAL-NETDIFF = WA_FINAL-CS_L_PRICE - WA_FINAL-CS_N_PRICE.

WA_FINAL-TOTPRICE = WA_FINAL-OUTBAL * WA_FINAL-CS_N_PRICE.

APPEND WA_FINAL TO ZZ_FINAL.

ELSE.

WA_FINAL-CS_N_PRICE = WA_FINAL-CS_L_PRICE - ( WA_FINAL-CS_L_PRICE * WA_FINAL-DISCOUNT ) / 100.

WA_FINAL-NETDIFF = WA_FINAL-CS_L_PRICE - WA_FINAL-CS_N_PRICE.

WA_FINAL-TOTPRICE = WA_FINAL-OUTBAL * WA_FINAL-CS_N_PRICE.

APPEND WA_FINAL TO ZZ_FINAL.

ENDIF.

ENDLOOP.

I_FINAL[] = ZZ_FINAL[].

REFRESH ZZ_FINAL.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'

EXPORTING

I_CALLBACK_PROGRAM = G_REPID

I_CALLBACK_PF_STATUS_SET = 'STATUS'

I_CALLBACK_USER_COMMAND = 'PROCESS_USER_COMMANDS'

IS_LAYOUT_LVC = GD_LAYOUT

IT_FIELDCAT_LVC = IT_FIELDCAT

I_SAVE = 'X'

I_GRID_SETTINGS = LC_GLAY

TABLES

T_OUTTAB = I_FINAL

EXCEPTIONS

PROGRAM_ERROR = 1

OTHERS = 2.

IF SY-UCOMM = '&F03'.

LEAVE TO SCREEN 0.

ELSEIF SY-UCOMM = 'BACK'.

LEAVE TO SCREEN 0.

ENDIF.