繁体   English   中英

如何在不首先填写所有其他必需参数的情况下为参数选择多个范围?

[英]How to select multiple ranges for a parameter WITHOUT first filling all other required parameters?

图片

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

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

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

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

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

这是我发现的完全重现了强制添加所设置的行为的内容:

1:删除“强制性”添加。

2:在 PBO:

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. 是必要的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM