gnucobol-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [open-cobol-list] open-cobol-list Digest, Vol 46, Issue 2


From: Alain
Subject: Re: [open-cobol-list] open-cobol-list Digest, Vol 46, Issue 2
Date: Wed, 22 Dec 2010 19:24:02 +0100

Hello,
If you are using Linux,try with
COB_LIBRARY_PATH=.:/usr/local/lib/
in your environment 
-- 
Alain <address@hidden>



On Wed, 22 Dec 2010 10:40:56 +0530
rathin <address@hidden> wrote:

> Thank you Sir, for your very quick response . the program has been
> understood but whenever i execute it 
> an error line shows
> 
> ./test1: error while loading shared libraries: libcob.so.1: cannot open
> shared object file: No such file or directory
> 
> but the libcob.so.1 resides in /usr/local/lib as seen below
> 
> address@hidden ~]# locate libcob.so.1
> /usr/local/lib/libcob.so.1
> /usr/local/lib/libcob.so.1.0.0
> 
> please suggest to eliminate this error of shared libraries.
> 
> thanking you
> rathin
> 
> On Wed, 2010-12-22 at 05:10 +0530, open-cobol-list-
> address@hidden wrote:
> 
> > Send open-cobol-list mailing list submissions to
> >         address@hidden
> > 
> > To subscribe or unsubscribe via the World Wide Web, visit
> >         https://lists.sourceforge.net/lists/listinfo/open-cobol-list
> > or, via email, send a message with subject or body 'help' to
> >         address@hidden
> > 
> > You can reach the person managing the list at
> >         address@hidden
> > 
> > When replying, please edit your Subject line so it is more specific
> > than "Re: Contents of open-cobol-list digest..."
> > 
> > 
> > Today's Topics:
> > 
> >    1. Re: PLEASE HELP new to coboL PROGRAMMING (Vince Coen)
> >    2. Re: PLEASE HELP new to coboL PROGRAMMING (John Culleton)
> >    3. Re: PLEASE HELP new to coboL PROGRAMMING (Dave Stratford)
> > 
> > 
> > ----------------------------------------------------------------------
> > 
> > Message: 1
> > Date: Mon, 20 Dec 2010 13:24:51 +0000
> > From: Vince Coen <address@hidden>
> > Subject: Re: [open-cobol-list] PLEASE HELP new to coboL PROGRAMMING
> > To: address@hidden
> > Message-ID: <address@hidden>
> > Content-Type: Text/Plain;  charset="utf-8"
> > 
> > Hi;
> > 
> > On Monday 20 Dec 2010, rathin wrote:
> > > SIR,
> > >        I AM NEW TO COBOL PROGRAMMING . IT WOULD BE VERY KIND OF YOU IF
> > > IT BE TAUGHT BY EXAMPLE BELOW IS A PROGRAM TAKEN FROM THE NET. SO SIR
> > > IF YOU CAN KINDLY PUT IT IN THE OPEN COBOL FORMAT THAN IT WOULD BE
> > > EASIER FOR ME TO UNDERSTAND.
> > > I SUCCESSFULLY INSTALLED OPEN COBOL 1.0 AND THE COBC HAS BEEN
> > > SUCCESSFULLY COMPILED.
> > > SIR KINDLY CHANGE IT TO OPEN COBOL FORMAT SO THAT I CAN IDENTIFY THE
> > > DIFFERENCE AND LEARN IT STEP BY STEP
> > 
> > It not exactly difficult but first stop writing in upper case, use normal 
> > text
> > and case e.g, the same as this!
> > 
> > 1. Remove leading spaces so that Cobol text starts at column 1 for all
> > sections and division headers and col 2 or more for all others.
> > 2. Replace all comment lines containing '* '  with '*>'
> > 3. Add as line one but starting at column 8 >>source free
> > 4. Cobol does not require all text in upper case so change case to suite 
> > your
> >      needs.
> > 5. Upgrade open cobol to version 1.1 or later
> > 
> > [Note that my email editor as messed up spacing in code so that left hand
> > start position is moved left]
> > 
> > Example :
> > 
> >        >>source free
> > identification division.
> > program-id.      test1.
> > environment division.
> > configuration section.
> > input-output section.
> > file-control.
> >      select tax-table-file assign "input-file"
> >                            organization line sequential.
> >      select salary-file assign "input-file"
> >                         organization line sequential.
> >      select salary-report assign "output-file"
> >                           organization line sequential.
> > data division.
> > file section.
> > *>
> > fd  tax-table-file.
> > 01  tax-table-rec.
> >     05  t-max-tax-income             pic 9(06).
> >     05  t-fed-tax                    pic v9(3).
> >     05  t-state-tax                  pic v9(3).
> >     05                               pic x(68).
> > fd  salary-file.
> > 01  salary-file-rec.
> >     05  employee-no                  pic 9(05).
> >     05  employee-name                pic x(20).
> >     05                               pic x(03).
> >     05  annual-salary                pic 9(05).
> >     05                               pic x(08).
> >     05  no-dependents                pic 9(01).
> >     05                               pic x(38).
> > fd  salary-report
> >     record contains 80 characters.
> > 01  salary-report-rec                pic x(80).
> > *>
> > working-storage section.
> > 01  working-items.
> >     05  more-recs                    pic x(01).
> >     05  x1                           pic 9(02).
> >     05  more-table-recs              pic x(01)  value 'Y'.
> >     05  fed-tax-deduction            pic 9(05).
> >     05  state-tax-deduction          pic 9(05).
> >     05  monthly-take-home-pay        pic 9(05)v9(02).
> >     05  found-match                  pic x(01)  value 'N'.
> >     05  temp-income                  pic 9(06)  value zeroes.
> > 01  ws-date.
> >     05  ws-date-year                 pic 9(02).
> >     05  ws-date-month                pic 9(02).
> >     05  ws-date-day                  pic 9(02).
> > 01  ws-report-date.
> >     05  rd-month                     pic 9(02).
> >     05                               pic x(01)  value '/'.
> >     05  rd-day                       pic 9(02).
> >     05                               pic x(01)  value '/'.
> >     05  rd-year                      pic 9(02).
> > 01  tax-table.
> >     05  table-entries occurs 6 times.
> >         10  ws-max-tax-income        pic 9(06).
> >         10  ws-fed-tax               pic v9(3).
> >         10  ws-state-tax             pic v9(3).
> > 01  header-1.
> >     05                               pic x(12).
> >     05                               pic x(21)  value 'MONTHLY SALARY 
> > REPORT'.
> >     05                               pic x(03).
> >     05  date-out                     pic 99/99/99.
> >     05                               pic x(02).
> > *>  05                               pic x(04)  value 'PAGE'.
> > *>  05  page-out                     pic 9(02).
> > 01  header-2.
> >     05                               pic x(08)  value 'EMPLOYEE'.
> >     05                               pic x(19).
> >     05                               pic x(17)  value 'MONTHLY TAKE HOME'.
> > 01  header-3.
> >     05                               pic x(02).
> >     05                               pic x(04)  value 'NAME'.
> >     05                               pic x(28).
> >     05                               pic x(03)  value 'PAY'.
> > 01  list-line-1.
> >     05  employee-name-out            pic x(20).
> >     05                               pic x(11).
> >     05  monthly-take-home-pay-out    pic $zz,zzz.99.
> > 01  list-line-2.
> >     05                               pic x(05).
> >     05                               pic x(35) value 'No match was found in
> > the tax table'.
> > procedure division.
> > 000-main-rtn.
> >     perform 100-initialize-rtn
> >     perform 200-table-entry
> >     perform 300-process-rtn until more-recs = 'N'
> >     perform 900-close-files-rtn.
> > 100-initialize-rtn.
> >     open input  tax-table-file
> >                 salary-file
> >          output salary-report
> >     move 'Y' to more-recs
> >     perform 110-set-date-rtn
> >     perform 120-write-headers-rtn.
> > 110-set-date-rtn.
> >     accept ws-date from date
> >     move ws-date-year to rd-year
> >     move ws-date-month to rd-month
> >     move ws-date-day to rd-day
> >     move ws-report-date to date-out.
> > 120-write-headers-rtn.
> >     write salary-report-rec from header-1 after 5
> >     write salary-report-rec from header-2 after 2
> >     write salary-report-rec from header-3 after 1.
> > 200-table-entry.
> >     perform varying x1 from 1 by 1 until x1 >  7 or more-table-recs = 'N'
> >         read tax-table-file
> >             at end
> >                 move 'N' to more-table-recs
> >             not at end
> >                 perform 250-table-load
> >         end-read
> >     end-perform
> >     if x1 < 7
> >         display 'Too few records in the file'
> >     end-if
> >     if more-table-recs not = 'N'
> >         display 'Too many records in the file'
> >     end-if.
> > 250-table-load.
> >     move t-max-tax-income to ws-max-tax-income (x1)
> >     move t-fed-tax to ws-fed-tax (x1)
> >     move t-state-tax to ws-state-tax (x1).
> > 300-process-rtn.
> >     read salary-file at end
> >             move 'N' to more-recs
> >                      not at end
> >             perform 350-compare-rtn
> >     end-read.
> > 350-compare-rtn.
> >     move 1 to x1
> >     perform 353-increment-subscript-rtn  until found-match = 'Y' or x1 >  7
> >     if x1 >  7 and found-match = 'N'
> >         then write salary-report-rec from list-line-2
> >         continue
> >     end-if
> >     perform 356-calculate-rtn
> >     perform 359-write-rtn
> >     move 'N' to found-match
> >     move zeroes to temp-income.
> > 353-increment-subscript-rtn.
> >     if annual-salary >  temp-income and <= ws-max-tax-income (x1)
> >         then move 'Y' to found-match
> >     else
> >         move ws-max-tax-income (x1) to temp-income
> >         add 1 to x1
> >     end-if.
> > 356-calculate-rtn.
> >     compute fed-tax-deduction =   annual-salary * ws-fed-tax (x1)
> >     compute state-tax-deduction = annual-salary * ws-state-tax (x1)
> >     compute monthly-take-home-pay = (annual-salary - (fed-tax-deduction +
> > state-tax-deduction))/12.
> > 359-write-rtn.
> >     move employee-name to employee-name-out
> >     move monthly-take-home-pay to monthly-take-home-pay-out
> >     write salary-report-rec from list-line-1 after 1.
> > 900-close-files-rtn.
> >     close tax-table-file
> >           salary-file
> >           salary-report
> >     stop run.
> > 
> > 
> > 
> > ------------------------------
> > 
> > Message: 2
> > Date: Mon, 20 Dec 2010 11:13:40 -0500
> > From: John Culleton <address@hidden>
> > Subject: Re: [open-cobol-list] PLEASE HELP new to coboL PROGRAMMING
> > To: address@hidden
> > Message-ID: <address@hidden>
> > Content-Type: Text/Plain;  charset="iso-8859-15"
> > 
> > On Monday 20 December 2010 07:19:43 rathin wrote:
> > > IDENTIFICATION DIVISION.
> > (etc.)
> > 
> > The program is written in the older fixed format. It conforms to COBOL
> > 85  apparently.
> > 
> > Only a few changes are needed.
> > Put seven spaces before IDENTIFICATION DIVISION.
> > You need to add a PROGRAM-ID. paragraph.
> > The LABEL RECORDS ARE STANDARD clause is obsolete and should be
> > eliminated.
> > The RECORD CONTAINS 80 CHARACTERS clause is obsolete and should be
> > eliminated.
> > 
> > Don.t forget to put a period at the end of the FD lines in each case.
> > 
> > 
> > With these few changes the program as you submitted it compiles
> > without error using
> > 
> > cobc -x cobsamp.cbl
> > 
> > The corrected program is listed below. Note that DIVISION, SECTION, FD
> > and 01 headers begin with seven spaces.  Named paragraphs begin with
> > 7 spaces. Other lines in your sample begin with 9 spaces, but should
> > really begin with 11 spaces to conform to the old fixed format.
> > --------------------------------------
> >       IDENTIFICATION DIVISION.
> >        PROGRAM-ID. SAMPLE.
> >        ENVIRONMENT DIVISION.
> >        CONFIGURATION SECTION.
> >        INPUT-OUTPUT SECTION.
> >        FILE-CONTROL.
> >            SELECT TAX-TABLE-FILE ASSIGN TO  "INPUT-FILE"
> >                                     ORGANIZATION IS LINE SEQUENTIAL.
> >            SELECT SALARY-FILE ASSIGN TO "INPUT-FILE"
> >                   ORGANIZATION IS LINE SEQUENTIAL.
> >            SELECT SALARY-REPORT ASSIGN TO "OUTPUT-FILE"
> >                   ORGANIZATION IS LINE SEQUENTIAL.
> >        DATA DIVISION.
> >        FILE SECTION.
> >       *
> >        FD  TAX-TABLE-FILE.
> >        01  TAX-TABLE-REC.
> >            05  T-MAX-TAX-INCOME             PIC 9(06).
> >            05  T-FED-TAX                    PIC V9(3).
> >            05  T-STATE-TAX                  PIC V9(3).
> >            05                               PIC X(68).
> >        FD  SALARY-FILE.
> >        01  SALARY-FILE-REC.
> >            05  EMPLOYEE-NO                  PIC 9(05).
> >            05  EMPLOYEE-NAME                PIC X(20).
> >            05                               PIC X(03).
> >            05  ANNUAL-SALARY                PIC 9(05).
> >            05                               PIC X(08).
> >            05  NO-DEPENDENTS                PIC 9(01).
> >            05                               PIC X(38).
> >        FD  SALARY-REPORT.
> >        01  SALARY-REPORT-REC                PIC X(80).
> >       *
> >        WORKING-STORAGE SECTION.
> >        01  WORKING-ITEMS.
> >            05  MORE-RECS                    PIC X(01).
> >            05  X1                           PIC 9(02).
> >            05  MORE-TABLE-RECS              PIC X(01)  VALUE 'Y'.
> >            05  FED-TAX-DEDUCTION            PIC 9(05).
> >            05  STATE-TAX-DEDUCTION          PIC 9(05).
> >            05  MONTHLY-TAKE-HOME-PAY        PIC 9(05)V9(02).
> >            05  FOUND-MATCH                  PIC X(01)  VALUE 'N'.
> >            05  TEMP-INCOME                  PIC 9(06)  VALUE ZEROES.
> >        01  WS-DATE.
> >            05  WS-DATE-YEAR                 PIC 9(02).
> >            05  WS-DATE-MONTH                PIC 9(02).
> >            05  WS-DATE-DAY                  PIC 9(02).
> >        01  WS-REPORT-DATE.
> >            05  RD-MONTH                     PIC 9(02).
> >            05                               PIC X(01)  VALUE '/'.
> >            05  RD-DAY                       PIC 9(02).
> >            05                               PIC X(01)  VALUE '/'.
> >            05  RD-YEAR                      PIC 9(02).
> >        01  TAX-TABLE.
> >            05  TABLE-ENTRIES OCCURS 6 TIMES.
> >                10  WS-MAX-TAX-INCOME        PIC 9(06).
> >                10  WS-FED-TAX               PIC V9(3).
> >                10  WS-STATE-TAX             PIC V9(3).
> >        01  HEADER-1.
> >            05                               PIC X(12).
> >            05                               PIC X(21)  VALUE
> >                            'MONTHLY SALARY REPORT'.
> >            05                               PIC X(03).
> >            05  DATE-OUT                     PIC 99/99/99.
> >            05                               PIC X(02).
> >       *    05                               PIC X(04)  VALUE
> >       *                    'PAGE'.
> >       *    05  PAGE-OUT                     PIC 9(02).
> >        01  HEADER-2.
> >            05                               PIC X(08)  VALUE
> >                            'EMPLOYEE'.
> >            05                               PIC X(19).
> >            05                               PIC X(17)  VALUE
> >                            'MONTHLY TAKE HOME'.
> >        01  HEADER-3.
> >            05                               PIC X(02).
> >            05                               PIC X(04)  VALUE
> >                            'NAME'.
> >            05                               PIC X(28).
> >            05                               PIC X(03)  VALUE
> >                            'PAY'.
> >        01  LIST-LINE-1.
> >            05  EMPLOYEE-NAME-OUT            PIC X(20).
> >            05                               PIC X(11).
> >            05  MONTHLY-TAKE-HOME-PAY-OUT    PIC $ZZ,ZZZ.99.
> >        01  LIST-LINE-2.
> >            05                               PIC X(05).
> >            05                               PIC X(35) VALUE
> >                            'NO MATCH WAS FOUND IN THE TAX TABLE'.
> >        PROCEDURE DIVISION.
> >        000-MAIN-RTN.
> >            PERFORM 100-INITIALIZE-RTN
> >            PERFORM 200-TABLE-ENTRY
> >            PERFORM 300-PROCESS-RTN
> >                        UNTIL MORE-RECS = 'N'
> >            PERFORM 900-CLOSE-FILES-RTN.
> >        100-INITIALIZE-RTN.
> >            OPEN INPUT  TAX-TABLE-FILE
> >                        SALARY-FILE
> >                 OUTPUT SALARY-REPORT
> >            MOVE 'Y' TO MORE-RECS
> >            PERFORM 110-SET-DATE-RTN
> >            PERFORM 120-WRITE-HEADERS-RTN.
> >        110-SET-DATE-RTN.
> >            ACCEPT WS-DATE FROM DATE
> >            MOVE WS-DATE-YEAR TO RD-YEAR
> >            MOVE WS-DATE-MONTH TO RD-MONTH
> >            MOVE WS-DATE-DAY TO RD-DAY
> >            MOVE WS-REPORT-DATE TO DATE-OUT.
> >        120-WRITE-HEADERS-RTN.
> >            WRITE SALARY-REPORT-REC FROM HEADER-1
> >                          AFTER ADVANCING 5 LINES
> >            WRITE SALARY-REPORT-REC FROM HEADER-2
> >                          AFTER ADVANCING 2 LINES
> >            WRITE SALARY-REPORT-REC FROM HEADER-3
> >                           AFTER ADVANCING 1 LINE.
> >        200-TABLE-ENTRY.
> >            PERFORM VARYING X1 FROM 1 BY 1
> >                            UNTIL X1 > 7 OR MORE-TABLE-RECS = 'N'
> >                READ TAX-TABLE-FILE
> >                    AT END
> >                        MOVE 'N' TO MORE-TABLE-RECS
> >                    NOT AT END
> >                        PERFORM 250-TABLE-LOAD
> >                END-READ
> >            END-PERFORM
> >            IF X1 < 7
> >                DISPLAY 'TOO FEW RECORDS IN THE FILE'
> >            END-IF
> >            IF MORE-TABLE-RECS NOT = 'N'
> >                DISPLAY 'TOO MANY RECORDS IN THE FILE'
> >            END-IF.
> >        250-TABLE-LOAD.
> >            MOVE T-MAX-TAX-INCOME TO WS-MAX-TAX-INCOME (X1)
> >            MOVE T-FED-TAX TO WS-FED-TAX (X1)
> >            MOVE T-STATE-TAX TO WS-STATE-TAX (X1).
> >        300-PROCESS-RTN.
> >            READ SALARY-FILE
> >                AT END
> >                    MOVE 'N' TO MORE-RECS
> >                NOT AT END
> >                    PERFORM 350-COMPARE-RTN
> >            END-READ.
> >        350-COMPARE-RTN.
> >            MOVE 1 TO X1
> >            PERFORM 353-INCREMENT-SUBSCRIPT-RTN
> >                           UNTIL FOUND-MATCH = 'Y' OR X1 > 7
> >            IF X1 > 7 AND FOUND-MATCH = 'N'
> >                THEN WRITE SALARY-REPORT-REC FROM LIST-LINE-2
> >                CONTINUE
> >            END-IF
> >            PERFORM 356-CALCULATE-RTN
> >            PERFORM 359-WRITE-RTN
> >            MOVE 'N' TO FOUND-MATCH
> >            MOVE ZEROES TO TEMP-INCOME.
> >        353-INCREMENT-SUBSCRIPT-RTN.
> >            IF ANNUAL-SALARY > TEMP-INCOME AND <= WS-MAX-TAX-INCOME
> > (X1)
> >                THEN MOVE 'Y' TO FOUND-MATCH
> >            ELSE
> >                MOVE WS-MAX-TAX-INCOME (X1) TO TEMP-INCOME
> >                ADD 1 TO X1
> >            END-IF.
> >        356-CALCULATE-RTN.
> >            COMPUTE FED-TAX-DEDUCTION =
> >                       ANNUAL-SALARY * WS-FED-TAX (X1)
> >            COMPUTE STATE-TAX-DEDUCTION =
> >                       ANNUAL-SALARY * WS-STATE-TAX (X1)
> >            COMPUTE MONTHLY-TAKE-HOME-PAY = (ANNUAL-SALARY -
> >                         (FED-TAX-DEDUCTION + STATE-TAX-DEDUCTION))/12.
> >        359-WRITE-RTN.
> >            MOVE EMPLOYEE-NAME TO EMPLOYEE-NAME-OUT
> >            MOVE MONTHLY-TAKE-HOME-PAY TO MONTHLY-TAKE-HOME-PAY-OUT
> >            WRITE SALARY-REPORT-REC FROM LIST-LINE-1
> >                             AFTER ADVANCING 1 LINE.
> >        900-CLOSE-FILES-RTN.
> >            CLOSE TAX-TABLE-FILE
> >                  SALARY-FILE
> >                  SALARY-REPORT
> >            STOP RUN.
> > 
> > Of course the program will not run unless the two input files are
> > available.
> > 
> > To learn COBOL I recommend purchase of a good textbook, (in this case
> > the older the better) and of course study of the Open Cobol Manual
> > which is an excellent reference guide.
> > --
> > John Culleton,
> >  typesetting and indexing http://wexfordpress.com
> > book sales http://wexfordpress.net
> > Free  barcode: http://www.tux.org/~milgram/bookland/
> > 
> > 
> > 
> > 
> > ------------------------------
> > 
> > Message: 3
> > Date: Tue, 21 Dec 2010 23:08:24 -0000 (GMT)
> > From: "Dave Stratford" <address@hidden>
> > Subject: Re: [open-cobol-list] PLEASE HELP new to coboL PROGRAMMING
> > To: address@hidden
> > Message-ID:
> >         <address@hidden>
> > Content-Type: text/plain;charset=iso-8859-1
> > 
> > 
> > John Culleton wrote:
> > > On Monday 20 December 2010 07:19:43 rathin wrote:
> > >> IDENTIFICATION DIVISION.
> > > (etc.)
> > >
> > > The program is written in the older fixed format. It conforms to COBOL
> > > 85  apparently.
> > >
> > > Only a few changes are needed.
> > > Put seven spaces before IDENTIFICATION DIVISION.
> > 
> > 7 to 10 spaces.
> > 
> > > You need to add a PROGRAM-ID. paragraph.
> > > The LABEL RECORDS ARE STANDARD clause is obsolete and should be
> > > eliminated.
> > > The RECORD CONTAINS 80 CHARACTERS clause is obsolete and should be
> > > eliminated.
> > 
> > Haven't cheecked the OC compiler, but will the presence of these cause is
> > to barf, or will it simply ignore them? My understanding of the COBOL
> > standards is that it should accept them but ignore them.
> > 
> > > Don.t forget to put a period at the end of the FD lines in each case.
> > >
> > >
> > > With these few changes the program as you submitted it compiles
> > > without error using
> > >
> > > cobc -x cobsamp.cbl
> > >
> > > The corrected program is listed below. Note that DIVISION, SECTION, FD
> > > and 01 headers begin with seven spaces.  Named paragraphs begin with
> > > 7 spaces. Other lines in your sample begin with 9 spaces, but should
> > > really begin with 11 spaces to conform to the old fixed format.
> > 
> > 7 to 10 spaces is column A, 11 to 72 is column B. Some elements MUST start
> > in column A, some MUST start in column B, a few can start in either area.
> > But, most importantly, can start anywhere within that area.
> > 
> > Division, Section and Paragraph headers must start in A, WS level numbers
> > can be in A or B, most(all?) other bits must start somehwere in column B.
> > 
> > > --------------------------------------
> > >       IDENTIFICATION DIVISION.
> > >        PROGRAM-ID. SAMPLE.
> > >        ENVIRONMENT DIVISION.
> > >        CONFIGURATION SECTION.
> > >        INPUT-OUTPUT SECTION.
> > >        FILE-CONTROL.
> > >            SELECT TAX-TABLE-FILE ASSIGN TO  "INPUT-FILE"
> > >                                     ORGANIZATION IS LINE SEQUENTIAL.
> > >            SELECT SALARY-FILE ASSIGN TO "INPUT-FILE"
> > >                   ORGANIZATION IS LINE SEQUENTIAL.
> > >            SELECT SALARY-REPORT ASSIGN TO "OUTPUT-FILE"
> > >                   ORGANIZATION IS LINE SEQUENTIAL.
> > >        DATA DIVISION.
> > >        FILE SECTION.
> > >       *
> > >        FD  TAX-TABLE-FILE.
> > >        01  TAX-TABLE-REC.
> > >            05  T-MAX-TAX-INCOME             PIC 9(06).
> > >            05  T-FED-TAX                    PIC V9(3).
> > >            05  T-STATE-TAX                  PIC V9(3).
> > >            05                               PIC X(68).
> > >        FD  SALARY-FILE.
> > >        01  SALARY-FILE-REC.
> > >            05  EMPLOYEE-NO                  PIC 9(05).
> > >            05  EMPLOYEE-NAME                PIC X(20).
> > >            05                               PIC X(03).
> > >            05  ANNUAL-SALARY                PIC 9(05).
> > >            05                               PIC X(08).
> > >            05  NO-DEPENDENTS                PIC 9(01).
> > >            05                               PIC X(38).
> > >        FD  SALARY-REPORT.
> > >        01  SALARY-REPORT-REC                PIC X(80).
> > >       *
> > >        WORKING-STORAGE SECTION.
> > >        01  WORKING-ITEMS.
> > >            05  MORE-RECS                    PIC X(01).
> > >            05  X1                           PIC 9(02).
> > >            05  MORE-TABLE-RECS              PIC X(01)  VALUE 'Y'.
> > >            05  FED-TAX-DEDUCTION            PIC 9(05).
> > >            05  STATE-TAX-DEDUCTION          PIC 9(05).
> > >            05  MONTHLY-TAKE-HOME-PAY        PIC 9(05)V9(02).
> > >            05  FOUND-MATCH                  PIC X(01)  VALUE 'N'.
> > >            05  TEMP-INCOME                  PIC 9(06)  VALUE ZEROES.
> > >        01  WS-DATE.
> > >            05  WS-DATE-YEAR                 PIC 9(02).
> > >            05  WS-DATE-MONTH                PIC 9(02).
> > >            05  WS-DATE-DAY                  PIC 9(02).
> > >        01  WS-REPORT-DATE.
> > >            05  RD-MONTH                     PIC 9(02).
> > >            05                               PIC X(01)  VALUE '/'.
> > >            05  RD-DAY                       PIC 9(02).
> > >            05                               PIC X(01)  VALUE '/'.
> > >            05  RD-YEAR                      PIC 9(02).
> > >        01  TAX-TABLE.
> > >            05  TABLE-ENTRIES OCCURS 6 TIMES.
> > >                10  WS-MAX-TAX-INCOME        PIC 9(06).
> > >                10  WS-FED-TAX               PIC V9(3).
> > >                10  WS-STATE-TAX             PIC V9(3).
> > >        01  HEADER-1.
> > >            05                               PIC X(12).
> > >            05                               PIC X(21)  VALUE
> > >                            'MONTHLY SALARY REPORT'.
> > >            05                               PIC X(03).
> > >            05  DATE-OUT                     PIC 99/99/99.
> > >            05                               PIC X(02).
> > >       *    05                               PIC X(04)  VALUE
> > >       *                    'PAGE'.
> > >       *    05  PAGE-OUT                     PIC 9(02).
> > >        01  HEADER-2.
> > >            05                               PIC X(08)  VALUE
> > >                            'EMPLOYEE'.
> > >            05                               PIC X(19).
> > >            05                               PIC X(17)  VALUE
> > >                            'MONTHLY TAKE HOME'.
> > >        01  HEADER-3.
> > >            05                               PIC X(02).
> > >            05                               PIC X(04)  VALUE
> > >                            'NAME'.
> > >            05                               PIC X(28).
> > >            05                               PIC X(03)  VALUE
> > >                            'PAY'.
> > >        01  LIST-LINE-1.
> > >            05  EMPLOYEE-NAME-OUT            PIC X(20).
> > >            05                               PIC X(11).
> > >            05  MONTHLY-TAKE-HOME-PAY-OUT    PIC $ZZ,ZZZ.99.
> > >        01  LIST-LINE-2.
> > >            05                               PIC X(05).
> > >            05                               PIC X(35) VALUE
> > >                            'NO MATCH WAS FOUND IN THE TAX TABLE'.
> > >        PROCEDURE DIVISION.
> > >        000-MAIN-RTN.
> > >            PERFORM 100-INITIALIZE-RTN
> > >            PERFORM 200-TABLE-ENTRY
> > >            PERFORM 300-PROCESS-RTN
> > >                        UNTIL MORE-RECS = 'N'
> > >            PERFORM 900-CLOSE-FILES-RTN.
> > >        100-INITIALIZE-RTN.
> > >            OPEN INPUT  TAX-TABLE-FILE
> > >                        SALARY-FILE
> > >                 OUTPUT SALARY-REPORT
> > >            MOVE 'Y' TO MORE-RECS
> > >            PERFORM 110-SET-DATE-RTN
> > >            PERFORM 120-WRITE-HEADERS-RTN.
> > >        110-SET-DATE-RTN.
> > >            ACCEPT WS-DATE FROM DATE
> > >            MOVE WS-DATE-YEAR TO RD-YEAR
> > >            MOVE WS-DATE-MONTH TO RD-MONTH
> > >            MOVE WS-DATE-DAY TO RD-DAY
> > >            MOVE WS-REPORT-DATE TO DATE-OUT.
> > >        120-WRITE-HEADERS-RTN.
> > >            WRITE SALARY-REPORT-REC FROM HEADER-1
> > >                          AFTER ADVANCING 5 LINES
> > >            WRITE SALARY-REPORT-REC FROM HEADER-2
> > >                          AFTER ADVANCING 2 LINES
> > >            WRITE SALARY-REPORT-REC FROM HEADER-3
> > >                           AFTER ADVANCING 1 LINE.
> > >        200-TABLE-ENTRY.
> > >            PERFORM VARYING X1 FROM 1 BY 1
> > >                            UNTIL X1 > 7 OR MORE-TABLE-RECS = 'N'
> > >                READ TAX-TABLE-FILE
> > >                    AT END
> > >                        MOVE 'N' TO MORE-TABLE-RECS
> > >                    NOT AT END
> > >                        PERFORM 250-TABLE-LOAD
> > >                END-READ
> > >            END-PERFORM
> > >            IF X1 < 7
> > >                DISPLAY 'TOO FEW RECORDS IN THE FILE'
> > >            END-IF
> > >            IF MORE-TABLE-RECS NOT = 'N'
> > >                DISPLAY 'TOO MANY RECORDS IN THE FILE'
> > >            END-IF.
> > >        250-TABLE-LOAD.
> > >            MOVE T-MAX-TAX-INCOME TO WS-MAX-TAX-INCOME (X1)
> > >            MOVE T-FED-TAX TO WS-FED-TAX (X1)
> > >            MOVE T-STATE-TAX TO WS-STATE-TAX (X1).
> > >        300-PROCESS-RTN.
> > >            READ SALARY-FILE
> > >                AT END
> > >                    MOVE 'N' TO MORE-RECS
> > >                NOT AT END
> > >                    PERFORM 350-COMPARE-RTN
> > >            END-READ.
> > >        350-COMPARE-RTN.
> > >            MOVE 1 TO X1
> > >            PERFORM 353-INCREMENT-SUBSCRIPT-RTN
> > >                           UNTIL FOUND-MATCH = 'Y' OR X1 > 7
> > >            IF X1 > 7 AND FOUND-MATCH = 'N'
> > >                THEN WRITE SALARY-REPORT-REC FROM LIST-LINE-2
> > >                CONTINUE
> > >            END-IF
> > >            PERFORM 356-CALCULATE-RTN
> > >            PERFORM 359-WRITE-RTN
> > >            MOVE 'N' TO FOUND-MATCH
> > >            MOVE ZEROES TO TEMP-INCOME.
> > >        353-INCREMENT-SUBSCRIPT-RTN.
> > >            IF ANNUAL-SALARY > TEMP-INCOME AND <= WS-MAX-TAX-INCOME
> > > (X1)
> > >                THEN MOVE 'Y' TO FOUND-MATCH
> > >            ELSE
> > >                MOVE WS-MAX-TAX-INCOME (X1) TO TEMP-INCOME
> > >                ADD 1 TO X1
> > >            END-IF.
> > >        356-CALCULATE-RTN.
> > >            COMPUTE FED-TAX-DEDUCTION =
> > >                       ANNUAL-SALARY * WS-FED-TAX (X1)
> > >            COMPUTE STATE-TAX-DEDUCTION =
> > >                       ANNUAL-SALARY * WS-STATE-TAX (X1)
> > >            COMPUTE MONTHLY-TAKE-HOME-PAY = (ANNUAL-SALARY -
> > >                         (FED-TAX-DEDUCTION + STATE-TAX-DEDUCTION))/12.
> > >        359-WRITE-RTN.
> > >            MOVE EMPLOYEE-NAME TO EMPLOYEE-NAME-OUT
> > >            MOVE MONTHLY-TAKE-HOME-PAY TO MONTHLY-TAKE-HOME-PAY-OUT
> > >            WRITE SALARY-REPORT-REC FROM LIST-LINE-1
> > >                             AFTER ADVANCING 1 LINE.
> > >        900-CLOSE-FILES-RTN.
> > >            CLOSE TAX-TABLE-FILE
> > >                  SALARY-FILE
> > >                  SALARY-REPORT
> > >            STOP RUN.
> > >
> > > Of course the program will not run unless the two input files are
> > > available.
> > >
> > > To learn COBOL I recommend purchase of a good textbook, (in this case
> > > the older the better) and of course study of the Open Cobol Manual
> > > which is an excellent reference guide.
> > > --
> > > John Culleton,
> > >  typesetting and indexing http://wexfordpress.com
> > > book sales http://wexfordpress.net
> > > Free  barcode: http://www.tux.org/~milgram/bookland/
> > >
> > >
> > > ----------------------------------------------------------------------------
> > 
> > Dave
> > 
> > --
> > 
> > 
> > 
> > 
> > 
> > ------------------------------
> > 
> > ------------------------------------------------------------------------------
> > Forrester recently released a report on the Return on Investment (ROI) of
> > Google Apps. They found a 300% ROI, 38%-56% cost savings, and break-even
> > within 7 months.  Over 3 million businesses have gone Google with Google 
> > Apps:
> > an online email calendar, and document program that's accessible from your
> > browser. Read the Forrester report: http://p.sf.net/sfu/googleapps-sfnew
> > 
> > ------------------------------
> > 
> > _______________________________________________
> > open-cobol-list mailing list
> > address@hidden
> > https://lists.sourceforge.net/lists/listinfo/open-cobol-list
> > 
> > 
> > End of open-cobol-list Digest, Vol 46, Issue 2
> > **********************************************
> 
> "The information contained in this electronic message and any attachments to 
> this 
> message are intended for exclusive use of the addressee(s) and may contain 
> confidential or privileged information. If you are not the intended 
> recipient, please 
> notify the sender at LIC OF INDIA or address@hidden immediately and 
> destroy all copies of this message and any attachments. The views expressed 
> in 
> this E-mail message / Attachments, are those of the individual sender."



reply via email to

[Prev in Thread] Current Thread [Next in Thread]