|
Hi Jay, Let me tell you what I understood of your problem. You need to remove the leading zeros in a numeric data and display it in a character string (basically to left align). I've faced that problem and I devised a round about method, as I couldn't find a straightforward way. This could be an ugly method but certainly works. These are the steps I'd suggest. 1. Check the numeric variable for zeros for all the digits you care on display (i.e., if you believe that you will receive a zero filled value and care to display only one zero search in for first 5 positions). When you find the position in the string not zero move the data from that position till the end of the string (which you know already) to a temp variable that is of character data type. Length of temp variable can be same as the source variable (X(6) in this case) . Where by you will have the leading zeros trimmed and left aligned character data in the temp variable. Find the sample code for this in the attached file " IF Statement.txt". 2. Using the String statement you can formulate your required output string with the formatted data. Find the sample code in the attached file " String Statement.txt ". Best wishes, Sundhararaman. Larsen & Toubro Infotech Ltd., This document is classified as : ( ) L&T Infotech Proprietary ( ) L&T Infotech Confidential ( ) L&T Infotech Internal Use only (x) L&T Infotech General Business "Jay Sulzmann" <jsulzmann@xxxxxxxxxxx> Sent by: cobol400-l-bounces@xxxxxxxxxxxx 16/08/2004 08:58 PM Please respond to COBOL Programming on the iSeries/AS400 To: "COBOL Programming on the iSeries/AS400" <cobol400-l@xxxxxxxxxxxx> cc: Subject: [COBOL400-L] Conversion of numeric data to character format? Dear COBOL experts, Is there any equivalent of the following in COBOL, or an easier way to do it than fooling around with numeric-edited fields? CustNbr is a 6-digit signed (USAGE IS DISPLAY) field. I want to put the Customer Number (CustNbr) into message data (MessageData) to pass to the QMHSNDPM API. If the customer number is 123,and I do the following using free-format RPG-IV, MessageData = %char( CustNbr ); the input is 000123 and the output would be 123 (left-justified and all). The message looks like Customer Number 123 is not on file. The only way I know how to do this in COBOL results in Customer Number 123 is not on file. Cheers -- Jay ================================= Jay Sulzmann AS/400 Senior Programmer/Analyst AS/400 Certified RPG IV Developer Hainey Business Systems LLC 8 East Canal Street Dover, PA 17315 Tel: 717-718-9601 Ext. 231 Fax: 717-292-9474 AIM: bluejay0827 Web: www.hbs-inc.com ____________________________________ Providing E-Business, EDI, AS/400 Development and related services nationwide. _______________________________________________ This is the COBOL Programming on the iSeries/AS400 (COBOL400-L) mailing list To post a message email: COBOL400-L@xxxxxxxxxxxx To subscribe, unsubscribe, or change list options, visit: http://lists.midrange.com/mailman/listinfo/cobol400-l or email: COBOL400-L-request@xxxxxxxxxxxx Before posting, please take a moment to review the archives at http://archive.midrange.com/cobol400-l. ______________________________________________________________________ ______________________________________________________________________
Note. ----- This code for a 4 digit numeric field. you should use change this logic for your 6 digit field accordingly. IF CustNbr OF CUST-REC (1:1) = '0' IF CustNbr OF CUST-REC (2:1) = '0' IF CustNbr OF CUST-REC (3:1) = '0' IF CustNbr OF CUST-REC (4:1) = '0' MOVE CustNbr OF CUST-REC (4:1) TO TMP-CustNbr MOVE TMP-CustNbr TO CustNbr OF CUST-REC1 ELSE MOVE CustNbr OF CUST-REC1 (4:1) TO TMP-CustNbr MOVE TMP-CustNbr TO CustNbr OF CUST-REC1 END-IF ELSE MOVE CustNbr OF CUST-REC1 (3:2) TO TMP-CustNbr MOVE TMP-CustNbr TO CustNbr OF CUST-REC1 END-IF ELSE MOVE CustNbr OF CUST-REC1 (2:3) TO TMP-CustNbr MOVE TMP-CustNbr TO CustNbr OF CUST-REC1 END-IF ELSE MOVE CustNbr OF CUST-REC1 (1:4) TO TMP-CustNbr MOVE TMP-CustNbr TO CustNbr OF CUST-REC1 END-IF.
MOVE 'Customer Number ' TO VAR1. MOVE ' is not on file' TO VAR2. STRING VAR1 DELIMITED BY SIZE CustNbr OF CUST-REC1 DELIMITED BY SPACES VAR2 DELIMITED BY SIZE INTO MSG-VAR END-STRING. **** **** the following statement displays the concatenated output statement like **** Customer Number 123 is not on file **** DISPLAY MSG-VAR
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.