home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Media Share 9
/
MEDIASHARE_09.ISO
/
clarion
/
tkmengen.zip
/
FORM.CLA
< prev
next >
Wrap
Text File
|
1989-08-24
|
9KB
|
186 lines
MEMBER('MAKEMENU')
!========================================== FORM Procedure form =====
form PROCEDURE
!================ SCREEN for form =====
screen SCREEN WINDOW(25,80),AT(1,1),PRE(scr),HUE(15,1)
ROW(8,3) PAINT(15,76),HUE(0,7)
ROW(1,1) STRING('╔═{78}╗')
ROW(2,1) REPEAT(2),EVERY(2);STRING('║<0{78}>║') .
ROW(3,1) REPEAT(2),EVERY(3);STRING('╟─{78}╢') .
ROW(5,1) REPEAT(2),EVERY(19);STRING('║<0{78}>║') .
ROW(7,1) REPEAT(16);STRING('║<0{78}>║') .
ROW(23,1) STRING('╟─{78}╢')
ROW(25,1) STRING('╚═{78}╝')
ROW(4,3) STRING('MAIN MENU SELECTION NO')
ROW(7,3) STRING('SUBMENU MENU DESCRIPTION {35}PROCEDURE')
ROW(24,3) STRING(' F1 '),HUE(15,4)
COL(11) STRING('HELP'),HUE(11,1)
COL(30) STRING(' F9 '),HUE(15,4)
COL(38) STRING('NO CHANGE'),HUE(11,1)
COL(56) STRING(' F10 '),HUE(15,4)
COL(64) STRING(' ACCEPT'),HUE(11,1)
title ROW(2,21) STRING(40),HUE(14,2)
recno ROW(4,27) STRING(@P##P),HUE(15,1)
COL(31) STRING(':')
COL(38) ENTRY(@S25),USE(men:mainmenu),LFT
ROW(5,3) STRING('DESCRIPTION :')
COL(19) ENTRY(@S60),USE(men:mdesc),LFT
REPEAT(15),INDEX(line)
ROW(8,3) POINT(1,76),USE(?line),ESC(?men:mdesc)
COL(3) ENTRY(@S10),USE(dsp:s15smenu),ESC(?line)
COL(14) ENTRY(@S50),USE(dsp:s80sdesc)
COL(65) ENTRY(@S12),USE(dsp:s15subproc)
.
ROW(25,23) PAUSE(confirm_it),USE(?complete),HUE(30,1)
.
!== Variables for FORM Procedure form ===
dsp_entry group
dsp_ent GROUP,DIM(15),PRE(DSP) !ENTRIES TO BE DISPLAYED
s15SmENU STRING(25)
s80SDesc STRING(80)
s15SubProc STRING(12)
. .
bbExit BYTE ! Boolean to indicate exit from procedure
ilSavePtr LONG ! Save or record pointer
isEditRange SHORT
isFldNum SHORT
isSaveAct SHORT ! Temp save of isAction
ibRepeat BYTE ! Repeat index for point field
CONFIRM_IT STRING(34)
BATCH SHORT !BATCH # ENTERED
LINE SHORT !LINE NUMBER
POINTER SHORT !RELATIVE RECORD POINTER
KEY SHORT
CODE
OPEN(SCREEN) !DISPLAY SCREEN
LOOP
!SET(MEN:MENU)
IF isAction = 1
SET(MEN:MENU)
PREVIOUS(MENU)
SCR:RECNO = RECORDs(MENU)+1
CLEAR(MEN:RECORD)
Men:recno = scr:RECNO
ELSE
SCR:RECNO = MEN:RECNO
END
dsp_entry=men:garray
DISPLAY
CASE ISACTION !which action?
OF 1 !ADDING DEPARTMENT
SCR:TITLE = CENTER('Menu Data Will Be Added' , SIZE(SCR:TITLE))
CONFIRM_IT = '══╡ Press F10 to Add Menu Data ╞══'
SELECT(?men:MAINMENU)
OF 2 !CHANGING DEPARTMENT
SCR:TITLE = CENTER('Menu Data Will Be Changed',SIZE(SCR:TITLE))
CONFIRM_IT = '╡ Press F10 to Change Menu Data ╞═'
SELECT(?MEN:MAINMENU)
OF 3 !DELETING DEPARTMENT
SCR:TITLE = CENTER('Menu Data Will Be Deleted',SIZE(SCR:TITLE))
CONFIRM_IT = '╡ Press F10 to Delete Menu Data ╞═'
SELECT(?COMPLETE)
.
LOOP LINE = 1 TO 15 !LOOP THROUGH THE 15 LINES
IF DSP:S15SMENU[LINE] ='' THEN CYCLE. !DON'T DISPLAY IF NO ENTRY
DISPLAY(?DSP:S15SMENU,?DSP:S15SUBPROC) !DISPLAY ACCT, DESC, & AMT
END !END IF, IF, & LOOP
LOOP !LOOP THROUGH SCREEN ENTRY
ALERT() !clear alert keys
ALERT(F9_KEY) !alert F9 thru F10 keys
ALERT(F10_KEY)
ACCEPT !GET ENTRY FROM SCREEN
KEY = KEYCODE() ! set key code
IF KEY = F9_KEY !IF CTRL-ESC [END OF JOB]
RETURN !EXIT PROGRAM
. !END IF KEYCODE
CASE FIELD() !DETERMINE WHICH FIELD ENTERED
OF ?men:mainmenu
IF men:mainmenu = '' ! ┌─ If required field is empty
BEEP ! │ Sound keyboard alarm
SELECT(?men:mainmenu) ! │ And stay on this field
CYCLE ! │
END ! └─ End
OF ?men:mdesc
IF men:mdesc = '' ! ┌─ If required field is empty
BEEP ! │ Sound keyboard alarm
SELECT(?men:mdesc) ! │ And stay on this field
CYCLE ! │
END ! └─ End
LINE = 1 !SET TO FIRST OF THE 15 LINES
IF DSP:S15SMENU[LINE] = '' !IF NO ENTRIES FOR THIS SEGMENT
SELECT(?DSP:S15SMENU) ! SET TO ACCT # ENTRY
ELSE
SELECT(?LINE) ! SET TO THE POINT FIELD
END
OF ?LINE !POINT FIELD SELECTION
IF CHOICE() = 0 !NO SELECTION MADE
SELECT(?COMPLETE) !GO TO CTRL-ENTER FIELD
. !END IF
OF ?DSP:S15SMENU !ACCOUNT NUMBER ENTRY
IF DSP:s15SMenu[LINE] = '' !ACCOUNT SET TO ZERO
ERASE(?,?+2) !CLEAR DESC & AMT
I#=1
LOOP WHILE I#<=15
IF s15SMenu[I#]=''
LOOP J#=i#+1 to 15
dsp_ent[J#-1]=dsp_ent[j#]
END
END
I#+=1
END
MEN:garray = DSP_ENTRY !MOVE ENTRY SEGMENT TO TABLE
LOOP LINE = 1 TO 15 !DISPLAY ITEM NUMBERS
ERASE(?DSP:S15SMENU,?DSP:S15SUBPROC) ! CLEAR DISPLAY FIELDS
END !END LOOP
dsp_entry=men:garray
LOOP LINE = 1 TO 15 !LOOP THROUGH THE 15 LINES
IF DSP:S15SMENU[LINE] ='' THEN CYCLE. !DON'T DISPLAY IF NO ENTRY
DISPLAY(?DSP:S15SMENU,?DSP:S15SUBPROC) !DISPLAY ACCT, DESC, & AMT
END !END IF, IF, & LOOP
SELECT(?COMPLETE) !GO TO CONTROL ENTER FIELD
END !END IF
OF ?DSP:s80sdesc !DESCRIPTION FIELD ENTRY
OF ?DSP:s15subproc !AMOUNT FIELD ENTRY
IF LINE = 15 !IF LAST LINE
SELECT(?COMPLETE) ! GO TO COMPLETION FIELD
CYCLE ! CYCLE
END !END IF
LINE += 1 !INCREMENT INDEX
SELECT(?DSP:s15sMenu) !SKIP POINT FIELD
OF ?COMPLETE !COMPLETE THIS SCREEN
!OROF ?DONE !DONE FIELD
IF KEY = F10_KEY ! F10 accepts window
UPDATE
EXECUTE ISACTION !WHICH ACTION?
ADD(MENU) ! add a deptment record
PUT(MENU) ! change a deptment record
DELETE(MENU) ! delete a deptment record
.
RETURN
ELSE
BEEP ! PRESSED, BEEP
SELECT(?) ! AND STAY ON SAME FIELD
CYCLE !
. !END IF KEYCODE
IF KEY = F10_KEY THEN SELECT(?complete). !exit window on F10
. !END CASE & LOOP
. .