| IBM MAINFRAME HELP & SUPPORT FORUMS Technical Forums for IBM Mainframe Applications like COBOL, JCL, CICS, DB2, FileAid, DFSORT, Endevor, Xpediter, CoolGen, CA-7&11, AbendAid, IMS, IDMS, PL/I, MqSeries, SyncSort, Assembler, ChangeMan, Easytrieve, InterTest, REXX, CLIST etc...
|
| View previous topic :: View next topic |
| Author |
Message |
shrivatsa
Joined: 17 Mar 2006
Posts: 159
Location: Pune
|
| Posted: Mon Jun 30, 2008 3:38 pm Post subject: DFSORT Help in Formatting |
|
|
Here is my input
Code:
----+----1----+----2----+----3----+----4----+----5----+----6----+----7--
PATRICIA ANN JONES SWB12008-02-18 00.00AR AR
JUDY GRIMMETT SWB12008-02-19 00.00AR AR
CHARLES EANES SWB12008-02-18 41 AU TX
ASHLEY CUNNIGHAM SWB12008-02-18 38.75DA TX
SCHLAINE FISHER SWB12008-02-18 38.75DA TX
LRECL =350
RECFM=FB
At position 45 if its 00.00 then its ahs to prefix by 0000000.00
If any other number like 41 then 0000041.00
so my output should be
Code:
----+----1----+----2----+----3----+----4----+----5----+----6----+----7--
PATRICIA ANN JONES SWB12008-02-18 0000000.00AR AR
JUDY GRIMMETT SWB12008-02-19 0000000.00AR AR
CHARLES EANES SWB12008-02-18 0000041.00AU TX
ASHLEY CUNNIGHAM SWB12008-02-18 0000038.75DA TX
SCHLAINE FISHER SWB12008-02-18 0000038.75DA TX |
|
| Back to top |
|
gcicchet
Joined: 28 Jul 2006
Posts: 663
|
| Posted: Mon Jun 30, 2008 5:06 pm Post subject: |
|
|
Hi,
here is an example using LRECL=80 Code: //S1 EXEC PGM=ICEMAN
//SYSOUT DD SYSOUT=*
//SORTIN DD *
PATRICIA ANN JONES SWB12008-02-18 00.00AR AR
JUDY GRIMMETT SWB12008-02-19 00.00AR AR
CHARLES EANES SWB12008-02-18 41 AU TX
ASHLEY CUNNIGHAM SWB12008-02-18 38.75DA TX
SCHLAINE FISHER SWB12008-02-18 38.75DA TX
//SORTOUT DD SYSOUT=*
//SYSIN DD *
OPTION COPY
INREC IFTHEN=(WHEN=(47,3,CH,EQ,C' '),OVERLAY=(47:C'.00'))
OUTREC OVERLAY=(55:50,5,45:45,5,UFF,ADD,+00000000,
EDIT=(TTTTTTT.TT))
/*
Gerry |
|
| Back to top |
|
shrivatsa
Joined: 17 Mar 2006
Posts: 159
Location: Pune
|
| Posted: Mon Jun 30, 2008 7:23 pm Post subject: Reply to: DFSORT Help in Formatting |
|
|
There is a small change in my input
Code: ----+----1----+----2----+----3----+----4----+----5----+----6----+----7--
PATRICIA ANN JONES SWB12008-02-18 AR AR
JUDY GRIMMETT SWB12008-02-19 AR AR
CHARLES EANES SWB12008-02-18 41 AU TX
ASHLEY CUNNIGHAM SWB12008-02-18 38.75DA TX
SCHLAINE FISHER SWB12008-02-18 38.75DA TX
And my output should be
Code:
----+----1----+----2----+----3----+----4----+----5----+----6----+----7--
PATRICIA ANN JONES SWB12008-02-18 0000000.00AR AR
JUDY GRIMMETT SWB12008-02-19 0000000.00AR AR
CHARLES EANES SWB12008-02-18 0000041.00AU TX
ASHLEY CUNNIGHAM SWB12008-02-18 0000038.75DA TX
SCHLAINE FISHER SWB12008-02-18 0000038.75DA TX |
|
| Back to top |
|
Skolusu
Joined: 07 Dec 2007
Posts: 357
Location: San Jose
|
| Posted: Mon Jun 30, 2008 11:43 pm Post subject: |
|
|
shrivatsa,
The following DFSORT JCl will give you the desired results. The Lrecl is increased by 4 bytes.
Code:
//STEP0100 EXEC PGM=ICEMAN
//SYSOUT DD SYSOUT=*
//SORTIN DD *
PATRICIA ANN JONES SWB12008-02-18 AR AR
JUDY GRIMMETT SWB12008-02-19 AR AR
CHARLES EANES SWB12008-02-18 41 AU TX
ASHLEY CUNNIGHAM SWB12008-02-18 38.75DA TX
SCHLAINE FISHER SWB12008-02-18 38.75DA TX
//SORTOUT DD SYSOUT=*
//SYSIN DD *
SORT FIELDS=COPY
INREC IFTHEN=(WHEN=(45,05,SS,EQ,C'.'),
PARSE=(%00=(ABSPOS=45,ENDBEFR=C'.',FIXLEN=7),
%01=(FIXLEN=2)),
BUILD=(1,44,%00,UFF,M11,LENGTH=7,C'.',
%01,TRAN=ALTSEQ,55:50,300)),
IFTHEN=(WHEN=NONE,
BUILD=(1,44,45,5,UFF,EDIT=(TTTTTTT),C'.00',55:50,300))
ALTSEQ CODE=(40F0)
/*
The output from the above job is
Code:
PATRICIA ANN JONES SWB12008-02-18 0000000.00AR AR
JUDY GRIMMETT SWB12008-02-19 0000000.00AR AR
CHARLES EANES SWB12008-02-18 0000041.00AU TX
ASHLEY CUNNIGHAM SWB12008-02-18 0000038.75DA TX
SCHLAINE FISHER SWB12008-02-18 0000038.75DA TX
Hope this helps...
Cheers |
|
| Back to top |
|
| |
THIS IS AN ARCIVE FORUM IN READ ONLY MODE. IF YOU WANT TO ASK YOUR DOUBTS USE THE ACTUAL FORUM
|