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

editable alv

Former Member
0 Likes
380

hi experts,

i have generated one alv report, inthat one field column got ediatble. I created one button in application tool bar. If i click that button what are changes made in alv, should be saved in database. How can we do please guide me.

regards

raghu

3 REPLIES 3
Read only

former_member585060
Active Contributor
0 Likes
362

Hi check the links, and do updates only for Ztables not for Standard tables. if u do for standard tables it will not get updated.

Read only

Former Member
0 Likes
362

Check out the following code

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = sy-repid

i_callback_top_of_page = 'TOP-OF-PAGE'

i_callback_user_command = c_user_command

i_callback_pf_status_set = c_pf_status_set

it_fieldcat = fieldcatalog[]

i_save = 'X'

TABLES

t_outtab = it_zb17_bond_status_pending[]

EXCEPTIONS

program_error = 1

OTHERS = 2.

ENDFORM. "DISPLAY

----


  • Form set_pf_status

*----


  • Set status

----


FORM pf_status_set USING rt_extab TYPE slis_t_extab. "#EC CALLED

SET PF-STATUS 'ST_RECEIVED'.

ENDFORM. "PF_STATUS_SET

----


  • Form user_command

*----


*

----


FORM user_command USING lv_ucomm TYPE sy-ucomm

lv_selfield TYPE slis_selfield. "#EC CALLED

CASE lv_ucomm.

WHEN 'RECEIVED'.

  • LOOP AT it_bond_17_status INTO wa_bond_17_status.

*

  • ENDLOOP.

  • FREE MEMORY ID 'ZRECEIVED'.

  • EXPORT it_bond_17_status TO MEMORY ID 'ZRECEIVED'.

CALL TRANSACTION 'ZST_RECEIVED'.

WHEN '&DATA_SAVE'.

LOOP AT it_zb17_bond_status_pending INTO wa_bond_17_status.

IF NOT wa_bond_17_status-crdat IS INITIAL.

CALL FUNCTION 'CONVERT_DATE_TO_INTERNAL'

EXPORTING

date_external = wa_bond_17_status-crdat

  • ACCEPT_INITIAL_DATE =

  • IMPORTING

  • DATE_INTERNAL =

EXCEPTIONS

date_external_is_invalid = 1

OTHERS = 2

.

IF sy-subrc <> 0.

RAISE date_external_is_invalid.

ELSE.

CLEAR: wa_zb17_bond.

wa_zb17_bond-mblnr = wa_bond_17_status-mblnr.

wa_zb17_bond-mjahr = wa_bond_17_status-budat+0(4).

wa_zb17_bond-budat = wa_bond_17_status-budat.

wa_zb17_bond-crdat = wa_bond_17_status-crdat.

APPEND wa_zb17_bond to it_zb17_bond_update.

CLEAR: wa_bond_17_status.

ENDIF.

ENDIF.

ENDLOOP.

IF NOT it_zb17_bond_update[] IS INITIAL.

UPDATE zb17_bond FROM TABLE it_zb17_bond_update.

ENDIF.

IF sy-subrc = 0.

COMMIT WORK.

ENDIF.

call transaction 'ZST_PENDING'.

ENDCASE.

ENDFORM. "USER_COMMAND

Read only

Former Member
0 Likes
362

You need use the Function moduel in the user command to update the internal table with the modified values.

GET_GLOBALS_FROM_SLVC_FULLSCR

follow the sample code.

REPORT ZTEST_ALV_CHECK MESSAGE-ID ZZ .
 
TYPE-POOLS: SLIS.
DATA: X_FIELDCAT TYPE SLIS_FIELDCAT_ALV,
IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
L_LAYOUT TYPE SLIS_LAYOUT_ALV,
X_EVENTS TYPE SLIS_ALV_EVENT,
IT_EVENTS TYPE SLIS_T_EVENT.
 
DATA: BEGIN OF ITAB OCCURS 0,
VBELN LIKE VBAK-VBELN,
POSNR LIKE VBAP-POSNR,
CHK(10),
END OF ITAB.
 
SELECT VBELN
POSNR
FROM VBAP
UP TO 20 ROWS
INTO TABLE ITAB.
 
X_FIELDCAT-FIELDNAME = 'CHK'.
X_FIELDCAT-TABNAME = 'ITAB'.
X_FIELDCAT-COL_POS = 1.
X_FIELDCAT-INPUT = 'X'.
X_FIELDCAT-EDIT = 'X'.
APPEND X_FIELDCAT TO IT_FIELDCAT.
CLEAR X_FIELDCAT.
 
X_FIELDCAT-FIELDNAME = 'VBELN'.
X_FIELDCAT-SELTEXT_L = 'VBELN'.
X_FIELDCAT-HOTSPOT = 'X'.
X_FIELDCAT-TABNAME = 'ITAB'.
X_FIELDCAT-COL_POS = 2.
APPEND X_FIELDCAT TO IT_FIELDCAT.
CLEAR X_FIELDCAT.
 
X_FIELDCAT-FIELDNAME = 'POSNR'.
X_FIELDCAT-SELTEXT_L = 'POSNR'.
X_FIELDCAT-TABNAME = 'ITAB'.
X_FIELDCAT-COL_POS = 3.
APPEND X_FIELDCAT TO IT_FIELDCAT.
CLEAR X_FIELDCAT.
 

*L_LAYOUT-ZEBRA = 'X'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
IS_LAYOUT = L_LAYOUT
I_CALLBACK_PF_STATUS_SET = 'STATUS'
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
IT_FIELDCAT = IT_FIELDCAT
TABLES
T_OUTTAB = ITAB
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.
 
 

FORM STATUS USING P_EXTAB TYPE SLIS_T_EXTAB.
 "Set the Button using the staus 
"Copy the Standard status from the program SAPLKKBL status 
" STANDARD using SE41, and use that here.
"Pf status 
SET PF-STATUS 'STATUS' EXCLUDING P_EXTAB.
ENDFORM. " STATUS
 
FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.
 
DATA: GD_REPID LIKE SY-REPID, "Exists
REF_GRID TYPE REF TO CL_GUI_ALV_GRID.
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.
 

CASE R_UCOMM.
 WHEN 'SAVE'.
"Here you will get the data(along with modified rows)
"Filter the modified rows and update to DB.
 
ENDCASE.
RS_SELFIELD-refresh = 'X'.
break-point.
 
ENDFORM. "USER_COMMAND

Regards

Vijay Babu Dudla