Title: Chapter 15 Control Breaks
1Chapter 15 - Control Breaks
2Figure 15.1 Transaction File. (The sales amount
shows ASCII rather than EBCDIC Characters
Acct Salesperson Sales Comm Location RegionNum
Amount Pct 000069 BENWAY 023! 10 CHICAGO MIDWE
ST000100 HUMMER 010 05 CHICAGO MIDWEST000101
CLARK 1500 10 TRENTON NORTHEAST000104 CLARK 05
00 03 TRENTON NORTHEAST100000 JOHNSON 030 06 S
T. PETERSBURG SOUTHEAST130101 CLARK 3200 20 TREN
TON NORTHEAST203000 HAAS 8900 05 ST.
LOUIS MIDWEST248545 JOHNSON 0345 14 ST.
PETERSBURG SOUTHEAST277333 HAAS 009( 08 ST.
LOUIS MIDWEST400000 JOHNSON 070) 08 ST.
PETERSBURG SOUTHEAST444333 ADAMS 100 01 NEW
YORK NORTHEAST444444 FEGEN 0100 02 ST.
PETERSBURG SOUTHEAST475365 HAAS 0333 05 ST.
LOUIS MIDWEST476236 FEGEN 037 03 ST.
PETERSBURG NORTHEAST476530 BENWAY 023 05 CHICAG
O MIDWEST555555 FEGEN 0304 05 ST.
PETERSBURG NORTHEAST555666 ADAMS 2003 20 NEW
YORK NORTHEAST576235 CLARK 0100 03 TRENTON NOR
THEAST583645 KARLSTROM 0145 04 BALTIMORE NORTHE
AST649356 HUMMER 0345 05 CHICAGO MIDWEST694446
HUMMER 0904 10 CHICAGO MIDWEST700039 MARCUS 0
932 10 BALTIMORE NORTHEAST750020 MARCUS 0305 05
BALTIMORE NORTHEAST800396 KARLSTROM 3030 09 BA
LTIMORE NORTHEAST878787 JOHNSON 1235 12 ST.
PETERSBURG SOURHEAST987654 ADAMS 2005 10 NEW
YORK NORTHEAST988888 BENWAY 0450 01 CHICAGO MI
DWEST999340 BENWAY 0334 30 CHICAGO MIDWEST
3Figure 15.2 One-level Control Break
4Figure 15.3 Two-level Control Break
(a) Sorted Data (by Location and Salesperson)
5Figure 15.3 Two-level Control Break
SALES ACTIVITY REPORT
PAGE 3 LOCATION NEW YORK SALESPERSON
ADAMS ACCOUNT SALES COMMISSION
583645 145 6
800396 3,030 273
--------
------- SALESPERSON TOTAL
3,175 279 SALESPERSON
KARLSTROM ACCOUNT SALES
583645 145 6
800396 3,030 273
--------
------- SALESPERSON TOTAL
3,175 279
SALES ACTIVITY REPORT PAGE
2 LOCATION CHICAGO SALESPERSON
KARLSTROM ACCOUNT SALES COMMISSION
583645 145
6 800396 3,030 273
--------
------- SALESPERSON TOTAL
3,175 279 SALESPERSON
MARCUS ACCOUNT SALES COMMISSION
700039 932
93 7500020 305 15
-------- -------
SALESPERSON TOTAL 1,237 108
LOCATION TOTAL 4,412 387
SALES ACTIVITY REPORT PAGE 1 LOCATION
BALTIMORE SALESPERSON
KARLSTROM ACCOUNT SALES COMMISSION
583645 145
6 800396 3,030 273
--------
------- SALESPERSON TOTAL
3,175 279
SALESPERSON MARCUS ACCOUNT SALES
COMMISSION 700039
932 93 7500020 305
15
-------- -------
SALESPERSON TOTAL 1,237 108
LOCATION TOTAL 4,412 387
(b) Partial Output
6Figure 15.4 Three-level Control Break
000069 BENWAY 023! 10 CHICAGO MIDWEST476530 BENW
AY 023 05 CHICAGO MIDWEST988888 BENWAY 0450
01 CHICAGO MIDWEST999340 BENWAY 0334 30
CHICAGO MIDWEST000100 HUMMER 010 05
CHICAGO MIDWEST649356 HUMMER 0345 05
CHICAGO MIDWEST694446 HUMMER 0904 10
CHICAGO MIDWEST203000 HAAS 8900 05 ST.
LOUIS MIDWEST277333 HAAS 009( 08 ST.
LOUIS MIDWEST475365 HAAS 0333 05 ST. LOUIS
MIDWEST583645 KARLSTROM 0145 04
BALTIMORE NORTHEAST00396 KARLSTROM 3030 09
BALTIMORE NORTHEAST 700039 MARCUS 0932 10
BALTIMORE NORTHEAST750020 MARCUS 0305 05
BALTIMORE NORTHEAST444333 ADAMS 100 01 NEW
YORK NORTHEAST555666 ADAMS 2003 20 NEW
YORK NORTHEAST 987654 ADAMS 2005 10 NEW
YORK NORTHEAST000101 CLARK 1500 10
TRENTON NORTHEAST000104 CLARK 0500 03
TRENTON NORTHEAST130101 CLARK 3200 20
TRENTON NORTHEAST576235 CLARK 0100 03
TRENTON NORTHEAST444444 FEGEN 0100 02 ST.
PETERSBURG SOUTHEAST476236 FEGEN 037 03 ST.
PETERSBURG SOUTHEAST555555 FEGEN 0304 05 ST.
PETERSBURG SOUTHEAST100000 JOHNSON 030 06 ST.
PETERSBURG SOUTHEAST248545 JOHNSON 0345 14 ST.
PETERSBURG SOUTHEAST400000 JOHNSON 070) 08 ST.
PETERSBURG SOUTHEAST878787 JOHNSON 1235 12 ST.
PETERSBURG SOUTHEAST
One-level control breaks (tertiary key)
Two-level control breaks (secondary key)
Three-level control break (primary key)
(a) Sorted Data (by Region, Location, and
Salesperson)
7 SALES ACTIVITY REPORT PAGE 3REGION
SOUTHEAST LOCATION ST. PETERSBURG
SALESPERSON BENWAY ACCOUNT SALES
COMMISSION 000069
231- 23- 476530
235- 12- 988888 450
5 999340 334 100
--------
------- SALESPERSON
TOTAL 318 70
SALESPERSON HUMMER ACCOUNT
SALES COMMISSION 000100 107-
5- 649356
345 17 694446
904 90
-------- -------
SALESPERSON TOTAL
1,142 102 LOCATION
TOTAL 1,460 172 LOCATION ST.
LOUIS SALESPERSON
BENWAY ACCOUNT SALES COMMISSION
203000 8,900
445 277333 98-
8- 475365 333 17
--------
-------
SALESPERSON TOTAL 9,135 454
LOCATION TOTAL 9,135
454 REGION TOTAL 10,595
626
SALES ACTIVITY REPORT PAGE 2REGION
NORTHEAST LOCATION BALTIMORE
SALESPERSON BENWAY ACCOUNT SALES
COMMISSION 000069
231- 23- 476530
235- 12- 988888 450
5 999340 334 100
--------
------- SALESPERSON
TOTAL 318 70
SALESPERSON HUMMER ACCOUNT
SALES COMMISSION 000100 107-
5- 649356
345 17 694446
904 90
-------- -------
SALESPERSON TOTAL
1,142 102 LOCATION
TOTAL 1,460 172 LOCATION ST.
LOUIS SALESPERSON
BENWAY ACCOUNT SALES COMMISSION
203000 8,900
445 277333 98-
8- 475365 333 17
--------
-------
SALESPERSON TOTAL 9,135 454
LOCATION TOTAL 9,135
454 REGION TOTAL 10,595 626\
SALES ACTIVITY REPORT PAGE 1REGION
MIDWEST LOCATION CHICAGO
SALESPERSON BENWAY ACCOUNT SALES
COMMISSION 000069
231- 23- 476530
235- 12- 988888 450
5 999340 334 100
--------
------- SALESPERSON
TOTAL 318 70
SALESPERSON HUMMER ACCOUNT
SALES COMMISSION 000100 107-
5- 649356
345 17 694446
904 90
-------- -------
SALESPERSON TOTAL
1,142 102 LOCATION
TOTAL 1,460 172 LOCATION ST.
LOUIS SALESPERSON
BENWAY ACCOUNT SALES COMMISSION
203000 8,900
445 277333 98-
8- 475365 333 17
--------
-------
SALESPERSON TOTAL 9,135 454
LOCATION TOTAL 9,135
454 REGION TOTAL 10,595 626
(b) Partial Output
8Figure 15.5 One-level Algorithm (a) Hierarchy
Chart
9Figure 15.5 One-level Algorithm (b) Pseudocode
10Figure 15.7 Two-level Algorithm(a) Hierarchy
Chart
PREPARESALESREPORT
PROCESSONELOCATION
SORTTRANSACTIONFILE
READSORTEDSALES-FILE
WRITECOMPANYTOTAL
WRITELOCATIONHEADING
INITIALIZELOCATION
INCREMENTREGIONTOTAL
WRITELOCATIONTOTAL
PROCESS ONESALESPERSON
WRITESALESPERSONHEADING
INITIALIZESALESPERSON
INCREMENT LOCATIONTOTAL
WRITESALESPERSONTOTAL
PROCESSONETRANSACTION
INCREMENT SALESPERSON TOTAL
WRITE DETAIL LINE
CALCULATE COMISSION
11Figure 15.7 Two-level Algorithm (b) Pseudocode
12Figure 15.9 Three-level AlgorithmHierarchy
Chart
13Figure 15.9 Three-level Algorithm (b)
Pseudocode
14P R O G R A M M I N G T I P
How to Write a Control Break Program
The algorithm for one-, two-, and three-level
control breaks follows a general pattern that can
be adopted for any control break application
and/or any number of levels. We suggest,
therefore, that you review the hierarchy chart,
pseudocode, and/or COBOL programs that were
developed in this chapter and see how those
examples fit a general pattern. Start
by determining the number of levels in the
application, their relative importance (sort
order), and corresponding field names. Identify
the field names that will be used to detect a
control break at each level -- for example,
SR-REGION, SR-LOCATION, and SR-NAME in the
three-level example used in the text.
Modify the hierarchy chart, pseudocode, and COBOL
listings from the chapter to accommodate your
specific application. Begin with the highest
(most important) level and do the following for
every level 1. Initialize the control totals
for this level 2. Initialize the field name to
detect a control break at this level with the
previous value 3. Write the heading for this
level (if any) 4. Process this level until the
field name at this level is not equal to the
previous value OR the field name at a
higher level is not equal to the previous value
OR no data remains 5. Write this levels
total (if any) 6. Increment the next higher
levels total (rolling totals) At the lowest
(transaction) level 1. Perform the necessary
calculations (if any) 2. Write a detail line
(if any) 3. Increment the lowest levels total
(running total) 4. Read the next record