2008 Mar 07 3:03 PM
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.
2008 Mar 07 3:07 PM
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.
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.
2008 Mar 07 3:07 PM
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.
| User | Count |
|---|---|
| 3 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |