Advanced RPG - FVTC IT | Home

Download Report

Transcript Advanced RPG - FVTC IT | Home

Advanced RPG
Chapter 8
Interactive Applicatons
Interactive Applications
 Batch Processing: Program is run without
human intervention or control.
 Interactive Processing: User driven
 Display files are needed for interaction.
 Screen Design Aid (SDA): Graphical utility that
will generate DDS source code.
Screen Design Aid
 You can have multiple record formats per
DDS member.
Screen Design Aid
Section Inquiry
Type value, then Enter.
Section number . . ____________
F3=Exit
Screen Design Aid
Section Information
Section number . . . . . 12435
Course . . . . . . . . . BIS350
Instructor . . . . . . . . Johnson
Room . . . . . . . . . . 1120
Meets on days . . . . . . MWF
Starting Time . . . . . . . 10:30
Enrollment . . . . . . . . 36
Press Enter to Continue
F3=Exit F12=Cancel
Screen Design Aid
AAN01N02N03T.Name++++++RLen++TDpBLinPosFunctions+++++++++++++++++
********** Beginning of data ************************************
A
REF(SECTIONS)
A
INDARA
A
R SECT1
A
CA03(03 'F3=EXIT')
A
1 28'SECTION INQUIRY'
A
3 2'TYPE VALUE, THEN ENTER.'
A
5 5'SECTION NUMBER . .'
A
SECTION
5A I 5 24
A
23 2'F3=EXIT'
Screen Design Aid
AAN01N02N03T.Name++++++RLen++TDpBLinPosFunctions++++++++++++++++++
A
R SECT2
A
CA03(03 'F3=EXIT')
A
CA03(12 'F12=CANCEL')
A
1 10'SECTION INFORMATION'
A
3 2'SECTION NUMBER . . .'
A
SECTNO
R
O 3 29
A
3 2'COURSE . . . . . . .'
A
COURSE
R
O 4 29
A
5 2'INSTR . . . . . . .'
A
INSTR
R
O 5 29
A
6 2'ROOM
. . . . . . .'
A
ROOM
R
O 6 29
A
7 2'MEETS ON DAYS . . .'
A
DAYS
R
O 7 29
A
8 2'STARTING TIME . . .'
A
BEGTIME
R
O 8 29
A
9 2'ENROLLMENT . . . . .‘
A
ENROLL
R
O 9 29
A
21 2'PRESS ENTER TO CONTINUE'
A
23 2'F3=EXIT'
A
23 11'F12=CANCEL'
Screen Design Aid
 CA03(03 ‘F3=EXIT’)
 CA: Command Attention, enables the
function key of F3. Returns control to RPG
program without passing user input values.
 When F3 is pressed by the user, indicator 03
is turned on.
 ‘F3=EXIT’: Programmer comment.
Screen Design Aid
 CF03(03 ‘F3=EXIT’)
 CF: Command Function
 Functions the same as CA03 except that the
values the user has inputted are passed
back to the RPG program.
 CA12(12 ‘F12=Cancel’)
 Generally used to move the user back a
screen.
Screen Design Aid
 Display files are defined in File Specs just like
any other file.




Full Procedural
Externally defined
Key is not relevant (position 34 blank)
type (position 17) is C for combined file, supports
both input and output but as independent
operations.
 Optional keyword INDDS: Stores indicators passed
to and from display file in data structure named
Fkeys.
Screen Design Aid
 Interactive programs are prone to
“spaghetti code”.
 flow of control is not straight forward
 User can press F3 to Exit or F12 to Cancel
 Causes programmer to back up, repeat or exit
early.
Screen Design Aid
WHILE user wants to continue (no Exit)
Display first screen
Obtain user’s response to the screen
IF user wants to continue (no exit)
Random read section file to get section information
IF record found
Display second screen
Obtain user’s response
ENDIF
ENDIF
ENDWHILE
Screen Design Aid
WHILE user wants to continue (no Exit) (*IN03 = *OFF)
Display first screen (EXFMT
Sect1)
Obtain user’s response to the screen
IF user wants to continue (no exit) (IF *IN03 = *OFF)
Random read section file to get section information
(Section CHAIN
Sections)
IF record found (IF %FOUND(Sections)
Display second screen (EXFMT Sect2)
Obtain user’s response
ENDIF
ENDIF
ENDWHILE
Screen Design Aid
 Allowable functions for I/O
 WRITE: Displays a screen and returns control to
program without waiting for user input.
 READ: Sends control to currently displayed screen
waits for end of user input (usually triggered by
Enter key)
 EXFMT: Combines WRITE/READ, first writes a
record to the screen and then waits for user input to
the screen, when signaled it returns control to RPG
program. USED MOST OFTEN!
Screen Design Aid
 RPG IV gets away from referencing
indicators
 Must specify INDDS keyword in F Spec.
 Indicator Data Structure in DDS (INDARA)
 Define data structure in D Spec to contain
indicators.
 Only have to define the ones you are using.
D FKeys
D
Exit
D
Cancel
DS
99
3
3N
12
12N
Screen Design Aid
CL0N01Factor1+++++++Opcode&ExtExtended-factor2+++
C
DOW
NOT Exit
C
EXFMT
Sect1
C
IF
NOT Exit
C
Section
CHAIN
Sections
C
IF
%FOUND(Sections)
C
EXFMT
Sect2
C
ENDIF
C
ENDIF
C
ENDDO
C
C
EVAL
RETURN
*INLR = *ON
DDS Keywords
 File Level:
 Must be on first line of DDS, before Record Format
 REF: reference another file for specifications
 INDARA: organize indicators into 99-byte data
structure
 MSGLOC: specifies message line for error
messages (default is last line, 24)
 File or Record Level:
 CA or CF: coded at file level they will apply to all
record formats within the file
 PRINT: enables Print Key for user screen printing.
 VLDCMDKEY: turns on indicator when users
presses any valid command key
DDS Keywords
 Record Level:
 Appear on line record is named or lines
immediately following, prior to field names.
 BLINK: causes cursor to blink
 OVERLAY: Display record without clearing
previous record display.
DDS Keywords
 Field Level:
 Apply only to specific field it is associated.
 EDTCDE, EDTWRD: format numeric output
 DSPATR: Display Attribute, determines
appearance. (BL – blinking field, UL –
underline)
 DSPATR(BL UL)
DDS Keywords
 Field Level: Data Validation
 VALUES: Specify exact values allowed.
 VALUES(value1 value2 . . .)
 RANGE: Specify range of values allowed.
 RANGE(low-value high-value)
 COMP: Relational comparison with inputted value
(EQ,NE,GT,NG,LT,NL,GE,LE):
 COMP(GT 100)
 CHECK: Validity checking (ME, MF, AB)
 CHECK(Validity code)
 ERRMSG:
 TIME and DATE
DDS Keywords
 Conditioning Indicators:
 Field Keyword will only apply if conditioning
indicator is turned on by the RPG program.
AAN01N02N03T.Name++++++RLen++TDpBLinPosFunctions++++++++++++++++++
********** Beginning of data *************************************
A
REF(SECTIONS)
A
PRINT
A
INDARA
A
R SECT1
A
BLINK
A
CA03(03 'F3=EXIT')
A
1 28'SECTION INQUIRY'
A
3 2'TYPE VALUE, THEN ENTER.'
A
5 5'SECTION NUMBER . .'
A
SECTION
5A I 5 24
A
DSPATR(UL)
A
DSPATR(HI)
A
ERRMSG('SECTION NOT FOUND‘ 90)
A
23 2'F3=EXIT'
A
A
R SECT2
A
CA03(03 'F3=EXIT')
A
CA03(12 'F12=CANCEL')
A
1 10'SECTION INFORMATION'
A
3 2'SECTION NUMBER . . .'
A
SECTNO
R
O 3 29
A
3 2'COURSE . . . . . . .'
A
COURSE
R
O 4 29
A
5 2'INSTR . . . . . . .'
A
INSTR
R
O 5 29
A
6 2'ROOM
. . . . . . .'
A
ROOM
R
O 6 29EDTCDE(Z)
A
7 2'MEETS ON DAYS . . .'
A
DAYS
R
O 7 29
A
8 2'STARTING TIME . . .'
A
BEGTIME
R
O 8 29EDTWRD(' 0: ')
A
9 2'ENROLLMENT . . . . .'
A
ENROLL
R
O 9 29EDTCDE(3)
A
21 2'PRESS ENTER TO CONTINUE'
A
23 2'F3=EXIT'
Revised RPG code
DFKeys
D Exit
D Cancel
D SectNotFnd
C
C
C
C
C
C
C
C
C
C
Section
DS
3
12
90
DOW
EXFMT
IF
CHAIN
EVAL
IF
EXFMT
ENDIF
ENDIF
ENDDO
3N
12N
90N
NOT Exit
Sect1
NOT Exit
Sections
SectNotFnd = NOT %FOUND(Sections)
%FOUND(Sections)
Sect2
Interactive File
Maintenance
 Adding, changing or deleting records
instantly.
 Must verify data validity
 Three methods of safeguarding
 Validation Keywords in PF description
 Validation Keywords in Display file description
 Validating values in program