IDENTIFICATION DIVISION. PROGRAM-ID. DSPLYMAF. AUTHOR. NEMEH YOUNES. ENVIRONMENT DIVISION. CONFIGURATION SECTION. INPUT-OUTPUT SECTION. FILE-CONTROL. * * SELECT F-MAF ASSIGN TO DISK ORGANIZATION IS INDEXED ACCESS MODE IS DYNAMIC LOCK MODE IS AUTOMATIC RECORD KEY IS ACNUM. * * SELECT F-CUR ASSIGN TO DISK ORGANIZATION IS INDEXED ACCESS MODE IS DYNAMIC LOCK MODE IS AUTOMATIC RECORD KEY IS CURNUM. * * DATA DIVISION. FILE SECTION. ***** FD F-MAF BLOCK CONTAINS 43 RECORDS RECORD CONTAINS 94 CHARACTERS LABEL RECORDS ARE STANDARD VALUE OF FILE-ID IS "MAFBNY.DAT". 01 RMAF. 02 ACNUM. 03 CHPTER. 04 R-SUB-LDGR. 05 R-GEN-LDGR PIC 99. 05 R-NUM PIC 9. 04 R-CHAPTER PIC 9. 03 LOCATIO PIC 99. 03 SERIAL PIC 9(3). 03 CURRENC PIC 99. 02 ACCDESCRI PIC X(35). 02 FCCURD PIC 9(10)V99. 02 FCCURC PIC 9(10)V99. 02 LLCURD PIC 9(10)V99. 02 LLCURC PIC 9(10)V99. **** FD F-CUR BLOCK CONTAINS 60 RECORDS RECORD CONTAINS 37 CHARACTERS LABEL RECORDS ARE STANDARD VALUE OF FILE-ID IS "CURBNY.DAT". 01 R-CUR. 02 CURNUM PIC 99. 02 CURNAME PIC X(25). 02 CURALT PIC X(3). 02 CURRATE PIC 9(4)V999. ***** WORKING-STORAGE SECTION. 01 BALANCES. 02 W-BLF PIC +++,+++,+++,+++.99. 02 W-BLL PIC +++,+++,+++,+++.99. * 01 W-ACNUM. 02 W-CHPTER PIC 9(4). 02 REST. 03 W-SERIAL PIC 9(4). 03 W-LOCATIO PIC 99. 03 W-CURRENC PIC 99. 01 POINTER-P. 02 PNTR PIC 9(11) OCCURS 99 TIMES. 01 JJ PIC 99 VALUE ZERO. 01 DTW. 02 YY PIC 99. 02 MM PIC 99. 02 DD PIC 99. 01 TMW. 02 HHH PIC 99. 02 MMM PIC 99. 02 SSS PIC 99. 01 OPTION. 02 SURE PIC A. 88 YES VALUES "Y", "y". 88 NON VALUES "N", "n". 02 OPT PIC X. 88 CH1 VALUES "C", "c". 88 AL VALUES "A", "a". 88 OUT VALUES "E", "e". 02 OPT1 PIC X. 88 STRT VALUES "S", "s". 88 PRVS VALUES "P", "p". 88 QUTI VALUES "Q", "q". 88 NXTI VALUE " ". 77 I PIC 99. 77 SW PIC X VALUE SPACE. 77 SW1 PIC X VALUE SPACE. 77 CHP PIC 9999 VALUE ZEROES. 77 CHM PIC 9999 VALUE ZEROES. 77 LIN PIC 99 VALUE ZEROES. 77 W-NAME PIC X(13). 77 W-DBF PIC 9(10)V99. 77 W-CRF PIC 9(10)V99. 77 W-DBL PIC 9(10)V99. 77 W-CRL PIC 9(10)V99. 77 NAME2 PIC X(16). 77 W-DESC PIC X(30). 77 REC-NUM PIC 99 VALUE ZERO. 77 PASS PIC X(25) VALUE SPACES. *************************************************************** * THE SCREEN SECTION * *************************************************************** * MAIN SCREEN * *************************************************************** SCREEN SECTION. 01 SCRM. 02 SCR-M1. 03 LINE 2 COLUMN 1 PIC X(13) REVERSE-VIDEO USING W-NAME. 02 SCRM-M1. 03 COLUMN 29 VALUE "LEBANESE ACCOUNTING ". 03 COLUMN 68 VALUE "DATE:" REVERSE-VIDEO. 03 COLUMN 73 PIC 99 REVERSE-VIDEO USING DD. 03 COLUMN 75 VALUE "/" REVERSE-VIDEO. 03 COLUMN 76 PIC 99 REVERSE-VIDEO USING MM. 03 COLUMN 78 VALUE "/" REVERSE-VIDEO. 03 COLUMN 79 PIC 99 REVERSE-VIDEO USING YY. 03 LINE 3 COLUMN 1 VALUE "Company Name " REVERSE-VIDEO. 03 COLUMN 31 VALUE "DISPLAY ACCOUNTS". 02 SCR-M2. 03 COLUMN 68 VALUE "TIME:" REVERSE-VIDEO. 03 COLUMN 73 PIC 99 REVERSE-VIDEO FROM HHH. 03 COLUMN 75 VALUE "|" REVERSE-VIDEO. 03 COLUMN 76 PIC 99 REVERSE-VIDEO FROM MMM. 03 COLUMN 78 VALUE "|" REVERSE-VIDEO. 03 COLUMN 79 PIC 99 REVERSE-VIDEO FROM SSS. * 02 SCR-M4. 03 LINE 23 COLUMN 19 VALUE "" REVERSE-VIDEO. ********************* 01 SCR1. 02 SCR1-1. 03 LINE 10 COLUMN 28 VALUE "[A] DISPLAY ALL ACCOUNTS.". 03 LINE 12 COLUMN 28 VALUE "[C] DISPLAY CHAPTER.". 03 LINE 14 COLUMN 28 VALUE "[E] EXIT FROM THIS PROGRAM.". 02 SCR1-4. 03 SCRA-4. 04 LINE 21 COLUMN 28 VALUE "ENTER YOUR OPTION:..[ ]". 04 COLUMN 49 PIC X TO OPT AUTO. 01 SCR2. 02 SCR2-3. 03 LINE 18 COLUMN 20 VALUE "ENTER CHAPTER CODE :". 03 COLUMN PLUS 1 PIC 9999 TO CHM AUTO. 01 SCR3. 02 SCR3-1. 03 LINE 5 COLUMN 1 VALUE "A/C NUMBER". 03 COLUMN 15 VALUE "ACCOUNT NAME". 03 COLUMN 47 VALUE "F. C. BALANCE". 03 COLUMN 62 VALUE "L. L. BALANCE". 03 LINE 6 COLUMN 1 PIC X(11) VALUE " " REVERSE-VIDEO. 03 COLUMN 13 PIC X(30) VALUE " " REVERSE-VIDEO. 03 COLUMN 44 PIC x(18) VALUE " " REVERSE-VIDEO. 03 COLUMN 63 PIC x(18) VALUE " " REVERSE-VIDEO. 02 SCR3-2. 03 SCRD-2. 04 LINE 22 COLUMN 2 VALUE "Rtrn" HIGHLIGHT. 04 COLUMN 6 VALUE "=NEXT". 04 COLUMN 30 VALUE "P" HIGHLIGHT. 04 COLUMN 31 VALUE "revious". 04 COLUMN 50 VALUE "S" HIGHLIGHT. 04 COLUMN 51 VALUE "tart". 04 COLUMN 71 VALUE "Q" HIGHLIGHT. 04 COLUMN 72 VALUE "uit". 03 SCRA-2. 04 LINE 22 COLUMN 78 PIC X TO OPT1 AUTO. ************************************************************* * MESSAGES SCREENS * ************************************************************* 01 SCRMS. 02 SCRM-1. 03 LINE 21 COLUMN 21 PIC X(13) REVERSE-VIDEO FROM W-NAME. 03 COLUMN PLUS 1 VALUE " NOT IN FILE" HIGHLIGHT BLINK. 02 SCRM-2. 03 LINE 21 COLUMN 21 VALUE "SUB-LEDGER NOT IN FILE" HIGHLIGHT BLINK. 02 SCRM-3. 03 LINE 21 COLUMN 30 VALUE "ARE YOU SURE (Y/N) :" HIGHLIGHT. 03 COLUMN PLUS 1 PIC A TO SURE AUTO. 02 SCRM-5. 03 LINE 21 BLANK LINE. 02 SCRM-6. 03 LINE 21 COLUMN 30 VALUE "I AM OUT NOW !!!." BLINK. 02 SCRM-7. 03 LINE 21 COLUMN 21 VALUE "NO ACCOUNTS UNDER THIS CHAPTER" BLINK. 02 SCRM-9. 03 LINE 18 BLANK LINE. 02 SCRM-10. 03 LINE 15 COLUMN 21 VALUE "ENTER YOUR PASSWORD :". 03 COLUMN PLUS 1 PIC X(25) USING PASS AUTO SECURE. ************************************************************* * THE LINES SCREEN * ************************************************************* 01 SCRLINE. 02 SCRL. 03 LINE 1 PIC X(80) FROM ALL " " REVERSE-VIDEO. 03 LINE 4 PIC X(80) FROM ALL " " REVERSE-VIDEO. 03 LINE 20 PIC X(80) FROM ALL " " REVERSE-VIDEO. 03 LINE 24 PIC X(80) FROM ALL " " REVERSE-VIDEO. 01 NEW-COLOR. 03 BLANK SCREEN FOREGROUND-COLOR 2 BACKGROUND-COLOR 0. ************************************************************ ************************************************************ * THE PROCEDURE DIVISION * ************************************************************ ************************************************************ PROCEDURE DIVISION. BEGIN. DISPLAY NEW-COLOR. ACCEPT DTW FROM DATE. ACCEPT TMW FROM TIME. MOVE ZERO TO REC-NUM, JJ. MOVE REC-NUM TO CURNUM. * OPEN INPUT F-CUR. * READ F-CUR INVALID KEY GO STR. * CLOSE F-CUR. * MOVE SPACES TO PASS. * DISPLAY SCRM-10 ACCEPT SCRM-10 * IF PASS = SPACE GO EX-IT. * IF CURNAME = PASS GO STR * ELSE GO BEGIN. STR. OPEN INPUT F-MAF. DIS1. DISPLAY NEW-COLOR. MOVE " UNDEFINED " TO W-NAME. DISPLAY SCRM. DISPLAY SCRL. DISPLAY SCR1. REAC. MOVE SPACES TO OPT OPT1. INITIALIZE POINTER-P. DISPLAY SCRM-9. ACCEPT SCRA-4. IF AL MOVE "ALL ACCOUNTS" TO W-NAME DISPLAY SCR-M1 GO GEN-PAR1. IF CH1 MOVE " CHAPTER " TO W-NAME DISPLAY SCR-M1 GO GEN-PAR1. IF OUT DISPLAY NEW-COLOR GO EX-IT ELSE GO REAC. ******************************************************** GEN-PAR1. DISPLAY SCRM. DISPLAY SCRL. MOVE ZEROES TO ACNUM CHP CHM. MOVE 7 TO LIN. MOVE 1 TO I. GEN-PAR2. * IF AL * GO GEN-PAR4. IF CH1 DISPLAY SCR2-3 ACCEPT SCR2-3 ON ESCAPE GO DIS1 DISPLAY SCRM-9 MOVE CHM TO CHP CHPTER GO GEN-PAR3. * ********************************* GEN-PAR3. MOVE 7 TO LIN. MOVE 1 TO JJ. MOVE CHM TO CHPTER CHP. MOVE ZEROES TO LOCATIO, CURRENC, SERIAL. MOVE 1 TO I. GEN-PAR4. DISPLAY NEW-COLOR. DISPLAY SCRM. DISPLAY SCRL. DISPLAY SCR3. GEN-PAR5. START F-MAF KEY > ACNUM INVALID KEY DISPLAY SCRM-7 GO CHK-OPTION. PERFORM READ-MAFBNY. Move ACNUM TO PNTR (JJ). SEARCH-DISPLAY. * READ F-MAF NEXT RECORD * AT END * MOVE "E" TO SW * GO CHK-OPTION. IF AL GO DISPL. IF CH1 IF CHPTER = CHM GO DISPL ELSE MOVE "E" TO SW GO CHK-OPTION. *********************************** DISPL. IF CH1 AND CHPTER NOT EQUAL CHP MOVE "E" TO SW GO CHK-OPTION. MOVE ACNUM TO W-ACNUM. MOVE FCCURD TO W-DBF. MOVE FCCURC TO W-CRF. MOVE LLCURD TO W-DBL. MOVE LLCURC TO W-CRL. MOVE ACCDESCRI TO W-DESC. SUBTRACT W-CRF FROM W-DBF GIVING W-BLF. SUBTRACT W-CRL FROM W-DBL GIVING W-BLL. DISPLAY ACNUM AT LINE LIN COLUMN 1. DISPLAY W-DESC AT LINE LIN COLUMN 13. DISPLAY W-BLF AT LINE LIN COLUMN 44. DISPLAY W-BLL AT LINE LIN COLUMN 63. ADD 1 TO LIN I. IF I > 13 MOVE 7 TO LIN GO CHK-OPTION. *********************************** *********************************** DISPL1. PERFORM READ-MAFBNY. GO SEARCH-DISPLAY. ************************************** READ-MAFBNY. READ F-MAF NEXT RECORD AT END MOVE "E" TO SW GO CHK-OPTION. CHK-OPTION. ACCEPT TMW FROM TIME DISPLAY SCR-M2. MOVE "A" TO SW1. IF JJ < 99 ADD 1 TO JJ. MOVE ACNUM TO PNTR (JJ). CHK-OPTION1. MOVE SPACES TO OPT1. DISPLAY SCRA-2. ACCEPT SCRA-2. EVALUATE TRUE WHEN NXTI GO CHK-NEXT WHEN STRT MOVE " " TO SW GO GEN-PAR3 WHEN PRVS GO CHK-PRV WHEN QUTI GO DIS1 WHEN OTHER GO CHK-OPTION1 END-EVALUATE. * IF STRT * MOVE " " TO SW * GO GEN-PAR3. * IF QUTI * GO DIS1. * IF NXTI * GO CHK-NEXT * ELSE * GO CHK-OPTION1. ************ CHK-NEXT. IF SW = "E" GO CHK-OPTION ELSE DISPLAY NEW-COLOR DISPLAY SCRM DISPLAY SCRL DISPLAY SCR3 MOVE 7 TO LIN MOVE 1 TO I GO SEARCH-DISPLAY. CHK-PRV. MOVE " " TO SW IF I < 13 AND JJ < 3 GO GEN-PAR3. IF JJ >2 SUBTRACT 2 FROM JJ ELSE GO GEN-PAR2 END-IF. * COMPUTE PNTR (JJ) = PNTR (JJ) - 1. MOVE PNTR (JJ) TO ACNUM PERFORM GEN-PAR4. * THRU GEN-PAR5. START F-MAF KEY = ACNUM INVALID KEY DISPLAY SCRM-7 GO CHK-OPTION1. PERFORM READ-MAFBNY. MOVE 1 TO I. MOVE 7 TO LIN. GO SEARCH-DISPLAY. EX-IT. DISPLAY SCRM-6. CLOSE F-MAF. DISPLAY NEW-COLOR. goback. EXIT PROGRAM. end program DSPLYMAF.