RE: Help with nested data structures/arrays
<dfreinkel-cbKQUZO/W6aaLr2CDSiKrwC/[email protected]>
| Newsgroups | gmane.comp.lang.as400.rpg |
|---|---|
| Message-ID | <[email protected]> |
Thank you all, Solved the problems. At this site, I needed to use the directive CVTOPT(*NODATETIME). That solved all the strange issues. Thanks Darryl Freinkel A4G Telephone: 770.321.8562 -----Original Message----- From: RPG400-L <rpg400-l-bounces-+hD5IHI5Xscn3HwCXmMcX9BPR1lH4CV8@public.gmane.org> On Behalf Of Jean-Marc DUVAL via RPG400-L Sent: Monday, September 1, 2025 12:32 PM To: RPG programming on IBM i <[email protected]> Cc: Jean-Marc DUVAL <[email protected]> Subject: RE: Help with nested data structures/arrays Hi Darryl, You no longer have to use templates. You can write lower-level DSs directly into the original DS, which is more readable. dcl-ds dsOBK368 qualified; CMSnumber varchar(6) ; // obcsq100.kcms# EnteredBy varchar(10); // obcsq100.kenusr Currency varchar(3); // mscmp100.ccrcd // Use USD if blank dcl-ds dsErrorUsers dim(5) ; User varchar(10); // obcsq100.ke1usr // obcsq100.ke2usr // obcsq100.ke3usr // obcsq100.ke4usr // obcsq100.ke5usr end-ds; SalesmanNumber varchar(3); // obcsq100.ksalno SalesManName varchar(25); // sasmp100.smnam dcl-ds dsCMSLines dim(100) ; LineNumber varchar(3); // obcsq200.kline Product varchar(15); // obcsq200.kprdn ReasonCode varchar(3); // obcsq200.klrcd ReturnQuantity varchar(6); // obcsq200.klnqty (5,0) InvoicePrice varchar(15); // obcsq200.kinvpr (13,3) RequestedPrice varchar(15); // obcsq200.kreqpr (13,3) ListPrice varchar(15); // obcsq200.kprice (13,3) CMSAmount varchar(15); // List Price * Return Qty ApprovalType char(1); // obcsq100.kcmsty NextUser varchar(10); // obcsq100.knxusr NextApprover varchar(10); // obcsq100.knxapv EditAllowed char(1); // Default Y end-ds; end-ds; The good syntax is dsOBK368.dsCMSLines(wCount).LineNumber = %char(dsOBCSQ200_a.KLINE) ; -----Message d'origine----- De : RPG400-L <rpg400-l-bounces-+hD5IHI5Xscn3HwCXmMcX9BPR1lH4CV8@public.gmane.org> De la part de dfreinkel-cbKQUZO/W6aaLr2CDSiKrwC/[email protected] Envoyé : lundi 1 septembre 2025 18:05 À : 'RPG programming on IBM i' <[email protected]> Objet : Help with nested data structures/arrays ATTENTION : Ce message provient d'une source EXTERNE. Veuillez n'ouvrir les liens ou pièces jointes que si vous êtes sûr de l'expéditeur. This is something I have not done before, working with nested data structures. Here is an abbreviated definition of the data structure. dcl-ds dsOBK368 qualified; CMSnumber varchar(6) ; // obcsq100.kcms# EnteredBy varchar(10); // obcsq100.kenusr Currency varchar(3); // mscmp100.ccrcd // Use USD if blank dcl-ds dsErrorUsers likeds(dsErrorUsers_t) dim(5) ; SalesmanNumber varchar(3); // obcsq100.ksalno SalesManName varchar(25); // sasmp100.smnam dcl-ds dsCMSLines likeds(dsCMSLines_t) dim(100) ; end-ds; dcl-ds dsErrorUsers_t qualified Template; User varchar(10); // obcsq100.ke1usr // obcsq100.ke2usr // obcsq100.ke3usr // obcsq100.ke4usr // obcsq100.ke5usr end-ds; dcl-ds dsCMSLines_t qualified Template; LineNumber varchar(3); // obcsq200.kline Product varchar(15); // obcsq200.kprdn ReasonCode varchar(3); // obcsq200.klrcd ReturnQuantity varchar(6); // obcsq200.klnqty (5,0) InvoicePrice varchar(15); // obcsq200.kinvpr (13,3) RequestedPrice varchar(15); // obcsq200.kreqpr (13,3) ListPrice varchar(15); // obcsq200.kprice (13,3) CMSAmount varchar(15); // List Price * Return Qty ApprovalType char(1); // obcsq100.kcmsty NextUser varchar(10); // obcsq100.knxusr NextApprover varchar(10); // obcsq100.knxapv EditAllowed char(1); // Default Y end-ds; Snippet of RPG dsOBK368.dsCMSLines[wCount].LineNumber = %char(dsOBCSQ200_a.KLINE) ; dsCMSLines[wCount].Product = dsOBCSQ200_a.KPRDNO ; dsOBK368.dsCMSLines.ReasonCode = dsOBCSQ200_a.KLRCD ; Question: 1. How do I increment the element number ? The above does not get past the compiler. I have tried it the other way too. dsCMSLines.Product[wCount] = dsOBCSQ200_a.KPRDNO ; 2. Compiler complains about the first lines saying the field types are not the same. However, I am converting the packed to character using %CHAR. This is an SQLRPGLE program on v7.4. Thank you. Darryl Freinkel A4G Telephone: 770.321.8562 -- This is the RPG programming on IBM i (RPG400-L) mailing list To post a message email: [email protected]<mailto:[email protected]> To subscribe, unsubscribe, or change list options, visit: https://urldefense.com/v3/__https://lists.midrange.com/mailman/listinfo/rpg4 00-l__;!!J76aczzK!zkwXR2khoZpyaFUYQDdK7TZdzsvpcZx5ovVYn6GPQ4NSQ6e_7M5-fQVdos abOh-8fDDtAEGdrMA-t7Q9AViNhg1JaRiyC2yS$ or email: RPG400-L-request-+hD5IHI5Xscn3HwCXmMcX9BPR1lH4CV8@public.gmane.org<mailto:[email protected] om> Before posting, please take a moment to review the archives at https://urldefense.com/v3/__https://archive.midrange.com/rpg400-l__;!!J76acz zK!zkwXR2khoZpyaFUYQDdK7TZdzsvpcZx5ovVYn6GPQ4NSQ6e_7M5-fQVdosabOh-8fDDtAEGdr MA-t7Q9AViNhg1JaaLOy7nG$ . Please contact support-FMtJrHiV//lnDLsaKlm4mFaTQe2KTcn/@public.gmane.org<mailto:support-FMtJrHiV//lnDLsaKlm4mFaTQe2KTcn/@public.gmane.org> for any subscription related questions. -- This is the RPG programming on IBM i (RPG400-L) mailing list To post a message email: [email protected] To subscribe, unsubscribe, or change list options, visit: https://lists.midrange.com/mailman/listinfo/rpg400-l or email: RPG400-L-request-+hD5IHI5Xscn3HwCXmMcX9BPR1lH4CV8@public.gmane.org Before posting, please take a moment to review the archives at https://archive.midrange.com/rpg400-l. Please contact support-FMtJrHiV//lnDLsaKlm4mFaTQe2KTcn/@public.gmane.org for any subscription related questions. -- This is the RPG programming on IBM i (RPG400-L) mailing list To post a message email: [email protected] To subscribe, unsubscribe, or change list options, visit: https://lists.midrange.com/mailman/listinfo/rpg400-l or email: RPG400-L-request-+hD5IHI5Xscn3HwCXmMcX9BPR1lH4CV8@public.gmane.org Before posting, please take a moment to review the archives at https://archive.midrange.com/rpg400-l. Please contact support-FMtJrHiV//lnDLsaKlm4mFaTQe2KTcn/@public.gmane.org for any subscription related questions.