STORE ' ' TO MC::PS STORE 10 TO MFUNC:NR STORE T TO MORE:: DO WHILE MORE:: IF I:NDX = 0 STORE 'OFF' TO NDX::STAT STORE ' ' TO I::IF ELSE STORE 'ON' TO NDX::STAT STORE ' NOT ' TO I::IF ENDIF IF MFUNC:NR > 9 .OR. MFUNC:NR < 0 STORE 10 TO MF::NR ERASE @ 0,0 SAY TRANS:CD + ' ' + BLD:DATE @ 0,40 SAY VER: @ 1,4 SAY TRIM(HEADER) + ' - MAINT. MENU' @ 3,10 SAY 'NR. MAINTENANCE TYPE' @ 5,10 SAY '1. PACK MASTER FILE' STORE 'MF::NR <> 1 ' TO T::IT STORE ' ' TO B::IT STORE 6 TO I::LN IF REPORT:1 <> ' ' @ I::LN,10 SAY '2. CREATE INDEX ON ' + REPORT:1 STORE I::LN + 1 TO I::LN STORE REPORT:1 TO REPORT1 STORE T::IT + '.AND. MF::NR <> 2 ' TO T::IT ENDIF IF REPORT:2 <> ' ' @ I::LN,10 SAY '3. CREATE INDEX ON ' + REPORT:2 STORE I::LN + 1 TO I::LN STORE REPORT:2 TO REPORT2 STORE T::IT + '.AND. MF::NR <> 3 ' TO T::IT ENDIF IF REPORT:3 <> ' ' @ I::LN,10 SAY '4. CREATE INDEX ON ' + REPORT:3 STORE I::LN + 1 TO I::LN STORE REPORT:3 TO REPORT3 STORE T::IT + '.AND. MF::NR <> 4 ' TO T::IT ENDIF IF REPORT:4 <> ' ' @ I::LN,10 SAY '5. CREATE INDEX ON ' + REPORT:4 STORE I::LN + 1 TO I::LN STORE REPORT:4 TO REPORT4 STORE T::IT + '.AND. MF::NR <> 5 ' TO T::IT ENDIF @ I::LN,10 SAY '6. CHANGE PASSWORD' STORE I::LN + 1 TO I::LN STORE B::IT + '.AND. MF::NR <> 6 ' TO B::IT @ I::LN,10 SAY '7. TURN INDEXES ' + NDX::STAT STORE B::IT + '.AND. MF::NR <> 7 ' TO B::IT STORE I::LN + 1 TO I::LN @ I::LN,10 SAY '8. LIST "' + TRIM(IN::FILE) + '" DATABASE STRUCTURE' STORE B::IT + '.AND. MF::NR <> 8 ' TO B::IT STORE I::LN + 1 TO I::LN @ I::LN,10 SAY '9. RETURN TO MAIN MENU' STORE B::IT + '.AND. MF::NR <> 9 ' TO B::IT @ 18,1 SAY 'NOTE: SINCE INDEXES ARE NOT ' + NDX::STAT @ 19,1 SAY ' PACK FUNCTION WILL' + I::IF + 'AUTOMATICALLY' @ 20,1 SAY ' RECREATE ALL INDEX FILES' ENDIF DO WHILE &T::IT &B::IT STORE ' ' TO NFUNC:NR @ 23,10 SAY 'ENTER DESIRED FUNCTION NR. ' GET NFUNC:NR PICTURE 'X' READ IF @(NFUNC:NR,NUM:CHK) > 0 STORE VAL(NFUNC:NR) TO MFUNC:NR ENDIF STORE MFUNC:NR TO MF::NR ENDDO DO CASE CASE MFUNC:NR = 1 PACK IF I:NDX = 0 IF REPORT:1 <> ' ' STORE TRANS:CD + '1' TO FILE INDEX ON &REPORT1 TO &FILE ENDIF IF REPORT:2 <> ' ' STORE TRANS:CD + '2' TO FILE INDEX ON &REPORT2 TO &FILE ENDIF IF REPORT:3 <> ' ' STORE TRANS:CD + '3' TO FILE INDEX ON &REPORT3 TO &FILE ENDIF IF REPORT:4 <> ' ' STORE TRANS:CD + '4' TO FILE INDEX ON &REPORT4 TO &FILE ENDIF ENDIF CASE MFUNC:NR =2 STORE TRANS:CD + '1' TO FILE INDEX ON &REPORT1 TO &FILE CASE MFUNC:NR = 3 STORE TRANS:CD + '2' TO FILE INDEX ON &REPORT2 TO &FILE CASE MFUNC:NR = 4 STORE TRANS:CD + '3' TO FILE INDEX ON &REPORT3 TO &FILE CASE MFUNC:NR =5 STORE TRANS:CD + '4' TO FILE INDEX ON &REPORT4 TO &FILE CASE MFUNC:NR = 6 STORE 0 TO IC::NT STORE ' ' TO O::WD , N::WD DO WHILE IC::NT < 3 @ 16,10 SET CONSOLE OFF @ 15,10 SAY 'ENTER OLD PASSWORD ' ACCEPT TO O::WD STORE !(O::WD) TO O::WD IF O::WD <> PASSWORD @ 16,10 SAY 'INVALID PASSWORD ' DO SWAIT STORE IC::NT + 1 TO IC::NT ELSE STORE 4 TO IC::NT ENDIF ENDDO IF IC::NT = 3 SET CONSOLE ON STORE 99 TO MFUNC::NR ELSE STORE 1 TO SWITCH DO WHILE SWITCH = 1 @ 16,10 SAY 'ENTER NEW PASSWORD ' ACCEPT TO N::WD IF @(' ',N::WD) <> 0 .OR. LEN(N::WD) <> 6 @ 16,10 SAY 'PASSWORD MUST BE SIX CHARACTERS!' DO SWAIT @ 16,10 LOOP ELSE STORE 0 TO SWITCH ENDIF ENDDO @ 17,10 SAY 'PASSWORD CHANGED' SELECT SECONDARY REPLACE PASSWORD WITH !(N::WD) SELECT PRIMARY SET CONSOLE ON STORE 99 TO MFUNC::NR ENDIF CASE MFUNC:NR = 7 STORE TRANS:CD + 'RP' TO IND:SW USE &IND:SW IF .NOT. IDXX: USE &IN::FILE IF 0 <> TEST(&REPORT1) STORE TRANS:CD + '1' TO FILE INDEX ON &REPORT1 TO &FILE ENDIF IF 0 <> TEST(&REPORT2) STORE TRANS:CD + '2' TO FILE INDEX ON &REPORT2 TO &FILE ENDIF IF 0 <> TEST(&REPORT3) STORE TRANS:CD + '3' TO FILE INDEX ON &REPORT3 TO &FILE ENDIF IF 0 <> TEST(&REPORT4) STORE TRANS:CD + '4' TO FILE INDEX ON &REPORT4 TO &FILE ENDIF USE &IND:SW ENDIF RESTORE FROM &RECORD IF IDXX: REPLACE IDXX: WITH F STORE 1 TO I:NDX ELSE REPLACE IDXX: WITH T STORE 0 TO I:NDX ENDIF RELEASE IND:SW SAVE TO &RECORD STORE T TO MORE:: USE &IN::FILE CASE MFUNC:NR = 8 STORE ' ' TO H:CPY @ 16,10 SAY 'DO YOU WANT HARD COPY (Y/N) ? ' GET H:CPY READ IF H:CPY = 'Y' SET PRINT ON SET CONSOLE OFF LIST STRUCTURE SET PRINT OFF SET CONSOLE ON ELSE ERASE LIST STRUCTURE ? ? ' Hit Any KEY to Continue' SET CONSOLE OFF WAIT SET CONSOLE ON ENDIF CASE MFUNC:NR = 9 RETURN OTHERWISE ENDCASE ERASE STORE ' ' TO MC::PS DO WHILE MC::PS <> 'M' .AND. MC::PS <> 'P' @ 22,14 SAY 'FUNCTION COMPLETE' @ 23,8 SAY 'MAIN MENU = M, PROCESS = P ' GET MC::PS READ STORE !(MC::PS) TO MC::PS ENDDO IF MC::PS = 'M' STORE F TO MORE:: ENDIF STORE 10 TO MFUNC:NR ENDDO RETURN