Um in einer View-Methode ein Popup zu öffnen, braucht man folgenden Code:

data: title type string. data: lr_popup type ref to if_wd_window, lr_view_controller type ref to if_wd_view_controller. data: lr_api_comp_controller type ref to if_wd_component, lr_window_manager type ref to if_wd_window_manager.

lr_api_comp_controller = wd_comp_controller->wd_get_api( ). lr_window_manager = lr_api_comp_controller->get_window_manager( ).

title = ls_texte-HEADER_BESTAETIGEN.

lr_popup = lr_window_manager->create_window(

MODAL = ABAP_TRUE

window_name = ‚CONFIRM_WINDOW‘

TITLE = title

CLOSE_BUTTON = ABAP_FALSE

BUTTON_KIND = if_wd_window=>CO_BUTTONS_YESNO

MESSAGE_TYPE = if_wd_window=>CO_MSG_TYPE_NONE

CLOSE_IN_ANY_CASE = ABAP_TRUE

*MESSAGE_DISPLAY_MODE = MESSAGE_DISPLAY_MODE

).

* Adds an action to the popup screen buttons lr_view_controller = wd_this->wd_get_api( ).

title = ls_texte-POPUP_YES.

lr_popup->subscribe_to_button_event(

button = if_wd_window=>co_button_yes

button_text = title

action_name = ‚YESACTION‘

action_view = lr_view_controller ).

* Adds an action to the popup screen buttons lr_view_controller = wd_this->wd_get_api( ).

title = ls_texte-POPUP_NO. lr_popup->subscribe_to_button_event(

button = if_wd_window=>co_button_no

button_text = title

action_name = ‚NOACTION‘

action_view = lr_view_controller ).

lr_popup->open( ).


Der String, der  beim action_name angegeben ist, ist der Name der Aktion, die nach einem Klick auf den entsprechenden Button ausgelöst wird.

Das angegebene Window ‚CONFIRM_WINDOW‘ muss angelegt und mit einer View versehen sein – welche dann angezeigt wird. Dort kann zum Beispiel wieder ein Context ausgelesen bzw. verändert werden – und anschließend z.B. in der Methode „YESACTION“ verarbeitet werden.

Weitere Informationen zum PopUp findet man hier: http://help.sap.com – sowie ein Tutorial mit weiteren Infos hier: http://www.sapdev.co.uk