home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Overload
/
ShartewareOverload.cdr
/
database
/
dbbooks.zip
/
CHECKS.CMD
< prev
next >
Wrap
OS/2 REXX Batch file
|
1987-02-14
|
3KB
|
118 lines
************************************ CHECKS.CMD
**************** Write checks.
ERASE
SET TALK OFF
? "Preparing checks file"
?
? "Load checks into printer"
***************** Save existing memory variables to THOUGHT,
***************** and bring in English-equivalent variables.
SAVE TO THOUGHT
RESTORE FROM ENGLISH
*************** Create little file of checks to be written.
USE TRANS INDEX ACCT
COPY TO TEMP FOR CHECK:NO>0 .AND. .NOT. WRITTEN
USE TEMP
INDEX ON CHECK:NO TO CHECKNOS
GO TOP
?
? "First check to be printed will be ",CHECK:NO
?
?
? "Press any key to begin writing checks"
WAIT
ERASE
*SET PRINT ON
DO WHILE .NOT. EOF
************ Translate AMOUNT to English.
STORE 1 TO COUNTER,START
STORE STR(AMOUNT,9,2) TO STRING
****************************** Loop through thousands and hundreds.
DO WHILE COUNTER < 3
************************** Split out hundreds, tens, and ones.
STORE $(STRING,START,3) TO CHUNK
STORE $(CHUNK,1,1) TO HUN
STORE $(CHUNK,2,2) TO TEN
STORE $(CHUNK,3,1) TO ONE
********************* Handle hundreds.
IF VAL(CHUNK) > 99
STORE ENGLISH + U&HUN + ' HUNDRED ' TO ENGLISH
ENDIF (chunk > 99)
********************* Handle second 2 digits.
STORE VAL(TEN) TO T
IF T > 0
DO CASE
********** Case 1: Handle teens or even tens.
CASE (INT(T/10.0)=T/10.0) .OR. (T>9 .AND. T<20)
STORE ENGLISH + U&TEN TO ENGLISH
********** Case 2: Handle greater than 10 but not evenly divisible.
CASE T > 9 .AND. (INT(T/10.0)#T/10.0)
STORE $(TEN,1,1) +'0' TO TEN
STORE ENGLISH + U&TEN+' '+U&ONE TO ENGLISH
********** Case 3: Handle less than 10.
CASE T < 10
STORE ENGLISH + U&ONE TO ENGLISH
ENDCASE
ENDIF (T > 0)
**************** Add "Thousand" if necessary.
IF AMOUNT > 999.99 .AND. COUNTER = 1
STORE ENGLISH+' THOUSAND ' TO ENGLISH
ENDIF (need to add "thousand")
**************** Prepare for pass through hundreds.
STORE 4 TO START
STORE COUNTER+1 TO COUNTER
ENDDO (while counter < 3.)
***************** Tack on cents.
IF INT(AMOUNT) > 0
STORE ENGLISH + " AND " TO ENGLISH
ENDIF
STORE ENGLISH + $(STRING,8,2)+"/100" TO ENGLISH
? " ",DATE
?
? " ",TO:WHOM," ",AMOUNT
?
? " ",ENGLISH
?
?
?
?
?
SKIP
STORE " " TO ENGLISH
ENDDO
SET PRINT OFF
************************ Flag checks as written in TRANS
USE TRANS
REPLACE ALL WRITTEN WITH Y FOR CHECK:NO>0
USE
***************** Get rid of "English" memory
***************** variables, and bring back originals.
RELEASE ALL
RESTORE FROM THOUGHT
RETURN