联系方式

  • QQ:99515681
  • 邮箱:99515681@qq.com
  • 工作时间:8:00-23:00
  • 微信:codinghelp

您当前位置:首页 >> Java编程Java编程

日期:2023-05-20 01:24

INFO3105 Week 3 Class 1

Review

Numeric Edited fields

Lab4

Introduction to Summary Report Programming with COBOL

Definition of a Control Break – “A change of category used to trigger a subtotal. For example, if

data are sub totaled by province, a control break occurs when BC changes to ON.” Lots of COBOL

programs/reports are written as control break programs. The first pre-requisite to

writing a control break program has nothing to do with the program itself; rather it’s the

data that you need to be concerned with. The data must be sorted on the control break

field; therefore if we were using the example given in the above definition, the data

would have had to be sorted on province. Below we see the layout of the control break

program we’ll be working on next:

Notice that the report is written so that all of the salespeople from a particular branch

are listed on a single page. Which field would the data for this report sorted by? Well

obviously it’s the branch number field. Below is some of the data used by this report,

see if you can locate the branch information in it:

And here is the file layout for this data

:

The data here shows salespeople for

branches 100 and 200

So returning to the output we see we need to produce at least 3 different types of

output:

1. Heading information (at the top of page)

2. Detailed information (actual sales person data)

3. Summary information (branch totals).

So what you need to do is lay the report out to see where everything fits, historically

programmers would use something called a Printer Spacing Chart see page 95 of the

text for an example. Then once the design of the report is done, you can map the

columns to the layout in COBOL, for instance here is the 1st Heading Line for the report

from page 1:

We see here there are some fields designated with the keyword “FILLER”. This tells the

compiler basically what we have is some space to allocate but we can’t reference it

directly as variable. Use filler when the data isn’t important to the logic of the program.

Constant strings are embedded in quotation marks this is known traditionally as hard

coding the data. The keyword SPACES is used to put blanks in each character

designated by the PIC X(..) clause. So instead of counting out 5 actual spaces we can

just write it as PIC X(5) VALUE SPACES. One other point to take note of is the picture

clauses used here. PIC 9 is for numeric data, PIC X is for alphanumeric, and PIC Z9 is

for formatted numeric data, it indicates if there is number is not large enough to

encompass the entire picture clause just place spaces (instead of zeroes) in the leading

characters.

Returning to the listing on page 1, how many different lines of output do you need to

create? The answer is 7 (there are actually 9 but the 8th and 9th aren’t visible here, see

below for the final lines example).

We saw how to write the individual lines out in our labs 1-3. In labs 1-3 the output was

basically the same as our input. Here the last two report columns do not exist in the

data but are actually to be calculated by our program based on the data. The net sales

column is simply gross sales subtract returns. The commission column is calculated as

net sales multiplied by a commission rate (last column of the input data).

To summarize, the 9 different line layouts you need to create are:

1. Heading line 1 – page no, and date

2. Heading line 2 – constant with Salesperson By Branch text

3. Heading line 3 – Branch indicator

4. Heading line 4 – Individual Column Headings

5. Detail line – containing individual salesperson data

6. Branch Total – containing branch totals (formatted) for each columns

7. Single Underlines – typical in a report like this under the branch totals (see

below)

8. Grand Totals – containing accumulation of Branch Totals (formatted)

9. Double Underlines – indicates the end of Report (just use the “=” instead of ‘-‘)

End of the Report

Detail Line Formatting

The first four headings are relatively straight forward to layout. Line 5 (the detail line) will

ask you to format the numeric fields and the last two fields need to be “Computed”.

Page 195 of the text lists all of the different ways to format data. We’ll be using

something similar to the last one with the $ signs but without CR designation.

COBOL only lets you do math on numeric fields, NOT on numeric edited fields. So

you’ll have to typically follow this pattern with numeric fields that require calculations:

1. move the input to a working storage field

2. do some math on the working storage field

3. move the working storage field to the numeric edited field

Let’s see the syntax for doing the 3 steps by looking at what goes on in the detail line

with the Net Sales column: Assuming we have done our READ, we would calculate our

Net Sales field as follows:

? Calculate the difference of the Gross Sales and Sales Returns :

COMPUTE WS-NET-SALES = SALESPERSON-GROSS-SALES -

SALESPERSON-RETURN-SALES

? Move the working storage field (unedited) to the edited field

o 05 WS-NET-SALES PIC S9(7)V99 VALUE ZERO.

o ..

o ..

o 05 WS-SL-SLSP-NET PIC $$$,$$$.99.

o ..

o ..

o MOVE WS-NET-SALES TO WS-SL-SLSP-NET

When calculating commissions we need to worry about rounding and we can do this

with the keyword ROUNDED (page 32 of the text) as follows:

Lab 5 - 2%

? Submit to the FOL dropbox (no need to get the full program working yet):

1. the source code for the 9 different output lines (including output field

definitions)

2. the source code for a paragraph called SALESPERSON-CALCULATIONS

that contains all of the compute statements for the report (remember you’ll

need both branch and grand totals)

Also, read pages 316-318 of the text.


版权所有:留学生编程辅导网 2020 All Rights Reserved 联系方式:QQ:99515681 微信:codinghelp 电子信箱:99515681@qq.com
免责声明:本站部分内容从网络整理而来,只供参考!如有版权问题可联系本站删除。 站长地图

python代写
微信客服:codinghelp