View previous topic :: View next topic
Author
Message
Vidhya Kalyanasundaram New User Joined: 19 Jul 2007Posts: 30 Location: chennai
Hi,
I have a requirement where the position of the decimal point need to vary depending upon the input amount calculated.
Using the EDIT clause, we can only specify a format that would be same throughout the file for all records as given in the below sort card.
OUTREC BUILD=(65:65,16,ZD,EDIT=(SIIIIIIIIT.TTTTTT),
SIGNS=(,-))
But depending on the o/p, Is there any option to vary the formatting fields?
I have attached below a sample o/p expected according to my requirement.
Code:
----7----+----8-
101000.000000
-100500000.00000
-100500000.00000
-15000.000000
-15000.000000
-15000.000000
132000.000000
132000.000000
132000.000000
Vidhya
Back to top
Frank Yaeger DFSORT Developer Joined: 15 Feb 2005Posts: 7129 Location: San Jose, CA
You can use DFSORT's IFTHEN clauses to reformat different records in different ways.
It's not clear what "rules" you want to use to reformat your records one way or the other so I can't give you specifics, but the basic IFTHEN clause syntax would be something like this:
Code:
OUTREC IFTHEN=(WHEN=(condition),BUILD=(items)),
IFTHEN=(WHEN=NONE,BUILD=(items))
For more information on DFSORT's IFTHEN clauses, see:
www.ibm.com/support/docview.wss?rs=114&uid=isg3T7000088
Back to top
Vidhya Kalyanasundaram New User Joined: 19 Jul 2007Posts: 30 Location: chennai
Frank,
Thank you. I was able to solve the issue with the below IFTHEN-WHEN condition, in the sort card.
Code:
OUTREC IFTHEN=(WHEN=(45,13,SFF,GE,+999999999.99),
OVERLAY=(45:45,13,ZD,EDIT=(IIIIIIIIIT.TT),
SIGNS=(,-),
58:58,16,ZD,EDIT=(IIIIIIIIIIIIT.TT),
SIGNS=(,-))),
IFTHEN=(WHEN=(45,13,SFF,LT,+999999999.99),
OVERLAY=(45:45,13,ZD,EDIT=(SIIIIIIIIT.TT),
SIGNS=(,-),
58:58,16,ZD,EDIT=(SIIIIIIIIIIIT.TT),
SIGNS=(,-)))
Thanks.
Back to top
Escapa Senior Member Joined: 16 Feb 2007Posts: 1399 Location: IL, USA
Hi Vidhya,
As Frank has suggested... for second ifthen no need to check the value of field, you can use WHEN=NONE
Code:
OUTREC IFTHEN=(WHEN=(45,13,SFF,GE,+999999999.99),
OVERLAY=(45:45,13,ZD,EDIT=(IIIIIIIIIT.TT),
SIGNS=(,-),
58:58,16,ZD,EDIT=(IIIIIIIIIIIIT.TT),
SIGNS=(,-))),
IFTHEN=(WHEN=NONE,
OVERLAY=(45:45,13,ZD,EDIT=(SIIIIIIIIT.TT),
SIGNS=(,-),
58:58,16,ZD,EDIT=(SIIIIIIIIIIIT.TT),
SIGNS=(,-)))
Back to top
Please enable JavaScript!