Solved

cobol control-break question

Posted on 2000-04-12
6
375 Views
Last Modified: 2011-09-20
I have a text file with6 fields
region            pic x 3
section           pic x 3
proj #            pic x 5
type               pic x 15
budget amt    pic 9(9)
actual amt      pic 9(9)

I have to create a report showing the following fields with thier proper
headings.  also I must show a variance (+, -) showing the difference
between budget and actual amts.     I am able to do this,  but at the bottom of the report I must show totals for sections, and totals for regions.
  When I attempt to do this I loose my calculated variance field.  I know
I am doing this program incorrectly and am going nowhere.  if it will
help I can e-mail my .txt file and my code.

thank you.
0
Comment
Question by:qsysopr
  • 3
  • 2
6 Comments
 
LVL 3

Expert Comment

by:arch_great
ID: 2711299
Keep 2 variables for Regiontot and Section tot (which will become 0 ,when the region changes.... )

Pseudo code (not in COBOL)

mregtot = 0
msectot = 0

AS long as !eof()
    mregion = region
    msection = section
   

    if section changes
        do control break (where U will print that section's total...
    endif    

    if region changes
            do control break (where U will print that region's total...
    endif

     Calculate variance for each detail....

-----------

In Control break  of section and region , reinitialise the respective totals to zero...
 
0
 
LVL 54

Accepted Solution

by:
nico5038 earned 50 total points
ID: 2713325
You are trying to write a so called "level" program.

The solution arch great proposes is nearly OK but (as often) forgets to take the EOF situation in consideration.

Main processing is:

define an actual and a saved key:

01 WA-KEY.
   03 WA-EOF      PIC X(01).
   03 WA-SECTION  PIC X(03).
   03 WA-REGION   PIC X(03).

01 WA-KEY-SECTION REDEFINES WA-KEY.
   03 FILLER      PIC X(04).

01 WS-KEY.
   03 WS-EOF      PIC X(01).
   03 WS-SECTION  PIC X(03).
   03 WS-REGION   PIC X(03).

01 WB-KEY-SECTION REDEFINES WB-KEY.
   03 FILLER      PIC X(04).

PROCEDURE DIVISION.

PERFORM INIT-ROUTINE

PERFORM MAIN-ROUTINE UNTIL WB-EOF = "1"

MAIN-ROUTINE
MAIN01:
   ' Test no total
   IF WA-KEY = WB-KEY
      PERFORM PRINT-DETAIL
      PERFORM READ-NEXT
      GOTO MAIN01
    END
    ' Test region total
    IF WA-KEY-SECTION = WB-KEY-SECTION
      PERFORM PRINT-REGION-TOTAL
      INIT region
      PERFORM PRINT-DETAIL
      PERFORM READ-NEXT
      GOTO MAIN01
    END
    ' Test section total
    IF WA-EOF = WB-EOF
      PERFORM PRINT-REGION-SECTION-TOTAL
      INIT section and region
      PERFORM PRINT-DETAIL
      PERFORM READ-NEXT
      GOTO MAIN01
    END
    ' Hereyou get when WA-EOF is set
    ' Just print the last totals and ready !
    PERFORM PRINT-REGION-SECTION-TOTAL
    MOVE WA-EOF TO WB-EOF
END MAIN

READ-NEXT
      COUNT region and section
      MOVE WB-KEY TO WA-KEY
      READ NEXT
      MOVE fields to WA
      SET WA-EOF WHEN EOF OCCURS
END READ-NEXT

INIT-ROUTINE
      SET COUNT region and section TO ZERO
      READ FIRST
      MOVE fields to WA
      MOVE WA-KEY TO WB-KEY
      SET WA-EOF WHEN EOF OCCURS
END INIT-ROUTINE
     
0
 
LVL 24

Expert Comment

by:SunBow
ID: 2739389
I swear I won't cobol, but I am also sure that if I did and init routine I would also run a cleanup routine at the end.

More than likely I would use Eof to process some totalling code, then leaf out to cleanup of files and such.

>       PERFORM PRINT-DETAIL
>       PERFORM READ-NEXT

yah, very nice and crisply done
0
Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 
LVL 54

Expert Comment

by:nico5038
ID: 2739684
Sunbow,

Using a 'switch-value' for EOF in a "sortwork-key" offers the advantage that even multiple files can be "levelled" automatically and that those files having EOF are automatically skipped for pocessing by the value of this EOF field!
0
 
LVL 54

Expert Comment

by:nico5038
ID: 2772434
How is the progress on the report ?
0
 
LVL 24

Expert Comment

by:SunBow
ID: 2834518
did it work?
0

Featured Post

Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
numbers ascending pyramid 101 213
Filename to be appended with DateTimeof Download 3 62
ejb stateless example 2 27
maven disable workspace resolution 1 23
Go is an acronym of golang, is a programming language developed Google in 2007. Go is a new language that is mostly in the C family, with significant input from Pascal/Modula/Oberon family. Hence Go arisen as low-level language with fast compilation…
A short article about a problem I had getting the GPS LocationListener working.
An introduction to basic programming syntax in Java by creating a simple program. Viewers can follow the tutorial as they create their first class in Java. Definitions and explanations about each element are given to help prepare viewers for future …
In this seventh video of the Xpdf series, we discuss and demonstrate the PDFfonts utility, which lists all the fonts used in a PDF file. It does this via a command line interface, making it suitable for use in programs, scripts, batch files — any pl…

828 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question