Soweit ich weiß, funktioniert add_function nur, wenn das ALV in einen Container eingebettet ist. Wo sich dieser Container dann befindet, sollte schnuppe sein. Du modifizierst damit ja das ALV im Container und nicht das Dynpro.
Das heißt, wenn ich "set_screen_as_popup" verwende, dann habe ich keinen Container und kann auch keine Buttons zum ALV hinzufügen? Mal abgesehen vom Status, den man anlegen kann dafür....
Wo zum Geier gibt es denn die Methode set_screen_as_popup und wie kommst du zu deiner Ansicht, dass es dann keinen Container gäbe? Du gibst doch den Container bei der Factorymethode mit oder eben nicht.
die Methode habe ich noch nie verwendet weil noch nie gebraucht- daher die Nachfrage.
Aber kurzer Blick in die Doku zu dieser Methode zeigt sofort, dass du die ADD_FUNCTION nicht verwenden darfst.
Die ist doch tatsächlich dokumentiert - ich bin es so gewohnt, undokumentierte Methoden der SAP vor der Nase zu haben, dass ich da echt nicht nach geguckt habe.
In meinen Augen ist das die einfachste Methode, ein Popup zu erzeugen für einen SALV. Wie erzeugst du ein Popup mit einem SALV? Dynpro erstellen und Control reinhängen?
Ja.
Hinweis: Da du in dem Fall eine recht leere Buttonleiste hast, ist es in so einem Fall überlegenswert die ALV-Funktionen gar nicht zu erweitern sondern stattdessen die recht leere Buttonleiste des Dynpros zu verwenden. Das ist für die User häufig besser als Zusatzfunktion zu erkennen, da sie gewohnt sind eher die Buttonleiste nach möglichen Funktionen abzusuchen als die standardisierte ALV-Anzeige.
Mache ich sehr gerne so, dass der ALV dann tatsächlich als reines Anzeigeinstrument verwendet wird und alle "echten" Aktionen in der Buttonleiste oder im Menü zu finden sind.
In die Buttonleiste des Dynpros kommt, was sich auf das Dynpro bezieht. In die des SALV kommt, was sich auf den SALV bezieht. Abgesehen davon kann man im Dynpro die Toolbar nicht so schön dynamisch zusammenbasteln wie das im Container geht.