Mittels GuiXT kann man keine eigenen Dynpros erzeugen, das heisst man muss sich immer auf ein bestehendes Dynpro vom SAP ERP beziehen. Es gibt jedoch Fälle in welchen man gerne ein Pop-Up dem User zur Verfügung stellen möchte. (z.B. zur Auswahl von irgendwelchen Werten oder zur Anzeige von Zusatzinformationen.
Da wie oben gleich erwähnt, man keine eigenen Dynpros mit GuiXT kreieren kann, nutzen wir einfach 2 Funktionen , die im SAP ERP ein Pop-Up erzeugen und passen das Aussehen unseren Bedürfnissen mit GuiXT an.
Enter „/O“
Enter „?HF1C“
ACHTUNG ! Wenn man die Popup’s verwendet, so ist darauf zu achten, dass man immer eine V-Variable dazu abfragt, nicht dass die Standardfunktionalität von /O und ?HF1C nicht mehr funktionieren.
Die Variablen sind dann auch entsprechend zu initialisieren.
Die wichtigsten Befehle zur Beinflussung der Popup’s sind: Title, WindowSize, WindowPosition, Del, On
Eigene Elemente auf das PopUp baut man dann z.B. mit folgenden Befehlen: Dropdownlist, Inputfield, Table und Column,Radiobutton
Eine tolle Idee, so wie hier viele tolle Ideen zu finden sind.
Mir stellt sich nun folgendes Problem:
In einer geänderten FB01 (F-02 / SAPMF05A.0100) frage ich auf eine Eingabe ab. Bei fehlender Eingabe: Message „sowieseo fehlt, Ohne Eingabe weiter?“ -yesno
Das wollte ich mit ENTER „/O“ verbessern, so dass die Meldung kommt und gleich eine Eingabemöglichkeit angeboten wird.
Bei Aktivieren der Änderung z.B. im Editor wird im angezeigten Popup meine Meldung gezeigt. An der Stelle im Code (bisher noch keine Screen-Anweisung) springt das „Programm“ nach enter „/o“ auf den nächsten Dynpro (…0300) und zeigt das Standardpopup an. Debuggen zeigt, dass die Variablen die richtigen Werte zum richtigen Zeitpunkt haben. Lässt sich diese Eingabetasten-Reaktion verhindern, so dass ich auf dem ersten Dynpro bleibe?
Sehr geehrter Herr Schnitzler,
Wieso überhaupt ein Message? Da würde ich direkt mit dem Auftreten der Situation gleich das Pop-Up auslösen.
Wenn Sie wollen, dass der User auf dem Pop-Up bleibt, dann on „Enter“ Process=“Return.txt“ einbauen.
In einzelnen Fällen hatte ich mit /O auch schon Probleme, also habe ich dann einfach Enter “/?HF1C”
verwendet. Damit hat es immer geklappt.
Herzlichen Dank für Ihre schnelle Antwort.
Die „Message“ wollte ich durch das Pop-Up ersetzen. Ich habe das eben angepasst mit on “Enter” Process=”Return.txt”, springt trotzdem weiter mit Originallayout. /?HF1C erzeugt Meldung „Funktion nicht möglich“.
Zur Erläuterung:
Es geht um eine Erfassungsmaske zur Erfassung von Bankbelegen mit bis zu 20 Positionen, Beleg/Valutadatum wird automatisch gesetzt (Vortag bzw. Montags vorhergehender Freitag).
In einem Inputfield soll die Kontoauszugsnummer angegeben werden, die wird dann bei Verarbeitung auf Vorhandensein abgefragt. Keine Nummer: Pop-Up (oder eben Meldung)
Für die Verarbeitung stehen mehrere Möglichkeiten mit Pushbuttons zu Verfügung, zb. Erzeugung einer Zahlungsverkehrsbuchung, Zahlungsein/ausgänge usw. Normalerweise wird nur ein Betrag benötigt, Konten, Buchungschlüssel usw. werden automatisch eingesetzt.
Von daher ist es nicht tragisch, wenn es (noch) nicht mit Pop-Up geht. Komfort ist auch so genug geboten.
Ich danke Ihnen nochmals für Ihre Antwort und Ihre guten Tipps.
Gruß,
Jo Schnitzler
Hallo Herr Koehn,
ich wollte mir mit diesem Tip mein eigenes PopUp mit /?HF1C aufbauen. Auf diesem PopUp soll lediglich ein TAB stehen bleiben. Dieses wollte ich dann mit eigenen Objekte (RadioButton, Checkboxen, etc.) füllen.
Mit folgendem Code lösche ich erst einmal alle TABs bis auf das „F1-Hilfe“. Soweit funktioniert auch alles. Wenn ich aber den Text „F1-Hilfe“ jetzt mit TextReplace umbenenne, erscheint wieder das TAB „Erweiterte Hilfe“. ABER nur beim ersten Aufruf des PopUps. Schließe ich dieses und öffne es dann wieder, erscheint es wie gewollt. Hier mal mein kurzer Code aus der SAPLSR13.d0102.txt:
if V[PopUp=1]
del P[ONLI]
del P[F4HI]
del G[%#AUTOTEXT001]
Title „Test PopUp = 1“
Text (5,10) „Hier steht jetzt MEIN Text ;-)“
CheckBox (6,10) „Bitte wählen sie…“ Name=“Wert“
TextReplace „F1-Hilfe“ „Mein Text“
endif
Vielen Dank
Torsten Freydt-Olek