SAP ABAP 关于CO CA CN等操作符的一点细节

  • Post author:
  • Post category:其他


先给出结论:CO/CA/CN等运算符号左边的变量,其类型会对执行结果有影响。一般要确保左边的变量是STRING类型。

代码:

REPORT zqztest012.

START-OF-SELECTION.

DATA:lv_str TYPE string VALUE ’72’.

DATA:lv_char20 TYPE char20 VALUE ’72’.

DATA:lv_char2(2) TYPE c VALUE ’72’.

IF lv_char2 CO ‘1234567890’.

WRITE:/ ‘“char2” CO “1234567890” is TURE.’.

ELSE.

WRITE:/ ‘“char2” CO “1234567890” is FALSE.’.

ENDIF.

IF lv_char20 CO ‘1234567890’.

WRITE:/ ‘“char20” CO “1234567890” is TURE.’.

ELSE.

WRITE:/ ‘“char20” CO “1234567890” is FALSE.’.

ENDIF.

IF lv_str CO ‘1234567890’.

WRITE:/ ‘“STRING” CO “1234567890” is TURE.’.

ELSE.

WRITE:/ ‘“STRING” CO “1234567890” is FALSE.’.

ENDIF.

执行结果:

此处需要注意的是:lv_str、lv_char20、lv_char2的值同样都是 ’72’,但lv_char20的输出结果却和其他两个变量不一样,考虑是变量类型的原因(可能是定义的长度过长,被系统当作空格来处理了?)。

2020.05.11更新

关键字CS不会出现上文提到的CO/CN/CA的变量数据类型问题。

如 ‘12345’ CS ‘123’ 为真。



版权声明:本文为csucoder_zone原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。