Abap 在偏移量中使用变量,在表表达式组件中使用长度?

Abap 在偏移量中使用变量,在表表达式组件中使用长度?,abap,internal-tables,Abap,Internal Tables,我想看看是否有办法做到以下几点 IF line_exists( company_accounts2[ saknr+0(2) = wa_company_accounts-saknr+0(wa_account_levels-num_of_digits) ] ). ENDIF. 但是saknr+0(2)中的数字2有一个参数,特别是在等式的另一边(wa_account_levels-num_of_digits)。有没有别的办法?因为如果我用wa_account_levels-num_of_dig

我想看看是否有办法做到以下几点

IF line_exists( company_accounts2[ saknr+0(2) = wa_company_accounts-saknr+0(wa_account_levels-num_of_digits) ] ).

  ENDIF.
但是saknr+0(2)中的数字2有一个参数,特别是在等式的另一边(wa_account_levels-num_of_digits)。有没有别的办法?因为如果我用wa_account_levels-num_of_digits替换2,我会得到错误“长度规格”wa_account_levels-num_of_digits不是数字。”
提前谢谢

注:什么不起作用,这是我在下面问的问题,上面的代码是以下代码:

IF line_exists( tab[ matnr+0(ls_mara-num_of_digits) = ls_mara-matnr+0(ls_mara-num_of_digits) ] ).

此代码不起作用。

它工作得很好,因为您想要实现您的wa\u帐户\u levels-num\u数字应该具有原始类型iINT1INT2INT4INT8

这是工作的马拉样品

SELECT * UP TO 5 ROWS
FROM mara
INTO TABLE @DATA(tab).

READ TABLE tab INTO DATA(ls_mara) INDEX 1.

IF line_exists( tab[ matnr+0(2) = ls_mara-matnr+0(ls_mara-stfak) ] ).

ENDIF.
更新:用于读取访问的表组件的动态规范:

如果组件的数据类型类似于字符且平坦,则可以在组件名称后附加偏移量/长度+off(len)(如在子字符串访问中)以访问组件的子区域只能为off和len指定直接指定的数字或常数


将等式的左侧传递为:


我无法用计算机再现这个问题。也许
WA\u ACCOUNT\u LEVELS-NUM\u OF \u DIGITS
确实不是数字?它的具体类型是什么?我知道这个代码是有效的。但我想参数化等式的左侧。不可能,请参阅更新
  DATA(lv_text) = |saknr+({ wa_account_levels-num_of_digits })|.

  IF line_exists( company_accounts2[ (lv_text) = wa_company_accounts-saknr+0(wa_account_levels-num_of_digits) ] ).
    CONTINUE.
  ELSE.
    "make the APPEND
  ENDIF.