home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / World_Of_Computer_Software-02-385-Vol-1of3.iso / c / chkprn2.zip / GDEVICE_.CLA < prev    next >
Text File  |  1992-01-31  |  6KB  |  173 lines

  1.          MEMBER                 !DPP_NO_OPEN
  2. !==============================================================================
  3. !                  GetDevice_ Procedure
  4. !==============================================================================
  5.  
  6. GetDevice_   FUNCTION(Dest_,Copies_,Viewing_)
  7. Dest_           EXTERNAL
  8. Copies_           EXTERNAL
  9. Viewing_       BYTE
  10.  
  11. eViewingParm EQUATE(3)
  12.  
  13. Screen         SCREEN      WINDOW(8,50),AT(9,17),PRE(Scr),HUE(7,1)
  14.            ROW(1,49)  PAINT(1,2),TRN
  15.            ROW(8,1)      PAINT(1,2),TRN
  16.            ROW(8,3)      PAINT(1,46),HUE(7,0),TRN
  17.            ROW(2,49)  PAINT(7,2),HUE(7,0),TRN
  18.            ROW(1,1)      STRING('╔═<0{44}>═╗'),ENH
  19.            ROW(2,1)      REPEAT(5);STRING('║<0{46}>║'),ENH .
  20.            ROW(7,1)      STRING('╚═{46}╝'),ENH
  21.            ROW(3,16)  REPEAT(3);STRING('│'),HUE(3,1) .
  22.            ROW(1,3)      STRING(' Please choose a destination for the report ') |
  23.                 HUE(0,3)
  24.            ROW(3,5)      STRING('Destination')
  25.            ROW(4,7)      STRING('Name')
  26.            ROW(5,5)      STRING('Copies')
  27. Message           ROW(2,10)  STRING(30),ENH
  28.          COL(40)  ENTRY,USE(?First_Field)
  29.            ROW(3,17)  MENU(@S7),USE(Mem:PrnDest_),HUE(14,1),SEL(0,7),REQ
  30. Choice1         COL(26)    STRING(7),HUE(3,1),SEL(0,3)
  31. Choice2         COL(34)    STRING(6),HUE(3,1),SEL(0,3)
  32. Choice3         COL(41)    STRING(4),HUE(3,1),SEL(0,3)
  33.               .
  34.            ROW(4,17)  ENTRY(@S30),USE(Tmp:PrnName_),HUE(14,1),SEL(0,7),LFT,UPR
  35.          COL(17)  ENTRY(@S30),USE(Tmp:File),HUE(14,1),SEL(0,7),REQ,LFT,UPR
  36.            ROW(5,17)  ENTRY(@N3),USE(Copies_),HUE(14,1),SEL(0,7),INS,REQ
  37.          COL(20)  ENTRY,USE(?Last_Field)
  38.          .
  39.  
  40.          GROUP,PRE(Tmp)
  41. PrnName_       STRING(SIZE(Mem:PrnName_))
  42. SaveDest       STRING(SIZE(Mem:PrnDest_))
  43. File           STRING(SIZE(Mem:Device))
  44. RetVal           BYTE
  45.          .
  46.  
  47.   !--------------
  48.   ! Code Section
  49.   !--------------
  50.   CODE
  51.   OpenPC_(PrnCtl__O#)
  52.   Tmp:RetVal = False
  53.  
  54.   !------------------
  55.   ! Initalize Screen
  56.   !------------------
  57.   OPEN(Screen)                     !Open Screen
  58.   DO SetMenu
  59.   ERASE(?Tmp:File)
  60.   ERASE(?Tmp:PrnName_)
  61.   LOOP                         !Loop
  62.     Scr:Message=CENTER(Mem:Message,SIZE(Scr:Message)) !Set Screen Message
  63.     ALERT                     !  Clear Alerted Keys
  64.     ALERT(Accept_Key)                 !  Alert Accept Key
  65.     ALERT(Reject_Key)                 !  Alert Reject Key
  66.     ALERT(Tab_Key)                 !  Alert Tab Key
  67.     ALIAS(Up_Key,Esc_Key)
  68.     ACCEPT                     !  Get A Field
  69.     ALIAS(Up_Key,Up_Key)
  70.     UPDATE(?)
  71.     CLEAR(Mem:Message)                 !  Clear Message
  72.  
  73.     IF KEYCODE() = Reject_Key             !  If Reject Key Pressed
  74.       BREAK                     !    Quit Procedure
  75.     ELSIF KEYCODE() = Tab_Key             !  If Tab Key Pressed
  76.       UPDATE(?)                     !    Save Current Field
  77.     ELSIF KEYCODE() = Accept_Key         !  If Accept Key Pressed
  78.       UPDATE(?)                     !    Save Current Field
  79.       SELECT(?)                     !    Select Same Field
  80.       SELECT                     !    Turn On Full Screen Mode
  81.       CYCLE                     !    Cycle For Another Accept
  82.     .                         !  .
  83.  
  84.     CASE FIELD()                 !  Depending On Field
  85.  
  86.     OF ?First_Field                 !  If First Field
  87.       IF KEYCODE()=Esc_Key THEN BREAK.         !    Break On Esc Key
  88.  
  89.     OF ?Mem:PrnDest_                 !  If Destination Field
  90.       CASE Mem:PrnDest_                 !    Depending On Choice
  91.  
  92.       OF 'Printer'                 !    If "Printer"
  93.     ERASE(?Tmp:File)
  94.     Tmp:PrnName_ = Mem:PrnName_
  95.     DISPLAY(?Tmp:PrnName_)
  96.     Dest_ = eToPrinter             !    Printing
  97.     SELECT(?)                 !
  98.     IF sAskPrnName OR Mem:PrnName_=''
  99.       SELECT(?Tmp:PrnName_)             !
  100.     ELSE
  101.       SELECT(?Copies_)             !    Select Next Field
  102.     .
  103.  
  104.       OF 'Screen'                 !    If "Screen"
  105.     ERASE(?Tmp:File)
  106.     ERASE(?Tmp:PrnName_)
  107.     Mem:Device = RandomFile_()         !    Create Random Filename
  108.     Tmp:File = 'CON';  DISPLAY(?Tmp:File)     !    Set Device For "Con"
  109.     Dest_ = eToScreen             !    Viewing
  110.     Copies_ = 1                 !
  111.     SELECT(?)                 !    Turn Off Full Screen
  112.     SELECT(?Last_Field)             !    Select Next Field
  113.  
  114.       OF 'Disk'                     !    If "Disk"
  115.     ERASE(?Tmp:File)             !
  116.     ERASE(?Tmp:PrnName_)             !
  117.     Dest_ = eToDisk                 !    Disking
  118.     SELECT(?)                 !    Turn Off Full Screen
  119.     SELECT(?Tmp:File)             !    Jump To File Field
  120.       .                         !    .
  121.  
  122.     OF ?Tmp:PrnName_                 !  If Printer Field
  123.       SELECT(?Tmp:PrnName_)             !    Turn Off Full Screen
  124.       IF GetPrnCtl_(Tmp:PrnName_,Mem:Device)
  125.     DISPLAY(?Tmp:PrnName_)
  126.     SELECT(?Copies_)             !    Select Next Field
  127.       .
  128.  
  129.     OF ?Tmp:File !Only When "File" Chosen     !  If File Field
  130.       IF SUB(UPPER(CLIP(Tmp:File)),-4,4)='.DAT'     !    If Extension Is .Dat
  131.     Mem:Message='Name cannot end with ".DAT"'!    Display Error Message
  132.     BEEP                     !    Beep
  133.     SELECT(?)                 !    Select Same Field
  134.       ELSE                     !    Else (Not .Dat)
  135.     Mem:Device = Tmp:File             !    Save In Global Device
  136.     Copies_ = 1                 !
  137.     SELECT(?)                 !    Turn Off Full Screen
  138.     SELECT(?Last_Field)             !    Select Next Field
  139.       .                         !    .
  140.  
  141.     OF ?Last_Field                 !  If Pause Field
  142.       IF KEYCODE() = Enter_Key     |         !    If Enter Key Pressed
  143.       OR KEYCODE() = Accept_Key             !    Or Accept Key Pressed
  144.     IF Dest_=eToPrinter
  145.       INCLUDE('ChkPrn_.Cpy')
  146.     .
  147.     Tmp:RetVal = True             !
  148.     BREAK                     !    Break From Edit Loop
  149.       ELSE                     !    Else (Invalid Key)
  150.     SELECT(?)                 !    Stay in Pause Field
  151.     IF KEYCODE() THEN BEEP.             !    Beep If Not Full Screen
  152.   . . .                         !. . .
  153.   DO Quit
  154.  
  155. Quit ROUTINE
  156.   ClosePC_(PrnCtl__O#)
  157.   RETURN(Tmp:RetVal)
  158.  
  159. SetMenu ROUTINE
  160.   IF OMITTED(eViewingParm)
  161.     Scr:Choice1 = 'Printer'
  162.     Scr:Choice2 = 'Screen'
  163.     Scr:Choice3 = 'Disk'
  164.   ELSE
  165.     Scr:Choice1     = 'Printer'
  166.     Scr:Choice2     = 'Disk'
  167.     Scr:Choice3     = ''
  168.     Tmp:SaveDest = Mem:PrnDest_
  169.     Mem:PrnDest_ = ''
  170.   .
  171.  
  172.   EJECT
  173.