Download presentation
1
Control Break Processing
COBOL for the 21st Century 11th edition Stern, Stern & Ley John Wiley & Sons, Inc. Chapter 10 Control Break Processing
2
Chapter Objectives To familiarize you with
Main types of computer-generated reports Techniques used for efficient printing of group reports and control totals Control break processing and control break printing
3
Chapter Contents Introduction to Control Break Processing
Program Requirements for Control Break Processing Multiple-Level Control Breaks
4
Types of Reports Detail or Transaction Reports Exception Reports
Include one or more lines of output for each input record read Exception Reports Printout of individual records that meet (or fail to meet) certain criteria Summary Reports Summarizes rather than itemizes to provide more comprehensive information
5
Control Break Processing
Produces summary report using control fields to indicate when totals are to print Records with same value for control field grouped together in file Totals printed for each group of records with same control field value
6
Control Break Example Consider file of sales records, each with three fields: Salesperson's department number, salesperson's number, sales amount Department number is control field Records in sequence by control field All records for salespeople in Dept 01 followed by records for those in Dept 02, …
7
Sample Sales Input Data
Amt-Of-Sales-In SlsNo-In Dept-In
8
Control Break Example Report includes detail printing
One line for each record with salesperson's amount of sales Report also includes summary lines or group printing Total line written for each department After all records for Dept 01 read and printed, total for Dept 01 printed Same is done for Dept 02, and so on
9
Control Break Sample Report
Dept Salesperson No Amt of Sales $988.55 $3,537.00 $34.99 Total for Dept is $4,560.54 $9,877.00 $87.77 Total for Dept is $9,964.77
10
Control Break Example Records must be in sequence by control field (department number) Sales records for Dept 01 read in, printed, Dept total accumulated Continues until record read in with different Dept number Change in Dept triggers printing of Dept total for Dept 01
11
Single-Level Control Break
Single-level means program has only one control field whose value triggers printing of totals Control break is change in control field value from one record to the next
12
Single-Level Control Break
Many steps (initialization, heading routines) same as previous programs Detail routine must be modified to check for control breaks New module added to handle control break processing
13
Detecting a Control Break
For first record read, move control field to hold area in WORKING-STORAGE If control field of subsequent records is same as hold area Perform detail processing If they are not equal, control break occurs Perform control break routine
14
Detail Processing When control field is equal to hold area
Add amount to control total Print detail record (if desired) Read next record
15
Control Break Routine If control field of record read is not equal to hold area Print control total for previous group Initialize control total field to zero Reinitialize hold field with new control field value Perform detail processing as in previous step
16
Handling first record First record has no previous control field value for comparison Add field to use as "flag" to determine if record is first one processed (e.g., First-Record initialized to 'YES') When record read, if First-Record = 'YES' Save control field value in hold area Turn "off" flag by setting it to 'NO'
17
Forcing Final Control Break
Totals printed when record with new control field is read Last group of records has no subsequent record to trigger printing Include statements in end of job routine to move final group total to output record and print it
18
Printing a Final Total May accumulate final total by
Adding amount from each record to control group total and final total in detail routine Adding control group total to final total in control break routine Second method more efficient since additions made once for each group instead of once for each record
19
Multiple Level Control Breaks
Suppose a sales record is created each time a salesperson makes a sale Each salesperson may have multiple sales records Report will include two levels of totals Total sales for each salesperson Total sales for each department
20
Multiple Level Control Breaks
Two control fields: Dept-In and SlsNo-In Records sorted by major control field (Dept-In) Within department, sorted by minor control field (SlsNo-In)
21
Sample Sales Input Data
Dept-In SlsNo-In Amt-Of-Trans-In In sequence within Dept 01
22
Double-Level Control Break
Two hold areas, one for each control field Check for control break on each If no change in Dept-In or SlsNo-In, just add Amt-Of-Trans-In to salesperson total If Dept-In changes, perform major control break routine If no change in Dept-In but SlsNo-In changes, perform minor control break routine
23
Major Control Break Routine
Begins by forcing minor control break This processes last salesperson’s total for previous department Print department total Reinitialize department total to zero Save new Dept-In in hold area Print heading for new department
24
Minor Control Break Routine
Print total for previous SlsNo-In Add salesperson total to department total Initialize salesperson total to zero Move new SlsNo-In to hold area
25
Chapter Summary Control break program may have any number of control fields All input records must be in sequence by minor control fields within intermediate control fields within major control fields Sort file before processing if records are not already in this order
26
Chapter Summary Control break routines
Higher-level breaks force lower-level breaks Appropriate control total line printed Appropriate control total is initialized Appropriate control field is initialized
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.