内联声明的变量未被识别

The inline-declared variable is not recognized

我遇到了系统无法识别我声明的局部变量的问题。代码如下:

DATA(lv_dmbtr) = ZSD_LGS-DMBTR.

  IF ( lv_dmbtr MOD 10000000 ) LE 9.
    lv_dmbtr / 10000000 = lv_tenmillions.      //Error line
    lv_tenmillions_check = lv_tenmillions MOD 1.

    IF lv_tenmillions_check > 0.
     "Convert
   ENDIF.

   IF lv_tenmillions_check < 0.
     "ZERO
   ENDIF.
  ENDIF.

该程序在我在程序中输入的行中给我一个错误,其中显示“没有 LV_DMBTR 语句。请检查拼写。

有谁知道问题出在哪里吗?

提前谢谢大家!

lv_dmbtr / 10000000 = lv_tenmillions.

确实在语法上不正确。我和 ABAP 解释器一样对该行感到困惑。所以我不确定你到底想用它完成什么。但我猜想这似乎是对某个变量的某种计算分配。在一个赋值中,你赋值的变量总是=符号的左边,而创建值的表达式在右边= 符号。

所以在等号的 left-hand 一侧有一个数学公式是没有意义的。

要么你想说“lv_tenmillion 应 lv_dmbtr 除以 10000000”。在这种情况下,正确的行是

lv_tenmillions = lv_dmbtr / 10000000.

或者您试图说“lv_dmbtr 的百万分之一应等于 lv_tenmillion”,这等同于说“lv_dmbtr 应等于 lv_tenmillion 乘以 10000000" 或

lv_dmbtr = lv_tenmillions * 10000000.

试试这个:

DATA(lv_dmbtr) = ZSD_LGS-DMBTR.
lv_dmbtr  = ZSD_LGS-DMBTR MOD 10000000
  IF lv_dmbtr MOD 10000000 LE 9.
    lv_dmbtr / 10000000 = lv_tenmillions.      //Error line
    lv_tenmillions_check = lv_tenmillions MOD 1.

    IF lv_tenmillions_check > 0.
     "Convert
   ENDIF.

   IF lv_tenmillions_check < 0.
     "ZERO
   ENDIF.
  ENDIF.