× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



Hi Scott,

True. Good point about LIKEDS. Thanks.

-mark

On 6/1/2022 11:20 PM, Scott Klement wrote:
I didn't reply because I figured you knew how to write a 3-line loop and were looking for a shortcut.

for x = 1 to %elem(ACD);
ACD(x).Codes = Codes(x);
endfor;

Or if you must code another data structure... at least use LIKEDS instead of coding it twice.


On 6/1/22 9:22 PM, mlazarus wrote:
Hi Mark,

Thanks for the offer, but since none of the list gurus jumped on it quick enough, I decided to take a slightly different approach.

D ACD ds Dim( 25 ) Qualified
D CodesSeq Like( SA.CODESSEQ ) Inz
D Codes Like( SA.CODES )

I removed this code:

D Codes s Like( SA.CODES )
D Dim( 25 )

I added this code:

D SAV ds Dim( 25 ) Qualified
D CodesSeq Like( SA.CODESSEQ ) Inz
D Codes Like( SA.CODES )

Eval-Corr ACD = SAV ;

So instead of loading the initial data into Codes I loaded it into SAV.Codes. Minor change in the program and now I am easily able to do what I want. It seems to me like a major oversight in the implementation of qualified DS arrays.

-mark

On 6/1/2022 6:30 PM, Barbara Morris wrote:
On 2022-05-31 4:47 p.m., mlazarus wrote:
For some reason the syntax to assign a regular array to a qualified array is eluding me.

D ACD ds Dim( 25 ) Qualified
D CodesSeq Like( SA.CODESSEQ ) Inz
D Codes Like( SA.CODES )

D Codes s Like( SA.CODES )
D Dim( 25 )

I would like to take Codes array and assign it ACD.Codes.

The compiler doesn't like any of these:
ACD.Codes = Codes ;
ACD(*).Codes = Codes ;
ACD(*).Codes(*) = Codes ;
ACD.Codes(*) = Codes ;

Unfortunately, RPG doesn't have any syntax for that.

RPG does support treating a DS-array-subfield as an array in a few places:
SORTA ACD(*).codes;
p = %lookup('x' : ACD(*).codes);

But the DS(*).SUBF syntax is not supported in general where an array is expected.


As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.