|
Tim,
Two things. I think having a DS named OUT may be a problem as it is an RPG
op-code.
Also, having a DS with the same name as another DS's subfield may be a problem.
This works for me:
D Qty S 8S 0 Inz
* Quantities for 31 days
D QMon Ds Qualified
D QDay Like(Qty)
D Dim(31)
D Inz
* Quantities for 12 months
D QYer Ds Qualified
D QMonth LikeDs(QMon)
D Dim(12)
D Inz(*LikeDs)
* Quantities for 3 years
D MyHist Ds Qualified
D QYear LikeDs(QYer)
D Dim(3)
D Inz(*LikeDs)
*--------------------------------------------------
// This the test 1
/Free
Qty = MyHist.QYear(1).QMonth(2).QDay(15);
MyHist.QYear(1).QMonth(2).QDay(15) = Qty;
/end-free
ps. QMon and QYer???? come on Tim, is it really so hard to type Year and
Month???
Charles Wilt
iSeries Systems Administrator / Developer
Mitsubishi Electric Automotive America
ph: 513-573-4343
fax: 513-398-1121
> -----Original Message-----
> From: rpg400-l-bounces@xxxxxxxxxxxx
> [mailto:rpg400-l-bounces@xxxxxxxxxxxx]On Behalf Of Tim Kredlo
> Sent: Thursday, February 03, 2005 4:04 PM
> To: RPG400-L@xxxxxxxxxxxx
> Subject: Fully qualified data structures
>
>
> Help!
> I am at V5R2.
> I am trying to build a qualified data structure of nested
> arrays and cannot
> tell if I have the syntax correct.
> In my attempts I built the following test program (TKTEST) and don't
> understand the results I am getting.
> Note that in both cases "Out.QYer(1).QMon(2).QDay(15)" are
> identical (no
> typos).
> The only difference is whether I am assigning a value to, or
> retrieving a
> value from, the data structure.
>
> This is the first time I have tried to nest arrays and may be
> going about it
> 'all wrong'.
> But if I comment the line where I fill
> "Out.QYer(1).QMon(2).QDay(15)" from
> QTY,
> and leave the line where I fill QTY from
> "Out.QYer(1).QMon(2).QDay(15)",
> the program compiles.
>
> D Qty S 8S 0 Inz
> * Quantities for 31 days
>
> D QMon Ds Qualified
> D QDay Like(Qty)
> D Dim(31)
> D Inz
> * Quantities for 12 months
> D QYer Ds Qualified
> D QMon LikeDs(QMon)
> D Dim(12)
> D Inz(*LikeDs)
> * Quantities for 3 years
> D Out Ds Qualified
> D QYer LikeDs(QYer)
> D Dim(3)
> D Inz(*LikeDs)
> *--------------------------------------------------
>
> // This the test 1
> /Free
>
> 003000 Qty = Out.QYer(1).QMon(2).QDay(15);
>
> 003100 Out.QYer(1).QMon(2).QDay(15) = Qty;
>
> ======> a b
>
> *RNF5008 20 a 003100 Factor 1 operand is not valid; defaults to
> blanks.
> *RNF5507 30 b 003100 A semi-colon is not specified at
> the end of a
> free-format
> specification.
>
> /End-Free
>
> Compile errors with line#s:
> *RNF7030 30 003000 The name or indicator QDAY is not defined.
>
> *RNF5064 20 003000 An array index is specified for
> name that is not
> an array.
> *RNF7064 30 003000 The Factor 2 operand QYER of IN or
> OUT is not a
> data area.
> Compile errors at listing end.
> *RNF5008 20 1 Factor 1 operand is not valid; defaults to blanks.
>
> *RNF5064 20 1 An array index is specified for name that is not an
> array.
> *RNF5507 30 1 A semi-colon is not specified at the end
> of a free-format
>
> specification.
>
> *RNF7030 30 1 The name or indicator is not defined.
>
> *RNF7064 30 1 The Factor 2 operand of IN or OUT is not a
> data area.
>
> *--------------------------------------------------
>
> // This the test 2
> /Free
> Qty = Out.QYer(1).QMon(2).QDay(15);
> // Out.QYer(1).QMon(2).QDay(15) = Qty;
>
> /End-Free
>
> Program TKTEST placed in library EXPRDPGM. 00 highest
> severity. Created on
> 02/03/05 at 12:45:47.
>
> Thanks in advance for your help.
>
> Tim Kredlo
> Exterior Wood, Inc
>
>
>
>
> --
> This is the RPG programming on the AS400 / iSeries (RPG400-L)
> mailing list
> To post a message email: RPG400-L@xxxxxxxxxxxx
> To subscribe, unsubscribe, or change list options,
> visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
> or email: RPG400-L-request@xxxxxxxxxxxx
> Before posting, please take a moment to review the archives
> at http://archive.midrange.com/rpg400-l.
>
>
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2025 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.