Chapter 10 Control Break Processing 10 1 Chapter

Chapter 10 Control Break Processing 10 -1

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 10 -2

Types of Reports � Detail or Transaction Reports ◦ Include one or more lines of output for each input record read � Exception Reports ◦ Printout of individual records that meet) certain criteria � Summary (or fail to Reports ◦ Summarizes rather than itemizes to provide more comprehensive information 10 -3

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 � Break occurs when that field value changes 10 -4

Control Break Example � Consider file of sales records, each with three fields: ◦ Salesperson's department number, salesperson's number, sales amount � We’ll make Department number the control field � Records must be in sequence by control field ◦ All records for salespeople in Dept 01 followed by records for those in Dept 02, … 10 -5

Sample Sales Input Data 01 01 01 02 02 12345 12346 12347 12222 12234 098855 353700 003499 987700 008777 Amt-Of-Sales-In Sls. No-In Dept-In 10 -6

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 10 -7

Control Break Sample Report Dept Salesperson No 01 12345 01 12346 01 12347 Total for Dept is 02 12222 02 12234 Total for Dept is Amt of Sales $988. 55 $3, 537. 00 $34. 99 $4, 560. 54 $9, 877. 00 $87. 77 $9, 964. 77 10 -8

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 10 -9

Single-Level Control Break � Single-level means program has only one control field whose value triggers printing of totals � Control break is change in the control field value when a record is read. 10 10

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 10 11

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 10 12

Detail Processing When control field is equal to hold area � Add amount to control total � Print detail record (if desired) � Read next record 10 13

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 10 14

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' 10 15

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 � We need statements in end of job routine to move final group total to output record and print it � Then probably print the grand total 10 16

Printing a Final Total � May accumulate final total by ◦ Adding amount from each record to control group total and final total. ◦ 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 10 17

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 10 18

Multiple Level Control Breaks � Two control fields: Dept-In and Sls. No-In � Records sorted by major control field (Dept. In) then by minor control field (Sls. No-In) � Don’t forget about the data needing to be in order, may have to sort first. 10 19

Sample Sales Input Data Dept-In Sls. No-In Amt-Of-Trans-In 01 004 127. 23 01 004 100. 14 01 006 027. 45 nd level sort 2 01 006 052. 23 01 006 126. 27 02 003 111. 14 02 003 027. 23 10 20

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 Sls. No-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 Sls. No-In changes, perform minor control break routine 10 21

Major Control Break Routine � Begins by forcing minor control break ◦ This processes last salesperson’s total for previous department ◦ Even if salesperson is the same on the next record � Print department total � Reinitialize department total to zero � Save new Dept-In in hold area � Print heading for new department 10 22

Minor Control Break Routine � Print total for previous Sls. No-In � Add salesperson total to department total � Initialize salesperson total to zero � Move new Sls. No-In to hold area 10 23

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 10 24

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 10 25
- Slides: 25