Modal Dialog Box (Pop Up Screen)

Benutzeroberflächen in SAP®-Systemen.
8 Beiträge • Seite 1 von 1
8 Beiträge Seite 1 von 1

Modal Dialog Box (Pop Up Screen)

Beitrag von stony007_de (ForumUser / 85 / 5 / 0 ) » 21.02.2020 17:36
Hi

Ich versuche einen Popup Dialog aus einem laufenden Screen zu öffnen.
Dabei müssen einige Werte übergeben werden.
Aktuell habe ich den Weg über ein zweites “normales” Dynpro eingeschlagen.
Es gibt Screen 0100 (Normaler Screen) und dieser ruft via PBO den zweiten Screen 0100 (Modal Dialog) mit einem *STARTING AT* und einem *ENDING AT*.
Funktioniert alles soweit!
Problem an der Stelle, der erste Screen öffnet sich immer im Vollbild. Das ist eigentlich das was ich nicht wollte!

Hat da jemand einen Tip für mich?

Aus meinem Popup sollen dann 3 Button betätigt werden können, welche diverse Aktionen ausführen.

Mit freundlichen Grüßen
Stephan


Re: Modal Dialog Box (Pop Up Screen)

Beitrag von ewx (Top Expert / 4167 / 185 / 429 ) » 22.02.2020 13:09
Rufe das Popup bitte im PAI auf!
Tritt der Fehler dann immer noch auf?

Re: Modal Dialog Box (Pop Up Screen)

Beitrag von stony007_de (ForumUser / 85 / 5 / 0 ) » 24.02.2020 06:52
Moin

leider bringt das auch nichts

Code: Alles auswählen.

*&---------------------------------------------------------------------*
*& Include ZDEMO_GUI_TOP                             Modulpool        ZDEMO_GUI
*&
*&---------------------------------------------------------------------*
PROGRAM ZDEMO_GUI
*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_0100  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0100 INPUT.
  
CALL SCREEN 0110
      STARTING AT 1 1
      ENDING AT 30 7.


ENDMODULE.
*&---------------------------------------------------------------------*
*&      Module  STATUS_0100  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE STATUS_0100 OUTPUT.
*
ENDMODULE.
*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_0110  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0110 INPUT.

  CASE SY-UCOMM.
    WHEN 'CALL'.
      MESSAGE 'Hier kommt der Call' TYPE 'I'.
    WHEN 'EXIT'.
      LEAVE PROGRAM.
  ENDCASE.


ENDMODULE.
Die Transaktion an sich rufe ich mit:

Code: Alles auswählen.

CALL TRANSACTION 'ZDEMO_CALL' AND SKIP FIRST SCREEN.
-> es öffnet sich der Screen 0100 im Vollbild und automatisch screen 0110. Wenn der Vollscreen verschwinden würde, wäre ich total happy!

Re: Modal Dialog Box (Pop Up Screen)

Beitrag von a-dead-trousers (Top Expert / 3391 / 102 / 867 ) » 24.02.2020 10:47
SKIP FIRST SCREEN funktioniert nur bei Selectionsbildern.
Du rufst mit CALL TRANSACTION einen neuen Programmstack auf, daher auch das "leere" Grundbild. Wenn du stattdessen das Bild der vorherigen Transaktion bzw. des vorherigen Programms im Hintergrund haben möchtest, musst du dein Popup direkt von dort aus aufrufen z.B. mittels Funktionsbaustein und nicht per CALL TRANSACTION.
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.07
Basis: 7.40

Re: Modal Dialog Box (Pop Up Screen)

Beitrag von stony007_de (ForumUser / 85 / 5 / 0 ) » 24.02.2020 11:30
Moin
das habe ich ja versucht. Der Absprung kommt aus einem ALV Hotspot.
Wenn ich hier die TC so anpasse, dass er den Popup Screen rufen soll, wird dieser zwar geöffnet, aber auch im Vollbild.?

Re: Modal Dialog Box (Pop Up Screen)

Beitrag von a-dead-trousers (Top Expert / 3391 / 102 / 867 ) » 24.02.2020 11:43
Wenn das eine Frage war: ja.
Lass den TC weg und ruf das Popup direkt (z.B mit einem Funktionsbaustein) auf.
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.07
Basis: 7.40

Re: Modal Dialog Box (Pop Up Screen)

Beitrag von wreichelt (Expert / 770 / 18 / 134 ) » 24.02.2020 12:38
Hallo,

ist das eine Alternative?

https://www.saphub.com/alv/alv-popup-dialog-box/

Gruß Wolfgang

Re: Modal Dialog Box (Pop Up Screen)

Beitrag von DeathAndPain (Top Expert / 1329 / 144 / 313 ) » 24.02.2020 13:57
Also ich sag mal, was ich verstanden habe:

Du rufst per CALL TRANSACTION die Transaktion des Programms auf. Diese startet in den Screen 0100.

Von dem Screen 0100 springst Du weiter in den Screen 0110. Dabei stört Dich, dass der Screen 0100 im Hintergrund stehen bleibt.

Dann wäre die Lösung, im Screen 0100 anstelle von CALL SCREEN einfach LEAVE TO SCREEN zu schreiben. Dadurch würde sich der 0100 wieder schließen. Nur kannst Du dann kein STARTING AT angeben. Ein Programm (Transaktion) muss halt immer ein Grundbild im Vollbildmodus offen haben.

Was Du machen könntest, wäre, stattdessen einen Funktionsbaustein zu bauen. Funktionsbausteine können eigene Dynpros haben und modal anzeigen. Anstelle des CALL TRANSACTION würdest Du dann einen CALL FUNCTION nutzen. Sofern Du den Funktionsbaustein auch für sich alleine per Transaktion starten können möchtest, könntest Du dann noch einen Report mit leerem Selektionsbild und Transaktionscode bauen, der nicht mehr macht, als bei INITIALIZATION sofort Deinen Funktionsbaustein aufzurufen. Damit hättest Du dann die gewünschte Funktionalität.

Übrigens: Dynpronummern sind NUMCs, also Zeichenketten. Daher ist es besser, CALL SCREEN '0100' statt CALL SCREEN 0100 zu schreiben, da der Interpreter bei letzterer Syntax eine unnötige Formatwandlung durchführen muss.

Seite 1 von 1