home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Media Share 9
/
MEDIASHARE_09.ISO
/
clarion
/
tkmengen.zip
/
DESIGN.CLA
< prev
next >
Wrap
Text File
|
1990-03-23
|
7KB
|
186 lines
MEMBER('MAKEMENU')
!=================================================== A TABLE Procedure =====
DESIGN PROCEDURE
!====== SCREEN for Procedure main =====
SCREEN SCREEN WINDOW(20,80),AT(4,1),PRE(SCR),HUE(7,4,0)
ROW(8,3) PAINT(10,76),HUE(8,7)
ROW(1,1) STRING('╔═{78}╗'),ENH
ROW(2,1) REPEAT(3);STRING('║<0{78}>║'),ENH .
ROW(5,1) REPEAT(2),EVERY(2);STRING('╟─{78}╢'),ENH .
ROW(6,1) REPEAT(2),EVERY(13);STRING('║<0{78}>║'),ENH .
ROW(8,1) REPEAT(10);STRING('║<0{78}>║'),ENH .
ROW(18,1) STRING('╟─{78}╢'),ENH
ROW(20,1) STRING('╚═{78}╝'),ENH
ROW(2,4) STRING('Name of Data File :'),HUE(14,4)
COL(43) STRING('Setup File Name'),HUE(14,4)
ROW(3,38) STRING(' '),HUE(14,4)
COL(43) STRING('Screen'),HUE(14,4)
ROW(4,4) STRING('Member of Program'),HUE(14,4)
ROW(6,4) STRING('MENU ITEM {24}MENU DESCRIPTION'),ENH
ROW(19,3) STRING(' INS '),HUE(4,7)
COL(9) STRING('Insert'),ENH
COL(20) STRING(' DEL '),HUE(4,7)
COL(26) STRING('Delete'),ENH
COL(36) STRING(' RETURN '),HUE(4,7)
COL(45) STRING('Change'),ENH
COL(55) STRING(' ESC '),HUE(4,7)
COL(61) STRING('or'),ENH
COL(64) STRING(' CTRL-ESC '),HUE(4,7)
COL(75) STRING('Exit'),ENH
COL(79) ENTRY,USE(?FIRST_FIELD)
ROW(2,25) STRING(' '),HUE(14,4)
COL(27) ENTRY(@S8),USE(MEM:S8DFNAME),HUE(11,4),SEL(0,7),REQ,UPR
ROW(3,4) STRING('Name of Menu Procedure:'),HUE(14,4)
COL(27) ENTRY(@S8),USE(MEM:S12DFNAME),HUE(11,4),SEL(0,7),REQ
ROW(4,22) STRING(':'),HUE(14,4)
COL(27) ENTRY(@S8),USE(MEM:PROGNAME),HUE(11,4),SEL(0,7),REQ,NUM,UPR
ROW(2,59) STRING(':'),HUE(14,4)
COL(63) ENTRY(@S8),USE(MEM:SET_UP),HUE(11,4),SEL(0,7),REQ,UPR
ROW(3,50) STRING('File Name:'),HUE(14,4)
COL(63) ENTRY(@S8),USE(MEM:SCRNAME),HUE(11,4),SEL(0,7),REQ,UPR
ROW(4,43) STRING('Idle Procedure Name:'),HUE(14,4)
COL(63) ENTRY(@S12),USE(MEM:IDLENAME),HUE(11,4),SEL(0,7),UPR
REPEAT(10),INDEX(NDX)
ROW(8,4) POINT(1,74),USE(?POINT),ESC(?-1),SEL(15,0)
MAINMENU COL(4) STRING(10),HUE(0,3)
MDESC COL(18) STRING(60),HUE(0,3)
. .
FLD BYTE(?POINT) ! field number of ?POINT
PTR LONG ! pointer to top record
NEW_PTR LONG ! pointer to inserted record
NDX BYTE ! repeat structure index
FIRST_NDX BYTE ! first row to be displayed
LAST_NDX BYTE ! last row to be displayed
ROWS BYTE(09) ! number of rows to scroll
COLS BYTE(78) ! number of columns to scroll
RECS LONG ! records in file
KEY SHORT !last key pressed
isEditRange SHORT
isFldNum SHORT
CODE !begin executable statements
OPEN(SCREEN) !open the employee screen
setcursor
PTR = 1 !pointer to top record
NEW_PTR = 0 !pointer to inserted record
NDX = 1 !repeat structure index
FIRST_NDX = 1 !first row to be displayed
! SELECT(?POINT) !select point field
LOOP !loop
ALERT() ! clear all alerted keys
ALERT(Ins_key)
ALERT(DEL_KEY)
ALERT(ESC_KEY)
ALERT(ENTER_KEY)
ALERT(CTRL_ESC)
ACCEPT ! get the point field
isEDitRange=Field()
KEY = KEYCODE() ! set key code
IF KEY = ENTER_KEY AND | ! █ ┌─ On screen accept key
isEditRange <> ?POINT ! █ │ And not on the point field
UPDATE ! █ │ Move all fields from screen
isEditRange = ?POINT - 1 ! █ │ And edit remaining fields
SELECT(?POINT) ! █ │ If ok then start here next
END ! █ └─ End if KeyCode =
IF KEY = ESC_KEY OR KEY = CTRL_ESC ! return on F9 or F10
RETURN ! return
. ! end if
IF ~RECS THEN KEY = INS_KEY. ! add record to empty file
LOOP isFldNum = FIELD() TO isEditRange
CASE isFldNum
OF ?FIRST_FIELD
IF KEY = ESC_KEY OR KEY = CTRL_ESC ! return on F9 or F10
RETURN ! return
. ! end if
OF ?mem:s8dfname
IF mem:s8dfname = '' ! ┌─ If required field is empty
BEEP ! │ Sound keyboard alarm
SELECT(?mem:s8dfname) ! │ And stay on this field
BREAK ! │
END ! └─ End
OPEN(menu) ! Open the file
IF ERRORCODE() = 2 ! ┌─ If not found,
CREATE(menu) ! │ then create
END ! └─ Endif
SET(MEN:MENU)
RECS = RECORDS(MENU)
DO FILL_SCROLL !fill scroll area of screen
OF ?mem:s12DFName
IF mem:s12DFName= '' ! ┌─ If required field is empty
BEEP ! │ Sound keyboard alarm
SELECT(?mem:s12DFName) ! │ And stay on this field
BREAK ! │
END ! └─ End
OF ?mem:PROGNAME
IF mem:PROGNAME = '' ! ┌─ If required field is empty
BEEP ! │ Sound keyboard alarm
SELECT(?mem:PROGNAME) ! │ And stay on this field
BREAK ! │
END ! └─ End
OF ?mem:SET_UP
IF mem:SET_UP = '' ! ┌─ If required field is empty
BEEP ! │ Sound keyboard alarm
SELECT(?mem:SET_UP) ! │ And stay on this field
BREAK ! │
END ! └─ End
OF ?mem:SCRnAME
IF mem:SCRNAME= '' ! ┌─ If required field is empty
BEEP ! │ Sound keyboard alarm
SELECT(?mem:SCRNAME) ! │ And stay on this field
BREAK ! │
END ! └─ End
OF ?mem:IDLENAME
IF mem:IDLENAME= '' ! ┌─ If required field is empty
BEEP ! │ Sound keyboard alarm
SELECT(?mem:IDLENAME) ! │ And stay on this field
BREAK ! │
END ! └─ End
OF ?POINT
CASE KEY ! what key was pressed?
OF INS_KEY !ADD A RECORD TO FILE
CLEAR(MEN:RECORD) ! clear the record
ISaction=1
form
NEW_PTR = POINTER(MENU) ! new pointer to added dept
OF ENTER_KEY !CHANGE A RECORD IN FILE
GET(MEN:MENU,PTR+NDX-1) ! get the record
ISACTION = 2
FORM
OF DEL_KEY !DELETE A FILE RECORD
GET(MEN:MENU,PTR+NDX-1) ! get the record
ISACTION=3
FORM
.
IF KEY=ESC_KEY OR KEY=CTRL_ESC OR KEYCODE()=F9_KEY THEN RETURN. !NO CHANGES
RECS = RECORDS(MENU) !refresh record count
DO FILL_SCROLL !fill scroll area of screen
. . . !end loop
FILL_SCROLL ROUTINE !ROUTINE STATEMENT
IF ROWS > RECS !IF MORE ROWS THAN RECORDS
LAST_NDX = RECS ! set last index to recs
ELSE !OTHERWISE
LAST_NDX = ROWS ! set last index to rows
.
BLANK(11,3,10,75)
IF FIRST_NDX <= LAST_NDX !if records are to be displayed
SAVE_NDX# = NDX ! save repeat index
SET(MEN:MENU,PTR+FIRST_NDX-1) ! set to 1st dept. on screen
LOOP NDX = FIRST_NDX TO LAST_NDX ! loop thru the screen
NEXT(MENU) ! read next department record
SCR:MAINMENU = MEN:MAINMENU ! display the department name
SCR:MDESC = MEN:MDESC ! display the department name
. !end loop
NDX = SAVE_NDX# !reset the repeat index
. !end if