我是 APD 中 ABAP 编码的新手。我将如何在 ABAP 代码中编写这样的语句?

if ((ls_source-VHMODEL == 'M1' OR ls_source-VHMODEL == 'M2') AND (ls_source-CREATE_DATE <= '2016-01-01' AND ls_source-CREATE_DATE >= '2014-01-01'))
{
// do stuff
}
else if ((ls_source-VHMODEL == 'H1' OR ls_source-VHMODEL == 'C3') AND (ls_source-CREATE_DATE <= '2015-01-01' AND ls_source-CREATE_DATE >= '2014-02-01'))
{
// do stuff
}

我试过这个:
  if ( ( ls_source-VHMODEL EQ 'M1' OR ls_source-VHMODEL EQ 'M2')  AND
(ls_source-CREATE_DATE > '20120122' AND ls_source-CREATE_DATE < '20120922')).
    MOVE 'Segment 2' TO ls_target-SEGMENT.
  else.
    MOVE 'Other' TO ls_target-SEGMENT.
  endif.

但这给了我错误

最佳答案

试试这个:

if (  ( ls_source-vhmodel eq 'M1' or ls_source-vhmodel eq 'M2' ) and
      ( ls_source-create_date le '20160101' and ls_source-create_date ge '20140101' )
   ).
* Do something
elseif (
          ( ls_source-vhmodel eq 'H1' or ls_source-vhmodel eq 'C3' ) and
          ( ls_source-create_date le '20150101' and ls_source-create_date ge '20140201' )
       ).
*Do something
endif.

请注意括号中它们在代码中的分隔方式。

希望能帮助到你。

关于abap - 带有复杂 IF 语句的 "List elements that take up more than one line are not permitted"错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34863379/

10-11 00:45