Class 类中的逻辑选择选项
通过Class 类中的逻辑选择选项,class,if-statement,conditional,selection,abap,Class,If Statement,Conditional,Selection,Abap,通过SELECT-OPTIONS语句,我在类方法中构建复杂的逻辑条件时遇到了一个问题: IF col IN seltab. ...logic.... ENDIF. 我收到错误不允许使用本地选择选项… 我根据ABAPDOCU中的代码进行编码。下面的代码也没有意义: DATA: codes TYPE RANGE OF tcode. codes-sign = 'I'. codes-option = 'EQ'. codes-low = 'VL32N'. apppend codes. 我得到的错误
SELECT-OPTIONS
语句,我在类方法中构建复杂的逻辑条件时遇到了一个问题:
IF col IN seltab.
...logic....
ENDIF.
我收到错误不允许使用本地选择选项…
我根据ABAPDOCU中的代码进行编码。下面的代码也没有意义:
DATA: codes TYPE RANGE OF tcode.
codes-sign = 'I'.
codes-option = 'EQ'.
codes-low = 'VL32N'.
apppend codes.
我得到的错误是,代码是一个没有标题行的表,因此没有名为sign的组件
可以在类中使用逻辑选择表吗?如果没有,还有什么选择?是的,这是可能的,系统会准确地说明错误所在。您需要声明:
DATA: lt_range_codes TYPE RANGE OF tcode, " this is an internal table WITHOUT a header line
ls_range_codes LIKE LINE OF lt_range_codes. " this is a corresponding structure
ls_range_codes-sign = 'I'.
ls_range_codes-option = 'EQ'.
ls_range_codes-low = 'VL32N'.
APPEND ls_range_codes TO lt_range_codes.
请记住,在ABAP对象类中不允许使用带有标题行的表,因此您始终需要一个额外的结构。当然,字段符号和
将初始行附加到。。。分配
也可以。是的,这是可能的,系统会准确地说明错误所在。您需要声明:
DATA: lt_range_codes TYPE RANGE OF tcode, " this is an internal table WITHOUT a header line
ls_range_codes LIKE LINE OF lt_range_codes. " this is a corresponding structure
ls_range_codes-sign = 'I'.
ls_range_codes-option = 'EQ'.
ls_range_codes-low = 'VL32N'.
APPEND ls_range_codes TO lt_range_codes.
请记住,在ABAP对象类中不允许使用带有标题行的表,因此您始终需要一个额外的结构。当然,字段符号和
将初始行附加到。。。分配
也可以。请记住,您还可以在事务SE11中创建范围表。如果您在多个类中使用相同的范围表,我建议您这样做。使用SE11创建一个表数据类型,然后转到EDIT->DEFINE AS RANGE table type(编辑->定义为范围表类型),其余内容都是不言自明的。输入要为其创建范围表的元素类型,然后您可以在所有类中使用此类型。请记住,您也可以在事务SE11中创建范围表。如果您在多个类中使用相同的范围表,我建议您这样做。使用SE11创建一个表数据类型,然后转到EDIT->DEFINE AS RANGE table type(编辑->定义为范围表类型),其余内容都是不言自明的。输入要为其创建范围表的元素类型,然后可以在所有类中使用此类型