home *** CD-ROM | disk | FTP | other *** search
/ Media Share 9 / MEDIASHARE_09.ISO / clarion / control.zip / CONTROL2.CLA < prev    next >
Text File  |  1988-08-14  |  5KB  |  118 lines

  1.          MEMBER('CONTROLS')
  2.  
  3. CHOOSE         PROCEDURE(MODE)
  4.  
  5. MODE      STRING(6)
  6.  
  7. PRTSELECT    SCREEN      HLP('SCROLL'),HUE(7,0)
  8.            ROW(6,21)  PAINT(16,41),HUE(0,7)
  9.            ROW(5,20)  STRING('╔═{40}╗'),HUE(4,0)
  10.            ROW(6,20)  REPEAT(16);STRING('║<0{40}>║'),HUE(4,0) .
  11.            ROW(22,20) STRING('╚═{40}╝'),HUE(4,0)
  12.            ROW(2,22)  STRING('Choose your printer from the list below'),HUE(14,0)
  13.               REPEAT(16),INDEX(NDX)
  14.            ROW(6,22)    POINT(1,38),USE(?POINT)
  15. PCODE         COL(23)    STRING(8)
  16. PDESC         COL(34)    STRING(25)
  17.               .
  18. MSG           ROW(24,1)  STRING(80),HUE(10,0)
  19.          .
  20.  
  21. SCROLL_GRP   GROUP                 !SCROLL PROCEDURE PARAMETERS
  22. FLD           BYTE(?POINT)             !  FIELD NUMBER OF ?POINT
  23. PTR           LONG                 !  POINTER() OF TOP RECORD
  24. NEW_PTR           LONG                 !  POINTER() OF INSERTED RECORD
  25. NDX           BYTE                 !  REPEAT INDEX
  26. FIRST_NDX      BYTE                 !  FIRST ROW TO BE DISPLAYED
  27. LAST_NDX       BYTE                 !  LAST ROW TO BE DISPLAYED
  28. ROWS           BYTE(16)                 !  NUMBER OF ROWS TO SCROLL
  29.                          !  MUST MATCH REPEAT COUNT
  30. COLS           BYTE(38)                 !  NUMBER OF COLUMNS TO SCROLL
  31.                          !  MUST MATCH # IN POINT
  32. RECS           LONG                 !  RECORDS() IN FILE
  33.          .
  34. SAVE_NDX     BYTE                 !SAVE AREA FOR REPEAT INDEX
  35.          EJECT
  36.  
  37.   CODE
  38.   BLANK(1,1,25,80)                 !CLEAR THE SCREEN
  39.   ALERT(F9_KEY)                     !ALERT THE F9 KEY
  40.   RECS = RECORDS(PRTFILE)             !GET # OF RECORDS IN FILE
  41.   IF ~RECS THEN UPDATEPRT(ENTER).         !IF NO RECORDS, ABORT SCROLL
  42.   IF RECS <> RECORDS(PRTFILE)             !IF RECORD WAS ADDED TO FILE
  43.     RECS = RECORDS(PRTFILE)             !  ADJUST RECORD COUNTER
  44.     NEW_PTR = POINTER(PRTKEY)             !  SET TO RECORD JUST ADDED
  45.   .                         !END IF RECS
  46.   IF KEYCODE() = F9_KEY THEN RETURN.         !RETURN TO MENU IF ABORT ENTRY
  47.   OPEN(PRTSELECT)                 !OPEN WINDOW TO SCROLL
  48.   IF MODE = 'CONFIG'                 !IF CONFIGURE MODE
  49.     MSG = '<24> <25> to Scroll   INS to ADD   DEL to DELETE   ' &     |
  50.       'ENTER to CHANGE  F9 to Exit'
  51.   ELSE
  52.     MSG = 'F9 key to Exit'
  53.  
  54.   .                         !END IF MODE
  55.   MSG = CENTER(MSG)                 !CENTER THE MESSAGE
  56.   NEW_PTR = 0                     !
  57.   NDX = 1                     !    INITIALIZE
  58.   PTR = 1                     !        VARIABLES
  59.   FIRST_NDX = 1                     !
  60.   LAST_NDX = ROWS                 !
  61.   IF RECS < ROWS THEN LAST_NDX = RECS.         !ADJUST FOR LESS RECORDS
  62.   LOOP                         !MAIN LOOP
  63.     SAVE_NDX = NDX                 !  SAVE THE INDEX
  64.     SET(PRTKEY,PTR+FIRST_NDX-1)             !  SET TO START OF KEY FILE
  65.     LOOP NDX = FIRST_NDX TO LAST_NDX         !  LOOP FOR ALL RECORDS
  66.       NEXT(PRTFILE)                 !    GET NEXT RECORD
  67.       PCODE = PRINTER                 !    DISPLAY
  68.       PDESC = DESCRIP                 !       SCREEN
  69.     .                         !  END LOOP
  70.     CLEAR(RECORD)                 !  CLEAR THE RECORD AREA
  71.     NDX = SAVE_NDX                 !  RESTORE INDEX
  72.     ALERT(F9_KEY)                 !  ALERT F9 KEY
  73.     ACCEPT                     !  GET A KEY
  74.     ALERT()                     !  RESET ALERTS
  75.     CASE KEYCODE()                 !  IF THE KEY WAS
  76.     OF F9_KEY                     !  CONTROL ESCAPE
  77.       RETURN                     !    EXIT PROGRAM
  78.     OF ENTER_KEY                 !  ENTER KEY
  79.       PRINTER = PCODE                 !    SET KEY FROM SCREEN STRING
  80.       DESCRIP = PDESC                 !    SET KEY FROM SCREEN STRING
  81.       GET(PRTFILE,PRTKEY)             !    GET THE RECORD BY KEY
  82.       IF ERROR() THEN STOP(ERROR()).         !    CHECK FOR UNEXPECTED ERROR
  83.       IF MODE = 'SELECT'             !    IF SELECT MODE
  84.     IF RECORDS(ARSINFO) > 0             ! CHECK IF ANY RECORDS IN ARSINFO
  85.       GET(ARSINFO,1)             ! GET ARSCONTROL FILE RECORD
  86.       INF:PRINTER = KEYGRP             ! SET PRINTER FIELD TO KEY
  87.       PUT(ARSINFO)                 ! SAVE ARSCONTROL FILE
  88.     ELSE                     !  NO RECORDS
  89.       INF:PRINTER = KEYGRP             ! SET PRINTER FIELD TO KEY
  90.       ADD(ARSINFO)                 ! ADD A RECORD
  91.     .
  92.     PSELECT = KEYGRP             !    SAVE KEY
  93.     RETURN                     !    RETURN TO MAIN MENU
  94.       .                         !    END IF
  95.       UPDATEPRT(CHANGE)                 !    CALL ADC FOR CHANGE
  96.     OF INS_KEY                     !  INSERT KEY
  97.       IF MODE = 'SELECT' THEN CYCLE.         !    IF SELECT MODE, REDISPLAY
  98.       UPDATEPRT(ENTER)                 !    CALL UPDATE PRINT IN ENTER MODE
  99.       IF RECS <> RECORDS(PRTFILE)         !    IF RECORD WAS ADDED TO FILE
  100.     RECS = RECORDS(PRTFILE)             !    ADJUST RECORD COUNTER
  101.     NEW_PTR = POINTER(PRTKEY)         !    SET TO RECORD JUST ADDED
  102.       .                         !    END IF
  103.     OF DEL_KEY                     !  DELETE KEY
  104.       IF MODE = 'SELECT' THEN CYCLE.         !    IF SELECT MODE, REDISPLAY
  105.       PRINTER = PCODE                 !    SET KEY FROM SCREEN STRING
  106.       DESCRIP = PDESC                 !    SET KEY FROM SCREEN STRING
  107.       GET(PRTFILE,PRTKEY)             !    GET THE RECORD BY KEY
  108.       IF ERROR() THEN STOP(ERROR()).         !    CHECK FOR UNEXPECTED ERROR
  109.       UPDATEPRT(REMOVE)                 !    CALL UPDATE PRINT IN REMOVE MODE
  110.       RECS = RECORDS(PRTFILE)             !    RESET RECORD COUNTER
  111.       IF ~RECS THEN UPDATEPRT(ENTER).         !    IF NO RECORDS, ABORT SCROLL
  112.       IF RECS <> RECORDS(PRTFILE)         !    IF RECORD WAS ADDED TO FILE
  113.     RECS = RECORDS(PRTFILE)             !    ADJUST RECORD COUNTER
  114.     NEW_PTR = POINTER(PRTKEY)         !    SET TO RECORD JUST ADDED
  115.     . .                         !  END CASE, IF
  116.     SCROLLIT(SCROLL_GRP)             !CALL SCROLL PROCEDURE IN MISC
  117.   .                         !END MAIN LOOP
  118.