Um ein modales Popup zu schließen gibt es einige Möglichkeiten. Die einfachste ist es, diesen Vorgang vom User manuell ausführen zu lassen. Oft kann es aber vom Programmablauf besser sein, man schließt das jeweilige Popup direkt aus dem ABAP Coding nachdem zB Daten gespeichert wurden.
Dieses Beispiel zeigt eine von mehreren Möglichkeiten, wie man ein modales Popup direkt aus einer ABAP Methode heraus schließen kann. Das Coding wird direkt in einer Methode am View Controller des zu schließenden Popup`s angelegt.
DATA: obj_controller TYPE REF TO if_wd_view_controller, obj_window_ctlr TYPE REF TO if_wd_window_controller, obj_window TYPE REF TO if_wd_window. * Close popup obj_controller ?= wd_this->wd_get_api( ). obj_window_ctlr = obj_controller->get_embedding_window_ctlr( ). IF obj_window_ctlr IS BOUND. obj_window = obj_window_ctlr->get_window( ). IF obj_window IS BOUND. obj_window->close( ). ENDIF. ENDIF. FREE: obj_controller, obj_window_ctlr, obj_window.
Was geschieht hier genau? Zuerst wird die Referenz auf den View Controller geholt. Danach der Controller für die Verwaltung modaler Fenster. Dieser Controller liefert dann die Referenz auf das angezeigte Popup. Diese Popup wird dann mit dem Methodenaufruf CLOSE geschlossen.
Comments are closed.