Subject: | |
From: | |
Reply To: | |
Date: | Mon, 26 Oct 1998 15:24:26 -0500 |
Content-Type: | text/plain |
Parts/Attachments: |
|
|
John,
Here is one I made for printing payroll checks, up to $999,999.00. If
not good enough you should be able to expand it. If you have any
questions e-mail me. This is a COBOL subprogram.
John Zoltak
North American Mfg Co
148.5 $CONTROL NOSOURCE,SUBPROGRAM
148.6 IDENTIFICATION DIVISION.
148.7 PROGRAM-ID. SPELL-AMOUNT.
148.8 ENVIRONMENT DIVISION.
148.9 DATA DIVISION.
149 WORKING-STORAGE SECTION.
149.1
149.2 77 AMOUNT PIC S9(6)V99 COMP.
149.3 77 NUMBER-AMOUNT PIC S9(9) COMP.
149.4 77 UNITS-AMOUNT PIC S9(9) COMP.
149.5 77 CENTS PIC 9(2).
149.6
149.7 77 TEXT-NUMBER PIC X(80).
149.8 77 TEXT-POINTER PIC S9(9) COMP.
149.9
150 77 MADE-NUMBER PIC X(32).
150.1
150.2 01 NUMBER-INIT.
150.3 05 PIC X(10) VALUE "ONE".
150.4 05 PIC X(10) VALUE "TWO".
150.5 05 PIC X(10) VALUE "THREE".
150.6 05 PIC X(10) VALUE "FOUR".
150.7 05 PIC X(10) VALUE "FIVE".
150.8 05 PIC X(10) VALUE "SIX".
150.9 05 PIC X(10) VALUE "SEVEN".
151 05 PIC X(10) VALUE "EIGHT".
151.1 05 PIC X(10) VALUE "NINE".
151.2 05 PIC X(10) VALUE "TEN".
151.3 05 PIC X(10) VALUE "ELEVEN".
151.4 05 PIC X(10) VALUE "TWELVE".
151.5 05 PIC X(10) VALUE "THIRTEEN".
151.6 05 PIC X(10) VALUE "FOURTEEN".
151.7 05 PIC X(10) VALUE "FIFTEEN".
151.8 05 PIC X(10) VALUE "SIXTEEN".
151.9 05 PIC X(10) VALUE "SEVENTEEN".
152 05 PIC X(10) VALUE "EIGHTEEN".
152.1 05 PIC X(10) VALUE "NINETEEN".
152.2
152.3 05 PIC X(10) VALUE "TEN".
152.4 05 PIC X(10) VALUE "TWENTY".
152.5 05 PIC X(10) VALUE "THIRTY".
152.6 05 PIC X(10) VALUE "FORTY".
152.7 05 PIC X(10) VALUE "FIFTY".
152.8 05 PIC X(10) VALUE "SIXTY".
152.9 05 PIC X(10) VALUE "SEVENTY".
153 05 PIC X(10) VALUE "EIGHTY".
153.1 05 PIC X(10) VALUE "NINETY".
153.2
153.3 01 NUMBER-TEXT-TABLE REDEFINES NUMBER-INIT.
153.4 05 UNITS-TEXT OCCURS 19 PIC X(10).
153.5 05 TENS-TEXT OCCURS 9 PIC X(10).
153.6
153.7 LINKAGE SECTION.
153.8
153.9 77 INPUT-AMOUNT PIC S9(6)V99 COMP.
154 77 OUTPUT-AMOUNT PIC X(80).
154.1
154.2 PROCEDURE DIVISION USING INPUT-AMOUNT, OUTPUT-AMOUNT.
154.3 BEGIN-FORMAT-AMOUNT.
154.4
154.5 MOVE SPACE TO TEXT-NUMBER.
154.6 MOVE 1 TO TEXT-POINTER.
154.7
154.8 MOVE INPUT-AMOUNT TO AMOUNT.
154.9
155 IF AMOUNT >= 100000.00
155.1 COMPUTE NUMBER-AMOUNT = AMOUNT / 100000.00
155.2 PERFORM MAKE-NUMBER
155.3 STRING MADE-NUMBER DELIMITED SPACE,
155.4 "-HUNDRED " DELIMITED SIZE
155.5 INTO TEXT-NUMBER POINTER TEXT-POINTER
155.6 COMPUTE AMOUNT = AMOUNT - (NUMBER-AMOUNT * 100000.00)
155.7 END-IF.
155.8
155.9 IF AMOUNT >= 1000.00
156 COMPUTE NUMBER-AMOUNT = AMOUNT / 1000
156.1 PERFORM MAKE-NUMBER
156.2 STRING MADE-NUMBER DELIMITED SPACE,
156.3 " THOUSAND " DELIMITED SIZE
156.4 INTO TEXT-NUMBER POINTER TEXT-POINTER
156.5 COMPUTE AMOUNT = AMOUNT - (NUMBER-AMOUNT * 1000.00)
156.6 ELSE
156.7 IF INPUT-AMOUNT >= 100000.00
156.8 STRING "THOUAND " DELIMITED SIZE
156.9 INTO TEXT-NUMBER POINTER TEXT-POINTER
157 END-IF
157.1 END-IF.
157.2
157.3 IF AMOUNT >= 100.00
157.4 COMPUTE NUMBER-AMOUNT = AMOUNT / 100
157.5 PERFORM MAKE-NUMBER
157.6 STRING MADE-NUMBER DELIMITED SPACE
157.7 "-HUNDRED " DELIMITED SIZE
157.8 INTO TEXT-NUMBER POINTER TEXT-POINTER
157.9 COMPUTE AMOUNT = AMOUNT - (NUMBER-AMOUNT * 100.00)
158 END-IF.
158.1
158.2 IF AMOUNT >= 1.00
158.3 COMPUTE NUMBER-AMOUNT = AMOUNT
158.4 PERFORM MAKE-NUMBER
158.5 STRING MADE-NUMBER DELIMITED SPACE
158.6 INTO TEXT-NUMBER POINTER TEXT-POINTER
158.7 COMPUTE AMOUNT = AMOUNT - (NUMBER-AMOUNT)
158.8 END-IF.
158.9
159 IF AMOUNT > 0.99
159.1 DISPLAY "ERROR GENERATING NUMBER TEXT"
159.2 STOP RUN
159.3 END-IF.
159.4
159.5 MULTIPLY 100 BY AMOUNT.
159.6 MOVE AMOUNT TO CENTS.
159.7 STRING " and ", CENTS, "/100" DELIMITED SIZE
159.8 INTO TEXT-NUMBER POINTER TEXT-POINTER.
159.9
160 MOVE TEXT-NUMBER TO OUTPUT-AMOUNT.
160.1 GOBACK.
160.2
160.3
160.4 MAKE-NUMBER.
160.5 IF NUMBER-AMOUNT < 20
160.6 MOVE UNITS-TEXT(NUMBER-AMOUNT) TO MADE-NUMBER
160.7 ELSE
160.8 COMPUTE TALLY = NUMBER-AMOUNT / 10
160.9
161 IF TALLY * 10 = NUMBER-AMOUNT
161.1 MOVE TENS-TEXT(TALLY) TO MADE-NUMBER
161.2 ELSE
161.3 COMPUTE UNITS-AMOUNT = NUMBER-AMOUNT - TALLY * 10
161.4
161.5 MOVE SPACE TO MADE-NUMBER
161.6 STRING TENS-TEXT(TALLY) DELIMITED SPACE,
161.7 "-" DELIMITED SIZE
161.8 UNITS-TEXT(UNITS-AMOUNT) DELIMITED SPACE
161.9 INTO MADE-NUMBER
162 END-STRING
162.1 END-IF
162.2 END-IF.
162.3
162.4 END PROGRAM SPELL-AMOUNT.
> -----Original Message-----
> From: John Archer [SMTP:[log in to unmask]]
> Sent: Monday, October 26, 1998 3:11 PM
> To: [log in to unmask]
> Subject: [HP3000-L] Numeric to English Translator.
>
> Hi All,
>
> I've been asked to see if there is any FREE s/w that will translate a
> dollar
> figure into English that would be
> suitable for a computer generated check. Callable by a program
> preferably Cobol.
>
> Thanks for any responses,
> John
>
> John J. Archer ---- Opinions are my
> own, not
> my employer's. ---
> ph: 330-798-2190 fx: 330-798-3912
> e-mail: [log in to unmask]
> IBM Global Services @ Continental General Tire
> One General St.
> Akron, Oh. 44329
|
|
|