ich möchte in meiner Selektionsmaske einen Wert als DEFAULT angeben, der allerdings erst beim Starten des Tools feststeht, also nicht immer fix ist.
Mein Code schaut wie folgt aus:
DATA: gv_test(20).
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.
PARAMETERS:
p_xx default gv_test.
SELECTION-SCREEN END OF BLOCK b2.
INITIALIZATION.
SELECT SINGLE * FROM db_tab.
if sy-subrc = 0.
MOVE db_tab-TYP_TEXT TO gv_test.
endif.
START-OF-SELECTION.
Ich möchte also aus einer Datenbanktabelle mir einen Wert auslesen und diesen ausgeben. Ich habe einen Breakpoint hineingesetzt und gesehen, dass er zuerst die Variable gv_test (auch richtig) befüllt und danach erst den Selektionsbildschirm anzeigt. In der Hilfe stand, dass es mit selbsterstellten Selektionsbildschirmen gehen müsste, das haut aber so nicht hin. Der lässt das Feld leer.
Also ich definiere meistens meine Wertefelder als SELECT-OPTIONS, so kann ich sicher sein das die Werte aus stimmen.
Also Definition:
SELECT-OPTIONS: s_xxx for kna1-kunnr. (Beispiel)
- Ich definiere sie nur als DEFAULT, wenn ich den Wert bereits vor dem Aufruf des Selektionsbildschirms habe!
Im Teile INITALIZATION setze ich dann den Wert direkt.
s_xxx = 'IEQ12346'.
append s_xxx.
Bei Select-option-Felder muss man 3 Stellen vor dem eigentlichen Wert vordefinieren.
1. Stelle: sign - I = Including, E = Excluding
2. + 3. Stelle : Option - EQ = EQUAL, NE = NOT EQUAL, BT = Between, ...
4 - x. Stelle : der eigentliche Wert, in meinem Beispiel Kundennummer.
Aber ich glaube das, wenn du einen Parameter verwenden willst, würde es auch reichen wenn du im INITALIZATION-Block den Wert direkt in dein p_xxx-Feld übergibst.