Show TOC

HintergrundAufrufen eines Bestätigungs-Dialogfensters Dieses Dokument in der Navigationsstruktur finden

 

Zur zügigen Erzeugung von standardisiert gestalteten Dialogfenstern (zum Beispiel zur Bestätigung einer Änderung der aktuellen Daten) können Sie die Methode CREATE_POPUP_TO_CONFIRM des IF_WD_WINDOW_MANAGER aufrufen. Hierfür benötigen Sie kein eigens angelegtes Window, sondern das Dialogfenster wird automatisch durch die Laufzeit erzeugt.

Die Methode CREATE_POPUP_TO_CONFIRM erzeugt ein Objekt vom Typ IF_WD_WINDOW, mit Hilfe dessen Parameter das Dialogfenster gestaltet werden kann.

Syntax Syntax

  1. method onactionpopup4_1 .
      data: l_cmp_api          type ref to if_wd_component,
            l_window_manager   type ref to if_wd_window_manager,
            l_popup            type ref to if_wd_window,
            l_text             type string_table,
            l_api              type ref to if_wd_view_controller.
      l_cmp_api        = wd_comp_controller->wd_get_api( ).
      l_window_manager = l_cmp_api->get_window_manager( ).
      insert `Data where changed` into table l_text.    "#EC *
      insert `Do you want to save?`        into table l_text.    "#EC * 
      l_popup = l_window_manager->create_popup_to_confirm(
                    text            = l_text
                    button_kind     = if_wd_window=>co_buttons_yesnocancel
                    message_type    = if_wd_window=>co_msg_type_question
                    window_title    = 'Test: Popup to confirm'                window_position = if_wd_window=>co_center )."#EC *
      l_api = wd_this->wd_get_api( ).
      l_popup->subscribe_to_button_event(
                   button            = if_wd_window=>co_button_yes
                   action_name       = 'YES'               action_view       = l_api
                   is_default_button = abap_true ).
      l_popup->subscribe_to_button_event(
                   button            = if_wd_window=>co_button_no
                   action_name       = 'NO'
                   action_view       = l_api
                   is_default_button = abap_false ).
      l_popup->subscribe_to_button_event(
                   button            = if_wd_window=>co_button_cancel
                   action_name       = 'CANCEL'
                   action_view       = l_api
                   is_default_button = abap_false ).
      l_popup->open( ).
    endmethod.
    
Coding-Ende

Die Methode SUBSCRIBE_TO_BUTTON_EVENT des IF_WD_WINDOW ordnet den Schaltflächen geeignete Aktionen zu. Wenn Sie selbst ein Window für das Dialogfenster gestaltet haben, findet die Zuordnung der Schaltflächen zu den einzelnen Aktionen in der Hook-Methode WDDOINIT statt (siehe Dialogfenster der selben Component aufrufen).

Da in diesem Fall jedoch kein explizit angelegtes Window existiert, werden die entsprechenden Aktionen in derselben View angelegt, in der das Dialogfenster aufgerufen wird. Die Zuordnung über die Methode SUBSCRIBE_TO_BUTTON_EVENT findet direkt nach der Erzeugung des Dialogfensters in derselben Methode statt.

Für einige Spezialfälle kann es sinnvoll sein, Ereignisbehandler an Component- oder Custom-Controller auf die Schaltfläche-Ereignisse eines Dialogfensters zu registrieren. Für diese Fälle wurde am Interface IF_WD_WINDOW ein spezielles Attribut POPUP_TO_CONFIRM vom Typ IF_WD_POPUP_TO_CONFIRM_N implementiert. Dieses Interface bietet genau die Methoden an, mit deren Hilfe sich Ereignisbehandler an Component- oder Custom-Controllern auf die Ereignisse des Dialogfensters registrieren können.