一直在寻找对可以即用的可编辑 SALV的class 解决方案,但是一直没有找到,但我认为SAP应该有一个解决方案。
最近,Paul Hardy发表了一篇博客可编辑 SALV日,作为第一个 SALV 可编辑问题问世8周年,到目前为止还没有现成的解决方案。对于那些没有阅读过前面这么多讨论的人来说,打开即用的解决方案意味着一种使其可编辑的单一方法。从 ABAP 740 开始,SALV OM 中没有任何新方法可以做同样的事情,或者至少听起来像 SET_EDITABLE,可编辑。
```javascript
```c#
METHOD generate_output.
TRY.
cl_salv_table=>factory(
EXPORTING
list_display = abap_false
IMPORTING
r_salv_table = o_salv
CHANGING
t_table = t_data ).
CATCH cx_salv_msg. "#EC NO_HANDLER
ENDTRY.
o_salv->set_screen_status(
pfstatus = 'STATUS'
report = sy-repid
set_functions = o_salv->c_functions_all ).
*...Event handler for the button.....................................
DATA: lo_events TYPE REF TO cl_salv_events_table,
lo_event_h TYPE REF TO lcl_event_handler.
* event object
lo_events = o_salv->get_event( ).
* event handler
CREATE OBJECT lo_event_h.
* setting up the event handler
SET HANDLER lo_event_h->on_user_command FOR lo_events.
*...Get Model Object ...............................................
DATA: lo_alv_mod TYPE REF TO cl_salv_model.
* Narrow casting
lo_alv_mod ?= o_salv.
* object for the local inherited class from the CL_SALV_MODEL_LIST
CREATE OBJECT o_salv_model.
* grabe model to use it later
CALL METHOD o_salv_model->grabe_model
EXPORTING
io_model = lo_alv_mod.
*...Generate ALV output ...............................................
o_salv->display( ).