IDENTIFICATION DIVISION.                                         
       PROGRAM-ID. WAIRHOUSE.                                           
       AUTHOR. MARTIN O SULLIVAN                                        
       INSTALLATION. MOYLISH.                                           
       DATE-WRITTEN. MARCH 1997.                                     
                                                                        
                                                                        
       ENVIRONMENT DIVISION.                                            
       CONFIGURATION SECTION.                                           
       SOURCE-COMPUTER. IBMAS400.                                       
       OBJECT-COMPUTER. IBMAS400.                                       
       INPUT-OUTPUT SECTION.                                            
       FILE-CONTROL.                                                    
                                                                        
                                                                        
           SELECT ACMEPART                                              
           ASSIGN TO DISK-ACMEPART                                      
           ORGANIZATION IS SEQUENTIAL                                   
           ACCESS MODE IS SEQUENTIAL                                    
           FILE STATUS IS WA-FILE-STAT.                                 
                                                                        
                                                                        
           SELECT REPORT-FILE                                           
           ASSIGN TO PRINTER-QSYSPRT                                    
           ORGANIZATION IS SEQUENTIAL                                   
           FILE STATUS IS WB-REP-STAT.                                  
                                                                        
                                                                        
       DATA DIVISION.                                                   
       FILE SECTION.                                                    
       FD ACMEPART                                                      
           RECORD CONTAINS 11 CHARACTERS                                
           LABEL RECORDS ARE STANDARD                                   
           DATA RECORD IS FA-ACMEPART-DETAILS.                          
       01  FA-ACMEPART-DETAILS.                                         
           03 WAREHOUSE-NO PIC 9(2).                                    
           03 PART-NO PIC 9(4).                                         
           03 QUANTITY PIC 9(5).                                        
                                                                        
       FD REPORT-FILE                                                   
           LABEL RECORD IS OMITTED                                      
           DATA RECORD IS FB-REP-REC.                                   
       01  FB-REP-REC PIC X(132).                                       
                                                                        
                                                                        
       WORKING-STORAGE SECTION.                                         
                                                                        
       01 OVERALL-TOTAL PIC 9(6).                                       
       01 WA-FILE-STAT PIC X(2).                                        
       01 WB-REP-STAT PIC X(2).                                         
       01 END-OF-FILE-FLAG PIC X.                                       
           88 END-OF-FILE VALUE "Y".                                    
           88 NOT-END-OF-FILE VALUE "N".                                
       01 PAGE-NO PIC 99.                                               
       01 LINE-COUNT PIC 99.                                            
       01 LAST-USED-WAREHOUSE-NO PIC 9(2).                              
       01 WAREHOUSE-TOTAL PIC 9(6).                                     
       01 THE-DATE.                                                     
           03 THE-YEAR PIC 9(2).                                        
           03 THE-MONTH PIC 9(2).                                       
           03 THE-DAY PIC 9(2).                                         
                                                                        
       01 WAREHOUSE-HEADING.                                            
           03 FILLER PIC X(10) VALUE SPACES.                            
           03 FILLER PIC X(8) VALUE "PAGE # :".                         
           03 PAGE-NO-OUT PIC 9(2).                                     
           03 FILLER PIC X(17) VALUE SPACES.                            
           03 FILLER PIC X(23) VALUE                                    
               "ACME  INVENTORY  REPORT".                               
           03 FILLER PIC X(16) VALUE SPACES.                            
           03 FILLER PIC X(7) VALUE "DATE : ".                          
           03 THE-DAY-OUT PIC 9(2).                                     
           03 FILLER PIC X VALUE "/".                                   
           03 THE-MONTH-OUT PIC 9(2).                                   
           03 FILLER PIC X VALUE "/".                                   
           03 THE-YEAR-OUT PIC 9(2).                                    
                                                                        
       01 WAREHOUSE-SUB-HEADING.                                        
           03 FILLER PIC X(10) VALUE SPACES.                            
           03 FILLER PIC X(15) VALUE "WAREHOUSE -  ".                   
           03 WAREHOUSE-NO-OUT PIC 9(2).                                
                                                                        
       01 DETAIL-HEADING.                                               
           03 FILLER PIC X(20) VALUE SPACES.                            
           03 FILLER PIC X(7) VALUE "PART NO".                          
           03 FILLER PIC X(12) VALUE SPACES.                            
           03 FILLER PIC X(11) VALUE "QTY ON HAND".                     
                                                                        
       01 DETAIL-LINE.                                                  
           03 FILLER PIC X(20) VALUE SPACES.                            
           03 PART-NUMBER-OUT PIC 9(6).                                 
           03 FILLER PIC X(16) VALUE SPACES.                            
           03 QUANTITY-OUT PIC 9(5).                                    
                                                                        
                                                                        
       01 WAREHOUSE-TOTAL-LINE.                                         
           03 FILLER PIC X(40) VALUE SPACES.                            
           03 FILLER PIC X(45) VALUE                                    
           "TOTAL NUMBER OF ITEMS STORED IN WAREHOUSE -  ".             
           03 WAREHOUSE-TOTAL-OUT PIC 999,999,999.                      
                                                                        
       01 TOTAL-LINE.                                                   
           03 FILLER PIC X(20) VALUE SPACES.                            
           03 FILLER PIC X(62) VALUE                                    
           "TOTAL NUMBER OF ITENS IN ALL WAREHOUSES COMBINED IS  ".     
           03 OVERALL-TOTAL-OUT PIC 999,999,999,999.                    
                                                                        
       01 FOOTING-LINE.                                                 
          03 FILLER PIC X(40) VALUE SPACES.                             
          03 FILLER PIC X(25) VALUE "***  END  OF  REPORT  ***".        
                                                                        
                                                                        
       PROCEDURE DIVISION.                                              
                                                                        
       TOP-LEVEL-PARA.                                                  
           PERFORM GET-DATE.                                            
           PERFORM START-UP.                                            
           PERFORM GET-RECORD.                                          
           PERFORM LAST-USED-WAREHOUSE-PARA.                            
           PERFORM EACH-WAREHOUSE UNTIL END-OF-FILE.                    
           PERFORM CLOSE-DOWN.                                          
           STOP RUN.                                                    
                                                                        
       GET-DATE.                                                        
           ACCEPT THE-DATE FROM DATE.                                   
           MOVE THE-YEAR TO THE-YEAR-OUT.                               
           MOVE THE-MONTH TO THE-MONTH-OUT.                             
           MOVE THE-DAY TO THE-DAY-OUT.                                 
                                                                        
       START-UP.                                                        
           PERFORM OPEN-FILES.                                          
           PERFORM INIT-VARS.                                           
           PERFORM WRITE-HEADINGS-PARA.                                 
                                                                        
       INIT-VARS.                                                       
           MOVE ZEROS TO OVERALL-TOTAL.                                 
           MOVE ZEROS TO WAREHOUSE-TOTAL.                               
           MOVE ZEROS TO LINE-COUNT.                                    
           SET NOT-END-OF-FILE TO TRUE.                                 
           MOVE 1 TO PAGE-NO.                                           
                                                                        
       OPEN-FILES.                                                      
           OPEN INPUT ACMEPART.                                         
           OPEN OUTPUT REPORT-FILE.                                     
                                                                        
       WRITE-HEADINGS-PARA.                                             
           MOVE PAGE-NO TO PAGE-NO-OUT.                                 
           WRITE FB-REP-REC FROM WAREHOUSE-HEADING AFTER                
           ADVANCING PAGE.                                              
           ADD 2 TO LINE-COUNT.                                         
                                                                        
       WRITE-WAREHOUSE-HEADINGS-PARA.                                   
           MOVE WAREHOUSE-NO TO WAREHOUSE-NO-OUT.                       
           WRITE FB-REP-REC FROM WAREHOUSE-SUB-HEADING AFTER            
           ADVANCING 3 LINES.                                           
           WRITE FB-REP-REC FROM DETAIL-HEADING AFTER                   
           ADVANCING 3 LINES.                                           
           ADD 6 TO LINE-COUNT.                                         
                                                                        
       LAST-USED-WAREHOUSE-PARA.                                        
           MOVE WAREHOUSE-NO TO LAST-USED-WAREHOUSE-NO.                 
                                                                        
       GET-RECORD.                                                      
           READ ACMEPART AT END SET END-OF-FILE TO TRUE.                
                                                                        
       EACH-WAREHOUSE.                                                  
           PERFORM WRITE-WAREHOUSE-HEADINGS-PARA.                       
           PERFORM EACH-PART UNTIL LAST-USED-WAREHOUSE-NO NOT =         
            WAREHOUSE-NO OR END-OF-FILE.                                 
            PERFORM WRITE-WAREHOUSE-TOTAL-LINE.                          
            PERFORM LAST-USED-WAREHOUSE-PARA.                            
            PERFORM RESET-PARA.                                          
                                                                         
        WRITE-WAREHOUSE-TOTAL-LINE.                                      
            MOVE WAREHOUSE-TOTAL TO WAREHOUSE-TOTAL-OUT.                 
            WRITE FB-REP-REC FROM WAREHOUSE-TOTAL-LINE AFTER 2 LINES.    
            ADD 3 TO LINE-COUNT.                                         
                                                                         
        EACH-PART.                                                       
            PERFORM POSS-NEW-PAGE.                                       
            ADD QUANTITY TO WAREHOUSE-TOTAL.                             
            ADD QUANTITY TO OVERALL-TOTAL.                               
            MOVE PART-NO TO PART-NUMBER-OUT.                             
            MOVE QUANTITY TO QUANTITY-OUT.                               
            WRITE FB-REP-REC FROM DETAIL-LINE AFTER ADVANCING 1 LINES.   
            ADD 2 TO LINE-COUNT.                                         
            PERFORM GET-RECORD.                                          
                                                                         
        RESET-PARA.                                                      
           MOVE ZERO TO WAREHOUSE-TOTAL.                                
                                                                        
       CLOSE-DOWN.                                                      
           MOVE OVERALL-TOTAL TO OVERALL-TOTAL-OUT.                     
           WRITE FB-REP-REC FROM TOTAL-LINE AFTER ADVANCING 3 LINE.     
           WRITE FB-REP-REC FROM FOOTING-LINE AFTER ADVANCING 3 LINE.   
           CLOSE REPORT-FILE.                                           
           CLOSE ACMEPART.                                              
           DISPLAY "END OF PROGRAM - GOOD BY".                          
                                                                        
                                                                        
       POSS-NEW-PAGE.                                                   
           IF LINE-COUNT >= 64                                          
           MOVE ZEROS TO LINE-COUNT                                     
           ADD 1 TO PAGE-NO                                             
           PERFORM WRITE-HEADINGS-PARA.                                 

Link back to cobol page