Tuesday, 17 April 2012

COBOL program to manipulate the employee details


//MYJOB JOB (1245),'MCA',MSGLEVEL=(1,1),REGION=0M,            
//  NOTIFY=KC03H0E,MSGCLASS=A,CLASS=A                          
//COBOL1 EXEC IGYWCLG,                                          
// PARM.COBOL='TEST,RENT,APOST,OBJECT,NODYNAM,LIB,SIZE(5048376)'
//COBOL.SYSPRINT DD SYSOUT=*                                    
//COBOL.SYSIN DD *                                              
       IDENTIFICATION DIVISION.                                
       PROGRAM-ID. LAB1.                                        
       ENVIRONMENT DIVISION.                                    
       CONFIGURATION SECTION.                                  
       INPUT-OUTPUT SECTION.                                    
       FILE-CONTROL.                                            
           SELECT INPUT-FILE ASSIGN TO DA-S-INPUT.              
           SELECT PRNT-FILE ASSIGN TO UR-S-PRNT.                
           EJECT                                                
       DATA DIVISION.                        
          SKIP3                              
       FILE SECTION.                          
         FD INPUT-FILE                        
               BLOCK CONTAINS 0 RECORDS      
               LABEL RECORDS ARE STANDARD.    
        01 INPUT-REC PIC X(80).              
               SKIP2                          
          FD PRNT-FILE                        
                LABEL RECORDS ARE OMITTED.    
         01 PRNT-REC PIC X(225).        
       WORKING-STORAGE SECTION.          
        01 INPUT-DATA.                  
         03 I-NAME PIC X(5).            
         03 ENO PIC 9(4).                
         03 BASIC PIC 9(5).              
         03 DA PIC 9(4).                
         03 HRA PIC 9(4).                
         03 EPF PIC 9(4).                
         03 IT PIC 9(4).                
         03 GROSS PIC 9(5).            
         03 NET PIC 9(5).9(2).          
         03 FILLER PIC X(21).          
        01 PRNT-DATA1.                  
         03 FILLER PIC X(3) VALUE SPACES.
         03 L-NAME1 PIC X(5).          
         03 FILLER PIC X(3) VALUE SPACES.
         03 L-ENO PIC 9(4).            
         03 FILLER PIC X(3) VALUE SPACES.
         03 L-BASIC1 PIC 9(5).          
         03 FILLER PIC X(3) VALUE SPACES.
         03 L-DA1 PIC 9(4).              
         03 FILLER PIC X(3) VALUE SPACES.
         03 L-HRA1 PIC 9(4).              
         03 FILLER PIC X(3) VALUE SPACES.
         03 L-PF1 PIC 9(4).              
         03 FILLER PIC X(3) VALUE SPACES.
         03 L-IT1 PIC 9(4).              
         03 FILLER PIC X(3) VALUE SPACES.
         03 L-GROSS PIC 9(5).            
         03 FILLER PIC X(3) VALUE SPACES.  
         03 L-NET PIC 9(5).9(2).          
       01 PRNT-HEADING1.                  
         03 FILLER PIC X(3) VALUE SPACES.  
         03 FILLER PIC X(5) VALUE 'NAME'.  
         03 FILLER PIC X(3) VALUE SPACES.  
         03 FILLER PIC X(4) VALUE 'ENO'.  
         03 FILLER PIC X(3) VALUE SPACES.  
         03 FILLER PIC X(5) VALUE 'BASIC'.
         03 FILLER PIC X(3) VALUE SPACES.  
         03 FILLER PIC X(4) VALUE 'DA'.    
         03 FILLER PIC X(3) VALUE SPACES.  
         03 FILLER PIC X(4) VALUE 'HRA'.    
         03 FILLER PIC X(3) VALUE SPACES.  
         03 FILLER PIC X(4) VALUE 'PF'.    
         03 FILLER PIC X(3) VALUE SPACES.  
         03 FILLER PIC X(4) VALUE 'IT'.    
         03 FILLER PIC X(3) VALUE SPACES.  
         03 FILLER PIC X(5) VALUE 'GROSS'.  
         03 FILLER PIC X(3) VALUE SPACES.  
         03 FILLER PIC X(5) VALUE 'NET'.
       01 MISC.                        
         03 EOF-I PIC 9 VALUE 0.        
       PROCEDURE DIVISION.              
       MAINLINE.                        
           OPEN INPUT INPUT-FILE        
           OUTPUT PRNT-FILE.            
           PERFORM READ-INPUT.          
           PERFORM PRINT-HEAD.          
           PERFORM LOOP1                
           UNTIL EOF-I = 1.                    
           CLOSE INPUT-FILE                    
           PRNT-FILE.                          
           STOP RUN.                            
       PRINT-HEAD.                              
           WRITE PRNT-REC FROM PRNT-HEADING1    
           AFTER ADVANCING PAGE.                
           MOVE SPACES TO PRNT-REC.            
           WRITE PRNT-REC                      
           AFTER ADVANCING 1 LINE.              
       LOOP1.                                        
           PERFORM PRINT-NAMES.                      
           PERFORM READ-INPUT.                      
       PRINT-NAMES.                                  
           ADD BASIC DA HRA GIVING GROSS.            
           SUBTRACT EPF IT FROM GROSS GIVING NET.    
           MOVE I-NAME TO L-NAME1.                  
           MOVE ENO TO L-ENO.                        
           MOVE BASIC TO L-BASIC1.                  
           MOVE DA TO L-DA1.                        
           MOVE HRA TO L-HRA1.            
           MOVE EPF TO L-PF1.            
           MOVE IT TO L-IT1.              
           MOVE GROSS TO L-GROSS.        
           MOVE NET TO L-NET.            
           WRITE PRNT-REC FROM PRNT-DATA1
           AFTER ADVANCING 1 LINE.        
       READ-INPUT.                        
           READ INPUT-FILE INTO INPUT-DATA
           AT END MOVE 1 TO EOF-I.        
//GO.SYSOUT DD SYSOUT=*          
//GO.SYSPRINT DD SYSOUT=*        
//GO.INPUT DD *                  
KAVI 1230500002000300020001000    
ARUN 5672400002500200010001000    
BRIN 9014300001500200010001500    
DEVI 3458200003000250010002000    
//GO.PRNT DD SYSOUT=*        


1 comment: