Rocket Universe字典将VM属性值传递给子例程

时间:2018-11-02 05:03:49

标签: dictionary universe rocket

好吧,这可能会有点复杂。

在属性4中具有一个包含多值的文件

我想编写另一个在多值列表中循环的字典项目,调用一个子例程并返回属性4中每个项目的计算值。

类似

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

新属性

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

结果

<4> AMT 5.00 b 15.00 c 13.50 d 3.25

不太清楚如何从RECORD <4>中传递值,对@CNT系统变量有一个模糊的概念,但这不起作用,这可能意味着它来自SB +或其他4GL中的一个。

1 个答案:

答案 0 :(得分:0)

您可能会考虑这个问题。

您应该能够引用它而无需执行“;”和@ 1事物(我不熟悉该约定)。尽管我传统上使用的是实际的字典名称,而不是@RECORD,但使用I-Descriptor应该可以解决问题。

 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

祝你好运。