Loops 循环AT语句中的动态WHERE子句

Loops 循环AT语句中的动态WHERE子句,loops,dynamic,where-clause,abap,Loops,Dynamic,Where Clause,Abap,我必须根据where条件在内部表上执行循环,但根据程序的模式,where条件的字段必须在运行时修改 我知道在SELECT语句中这是可能的,但是当我在循环中这样做时,我有一个错误 这是我的代码: CASE gv_cdvue. WHEN 'L'. lv_condi = 'dcmdr GE gv_daybf OR dcmdr LE gv_daybf '. WHEN 'C'. lv_condi = 'dcldr GE gv_daybf OR dcldr LE gv_d

我必须根据where条件在内部表上执行循环,但根据程序的模式,where条件的字段必须在运行时修改

我知道在SELECT语句中这是可能的,但是当我在循环中这样做时,我有一个错误

这是我的代码:

CASE gv_cdvue.
  WHEN 'L'.
    lv_condi = 'dcmdr GE gv_daybf   OR dcmdr LE gv_daybf   '.
  WHEN 'C'.
    lv_condi = 'dcldr GE gv_daybf   OR dcldr LE gv_daybf   '.
  WHEN 'E'.
  WHEN OTHERS.


ENDCASE.


  LOOP AT gt_plcad INTO ls_plcad  WHERE (lv_condi).
    ....
  ENDLOOP.
我的错误是:

Statement concluding with "...(LV_CONDI)" ended unexpectedly.

由于您的SAP不兼容,因此出现错误。循环中的动态条件为ADD7.0EHP2版本。您应该高于7.0 Ehp2,然后只有您可以编写动态where条件


我希望这个答案能对您有所帮助。

IIRC动态循环…其中语句是ABAP的一个新添加,仅在NetWeaver 7.31+中才可能使用。你现在是什么版本的?据我所知,这应该是可能的。你到底有什么样的错误?这是编译错误还是运行时错误。你能发布它的详细信息吗?我在我的错误中写道@Jagger,Philip我怎么能知道我的放松?@shmoolki请按照写的检查你的系统版本。我有:Noyau SAP:720_REL