Mussfeld abhängig von anderen Eingaben / Feldern definieren

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Getting started ... Alles für einen gelungenen Start.
9 Beiträge • Seite 1 von 1
9 Beiträge Seite 1 von 1

Mussfeld abhängig von anderen Eingaben / Feldern definieren

Beitrag von Rebecca (ForumUser / 3 / 1 / 0 ) »
Hallo zusammen,
ich benötige eure Hilfe mit meinem Selektionsscreen :)
Abhängig von einer Checkbox (p_holida) soll eine Selectoption (S_C_ID) ein Mussfeld werden.
Ist die Checkbox aktiviert, muss auch die Selectoption gefüllt werden.

Die einfachste Lösung wäre, die Selectioption als Obligatory zu deklarieren und einen Defaultwert mit anzugeben.

Ist auch eine Lösung ohne einen Defaultwert möglich?

Im Moment versuche ich folgendes:

Code: Alles auswählen.

AT SELECTION-SCREEN OUTPUT.                                 
  LOOP AT SCREEN.
    IF SCREEN-name = 'S_C_ID-LOW'.
      IF p_holida = 'X'.
        SCREEN-input = '1'.
        screen-required  = '2'.
      ELSE.
        SCREEN-input = '0'.
        screen-required  = '0'.
      ENDIF.
    ENDIF.
    MODIFY SCREEN.
  ENDLOOP. 
Durch den Zusatz screen-required erscheint bereits ein roter Stern in dem Feld. Allerdings erfolgt keine Prüfung der Eingabe. Das heißt, das Programm wird ohne Warnung ausgeführt, auch wenn das Feld leer ist.

Was muss ich anpassen, damit hier die Warnung "Füllen Sie alle Mussfelder aus" erscheint und das Programm noch nicht ausgeführt wird?

Vielen Dank und Gruß
Rebecca

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: Mussfeld abhängig von anderen Eingaben / Feldern definieren

Beitrag von Lukas Sanders (ForumUser / 68 / 7 / 34 ) »
Hallo,

versuche mal screen-required = '1' statt screen-required = '2'.

Mit dem Wert 2 wird aus dem Feld nur ein Soll-Feld, d.h. das rote Sternchen wird angezeigt, es wird aber kein Fehler ausgegeben, wenn das Feld leer bleibt. Erst mit dem Wert 1 ist das Feld ein "echtes" Muss-Feld.

Viele Grüße,
Lukas

Re: Mussfeld abhängig von anderen Eingaben / Feldern definieren

Beitrag von ewx (Top Expert / 4842 / 310 / 638 ) »

Folgende Benutzer bedankten sich beim Autor ewx für den Beitrag:
Rebecca


Re: Mussfeld abhängig von anderen Eingaben / Feldern definieren

Beitrag von a-dead-trousers (Top Expert / 4394 / 223 / 1182 ) »
Ich würde empfehlen beim screen-required = '2' zu bleiben.
Beim START-OF-SELECTION (oder wo auch immer die Verarbeitung am Ende stattfindet) würde ich dann einfach eine entsprechende Prüfung ob das Feld gefüllt ist einbauen und im Fehlerfall abbrechen:

Code: Alles auswählen.

IF ... IS INITIAL.
  SET CURSOR FIELD '...'. "Optional wenn man den Cursor setzen möchte
  MESSAGE ID '00' TYPE 'E' NUMBER '055'. "<-- Standard-Fehlermeldung
ENDIF.
Der Vorteil hier ist, dass man nicht ständig in die Standard-Feldprüfung reinläuft wenn man z.B. die Bedingung warum das Feld ein "Muss"-Feld sein sollte wieder entfernen möchte.
Der Nachteil ist, dass damit die farbliche Hervorhebung (rot) nicht so toll abgestuft funktioniert, wie wenn man den Selektion-Screen in Blöcke aufgeteilt hat und so zusammenhängende Felder darstellen bzw. prüfen möchte.
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.18
Basis: 7.50

Re: Mussfeld abhängig von anderen Eingaben / Feldern definieren

Beitrag von a-dead-trousers (Top Expert / 4394 / 223 / 1182 ) »
Alternativ könnte man die Prüfung auch in AT SELECTION-SCREEN (ON block) einbauen und dort vorher auf den Funktionscode (sy-ucomm oder sscrfields-ucomm) abfragen um die Prüfung nur im Falle der Ausführung (ONLI, CRET) oder des Speicherns als Variante (SPOS) zu durchlaufen.
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.18
Basis: 7.50

Re: Mussfeld abhängig von anderen Eingaben / Feldern definieren

Beitrag von ewx (Top Expert / 4842 / 310 / 638 ) »
a-dead-trousers hat geschrieben:
03.05.2021 11:48
Alternativ könnte man die Prüfung auch in AT SELECTION-SCREEN (ON block) einbauen und dort vorher auf den Funktionscode (sy-ucomm oder sscrfields-ucomm) abfragen um die Prüfung nur im Falle der Ausführung (ONLI, CRET) oder des Speicherns als Variante (SPOS) zu durchlaufen.
Das wäre sicherlich die beste Methode. Alles andere ist eher "Spielkram".

Re: Mussfeld abhängig von anderen Eingaben / Feldern definieren

Beitrag von DeathAndPain (Top Expert / 1933 / 252 / 410 ) »
Ich persönlich finde Lukas Sanders' Lösung die beste und alles andere Overkill. Der Threadersteller will ja einfach nur die Standardfunktionalität, feldabhängig gesteuert wie in seinem Beispielcode dargestellt. Da muss einfach nur die Mussfeldfunktionalität stimmen. Falls er die Logik später doch wieder ändern möchte, na dann wird er halt wieder an genau diese Zeilen im AT SELECTION OUTPUT ranmüssen. Das ist normal und liegt in der Natur der Sache.

Re: Mussfeld abhängig von anderen Eingaben / Feldern definieren

Beitrag von a-dead-trousers (Top Expert / 4394 / 223 / 1182 ) »
DeathAndPain hat geschrieben:
04.05.2021 14:48
Ich persönlich finde Lukas Sanders' Lösung die beste und alles andere Overkill. Der Threadersteller will ja einfach nur die Standardfunktionalität, feldabhängig gesteuert wie in seinem Beispielcode dargestellt. Da muss einfach nur die Mussfeldfunktionalität stimmen. Falls er die Logik später doch wieder ändern möchte, na dann wird er halt wieder an genau diese Zeilen im AT SELECTION OUTPUT ranmüssen. Das ist normal und liegt in der Natur der Sache.
Schon, aber bevor er das dann wieder in einen LOOP AT SCREEN ändern kann, müssen zuerst alle Mussfelder ausgefüllt werden. Ansonsten wird immer die Standardfehlermeldung ausgegeben und PAI/PBO nicht durchlaufen.
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.18
Basis: 7.50

Re: Mussfeld abhängig von anderen Eingaben / Feldern definieren

Beitrag von Rebecca (ForumUser / 3 / 1 / 0 ) »
Danke euch allen!
Ich habe nun als Lösung gewählt, im Report folgendes zu ergänzen:
AT SELECTION-SCREEN.
CASE sscrfields-ucomm.
WHEN 'ONLI'.
IF p_holida IS NOT INITIAL AND S_C_ID-LOW IS INITIAL.
SET CURSOR FIELD '...'. "Optional wenn man den Cursor setzen möchte
MESSAGE ID '00' TYPE 'E' NUMBER '055'. "<-- Standard-Fehlermeldung
ENDIF.
ENDCASE.

Seite 1 von 1

Vergleichbare Themen

5
Antw.
682
Views
Mussfeld definieren durch Tabellenabfrage
von Cloakr » 04.10.2023 11:45 • Verfasst in ABAP® für Anfänger
5
Antw.
603
Views
Felder nicht editierbar machen abhängig von anderen Feldern
von ZF_SAPler » 14.10.2022 06:23 • Verfasst in ABAP® für Anfänger
0
Antw.
1200
Views
SAP EWM LVM Eingaben speichern
von harry1991 » 21.01.2014 16:40 • Verfasst in ABAP® Core
8
Antw.
4507
Views
ALV Eingaben updaten auf Datenbank
von Dörk » 09.11.2005 12:33 • Verfasst in ABAP® Core
1
Antw.
1706
Views
Nur Nummerische Eingaben zulassen
von pohlmann-schwarza » 20.05.2008 09:56 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag



Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Unbeantwortete Forenbeiträge

aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 1515
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8128