home *** CD-ROM | disk | FTP | other *** search
/ Oakland CPM Archive / oakcpm.iso / sigm / vol155 / form / prt.cmd < prev   
Encoding:
Text File  |  1984-04-29  |  6.3 KB  |  148 lines

  1. * FORM/PRT.CMD ---------------  VERSION 1.0 -----------------  OCTOBER 30, 1982
  2. * by Allen Cleveland                                     CLEVELAND & ASSOCIATES
  3. *
  4. * A program to print out "personalized" Form Letters to selected names maint-
  5. * ained on a Data Base (type .DBF file) and records the fact that a letter
  6. * (and which letter) has been printed in the Data Base record for that name.
  7. *
  8. * This file is "called" by FORM/LTR.CMD . This file in turn "calls" a
  9. * LETTERXX.CMD file to do the actual printing of the form letter.
  10. *
  11. * This file uses the memory variables stored in FORM/LTR.MEM by FORM/LTR.CMD
  12. * which contain the SELECT:CODE (C1) and pause selection (R1).
  13. *
  14. * This .CMD file uses ADBUG/1.DBF which is assumed to be on disk drive A,
  15. * (default logged-on drive). This file also assumes a printer with 8 1/2" wide
  16. * X 11" (66 line) paper (either continuous or individual sheets).
  17. * The LETTERXX.CMD files is also expected to be on Drive A
  18. *
  19. *   Configure dBASE for interaction with operator.
  20. SET TALK OFF
  21. SET COLON OFF
  22. SET ECHO OFF
  23. SET FORMAT TO SCREEN
  24. SET SCREEN ON
  25. *            Get the variables as created and "saved" by FORM/LTR.CMD
  26. *            for use below and initilize new variables.
  27. RESTORE FROM FORM/LTR
  28. STORE "                  " TO DATELINE
  29. STORE T TO PAUSE
  30. *    Clean off the file directory area (put on screen by FORM/LTR.CMD).
  31. @ 16, 0 SAY "                                        " + ;
  32.             "                                        "
  33. @ 17, 0 SAY "                                        " + ;
  34.             "                                        "
  35. @ 18, 0 SAY "                                        " + ;
  36.             "                                        "
  37. @ 19, 0 SAY "                                        " + ;
  38.             "                                        "
  39. @ 20, 0 SAY "                                        " + ;
  40.             "                                        "
  41. @ 21, 0 SAY "                                        " + ;
  42.             "                                        "
  43. @ 22, 0 SAY "                                        " + ;
  44.             "                                        "
  45. *         Display operator instructions for printer set-up.
  46. @ 17, 7 SAY " SET UP YOUR PRINTER FOR 8 1/2  PAPER,LEFT MARGIN AT COL.# 5"
  47. @ 18, 7 SAY " SINGLE SPACE, TOP OF FORM AND PRINT HEAD OVER POSITION OF  "
  48. @ 19, 7 SAY " 1ST POS. TO BE PRINTED. HIT RETURN WHEN READY OR ESC = ABORT"
  49. WAIT
  50. *   Clean off above message lines for subsequent prompts and status msgs.
  51. @ 17, 7 SAY "                                                             "
  52. @ 18, 7 SAY "                                                             "
  53. @ 19, 7 SAY "                                                             "
  54. *            Get a DATELINE for printing on the form.
  55. @ 17, 7 SAY "Enter the date line exactly as to be printed on form"
  56. @ 18,12 SAY "---> " GET DATELINE
  57. READ
  58. *       Form complete form file name from previous operator input.
  59. STORE F1 TO S:CODE
  60. STORE "LETTER" + F2 TO FILENAME
  61. *      Depending on response confirm selection  for pause or no-pause.
  62. IF !(R1) = "Y"
  63.      STORE T TO PAUSE
  64.      @ 17, 7 SAY "      PRINTING WILL PAUSE AFTER EA. FORM                "
  65. ELSE
  66.      STORE F TO PAUSE
  67.      @ 17, 7 SAY "      PRINTING WILL CONTINUE W/O PAUSES                 "
  68. ENDIF
  69. *         Get the data base and set to first record in file.
  70. USE ADBUG/1
  71. GOTO TOP
  72. *                    * BEGIN MAIN PROCEDURE *
  73. DO WHILE .NOT. EOF
  74. *       Check the SELEC:CODE and LAST:SENT fields for this record.
  75. *           Skip this record if form has already been typed.
  76.      IF LAST:SENT = FILENAME
  77.           SKIP
  78.           LOOP
  79.      ELSE
  80. *       Skip this record if it doesn't have a matching SELEC:CODE.
  81.           IF SELEC:CODE <> S:CODE
  82.                SKIP
  83.                LOOP
  84.           ENDIF
  85.      ENDIF
  86. *       Format the name and address fields for subsequent printing
  87.      STORE TRIM(FIRST:NAME) TO NAME:1
  88.      STORE TRIM(CITY) TO CITY:T
  89.      STORE CITY:T + ", " + STATE + ". " + ZIP TO CITYLINE
  90. *       Check for presence of a middle initial, if so format.
  91.      IF MID:NAME = " "
  92.           STORE NAME:1 + " " + TRIM(LAST:NAME) TO NAMELINE
  93.      ELSE
  94.           STORE NAME:1 + " " + MID:NAME + ". " + TRIM(LAST:NAME) TO NAMELINE
  95.      ENDIF
  96. *       Check for presence of a two line address, if not move cityline up.
  97.      STORE ADDRESS:1 TO ADDLINE:1
  98.      IF ADDRESS:2 = "                              "
  99.           STORE CITYLINE TO ADDLINE:2
  100.           STORE "                              " TO CITYLINE
  101.      ELSE
  102.           STORE ADDRESS:2 TO ADDLINE:2
  103.      ENDIF
  104. *       Get the record number which is being processed.
  105.      STORE # TO REC:NUM
  106. *       Report status of process (Which name and record number ).
  107.      @ 19, 7 SAY "                                                 "
  108.      @ 20, 7 SAY "                                                 "
  109.      @ 19, 7 SAY "-->NOW PRINTING FORM FOR  " + NAMELINE
  110.      @ 20,30 SAY "    (RECORD NO. " + STR(REC:NUM,3,0) + ")"
  111. *       Save all the variables for passing to LETTERXX.CMD
  112.      SAVE TO FORM/PRT
  113. *       Configure dBASE for printing operations.
  114.      SET SCREEN OFF
  115.      SET FORMAT TO PRINT
  116.      SET PRINT ON
  117.      SET CONSOLE OFF
  118. *       Get and perform the LETTERXX.CMD command file (the form letter).
  119.      DO  &FILENAME
  120. *       Issue a form feed to printer at completetion of printing.
  121.      EJECT
  122. *       Update the record to show form has been printed and which form
  123. *       (Insert form file name in LAST:SENT field and clear DATE:SENT field).
  124.      REPLACE LAST:SENT WITH  FILENAME
  125.      REPLACE DATE:SENT WITH "      "
  126. *       Configure dBASE for interaction with operator
  127.      SET PRINT OFF
  128.      SET FORMAT TO SCREEN
  129.      SET SCREEN ON
  130. *       If pause at end of each form was selected, prompt for when ready
  131.      IF PAUSE
  132.           @ 19, 7 SAY " *** PAUSING FOR THE INSERTION OF PAPER FOR NEXT *** "
  133.           @ 20, 7 SAY " *** FORM, HIT 'RETURN' WHEN READY.('Q" TO ABORT)*** "
  134.           WAIT TO RESPONSE
  135.           IF !(RESPONSE) = "Q"
  136.                RETURN
  137.           ENDIF
  138.      ENDIF
  139. *       Clean off pause prompt.
  140.           @ 19, 7 SAY "                                                     "
  141.           @ 20, 7 SAY "                                                     "
  142. *       Move to next record in data base
  143.      SKIP
  144. ENDDO                  * END MAIN PROCEDURE *
  145. *  All printing for this SELEC:CODE done, return to FORM/LTR.CMD for more?
  146. RETURN
  147.  
  148.