|
On Mon, 2004-05-24 at 16:12, Robert Clay wrote:
> We are at V5R1 so I have to jump through hoops to get things to work.
No hoops needed :-)
> We have MONTHID (A 6) which represents YYYYMM, where YYYY is the year and
> MM is the month number. Sample data would be '200404'.
>
> I need to do some manipulation where this value is the key and I need to know
> the same month of the previous year. So, I came up with this EVAL statement
> (in free format):
>
> PASTMONTH = %char(atoi(%subst(MONTHID:1:4))-1) + %subst(MONTHID:5:2)
YEAR = atoi( %subst( MONTHID : 1 : 4 ) ) - 1;
MONTH = %subst( MONTHID : 5 );
PASTMONTH = %editc( YEAR : 'X' ) + MONTH ;
Or you could move it into a DS:
<psuedo-code>
d MONTH_DS ds
d year 4 0
d month 2 0
/free
MONTH_DS = MONTHID ;
PASTMONTH = %editc( year - 1 : 'X' ) + %editc( month : 'X' );
/end-free
</psuedo-code>
> PASTMONTH is also (A 6).
According to the below error, PASTMONTH cannot be modified. I know you
said it is a field in the file, but could it also be a procedure
parameter defined with CONST by any chance?
If not, then it seems the compiler may be getting confused by the nested
statements,
but I don't think I've seen this before. It could be some kind of intermediate
operation problem.
Joel
http://www.rpgnext.com
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.