Code for GENERATE A SALES REPORT OF ELECTRONIC STORE ITEM WISE in Cobol
       IDENTIFICATION DIVISION.
        PROGRAM-ID. FLE.
       ENVIRONMENT DIVISION.
        INPUT-OUTPUT SECTION.
         FILE-CONTROL.
               SELECT INP1 ASSIGN TO DISK
                ORGANIZATION IS LINE SEQUENTIAL.
               SELECT OUT1 ASSIGN TO DISK
                ORGANIZATION IS LINE SEQUENTIAL.
       DATA DIVISION.
          FILE SECTION.
               FD INP1
                    LABEL RECORDS ARE STANDARD
                    VALUE OF FILE-ID IS "F:\MCAFY\MCA138\INPUT1.TXT".
                    01 REC1.
                      05 NO1 PIC 9(4).
                      05 NAME1 PIC X(26) .
                      05 UNIT1 PIC X(5).
                      05 RATE1 PIC 9(7).
                      05 QTY1 PIC 9(8).
                      05 GRP1 PIC 99.
               FD OUT1
                    LABEL RECORDS ARE STANDARD
                    VALUE OF FILE-ID IS "F:\MCAFY\MCA138\OUTPUT1.TXT".
                    01 REC2 PIC X(80).
          WORKING-STORAGE SECTION.
             01 DISP.
                05 GRNO1 PIC 9(2) OCCURS 5 TIMES.
                05 NAME2 PIC X(12) OCCURS 5 TIMES.
                05 TSTOCK1 PIC 9(8) OCCURS 5 TIMES.
                05 SVALUE1 PIC 9(14) OCCURS 5 TIMES.
             01 PRINT1.
                05 GRNO2 PIC 9(2). 
                05 FILLER PIC X(5).
                05 NAME3 PIC X(12).
                05 FILLER PIC X(5).
                05 TSTOCK2 PIC 9(8).
                05 FILLER PIC X(5).
                05 SVALUE2 PIC 9(7).
              
            
             01 EOF PIC X VALUE "N".
             01 I PIC 99.
             01 J PIC 99.
             01 HEAD1.
              05 FILLER PIC X(20).          
              05 FILLER PIC X(40) VALUE "SHREE ELECTRONOICS LTD".
             01 HEAD2.
              05 FILLER PIC X(20).
              05 FILLER PIC X(40) VALUE "GROUP WISE STOCK SUMMERY".
             01 HEAD3.
              
              05 FILLER PIC X(80) VALUE ALL "-".
           01 HEAD4.
            05  PIC X(80) VALUE 
            "GROUP      NAME        TOTAL        STOCKVAL".
           01 TOTAL1 PIC 999999 VALUE 0.
           01 GTOTAL1 PIC 9(8) VALUE 0.
           01 GRANDTOTAL1.
            05 FILLER PIC X(22) VALUE " GRAND TOTAL :- ".
            05 TOTAL2 PIC ZZZZZZ9(3).
            05 FILLER PIC X(5).
            05 GTOTAL2 PIC ZZZZZ9(2).
           01 T1 PIC 9(14).
       
       PROCEDURE DIVISION.
         BEGIN.
           PERFORM VARYING I FROM 1 BY 1 UNTIL I>5
             MOVE ZERO TO TSTOCK1(I),SVALUE1(1)
           END-PERFORM.
           OPEN INPUT INP1 OUTPUT OUT1.
              WRITE REC2 FROM HEAD1.
              WRITE REC2 FROM HEAD2.
              WRITE REC2 FROM HEAD3.
              WRITE REC2 FROM HEAD4.
              WRITE REC2 FROM HEAD3. 
              PERFORM UNTIL EOF="Y"
                READ INP1
                 AT END MOVE "Y" TO EOF 
                 NOT AT END PERFORM DISPLAY1
                END-READ
              END-PERFORM.
              DISPLAY TOTAL1.
              PERFORM VARYING I FROM 1 BY 1 UNTIL I>5
               MOVE GRNO1(I) TO GRNO2
               MOVE NAME2(I) TO NAME3
               MOVE TSTOCK1(I) TO TSTOCK2
               COMPUTE GTOTAL1=GTOTAL1 + SVALUE1(I)
               MOVE SVALUE1(I) TO SVALUE2
               WRITE REC2 FROM PRINT1
              END-PERFORM.
                MOVE TOTAL1 TO TOTAL2.
                MOVE GTOTAL1 TO GTOTAL2.
                WRITE REC2 FROM HEAD3.
                WRITE REC2 FROM GRANDTOTAL1.
              
              CLOSE INP1.
              CLOSE OUT1.
               STOP RUN.
          DISPLAY1.     
               
               COMPUTE T1=RATE1 * QTY1.
               DISPLAY GRP1 "   " RATE1 "   "QTY1"  "T1.
      *         MOVE 0 TO TOTAL1.
               EVALUATE GRP1
                
                WHEN 01              
                  MOVE "ELECTRICALS" TO NAME2(GRP1)
                  MOVE GRP1 TO GRNO1(GRP1)
                  COMPUTE TSTOCK1(GRP1)=TSTOCK1(GRP1) + QTY1
                  COMPUTE SVALUE1(GRP1)=SVALUE1(GRP1) + (QTY1 * RATE1)
                  COMPUTE TOTAL1=TOTAL1 + QTY1
                  DISPLAY GRNO1(GRP1) "  "NAME2(GRP1)" "SVALUE1(GRP1)
                WHEN 02              
                  MOVE "ENGINEERING" TO NAME2(GRP1)
                  MOVE GRP1 TO GRNO1(GRP1)
                  COMPUTE TSTOCK1(GRP1) = TSTOCK1(GRP1) + QTY1
                  COMPUTE SVALUE1(GRP1)=SVALUE1(GRP1) + (QTY1 * RATE1)
                  COMPUTE TOTAL1=TOTAL1 + QTY1
                  DISPLAY GRNO1(GRP1) "  "NAME2(GRP1)" "SVALUE1(GRP1)
                WHEN 03              
                  MOVE "ELECTRONICS" TO NAME2(GRP1)
                  MOVE GRP1 TO GRNO1(GRP1)
                  COMPUTE TSTOCK1(GRP1) = TSTOCK1(GRP1) + QTY1
                  COMPUTE SVALUE1(GRP1) =SVALUE1(GRP1) + (QTY1 * RATE1)
                  COMPUTE TOTAL1=TOTAL1 + QTY1
                  DISPLAY GRNO1(GRP1)"  "NAME2(GRP1)" "SVALUE1(GRP1)
                WHEN 04              
                  MOVE "STATIONARY" TO NAME2(GRP1)
                  MOVE GRP1 TO GRNO1(GRP1)
                  COMPUTE TSTOCK1(GRP1) = TSTOCK1(GRP1) + QTY1
                  COMPUTE SVALUE1(GRP1) = SVALUE1(GRP1)+(QTY1 * RATE1)
                  COMPUTE TOTAL1=TOTAL1 + QTY1
                  DISPLAY GRNO1(GRP1) "  "NAME2(GRP1)" "SVALUE1(GRP1)
                WHEN 05              
                  MOVE "FURNITURE" TO NAME2(GRP1)
                  MOVE GRP1 TO GRNO1(GRP1)
                  COMPUTE TSTOCK1(GRP1) = TSTOCK1(GRP1) + QTY1
                  COMPUTE SVALUE1(GRP1) = SVALUE1(GRP1) + (QTY1 * RATE1)
                  COMPUTE TOTAL1=TOTAL1 + QTY1
                  DISPLAY GRNO1(GRP1)"  "NAME2(GRP1)" "SVALUE1(GRP1)
            
               END-EVALUATE.
/*********************************************************************************
                              INPUT FILE
*********************************************************************************/
1234XXXXXXXXXXXXXXXX          1234512345671234567812
1   T.V                       0100000002000000001001
2   RADIO                     0100000002000000002003
3   BOOKS                     0100000001500000003001
4   TABLE                     0100000002500000004005
/*********************************************************************************
                             OUTPUT FILE 
*********************************************************************************/
                    SHREE ELECTRONOICS LTD
                    GROUP WISE STOCK SUMMERY
--------------------------------------------------------------------------------
GROUP      NAME        TOTAL        STOCKVAL
--------------------------------------------------------------------------------
01     ELECTRICALS      00000040     0006500
                        00000000
03     ELECTRONICS      00000020     0004000
                        00000000
05     FURNITURE        00000040     0010000
--------------------------------------------------------------------------------
 GRAND TOTAL :-             100       20500