as400 dds函数限制精确给定值

as400 dds function to restrict the exact given value

我是 as400 dds 的新手。谁能告诉我获取确切给定值的函数。例如,邮政编码由 6 位数字组成。如果用户没有输入小于 6 的值,则必须显示错误。提前致谢

尝试这样的事情:

A            ZIP            6Y 0I 17  4CHECK( ME MF )

如果这不是您需要的,请编辑您的问题并添加详细信息。

以下两个示例字段定义中的任何一个都可能有助于影响试图表达的任何内容。在任何一种情况下,屏幕上的值都可以 entered\appear 少于六位数,但程序的结果将始终是六位数 [右对齐,向左填充零]:

     A            ZIPD           6D00B  9  9CHECK( ME MF    FE )
     A            ZIPDRZ         6D00B 13  9CHECK( ME    RZ FE )

尽管右调整零填充检查规范 (RZ) 是可选的,但该规范确保在使用字段退出时从零填充中可以看到数字的重新格式化 [但当然字段退出检查-specification (FE) 也是可选的,但鼓励使用它会使 right\zero 的效果更加明显]。 FWiW Must-Fill CHECK-specification (MF) 似乎没有效果 [for the numeric input field; none 这在我的测试中很明显。

您还需要 DSPATR(MDT) 关键字。来自 CHECK 关键字的 ME 选项的 DDS 手册:

此代码指定必须在字段中键入至少 1 个数据字符(空格有效)。 请注意,当显示屏上当前没有字段被更改时,显示站不会 执行强制输入。要强制强制输入,请为至少一个字段指定 DSPATR(MDT) 在显示屏上的每条记录中。对于记录中的所有其他字段,将执行 CHECK(ME)。 但是,由于设备无法确定用户是否已将数据键入到具有两者的字段中 DSPATR(MDT) 和 CHECK(ME),您还应该指定 DSPATR(ND),以便该字段不 显示。