弹框(不需要创建窗口)
点击按钮时触发
弹框方法
CHECK_POP代码
METHOD check_pop .
DATA:lo_window_manager TYPE REF TO if_wd_window_manager,
lo_api_component TYPE REF TO if_wd_component,
lo_window TYPE REF TO if_wd_window,
lt_buttons TYPE wdr_popup_button_list,
ls_canc_action TYPE wdr_popup_button_action,
lv_msg TYPE string.
DATA:lo_api_v_main TYPE REF TO if_wd_view_controller,
lt_string_table TYPE string_table,
ls_string TYPE string,
lv_title TYPE string.
READ TABLE ct_pop_alv INTO DATA(ls_pop_alv) WITH KEY sel = 'X'.
IF sy-subrc = 0.
READ TABLE ct_pop_alv WITH KEY sel = ''
bsart = 'ZM08'
werks = ls_pop_alv-werks
ekgrp = ls_pop_alv-ekgrp
waers = ls_pop_alv-waers
zterm = ls_pop_alv-zterm
TRANSPORTING NO FIELDS.
IF sy-subrc = 0.
"弹出提示框
lo_api_component = wd_comp_controller->wd_get_api( ).
lo_window_manager = lo_api_component->get_window_manager( ).
ls_string = '系统检查到您正发起的对帐单收货日期区间有退货明细未被勾选,可能导致采购拒绝确认此对帐单,请确认是否继续'.
APPEND ls_string TO lt_string_table.
MESSAGE s304(zsus_msg) INTO lv_title.
wd_comp_controller->window = lo_window_manager->create_popup_to_confirm(
text = lt_string_table
button_kind = if_wd_window=>co_buttons_okcancel
message_type = if_wd_window=>co_msg_type_information
close_button = abap_true
window_title = lv_title
default_button = if_wd_window=>co_button_ok
).
lo_api_v_main = wd_this->wd_get_api( ).
TRY.
"OK button
wd_comp_controller->window->popup_to_confirm->subscribe_to_button_event(
controller = lo_api_v_main
handler_name = 'POPUP_TO_CONFIRM_EVENT_HANDLER'
button = if_wd_window=>co_button_ok
).
CATCH cx_wdr_rt_exception.
ENDTRY.
TRY.
"CANCEL button
wd_comp_controller->window->popup_to_confirm->subscribe_to_button_event(
controller = lo_api_v_main
handler_name = 'POPUP_TO_CONFIRM_EVENT_HANDLER'
button = if_wd_window=>co_button_cancel
).
CATCH cx_wdr_rt_exception.
ENDTRY.
"Open the popup window
wd_comp_controller->window->open( ).
ELSE.
wd_this->fire_out_create_plg( ).
ENDIF.
ENDIF.
ENDMETHOD.
POPUP_TO_CONFIRM_EVENT_HANDLER代码
method popup_to_confirm_event_handler.
CASE wdevent->name.
* WHEN if_wd_popup_to_confirm_n=>co_popup_button_event-on_yes.
*
* WHEN if_wd_popup_to_confirm_n=>co_popup_button_event-on_no.
*
* WHEN if_wd_popup_to_confirm_n=>co_popup_button_event-on_abort.
WHEN if_wd_popup_to_confirm_n=>co_popup_button_event-on_cancel.
* WHEN if_wd_popup_to_confirm_n=>co_popup_button_event-on_retry.
*
* WHEN if_wd_popup_to_confirm_n=>co_popup_button_event-on_ignore.
*
* WHEN if_wd_popup_to_confirm_n=>co_popup_button_event-on_close.
WHEN if_wd_popup_to_confirm_n=>co_popup_button_event-on_ok.
wd_this->fire_out_create_plg( ).
ENDCASE.
endmethod.