ewx hat geschrieben:Am Einfachsten über eine manuelle Prüfung im Ereignis AT SELECTION-SCREEN oder START-OF-SELECTION.
Nachteil hierbei: Der Anwender sieht nicht, dass das Feld ein Mussfeld ist, sondern bekommt es erst gesagt, wenn er das Programm ausführen möchte.
Wenn du anfängst, bei SELECT-OPTIONS die Musseingabe mittels LOOP AT SCREEN zu setzen, dann wirst du viel Spaß haben.
Siehe hier für ein normales Dynpro: http://www.tricktresor.de/blog/mussfelder/
Thomas R. hat geschrieben:Und wenn Du in at_selection_screen_output dabei noch screen-required = '2' setzt, dann hast Du auch die Optik eines Muss-Feldes... LOOP AT SCREEN.
MfG
Thomas R.
Code: Alles auswählen.
LOOP AT SCREEN.
CASE screen-name.
WHEN 'P_FEFN'.
IF NOT p_wfef IS INITIAL.
screen-input = '1'.
screen-required = '2'.
ELSE.
screen-input = space.
ENDIF.
MODIFY SCREEN.
WHEN 'P_SSFN'.
IF NOT p_wssf IS INITIAL.
screen-input = '1'.
screen-required = '2'.
ELSE.
screen-input = space.
ENDIF.
MODIFY SCREEN.
WHEN OTHERS.
* NOP
ENDCASE.
ENDLOOP.
Funktioniert einwandfrei!cuncon hat geschrieben: Es hat leider nicht geklappt.
Code: Alles auswählen.
PARAMETERS: pa_wa RADIOBUTTON GROUP rb USER-COMMAND rb DEFAULT 'X'.
PARAMETERS: pa_tr RADIOBUTTON GROUP rb.
SELECTION-SCREEN BEGIN OF BLOCK wa WITH FRAME.
SELECT-OPTIONS: s_prod_1 FOR sy-datum MODIF ID 1. "Produktionsdatum
SELECTION-SCREEN END OF BLOCK wa.
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
IF screen-group1 = '1'.
CASE abap_on.
WHEN pa_wa. screen-required = '2'.
WHEN pa_tr. screen-required = '0'.
ENDCASE.
MODIFY SCREEN.
ENDIF.
ENDLOOP.