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

Rocket Universe Dictionary passing VM attribute value to subroutine

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

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

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

类似

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

新属性

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

结果

<4> AMT 一个 5.00 b 15.00 约 13.50 d 3.25

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

你可能想多了。

您应该能够在不执行“;”的情况下引用它。和@1件事(我不熟悉那个约定)。使用 I-Descriptor 这应该可以解决问题,尽管我传统上使用实际的字典名称而不是 @RECORD 东西。

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

如果您的子例程已编译、编目并且returns您想要的值具有与子例程的第一个参数中的@RECORD<4> 相同的value/subvalue结构,这应该可以工作。

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

祝你好运。