Show TOC

HintergrundDialogfenster einer verwendeten Component aufrufen Dieses Dokument in der Navigationsstruktur finden

 

Wenn das Dialogfenster, das Sie zur Anzeige bringen wollen, von generischer Natur ist und in vielen verschiedenen Components Verwendung finden wird, werden Sie das zugehörige Window in einer separaten Component anlegen die dann von der aktuellen Component verwendet wird. In diesem Fall erzeugen Sie das Dialogfenster zur Laufzeit in der aktuellen Component mit Hilfe der Methode CREATE_WINDOW_FOR_CMP_USAGE und übergeben den Namen der Interface-View und der Component-Verwendung. Für die das Dialogfenster besitzenden Component muss in der Eigenschaften-Tabelle der aktuellen Component eine Component-Verwendung eingetragen sein.

Syntax Syntax

  1. method ONACTIONPOPUP2_1 .
      data: l_cmp_api           type ref to if_wd_component,
            l_window_manager    type ref to if_wd_window_manager.
    
      l_cmp_api           = wd_comp_controller->wd_get_api( ).
      l_window_manager    = l_cmp_api->get_window_manager( ).
      if wd_this->m_popup2_1 is initial.
        wd_this->m_popup2_1 = l_window_manager->CREATE_WINDOW_FOR_CMP_USAGE(
           interface_view_name  = 'MAIN'
           component_usage_name = 'USAGE_POPUP2_1' ).
      endif.
      wd_this->m_popup2_1->open( ).
    
    endmethod.
    
Coding-Ende
Setzen der Buttons eines Dialogfensters einer verwendeten Component

Im Gegensatz zum Dialogfenster der eigenen Component können die Buttons des zu öffnenden Dialogfensters nicht in einer der Methode am View-Controller der aufrufenden View erzeugt werden, da Buttons nur durch die "besitzende" Component gesetzt werden können. Dieser Schritt wird bei Dialogfenstern von Components, die zur Verwendung durch andere Components erstellt wurden, in der Hook-Methode WDDOONOPEN an dessen Window-Controller implementiert (siehe Dialogfenster der selben Component aufrufen).

Syntax Syntax

Der folgende Quell-Code zeigt die Methode WDDOOPEN am Controller des Dialogfensters:

  1. method wddoonopen .
    
     if window_descr->is_popup = abap_true.
    
      window_descr->window->set_button_kind( if_wd_window=>co_buttons_yesnocancel ).
      window_descr->window->set_message_type( if_wd_window=>co_msg_type_question ).
    
    endif.
    
    endmethod.
    
Coding-Ende

Hinweis Hinweis

Wenn das Dialogfenster nicht Teil der eigenen Component ist, sondern in einer verwendeten Component angelegt wurde, hängen die Phasenmodell-Instanzen der beiden Windows auch nicht an derselben Component. Wenn das Dialogfenster geöffnet ist, werden dann nur die Hook-Methoden der Views durchlaufen, die im Dialogfenster eingebettet sind.

Ende des Hinweises.