RPG — что здесь =?

#ibm-midrange #rpgle

#ibm-среднечастотный #rpgle

Вопрос:

Можете ли вы объяснить, что = означает это утверждение?

 Eval      AssGr2Pun  = FinQty#        
  

Вот остальная часть кода для контекста:

  Exsr      FinItmTot                 
 Eval      AssGr2Pun  = FinQty#      
 If        OrderAdd = 'N'            
 Eval      Gr2TPass  = 1             
 Eval      OrderAdd = 'Y'            
 Endif                               
 Eval      AssGr2Pst  = 1            
 When      OhReqd = Today            
 Exsr      FinItmTot                 
 Eval      AssGr2Tun  = FinQty#      
 If        OrderAdd = 'N'            
 Eval      Gr2TTday  = 1             
 Eval      OrderAdd = 'Y'            
 Endif                               
 Eval      AssGr2Tod  = 1            
 When      OhReqd = Tomorrow         
 Exsr      FinItmTot               
  

Комментарии:

1. если это похоже на большинство других языков, которые используют = , то x = 1 это эквивалент x = x 1

2. Это означает добавлять и назначать за одну операцию. X = 4 то же X = X 4 самое, что и .

3. Хорошо, спасибо, теперь я это понимаю.

4. = похоже, его нет ни в одной из ссылок на язык RPG.

5. Для получения текущей справочной информации об IBM i, пожалуйста, обратитесь к Центру знаний IBM i , как показано в правильном ответе Джеймсы.

Ответ №1:

Это оператор присваивания.

Где <цель> <оператор присваивания> <выражение>:

  • = Выражение присваивается цели
  • = Выражение добавляется к цели
  • -= Выражение вычитается из целевого значения
  • *= Цель умножается на выражение
  • /= Цель делится на выражение
  • **= Цели присваивается цель, возведенная в степень выражения

Ответ №2:

Этот оператор также полезен для переменных, изменяющих символ.

D wVar S 32740a Меняется

/Бесплатно

wVar=’Мое имя’;
wVar =’есть’;
wVar =’Чарли’;

* INLR = * Вкл;
/ Без конца

Конечно, это всего лишь пример, демонстрирующий эту возможность.