Словарь Rocket Universe, передающий значение атрибута VM в подпрограмму - PullRequest
0 голосов
/ 02 ноября 2018

Хорошо, это может быть немного сложным или нет.

Файл с многозначными значениями в атрибуте 4

Я хочу написать другой элемент словаря, который проходит по многозначному списку, вызывает подпрограмму и возвращает вычисленные значения для каждого элемента в атрибуте 4.

что-то вроде

<4> a] b] c] d] e

Новый атрибут

@ RECORD <4>; SUBR ("SUB.CALC.AMT", @ 1)

Результат

<4> AMT 5,00 б 15.00 с 13,50 д 3,25

Не совсем уверен, как передать значения из RECORD <4>, имел смутное представление о системной переменной @CNT, но это не работает, что может означать, что это было из SB + или одного из других 4GL.

1 Ответ

0 голосов
/ 05 ноября 2018

Возможно, вы слишком обдумали это.

Вы должны просто иметь возможность ссылаться на него, не выполняя ";" и @ 1 (я не знаком с этим соглашением). Используя I-Descriptor, это должно сработать, хотя я традиционно использовал реальные имена словарей вместо @RECORD.

 SUBR("SUB.CALC.AMT", @RECORD<4>) 

Это должно работать, если ваша подпрограмма скомпилирована, каталогизирована и возвращает желаемое значение с той же структурой значения / подзначения, что и @RECORD <4> в первом параметре подпрограммы.

SUBROUTINE SUB.CALC.AMT(RETURN.VALUE,JUICY.BITS)
JBC = DCOUNT(JUICY.BITS<1>,@VM)
FOR X=1 TO JBC
   RETURN.VALUE<1,X> = JUICY.BITS<1,X>:" or something else"
NEXT X
RETURN
END

Удачи.

...