Any Questions?
Jan 07, 2016
Any Questions?
Agenda
• Moving Data
• Selection Statements
• System Date
• Indicators in Display files
Moving Data
Move Statement
MOVE Identifier/Variable or Literal/Constant
TO (Indentifier/Variable)s
Numeric Moves
Sending Field Receiving Field Okay?Numeric Numeric
– Field sizes
Numeric Alphanumeric– Decimal places– Packed fields
Numeric Group Item
Alphanumeric Moves
Sending Field Receiving Field Okay?Alphanumeric Numeric
– Decimal Places– Packed fields
Alphanumeric Alphanumeric– Field sizes
Alphanumeric Group Item
Zero Moves
Sending Field Receiving Field Okay?
Zeros Numeric
Zeros Alphanumerics
Zeros Group Item
Spaces Moves
Sending Field Receiving Field Okay?
Spaces Numeric
Spaces Alphanumerics
Spaces Group Items
MOVE numeric TO numeric.
Field A PIC 9(3) Field B PIC 9(3)
100
Field A PIC 9(3) Field B PIC 9(4)
100
Field APIC 9(3) Field B PIC 9(2)
100
MOVE numeric TO numeric.
Field A PIC 9(3)V99 Field B PIC 99V9
100.03
Field A PIC 9(3)V99 Field B PIC 9(4)V999
100.03
Field A PIC 9(3)V99 Field B PIC 9(3)
100.03
MOVE numeric TO alphanumeric.
Field A PIC 9(3) Field B PIC X(3)
100
Field A PIC 9(3) Field B PIC X(4)
100
Field A PIC 9(3) Field B PIC X(2)
100
MOVE numeric TO alphanumeric.
Field A PIC 9(3)V99 Field B PIC X(3)
100.03
MOVE numeric TO group item
Field A PIC 9(3) Field B.
Field C PIC 99.
Field D PIC 9.
Field AField B Field C Field D
124
MOVE numeric TO group item
Field A PIC 9(3) Field B.
Field C PIC 99.
Field D PIC 99.
Field AField B Field C Field D
124
MOVE numeric TO group item
Field A PIC 9(3) Field B.
Field C PIC 9.
Field D PIC 9.
Field AField B Field C Field D
124
MOVE numeric TO group item
Field A PIC 9(3) Field B.
Field C PIC XX.
Field D PIC X.
Field AField B Field C Field D
124
MOVE numeric TO group item
Field A PIC 9(3) Field B.
Field C PIC XX.
Field D PIC XX.
Field AField B Field C Field D
124
MOVE numeric TO group item
Field A PIC 9(3) Field B.
Field C PIC X.
Field D PIC X.
Field AField B Field C Field D
124
MOVE alphanum TO alphanum.
Field APIC X(3) Field B PIC X(3)
CJM
Field A PIC X(3) Field B PIC X(4)
CJM
Field APIC X(3) Field B PIC X(2)
CJM
MOVE alphanum TO group item
Field A PIC X(3) Field B.
Field C PIC XX.
Field D PIC X.
Field AField B Field C Field D
CJM
MOVE alphanum TO group item
Field A PIC X(3) Field B.
Field C PIC XX.
Field D PIC XX.
Field AField B Field C Field D
CJM
MOVE alphanum TO group item
Field A PIC X(3) Field B.
Field C PIC X.
Field D PIC X.
Field AField B Field C Field D
CJM
MOVE alphanum TO numeric.
Field APIC X(3) Field B PIC 9(3)
ABC
MOVE zeros TO numeric.
Field B PIC 9(3)
Field BPIC 9(4)V99
MOVE zeros TO alphanumeric.
Field B PIC X(3)
Field BPIC X(1)
MOVE zero TO group item
Field B.
Field C PIC 99.
Field D PIC 9.
Field BField C Field D
MOVE zeros TO group item
Field B.
Field C PIC XX.
Field D PIC XX.
Field BField C Field D
MOVE spaces TO numeric.
Field B PIC 9(3)
Field BPIC 9(4)V99
Note: This is not supposed to work!
MOVE spaces TO alphanumeric.
Field B PIC X(3)
Field BPIC X(1)
MOVE spaces TO group item
Field B.
Field C PIC 99.
Field D PIC 9.
Field BField C Field D
Note: this is not supposed to work!
MOVE spaces TO group item
Field B.
Field C PIC XX.
Field D PIC XX.
Field BField C Field D
On your own, figure out how Group Item to Group Item and Group Item to Alphanumeric
work!
Selection Statements
Sorting on the iSeriesEBCDIC Sort
1. Blanks
2. Special Characters
3. Lower Case Letters
4. Upper Case Letters
5. Numbers
Selection
Condition?
Statement2 Statement1
Selection
IF Condition THEN
Statement(s)
ELSE
Statement(s)
END-IF
If-Then-ElseA = 10 B = 20
If (A > B) THENMOVE B TO A.
If-Then-ElseA = 10 B = 20
If A > B THENMOVE B TO A
ELSEMOVE A TO B.
If-Then-ElseA = 10 B = 20 C = 30 D = 40
If A < B THENIF A > C THEN
MOVE A TO CELSE
MOVE C TO AEND-IF
ELSEMOVE A TO B
END-IF.
Sign Test
A = 10 B = -10
If A IS NEGATIVE IF A IS POSITIVE
MOVE B TO A MOVE B TO A
ELSE ELSE
MOVE A TO B. MOVE A TO B.
Numeric Test
A = 10 B = -10
If A IS NUMERIC
ADD A TO B.
Alphabetic Test
C = ‘CJ’ D = ‘Christy’
If C is ALPHABETIC THEN
MOVE C TO OLDER-SISTER
ELSE
MOVE D TO OLDER-SISTER
END-IF
Alphabetic-Upper Test
C = ‘CJ’ D = ‘Christy’
If C is ALPHABETIC-UPPER THEN
MOVE C TO OLDER-SISTER
ELSE
MOVE D TO OLDER-SISTER
END-IF
Alphabetic-Lower Test
C = ‘CJ’ D = ‘Christy’
If D is ALPHABETIC-LOWER THEN
MOVE D TO OLDER-SISTER
ELSE
MOVE C TO OLDER-SISTER
END-IF
AND
FIELDA FIELDB Result
TRUE TRUE TRUE
TRUE FALSE FALSE
FALSE TRUE FALSE
FALSE FALSE FALSE
OR
FIELDA FIELDB Result
TRUE TRUE TRUE
TRUE FALSE TRUE
FALSE TRUE TRUE
FALSE FALSE FALSE
AND/OR Order of Operations
• Brackets First
• ANDs (From Left to Right)
• ORs (From Left to Right)
ANDs/ORs
A = 10 B = -10 C = 20
If (A<B) OR (B<C) AND (A<C) THEN
MOVE A TO C
ELSE
MOVE A TO B
END-IF
ANDs/ORs
A = 10 B = -10 C = 20
If ((A<B) OR (B<C)) AND (A<C) THEN
MOVE A TO C
ELSE
MOVE A TO B
END-IF
Case Statements
IF-THEN-ELSE StatementsIF MARKS >= 80 THEN
MOVE ‘A’ TO GRADE
ELSE
IF MARKS >= 70 THEN
MOVE ‘B’ TO GRADE
ELSE
IF MARKS >= 60 THEN
MOVE ‘C’ TO GRADE
ELSE
IF MARKS >= 55 THEN
MOVE ‘D’ TO GRADE
ELSE
MOVE ‘F’ TO GRADE
END-IF
END-IF
END-IF
ENDIF.
CASE StatementsEVALUATE TRUE
WHEN MARKS >= 80 MOVE ‘A’ TO GRADE
WHEN MARKS >= 70 AND MARKS < 80 MOVE ‘B’ TO GRADE
WHEN MARKS >= 60 AND MARKS < 70 MOVE ‘C’ TO GRADE
WHEN MARKS >= 55 AND MARKS < 60 MOVE ‘D’ TO GRADE
WHEN OTHER MOVE ‘F’ TO GRADE
END-EVALUATE.
CASE StatementsEVALUATE GRADE
WHEN ‘A’ DISPLAY ‘WONDERFUL!!!!’
WHEN ‘B’ DISPLAY ‘GREAT!!!’
WHEN ‘C’ DISPLAY ‘NEED ANY HELP?’
WHEN ‘D’ DISPLAY ‘COME AND SEE ME!’
WHEN ‘F’ DISPLAY ‘SEE YOU NEXT SEMESTER’
WHEN OTHER DISPLAY ‘WE HAVE A PROBLEM!’
END-EVALUATE.
Problem
ANNAME is a 20 character field in the file, ANMPF that stores an animal name.
ANMPF is a Physical file that contains a record for each of animals clients at the Seneca Vet Clinic.
You are required to write a COBOL program that selects all of the animals listed in ANMPF that start with a C.
What COBOL statement would select all of the animals names that start with the letter ‘C’.
System Date
• Function current-date
• Function convert-date-time
Indicators in Display Files
Option Indicators in COBOL
• Binary Values• Working Storage Definition example 01 ws-indicator-list.
05 IN88 INDICATOR 88 PIC 1 value B’0’.
• Passed to display files in the write statementWrite Display-record
format is ‘RECORD1’indicators are ws-indicator-list.
Example – Indicator 90 displays the message, Employee Name is invalid
Working Storage.01 ws-indicators.
05 IN90 INDICATOR 90 pic 1.
Procedure Division.
If scr-employee-name is equal to spaces move b’1’ to IN90 else
move b’0’ to IN90 end-if.
Response Indicators in COBOL
• Stored as binary values in the display file and passed as PIC X(2) via the control Area.
Select Display-file assign to workstation-dspfile-si organization is transaction control area is ws-control.Working Storage Section.01 ws-control. 05 ws-function-key pic x(2).
Example – check to see if function key 3 was pressed.
Select Display-file assign to workstation-dspfile-si organization is transaction control area is ws-control.Working Storage Section.01 ws-control. 05 ws-function-key pic x(2).
Procedure Division.
if ws-function-key = ’03’ ….. end-if.
Display file ‘Both’ Fields
• Input and Output buffers
• REDEFINES clause– Different data specifications for same memory
location
• Screens with both fields need an input and an output buffer.