gibt es eine Möglichkeit ein Feld auf dem Dynpro in Abhängigkeit von dem Wert eines anderen als Pflichtfeld zu definieren?
Feld 1 kann die Werte "A" und "B" annehmen. Wenn Feld 1 den Wert "A" hat, dann soll Feld 2 nicht angezeigt werden. Wenn Feld 1 den Wert "B" hat, dann soll Feld 2 angezeigt werden und die Eingabe soll zwingend sein.
schau dir mal den befehlszusatz "MODIF ID" sowie die Befehle "AT SELECTION-SCREEN OUTOUT" und "LOOP AT SCREEN"an, damit kannst du all das steuern, was du möchtest.
Zum einen kannst du damit steuern, dass dein zweites Feld nur angezeigt wird wenn in Feld 1 'B' eingetragen ist.
Und du kannst steuern, dass bei fehlender Eingabe in Feld 2, sofern sichtbar (screen-active = 1), die Verarbeitung abgebrochen und eine Fehlermeldung ausgegeben wird.
Danke für die schnellen Antworten. Leider war noch keine Lösung dabei.
Mir genügt es nicht, dass das Feld eingabebereit ist (active), es soll obligatory sein. Mit dem Attribut REQUIRED komme ich leider auch nicht weiter.
Alternativ, kann ich mir vorstellen, dass beim Verlassen des Dynpros eine Prüfung erfolgt. Diese darf jedoch nicht nur bei Eingabe eines Wertes (ON REQUEST) in Feld 2 erfolgen und auch nicht immer, wenn irgendwo auf dem Dynpro eine Eingabe erfolgt ist.
CSC hat geschrieben:Mit dem Attribut REQUIRED komme ich leider auch nicht weiter.
Wieso? Vermutung: Umschalten von B nach A in Feld 1 geht nur wenn Feld 2 gefüllt.
Die Werte: 0 = Kann, 1 = Muss, 2 = Soll passen eigentlich immer (wobei SOLL-Eingabe nicht immer dokumentiert ist/war, aber bei dem vermuteten Problem hilft).
Eigene Prüfung im Ereignis: AT SELECTION SCREEN ON field2. Im Ereignis dann noch den sy-ucomm Abfragen (PRIN, ONLI und SJOB) ob Programm wirklich ausgeführt werden soll. Dann Prüfung und evtl. Fehlermeldung.