如何在选择屏幕上定义具有固定位数的整数(或类似)类型的参数?

问题描述 投票:0回答:1

我需要在选择屏幕上输入一位正数。

到目前为止我尝试过的事情:

  1. 这对可见长度没有影响:

    parameters pnum TYPE i VISIBLE LENGTH 1.

  2. 使用类型 p LENGTH 1 有效:

    parameters pp TYPE p LENGTH 1 VISIBLE LENGTH 1.

    但是,选择屏幕上的输入字段存在符号数字,如果输入两位数字,则会触发错误

    00089: Entry too long (enter in the format ~V)

当然,我可以始终使用

char1
类型,但随后我必须实现逻辑来验证输入是数字。

是否有一种我不知道的简单方法来实现这一点?

abap
1个回答
0
投票

第一种可能是使用 char1 进行简单的验证:

PARAMETERS: pnum TYPE char1.

AT SELECTION-SCREEN.
  IF pnum IS NOT INITIAL AND NOT pnum CO '0123456789'.
    MESSAGE 'Please enter a single digit number' TYPE 'E'.
  ENDIF.

另一种可能性可能是创建一个具有固定值的域(例如,0-9)并将其分配给参数。这种方法在源代码级别限制用户输入:

创建一个域 - 例如

ZDIGIT
:

数据类型:

NUMC

长度:
1

固定值范围:
0
9

在您的参数中使用此域:

PARAMETERS: pnum TYPE zdigit.

输入字段将强制使用一位数字输入数字。

当然也可以将参数定义为 P / I 类型,然后在

AT SELECTION-SCREEN
中添加必要的验证。

© www.soinside.com 2019 - 2024. All rights reserved.