Code: Alles auswählen.
DATA: listbox.
CASE VEREINBARUNG.
WHEN 'a0'.
CONCATENATE '0' VEREINBARUNG sy-ucomm INTO listbox.
WHEN 'a1'.
CONCATENATE '1' VEREINBARUNG sy-ucomm INTO listbox.
WHEN 'a2'.
CONCATENATE '2' VEREINBARUNG sy-ucomm INTO listbox.
WHEN 'a3'.
CONCATENATE '3' VEREINBARUNG sy-ucomm INTO listbox.
WHEN OTHERS.
CONCATENATE 'ABC' VEREINBARUNG sy-ucomm INTO listbox.
ENDCASE.
MESSAGE listbox TYPE 'I'.
Wird das Feld auf einem Dynpro angezeigt?jse91 hat geschrieben: - Ich weiß, dass das Ergebnis im PAI richtig gewählt wird, bin aber nicht sicher, in welcher Variablen wird es gespeichert, um es später zu lesen. Ich habe auch durch Ausgabe Nachrichten bemerkt, dass dieses Ergebnis der vorherigen statt der aktuellen Wahl entspricht (also, die 2. Wahl gibt die Nachricht der 1.; die 3., diejenige der 2.; usw.) Wie kann ich es korrigieren? Daraufhin steht der zur Benachrichtigung ("Flagge") gebrauchte Code
Das ist leicht. Weise der Listbox im Dynpro einfach einen Funktionscode zu. Sobald der Benutzer den Inhalt dann ändert wird immer PAI/PBO durchlaufen. Das ein- und ausschalten der Felder macht man dann mit LOOP AT SCREEN im jeweiligen PBO Modul. (AT SELECTION-SCREEN OUTPUT bei Selektionsbildschirm)jse91 hat geschrieben: - Je nachdem welcher Möglichkeit ausgewählt wird, müssen andere Eingabefelder (ent)sperrt werden. Wie kann man dieses "dynamische" Verhältnis erhalten? In welchem PROCESS sollen diese Befehle stehen? (Ich würde PAI sagen)
Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
jse91
Es hat geklappt. Der Befehl wurde falsch gesetzt.Wenn der Wert zum Zeitpunkt PAI nicht vorhanden ist, ist vermutlich das Feld noch nicht übertragen worden. Kann es sein, dass du in der Dynpro-Ablauflogik eine FIELDS-Anweisung für das Listbox-Feld angegeben hast? Dann darf die Verarbeitung des Feldinhaltes (dein Coding) erst DANACH aufgerufen werden.
Wenn ich richtig verstanden habe, würde es nicht nur durch den Schleifenanweisung LOOP AT SCREEN, sondern auch durch den MODIFY SCREEN Befehl ausgeführt (klar, nach der Änderung der Parameter REQUIRED, INPUT, OUTPUT, INVISIBLE, usw), oder?Das ein- und ausschalten der Felder macht man dann mit LOOP AT SCREEN im jeweiligen PBO Modul.
Ja, klar, stimmt. MODIFY SCREEN muss man natürlich auch machenjse91 hat geschrieben:Wenn ich richtig verstanden habe, würde es nicht nur durch den Schleifenanweisung LOOP AT SCREEN, sondern auch durch den MODIFY SCREEN Befehl ausgeführt (klar, nach der Änderung der Parameter REQUIRED, INPUT, OUTPUT, INVISIBLE, usw), oder?