Массив For-Loop PeopleCode

Можно ли зациклить два оператора массива? Я пытаюсь отобразить его, чтобы увидеть, будут ли я получать правильные значения, но оказалось, что мой код работает только для одного оператора:

Вот код (не работает):

&DelFrom = CreateArray();
&DelTo = CreateArray();


For &del_from = 1 To &DelFrom.Len
And &del_to = 1 To &DelTo.Len

Warning MsgGet (0, 0, &DelFrom [&del_from] "-" &DelTo [&del_to]);

End-For;

Вот еще один (работает, но, например, только для del_from):

For &del_from = 1 To &DelFrom.Len

Warning MsgGet (0, 0, &DelFrom [&del_from]);

End-For;

person capacitive    schedule 18.12.2020    source источник
comment
Никогда не использовал PeopleSoft или PeopleCode — на самом деле, только что узнал об этом из вашего поста. В современных императивных языках обычно можно вкладывать один цикл for в другой. Вы думали об этом?   -  person Mark Fernandes    schedule 18.12.2020
comment
Да, однако в этом проекте нам просто нужно использовать только код людей.   -  person capacitive    schedule 20.12.2020


Ответы (1)


Вы не можете использовать два разных итератора в одном и том же цикле for, но вы можете вкладывать циклы.

For &del_from = 1 To &DelFrom.Len
   For &del_to = 1 To &DelTo.Len
      Warning MsgGet (0, 0, &DelFrom [&del_from] "-" &DelTo [&del_to]);
   End-For;
End-For; 

Это даст вам каждую перестановку значений из &DelFrom и &DelTo в вашем теле цикла. Это то, чего вы пытаетесь достичь?

person Ben Rubin    schedule 18.12.2020
comment
Попробовал этот, и он работает! Благодарю вас! - person capacitive; 20.12.2020