mirror of
https://github.com/bobbimanners/Zapple-II.git
synced 2026-10-24 06:02:32 +00:00
135 lines
3.5 KiB
Batchfile
135 lines
3.5 KiB
Batchfile
* Program.: LABELS.CMD
|
|
* Author..: Luis A. Castro.
|
|
* Date....: 9/15/82.
|
|
* Notice..: Copyright 1982, ASHTON-TATE.
|
|
* Notes...: To print mailing labels more than one across without
|
|
* printing a blank line when the company field is blank.
|
|
* You may want to remove all the comment lines, if you want
|
|
* to make this program run faster. Uses a data file with
|
|
* the following structure:
|
|
* NAME,C,<number>
|
|
* COMPANY,C,<number>
|
|
* ADDRESS,C,<number>
|
|
* CITY,C,<number>
|
|
* STATE,C,<number>
|
|
* ZIP,C,<number>
|
|
*
|
|
* References:
|
|
* You will notice that I use macro substitution extensively
|
|
* in this program (i.e., using the ampersand (&) symbol).
|
|
* You will want to look in your manual for documentation on
|
|
* this command.
|
|
*
|
|
SET TALK OFF
|
|
SET BELL OFF
|
|
SET INTENSITY OFF
|
|
|
|
* Initialize macros...
|
|
STORE "TRIM(city)+', '+TRIM(state)+' '+TRIM(zip)" TO Macro
|
|
STORE "line1+$(blank,1,column*gap-LEN(line1))" TO Mline1
|
|
STORE "line2+$(blank,1,column*gap-LEN(line2))" TO Mline2
|
|
STORE "line3+$(blank,1,column*gap-LEN(line3))" TO Mline3
|
|
STORE "line4+$(blank,1,column*gap-LEN(line4))" TO Mline4
|
|
|
|
* Initialize memory variables...
|
|
* The expression "$(STR(0,133),1,132)" is a tricky way of
|
|
* initializing 132 blanks to memory variables.
|
|
STORE $(STR(0,133),1,132) TO blank,line1,line2,line3,line4
|
|
STORE "NAMES" TO filename
|
|
STORE 1 TO nacross
|
|
STORE " " TO select
|
|
STORE 25 TO gap
|
|
STORE "Y" TO printer
|
|
|
|
ERASE
|
|
* Heading is displayed and parameters are entered...
|
|
@ 2,29 SAY "PRINT MAILING LABELS"
|
|
@ 3,29 SAY "--------------------"
|
|
@ 5,20 SAY "Enter number of labels to go across ";
|
|
GET nacross PICTURE "9"
|
|
@ 6,25 SAY "Enter gap between columns ";
|
|
GET gap PICTURE "99"
|
|
READ
|
|
|
|
* Minimum and maximum values are tested...
|
|
IF gap < 25
|
|
STORE 25 TO gap
|
|
ENDIF
|
|
IF nacross > 4
|
|
STORE 4 TO nacross
|
|
ENDIF
|
|
|
|
* At this point a prompt is displayed to allow the user
|
|
* to send output to the screen or printer.
|
|
SET COLON OFF
|
|
@ 8,15 SAY "Do you want to send output to the printer? (Y/N) ";
|
|
GET printer PICTURE "!"
|
|
READ
|
|
@ 9,17 SAY "When labels are in place, hit carriage return ";
|
|
GET select
|
|
READ
|
|
SET COLON ON
|
|
ERASE
|
|
|
|
USE &filename
|
|
DO WHILE .NOT. EOF
|
|
|
|
* Store first column to output lines...
|
|
STORE TRIM(name) TO line1
|
|
IF company=" "
|
|
STORE TRIM(address) TO line2
|
|
STORE &Macro TO line3
|
|
STORE " " TO line4
|
|
ELSE
|
|
STORE TRIM(company) TO line2
|
|
STORE TRIM(address) TO line3
|
|
STORE &Macro TO line4
|
|
ENDIF
|
|
|
|
* Store rest of columns to output lines...
|
|
IF nacross > 1
|
|
SKIP
|
|
ENDIF
|
|
STORE 1 TO column
|
|
DO WHILE .NOT. EOF .AND. column < nacross
|
|
STORE &Mline1+TRIM(name) TO line1
|
|
IF company=" "
|
|
STORE &Mline2+TRIM(address) TO line2
|
|
STORE &Mline3+&Macro TO line3
|
|
ELSE
|
|
STORE &Mline2+TRIM(company) TO line2
|
|
STORE &Mline3+TRIM(address) TO line3
|
|
STORE &Mline4+&Macro TO line4
|
|
ENDIF
|
|
STORE column+1 TO column
|
|
IF column < nacross
|
|
SKIP
|
|
ENDIF
|
|
ENDDO while .not.eof.and.column<across
|
|
|
|
* We are now ready to display (or print) the
|
|
* contents of memory variables line1 thru line4.
|
|
IF printer = "Y"
|
|
SET CONSOLE OFF
|
|
SET PRINT ON
|
|
ENDIF
|
|
? line1
|
|
? line2
|
|
? line3
|
|
? line4
|
|
?
|
|
?
|
|
IF printer="Y"
|
|
SET PRINT OFF
|
|
SET CONSOLE ON
|
|
ENDIF
|
|
|
|
SKIP
|
|
ENDDO while .not.eof
|
|
|
|
?
|
|
? "THAT'S ALL FOLKS..."
|
|
CLEAR
|
|
RETURN
|
|
* EOF labels.cmd
|
|
|