6

图片

我希望能够为“销售订单号”提供多个范围选择。

问题是:当我按下标有绿色的按钮时,我收到错误“填写所有必填字段”。

我将我的主要处理块放在 START-OF-SELECTION 事件中。

怎么做才能不发生这种情况?在我看来,我应该能够添加多项选择,而无需先填写所有其他必填字段。

4

2 回答 2

7

将参数/选择选项设置为 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

以下是我发现的完全重现了强制添加所设置的行为:

1:取出“强制”添加。

2:在公益组织:

LOOP AT SCREEN.
  IF screen-name cs 'name-of-your-select-options-or-parameter'.
    screen-required = 2.
    MODIFY SCREEN.
  ENDIF.

3:在 PAI:

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 回答