RELEASE I:RUN , I:QUIT , I:FILE , NUM:CHK , CNT , STOP:NR , ST: , VALL:: RELEASE MORE , SYSRPT STORE T TO REP::ING , I::ND , I1: , I2:, I3:, I4:, I5:, I6:, I7:, I8: SET EJECT OFF DO WHILE REP::ING IF I::ND STORE TRANS:CD + 'RP' TO REPORT USE &REPORT STORE PRT1: TO PRN:1: STORE PRT2: TO PRN:2: STORE PRT3: TO PRN:3: STORE PRT4: TO PRN:4: STORE PRT5: TO PRN:5: STORE PRT6: TO PRN:6: STORE PRT7: TO PRN:7: STORE PRT8: TO PRN:8: RELEASE REPORT ENDIF STORE ' ' TO I::HD STORE ' ' TO MF::IND STORE 0 TO MF::INT , MF::NR ERASE SET HEADING TO @ 0,0 SAY TRANS:CD + ' ' + BLD:DATE @ 0,40 SAY VER: @ 1,5 SAY TRIM(HEADER) + ' - REPORTS' STORE 3 TO I::LN STORE ' ' TO T::IT , B::IT IF REPORT:1 <> ' ' @ I::LN,5 SAY '1. ' + PRN:1: STORE I::LN + 1 TO I::LN STORE T::IT + '.AND. MF::NR <> 1 ' TO T::IT ENDIF IF REPORT:2 <> ' ' @ I::LN,5 SAY '2. ' + PRN:2: STORE I::LN + 1 TO I::LN STORE T::IT + '.AND. MF::NR <> 2 ' TO T::IT ENDIF IF REPORT:3 <> ' ' @ I::LN,5 SAY '3. ' + PRN:3: STORE I::LN + 1 TO I::LN STORE T::IT + '.AND. MF::NR <> 3 ' TO T::IT ENDIF IF REPORT:4 <> ' ' @ I::LN,5 SAY '4. ' + PRN:4: STORE I::LN + 1 TO I::LN STORE T::IT + '.AND. MF::NR <> 4 ' TO T::IT ENDIF IF REPORT:5 <> ' ' @ I::LN,5 SAY '5. ' + PRN:5: STORE I::LN + 1 TO I::LN STORE B::IT + '.AND. MF::NR <> 5 ' TO B::IT ENDIF IF REPORT:6 <> ' ' @ I::LN,5 SAY '6. ' + PRN:6: STORE I::LN + 1 TO I::LN STORE B::IT + '.AND. MF::NR <> 6 ' TO B::IT ENDIF IF REPORT:7 <> ' ' @ I::LN,5 SAY '7. ' + PRN:7: STORE I::LN + 1 TO I::LN STORE B::IT + '.AND. MF::NR <> 7 ' TO B::IT ENDIF IF REPORT:8 <> ' ' @ I::LN,5 SAY '8. ' + PRN:8: STORE I::LN + 1 TO I::LN STORE B::IT + '.AND. MF::NR <> 8 ' TO B::IT ENDIF @ I::LN,5 SAY '9. RETURN TO MAIN MENU' STORE I::LN + 1 TO I::LN STORE B::IT + '.AND. MF::NR <> 9 ' TO B::IT STORE LEN(T::IT) - 6 TO I:STOP STORE $(T::IT,7,I:STOP) TO T::IT IF I::LN = 4 @ 22,5 SAY 'NO REPORT DEFINED' ENDIF IF I::ND USE &IN::FILE STORE F TO I::ND ENDIF DO WHILE &T::IT &B::IT @ 23,5 SAY 'ENTER NUMBER OF DESIRED "REPORT PROCESS" ' GET MF::IND READ STORE VAL(MF::IND) TO MF::NR , MF::INT STORE ' ' TO MF::IND ENDDO IF MF::INT = 9 STORE 99 TO MFUNC::NR RETURN ENDIF STORE TRIM(I:DATE) TO D:T STORE '000000' TO STRT::DATE STORE '999999' TO STOP::DATE IF I:DATE <> ' ' @ 14,0 SAY 'ENTER BEGIN DATE ' GET STRT::DATE @ 15,0 SAY 'ENTER ENDING DATE ' GET STOP::DATE READ ENDIF IF STRT::DATE <> '000000' .OR. STOP::DATE <> '999999' STORE 'DATE ' + STRT::DATE + ' THRU ' + STOP::DATE TO I::HD STORE 'FOR &D:T >= ' + STRT::DATE + ' .AND. &D:T <= ' + STOP::DATE TO R::SEL ELSE RELEASE STRT::DATE , STOP::DATE , D:T STORE ' FOR MF::INT > 0' TO R::SEL ENDIF @ 16,0 SAY 'ENTER ADDED SELECTION , OR ' STORE ' ' TO X::PRS DO WHILE X::PRS = ' ' ACCEPT TO A::ED STORE !(A::ED) TO A::ED , I::XTRA IF A::ED = ' ' .AND. LEN(A::ED) = 1 STORE 'X' TO X::PRS STORE 'MF::INT > 0' TO A::ED ELSE IF 0 = TEST(&A::ED) .AND. A::ED <> ' ' @ 17,0 @ 16,0 SAY A::ED + ' IS INVALID ENTRY -- TRY AGAIN , OR ' STORE ' ' TO A::ED LOOP ELSE STORE 'X' TO X::PRS STORE @('=',A::ED) TO I::HR IF I::HR > 0 STORE I::HR + 1 TO I::2ND STORE I::HR - 1 TO I::1ST STORE LEN(A::ED) - I::HR TO I::2END DO CASE CASE $(A::ED,1,1) = "'" STORE $(A::ED,1,I::1ST) + '$' + $(A::ED,I::2ND,I::2END) TO A::ED STORE $(A::ED,1,I::1ST) + 'IN' + $(A::ED,I::2ND,I::2END) TO I::XTRA CASE $(A::ED,1,1) <> "'" STORE $(A::ED,1,I::1ST) + 'EQUAL' + $(A::ED,I::2ND,I::2END) TO I::XTRA ENDCASE ENDIF ENDIF ENDIF ENDDO STORE ' ' TO PRN:: @ 20,0 SAY 'DO YOU WANT HARDCOPY ? ' GET PRN:: READ IF PRN:: = 'Y' STORE 'TO PRINT ' + R::SEL TO R::SEL STORE TRANS:CD + STR(MF::INT,1) + '.FRM' TO REPORT IF FILE(REPORT) SET CONSOLE OFF ENDIF ENDIF ERASE IF $(A::ED,1,7) <> 'MF::INT' IF LEN(I::HD) <> 1 STORE TRIM(I::HD) + ' & ' TO I::HD ENDIF STORE I::HD + TRIM(I::XTRA) TO I::HD ENDIF STORE LEN(I::HD) TO I::HN STORE 59 - I::HN - 10 TO I::HN STORE I::HD + $(SPACE,1,I::HN) + SYS:DATE TO I::HD SET HEADING TO &I::HD STORE 'I' + STR(MF::INT,1) + ':' TO II:: DO CASE CASE MF::INT = 1 .OR. MF::INT = 2 .OR. MF::INT = 3 .OR. MF::INT = 4 IF I:NDX = 0 STORE TRANS:CD + STR(MF::INT,1) TO REPORT SET INDEX TO &REPORT ELSE STORE 'REPORT:' + STR(MF::INT,1) TO REPORT STORE &REPORT TO REPORT STORE TRANS:CD + STR(MF::INT,1) TO SOUT:: IF &II:: INDEX ON &REPORT TO &SOUT:: ENDIF USE &IN::FILE INDEX &SOUT:: STORE SOUT:: TO REPORT ENDIF STORE ' REPORT FORM &REPORT ' + R::SEL + ' .AND. ' + A::ED TO R::PRT &R::PRT IF I:NDX = 0 SET INDEX TO ELSE USE &IN::FILE ENDIF CASE MF::INT = 5 .OR. MF::INT = 6 .OR. MF::INT = 7 .OR. MF::INT = 8 STORE 'REPORT:' + STR(MF::INT,1) TO REPORT STORE &REPORT TO REPORT STORE TRANS:CD + STR(MF::INT,1) TO SOUT:: IF &II:: INDEX ON &REPORT TO &SOUT:: ENDIF USE &IN::FILE INDEX &SOUT:: STORE SOUT:: TO REPORT STORE ' REPORT FORM &REPORT ' + R::SEL + ' .AND. ' + A::ED TO R::PRT &R::PRT USE &IN::FILE OTHERWISE @ 21,1 SAY 'REPORT IS UNDER DEVELOPMENT -- COME BACK SOON !' ENDCASE STORE F TO &II:: SET CONSOLE ON IF PRN:: <> 'Y' ACCEPT ' Hit to continue' TO CO:NT ELSE SET PRINT ON EJECT SET PRINT OFF ENDIF ENDDO RELEASE CO:NT RETURN