|
Hi Vern, couldn't you just use dates?
h option(*nodebugio: *srcstmt)
d cnvdt8 s 8s 0 inz(20130817)
d cnvdt6 s 6p 0
d workdate s d
/free
// Convert cnvdt8 to a date
workdate = %Date(cnvdt8);
// Convert the date field to cnvdt6
cnvdt6 = %Dec(workdate: *mdy);
dsply cnvdt6;
// Or in one line
cnvdt6 = %Dec(%Date(cnvdt8): *mdy);
dsply cnvdt6;
*inlr = *on;
/end-free
You may have to alter the date formats to suit you needs.
Rob
On 2013-08-17 11:39 AM, Vernon Hamberg wrote:
I've a zoned 8,0 that is being MOVEd to a packed 6,0. I want to convert
this to free form.
I can think of putting the zoned 8,0 into a data structure with a zoned
6,0 overlaying the last 6 positions, then use an assignment statement.
In the following, I wanted to use CNVDAT instead of CNVDT8. That can
work with fields from a file, didn't work so far, so will use an
assignment of CNVDT8 = CNVDAT for now.
* Allow "MOVE" of 8-digit ot 6-digiy
D DATE8TO6 DS
D CNVDT8 8s 0
D CNVDT6 6S 0 overlay(DATE8TO6 : 3)
Then CNVDT6 should have the value I want - this is 8-digit dates to
6-digit in YMD format.
Is there a better way? I looked at several articles - Bob Cozzi, Jon
Paris, some other forums - none that I saw dealt with the MOVE from a
longer numeric to shorter.
TIA
Vern
As an Amazon Associate we earn from qualifying purchases.
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.