create object: g_event_receiver.
set handler g_event_receiver->handle_dbclick for all instances.
class lcl_event_receiver implementation.
method handle_dbclick.
p_num = es_row_no–row_id.
read table it_ztsdr001 into wa_ztsdr001 index p_num.
if sy–subrc = 0.
move-corresponding wa_ztsdr001 to ztsdr001.
endif.
call method cl_gui_cfw=>set_new_ok_code
exporting
new_code = ‘ZREFRESH’.
endmethod. “handle_dbclick
case ok_code.
when ‘ZREFRESH’.
ztsdr001 = wa_ztsdr001.
when ‘NEW’.
clear ztsdr001.
when ‘SAVE’.
clear ok_code.
*—-生成凭证(无报错,才能执行,凭证生成!)
if l_error = 0 and ztsdr001–vbeln = ”.
*创建前加锁
* perform frm_enqueue.
perform generate_doc.
* perform frm_dequeue.
endif.
* when ‘MESSAGE’.
* perform frm_message.
when ‘BACK’.
clear ok_code.
clear ztsdr001.
clear wa_ztsdr001.
leave to screen 0.
when ‘EXIT’.
clear ok_code.
clear ztsdr001.
clear wa_ztsdr001.
leave to screen 0.
when ‘LEAVE’.
clear ok_code.
clear ztsdr001.
clear wa_ztsdr001.
leave program.
* when others.
* call method cl_gui_cfw=>get_current_event_object
* receiving
* event_object = return.
* call method cl_gui_cfw=>dispatch.
endcase.
clear ok_code.
endmodule. ” USER_COMMAND_0100 INPUT