gelöst LISTBOX: SELECTION-SCREEN


Getting started ... Alles für einen gelungenen Start.

Moderatoren: Jan, Steff

gelöst LISTBOX: SELECTION-SCREEN

Beitragvon xGabriel » 16.11.2018, 12:13

Hallo!

Ich verwende für meinen Selektionsbildschirm 3 Dropdown-Boxen. Jeder Eintrag füttert gewisse Felder auf dem Selektionsbildschirm mit Werten. Die zu befüllenden Felder sind für alle 3 Listboxen die selben. Das funktioniert auch bereits, doch möchte ich das ganze noch etwas verfeinern.

1.)
Ich wähle einen Eintrag aus Box1, nun entscheide ich mich doch für einen Eintrag aus Box2. --> Es soll der Wert von Box2 in die Selektion übernommen werden (dies geschieht bereits) und Box1 auf BLANK gesetzt werden.
Dies sollte für alle 3 Boxen funktionieren. Sprich es sollte immer nur die zuletzt angesteuerte Box mit einem Wert gefüllt sein, die anderen sollten sich gleichzeitig leeren.

2.)
Der letzte Eintrag der Dropdown-Box steht ja für BLANK. Wenn ich diesen auswähle sollten sich die Werte zurücksetzen. Das würde ich auch per CLEAR hinbekommen, doch dann kann ich dieses Feld manuell nicht mehr überschreiben. Das sollte jedoch möglich sein. Das hätte ich aber gerne, da die Dropdown-Boxen nur die gängigsten Varianten für meine Selektion beinhalten, es aber mehr als diese gibt und man die Felder auch manuell befüllen können sollte.

Ich hoffe ich konnte mich verständlich ausdrücken.
Vl. hilft mein Coding zum besseren Verständnis:


Code: Alles auswählen

SELECTION-SCREEN BEGIN OF BLOCK b6 WITH FRAME TITLE text-007.


SELECTION-SCREEN BEGIN OF BLOCK b4 WITH FRAME.
PARAMETERS p_mat AS LISTBOX VISIBLE LENGTH 35  USER-COMMAND txt .
SELECTION-SCREEN END OF BLOCK b4.


SELECTION-SCREEN BEGIN OF BLOCK b7 WITH FRAME TITLE text-009.
PARAMETERS p_deb AS LISTBOX VISIBLE LENGTH 35  USER-COMMAND txt.
SELECTION-SCREEN END OF BLOCK b7.


SELECTION-SCREEN BEGIN OF BLOCK b9 WITH FRAME.
PARAMETERS p_so10 AS LISTBOX VISIBLE LENGTH 35  USER-COMMAND txt.
SELECTION-SCREEN END OF BLOCK b9.


SELECTION-SCREEN END OF BLOCK b6.


INITIALIZATION.

  name = 'p_mat'.
  value-key = '1'.
  value-text = 'Vertriebstext'.
  APPEND value TO list.
  value-key = '2'.
  value-text = 'Grunddatentext'.
  APPEND value TO list.
  value-key = '3'.
  value-text = 'Einkaufsbestelltext'.
  APPEND value TO list.
  value-key = '4'.
  value-text = 'Interner Vermerk'.
  APPEND value TO list.
  value-key = '5'.
  value-text = 'Prüftext'.
  APPEND value TO list.

  CALL FUNCTION 'VRM_SET_VALUES'
    EXPORTING
      id     = name
      values = list.

"das selbe nochmal für die anderen beiden Boxen....


AT SELECTION-SCREEN.

  CASE p_mat.

    WHEN '1'.
      tdid = '0001'.
      tdobject = 'MVKE'.
    WHEN '2'.
      tdid = 'GRUN'.
      tdobject = 'MATERIAL'.
    WHEN '3'.
      tdid = 'BEST'.
      tdobject = 'MATERIAL'.
    WHEN '4'.
      tdid = 'IVER'.
      tdobject = 'MATERIAL'.
    WHEN '5'.
      tdid = 'PRUE'.
      tdobject = 'MATERIAL'.
*    WHEN ' '.
*      CLEAR tdid.
*      CLEAR tdobject.
  ENDCASE.

  CASE p_deb.
    WHEN '1'.
      tdid = '0001'.
      tdobject = 'KNVV'.
    WHEN '2'.
      tdid = 'Z001'.
      tdobject = 'KNVV'.
    WHEN '3'.
      tdid = '0001'.
      tdobject = 'KNA1'.
    WHEN '4'.
      tdid = '0002'.
      tdobject = 'KNA1'.
    WHEN '5'.
      tdid = '9000'.
      tdobject = 'KNA1'.
*    WHEN ' '.
*      CLEAR tdid.
*      CLEAR tdobject.
  ENDCASE.



  CASE p_so10.
    WHEN '1'.
      tdid = 'ST'.
      tdobject = 'TEXT'.
    WHEN '2'.
      tdid = 'ZMAT'.
      tdobject = 'TEXT'.
    WHEN '3'.
      tdid = 'ZSBC'.
      tdobject = 'TEXT'.
    WHEN '4'.
      tdid = 'ZSBH'.
      tdobject = 'TEXT'.
    WHEN '5'.
      tdid = 'ZSBK'.
      tdobject = 'TEXT'.
*    WHEN ' '.
*      CLEAR tdid.
*      CLEAR tdobject.
  ENDCASE.

"Versuch nur 1 Box aktiv zu halten...funktioniert aber nicht richtig....

*  IF p_mat IS NOT INITIAL.
*    CLEAR p_deb.
*    CLEAR p_so10.
*  ENDIF.
*  IF p_deb IS NOT INITIAL.
*    CLEAR p_mat.
*    CLEAR p_so10.
*  ENDIF.
*  IF p_so10 IS NOT INITIAL.
*    CLEAR p_mat.
*    CLEAR p_deb.
*
*  ENDIF.


 



Danke schon mal!
Lg
xGabriel
ForumUser
 
Beiträge: 16
Registriert: 12.07.2018, 07:28
Dank erhalten: 0 mal
Ich bin: sonstiges

Sponsor

Alte ABAP-Entwicklerweisheit: Weißt du weder aus noch ein, baust du einen BADI ein

Re: LISTBOX: SELECTION-SCREEN

Beitragvon ewx » 16.11.2018, 12:26

xGabriel hat geschrieben:Ich hoffe ich konnte mich verständlich ausdrücken.

äh. nein.
Das Coding funktioniert nicht und ist unvollständig.

du willst anscheinend irgendwelche Felder mithilfe der Listbox vor belegen.
Wenn du die Listboxen unterschiedlich auswerten möchtest, musst du auch unterschiedliche USER-COMMANDs verwenden (du verwendest nur TXT). Dann kannst du genau steuern, welche Felder gelöscht und welche beibehalten werden sollen.
ewx
Top Expert
 
Beiträge: 3835
Registriert: 04.08.2003, 19:55
Wohnort: Schleswig-Holstein
Dank erhalten: 320 mal

Re: LISTBOX: SELECTION-SCREEN

Beitragvon xGabriel » 17.11.2018, 00:13

Vielen Dank für den Tipp mit den unterschiedlichen SY-UCOMMs, dadurch ist Problem 2 gelöst. :up:
Bleibt noch mein 1. Problem:

Nochmal ein Beispiel:

- User wählt aus Listbox 1 die Option 1
- User merkt, dass dies nicht die richtige Auswahl ist, ist aber zu faul um Listbox 1 wieder auf BLANK zu setzen
- User wählt nun Eintrag 2 aus Listbox 2

Mit der Listbox 2 - Auswahl sollte nun die Listbox 1 automatisch auf BLANK gesetzt werden und nur noch die zuletzt ausgewählte Option sichtbar sein.
Und dies sollte natürlich vice versa für alle 3 Boxen funktionieren.

Im Grunde genommen brauche ich hier eine Funkionalität wie beim Radiobutton...dass nur eine der 3 Boxen 'aktiv' sein darf.
xGabriel
ForumUser
 
Beiträge: 16
Registriert: 12.07.2018, 07:28
Dank erhalten: 0 mal
Ich bin: sonstiges

Re: LISTBOX: SELECTION-SCREEN

Beitragvon ewx » 17.11.2018, 06:10

Dann machst du ein CLEAR auf die Felder der jeweils anderen Listboxen.
ewx
Top Expert
 
Beiträge: 3835
Registriert: 04.08.2003, 19:55
Wohnort: Schleswig-Holstein
Dank erhalten: 320 mal

Re: LISTBOX: SELECTION-SCREEN

Beitragvon xGabriel » 19.11.2018, 14:55

Die CLEAR's hatte ich bereits probiert, jedoch an der falschen Stelle. Habs jetzt hinbekommen. Danke für deine Rückmeldungen! :up:
xGabriel
ForumUser
 
Beiträge: 16
Registriert: 12.07.2018, 07:28
Dank erhalten: 0 mal
Ich bin: sonstiges


Zurück zu ABAP® für Anfänger

  Aktuelle Beiträge   
Applikations-Toolbar dynamisch erzeugen
vor 8 Stunden von ralf.wenzel 0 Antw.
CP_BD_DIRECT_INPUT_PLAN
Gestern von Gottschall 0 Antw.
Logische Datenbank: Selektieren mit Loop
vor 4 Stunden von deejey 12 Antw.
Globale Konstanten - Organisationseinheiten
vor 13 Stunden von ralf.wenzel 5 Antw.
Kein Zugriff auf Dateien im Applikationsserver
Gestern von zzcpak 1 Antw.

  Ähnliche Beiträge beta
Dropdown Listbox
08.02.2009, 12:02 von ChrisB 1 Antw.
gelöst Selektionsfelder per Listbox
24.04.2013, 10:41 von Katsche 4 Antw.
listbox mit werten aus tabelle füllen
05.06.2007, 13:03 von MarkusW 10 Antw.
Listbox text-Teil anzeigen
13.07.2010, 14:17 von black_adept 4 Antw.
gelöst Listbox mit Werten aus Itab füllen
22.01.2018, 14:29 von peripe 2 Antw.

 

Wer ist online?

Mitglieder in diesem Forum: Google Adsense [Bot]

cron