我需要在选择屏幕上输入一位正数。
到目前为止我尝试过的事情:
这对可见长度没有影响:
parameters pnum TYPE i VISIBLE LENGTH 1.
使用类型 p LENGTH 1 有效:
parameters pp TYPE p LENGTH 1 VISIBLE LENGTH 1.
但是,选择屏幕上的输入字段存在符号数字,如果输入两位数字,则会触发错误
00089: Entry too long (enter in the format ~V)
当然,我可以始终使用
char1
类型,但随后我必须实现逻辑来验证输入是数字。
是否有一种我不知道的简单方法来实现这一点?
第一种可能是使用 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
中添加必要的验证。