SAP Help Displaying a popup screen in ABAP web dynpro
Display popup screen within ABAP Web dynpro
Displaying a web dypro pop up screen is a fairly simple process, it basically involves creating a view containing the message or fields you want to display on the wdp popup, create a window and embend the view into it. Then insert the correct ABAP code at the point where you want the screen to be displayed. Here are the simple steps required to implement you ABAP web dynpro popup screen.
Step 1 - Within your created web dynpro application create a new view
Create a new web dynpro view which contains the text and UI elements you want to display
Step 2 - Create a new WINDOW (WND_POPUP) to embed the view into
Create a new window and embed the view you have just created into it. see hello world basic web dynpro
example to see how to embed a view into a window.
Step 3 - Add ABAP code
Insert the following ABAP code into the appropriate place. i.e. in the wdp action method of your desired button
Data: context_node type ref to if_wd_context_node. 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( ). lr_popup = lr_window_manager->create_window( MODAL = ABAP_TRUE window_name = 'WND_POPUP' "Name of the window created in step 2 TITLE = 'Please enter all information' CLOSE_BUTTON = ABAP_TRUE BUTTON_KIND = if_wd_window=>CO_BUTTONS_YESNO MESSAGE_TYPE = if_wd_window=>co_msg_type_error 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( ). * lr_popup->subscribe_to_button_event( * button = if_wd_window=>co_button_ok * button_text = 'Yes' * action_name = 'SUBMIT' * action_view = lr_view_controller ). lr_popup->open( ).
Step 4 - Popup screen options
The code in step 3 will display your popup screen as an error message with two buttons saying 'YES' and 'NO', these buttons will not perform an action and will simply return the user back to the main window. If this is not what you require below is a list of options which will allow you to change this display to suit your needs (adding different buttons, change message type, add action to buttons):
Options for the BUTTON_KIND parameter (which can be found by double clicking on 'co_buttons_ok' within the above ABAP code):
CO_BUTTONS_NONE - No Buttons CO_BUTTONS_ABORTRETRYIGNORE - Buttons for 'Cancel', 'Repeat', 'Ignore' CO_BUTTONS_OK - Buttons for 'O.K.' CO_BUTTONS_CLOSE - Buttons for 'Close' CO_BUTTONS_OKCANCEL - Buttons for 'O.k.', 'Cancel' CO_BUTTONS_YESNO - Buttons for 'Yes', 'No' CO_BUTTONS_YESNOCANCEL - Buttons for 'Yes', 'No', 'Close' CO_BUTTON_ABORT - Button for 'Cancel' CO_BUTTON_RETRY - Button for 'Repeat' CO_BUTTON_IGNORE - Button for 'Ignore' CO_BUTTON_OK - Button for 'Ok.' CO_BUTTON_CLOSE - Button for 'Close' CO_BUTTON_CANCEL - Button for 'Cancel' CO_BUTTON_YES - Button for 'Yes' CO_BUTTON_NO - Button for 'No'
Options for the MESSAGE_TYPE parameter (which can be found by double clicking on 'co_msg_type_error' within the above ABAP code):
CO_MSG_TYPE_NONE - No message type CO_MSG_TYPE_WARNING - Warning CO_MSG_TYPE_INFORMATION - Information CO_MSG_TYPE_QUESTION - Question CO_MSG_TYPE_ERROR - Error CO_MSG_TYPE_STOPP - Cancel
Adding actions to popup screen buttons (Yes, OK etc)
Add the following code to that found in step 3, after the method 'create_window' has been called (or simple uncomment it!!)
lr_view_controller = wd_this->wd_get_api( ). lr_popup->subscribe_to_button_event( button = if_wd_window=>co_button_ok button_text = 'Yes' action_name = 'SUBMIT' action_view = lr_view_controller ).