Problem solve Get help with specific problems with your technologies, process and projects.

Indicator data structure for display file indicators > 99 elements

To avoid the use of numeric indicators in RPGLE, we created an indicator data structure for display file indicators.

We do not make use of the INDDS keyword that lets you associate a data structure name with the INDARA indicators for a workstation file. Then the length of the indicator data structure would always be 99.

Since the internal lenth of the indicator array is longer than 99 elements and also contains all the other possible indicators (like *INLR, *INKL, ...), we simply can address them using a data structure based on a pointer to the indicator array.

d indicators@���� s�������������� *�� inz(%addr(*in))������ 
d���������������� ds����������������� based(indicators@)��� 
d changeOnControl...��������������������������������������� 
d����������������������� 57���� 57n������������������������ 
d change���������������� 57���� 57n������������������������ 
d sflEnd���������������� 84���� 84n������������������������ 
d sflNxtChg������������� 90���� 90n������������������������ 
d rollDown�������������� 94���� 94n������������������������ 
d rollUp���������������� 95���� 95n������������������������ 
d sflClr���������������� 97���� 97n������������������������ 
d f1Key���������������� 130��� 130n������������������������ 
d f2Key���������������� 131��� 131n������������������������ 
d f3Key���������������� 132��� 132n������������������������ 
d f4Key���������������� 133��� 133n������������������������ 
d f5Key���������������� 134��� 134n������������������������ 
d f6Key���������������� 135��� 135n������������������������ 
d f7Key���������������� 136��� 136n������������������������ 
d f8Key���������������� 137��� 137n������������������������ 
d f9Key���������������� 138��� 138n������������������������ 
d f10Key��������������� 139��� 139n������������������������ 
d f11Key��������������� 140��� 140n������������������������ 
d f12Key��������������� 141��� 141n������������������������ 
d f13Key��������������� 142��� 142n������������������������ 
d f14Key��������������� 143��� 143n 
d f15Key��������������� 144��� 144n��� 
d f16Key��������������� 145��� 145n��� 
d f17Key��������������� 146��� 146n��� 
d f18Key��������������� 147��� 147n��� 
d f19Key��������������� 148��� 148n��� 
d f20Key��������������� 149��� 149n��� 
d f21Key��������������� 150��� 150n��� 
d f22Key��������������� 151��� 151n��� 
d f23Key��������������� 152��� 152n��� 
d f24Key��������������� 153��� 153n

The following legible code will be possible to exit the program:

c������������������ if����������� f3Key�������������������������� 
c������������������ eval����� *INLR� = *ON����������������������� 
c������������������ return 

c������������������ endif 

Dig Deeper on RPG iSeries programming