home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 5 / 05.iso / a / a031 / template.exe / AS_PRIN.COD < prev    next >
Encoding:
Text File  |  1992-03-10  |  3.0 KB  |  111 lines

  1. //
  2. // Module Name: AS_PRIN.COD
  3. // Description: Procedure for toggling printer output
  4. // Notes      : Written for dBASE IV
  5. //
  6. PROCEDURE PrintSet
  7. *{replicate("-",69)}
  8. * Procedure for toggling printer output
  9. *{replicate("-",69)}
  10.   PRIVATE lc_window
  11.  
  12.   gc_dev='CON'
  13.   lc_choice=' '
  14.   gn_pkey=0
  15.   gn_send=3
  16.  
  17.   DEFINE WINDOW printemp FROM 08,25 TO 17,56
  18.  
  19.   DEFINE POPUP SavePrin FROM 10,40
  20.     DEFINE BAR 1 OF SavePrin PROMPT " Send output to ..." SKIP
  21.     DEFINE BAR 2 OF SavePrin PROMPT REPLICATE(CHR(196),24) SKIP
  22.     DEFINE BAR 3 OF SavePrin PROMPT " CON:   Console" MESSAGE "Send output to Screen"
  23.     DEFINE BAR 4 OF SavePrin PROMPT " LPT1:  Parallel port 1 " MESSAGE "Send output to LPT1:"
  24.     DEFINE BAR 5 OF SavePrin PROMPT " LPT2:  Parallel port 2" MESSAGE "Send output to LPT2:"
  25.     DEFINE BAR 6 OF SavePrin PROMPT " COM1:  Serial port 1" MESSAGE "Send output to COM1:"
  26.     DEFINE BAR 7 OF SavePrin PROMPT " FILE = REPORT.TXT" MESSAGE "Send output to File Report.txt"
  27.   ON SELECTION POPUP SavePrin DEACTIVATE POPUP
  28.  
  29.   lc_window = WINDOW(){tabto(41)}&& Capture current window name
  30.   IF .NOT. ISBLANK( lc_window ){tabto(41)}&& If window was active
  31.     ACTIVATE SCREEN{tabto(41)}&& Activate screen for correct popup posit
  32.   ENDIF
  33.  
  34.   ACTIVATE POPUP SavePrin
  35.   gn_send = BAR()
  36.   RELEASE POPUP SavePrin
  37.  
  38.   IF .NOT. ISBLANK( lc_window ){tabto(41)}&& If window was active before
  39.     ACTIVATE WINDOW &lc_window.{tabto(41)}&& Reactivate it
  40.   ENDIF
  41.  
  42.   IF gn_send <> 0{tabto(41)}&& If user madde a popup selection
  43.  
  44.     IF gn_send = 7{tabto(41)}&& Output to file
  45.       gc_dev = 'TXT'
  46.       SET ALTERNATE TO REPORT.TXT
  47.       SET ALTERNATE ON
  48.     ELSE
  49.       IF gn_send <> 3{tabto(41)}&& Output not to the screen
  50.         gc_dev = 'PRN'
  51.         ON ERROR DO prntrtry
  52.         DO CASE
  53.           CASE gn_send = 4
  54.             SET PRINTER TO LPT1
  55.           CASE gn_send = 5
  56.             SET PRINTER TO LPT2
  57.           CASE gn_send = 6
  58.             SET PRINTER TO COM1
  59.         ENDCASE
  60.         SET PRINT ON
  61.         ON ERROR
  62.       ENDIF
  63.     ENDIF
  64.  
  65.   ELSE
  66.     gn_pkey = 27{tabto(41)}&& Signal escape pressed to caller
  67.   ENDIF
  68.  
  69.   RELEASE WINDOW printemp
  70.  
  71. RETURN
  72. *-- EOP: PrintSet
  73.  
  74. PROCEDURE PrntRtry
  75. *{replicate("-",69)}
  76. * On error routine for handling printer errors.
  77. *{replicate("-",69)}
  78.   PRIVATE ll_escape
  79.   ll_escape = SET("ESCAPE") = "ON"
  80.  
  81.   IF .NOT. PRINTSTATUS(){tabto(41)}&& If printer not ready
  82.  
  83.     IF ll_escape{tabto(41)}&& If Escape on, set it off
  84.       SET ESCAPE OFF
  85.     ENDIF
  86.  
  87.     ACTIVATE WINDOW printemp
  88.     @ 1,0 SAY "Please ready your printer or"
  89.     @ 2,0 SAY "     press ESC to cancel"
  90.  
  91.     *-- Loop until printer is ready or user presses escape
  92.     gn_pkey = 0
  93.     DO WHILE ( .NOT. PRINTSTATUS()) .AND. gn_pkey <> 27
  94.       gn_pkey = INKEY()
  95.     ENDDO
  96.  
  97.     DEACTIVATE WINDOW printemp
  98.     IF ll_escape
  99.       SET ESCAPE ON
  100.     ENDIF
  101.  
  102.     IF gn_pkey <> 27{tabto(41)}&& If user wants to retry
  103.       RETRY{tabto(41)}&& Retry the print command
  104.     ENDIF
  105.  
  106.   ENDIF
  107.  
  108. RETURN
  109. *-- EOP: PrntRtry
  110. // EOP AS_PRIN.COD
  111.