Inputfield dynamisch als Muss deklarieren geht nicht mit F8

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

Inputfield dynamisch als Muss deklarieren geht nicht mit F8

Beitrag von Dyrdek (Specialist / 306 / 30 / 0 ) »
Hallo,

In meinem Selektionsbild gibt es eine Checkbox, wenn diese gechecked ist wird ein bestimmtes Inputfield als Muss-Feld gekennzeichnet.
Das Problem ist aktuell aber, dass das ganze nur dann funktioniert wenn der Anwender die Eingabetaste drückt. Wenn direkt nach Eingabe der Werte F8 gedrückt wird, wird der Report direkt ausgeführt ohne die Mussabfrage.

Code: Alles auswählen.

AT SELECTION-SCREEN OUTPUT.
  LOOP AT SCREEN.
    IF screen-name EQ 'PA_CSVE'.
      IF pa_csvb EQ 'X'.
        screen-required = '1'.
      ENDIF.
    ENDIF.
    MODIFY SCREEN.
  ENDLOOP.
Momentan sieht mein Coding so aus. pa_csvb ist die Bedingung und pa_csve soll als Mussfeld gekennzeichnet werden.

Danke für alle Tipps!

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


Re: Inputfield dynamisch als Muss deklarieren geht nicht mit

Beitrag von a-dead-trousers (Top Expert / 4399 / 223 / 1182 ) »
Nimm SCREEN-REQUIRED = '2'.
Dann schaut das Feld zwar aus als ob es ein Muss-Feld wäre, aber die Prüfung vom Dynpro wird umgangen. (sog. SOLL-Feld laut Screenpainter)
Leider bedeutet das aber auch, dass du dich vor der Ausführung deines Reports selbst um die Muss-Feld-Prüfung kümmern musst.

lg ADT
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: Inputfield dynamisch als Muss deklarieren geht nicht mit

Beitrag von Dyrdek (Specialist / 306 / 30 / 0 ) »
Ok, danke dir erstmal.
Wie kann ich die Prüfung dann gestalten, dass wenn das Feld Initial ist das Selektionsbild nochmal aufkommt. Am besten mit einem entsprechenden Hinweis.

Das Selektionsbild ist übrigens ein Standardselektionsbild, also kein eigenes Dynpro. Falls das einen Unterschied machen sollte.

Re: Inputfield dynamisch als Muss deklarieren geht nicht mit

Beitrag von edwin (Specialist / 306 / 10 / 68 ) »
Hi,
auf Deinem Selektionsbild solltest Du der Checkbox ein USER-COMMAND zuordnen, dann wird bei einer Änderung ein PAI-Event ausgelöst,
und Dein "AT SELECTION-SCREEN OUTPUT" wird ausgefürt.
Bsp:

Code: Alles auswählen.

PARAMETERS : pa_csvb  AS CHECKBOX    DEFAULT  ' '  USER-COMMAND 00.
/Edwin

Re: Inputfield dynamisch als Muss deklarieren geht nicht mit

Beitrag von Dyrdek (Specialist / 306 / 30 / 0 ) »
Mein Coding funktioniert aktuell wie folgt. Vielleicht lag es an einem Neustart von SAP Logon, ich weiß es nicht. Aber es funktioniert nun wie es soll

Code: Alles auswählen.

AT SELECTION-SCREEN OUTPUT.

    LOOP AT SCREEN.
      IF screen-name EQ 'PA_CSVE'.
        IF pa_csvb EQ 'X'.
          screen-required = '1'.
        ENDIF.
      ENDIF.
      MODIFY SCREEN.
    ENDLOOP.
Da ich das mit dem USER-COMMAND aber noch woanders gesehen habe, würde mich interessieren wie das etwa funktioniert.
Probiert habe ich das auch und wollte den Funktionscode (z.B. ... USER-COMMAND fcode.) über sy-ucomm abfragen, dort war der nur nie eingetragen.
Habe mich dabei daran orientiert aber es anscheinend nicht korrekt umgesetzt: http://help.sap.com/saphelp_dm40/helpda ... ontent.htm

Danke für eure Hilfe! :)

Re: Inputfield dynamisch als Muss deklarieren geht nicht mit

Beitrag von Dyrdek (Specialist / 306 / 30 / 0 ) »
Gut dass ich das ganze hier noch nicht auf Gelöst gesetzt habe.

Wenn ich das ganze auf Screen-required = '1' setze habe ich folgendes Problem. Die Checkbox wird gesetzt und das Inputfeld wird zu einem Muss. Wenn ich, ohne in das Feld etwas einzutragen, nun aber die Checkbox wieder entfernen möchte, funktioniert das nicht da ein Mussfeld nicht befüllt wurde.
Wie kann ich das umgehen? Wenn ich Screen-required = '2' setze bin ich mir aktuell nicht sicher wie ich es hinkriege, dass eine Meldung ausgegeben wird, aber der Report nicht starten sondern der Selektionsscreen stehen bleibt.

Sollte mit dem USER-COMMAND aber nicht bei jeder Änderung der Checkbox AT SELECTION-SCREEN durchgeführt werden? Dort wollte ich das ganze dann nämlich entsprechend wieder ändern.

Momentan sieht mein Coding so aus:

Code: Alles auswählen.

 PARAMETERS: ...            pa_csvb TYPE boole_d USER-COMMAND 00,      "Option CSV zu erzeugen
            pa_csve TYPE comm_id_long.  "Mail-Adresse des CSV-Empfängers
SELECTION-SCREEN END OF BLOCK b2.

AT SELECTION-SCREEN OUTPUT.
    LOOP AT SCREEN.
      IF screen-name EQ 'PA_CSVE'.
        IF pa_csvb EQ 'X'.
          screen-required = '1'.
        ELSE.
          screen-required = '0'.
        ENDIF.
      ENDIF.
      MODIFY SCREEN.
    ENDLOOP.

Re: Inputfield dynamisch als Muss deklarieren geht nicht mit

Beitrag von ewx (Top Expert / 4849 / 313 / 642 ) »
Das ganze Thema mit den Mussfeldern ist nicht einfach. Auf einem normalen Dynpro (Nicht Selektionsbild) kann man etwas tricksen:
http://www.tricktresor.de/blog/mussfelder/

Das funktioniert aber im Report nicht.

Nimm den Trick von Dyrdek und benutze "2 - Sollfeld".
Du brauchst dann nur nach START-OF-SELECTION abfragen, ob das Feld bei der entsprechenden Option gefüllt ist.

Re: Inputfield dynamisch als Muss deklarieren geht nicht mit

Beitrag von Dyrdek (Specialist / 306 / 30 / 0 ) »
Alles klar, werde das mit dem Sollfeld gleich testen.
Wenn es nicht befüllt wurde, springt es dann automatisch zurück auf das Selektionsbild oder muss hierfür etwas eingebaut werden?

Re: Inputfield dynamisch als Muss deklarieren geht nicht mit

Beitrag von Dyrdek (Specialist / 306 / 30 / 0 ) »
Habe es nun mit einem Sollfeld (=2) umgesetzt.

Part 1: USER-COMMAND setzen und Soll-Feld dynamisch aktivieren

Code: Alles auswählen.

PARAMETERS: pa_refu      TYPE p0105-usrid,   "Referenzuser
            pa_send      TYPE boole_d,       "Option um Protokoll zu senden
            pa_mail      TYPE comm_id_long,  "Mail-Adresse des Protokollempfängers
            pa_csvb      TYPE boole_d USER-COMMAND ucomm,      "Option CSV zu erzeugen
            pa_csve      TYPE comm_id_long.  "Mail-Adresse des CSV-Empfängers
SELECTION-SCREEN END OF BLOCK b2.

"Wenn CSV-Option aktiv, MUSS Empfänger eingetragen werden
AT SELECTION-SCREEN OUTPUT.
  LOOP AT SCREEN.
    IF screen-name EQ 'PA_CSVE'.
      IF pa_csvb EQ 'X'.
        screen-required = '2'.
      ELSE.
        screen-required = '0'.
      ENDIF.
    ENDIF.
    IF screen-name EQ 'PA_PWDE'.
      screen-input = '0'.
    ENDIF.
    MODIFY SCREEN.
  ENDLOOP.
Part 2: Sollfeld prüfen und gegebenenfalls zurück zum Selektionsbild ohne Report auszuführen.

Code: Alles auswählen.

START-OF-SELECTION.
  IF pa_csvb EQ 'X' AND pa_csve IS INITIAL.
    MESSAGE s000 DISPLAY LIKE 'W'.
    LEAVE LIST-PROCESSING.
  ENDIF.
Danke nochmal für eure Hilfe! :)
Und vielleicht hilfts ja noch jemanden in Zukunft.

Seite 1 von 1

Vergleichbare Themen

0
Antw.
1036
Views
Eingabefeld als Mußfeld deklarieren
von KlausB » 22.03.2007 10:09 • Verfasst in Human Resources
2
Antw.
2839
Views
Interne Tabelle deklarieren
von PrimaVeritas » 27.07.2006 11:41 • Verfasst in ABAP® für Anfänger
6
Antw.
3070
Views
BSP Wertehilfe zu Inputfield
von Thanatos82 » 18.05.2015 13:46 • Verfasst in Web-Dynpro, BSP + BHTML
2
Antw.
2004
Views
Keine Parameterübergabe bei inputField
von BEO » 08.06.2005 16:29 • Verfasst in Web-Dynpro, BSP + BHTML
0
Antw.
2291
Views
Problem mit Eventhandling (inputField)
von wowjan » 17.10.2007 14:15 • Verfasst in Web-Dynpro, BSP + BHTML

Über diesen Beitrag


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

Aktuelle Forenbeiträge

Regex in where
vor 5 Stunden von edwin 7 / 163
Daten an Tabelle binden
vor 19 Stunden von Bright4.5 3 / 1487

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.

Aktuelle Forenbeiträge

Regex in where
vor 5 Stunden von edwin 7 / 163
Daten an Tabelle binden
vor 19 Stunden von Bright4.5 3 / 1487

Unbeantwortete Forenbeiträge

aRFC im OO-Kontext
vor 5 Wochen von ralf.wenzel 1 / 3261
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9822