6

絵

「販売注文番号」の範囲を複数選択できるようにしたいと思います。

問題は、緑色でマークされたボタンを押すと、「すべての必須入力フィールドに入力してください」というエラーが表示されることです。

START-OF-SELECTIONイベントにメインの処理ブロックを配置しました。

これが起こらないようにするにはどうすればよいですか?最初に他のすべての必須フィールドに入力する手間をかけずに、複数の選択肢を追加できるはずだと私には思えます。

4

2 に答える 2

7

parameters/select-options が OBLIGATORY に設定されていると、これは機能しません。しばらく前にまったく同じ問題があり、デフォルトで OBLIGATORY 入力パラメーターに有用な値を入力する機会がなかったため、次のことを行いました。

  • すべての選択オプションとパラメーターから OBLIGATORY オプションを削除します
  • F4、ヘルプ、F1 ヘルプ、または選択オプションの横にあるボタンが押されていない場合は、必須入力のチェックを自分で処理します。

コード:

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.
于 2012-07-27T10:09:34.750 に答える
-2

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.が必要です。

于 2012-07-30T12:45:34.870 に答える