「販売注文番号」の範囲を複数選択できるようにしたいと思います。
問題は、緑色でマークされたボタンを押すと、「すべての必須入力フィールドに入力してください」というエラーが表示されることです。
START-OF-SELECTIONイベントにメインの処理ブロックを配置しました。
これが起こらないようにするにはどうすればよいですか?最初に他のすべての必須フィールドに入力する手間をかけずに、複数の選択肢を追加できるはずだと私には思えます。
parameters/select-options が OBLIGATORY に設定されていると、これは機能しません。しばらく前にまったく同じ問題があり、デフォルトで OBLIGATORY 入力パラメーターに有用な値を入力する機会がなかったため、次のことを行いました。
コード:
AT SELECTION-SCREEN ON s_reswk.
IF sy-ucomm(1) <> '%' AND " sel screen action request
sy-ucomm(1) <> '_' AND " scope option
s_reswk IS INITIAL. " Obligatory input missing
MESSAGE text-e01 TYPE 'E'. " Error message
ENDIF.
OBLIGATORY の追加によって設定された動作を完全に再現することがわかったのは次のとおりです。
1:追加の「OBLIGATORY」を取り出します。
2:PBO で:
LOOP AT SCREEN.
IF screen-name cs 'name-of-your-select-options-or-parameter'.
screen-required = 2.
MODIFY SCREEN.
ENDIF.
3: パイで:
if sscrfields-ucomm = 'ONLI'.
if 'name of your select-option-or-parameter' is initial.
clear sscrfields.
message 'Fill in all required fields.'(009) type 'E'.
endif.
endif.
最初の if ステートメントに 'cs' 論理演算子が含まれていることに注意してください。これは、コントロールの名前に他の奇妙なものも含まれているためです。たとえば、%_P_MATNR_% SCREEN %% (パラメーターは p_matnr でした)。
また、宣言 :TABLES sscrfields.
が必要です。