chapter 6 objectives

69
To familiarize you with Options of MOVE statement Rules for moving fields and literals Printing edit symbols Designing and printing reports 1

Upload: upton-wong

Post on 30-Dec-2015

30 views

Category:

Documents


0 download

DESCRIPTION

Chapter 6 Objectives. To familiarize you with Options of MOVE statement Rules for moving fields and literals Printing edit symbols Designing and printing reports. MOVE Statement. FORMAT 1. MOVE identifier-1 TO identifier-2 Copies contents of identifier-1 To identifier-2 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Chapter  6 Objectives

To familiarize you with Options of MOVE statement Rules for moving fields and literals Printing edit symbols Designing and printing reports

1

Page 2: Chapter  6 Objectives

MOVE identifier-1 TO identifier-2

Copies contents of identifier-1 To identifier-2

identifier-1 is sending field identifier-2 is receiving field

2

FORMAT 1

Page 3: Chapter  6 Objectives

Move Qty-In To Qty-Out

Contents of Qty-Out replaced by contents of Qty-In

If Qty-In = 253, contents of Qty-Out = 253 after MOVE executed

Qty-In remains unchanged Simple

3

Example

Page 4: Chapter  6 Objectives

MOVE literal-1 TO identifier-2

Value of literal-1 copied to identifier-2 Data type of literal and identifier should

match◦ Move numeric literals to numeric fields◦ Move nonnumeric literals to alphanumeric fields

4

FORMAT 2

Page 5: Chapter  6 Objectives

05 Qty-Out Pic 999.05 Color-Out Pic X(4).

Move 100 To Qty-Out Move 'Blue' To Color-Out

Contents of Qty-Out replaced with 100 Contents of Color-Out replaced with 'Blue'

5

Examples

Page 6: Chapter  6 Objectives

MOVE identifier-1

TO identifier-2 …

literal-1

Move 0 To Total-1, Total-2, Total-3

Move may have multiple receiving fields Contents of all three total fields set to 0

6

Full Format

Page 7: Chapter  6 Objectives

ZEROS may be moved to numeric or alphanumeric field◦ Moves 0 to every position of receiving field

SPACES moved only to alphanumeric field◦ Moves space or blank to every position of

receiving field Nice initializing feature

7

Page 8: Chapter  6 Objectives

Numeric field or literal is moved to numeric receiving field

Decimal alignment always maintained◦ If 86.52 is moved to a field

86 always treated as integer part of number .52 always treated as decimal part of number

Digits in integer part moved right to left starting at decimal point

Digits in decimal part moved left to right starting at decimal point

Just remember that COBOL considers the decimal position as top importantance.

8

Page 9: Chapter  6 Objectives

Operation: Move Amt-1 To Amt-2

Amt-1 Amt-2 Picture 99V99 Picture 99V99 Contents 12^34 Contents 67^89

Digits in integer part moved so that◦ 2 replaces 7, 1 replaces 6

Digits in decimal part moved so that◦ 3 replaces 8, 4 replaces 9

Very intuitive

9

Page 10: Chapter  6 Objectives

If receiving field has more integer positions than sending field◦ Unfilled high-order (leftmost) integer positions

filled with zeros If receiving field has more decimal positions

than sending field◦ Unfilled low-order (rightmost) decimal positions

filled with zeros Basically the program will just put zeros in

the extra spaces

10

Page 11: Chapter  6 Objectives

Operation: Move Amt-3 To Amt-4

Amt-3 Amt-4 Picture 9V9 Picture 99V99 Contents 3^4 Contents 56^78

Digits in integer part moved so that◦ 3 replaces 6, 0 replaces 5

Digits in decimal part moved so that◦ 4 replaces 7, 0 replaces 8

After MOVE, contents of Amt-4 = 03^40 Note that it takes care of the left over digits

11

Page 12: Chapter  6 Objectives

If receiving field has fewer integer positions than sending field◦ High-order (leftmost) digits truncated

If receiving field has fewer decimal positions than sending field◦ Low-order (rightmost) digits truncated

Mathematically not good, can produce the greatest error.

12

Page 13: Chapter  6 Objectives

Operation: Move Amt-5 To Amt-6

Amt-5 Amt-6 Picture 99V99 Picture 9V9 Contents 12^34 Contents 5^6

Digits in integer part moved so that 2 replaces 5, 1 not moved

Digits in decimal part moved so that 3 replaces 6, 4 not moved

After MOVE, contents of Amt-6 = 2^3

13

Page 14: Chapter  6 Objectives

Characters moved from left to right If receiving field longer, low-order

(rightmost) positions replaced with spaces If receiving field shorter, low-order

characters in sending field truncated

14

Page 15: Chapter  6 Objectives

Operation: Move Code-1 To Code-2

Code-1 Code-2 Picture X(3) Picture X(6) Contents abc Contents mnopqr

Characters abc replace mno Remaining three positions in Code-2

replaced with blanks Smart enough to blank out the rest.

15

Page 16: Chapter  6 Objectives

Operation: Move Code-3 To Code-4

Code-3 Code-4 Picture X(5) Picture X(3) Contents vwxyz Contents efg

Characters vwx replace efg y and z are not moved since all positions in

Code-4 are filled

16

Page 17: Chapter  6 Objectives

When receiving field is group item, alphanumeric MOVE rules followed

If subfields are numeric, invalid data may be stored in subfields

17

Page 18: Chapter  6 Objectives

Operation: Move "ABCD" To WS-Code 01 WS-Code.

05 WS-Part-1 Pic XX. 05 WS-Part-2 Pic 99.

After MOVE, value of WS-Part-1 is AB, WS-Part-2 is CD

Causes error if WS-Part-2 then used in arithmetic operation

18

Page 19: Chapter  6 Objectives

Asked about in Class If same name is used in 2 different Records Use OF or IN Example

ADD AMT OF IN-REC TO TOTAL Can use OF or IN referring to a group or

record

19

Page 20: Chapter  6 Objectives

Avoid using sending field with different data type than receiving field

Move numeric fields, numeric literals or ZEROS to numeric fields

Move alphanumeric fields, nonnumeric literals, ZEROS or SPACES to alphanumeric fields

20

Page 21: Chapter  6 Objectives

21

Page 22: Chapter  6 Objectives

Edit symbols used to make data fields more readable◦ Display 001495 as $14.95

Use spacing between lines and page margins for readability

Space fields across page or screen Heading and footing lines added to improve

clarity of output

22

Page 23: Chapter  6 Objectives

Create a new Record for output only Report-item - elementary item that contains

edit symbols in its PIC clause Editing occurs when elementary item

moved to report-item PIC clause of report-item determines editing

performed

23

Page 24: Chapter  6 Objectives

Operation: Move In-Amt To Out-Amt

Field Picture Contents PositionsIn-Amt 99V99 12^34 4Out-Amt 99.99 12.34 5

Implied decimal points (V) do not print Move field with V in Picture to report-item

field with actual decimal point for printing or displaying

Actual decimal point◦ Replaces implied one◦ Uses a storage position

24

Page 25: Chapter  6 Objectives

Zeros in leftmost position of number usually suppressed when printing◦ Value of number not affected

00025 and 25 have same value◦ Improves readability

Edit symbol Z in PIC clause suppresses leading zeros, replaces with blanks

25

Page 26: Chapter  6 Objectives

Use Z for each position where leading zero should be replaced by blank

In-Qty Out-Qty Pic 999 Pic ZZZ

018 b18 003 bb3

100 100 000 bbb

b denotes a blank (space) in the print out

26

Examples

100 has no leading zeros so zeros not suppressed

Page 27: Chapter  6 Objectives

To suppress only some leading zeros◦ Use Z's and 9's in same report-item

Z's must precede 9's

In-Qty Out-Qty Pic 999 Pic ZZ9 003 bb3 000 bb0

27

Examples

Page 28: Chapter  6 Objectives

Zeros to right of decimal point are significant so they are not suppressed

In-Cost Out-Cost Pic 99V99 Pic ZZ.99 05^08 b5.08 00^02 bb.02 00^00 bb.00

28

Examples

Page 29: Chapter  6 Objectives

$ and , often used in PICTURE clause with Z and decimal point

Comma suppressed if only zeros precede it Holds the location of $ sign

In-Cost Out-Cost Pic 9(4)V99 Pic $Z,ZZZ.99 1027^40 $1,027.40 0051^06 $bbb51.06 0000^04 $bbbbb.04

29

Examples

Page 30: Chapter  6 Objectives

Check protection symbol Used in place of Z to replace leading zeros

with * instead of space Prevents blanks from being filled in with

numbers to change amount of check◦ $ 51.06 could be changed to $3,951.06◦ $***51.06 not easily changed

30

Page 31: Chapter  6 Objectives

WS-Chk-Amt Out-Chk-Amt Pic 9(4)V99 Pic $*,***.99 2345^15 $2,345.15 0072^08 $***72.08 0000^06 $*****.06

31

Examples

Page 32: Chapter  6 Objectives

PIC clause with 9’s is unsigned field◦ Value assumed to be positive

Use S with 9’s in PIC clause of sending field to define signed field◦ Use PIC of S9(3) to store -425

Report-item field must include + or - editing symbol to print or display a sign

32

Page 33: Chapter  6 Objectives

Use - (minus) symbol to display minus sign if sending field is negative◦ Displays - for negative values◦ Displays blank (no sign) for positive or unsigned

values Use + (plus) symbol to display sign for both

positive and negative values◦ Displays - for negative values◦ Displays + for positive or unsigned values

33

Page 34: Chapter  6 Objectives

Assume a PICTURE of S9(3) for WS-Amt

Out-Amt WS-Amt PICTURE Contents 007- -ZZZ -bb7 218+ ZZZ- 218b 082+ +ZZ9 +b82 030- $ZZZ+ $b30-

34

Examples

Page 35: Chapter  6 Objectives

For accounting applications replace - (minus) sign with◦ DB to debit an account when negative◦ CR to credit an account when negative

Always specified to right of report-item Print only when value moved to report item

is negative

35

Page 36: Chapter  6 Objectives

Assume a PICTURE of S9(3) for WS-AmtNotice it only prints if value is negative

Out-Amt WS-Amt PICTURE Contents 123- 999CR 123CR 123- 999DB 123DB 123+ 999CR 123bb 123+ 999DB 123bb

36

Examples

Page 37: Chapter  6 Objectives

B (space or blank), 0 (zero) or / (slash) may be inserted in report-item PIC as separator

Used to edit either nonnumeric or numeric fields

37

Page 38: Chapter  6 Objectives

Assume PIC 9(3) for WS-Amt PIC X(3) for WS-Name

Report-Item Contents PICTURE Contents

WS-Amt 528 99BB9 52bb8WS-Amt 218 999,000 218,000WS-Name RAY XBXBX RbAbY WS-Name JAN X/X/X J/A/N

38

Examples

Page 39: Chapter  6 Objectives

Editing performed when ◦ Sending field moved to report-item◦ Result of arithmetic operations stored in report-

item PICTURE of report-item determines type of

editing

39

Page 40: Chapter  6 Objectives

All items used in arithmetic operation must be numeric

Error if report-item used in calculation of result

This statement invalid if Total-Out is report-item

Add WS-Total To Total-Out Report-item may be used after GIVING

40

Page 41: Chapter  6 Objectives

Used to place $, + or - directly preceding first significant digit

For example, 000516 becomes $5.16 instead of $ 5.16

In edit string, replace all Z’s with floating character ($, + or -)

Suppresses leading zeros, commas

41

Page 42: Chapter  6 Objectives

Assume a PICTURE of S9(4)V99 for WS-Amt

Out-Amt WS-Amt PICTURE Contents 0002^29- $$,$$$.99 bbbb$2.29- 0036^62+ ++,+++.99 bbb+36.62 0007^05- ---99.99 bb-07.05

42

Examples

Page 43: Chapter  6 Objectives

To print spaces when sending field is all zeros rather than $.00 or -0

For the report-item

05 Qty-Out Pic +++ Blank When Zero.

035 will print as +35000 will print as bbb (all spaces)

43

Page 44: Chapter  6 Objectives

Define each type of output line as separate 01-level record in WORKING-STORAGE

May include 01-level records for heading, detail, total, footing lines, etc.

Establishes separate storage area for each record

All constants and blanks may be preassigned with VALUE clauses

44

Page 45: Chapter  6 Objectives

To transfer data from storage to print area and then print

Replaces MOVE and WRITE

Write Print-Rec From Heading-1

instead of

Move Heading-1 to Print-RecWrite Print-Rec

45

Page 46: Chapter  6 Objectives

01 HEADING-105 HL-LITERAL-1 PIC X(76) JUSTIFIED RIGHT.

05 PIC X(76) VALUE SPACES.

MOVE ‘MONTHLY TRANSACTIONS’ TO HL-LITERAL-1

It will be placed in positions 57-76

46

Page 47: Chapter  6 Objectives

Single spacing for WRITE is default Use AFTER or BEFORE ADVANCING to obtain

any number of blank lines between each print line

47

Page 48: Chapter  6 Objectives

WRITE record-name-1 [FROM identifier-1]

AFTER integer-1 LINE BEFORE identifier-2 LINES

◦ integer-1 or identifier-2 must be non-negative integer value

◦ AFTER ADVANCING prints line after paper is spaced

◦ BEFORE ADVANCING prints line before spacing occurs

48

FORMAT

ADVANCING

Page 49: Chapter  6 Objectives

Write Print-Rec From Heading-Line-1 After Advancing 2 Lines ◦ Causes paper or screen to advance two lines◦ Heading-Line-1 printed on second line◦ Creates double spacing - one blank line followed

by printed line

49

Page 50: Chapter  6 Objectives

Write Print-Rec From Heading-Line-1 Before Advancing 2 Lines ◦ Heading-Line-1 printed first, then spaces two lines◦ Results in overprinting if first line already contains

printed output◦ As a rule, use either BEFORE or AFTER in program

consistantly but not both

50

Page 51: Chapter  6 Objectives

Word PAGE after ADVANCING causes paper to advance to next page

To advance paper to top of new page and print a heading, code

Write Print-Rec From Heading-Line-1 After Advancing Page

51

Page 52: Chapter  6 Objectives

When page is full, need to advance to next page and print headings again

Define WORKING-STORAGE field for line counter

Initialize line counter to zero and increment it each time a line is printed

When line counter equals or exceeds line limit for page, advance to next page

52

Page 53: Chapter  6 Objectives

Define WORKING-STORAGE field for page number

Initialize and then increment page number each time new page begins

Move page number to report-item in heading line before printing it at top of a new page

53

Page 54: Chapter  6 Objectives

To get current date in program, access reserved word DATE

Stores date as six-digit field, two digits each for year, month and day

January 25, 2003 stored as 030125

54

Page 55: Chapter  6 Objectives

ACCEPT identifier-1 FROM DATE

For older compilers identifier must be defined as numeric field to hold 6 digits

55

FORMAT

Page 56: Chapter  6 Objectives

Accept WS-Date From Date

Where WS-Date defined as:01 WS-Date.

05 Run-Year Pic 99.05 Run-Month Pic 99.05 Run-Day Pic 99.

56

EXAMPLE

Page 57: Chapter  6 Objectives

WS-Date fields typically reformatted for printing

Moved to report-item fields listed in month, day, year order with slashes between them

57

Page 58: Chapter  6 Objectives

1. Include heading to identify report2. Include date, page number3. Include column headings to identify fields

printed4. Place most significant fields where they

are most visible5. Edit numeric fields for readability

59

Page 59: Chapter  6 Objectives

6. Include totals at end of page or report7. Use *’s to identify level of total

Dept Total is $33,266.25*Final total is $167,267.53**

8. Include page footings at end of each page, report footings at end of report

60

EXAMPLE

Page 60: Chapter  6 Objectives

No COBOL standard for interactive processing

Two techniques used by compilers to add interactivity◦ ACCEPT, DISPLAY enhancements with options to

define appearance of data on screen◦ SCREEN SECTION added in DATA DIVISON to

define screen’s format

61

Page 61: Chapter  6 Objectives

Display "Enter date of birth"At Line 13 Column 1

With Blank ScreenForeground-Color 1Background-Color 7

Displays prompt at specific position on screen after clearing screen, using one color for characters and another for background

62

EXAMPLE

Page 62: Chapter  6 Objectives

Specify formats, options for screen Follows WORKING-STORAGE Define each screen with 01 level entry

followed by subordinate entries DISPLAY screen-name displays all

prompts described in entries for screen ACCEPT screen-name captures all data

typed by user for that screen There is much more than what is in these

notes, like colors, reverse, sound, etc. Page 227 has nice summary box.

63

Page 63: Chapter  6 Objectives

01 Screen-1.05 Blank Screen.05 Line 3 Column 1 Value 'City'.05 Column 17 Pic X(13) To City-In.

Display Screen-1 blanks screen and displays City in first column of line 3

Accept Screen-1 moves 13 characters user enters starting in line 3, column 17 to City-In

Let’s do a lab on this.

64

EXAMPLE

Page 64: Chapter  6 Objectives

• Numeric MOVE Rules• Decimal alignment maintained• Integer and decimal portion digits moved from

decimal point out• Nonfilled high-, low-order positions replaced

with zeros• Truncation of high-, low-order digits occurs if

receiving field not large enough

65

Page 65: Chapter  6 Objectives

• Nonnumeric MOVE Rules• Movement from left to right• Low-order nonfilled positions replaced with spaces• Low-order characters truncated if receiving field

not large enough

66

Page 66: Chapter  6 Objectives

Format of receiving field determines type of MOVE operation

See Table 6.3 in text for summary of edit symbols

67

Page 67: Chapter  6 Objectives

Rules for Printing Output◦ Use Printer Spacing Chart to determine print

positions to be used ◦ Define all printed output in WORKING-STORAGE

so VALUE clause can be used◦ Use appropriate editing symbols in report-items

68

Page 68: Chapter  6 Objectives

WRITE statement clauses◦ Move records to print area in FILE SECTION with

WRITE … FROM ◦ Use BEFORE or AFTER ADVANCING to control

spacing between lines ◦ Use AFTER ADVANCING PAGE to go to beginning

of next page

69

Page 69: Chapter  6 Objectives

Interactive Input/Output◦ Use SCREEN SECTION or enhanced ACCEPT,

DISPLAY verbs to make screen displays more user friendly

◦ Options available to Describe exact line, column for item Add color, sounds Highlight, blink, underline, reverse video item Clear all or part of screen

70