您可以通过使用 OMIT 而不是 INCLUDE 来简化人类的理解,以摆脱负面条件。
OPTION COPY,VLSCMP
OMIT COND=(653,5,CH,EQ,C' ',
OR,
688,2,CH,EQ,C '1 ',
OR,
688,2,CH,EQ,C '2 ')
可以使用字段类型 SS 来收缩位置 688 上的测试,但如果您的数据可疑(仅当您确定可能存在哪些值时才使用 SS),我会对此保持警惕。
在我看来,可以通过使用 SORT 符号来简化它,以避免重复和随之而来的错误。
由于您的记录很短,可能会妨碍您(导致步骤失败),因此我包含了 OPTION VLSCMP。这将用二进制零填充 INCLUDE/OMIT 上不包含在记录中的所有字段(因为记录很短)。因此,所有在 653,5 处空间的记录都将被删除,所有在 688,2 处不是 C'1' 或 C'2' 的记录都将被删除。将包括所有短记录,因为将不满足删除标准(字段将是二进制零,以便在 INCLUDE/OMIT 上进行比较)。将省略在 653,5 处包含空格的短记录。如果这不是您想要的,可以通过扩展条件来处理。
如果您需要一个可以轻松完成的格式化计数,但如果您只是进行调查,则很容易出现 sysout 中的默认计数为您提供所需内容的情况。