home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Media Share 9
/
MEDIASHARE_09.ISO
/
clarion
/
control.zip
/
CONTROL2.CLA
< prev
next >
Wrap
Text File
|
1988-08-14
|
5KB
|
118 lines
MEMBER('CONTROLS')
CHOOSE PROCEDURE(MODE)
MODE STRING(6)
PRTSELECT SCREEN HLP('SCROLL'),HUE(7,0)
ROW(6,21) PAINT(16,41),HUE(0,7)
ROW(5,20) STRING('╔═{40}╗'),HUE(4,0)
ROW(6,20) REPEAT(16);STRING('║<0{40}>║'),HUE(4,0) .
ROW(22,20) STRING('╚═{40}╝'),HUE(4,0)
ROW(2,22) STRING('Choose your printer from the list below'),HUE(14,0)
REPEAT(16),INDEX(NDX)
ROW(6,22) POINT(1,38),USE(?POINT)
PCODE COL(23) STRING(8)
PDESC COL(34) STRING(25)
.
MSG ROW(24,1) STRING(80),HUE(10,0)
.
SCROLL_GRP GROUP !SCROLL PROCEDURE PARAMETERS
FLD BYTE(?POINT) ! FIELD NUMBER OF ?POINT
PTR LONG ! POINTER() OF TOP RECORD
NEW_PTR LONG ! POINTER() OF INSERTED RECORD
NDX BYTE ! REPEAT INDEX
FIRST_NDX BYTE ! FIRST ROW TO BE DISPLAYED
LAST_NDX BYTE ! LAST ROW TO BE DISPLAYED
ROWS BYTE(16) ! NUMBER OF ROWS TO SCROLL
! MUST MATCH REPEAT COUNT
COLS BYTE(38) ! NUMBER OF COLUMNS TO SCROLL
! MUST MATCH # IN POINT
RECS LONG ! RECORDS() IN FILE
.
SAVE_NDX BYTE !SAVE AREA FOR REPEAT INDEX
EJECT
CODE
BLANK(1,1,25,80) !CLEAR THE SCREEN
ALERT(F9_KEY) !ALERT THE F9 KEY
RECS = RECORDS(PRTFILE) !GET # OF RECORDS IN FILE
IF ~RECS THEN UPDATEPRT(ENTER). !IF NO RECORDS, ABORT SCROLL
IF RECS <> RECORDS(PRTFILE) !IF RECORD WAS ADDED TO FILE
RECS = RECORDS(PRTFILE) ! ADJUST RECORD COUNTER
NEW_PTR = POINTER(PRTKEY) ! SET TO RECORD JUST ADDED
. !END IF RECS
IF KEYCODE() = F9_KEY THEN RETURN. !RETURN TO MENU IF ABORT ENTRY
OPEN(PRTSELECT) !OPEN WINDOW TO SCROLL
IF MODE = 'CONFIG' !IF CONFIGURE MODE
MSG = '<24> <25> to Scroll INS to ADD DEL to DELETE ' & |
'ENTER to CHANGE F9 to Exit'
ELSE
MSG = 'F9 key to Exit'
. !END IF MODE
MSG = CENTER(MSG) !CENTER THE MESSAGE
NEW_PTR = 0 !
NDX = 1 ! INITIALIZE
PTR = 1 ! VARIABLES
FIRST_NDX = 1 !
LAST_NDX = ROWS !
IF RECS < ROWS THEN LAST_NDX = RECS. !ADJUST FOR LESS RECORDS
LOOP !MAIN LOOP
SAVE_NDX = NDX ! SAVE THE INDEX
SET(PRTKEY,PTR+FIRST_NDX-1) ! SET TO START OF KEY FILE
LOOP NDX = FIRST_NDX TO LAST_NDX ! LOOP FOR ALL RECORDS
NEXT(PRTFILE) ! GET NEXT RECORD
PCODE = PRINTER ! DISPLAY
PDESC = DESCRIP ! SCREEN
. ! END LOOP
CLEAR(RECORD) ! CLEAR THE RECORD AREA
NDX = SAVE_NDX ! RESTORE INDEX
ALERT(F9_KEY) ! ALERT F9 KEY
ACCEPT ! GET A KEY
ALERT() ! RESET ALERTS
CASE KEYCODE() ! IF THE KEY WAS
OF F9_KEY ! CONTROL ESCAPE
RETURN ! EXIT PROGRAM
OF ENTER_KEY ! ENTER KEY
PRINTER = PCODE ! SET KEY FROM SCREEN STRING
DESCRIP = PDESC ! SET KEY FROM SCREEN STRING
GET(PRTFILE,PRTKEY) ! GET THE RECORD BY KEY
IF ERROR() THEN STOP(ERROR()). ! CHECK FOR UNEXPECTED ERROR
IF MODE = 'SELECT' ! IF SELECT MODE
IF RECORDS(ARSINFO) > 0 ! CHECK IF ANY RECORDS IN ARSINFO
GET(ARSINFO,1) ! GET ARSCONTROL FILE RECORD
INF:PRINTER = KEYGRP ! SET PRINTER FIELD TO KEY
PUT(ARSINFO) ! SAVE ARSCONTROL FILE
ELSE ! NO RECORDS
INF:PRINTER = KEYGRP ! SET PRINTER FIELD TO KEY
ADD(ARSINFO) ! ADD A RECORD
.
PSELECT = KEYGRP ! SAVE KEY
RETURN ! RETURN TO MAIN MENU
. ! END IF
UPDATEPRT(CHANGE) ! CALL ADC FOR CHANGE
OF INS_KEY ! INSERT KEY
IF MODE = 'SELECT' THEN CYCLE. ! IF SELECT MODE, REDISPLAY
UPDATEPRT(ENTER) ! CALL UPDATE PRINT IN ENTER MODE
IF RECS <> RECORDS(PRTFILE) ! IF RECORD WAS ADDED TO FILE
RECS = RECORDS(PRTFILE) ! ADJUST RECORD COUNTER
NEW_PTR = POINTER(PRTKEY) ! SET TO RECORD JUST ADDED
. ! END IF
OF DEL_KEY ! DELETE KEY
IF MODE = 'SELECT' THEN CYCLE. ! IF SELECT MODE, REDISPLAY
PRINTER = PCODE ! SET KEY FROM SCREEN STRING
DESCRIP = PDESC ! SET KEY FROM SCREEN STRING
GET(PRTFILE,PRTKEY) ! GET THE RECORD BY KEY
IF ERROR() THEN STOP(ERROR()). ! CHECK FOR UNEXPECTED ERROR
UPDATEPRT(REMOVE) ! CALL UPDATE PRINT IN REMOVE MODE
RECS = RECORDS(PRTFILE) ! RESET RECORD COUNTER
IF ~RECS THEN UPDATEPRT(ENTER). ! IF NO RECORDS, ABORT SCROLL
IF RECS <> RECORDS(PRTFILE) ! IF RECORD WAS ADDED TO FILE
RECS = RECORDS(PRTFILE) ! ADJUST RECORD COUNTER
NEW_PTR = POINTER(PRTKEY) ! SET TO RECORD JUST ADDED
. . ! END CASE, IF
SCROLLIT(SCROLL_GRP) !CALL SCROLL PROCEDURE IN MISC
. !END MAIN LOOP