Словарь Rocket Universe, передающий значение атрибута VM подпрограмме

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

Есть файл с несколькими значениями в атрибуте 4

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

что-то вроде

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

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

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

Результат

‹4> АМТ а 5.00 б 15.00 в 13.50 г 3.25

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


person ScaryMinds    schedule 02.11.2018    source источник


Ответы (1)


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

Вы должны просто иметь возможность ссылаться на него, не делая ";" и @1 вещь (я не знаком с этим соглашением). Использование I-дескриптора должно помочь, хотя я традиционно использовал фактические имена словарей вместо @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

Удачи.

person Van Amburg    schedule 05.11.2018
comment
Спасибо, Ван, совершенно верно, не знаю, почему я зацепился за логику заполнителя. В основном необходимо было получить стоимость модели (ЗАПИСЬ‹4›), которая включала дополнительную стоимость в зависимости от страны, следовательно, вызов подпрограммы. - person ScaryMinds; 06.11.2018