Mußfeld dynamisch setzen

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
8 Beiträge • Seite 1 von 1
8 Beiträge Seite 1 von 1

Mußfeld dynamisch setzen

Beitrag von RiffRaff (Specialist / 379 / 0 / 1 ) »
Hallo miteinander.

Folgendes: Ich habe auf dem Selectionsscreen eine Checkbox. Wenn die angehackt wird, soll das Eingabefeld 'WERK' auf Mußeingabe umgestellt werden.

AT SELECTION-SCREEN OUTPUT.
IF frage = 'X'.
LOOP AT SCREEN.
IF screen-name = 'P_WERKS'.
screen-required = 1.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDIF.

soweit sogut. Wenn man die Checkbox abhackt, soll die Mußeingabe zurückgenommen werden.
In welchem Ereignis soll ich den Code dafür stellen??

AT SELECTION-SCREEN OUTPUT. wird nicht durchlaufen, weil SAP ja schon vorher erkennt, daß ein Mußfeld nicht ausgefüllt ist.

mfg
Richard

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


Beitrag von Frank Dittrich (Expert / 674 / 0 / 15 ) »
Mit LOOP AT SCREEN kommst Du nicht weit.
Du könntest zwar in der PARAMETERS-Anweisung den Zusatz USER-COMMAND verwenden, aber dann zieht die Prüfung, ob das Feld obligatorisch ist auch, wenn Du gerade die Markierung der Checkbox rückgängig machen willst.

Besser ist, bei AT SELECTION SCREEN zu prüfen, ob die CHECKBOX markiert ist, und dann manuell zu prüfen, ob das "Mussfeld" versorgt ist.

Wenn Du P_WERKS und FRAGE (ich nehme an, es ist ein Parameter) in ein SELECTION-SCREEN BEGIN/END OF BLOCK xyz steckst,
kannst Du die Prüfung bei AT SELECTION-SCREEN ON BLOCK xyz vornehmen.
Dann sind bei einem Fehler auch nur FRAGE und P_WERKS eingabebereit.
Nachteil: Die Prüfung zieht z.B. auch, wenn jemand in eine SELECT-OPTION zusätzliche Einträge aufnehmen möchte, also noch gar nicht die Absicht hat, START-OF-SELECTION auszuführen.

Das kannst Du ändern, indem Du eine Anweisung

Code: Alles auswählen.

TABLES sscrfields.
aufnimmst, und in der Prüfung bei AT SELECTION-SCREEN ... auch noch SSCRFIELDS-UCOMM prüfst.

BTW: screen-required = '1'. vermeidet eine unnötige Typ-Konvertierung.

Beitrag von RiffRaff (Specialist / 379 / 0 / 1 ) »
Danke,

nach ersten Tests funkt es tadellos.
PS.
Sind alles nur PARAMETERS

mfg
Richard

Beitrag von David ( / / 0 / 3 ) »
Hallo,

kann mir jemand mal ein Beispiel-Coding für AT SELECTION-SCREEN ON BLOCK xyz zur Verfügung stellen.
Momentan habe ich keine Idee, wie ich die Felder entsprechend als Mussfeld markieren bzw. entmarkieren muss.

Vielen Dank im voraus.

David

Beitrag von Asaph (Expert / 580 / 6 / 1 ) »
Hallo David,

meinst du ganze gruppen von parametern verändern :?:

->dann schau hier:

Code: Alles auswählen.

parameters:date1 type sy-datum default sy-datum modif id 1,
           date2 type sy-datum default '20050304' modif id 1.

AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
  IF SCREEN-GROUP1 = '1'.
    screen-required  = '1'.
    MODIFY SCREEN.
  ENDIF.
ENDLOOP.

lg Andreas

Beitrag von David ( / / 0 / 3 ) »
Hallo Andreas,

vielen Dank für das Coding, war ganz lehrreich. Aber ich stehe vor dem gleichen Problem, wie im ersten Beitrag dieses Threads beschrieben.

Ich habe eine Gruppe mit vier Radiobuttons. Je nach ausgewählten Button soll nun ein anderes Parameter-Feld eingabebereit sein. Das ist auch soweit kein Problem. Allerdings will ich erreichen, dass das eingabebereite Feld auch als Mussfeld gekennzeichnet ist. Wenn ich dann anschließend einen anderen Radiobutton auswähle bleibt das vorherige Parameterfeld als Mussfeld gekennzeichnet.

Wie bringe ich SAP bei, das nicht mehr aktuelle Paramterfeld nicht mehr als Mussfeld zu kennzeichnen?

Noch eine andere Frage: Ist es nicht möglich mehrere Radiobutton in verschiedene Blöcke(selection-screen begin of block ... ) auf dem Selektionsbild zu verteilen? Oder gibt es dafür einen Trick?

Gruß
David

Beitrag von ereglam (Top Expert / 1829 / 2 / 7 ) »
wie bereits oben von den Anderen geschrieben, gibt es Probleme, wenn man mal das Mussfeld-Flag für ein Feld dynamisch gesetzt hat und man nun wegen Änderung der Radio-Button dies nicht mehr will.

Hier die Prüfung auf unversorgte Mussfelder (findet im SAPGUI-FrontEnd statt), bevor irgendwelche Funktionen an das Backend weitergeleitet werden.
Ergo => die Mussfeldprüfung muss manuell ohne Systemunterstützung gemacht werden.

Radibutton-Gruppen:
über die Angabe 'RADIOBUTTON GROUP radi' werden die Radiobutton definiert und durch Verwendung unterschiedlicher Gruppennamen (hier radi) werden unterschiedliche Gruppen gebildet.
Dass kann dann auch wild gemischt sein (was aber dennoch nicht zu empfehlen ist)
Gruß
Ereglam


May the Force be with your code
|| .| |.|| | .... . ..|. ||| .|. |.|. . |... . .|| .. | .... |.|| ||| ..| .|. |.|. ||| |.. .

Beitrag von Steffi221185 (Specialist / 132 / 0 / 0 ) »
Hallo,

ich möchte mein mussfeld auch dynamisch setzten. hab genau das gleiche problem wie hier beschrieben nur hab ich nen dynpro und kein Selektionsbild mit Paramertern. Kann mir jemand weiter helfen oder nen Beispielcode schicken.

Gruß Steffi

Seite 1 von 1

Vergleichbare Themen

2
Antw.
3408
Views
Feldbezeichner dynamisch setzen
von axel.mohnen » 18.09.2006 12:14 • Verfasst in Dialogprogrammierung
1
Antw.
1049
Views
Wertehilfe Dynamisch setzen
von SaskuAc » 13.12.2018 14:06 • Verfasst in ABAP® Core
3
Antw.
2339
Views
Splitterposition dynamisch setzen
von Nordlicht » 03.10.2006 13:26 • Verfasst in ABAP Objects®
8
Antw.
7859
Views
Ein Dynpro dynamisch auf die Fenstergröße setzen
von niko022 » 22.08.2006 11:28 • Verfasst in Dialogprogrammierung
7
Antw.
4631
Views
Feldposition im Dynpro dynamisch setzen
von Nordlicht » 04.09.2006 14:19 • Verfasst in Dialogprogrammierung

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

Daten an Tabelle binden
Gestern von Bright4.5 1 / 549
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2177
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8772