home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / CLIPPER / MISC / CLPNVLP2.ZIP / PRINTCTL.PRG < prev   
Encoding:
Text File  |  1987-02-26  |  5.8 KB  |  273 lines

  1. PROC PRINTSET
  2. STOR 20 TO RR
  3. STOR 0 TO CC
  4. @ RR,CC SAY SPAC(80)
  5. STOR SPAC(10) TO PRINTVAR
  6. STOR " " TO SPLVAR
  7. DO PRNTCODE
  8. DO WHIL .T.
  9. DO ASK2 WITH RR,CC,"Spooler (C)ancel-(D)isplay-(S)et up, (Q)ueue control, or (E)xit?","CDSQE",SPLVAR
  10. DO CASE
  11. CASE SPLVAR='D'
  12. SAVE SCREEN TO SPLSCRN
  13. CLEA
  14. !SPOOL SH
  15. WAIT
  16. CLEA
  17. RESTORE SCREEN FROM SPLSCRN
  18. CASE SPLVAR='S'
  19. DO SPOOL WITH RR,CC
  20. CASE SPLVAR='Q'
  21. DO QUEUE WITH RR,CC
  22. CASE SPLVAR='C'
  23. @ RR,CC SAY " "
  24. !ENDSPOOL C
  25. WAIT
  26. DO BLOCKCLR
  27. CASE SPLVAR='E'
  28. DO BLOCKCLR
  29. EXIT
  30. ENDC
  31. ENDD
  32. RETU
  33. PROC SPOOL
  34. PARA RR,CC
  35. PRIV SP1,SP2,SP3,SP4,SP5,SP6,SP7,SP8,SP9
  36. STOR " " TO SP7
  37. STOR "0" TO SP1,SP2
  38. STOR .F. TO SP3,SP6,SP5,SP9
  39. STOR SPAC(14) TO SP4
  40. STOR "0  " TO SP8
  41. DO WHIL .T.
  42. DO BLOCKCLR
  43. DO ASK2 WITH RR,CC,"Select printer (0=IBM, 1=LX-80)? or (E)xit set up","01E",SP1
  44. IF SP1="E"
  45. DO BLOCKCLR
  46. RETU
  47. ENDI
  48. @ RR,CC SAY "Printer "+SP1
  49. DO ASK2 WITH RR+1,CC,"Select number of copies 0-9 (0 for disk file only)?","0123456789",SP2
  50. @ RR+1,CC SAY SP2+" copies"
  51. DO ASKL WITH RR+2,CC,"Create disk file? (Y/N)",SP3
  52. IF SP3
  53. @ RR+2,CC SAY "Enter filename (With drive identifier) for disk file" GET SP4 PICT 'A:AXXXXXXXXXXX'
  54. READ
  55. @ RR+2,CC SAY SPAC(80)
  56. @ RR+2,CC SAY "Filename: "+SP4
  57. ENDI
  58. @ RR+3,CC SAY "Enter form type if needed (0-255)" GET SP8 PICT '999'
  59. READ
  60. DO ASKL WITH RR+4,CC,"Add form feed after print job (Y/N)?",SP9
  61. DO ASKL WITH RR+4,CC,"Execute spool command (Y/N)?",SP5
  62. IF SP5
  63. EXIT
  64. ENDI
  65. ENDD
  66. STOR " P"+SP1 TO SP7
  67. STOR SP7+" NB" TO SP7
  68. STOR SP7+" C="+TRIM(SP2) TO SP7
  69. STOR SP7+" F="+TRIM(SP8) TO SP7
  70. IF SP3
  71. STOR SP7+" CR="+TRIM(SP4) TO SP7
  72. ENDI
  73. IF SP9
  74. STOR SP7+" FF" TO SP7
  75. ELSE
  76. STOR SP7+" NFF" TO SP7
  77. ENDI
  78. DO BLOCKCLR
  79. @ RR,CC SAY " "
  80. !SPOOL &SP7
  81. WAIT
  82. DO BLOCKCLR
  83. DO ASKL WITH RR,CC,"Send special printer control codes (Y/N)?",SP6
  84. IF SP6
  85. DO CTLCODES WITH RR,CC
  86. ENDI
  87. RETU
  88. PROC QUEUE
  89. PARA RR,CC
  90. PRIV Q1,Q2,Q3,Q4,Q5,Q6,Q7
  91. STOR SPAC(12) TO Q1
  92. STOR USER TO Q5
  93. STOR STA TO Q4
  94. STOR "0" TO Q2
  95. STOR " " TO Q3
  96. STOR .F. TO Q6,Q7,Q8
  97. DO WHIL .T.
  98. DO BLOCKCLR
  99. DO ASK2 WITH RR,CC,"Select printer number (0/1) or (E)xit?","01E",Q2
  100. IF Q2="E"
  101. DO BLOCKCLR
  102. RETU
  103. ENDI
  104. @ RR,CC SAY "Printer "+Q2
  105. @ RR+1,CC SAY "Enter filespec , job number (#), or <RETURN>?" GET Q1 PICT 'XXXXXXXXXXXX'
  106. READ
  107. DO ASK2 WITH RR+2,CC,"List for (S)tation only, (U)ser only, or (A)ll?","SUA",Q3
  108. DO CASE
  109. CASE Q3='S'
  110. DO ASK2 WITH RR+2,CC,"Station number (1/2)?","12",Q4
  111. STOR "ST="+Q4 TO Q3
  112. @ RR+2,CC SAY "Station number "+Q4
  113. CASE Q3='U'
  114. @ RR+2,CC SAY "User name " GET Q5 PICT '@! '
  115. READ
  116. STOR "U="+TRIM(Q5) TO Q3
  117. CASE Q3='A'
  118. @ RR+2,CC SAY "All files"
  119. Q3=' '
  120. ENDC
  121. DO ASKL WITH RR+4,CC,"Delete these entries from queue (Y/N)?",Q6
  122. DO ASKL WITH RR+4,CC,"Detailed queue list (Y/N)?",Q7
  123. DO ASKL WITH RR+4,CC,"Execute queue command (Y/N)?",Q8
  124. IF Q8
  125. EXIT
  126. ENDI
  127. ENDD
  128. IF .NOT. EMPTY(Q1)
  129. Q1=" "+TRIM(Q1)+" "
  130. ELSE
  131. Q1=" "
  132. ENDI
  133. Q1=Q1+"/P="+Q2
  134. IF .NOT. EMPTY(Q3)
  135. Q1=Q1+" "+Q3
  136. ENDI
  137. IF Q6
  138. Q1=Q1+" D"
  139. ENDI
  140. IF .NOT. Q7
  141. Q1=Q1+" NL"
  142. ENDI
  143. SAVE SCREEN TO QSCRN
  144. CLEA
  145. !Q &Q1
  146. WAIT
  147. RESTORE SCREEN FROM QSCRN
  148. DO BLOCKCLR
  149. RETU
  150. PROC CTLCODES
  151. PARA RR,CC
  152. DO BLOCKCLR
  153. VALU='E'
  154. DO CASE
  155. CASE SP1="1"
  156. @ RR,CC SAY '(1) Letter quality on                  (2) Letter quality off'
  157. @ RR+1,CC SAY '(3) Graphic characters on              (4) Graphic characters off'
  158. @ RR+2,CC SAY '(5) 20 chars. per inch on              (6) 20 chars. per inch off'
  159. DO WHIL .T.
  160. @ RR+3,CC SAY '(7) 17 chars. per inch on              (8) 17 chars. off {(E)xit } -> ' GET VALU PICT '@! X'
  161. READ
  162. DO CASE
  163. CASE VALU='1'
  164. PRINTVAR=L1QON
  165. CASE VALU='2'
  166. PRINTVAR=L1QOFF
  167. CASE VALU='3'
  168. PRINTVAR=G1RAPHON
  169. CASE VALU='4'
  170. PRINTVAR=G1RAPHOFF
  171. CASE VALU='5'
  172. PRINTVAR=E1LITEON
  173. CASE VALU='6'
  174. PRINTVAR=E1LITEOFF
  175. CASE VALU='7'
  176. PRINTVAR=C1OMPRON
  177. CASE VALU='8'
  178. PRINTVAR=C1OMPROFF
  179. CASE VALU='E'
  180. EXIT
  181. OTHE
  182. LOOP
  183. ENDC
  184. SET CONS OFF
  185. SET PRIN ON
  186. ?&PRINTVAR
  187. SET PRIN OFF
  188. SET CONS ON
  189. ENDD
  190. CASE SP1='0'
  191. @ RR,CC SAY '(1) Letter quality on                  (2) Letter quality off'
  192. @ RR+1,CC SAY '(3) 5 chars. per inch on               (4) 5 chars per inch off'
  193. @ RR+2,CC SAY '(5) 12 chars. per inch on              (6) 12 chars. per inch off'
  194. DO WHIL .T.
  195. @ RR+3,CC SAY '(7) 17 chars. per inch on              (8) 17 chars. off {(E)xit } -> ' GET VALU PICT '@! X'
  196. READ
  197. DO CASE
  198. CASE VALU='1'
  199. PRINTVAR=LQON
  200. CASE VALU='2'
  201. PRINTVAR=LQOFF
  202. CASE VALU='3'
  203. PRINTVAR=ENLGON
  204. CASE VALU='4'
  205. PRINTVAR=ENLGOFF
  206. CASE VALU='5'
  207. PRINTVAR=ELITEON
  208. CASE VALU='6'
  209. PRINTVAR=ELITEOFF
  210. CASE VALU='7'
  211. PRINTVAR=COMPRON
  212. CASE VALU='8'
  213. PRINTVAR=COMPROFF
  214. CASE VALU='E'
  215. EXIT
  216. OTHE
  217. LOOP
  218. ENDC
  219. SET CONS OFF
  220. SET PRIN ON
  221. ?&PRINTVAR
  222. SET PRIN OFF
  223. SET CONS ON
  224. ENDD
  225. ENDC
  226. VALU=SPAC(20)
  227. DO BLOCKCLR
  228. RETU
  229. PROC ASKL
  230. PARA MLINE,MCOLUMN,MQUESTION,MANSWER
  231. @ MLINE,MCOLUMN SAY SPAC(LEN(MQUESTION)+4)
  232. STOR .F. TO MANSWER
  233. @ MLINE,MCOLUMN SAY MQUESTION GET MANSWER PICT '@L '
  234. READ
  235. @ MLINE,MCOLUMN SAY SPAC(LEN(MQUESTION)+4)
  236. RETU
  237. PROC ASK2
  238. PARA MLINE,MCOLUMN,MQUESTION,MCHOICES,MANSWER
  239. @ MLINE,MCOLUMN SAY SPAC(LEN(MQUESTION)+4)
  240. STOR " " TO MANSWER
  241. DO WHIL .NOT. MANSWER $ MCHOICES
  242. @ MLINE,MCOLUMN SAY MQUESTION GET MANSWER PICT "@! "
  243. READ
  244. ENDD
  245. @ MLINE,MCOLUMN SAY SPAC(LEN(MQUESTION)+4)
  246. RETU
  247. PROC BLOCKCLR
  248. @ RR,CC SAY SPAC(80)
  249. @ RR+1,CC SAY SPAC(80)
  250. @ RR+2,CC SAY SPAC(80)
  251. @ RR+3,CC SAY SPAC(80)
  252. @ RR+4,CC SAY SPAC(80)
  253. RETU
  254. PROC PRNTCODE
  255. LQON='CHR(27)+"I"+"2"'               && CODES ON IBM PROPRINTER
  256. LQOFF='CHR(27)+"I"+"0"'              && NETWORK PRINTER 0
  257. ELITEON='CHR(27)+":"'
  258. ELITEOFF='CHR(27)+"I"+"0"'
  259. COMPRON='CHR(15)'
  260. COMPROFF='CHR(18)'
  261. ENLGON='CHR(14)'
  262. ENLGOFF='CHR(20)'
  263. L1QON='CHR(27)+"x"+CHR(1)'
  264. L1QOFF='CHR(27)+"x"+CHR(0)'
  265. G1RAPHON='CHR(27)+CHR(109)+CHR(4)'   && CODES ON LX80
  266. G1RAPHOFF='CHR(27)+CHR(109)+CHR(0)'  && NETWORK PRINTER 1
  267. E1LITEON='CHR(27)+"M"+CHR(15)'
  268. E1LITEOFF='CHR(27)+"P"+CHR(18)'
  269. C1OMPRON='CHR(27)+CHR(15)'
  270. C1OMPROFF='CHR(27)+CHR(18)'
  271. E1NLGON='CHR(27)'
  272. E1NLGOFF='CHR(27)'
  273. RETU