IF I:NDX = 0 SET INDEX TO &NDX ENDIF IF VALL:: STORE 'DO ' + TRANS:CD + 'VL' TO SYS::VAL ELSE STORE '* ' TO SYS::VAL ENDIF RELEASE I:RUN, I:QUIT , I:FILE , IN::FILE , NDX , SYS::CHG , STOP:NR , ST: RELEASE MORE , CNT , SYS:DATE , I:WAIT , I:STOP STORE TRANS:CD + 'SG' TO SYS::STC STORE TRANS:CD + 'GE' TO SYS::GE STORE TRANS:CD + 'RE' TO SYS::RE STORE T TO ADJ::ING DO WHILE ADJ::ING STORE SELECT:4 TO SE::LECT4 STORE SELECT:2 TO SE::LECT2 STORE SELECT:3 TO SE::LECT3 STORE SELECT:1 TO SE::LECT1 STORE ' ' TO MC::PS STORE ' ' TO MF::IND STORE 0 TO MF::INT STORE ' ' TO T::IT STORE 3 TO I:LN ERASE @ 0,0 SAY TRANS:CD + ' ' + BLD:DATE @ 0,40 SAY VER: @ 1,5 SAY TRIM(HEADER) + ' - CHANGE' IF SELECT:1 <> ' ' @ I:LN,5 SAY '1. CHANGE RECORDS ON ' + SELECT:1 STORE T::IT + ' .AND. MF::INT <> 1' TO T::IT STORE I:LN + 1 TO I:LN IF TYPE(&SE::LECT1) = 'C' STORE $(SPACE,1,LEN(&SE::LECT1)) TO F::1 ELSE STORE 0 TO F::1 ENDIF ENDIF IF SELECT:2 <> ' ' @ I:LN,5 SAY '2. CHANGE RECORDS ON ' + SELECT:2 STORE T::IT + ' .AND. MF::INT <> 2' TO T::IT STORE I:LN + 1 TO I:LN IF TYPE(&SE::LECT2) = 'C' STORE $(SPACE,1,LEN(&SE::LECT2)) TO F::2 ELSE STORE 0 TO F::2 ENDIF ENDIF IF SELECT:3 <> ' ' @ I:LN,5 SAY '3. CHANGE RECORDS ON ' + SELECT:3 STORE T::IT + ' .AND. MF::INT <> 3' TO T::IT STORE I:LN + 1 TO I:LN IF TYPE(&SE::LECT3) = 'C' STORE $(SPACE,1,LEN(&SE::LECT3)) TO F::3 ELSE STORE 0 TO F::3 ENDIF ENDIF IF SELECT:4 <> ' ' @ I:LN,5 SAY '4. CHANGE RECORDS ON ' + SELECT:4 STORE T::IT + ' .AND. MF::INT <> 4' TO T::IT STORE I:LN + 1 TO I:LN IF TYPE(&SE::LECT4) = 'C' STORE $(SPACE,1,LEN(&SE::LECT4)) TO F::4 ELSE STORE 0 TO F::4 ENDIF ENDIF @ I:LN,5 SAY '5. RETURN TO MAIN MENU' STORE LEN(T::IT) - 7 TO I:STOP STORE $(T::IT,8,I:STOP) TO T::IT DO WHILE &T::IT .AND. MF::INT <> 5 @ 23,5 SAY 'ENTER NUMBER OF DESIRED "FIND PROCESS" ' GET MF::IND READ STORE VAL(MF::IND) TO MF::NR , MF::INT STORE ' ' TO MF::IND ENDDO RELEASE I:LN , T::IT DO CASE CASE MF::INT = 1 @ 13,5 SAY SELECT:1 GET F::1 READ IF TYPE(&SE::LECT1) = 'C' STORE TRIM(!(F::1)) TO F::1 LOCATE FOR F::1 $ &SE::LECT1 ELSE LOCATE FOR F::1 = &SE::LECT1 ENDIF CASE MF::INT = 2 @ 13,5 SAY SELECT:2 GET F::2 READ IF TYPE (&SE::LECT2) = 'C' STORE TRIM(!(F::2)) TO F::2 LOCATE FOR F::2 $ &SE::LECT2 ELSE LOCATE FOR F::2 = &SE::LECT2 ENDIF CASE MF::INT = 3 @ 13,5 SAY SELECT:3 GET F::3 READ IF TYPE(&SE::LECT3) = 'C' STORE TRIM(!(F::3)) TO F::3 LOCATE FOR F::3 $ &SE::LECT3 ELSE LOCATE FOR F::3 = &SE::LECT3 ENDIF CASE MF::INT = 4 @ 13,5 SAY SELECT:4 GET F::4 READ IF TYPE(&SE::LECT4) = 'C' STORE TRIM(!(F::4)) TO F::4 LOCATE FOR F::4 $ &SE::LECT4 ELSE LOCATE FOR F::4 = &SE::LECT4 ENDIF CASE MF::INT = 5 IF I:NDX = 0 SET INDEX TO ENDIF RETURN OTHERWISE ENDCASE RELEASE SE::LECT1 , SE::LECT2 , SE::LECT3 , SE::LECT4 DO WHILE * .AND. MF::INT <> 6 CONTINUE IF EOF STORE 6 TO MF::INT ENDIF ENDDO IF EOF @ 22,20 SAY 'RECORD NOT FOUND' STORE ' ' TO MC::PS DO WHILE MC::PS <> 'M' .AND. MC::PS <> 'P' @ 23,5 SAY 'MAIN MENU = M, PROCESS = P ' GET MC::PS READ STORE !(MC::PS) TO MC::PS ENDDO ENDIF IF MC::PS = 'M' STORE F TO ADJ::ING LOOP ELSE IF MC::PS = 'P' LOOP ENDIF ENDIF STORE T TO CYC::ING STORE ' ' TO MC::PS DO WHILE CYC::ING STORE F TO I::ERR ERASE @ 0,0 SAY TRANS:CD + ' ' + BLD:DATE @ 0,40 SAY VER: @ 01,5 SAY TRIM(HEADER) + ' - CHANGE' ************** *************************** IF MC::PS <> 'T' STORE ' ' TO E::RR DO &SYS::STC ENDIF ************** *************************** DO &SYS::GE ************** *************************** STORE ' ' TO MC::PS @ 23,0 SAY ' ' DO WHILE MC::PS <> 'M' .AND. MC::PS <> 'C' .AND. MC::PS <> 'P' .AND. MC::PS ; <> 'R' @ 23,0 SAY 'ROLL = R, MAIN MENU = M, CANCEL = C, PROCESS = P' GET MC::PS READ STORE !(MC::PS) TO MC::PS ENDDO IF MC::PS = 'P' &SYS::VAL STORE LEN(E::RR) - 1 TO I:LEN STORE $(E::RR,2,I:LEN) TO E::RR ENDIF IF I::ERR STORE ' ' TO MC::PS @ 23,0 SAY ' ' @ 22,0 DO WHILE MC::PS <> 'M' .AND. MC::PS <> 'C' .AND. MC::PS <> 'T' .AND. MC::PS ; <> 'R' @ 22,5 SAY '*** ERROR ***' @ 23,0 SAY 'ROLL = R, MAIN MENU = M, CANCEL = C, TRY AGAIN = T' GET MC::PS READ STORE !(MC::PS) TO MC::PS ENDDO IF MC::PS = 'T' LOOP ENDIF ENDIF IF MC::PS = 'P' ************* **************************** DO &SYS::RE ************ **************************** ENDIF * ******************************************************************* IF MC::PS = 'P' .OR. MC::PS = 'R' CONTINUE DO WHILE * .AND. MF::INT <> 6 CONTINUE IF EOF STORE 6 TO MF::INT ENDIF ENDDO ENDIF IF EOF STORE ' ' TO MC::PS @ 22,0 @ 23,0 SAY ' ' DO WHILE MC::PS <> 'M' .AND. MC::PS <> 'P' @ 22,20 SAY 'FUNCTION COMPLETE' @ 23,5 SAY 'MAIN MENU = M, PROCESS = P ' GET MC::PS READ STORE !(MC::PS) TO MC::PS ENDDO IF MC::PS = 'P' STORE F TO CYC::ING ENDIF ENDIF DO CASE CASE MC::PS = 'M' STORE F TO ADJ::ING , CYC::ING CASE MC::PS = 'C' STORE F TO CYC::ING ENDCASE ENDDO RELEASE F:1 , F:2 , F:3, F:4 , F:5 , F:6 , F:7 , F:8 , F:9 , F:10 RELEASE F:11 , F:12 , F:13 , F:14 , F:15 , F:16 , F:17 , F:18 , F:19 RELEASE F:20 , F:21 , F:22 , F:23 , F:24 , F:25 , F:26 , F:27 , F:28 RELEASE F:29 , F:30 , F:31 , F:32 ENDDO * ******************************************************************** * ******************************************************************** IF I:NDX = 0 SET INDEX TO ENDIF RETURN