在使用CL_GUI_ALV_GRID的check_changed_data获取ALV中数据的变化时,往往无法获取所要的数据,如将原有的值删除后,原值依然存在在内表中。这里我们可以使用事件监听的方式来获取到ALV数据的详细的改变信息。 创建监听类,并实例化:DATA: event_receiverTYPEREFTOlcl_event_receiver. lcl_event_receiver的内容如下: CL...
ABAP 监听ALV的data_changed事件获取数据的更新、新增、删除 在使⽤ CL_GUI_ALV_GRID 的 check_changed_data 获取ALV中数据的变化时,往往⽆法获取所要的数据,如将原有的值删除后,原值依然存在在内表中。这⾥我们可以使⽤事件监听的⽅式来获取到ALV数据的详细的改变信息。创建监听类,并实例化: DATA...
"CALL METHOD gs_grid->check_changed_data. gs_glay-edt_cll_cb = abap_true. " 选中复选款,立刻触发data changed 事件 CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC' EXPORTING i_callback_program = sy-repid "回调程序 i_callback_pf_status_set = 'SET_PF_STATUS' i_callback_user_command = 'US...
CASE SY-UCOMM 之前添加: 1. DATA: ls_layout TYPE lvc_s_layo, lv_grid TYPE REF TO cl_gui_alv_grid. 2. CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR' IMPORTING e_grid = lv_grid. 3. CALL METHOD lv_grid->check_changed_data. ENDCASE之后添加: 4. lv_grid->get_frontend_layout IMPORT...
问题:在ALV界面中输入可编辑字段的值,点击保存按钮,这个值并没有传入程序内表。 解决方法:在点击按钮的操作之后加入获取屏幕值的方法。 CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR' IMPORTING E_GRID = LR_GRID. CALL METHOD LR_GRID->CHECK_CHANGED_DATA. ...
DATA_CHANGED_FINISHED 使用该函数时,需要在data 数据准备的地方注册定义屏幕类并注册对应的事件 ,其次是该事件是在处理完毕后修改对应内表数据. 在前面讲的 alv_Data_changed 后面, 在类中定义一个专门用户捕获和处理alv 的 data_changed事件的方法,并编写相应的代码。 在事件回调代码中进行绑定,绑定时需要alv对象...
"CALL METHOD gs_grid->check_changed_data. gs_glay-edt_cll_cb = abap_true. " 选中复选款,立刻触发data changed 事件 CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC' EXPORTING i_callback_program = sy-repid "回调程序 i_callback_pf_status_set = 'SET_PF_STATUS' ...
你只需要在这个时候再通过屏幕在读取一下现在的各个列表数据就可以读得数据,然后再利用赋值传值保存到数据库,刷新下屏幕就可以了 CALL
DATA: L_VALID TYPE C .DATA: GIT_ALV_CONTROL TYPE REF TO CL_GUI_ALV_GRID.CLEAR L_VALID .CALL METHOD GIT_ALV_CONTROL->CHECK_CHANGED_DATA IMPORTING E_VALID = L_VALID 当L_VALID = ‘X’ 的时候,就是编辑产生修改了,这个时候你自己去调用你要做的东西。
DATA:REFTYPEREFTO CL_GUI_ALV_GRID. CALLFUNCTION'GET_GLOBALS_FROM_SLVC_FULLSCR' IMPORTING E_REPID= SY-CPROG"网上代码没有这个,这个是必须的!!!* E_GRID=REF. CALLMETHODREF->CHECK_CHANGED_DATA. RS_SELFIELD-REFRESH='X'. "响应事件 CASE R_UCOMM. WHEN...