DCL-DS MainDS qualified;
SubField packed(7:0);
Dcl-DS DetailDS dim(100);
detail_1 char(1);
Dcl-DS DetailsofDetails dim(100);
innerField1 packed(10:0);
InnerField2 char(5);
End-Ds;
End-ds;
End-Ds;
I need to read the DS
for count = 1 to %elem(MainDS.DetailDS)
for innercount = 1 to %elem(MainDS.DetailDS(count).DetailsofDetails)
----
//inside logic
endFor;
---
endFor;
我在这里错过了什么?
%Elem告诉数组可以保存的元素数量,而不是您已加载的元素数量。实际上,数组中有100个元素,只有大多数元素在定义时都包含内存中的任何内容。当您“加载”一个元素时,您实际上只是在更改其中的值。内存是静态的。
为了做自己想做的事情,您要么需要初始化数组,因此您将识别一个空元素,或者您需要跟踪加载到其中的元素的数量。您可以使用外部阵列中的计数器来做到这一点。如果您并不总是想循环遍历所有100个元素,则还必须跟踪加载到外部阵列中的元素数量。独立变量可用于执行此操作。