好吧,这可能会有点复杂。
在属性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中的一个。
答案 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
祝你好运。