Display Rpgle
Display Rpgle
Display Rpgle
SC41-5715-00
AS/400 Advanced Series IBM
Application Display Programming
Version 4
SC41-5715-00
Take Note!
Before using this information and the product it supports, be sure to read the general information under “Notices” on page xxix.
This edition applies to the licensed program IBM Operating System/400 (Program 5769-SS1), Version 4 Release 1 Modification 0,
and to all subsequent releases and modifications until otherwise indicated in new editions.
Make sure that you are using the proper edition for the level of the product.
Order publications through your IBM representative or the IBM branch serving your locality. If you live in the United States, Puerto
Rico, or Guam, you can order publications through the IBM Software Manufacturing Solutions at 800+879-2755. Publications are not
stocked at the address given below.
IBM welcomes your comments. A form for readers’ comments may be provided at the back of this publication. You can also mail
your comments to the following address:
IBM Corporation
Attention Department 542
IDCLERK
3605 Highway 52 N
Rochester, MN 55901-7829 USA
If you have access to Internet, you can send your comments electronically to IDCLERK@RCHVMW2.VNET.IBM.COM; IBMMAIL, to
IBMMAIL(USIB56RZ).
When you send information to IBM, you grant IBM a nonexclusive right to use or distribute the information in any way it believes
appropriate without incurring any obligation to you.
Contents v
Selection Lists—Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-24
DDS for Selection Lists—Example . . . . . . . . . . . . . . . . . . . . . . . 6-26
Creating Selection Lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-26
Controlling the Selection Indicators in a Selection List . . . . . . . . . . . . 6-28
Scroll Bars—Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-30
Creating a Scroll Bar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-31
DDS for Scroll Bars—Example . . . . . . . . . . . . . . . . . . . . . . . . . 6-33
Scroll Bar Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-33
Push Buttons—Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-34
DDS for Push Buttons—Example . . . . . . . . . . . . . . . . . . . . . . . . 6-35
Creating Push Buttons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-35
Controlling the Availability of Choices . . . . . . . . . . . . . . . . . . . . . . . 6-36
Auto-Selection in Single-Choice Selection Fields . . . . . . . . . . . . . . . . 6-37
Auto-Enter in Single-Choice Selection Fields . . . . . . . . . . . . . . . . . . . 6-38
Defining Mnemonics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-38
Defining Choice Colors and Attributes . . . . . . . . . . . . . . . . . . . . . . . 6-39
Continued-Entry Fields—Overview . . . . . . . . . . . . . . . . . . . . . . . . . 6-42
Specifying Word Wrap on Continued-Entry Fields . . . . . . . . . . . . . . 6-43
DBCS Considerations with Continued-Entry Fields . . . . . . . . . . . . . . 6-43
How DBCS Data is Returned for Continued-Entry Fields . . . . . . . . . . 6-44
Keyboard Functions with Continued-Entry Fields . . . . . . . . . . . . . . . 6-44
Forward Field-Exit Processing . . . . . . . . . . . . . . . . . . . . . . . . . . 6-49
Backward Field-Exit Processing . . . . . . . . . . . . . . . . . . . . . . . . . 6-49
How the Menu Bar Interacts with the Application . . . . . . . . . . . . . . . . 6-50
Defining the MNUBARDSP Keyword on the Application Record . . . . . . 6-50
Defining the MNUBARDSP Keyword on the Menu-Bar Record . . . . . . . 6-51
Receiving Input from the Pull-Down Menus . . . . . . . . . . . . . . . . . . 6-53
Removing a Pull-Down Menu after Receiving Input . . . . . . . . . . . . . 6-55
Updating a Pull-Down Menu before Displaying . . . . . . . . . . . . . . . . 6-55
Defining Application Help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-56
Defining Choice-Level Help . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-56
Defining Help for a Field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-59
Key Interaction for Menu Bars and Pull-Down Menus . . . . . . . . . . . . . . 6-60
Cursor Movement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-61
Pressing the Tab Key . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-61
Pressing the Cursor Keys . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-62
Programming Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-62
Using the MNUBARDSP Keyword on the Application Record . . . . . . . . 6-62
Using the MNUBARDSP Keyword on the Menu-Bar Record . . . . . . . . 6-65
How the Displays Look . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-67
Simple Hotspots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-68
Command Key Emulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-68
Page Up and Page Down Key Emulation . . . . . . . . . . . . . . . . . . . 6-69
Programmable Mouse Buttons—Overview . . . . . . . . . . . . . . . . . . . . 6-69
Pointer Device Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-69
AID Codes to be Returned . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-70
Programmable Mouse Buttons—Benefits . . . . . . . . . . . . . . . . . . . 6-70
Programmable Mouse Buttons Operation . . . . . . . . . . . . . . . . . . . 6-71
Programmable Mouse Buttons—NWS Considerations . . . . . . . . . . . . 6-72
Programmable Mouse Buttons—Event Processing States . . . . . . . . . . 6-72
Programmable Mouse Buttons—Event Processing Priority . . . . . . . . . 6-73
Grid Line Structures—Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 6-79
DDS for Grid Line Structures—Example . . . . . . . . . . . . . . . . . . . . 6-80
Grid Line Structures and Windows . . . . . . . . . . . . . . . . . . . . . . . 6-81
Contents vii
Using the Generic Menu Specification . . . . . . . . . . . . . . . . . . . . . 9-16
Changing the Command Default after Duplicating a Command . . . . . . . 9-16
Displaying Menu Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-16
Changing Menu Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-16
Deleting Menus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-17
Chapter 12. Waiting for Input from a Display File, an ICF File, and a
Data Queue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-1
Chapter 13. Using Alternative Character Sets and Code Pages . . . . . 13-1
Specifying Character Translation for Fields . . . . . . . . . . . . . . . . . . . . 13-2
Determining the Character Identifier (CHRID) Value for Your Display . . . . . 13-4
Contents ix
Command Line Restrictions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-19
Command Line Interpretation . . . . . . . . . . . . . . . . . . . . . . . . . 17-19
Entering Commands That Are Too Long . . . . . . . . . . . . . . . . . . . 17-20
Defining Function Keys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-20
Formatting Function Keys . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-20
Handling Function Keys and VARUPD Value . . . . . . . . . . . . . . . . 17-21
Panel Formatting Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-22
When Panel Formatting Is Performed . . . . . . . . . . . . . . . . . . . . 17-22
Application Control of Panel Formatting . . . . . . . . . . . . . . . . . . . 17-23
Limits of the Panel Formatter . . . . . . . . . . . . . . . . . . . . . . . . . 17-24
Folding Up Multiple Panels When EXIT Is Requested . . . . . . . . . . . . . 17-24
Folding Up a List Panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-26
Adding a Pop-Up Window over Another Panel . . . . . . . . . . . . . . . 17-27
Using Menu Bars . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-27
Differences Between Pull-Down Menus and Pop-Up Windows . . . . . . 17-28
Using Pop-Up Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-30
Defining Application Windows . . . . . . . . . . . . . . . . . . . . . . . . . 17-30
Adding and Removing Windows . . . . . . . . . . . . . . . . . . . . . . . 17-31
Using the Command Line in a Window . . . . . . . . . . . . . . . . . . . . 17-32
UIM as a Request Processor Program When Displaying a Panel . . . . . . 17-33
Printing Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-33
Printing a Print Head Panel . . . . . . . . . . . . . . . . . . . . . . . . . . 17-35
Printing a Print Panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-35
Using Blank Lines for Separating . . . . . . . . . . . . . . . . . . . . . . . 17-36
Fonts and Highlighting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-36
Printing the Trailer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-36
Defining Prolog Areas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-36
Defining Header Areas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-36
Using the Page-Eject Function During Printing . . . . . . . . . . . . . . . 17-37
Sharing and Overriding Printer Files . . . . . . . . . . . . . . . . . . . . . 17-37
Printing Double-Byte Character Set (DBCS) Considerations . . . . . . . 17-37
Commonly Asked UIM Questions . . . . . . . . . . . . . . . . . . . . . . . 17-37
Chapter 19. Making Online Help Accessible for Your Panel Group . . . 19-1
Contents xi
Instruction Line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-20
Function Keys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-20
Online Help Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-20
General Information Display Operation . . . . . . . . . . . . . . . . . . . . 21-21
Designing the List Display . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-21
Title . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-22
Prompt Area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-22
Instruction Line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-22
Options Line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-23
Column Headings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-24
Extended Action Entry Area . . . . . . . . . . . . . . . . . . . . . . . . . . 21-24
List Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-24
Paging Location Information . . . . . . . . . . . . . . . . . . . . . . . . . . 21-25
Function Keys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-25
Online Help Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-25
General List Display Operation . . . . . . . . . . . . . . . . . . . . . . . . 21-26
Defining the Function Key Area for All Displays . . . . . . . . . . . . . . . . 21-33
Optional Command Line and Identifier Field . . . . . . . . . . . . . . . . . 21-34
Common Key Assignments . . . . . . . . . . . . . . . . . . . . . . . . . . 21-38
Defining Help Information for All Displays . . . . . . . . . . . . . . . . . . . . 21-44
Help for the Menu Display . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-44
Help for the Entry Display . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-46
Help for the Information Display . . . . . . . . . . . . . . . . . . . . . . . . 21-47
Help for the List Display . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-48
Defining and Presenting Messages . . . . . . . . . . . . . . . . . . . . . . . 21-49
Designing Common User Access (CUA) Entry Level Models . . . . . . . . 21-50
Entry Dialog Actions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-51
Single-Choice Selection (Menu) . . . . . . . . . . . . . . . . . . . . . . . . 21-52
Entry Display . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-53
Information Display . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-55
List Display . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-55
Help Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-57
Part 6. Appendixes
Contents xiii
Optional Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-55
Optional Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-56
DL (Definition List) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-57
Optional Attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-57
Required Tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-57
Optional Tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-58
Example 1: Definition List . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-58
Example 2: Compact Definition List . . . . . . . . . . . . . . . . . . . . . . A-58
FIG (Figure) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-59
Optional Attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-59
Optional Tag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-59
Example: Sample Figure . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-59
HELP (Help Module) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-60
Required Attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-60
Optional Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-60
Optional Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-61
Example: Help Panel Definition . . . . . . . . . . . . . . . . . . . . . . . . . A-62
HP0 through HP9 (Highlighted Phrase) . . . . . . . . . . . . . . . . . . . . . . A-63
Optional Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-63
H1 through H4 (Heading) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-65
Required Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-65
Example: Heading Tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-65
IMHELP (Imbed Help) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-66
Required Attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-66
Example: Imbedded Help . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-66
IMPORT (Import) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-67
Required Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-67
Optional Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-67
INFO (Information Area) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-68
Required Attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-68
Optional Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-68
Optional Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-68
Print Formatting Considerations . . . . . . . . . . . . . . . . . . . . . . . . . A-69
ISCH (Index Search) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-70
Required Attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-70
Required Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-70
Example: Index Search . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-70
ISCHSUBT (Index Search Subtopic) . . . . . . . . . . . . . . . . . . . . . . . . A-71
Required Attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-71
Example: Index Search Hierarchy . . . . . . . . . . . . . . . . . . . . . . . A-71
ISCHSYN (Index Search Synonym) . . . . . . . . . . . . . . . . . . . . . . . . A-72
Required Attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-72
Required Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-72
Example: Index Search Synonyms . . . . . . . . . . . . . . . . . . . . . . . A-72
KEYI (Key List Item) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-74
Required Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-74
Optional Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-75
Optional Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-75
Example: Key Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-75
KEYL (Key List) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-76
Required Attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-76
Optional Attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-76
Example: Key List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-76
LINES (Unformatted Lines) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-77
Contents xv
Example 2: Menu Area with Groups . . . . . . . . . . . . . . . . . . . . . A-112
MENUGRP (Menu Group) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-114
Optional Attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-114
Optional Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-114
MENUI or MI (Menu Item) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-115
Required Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-115
Optional Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-115
Optional Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-116
NT or NOTE (Note) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-117
Optional Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-117
Example: Using a Note . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-117
OL (Ordered List) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-118
Optional Attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-119
Required Tag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-119
Example: Ordered List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-119
OPTLINE (Option Line) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-120
Optional Attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-120
Optional Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-120
P (Paragraph) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-121
Optional Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-121
Example: Paragraph Tag . . . . . . . . . . . . . . . . . . . . . . . . . . . A-121
PANEL (Display Panel) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-122
Required Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-122
Optional Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-123
Optional Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-127
Example: Panel Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . A-127
PARML (Parameter List) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-129
Required Tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-129
Example: Parameter List . . . . . . . . . . . . . . . . . . . . . . . . . . . A-130
PC (Paragraph Continuation) . . . . . . . . . . . . . . . . . . . . . . . . . . . A-131
Example: Paragraph Continuation . . . . . . . . . . . . . . . . . . . . . . A-131
PDACCEL (Pull-Down Accelerator) . . . . . . . . . . . . . . . . . . . . . . . A-132
Required Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-132
PDFLD (Pull-Down Field) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-133
Optional Attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-133
PDFLDC (Pull-Down Field Choice) . . . . . . . . . . . . . . . . . . . . . . . . A-134
Required Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-134
Optional Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-134
Optional Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-136
Confirmation Panel Requirements . . . . . . . . . . . . . . . . . . . . . . A-136
Confirmation Panel Conventions . . . . . . . . . . . . . . . . . . . . . . . A-136
PK (Programming Keyword) . . . . . . . . . . . . . . . . . . . . . . . . . . . A-138
Optional Attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-138
Required Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-138
PNLGRP (Panel Group) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-139
Optional Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-139
PRTHEAD (Print Head Panel) . . . . . . . . . . . . . . . . . . . . . . . . . . A-142
Required Attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-142
Optional Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-142
Optional Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-143
Layout of the Title Lines . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-143
Example: Print Title Line . . . . . . . . . . . . . . . . . . . . . . . . . . . A-145
PRTPNL (Print Panel) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-146
Required Attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-146
Contents xvii
ACTIONS (Menu Bar Cursor Action) . . . . . . . . . . . . . . . . . . . . . . B-4
CALL (Call Program) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-4
CANCEL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-6
CHGVIEW (Change View) . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-6
CMD (System Command) . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-7
CMDLINE (Command Line) . . . . . . . . . . . . . . . . . . . . . . . . . . . B-7
DSPHELP (Display Help) . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-7
ENTER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-8
EXIT (Exit Display) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-8
EXTHELP (Extended Help) . . . . . . . . . . . . . . . . . . . . . . . . . . . B-9
HELP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-9
HELPHELP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-9
HELPIDX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-9
HOME (Display Home Menu) . . . . . . . . . . . . . . . . . . . . . . . . . . B-9
KEYSHELP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-10
MENU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-10
MOREKEYS (Display More Function Keys) . . . . . . . . . . . . . . . . . . B-10
MOVETOP (Move to Top) . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-11
MSG (Display Message) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-11
PAGEDOWN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-11
PAGEUP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-12
PRINT (Print Display) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-12
PROMPT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-13
PULLDOWN (Display Pull-Down Menu) . . . . . . . . . . . . . . . . . . . . B-14
RETRIEVE (Retrieve Command String) . . . . . . . . . . . . . . . . . . . . B-14
RETURN (Return Control to Application) . . . . . . . . . . . . . . . . . . . B-14
Contents xix
Clearing Lines on the Display . . . . . . . . . . . . . . . . . . . . . . . . . . . . G-1
Input Data for Display File Records . . . . . . . . . . . . . . . . . . . . . . . . G-2
Input Data from the Work Station Controller . . . . . . . . . . . . . . . . . . . G-2
Self-Check . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . G-2
Return Input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . G-3
Erase Input Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . G-3
Display Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . G-3
Positioning the Cursor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . G-4
Displaying Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . G-4
Put Override . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . G-6
Handling Signed Numeric Data . . . . . . . . . . . . . . . . . . . . . . . . . . . G-7
Function Keys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . G-7
Help Key Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . G-7
Using Command Keys to Exit Application Help . . . . . . . . . . . . . . . . . G-8
Cancel-Invite Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . G-8
Retain Command and Function Keys . . . . . . . . . . . . . . . . . . . . . . . G-9
System/36 Functions Not Supported . . . . . . . . . . . . . . . . . . . . . . . . G-10
Restricted DDS Keywords/Functions . . . . . . . . . . . . . . . . . . . . . . . . G-10
Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . H-1
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X-1
Figures xxiii
21-12. Create Command Display with Additional Parameters Selected . . 21-36
21-13. Second Display of Additional Parameters . . . . . . . . . . . . . . 21-36
21-14. Work with Members Using PDM Entry Display . . . . . . . . . . . 21-37
21-15. Help Areas for Entry Displays . . . . . . . . . . . . . . . . . . . . . 21-46
21-16. Help Areas for Information Displays . . . . . . . . . . . . . . . . . . 21-47
21-17. Help Areas for List Displays . . . . . . . . . . . . . . . . . . . . . . 21-48
21-18. Example of an Application Menu . . . . . . . . . . . . . . . . . . . 21-52
21-19. Entry Display . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-54
21-20. Example of an Information Display . . . . . . . . . . . . . . . . . . 21-55
21-21. Example of a List Display . . . . . . . . . . . . . . . . . . . . . . . . 21-56
A-1. Highlighting Classes Allowed in TEXT Area . . . . . . . . . . . . . A-156
D-1. IBM Host-System Code Scheme . . . . . . . . . . . . . . . . . . . . D-2
G-1. Circumventing the Save Command . . . . . . . . . . . . . . . . . . . G-9
Tables xxvii
xxviii Application Display Programming V4R1
Notices
References in this publication to IBM products, programs, or services do not imply that IBM intends to
make these available in all countries in which IBM operates. Any reference to an IBM product, program,
or service is not intended to state or imply that only that IBM product, program, or service may be used.
Subject to IBM's valid intellectual property or other legally protectable rights, any functionally equivalent
product, program, or service may be used instead of the IBM product, program, or service. The evaluation
and verification of operation in conjunction with other products, except those expressly designated by IBM,
are the responsibility of the user.
IBM may have patents or pending patent applications covering subject matter in this document. The fur-
nishing of this document does not give you any license to these patents. You can send license inquiries,
in writing, to the IBM Director of Licensing, IBM Corporation, 500 Columbus Avenue, Thornwood, NY
10594, U.S.A.
Licensees of this program who wish to have information about it for the purpose of enabling: (i) the
exchange of information between independently created programs and other programs (including this one)
and (ii) the mutual use of the information which has been exchanged, should contact the software interop-
erability coordinator. Such information may be available, subject to appropriate terms and conditions,
including in some cases, payment of a fee.
IBM Corporation
Software Interoperability Coordinator
3605 Highway 52 N
Rochester, MN 55901-7829 USA
This publication may refer to products that are announced but not currently available in your country. This
publication may also refer to products that have not been announced in your country. IBM makes no
commitment to make available any unannounced products referred to herein. The final decision to
announce any product is based on IBM's business and technical judgment.
This publication contains examples of data and reports used in daily business operations. To illustrate
them as completely as possible, the examples include the names of individuals, companies, brands, and
products. All of these names are fictitious and any similarity to the names and addresses used by an
actual business enterprise is entirely coincidental.
This publication contains small programs that are furnished by IBM as simple examples to provide an
illustration. These examples have not been thoroughly tested under all conditions. IBM, therefore, cannot
guarantee or imply reliability, serviceability, or function of these programs. All programs contained herein
are provided to you "AS IS". THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE EXPRESSLY DISCLAIMED.
Product-Sensitive programming interfaces allow the customer installation to perform tasks such as diag-
nosing, modifying, monitoring, repairing, tailoring, or tuning of this IBM software product. Use of such inter-
faces creates dependencies on the detailed design or implementation of the IBM software product.
Product-Sensitive programming interfaces should be used only for these specialized purposes. Because
of their dependencies on detailed design and implementation, it is to be expected that programs written to
such interfaces may need to be changed in order to run with new product releases or versions, or as a
result of service.
Trademarks
The following terms are trademarks of the IBM Corporation in the United States or other countries or both:
Microsoft, Windows, and the Windows 95 logo are trademarks or registered trademarks of Microsoft Cor-
poration.
PC Direct is a trademark of Ziff Communications Company and is used by IBM Corporation under license.
UNIX is a registered trademark in the United States and other countries licensed exclusively through
X/Open Company Limited.
Other company, product, and service names, which may be denoted by a double asterisk (**), may be
trademarks or service marks of others.
This book does not describe all the DDS keywords or the configuration of display
stations. You may need to refer to other IBM books for more specific information
about a particular topic.
This book assumes that a device description already exists to describe your display
station to the system.
Select the Information Desk, and you will be able to access a variety of AS/400
information topics from that page.
HTML Keyword
You can use HTML tags to update applications for use on the Internet through the
World Wide Web. For more information, see“DDS Keywords” on page 6-5 and
“Inserting HTML Tags” on page 6-82.
Changes or additions to the text are indicated by a vertical line (|) to the left of the
change or addition.
The Application Display: The sample display is created using a display file (also
known as a display device file). A display file is an object, or named storage
space, created by the user that contains the file description. The file description
identifies the display station used and, optionally, the record formats used by the
display station. Record formats describe the characteristics and arrangement of
the fields on a display. Record formats are defined using data description spec-
ifications (DDS), which describe data attributes outside the application program
that processes the data.
The Online Help Information: The online help information for the sample display
is defined using help panel groups. A panel group is an object, or named storage
space, that contains text to be used as online help information by the user interface
manager. The user interface manager (UIM) is a function of the operating system
that provides online help information for displays, including help for part or all of a
display, help for commands, the InfoSeeker function, the index search function
(selectable help topics), and hypertext (the capability to link different units of online
help information).
The following table lists the sample names used in the steps:
The steps show only one way to create a sample display with online help informa-
tion. Other methods are discussed at the end of this chapter.
1. Create the source file SRCSAM using the Create Source Physical File
(CRTSRCPF) command; create the library LIBSAM using the Create Library
(CRTLIB) command.
2. Enter the Start Programming Development Manager (STRPDM) command to
begin using the programming development manager (PDM). When the display
appears, select option 3 (Work with members).
Selection or command
===> 3
3. When the Specify Members to Work With display appears, complete the file
and library information and press the Enter key.
Member:
Name . . . . . . . . . \ALL \ALL, name, \generic\
Type . . . . . . . . . \ALL \ALL, \BLANK, type, \generic\
á ñ
Parameters or command
===>
F3=Exit F4=Prompt F5=Refresh F6=Create
F9=Retrieve F1ð=Command entry F23=More options F24=More keys
á ñ
Press F6 on this display to create a new member.
5. The Start Source Entry Utility display appears. Complete the information on
this display and press the Enter key.
Bottom
F3=Exit F4=Prompt F5=Refresh F12=Cancel F13=How to use this display
F24=More keys
á ñ
Additional Information
The source entry utility (SEU) is a function of the Application Development
ToolSet licensed program that is used to create and change source
members. More information about the source entry utility is available in the
ADTS/400: Source Entry Utility book.
6. Because you are creating a new member, the SEU Edit display appears with a
screen of blank lines. The text on the last line of the display, Member
8. When you are finished entering your DDS source, press F3 and complete the
information on the Exit display. Press the Enter key.
9. To create the new display file, enter the Create Display File (CRTDSPF)
command on any command line. Make sure you specify the source file and
member that contains your DDS source:
CRTDSPF FILE(LIBSAM/DSPSAM) SRCFILE(LIBSAM/SRCSAM) SRCMBR(ADMSAM)
Press the Enter key.
Additional Information
For more information about creating display files, see “Creating a Display
File and Description” on page 2-4.
10. To add online help information to the sample display, create a second source
file member for the UIM source. You are not required to create the second
source member in the same source file that you created your DDS source in;
13. When you are finished entering your UIM source, press F3 and complete the
information on the Exit display. Press the Enter key.
14. Enter the Create Panel Group (CRTPNLGRP) command on any command line:
CRTPNLGRP PNLGRP(LIBSAM/PNLSAM) SRCFILE(LIBSAM/SRCSAM) SRCMBR(HDMSAM)
Press the Enter key.
Additional Information
For more information about panel groups, see “Creating and Deleting Panel
Groups” on page 20-15.
Although one library was used in the previous steps, you are not required to create
the different objects for your displays in the same library.
Other ways of creating your own application displays on the AS/400 system follow:
Other ways of creating online help information for your displays follow:
To compare and contrast the different ways to create online help information, see
“Choosing between Panel Groups, Documents, and Records for Help” on
page 18-2.
Chapter 12. Waiting for Input from a Display File, an ICF File, and a
Data Queue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-1
Chapter 13. Using Alternative Character Sets and Code Pages . . . . . 13-1
This chapter tells you about display files, including how to create them and how to
provide DDS source for them to describe your display.
Before an application program can work with a display station, a display file must
be opened to allow data to flow between the program and the display station.
Application Display
Program File Display Station Data
Device
Description
RV2W045-1
A device description, which is a system object that describes the display station to
the system, must also exist for the display station. A device description contains
information such as device address, device type, model number, and features.
Device descriptions are usually created by system personnel or, for locally attached
devices, can be created during the automatic configuration of the system.
A program may work with more than one display station at a time by doing one of
the following:
Opening more than one display file
Opening a display file that allows more than one display station to be attached
to an open file
A file description determines how a program is able to use the file. If a program
attempts to perform an operation that is inconsistent with the display file
description, the system does not allow the operation.
The file description is created and deleted at the same time as the display file it
describes. Some parts of a file description may be changed, either permanently
with the Change Display File (CHGDSPF) command or temporarily with the Over-
ride with Display File (OVRDSPF) command.
Field-Level Descriptions
A field is the smallest unit of data that is recognized and handled by the data man-
agement support of the system. A field-level description allows you to give the
system detailed characteristics of a field, such as:
Where on the screen the field is to appear
What type of data is valid for the field
Whether the field should be highlighted in some way
How it will be presented from the program to the system on output and from
the system to the program on input.
Where each field is relative to the start of a record
What the characteristics of each field will be while in the system
Where the data for each field should be acquired from for output
Where and how input from the display station should be placed so the program
can use it
Whether the field is an input-capable field or output-capable field only
Only field-level descriptions can determine that valid data is specified for individual
fields on a display.
Since records are used to transfer data between the system and the application
program, a record-level description is required for display files.
File-Level Descriptions
A file is an organized set of zero or more records (a file with zero records is
empty). A file-level description is a description that applies to the file as a whole.
For a display file, you can specify the following in the file-level description:
What record formats are valid for the display file
What display station should be usable with the display file
What graphic character set is to be assumed for the data that will be entered
through the display file
To use externally described data, you need to declare that the display file is to be
used as an externally described file. The language compiler or interpreter extracts
the file description from the display and then incorporates it into the program.
Program-Described Data
You are not required to use external descriptions to describe your displays in your
program. If you do not use externally described data, you must declare variables in
your source program that define to the compiler or interpreter what the data looks
like.
When program-described data is used, the program and the system may not have
the same view of the data:
If the file does not have any field-level descriptions, the system must operate at
the record level. The only concern in this case is that the record length the
program is using is the same as what the system is using. It need not be, but
the system always operates with the record length it has. If the record length
that the system is using differs from the record length the program is using, the
system truncates or pads as necessary.
If the file has field-level descriptions but the program does not use them, the
system uses the field-level descriptions even though the program does not.
The system expects the program to present data according to the file
description and, conversely, provides data to the program according to the
description.
You can define the DDS for your display file in one of two ways:
Using the screen design aid (SDA) utility
Entering your own DDS source
You can specify certain attributes about your display file. Information about these
attributes is found in the following:
“Deferring the Write Operation Until a Read Request is Made” on page 3-26
“Saving Previously Displayed Information” on page 3-43
CL Reference
Security – Reference
Enter your own DDS and then use the Design your display as it will look
Create Display File (CRTDSPF) Command ... using the screen design aid (SDA) utility ...
Go To Another List
Selection
-
F3=Exit F12=Cancel
Go To Another List
Selection
-
F3=Exit F12=Cancel
RV2W000-5
You may also combine the two methods, creating an initial display using SDA and
then tailoring the generated DDS.
You may also temporarily change a file-level description when a display file is
opened. More information about these temporary changes is found in Chapter 7,
“Overriding Display Files and Display File Attributes” on page 7-1.
The system assigns a unique level identifier for each record format when the file it
is associated with is created. The system uses the following information to deter-
mine the level identifier:
Record format name
Field name
Total length of the record format
Number of fields in the record format
Field attributes (for example, length and decimal positions)
Order of the fields in the record format
Display files may also use the number of and order of special fields called indica-
tors to determine the level identifier.
If you change the DDS for a record format and change any of the items in the
preceding list, the level identifier changes.
To check for changes in the level identifiers when you run your program, specify
*YES for the LVLCHK parameter on the CRTDSPF or CHGDSPF command. When
the display file is opened, the level identifiers of the display file and the file
description that is part of the compiled program are compared format-by-format. If
the identifiers differ or if any of the formats specified in the program do not exist in
the file, a message is sent to the program to identify the condition.
If the identifiers differ, either the formats have been changed or your program does
not use the changed formats. If the changed format does affect your program, you
may decide to do the following:
Compile the program again so that the changes are included
Determine if the changes affect your program before deciding what action to
take.
A record format contains field descriptions, which are defined using data description
specifications (DDS). For each field in a record format, you describe the following:
Location of the field on the display
Length of the field
Type of data contained in the field (character, zoned decimal, or floating point)
Field type (output, input, or output/input).
This section describes how DDS keywords are used to describe the information
on your display. For more information about specific DDS keywords, see the
DDS Reference.
DDS for Display File: The following source shows the DDS for a sample display
file:
|...+....1....+....2....+....3....+....:833.+....5....+....6....+....7...
A R RECORD
A 3 2'Customer Number:'
A CUST 5 ð 3 2ð
A 3 27'Customer Name:'
A NAME 2ð 3 44
A 4 27'Address:'
A ADDR 2ð 4 44
A CITY 2ð 5 44
A STATE 2 5 66
A ZIP 5 ð 5 7ð
Table 2-1 on page 2-8 shows the column positions and descriptions for the DDS
specifications.
Record Format Used by the Program: The program passes the fields in the
record in the same order that you described them in the DDS source.
1 5 6 25 26 45 46 65 66 67 68 72
RV2W028-1
Record Format on the Display: The fields are displayed according to the display
positions you assigned them in the DDS source.
CUST NAME
When a record is displayed so that the last field in the record ends in the last posi-
tion on the line, the ending attribute character for that field is in the first position of
the next line. The beginning attribute character of the first field in the next record
can be superimposed on the ending attribute character. For example, if the ending
attribute character for the last field in record 1 is in position 1 of line 5, the begin-
ning attribute character for record 2 can also be in position 1 of line 5. In this case,
the first record is not considered to be overlapped. However, if the first field in a
record begins in position 1, which means that the beginning attribute character is in
the last position of the preceding line, the previous record is overlapped and is
cleared from the display.
To see the locations of fields in the input records and output records used by the
program, see the printed DDS output produced when you created your display file
using the CRTDSPF command.
The maximum number of fields that you can specify for each record format is
32 763. (See “Understanding the Limitations on the Number of Input-Capable
Fields” on page 3-39 for information on the number of input-capable fields that can
be specified.) The maximum combined length for all fields and indicators in a
record format is 32 763.
The following display shows output fields and input fields displayed in response to a
request (in the form of entering a customer number in an input field) from a user.
à ð
Customer number: 41394
Order number: 41882
Order date: 11/ð1/81
Order amount: $58ð.ðð
A/R balance: $58ð.ðð
á ñ
The prompts, Customer number:, Order number:, Order date:, Order amount:, A/R
balance:, and Enter next customer number: are constants. The data associated
with these fields (41394, 41882, 11/01/81, $580.00, and $580.00) is displayed in
You must specify the location for each field except when the field is a hidden field,
a message line, or a program-to-system field, or when the field is in a subfile
message record format. You cannot specify line 1, position 1 for location, except
when you define a record that can start in any line.
The maximum length of a character field or numeric (zoned decimal) field is the
number of positions remaining (relative to the start location of the field) on the
display minus 1. Another restriction of the numeric (zoned decimal) field is that it
can be no longer than 31, even if more than 31 positions are remaining on the
display.
Specifications for the fields you describe can be retrieved from a previously
described field. The previously described field can be either in a database file or
already defined in the DDS source for the display file. When you use field-level
descriptions from a database file, binary and packed decimal fields are changed to
zoned decimal fields. These fields that you use to define other fields are called
reference fields.
You can define two fields to occupy the same positions on the display, and use
option indicators to select which of the overlapping fields is to be displayed. If
more than one overlapping field is selected on the same output operation, only the
first field selected is displayed.
Display
Contents
Keyboard
Functions
RV2W001-2
The Enter key can always be used by the user. So that the user can use the other
function keys, you must specify the following DDS keywords to enable the corre-
sponding function key:
CAnn, where nn is 1-24
CFnn, where nn is 1-24
CLEAR
To tell which function key is pressed when you perform the read operation, you
need to define your function keys using one of the following:
Define a response indicator for the function key. A response indicator is an
indicator that returns information back to an application. There are 99
response indicators available to you.
Note: Response indicators are used for more than function keys. For
example, you can use them to tell when the data in a field on the
display has changed.
Examine the input/output feedback area. The input/output feedback area is
status information provided by the system about the operations performed on
an opened file. To find out how to get information from the input/output feed-
back area, see the manual for the programming language you are using. See
Appendix C, “Feedback Area Layouts for Display Files” on page C-1 for a
description of the information available from the feedback areas.
If a response indicator is specified for a CFnn key and the key is pressed, the
response indicator is set on and passed to the program with the input data. If a
response indicator is not specified for a CFnn key, only the input data is passed.
If a response indicator is specified for a CAnn key and the key is pressed, the
response indicator is set on and passed to the program. Fields sent to the display
and hidden fields are returned to the program. If a CFnn key or the Enter key was
previously pressed, the input-only field is returned as previously typed data. If data
was never entered into an input-only field, the field is returned as blanks (character
field) or zeros (numeric field). Fields changed by the user since the last time a
CFnn key or Enter key was pressed are not returned.
The use of CAnn keys can cause the input buffer of the program to contain user-
entered data that does not meet the validation specified in the display file. For
example, the user enters data and presses a CFnn key or the Enter key, and the
data is validated as defined in your DDS. Input data is processed one field at a
time with data manipulation taking place before the validity checking. If a validity-
checking error occurs, a message is selected and all the other input data is pro-
cessed. After all input data is processed and one or more errors have occurred, a
message is sent to the user. Then, if the user presses a valid CAnn key, no
changed data is sent from the display. The data is moved from the input buffer
save area to the input buffer. The input buffer now contains the data that is in
error. If your program is not going to process this data when the CAnn key is
pressed, you do not have a problem. If this is a problem, avoid using CAnn keys;
only use CFnn keys so that data that is not valid can be detected.
If you want to use CAnn keys, you should not specify the following validity-checking
DDS keywords:
CHECK(M10)
CHECK(M11)
CHECK(VN)
CHECK(VNE)
CHKMSGID
COMP/CMP
RANGE
VALUES
The Print, Help, Clear, and Home keys operate in the same manner as the CAnn
keys. The Roll Up, Roll Down, Page Up, and Page Down keys operate in the
same manner as CFnn keys.
The user profile option for paging (USROPT(*ROLLKEY)) applies to the PAGEUP,
PAGEDOWN, ALTPAGEUP, ALTPAGEDWN, ROLLUP, and ROLLDOWN
keywords.
The alternative help key function does not work when the keyboard is locked. For
example, if you type information into a field that is not input-capable, a controller-
detected error occurs and flashing numbers appear. The Help key can be used to
get more information about the error. The function key specified as the alternative
help key will not be valid until the Reset key is pressed, and then the help informa-
tion will no longer be available.
Both option and response indicators can be specified at the file level, record format
level, and field level. Indicators specified at the file level apply to all record formats
within the file.
If you use the same indicator number as both a response indicator and as an
option indicator, you can use the status of the response indicator to set the option
indicator for a subsequent output operation. For example, indicator 15 is used as
both a response indicator and an option indicator. If the response indicator is on
when an input operation is performed on the record format, option indicator 15 is
set on and will be on when an output operation is performed for that record format.
The maximum number of record formats that you can define for a display file is
1024. If you do not use the INDARA keyword, the maximum number of fields that
you can specify depends on the number of indicators (1 character each) you use
and the length of each field you describe. The total combined length of all fields
and indicators in a record format cannot exceed 32 763 characters. If you use the
INDARA keyword to specify a separate indicator area, the maximum number of
fields that you can specify depends only on the length of each field. The total
number of all fields cannot exceed 32 763.
If the message description used for the constant text is shorter than the field on the
display, the remaining portion of the field is padded with blanks. If the message
description is longer than the field, the message description is truncated.
If the messages description does not exist when the DDS is compiled, the file is not
created. If you change the message description, you will have to create the file
again if you want the display file to contain the updated messages.
The input-capable positions to which the cursor can move include the following:
Input field (except protected fields)
Selection-field choice (except those on which you cannot place the cursor
because of its choice control (CHCCTL) value)
Selection-list choice (except those on which you cannot place the cursor
because of its choice control (CHCCTL) value)
Message line (if a message is displayed and the keyboard is not locked).
Message subfile defined with the subfile message record (SFLMSGRCD)
keyword.
Notes:
1. If a message subfile is defined with a SFLPAG keyword greater than 1 and the
CSRINPONLY keyword is in effect, any fields that have been turned to reverse
image because of an error, will be turned to unreverse image if the message
subfile is rolled to a partial page of messages.
2. Fields that have been turned to reverse image because of an error are turned
to unreverse image when the following conditions are true:
A message subfile is defined with a SFLPAG keyword greater than 1
The CSRINPONLY keyword is in effect
The message subfile is rolled to a partial page of messages
3. When a record is written with the PUTOVR, ERRMSG, or ERRMSGID
keywords in effect, the state of the CSRINPONLY keyword is not changed. If
the CSRINPONLY keyword is in effect prior to the write operation with the
PUTOVR, ERRMSG, or ERRMSGID keywords, the CSRINPONLY remains in
effect. This is true regardless of the optioning of the CSRINPONLY keyword
on the record assigned the PUTOVR, ERRMSG, or ERRMSGID keywords.
This is also true regardless of the optioning of the PUTOVR, ERRMSG, or
ERRMSGID keywords on the record assigned the CSRINPONLY keyword.
4. Writing a record with the PROTECT keyword does not affect the input fields
associated with messages when the CSRINPONLY keyword is in effect. Any
messages displayed are not protected. Therefore, the cursor may still be
moved the messages.
5. The CSRINPONLY keyword is valid only for display stations attached to a con-
troller that supports an enhanced interface for nonprogrammable work stations.
It is ignored on display stations attached to other controllers.
The parameter for the FLDCSRPRG keyword is the name of the field the cursor will
go to when forward field-exit processing is performed. When the cursor leaves F1
because of a field exit key, it goes to F3. If the field named with this keyword is
optioned off, cursor progression for this field is ignored.
Note: When the cursor leaves a field using backward field-exit processing, the
cursor moves to the first field on the display that has the exited-field name
specified on the FLDCSRPRG keyword. For the DDS in Figure 2-3, if
backward field-exit processing is used to leave field 2, the cursor moves to
field 3.
SFLCSRPRG is the keyword used for subfile cursor progression. The DDS for
subfiles looks like this:
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7...
A R SFLð1 SFL
A S1 1ðA B 5 5SFLCSRPRG
A S2 1ðA B 5 25
A R CTLð1 SFLCTL(SFLð1)
A SFLPAG(5) SFLSIZ(2ð) SFLDSP
The SFLCSRPRG keyword causes the cursor to move from a field in a subfile
record to the same field in the next displayed subfile record. Without
SFLCSRPRG, the cursor moves from a field in a record to the next field in the
same record. When the cursor leaves field S1 of the first record of the subfile, it
goes to S1 of the second record of the subfile. Without the SFLCSRPRG keyword,
the cursor goes to field S2 of the first record. When the cursor leaves S2, it goes
to S1 of the next record because S2 does not have the SFLCSRPRG keyword.
This keyword is not allowed with subfiles that use field selection. It cannot be used
with horizontal subfiles. When the cursor is on S1 of the last SFL record displayed,
the cursor moves to the next input field below the last SFL record. If there are no
remaining SFL fields, the cursor moves to the top of the display.
Note: The FLDCSRPRG keyword and the SFLCSRPRG keyword are ignored on
displays that are attached to a controller that does not support an enhanced
interface for nonprogrammable work stations.
The ampersand (&) represents a protected part of the field. A blank represents an
unprotected part of the field. The length of the edit mask must equal the display
length of the field. The number of unprotected positions must at least equal the
program length of the field. You must only protect nonnumeric data because pro-
tected data is not returned if the field is changed. Wherever there is an &, that part
is protected no matter what data is in the field.
The first field has the slash (/) characters protected in a date. For the second field,
the / in the date is always protected.
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7...
A DSPRL
A R RECORD
A FLD1 2ðA 5 5')Customer Name(:'
à ð
:(emaN remotsuC)
Notice that the left and right parentheses in the DDS are reversed; this is so they
appear correctly on the display. All symmetrical characters have to be specified in
this way.
If your application program uses one display file with the DSPRL keyword and
another display file with the WINDOW keyword, make sure that the display file with
the WINDOW keyword also specifies the DSPRL keyword. Otherwise, the display
assumes the orientation of the display file that has the WINDOW keyword.
If you specify the DSPRL keyword, the cursor moves from right to left when you
enter data. Therefore, it is not necessary to use the CHECK(RL) keyword. If you
specify CHECK(RL) and DSPRL, the CHECK(RL) keyword is ignored.
The DSPRL keyword causes all records in a display file to be written in the right-to-
left direction. You cannot specify that individual records be written in the left-to-
right direction.
If you specify the ERRMSG or the ERRMSGID keywords with the DSPRL keyword,
the messages associated with these keywords display in the left-to-right direction.
Notes:
1. This function is available only for display stations attached to a controller that
supports an enhanced interface for nonprogrammable work stations.
2. The Reverse key and the Close key cannot be used in a word wrap field.
3. When word wrap is used and the keyboard is in insert mode, null characters
are not shifted to the right; they are replaced.
Word wrap is not allowed with the following field types or features:
Signed numeric
Numeric only
Digits only
If all the data cannot fit within a word wrap field without splitting words, the word
wrap function for that field is ignored. The data is written as if word wrap had not
been specified. The subsequent operation of the field is also as if word wrap were
not specified.
Word wrap may be specified on fields that are contained on a single line. In this
case, when the keyboard is in insert mode, null characters are not shifted to the
right; they are replaced.
Emphasizing Fields
You can emphasize a field of a record on the display by specifying the following in
the DDS for the file:
Note: Any function not supported for your display station is ignored.
Figure 2-6 shows an example of the DDS coding for program-to-system fields:
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7...
A R RECORD
A FLD1 5A 2 2DSPATR(&PFLD1)
A FLD2 5A 2 9DSPATR(&PFLD2)
A PFLD1 1A P
A PFLD2 1A P
One program-to-system field may be used for multiple fields within a record. Only
one program-to-system field can be used per field. You cannot specify the fol-
lowing attributes using the program-to-system field:
MDT Set changed data tag when displayed
OID Operator identification
PC Position cursor
SP Select by light pen
For the valid hexadecimal values that your program can pass to the program-to-
system field, see the DDS Reference.
Adding Color
You can design your displays for use on display stations that show color. The DDS
keyword COLOR allows you to specify the following colors for fields: green, white,
red, turquoise, yellow, pink, and blue. This keyword is ignored if it is selected for a
field displayed on a display station that does not support color.
If the COLOR keyword is not specified in the DDS for the display file but the
display station is specified in the display station description as a color display
station, displays that you have designed for display stations that do not support
color can also be used for the color display station. The keywords DSPATR(UL)
and DSPATR(RI), if specified on separate fields, function the same as they do for
the 5250 display station. However, the keywords DSPATR(CS), DSPATR(HI), and
DSPATR(BL) produce the following colors on a color display station (the specified
display attributes CS, HI, and BL are suppressed):
The system provides this editing support with edit codes and edit words. Edit
codes are a defined set of editing patterns. In addition to those provided by the
system, you may also define your own edit codes. You identify edit codes by
name, and the system edits a field according to the pattern defined by the named
edit code. Edit words are edit patterns that you define to produce the desired
results. Edit codes cover most commonly used editing requirements. You need to
use the edit word support only for those editing needs not covered by edit codes.
The system provides several edit codes. The editing patterns defined by these
codes are contained in Appendix F, “Edit Codes.”
These edit codes are created by using the Create Edit Description (CRTEDTD)
command. Edit descriptions are always placed in library QSYS. They cannot be
Even though they are user-defined edit codes, your system comes with a version of
each one of them. You can use these edit descriptions as they are, or you can
delete them and create your own. The editing performed by the IBM-supplied ver-
sions of these edit descriptions as well as a definition of the contents of and the
rules for using any user-defined edit code are described in Appendix F, “Edit
Codes.”
Before using any of the user-defined edit codes, you should check its contents on
your system, since it may have been changed from the IBM-supplied version. The
Display Edit Description (DSPEDTD) command will display the contents of a user-
defined edit code.
Changing a user-defined edit code description does not affect any application or
display file that has already been created using that edit description. If you want
your application to use the changed edit description, you must either create the
high-level language program again (if the edit code is referred to in the program) or
create the file again (if the application is using an externally described file that con-
tains EDTCDE keywords).
These condition names can be used to place fields in different locations on different
sizes of screens. However, the fields must still be specified in the same order on
each size of screen. For example, the following DDS formats a display for both a
24 by 80 screen and a 27 by 132 screen:
Normally, the display files are set up for a 24 by 80 screen (default size). The
DSPSIZ keyword specifies which display sizes are valid for a file and indicates
which sizes are the primary and secondary screen sizes. (The primary screen size
is the first or only DSPSIZ value.) On the DSPSIZ keyword, the screen size can be
specified as *DS3, *DS4, 24 80, or 27 132. For example, DSPSIZ (24 80) specifies
a screen size of 24 by 80. When primary and secondary display sizes are speci-
fied, the display file is validated for both sizes.
The screen size designated as the primary screen size should be the one with
which the display file will most often be used. A performance benefit will be real-
ized by coding the DSPSIZ keyword in this manner. Additional processing is per-
formed when the actual screen size is the secondary screen size.
The screen size condition names let you improve the use of a single display file for
any size screen. For example, when you are using subfiles, you can specify 22
records per page for a 24 by 80 screen or 25 records per page for a 27 by 132
screen:
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7...
A DSPSIZ(\DS4 \DS3)
A .
A .
A .
A SFLPAG(25)
A \DS3 SFLPAG(22)
A .
A .
A .
Figure 2-8. Sample DDS for Subfiles for Two Display Sizes
You can also define your own screen size condition names.
The PRINT keyword can be used at the file level and also at the record level.
When PRINT is specified at the record level, several records with different forms of
the PRINT keyword (or with no PRINT keyword) may be displayed on the screen at
the same time. The last record format written to the screen controls the use of the
Print key for the entire screen.
If you specify the PRINT keyword in any form, the user can print a display con-
taining the message help.
The PRTKEYFMT parameter on the Change Job (CHGJOB) and Retrieve Job Attri-
butes (RTVJOBA) commands allows you to select how you want your Print key
output to look.
When you change the device description of a display station printer (by using the
CHGDEVPRT command or the DLTDEVD and CRTDEVPRT commands), you
should also change the device description of the associated display station, using
the PRINTER parameter on the CHGDEVDSP command. You should do this even
if the name of the printer, whose device description you changed, remains the
same.
A window is information that overlays part of the current display and allows the
user to read the information inside the window. The remainder of the display is not
overlaid by the window and can still be read by the user.
You can create windows by using standard DDS or by using user-defined data
streams. To use standard DDS, see Chapter 5, “Defining Windows with Display
Files” on page 5-1. Examples are also available in the QUSRTOOL library.
When you are using program-described data with a display file to communicate with
one or more display stations, only simple display formatting can be performed, and
that formatting must be specified in the high-level language program that is using
the file. All field descriptions are defined and all processing is performed in the
program that uses the file. More than one display file can be opened to the same
display station at the same time within the same program, but only two can be used
on the same display station at the same time: one for input and one for output.
When a display file that uses program-described data is opened, the system treats
the area on the display as a single field. That is, the field length is the same as the
record length. The record length is defined by the program that is using the file,
and stays the same from the time the file is opened until it is closed. Indicators
cannot be passed when records are passed from the program to a display station,
or from the display station to a program. Also, command keys cannot be used for
program-described display files.
Records for the first file used by the program appear on the first (top) part of the
display. Records for the second file appear on the display immediately following
the area used by records in the first file.
Unused Area
RSLH705-0
When the program reads the record, the input is passed to the program. The
record is not erased from the screen. The cursor is again positioned at the first
position of the record (field) and the keyboard is unlocked when the program reads
the next record. The user can then type in the next record over the previous
record.
The program that is using the file can read records or write records in any
sequence. Whenever a record is written to the file, the modified data tag is set off
(to indicate that data was not entered into the field) and the keyboard is unlocked.
If the user then enters data into the field, the modified data tag is set on. If the
next operation is a write operation instead of a read operation, the data typed in by
the user is written over and the modified data tag is set off again.
When allocating resources, the system waits for a predefined time if the resources
are not immediately available. If the resources do not become available within the
time limit, the following happens:
If you are using the ALCOBJ command, the command fails.
If your program is performing a file operation, that operation fails and an error
message is sent to the program message queue.
You may attempt to use the error handling functions of your high-level language to
try the operation again. For example, if an open operation fails because another
job is using the display station associated with the file, you could retry the open
operation later when the display station is no longer being used.
The length of time that the system waits when allocating resources is specified on
the ALCOBJ command and on the WAITFILE parameter of the CRTDSPF
command. If the ALCOBJ command is used prior to running a program, then the
value of the WAITFILE parameter is ignored because resources are available. If
your application has error handling procedures for display station errors occurring
on display files, you should specify a value other than *IMMED to allow the system
to recover from the display station error. The system recovery procedures for the
display station must be completed before your program can recover from errors due
to the allocation of resources.
When a display file is opened, usually one or more display stations are implicitly
acquired, or automatically prepared for I/O operations, for the display file:
Table 3-1. Display Stations Implicitly Acquired When Display Files Are Opened
How the Display File is Other Specifications Display Station Implicitly Acquired
Defined When Opened
Defined with a single *REQUESTER specified Display station at which the user requested the program
display station
*REQUESTER not speci- Display station specified on the DEV parameter of the
fied CRTDSPF, CHGDSPF, or OVRDSPF command
Defined with multiple Opened by a CL All display stations specified on the DEV parameter of
display stations program the CRTDSPF, CHGDSPF, or OVRDSPF command
Opened by any high- The first display station specified on the DEV parameter
level language other than of the CRTDSPF, CHGDSPF, or OVRDSPF command
CL
Defined with no display – None
stations
The value specified on the WAITFILE parameter for the CRTDSPF, CHGDSPF, or
OVRDSPF command is used to determine how long the open operation should wait
for file resources to become available so they can be allocated. If a file resource,
such as a display station, does not become available and the wait time specified
ends, the open operation fails.
Implicitly acquiring a display station when the file is opened results in the following:
The screen is cleared completely and the cursor is placed in the upper-left
corner of the display.
The keyboard is unlocked.
Any display station to be implicitly acquired at the open operation must be varied
on. Switched-line display stations can also be acquired if they are in a vary-on-
pending state. Also, a display station other than the *REQUESTER display station
cannot be acquired if it is signed on.
The system allows only one *REQUESTER display station to be acquired to any
display file, including a multiple-device display file.
If an acquire operation is not successful, the release operation is the only valid
operation to the display station.
The open feedback area contains information about the display file after it has
been successfully opened, including:
Name and library of the display file
Number of rows and columns on the display
Name and library of the file after overrides have been applied
Information about the display station defined for the file
The device definition list part of the open feedback area contains information
about each device attached to the display file.
The I/O feedback area contains information about the I/O operations performed on
the display file after it has been successfully opened. The I/O feedback area has
two sections:
The common feedback area contains information about I/O operations that
were performed on the file. This includes the number of operations and the
last operation.
The file-dependent feedback area contains file-specific information for display
files, such as the major/minor return code and the amount of data received
from a display station.
As operations are performed on the display file, the feedback area is updated to
reflect the latest status.
There is one feedback area for each open file. An exception is for shared files,
which share feedback areas as well as the data path between the program and the
file. For more information on shared files, see “Sharing Display Files in the Same
Job” on page 3-50.
Some high-level languages on the system allow you to access the status and other
information about the file against which operations are being performed.
See Appendix C, “Feedback Area Layouts for Display Files,” for a description of all
the information available from the feedback areas.
Since the information supplied is also available in the open and input/output feed-
back areas for the display station that is implicitly acquired when the file is opened,
the get-attributes operation is most useful for multiple display file applications. For
more information on how to perform the get-attributes operation, see the appro-
priate high-level language manual.
See Appendix C, “Feedback Area Layouts for Display Files,” for a description of all
the information available from the get-attributes operation.
The I/O statements of the high-level languages also refer to record formats, which
are defined using DDS. On output, a record format describes how the data given
by the program is to be presented on the display as well as how the data is to be
processed before presenting it. On input, the record format is used to control some
This section uses DDS keywords that control sending and receiving information
to the display. For more information about specific DDS keywords, see the
DDS Reference.
A record format is added to the table when a write operation that contains the
record format is performed. A record format is removed from the table when a read
operation can no longer be correctly performed for this record.
The active record format table is cleared whenever the display is cleared.
Write Operation
HELLO HELLO
RV2W010-1
If a record is displayed on more than one line, the following rules apply:
The following three figures show how screens can be divided when the CLRL
keyword is not specified:
Record Format A
RSLH199-0
Figure 3-1 (Part 1 of 3). Valid Placement of Records on a Screen When the CLRL
Keyword Is Not Used
Record Format B
RSLH197-0
Figure 3-1 (Part 2 of 3). Valid Placement of Records on a Screen When the CLRL
Keyword Is Not Used
Record Format A
Record Format D
Record Format B
RSLH198-0
Figure 3-1 (Part 3 of 3). Valid Placement of Records on a Screen When the CLRL
Keyword Is Not Used
The following figure shows how screens cannot be divided when the CLRL
keywords is not specified:
(Fields from different record formats cannot be displayed on the same line.)
Record Format A
Record Format B
Record Format A
Record Format A
Record Format B
(Fields from different record formats cannot be displayed on the same line.)
RV2W048-0
Figure 3-2. Wrong Placement of Records on Screen When CLRL Keyword Not Used
The system keeps track of only one of these records at a time. If an output opera-
tion for a record assumed to be at line 0 replaces another record assumed to be at
line 0, you can no longer issue an input operation for the replaced record.
When your program displays a new record format for output or to allow input, the
existing display is usually erased before the new record format is displayed. For
example, if three record formats are on the display at the same time and you write
another record to the display, the three record formats on the display are erased.
Several DDS keywords, such as the OVERLAY keyword, let you control the dis-
playing of records and input fields on input and output operations. For more infor-
mation about these DDS keywords, see “Overlaying and Erasing Record Formats
on a Display” on page 3-10 and “Clearing a Specified Number of Lines” on
page 3-13.
In the following example, the fields are defined for a record format as follows:
In the following illustration, record formats A, B, and C are displayed first. When
record format D is displayed, it replaces record formats B and C.
Lines
1
2
3 Record Format A
4
5
6 Record Format B
7
8
Record Format C
9
10
11
12
RSLH700-0
If record format D did not have the OVERLAY keyword specified for it, the following
would have happened in the previous example:
Record format A would also have been deleted.
Lines 5 through 7 of record format B would have remained on the display. The
data in any fields of record format B overlaid by record format D would have
been changed. (see “Clearing a Specified Number of Lines” on page 3-13 for
more information).
In Figure 3-3, if record formats A and B both contain input fields and appear on the
same display, record format A should be sent to the display first.
You can use the OVERLAY keyword to display information from your application
that needs to be presented together but naturally falls into two or more pieces. For
example, you could use one record format in your application to present information
for a state at the top of a display and another record format to provide the informa-
tion for a particular region within that state.
To place two or more records on the display at the same time, separate the write
operations for your display from the read operations. Then, when you perform
each write operation, the system takes the data from the record that you have pro-
vided it, combines it with the information specified in the record format, and places
it on the display. You can lock the keyboard until the display is ready to perform
the read operations by doing one of the following:
Specify the LOCK keyword on all the record formats
Specify *YES for the Defer Write (DFRWRT) parameter for the display file
You can use multiple record formats when you want to present lists of information
in a subfile to the user. A subfile is a group of records that have the same record
format and are read from and written to a display station in one operation. For
more information about subfiles, see Chapter 4, “Displaying Groups of Records
Using Subfiles” on page 4-1.
To erase certain records from the display when you overlay records, use the
ERASE keyword with the OVERLAY keyword. The following diagram shows the
effect of the OVERLAY and ERASE keywords on an output operation:
Before After
A A
Put D
with OVERLAY D
B
Not Used
C C
Put D A
with OVERLAY
and ERASE C D
Not Used
RV2W032-1
Each programming language provides a different way to set and add to the starting
line number. See the appropriate manual for the language you are using.
The system adjusts the line numbers for each field in the record format by the
specified value minus 1. If the resulting line number exceeds the screen size, the
field is not displayed. In addition, if any part of a field goes beyond the last line on
the screen, the field is not displayed.
The SLNO keyword cannot be used in a record format that contains the record-
level keywords ASSUME, KEEP, USRDFN, SFL, or SFLCTL, or in a display file
that contains the file level keyword PASSRCD.
However, the SLNO keyword may be used with several other DDS keywords:
If the CLRL keyword is used with the SLNO keyword and the CLRL keyword
specifies a number of lines to clear, clearing starts with the starting line number
on the SLNO keyword.
If you use the SLNO(*VAR) keyword with the OVERLAY keyword but without
the CLRL keyword and then write the record several times, each time with a
different starting line number, the previous record is deleted before the new
record is displayed.
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7...
A R ORDENT
A 1 36'ORDER ENTRY'
A 3 2'Enter customer number:'
A CUST 5 B +2
A 5 2'Enter order number:'
A ORDNBR 6 B +2
A 7 2'ITEM NUMBER'
A 7 18'DESCRIPTION'
A 7 44'QUANTITY'
A R LINITM OVERLAY
A SLNO(\VAR)
A CLRL(\NO)
A ITEM 6 ðO 9 2
A DESCRP 2ð O 9 18
A QTYORD 3 ðO 9 44
A R INPFMT OVERLAY
A 23 2'Enter item number:'
A ITMNBR 6 ðI +2
A +5'Enter Qty:'
A QTY 3 ðI +2
Figure 3-4. Sample DDS Source Showing Use of the SLNO(*VAR) Keyword
In this example, the record format ORDENT contains the prompt for an Order Entry
display. When the user enters a customer number and an order number, the fol-
lowing occurs:
1. The program writes the record format INPFMT to the display, which allows the
user to enter an item number and quantity ordered.
2. After the user enters the item number and the quantity, the program retrieves
the description of the item from a file and writes the record format LINITM to
the display.
3. The program writes the INPFMT record format to the display to allow the user
to enter another item number.
The design of this display allows the user to enter the item number and quantity on
the same line. As a line item is entered, the program uses the LINITM record
format to build the order on the display. The SLNO(*VAR) keyword is used so the
program can add a line to the display each time the LINITM record format is
written. The CLRL(*NO) keyword has to be specified on the LINITM record format
so that the previous record is not deleted when a new record is written.
After the user enters two item numbers and quantities, the display looks like this:
à ORDER ENTRY
ð
Enter customer number: 34785
á ñ
The SLNO keyword is most efficient when you want the user to always enter data
on the same line and yet build a display of previously entered records, as shown in
the preceding example. However, for a typical inquiry function where you want to
display more than one record at a time, the use of a subfile is more efficient.
You can also specify the following values to clear specific lines:
Value Lines Cleared
*END All lines from the starting line to the end of the display
*NO Only the lines of the display that are used by the overlapping record
format
You can use the CLRL(*NO) keyword to prevent an overlapped record from being
deleted when the overlapping record is written to the display. If you use this
keyword, any records being displayed that are to be overlapped are not deleted
from the screen; the new record overlays them entirely or partially. There is a per-
formance advantage to using CLRL(*NO) if you have a display that contains con-
stants and data that is repeatedly sent to the screen. By sending the constants as
a separate format and by using CLRL(*NO) for the format containing only the data,
you can reduce the time required to send the record format to the display. For
example:
Lines
1
2
3
Record Format A (lines 1 through 4)
4
5
Record Format B (lines 5 through 8)
6
7 Record Format C (lines 7 through 12)
8
9
10
11
12
RSLH701-0
If CLRL(*NO) is specified on record format C, all fields of record format B not over-
lapped by C remain on the screen when record format C is written to the screen. If
the OVERLAY or PUTOVR keyword were used for this same situation, record
format B would be deleted when record format C is written to the screen because
record format C overlaps record format B.
The following considerations apply to the CLRL keyword when used with other DDS
keywords:
If the CLRL keyword is specified in a record format with input-capable fields,
any input-capable fields in the overlapped records are no longer input-capable.
Fields in all other record formats that are not overlapped remain input-capable.
If you do not want these fields to remain input-capable, you should use the
PROTECT keyword on the record format along with the CLRL(nn) keyword.
Records with the CLRL keyword and with no input-capable fields are assumed
to be at line 0. Thus, if the CLRL(nn) keyword is specified in a record format
that has no input-capable fields, all records already on the display remain on
the display and their input-capable fields remain input-capable. Because
records that start at line 0 are not known to the system, the ROLLUP and
ROLLDOWN keywords do not work for these records. Also, these records may
not be cleared completely when they are overlapped by other records that have
the OVERLAY keyword specified. The lines needed for the overlapping record
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7...
A R RECORD1
A FLD1 1ð I 4 5
A FLD2 1ð I 5 5
A 5 21'Enter employee number'
A R RECORD2A OVERLAY
A FLD3 1 B 5 2
A 6 2'Required field'
A 7 2'Enter 1, 2, or N'
A FLD4 19 O 8 2
A R RECORD2B CLRL(4)
A FLD5 1 B 5 2
A 6 2'Required field'
A 7 2'Enter 1, 2, or N'
A FLD6 19 O 8 2
A R RECORD3 OVERLAY
A FLD7 1ð O 8 15
A . .
A . .
A . .
A FLD8 1ð B 12 4
A R RECORD4 CLRL(\NO)
A FLD9 42 I 11 2
Figure 3-5. Sample DDS Source Showing Difference between CLRL and OVERLAY
The following results occur if the program performs the output operations on the
record format in the following order:
The following example shows a display before a program-controlled roll occurs, and
the same display after a program-controlled roll occurs. The following is specified
in the program:
The starting line number is 8
The ending line number is 18
The number of lines to be rolled down is 6.
Record
format
1
Enter your operator number: Line 8
RSLH165-0
The ALWROL keyword cannot be used with the file level keyword PASSRCD or
with the following record-level keywords: KEEP, ASSUME, USRDFN, SFL, or
SFLCTL.
By sending less data or attributes, you can shorten the response time at the
display, especially for remotely attached displays.
The PUTOVR keyword cannot be specified in a record format that contains the
PUTRETAIN keyword nor can it be used for subfile records.
The display attributes that can be overridden by the OVRATR keyword are:
CHECK(ER) End of Record
CHECK(ME) Mandatory enter
DSPATR(MDT) Set on modified data tag
DSPATR(PR) Protect
DSPATR(BL) Blink
DSPATR(CS) Column separator
DSPATR(HI) High intensity
DSPATR(ND) Nondisplay
DSPATR(PC) Position cursor
DSPATR(RI) Reverse image
DSPATR(UL) Underline
DUP Dup key capable
Figure 3-6. Sample DDS Source Showing Use of the PUTOVR Keyword
The DDS describes a display that allows the user to enter an item number, and to
review the item description, the item price, the warehouse location, and the quantity
on hand:
1. On the first output operation, all fields are sent to the display, and all option
indicators are off. The PUTOVR keyword is ignored because the record is not
already on the screen. On the first output operation, the current field values in
the program are displayed for the output fields. If your program has not set
any of these fields, the values will be whatever the high-level language used to
initialize the output buffer.
If an output-capable field must always have a specific value on the first output
operation, you can use the DFT or DFTVAL keywords to initialize the field to
that value. When used on an output-capable field with the PUTOVR and
OVRDTA keywords the DFT keyword causes the system to place the default
value rather than the program value on the display when the record is first
placed on the display.
2. The user enters an item number. The program sets on indicators 10, 15, 20,
and 25 and issues a write-read operation to display the output fields. On the
write operation, the PUTOVR keyword is in effect because the record is already
on the screen. Because the OVRDTA keyword is specified on the ITMDSC,
ITMPRC, WHSLOC, and QTYOH fields and because their option indicators are
on, these fields are the only data sent to the display.
If the user enters another item number and the data for a field already dis-
played does not change, the program sets off the option indicator and does not
display that field again. For example, assume that for the second item number,
the WHSLOC is the same as for the first item number. On the output operation
to display the information for the second item number, the program sets off
indicator 20. Therefore, the only fields sent to the display are ITMDSC,
ITMPRC, and QTYOH because indicators 10, 15, and 25 are on.
You can use the option indicators on the OVRDTA keyword to control which fields
are sent to the display. If no option indicators are used, all fields with the OVRDTA
keyword specified are sent to the display on each output operation because the
OVRDTA keyword is in effect when the PUTOVR keyword is in effect. In the pre-
ceding example, if no option indicators were used, all four fields would be sent to
the display on each output operation. You can also use the same indicator to
control more than one field.
An alternative design for this same application is to use two record formats and
send the constants to the display in one record format and the variables in the
other record format. You would have to use the CLRL(*NO) keyword to prevent the
record format containing the constants from being erased. However, if the record
format is already on the display, the use of the PUTOVR keyword provides the
most efficient approach.
The following examples illustrate how to use the PUTOVR keyword for efficient
coding:
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7...
A R PROMPT
A CFð3(91 'Return')
A PUTOVR
A ERASEINP
A OVERLAY
A 1 28'Efficient Coding Example'
A 3 2'FLD1'
A FLD1 5 I 3 7
A 5 2'FLD2'
A FLD2 5 5 7
A OVRDTA
A 7 2'FLD3'
A FLD3 5 7 7
A 15 OVRDTA
A 9 2'FLD4'
A FLD4 5 9 7
A OVRDTA
A 16 DSPATR(HI)
A 11 2'FLD5'
A FLD5 5 11 7DFT('ABCDE')
A OVRDTA
A 17 DSPATR(HI)
A 13 2'Constant 1'
A OVRATR
A 18 DSPATR(BL)
A 15 2'Constant 2'
A OVRATR
A N19 DSPATR(ND)
A 17 2'Constant 3'
A 2ð OVRATR DSPATR(RI)
Figure 3-7. Sample DDS Source Showing Efficient Use of PUTOVR Keyword
The following example shows how the PUTOVR keyword can be used for an appli-
cation in which the user enters some information common to a group of records
and then repeatedly enters detailed information relating to specific records in the
group.
Figure 3-8. Sample DDS Source Showing Another Use of PUTOVR Keyword
To erase all unprotected input-capable fields that have their modified data tags on,
specify *MDTON for the ERASEINP keyword. To erase all unprotected input-
capable fields whether their modified data tags are on or not, specify *ALL for the
ERASEINP keyword.
The ERASEINP keyword can improve response time because it clears fields rather
than sends blanks to the display. If the fields erased at the display do not have
their modified data tags set on for the next read operation, data is returned for
those fields from the input save area. This is data saved by the system from the
previous return of the field from the display station.
You can use the INZINP keyword at the record level with ERASEINP(*ALL) and
PUTOVR to initialize the input save area without sending data for the cleared fields
to the display.
To reset only the modified data tags of the unprotected fields, specify *UNPR for
the MDTOFF keyword. To reset the modified data tags of all input-capable fields,
specify *ALL for the MDTOFF keyword.
Using the PUTRETAIN keyword at either the record format level or the field level
can cause fields from this record which were previously written to the display to
remain on the display even if they are not selected for this write operation. To
avoid this, you can use the PUTRETAIN keyword at the field level and define the
field twice: once with option indicators as you want it to appear in the display, and
once with no option indicators and as a constant with a value of blanks. If the first
field is not selected, the second field is. The second field is displayed so the
blanks erase the contents of the field that is not selected.
Note: The ERRMSG and ERRMSGID keywords function as if the PUTRETAIN
keyword were specified at the record format level. That is, no fields are
sent to the display, no field attributes for other fields are changed, and no
command keys are changed when the ERRMSG and ERRMSGID keywords
are in effect.
The following is an example of the PUTRETAIN keyword used at the record format
level. The following DDS describes a student search menu having three options.
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7...
A R SELECT OVERLAY
A PUTRETAIN ERASEINP
A N44 1 2'STUDENT SEARCH MENU'
A N44 3 1ð'1. By number'
A 1ð DSPATR(HI)
A N44 4 1ð'2. By name'
A 11 DSPATR(HI)
A N44 5 1ð'3. By address'
A 12 DSPATR(HI)
A N44 1ð 2'Select the number of the item to +
A search by:'
A INPUT 1 I 1ð 47
A 44 DSPATR(RI)
Figure 3-9. Sample DDS Source Showing Use of the PUTRETAIN Keyword
The following is an example of the PUTRETAIN keyword used at the field level.
Here, the PUTRETAIN keyword is used to keep input that is not valid and to reduce
the number of characters sent to the display. The following DDS describes a
display containing an item’s name, color, shape, and size, and asks for quantity.
The user can change the values for color, shape, and size.
Figure 3-10. Sample DDS Source Showing Use of the PUTRETAIN Keyword
If you specify the default of DFRWRT(*YES) for the file, the program regains
control after the output record is processed. The program can then use the record
area where the output was stored to start processing the next write or write-read
operation. The data is actually sent to the display only when a read or write-read
operation is issued or when the FRCDTA DDS keyword is in effect for a write-only
operation.
The DFT keyword can be used with constant, input, output, and output/input fields
and cannot be optioned. When it is used with output or output/input fields the
OVRDTA and PUTOVR keywords must also be specified. If the record is not on
the display, this combination of keywords will cause the default value to be placed
on the screen. If the record is already on the display, the PUTOVR keyword is in
effect and the data from the program appears on the display rather than the default
value.
The DFTVAL keyword can be used only on output and output/input fields and can
be optioned. If it is in effect on an output operation, the value from the keyword is
placed in the field, rather than the value from the program. If the record is on the
display and the PUTOVR and OVRDTA keywords are in effect, the program value
is used rather than the default value.
The DSPMOD keyword is only valid when both *DS3 and *DS4 are specified on the
DSPSIZ keyword. This keyword is valid only at the record level. Option indicators
are allowed. The DSPMOD keyword may not be duplicated in a record.
Note: The capability to display in 27 by 132 mode is allowed on 3180-2, 3197,
3477 Models FA, FC, FD, FE, FG, FW, and 3487 Models HE, HD, HW, HC
display stations attached to a local display station controller, or remotely
attached to a 5294 or 5394 controller. The DSPMOD keyword is ignored
unless these controllers are used.
For example, the following DDS would display RECORD1 in 27 by 132 mode, and
RECORD2 in 24 by 80 mode (the default mode set up by the DSPSIZ keyword).
RECORD3 will be displayed in 27 by 132 mode if option indicator 03 is on, or in 24
by 80 mode if option indicator 03 is not on.
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7...
A DSPSIZ(\DS3 \DS4)
A R RECORD1 DSPMOD(\DS4)
A R RECORD2
A R RECORD3
A ð3 DSPMOD(\DS4)
Figure 3-11. Sample DDS Source Showing Use of the DSPMOD Keyword
The use of the DSPMOD keyword can cause the display mode to be changed dra-
matically. Caution should be used when specifying the DSPMOD keyword. When
a record with DSPMOD active causes the mode to be changed, all records cur-
rently on the display are cleared and deleted from the active record table. The
record with DSPMOD active is then sent to the display. The mode for this record is
maintained on the display as long as the DSPMOD keyword is active. Setting
DSPMOD off or a write operation to another record without DSPMOD causes the
display mode to be placed back in the primary display screen size for the display
station.
Using the previous sample DDS source, the DSPMOD keyword gives the following
results if records are written to the screen in the following order:
RECORD1 is displayed in *DS4 mode.
The display screen is cleared and RECORD2 is displayed in *DS3 mode.
If indicator 03 is off, RECORD3 is displayed in *DS3 mode. RECORD2
remains on the display if the OVERLAY keyword is specified.
If indicator 03 is on, RECORD2 is cleared and RECORD3 is displayed in *DS4
mode.
The following keywords are ignored if the display modes have changed:
On the record-level keyword CSRLOC, you can specify the names of two 3-byte
zoned decimal hidden fields that contain the exact line and position for the cursor
location. With the CSRLOC keyword, you can position the cursor outside the
record you are displaying.
The field-level keyword DSPATR(PC) positions the cursor at the first position of the
field after the record is written. However, if the OVERLAY keyword is specified at
the record level, the cursor position may be lost after subsequent write operations.
Note: The cursor is not positioned if the keyboard is unlocked before the output
operation.
If both the CSRLOC and DSPATR(PC) keywords are specified, the cursor is posi-
tioned by the CSRLOC keyword. If several fields have DSPATR(PC) keyword
specified, the cursor is positioned at the first field for which the DSPATR(PC)
keyword is specified.
If the CSRLOC and DSPATR(PC) keywords are not specified, the cursor is posi-
tioned at the first input-capable field on the display. If there is no input-capable
field, the cursor is positioned in the upper-left corner of the display. However, if the
CSRLOC and DSPATR(PC) keywords are not specified for records containing
input-capable fields, the cursor position may be lost if the record is suspended and
then restored. For example, the cursor position may be lost if the F1 (Help) key is
pressed after the record is displayed.
The field specified for the mode parameter is defined in the record format as a 1
character (A in position 35) hidden field (H in position 38). The field is returned
with a value of 0 if the subfile is folded and with a value of 1 if the subfile is trun-
cated. If SFLDROP (subfile drop) or SFLFOLD (subfile fold) is not specified on the
SFLCTL (subfile control) record, the value is always returned as 0.
Neither the input nor the output buffer is changed during write operations.
The invite operation is done by performing a write operation using a record format
with the INVITE DDS keyword in effect. Refer to the appropriate high-level lan-
guage manual to determine how to perform a write operation and how to use indi-
cators to control the INVITE DDS keyword.
Once a display station is invited, the valid operations to receive data from the
display station are the read-from-invited-devices operation and the read(wait) oper-
ation directed to a specific display station. Cancel invite is also a valid operation to
an invited display station.
Before a display station can be used for I/O operations in a multiple-device display
file, it must be acquired to the file. A program can direct the invite operation to any
display station currently acquired for the file.
If you want to invite a display station but have no data to send to it, perform the
output operation with a record format which contains the INVITE DDS keyword
optioned on but has no output-capable fields.
Multiple-display station display files are supported in ILE RPG*, ILE COBOL*, ILE
C*, and CL.
A read operation can also be directed to a specific display station. This operation
will not complete until the specified display station responds with data. The display
station need not be invited for the read operation, but, if it is, the program will wait
for input and the display station is no longer invited.
The read-from-invited-devices operation only accepts data from display stations
which are currently invited.
If more than one display station acquired to the display file has an invite out-
standing, a read-from-invited-devices operation will return the next available
record from one of the invited display stations. If records are received from
more than one display station before the read-from-invited-devices operation,
the other records will be kept for a subsequent read-from-invited-devices opera-
tion or for a subsequent read(wait) operation directed to a specific display
station.
When a display station has responded and the input is received by the read-
from-invited-devices operation, that display station is no longer invited. It can
be invited again by another invite operation but this should not be done until all
the record formats on the display with input-capable fields have been read.
A record format cannot be specified on the read-from-invited-devices operation.
The record format returned from a display is the same as the last record format
written to the display station.
The timing function associated with the WAITRCD parameter may not force an
end to the wait if the system is processing the Help key. In the following
When a record containing the INVITE keyword is sent to the display, the operation
is handled as a write-read operation with a no-wait option. The INVITE DDS
keyword is ignored on the write-read operation.
Program
HELLO
.
.
.
.
.
Returns data
to program
Unlocks
keyboard Locks keyboard
(If locked) after user action RV2W011-2
All fields received from the display whether they are part of the selected record or
not are handled in this way.
If any field validation errors are detected, a message is sent to the user so that the
error can be corrected. This process is repeated until there are no longer any
errors. The save area for the requested record is then copied into the input buffer.
Note: To process input data for a read operation with no record format name,
display station support uses the last record written to the display that con-
tains at least one of the following:
Input-only fields
Output/input fields
Hidden fields
If no such format is on the display, display station support uses the last
format written to the display that did not contain these kinds of fields, for
example, an output-only record that specifies valid command keys. If no
such record exists on the display, an error message is returned to the
program.
All other fields or keywords are processed as if they were selected on an output
operation.
Normally, input fields are not erased until after the keyboard is unlocked. On a
read operation, input fields are erased after the keyboard is unlocked only if the
UNLOCK keyword is specified and the GETRETAIN keyword is not specified.
For the 5250 display station, the read operation with the UNLOCK keyword in effect
results in the following:
1. The 5250 display station does a hardware validity check on the fields. If no
errors are found, the following is done:
a. If the UNLOCK keyword is specified without the GETRETAIN keyword or if
the UNLOCK(*ERASE) keyword is specified, all input-capable fields that
are changed are cleared.
b. If the UNLOCK keyword is specified with the GETRETAIN keyword or if the
UNLOCK(*MDTOFF) keyword is specified, all modified data tags (MDTs)
are reset.
c. If the UNLOCK(*ERASE *MDTOFF) keyword is specified, all input-capable
fields that are changed are cleared and their MDTs are reset.
d. The cursor is repositioned to the field where the user can enter the next
record.
e. The keyboard is unlocked.
2. The system validity checks all the fields for all records on the display. If errors
are detected, normal error retry is performed. A user could be typing into the
next record when an error message is displayed.
Note: The error message could refer to data that is no longer on the display
because the data was erased.
Notes:
1. If an application program detects input errors and sends error messages to the
display, the messages may refer to input that has been typed over.
2. If the CHANGE keyword is specified and either the UNLOCK keyword is speci-
fied without the GETRETAIN keyword or with the UNLOCK(*ERASE) keyword
is specified, the associated response indicator is set on for the next input
record.
3. When a read operation with the UNLOCK keyword (and without the
GETRETAIN keyword) or the UNLOCK(*ERASE) keyword is used for a record
while a subfile is on the screen, subfile records may be returned to the program
on a subsequent get-next-changed operation to the subfile even though the
user did not enter data into the subfile record. It is recommended that you use
the UNLOCK(*ERASE *MDTOFF) keyword instead of the UNLOCK keyword
(without the GETRETAIN keyword) or the UNLOCK(*ERASE) keyword. If you
must use either of the latter, you should make sure that your high-level lan-
guage program compares for blanks to handle the possibility that an unmodified
field containing all blanks is returned to the program.
Before After
B Not Used
Get A
with INZRCD
D A
C Not Used
Get E
with INZRCD Not Used
and UNLOCK
E
Not Used
RV2W033-1
In either case, if errors are detected, a message is displayed informing the user of
the error so that it can be corrected. If you choose the second method for
detecting errors, see “Creating and Displaying Your Own Messages” on page 8-1
for information on how your program can display error messages. The rest of this
section gives more information on the first method, when the system detects the
errors before passing the data to your program.
If your controller is installed with the self-check feature (see the 5250 Functions
Reference), the controller performs validity checking for the CHECK(M10F) and
CHECK(M11F) keywords. Errors are detected when you attempt to move the
cursor from the input field rather than when you press the Enter key or a Command
Attention key. The Operator Error Code ðð115, rather than a system-supplied or
user-specified message, is displayed in the lower left corner of the display. If the
USRDSPMGT keyword is also specified, CHECK(M10) and CHECK(M11) function
as CHECK(M10F) and CHECK(M11F).
When you specify validity checking for records that are part of a subfile, each field
in the record is validity checked before it is placed in the subfile from the display.
You cannot roll the records until all fields in error are corrected.
The system only performs validity checking on a field if the field is changed by the
user or if its modified data tag (MDT) is set on using DSPATR(MDT).
Notes:
1. If the user presses the Dup key, any validity checking for a field is ignored.
The DUP keyword lets the user use the Dup key.
2. The value for a numeric field for which the COMP, VALUES, or RANGE
keyword is specified is aligned based on the decimal positions specified for the
field and filled with zeros where necessary. If decimal positions were not
entered for the field, the decimal point is assumed to be to the right of the digit
to the extreme right in the value. For example, for a numeric field with length
For a local 5250 display station (a display station attached through the local display
station controller), you can specify as many as 256 input fields. Also, if either
DSPATR(OID) or DSPATR(SP) is specified, this maximum is reduced by 1 for each
three instances of these keywords. In addition, any use of the magnetic stripe
reader on a local 5250 display station also reduces the maximum number of fields.
The maximum number of fields is calculated as follows:
If the maximum number of input fields is exceeded in any of the preceding cases,
message CPF5192 is issued to the using program.
When a subfile record is displayed, the actual number of input-capable fields sent
to the display is the number defined in the record multiplied by the number of
subfile records that are displayed.
For remotely attached 3270 displays, the limitation is 126 input fields.
For ASCII displays attached through a protocol converter, the limitations are the
same as the controller to which they are attached.
The hex 60 is treated as a true minus sign if it is to the right of the least significant
digit.
The hex D zone is treated as a minus sign if it is the least significant digit. In
addition, it is treated as a significant digit with a value equal to the numeric portion.
Imbedded blanks (between significant digits) are changed to zeros before decimal
alignment.
The system saves the contents of input-capable fields for records that are active on
the display. This saved data is passed to the user program and can be altered by:
Initializing the data with a constant on a write operation. A field can be initial-
ized with the value specified in a DFT keyword.
Entering data through directly typing the data in or using a light pen to select
data. (The MDT for a field can be set on to simulate user input.)
Entering data from a program on a write operation. This applies to output/input
fields (and output-only fields for subfiles).
Initializing the data with blanks (character fields) or zeros (numeric fields) on an
output operation for the same record unless the PUTRETAIN keyword is speci-
fied. This applies to input-only fields.
When you work with only one record format, this write-read style of working with it
is the most common. On the write portion of the operation, you provide the data
that the user will see. On the read portion, you receive data back that the user has
entered or changed.
Releasing a display station also implicitly cancels any input requests directed to the
display station. If the display station has data available, the data is lost.
Operation Keyboard
Write The keyboard is unlocked by default. If the LOCK keyword is
specified, the keyboard is not unlocked.
Write-Read The keyboard is unlocked.
Every time the keyboard is unlocked, the cursor is repositioned. In some cases,
many write operations between read operations can cause erratic cursor move-
ment. If the user starts typing before the last write operation, the cursor is reposi-
tioned when the keyboard is unlocked and this can cause confusion for the user.
You can prevent this by using the LOCK keyword. By using the LOCK keyword on
each write operation but the last, the keyboard remains locked until the last write
operation. This avoids erratic cursor movement, but prevents the user from starting
to type data.
Normally, a user action, such as pressing a valid command key, locks the key-
board.
To specify that the system unlock of the keyboard on the next input operation
should not occur, specify the retain lock status (RETLCKSTS) keyword. This
keyword prevents the loss of data when the input operation is started and data is
already being transmitted from the keyboard.
Note: Use the RETLCKSTS keyword only when the keyboard is already unlocked.
For the cursor positioning keyword to take effect, the keyboard must go from the
lock condition to an unlocked condition. That is, if the keyboard is unlocked prior to
the write operation, the cursor positioning keyword does not take effect immediately
on the write operation. However, there is one exception. If the keyboard is tempo-
rarily locked during an output operation, the cursor positioning keyword will be in
effect if the output operation unlocked the keyboard at the end.
When a display file is suspended, the information on the display can be saved
automatically by the system if you specify *YES for the RSTDSP parameter on the
Create Display File (CRTDSPF) or Change Display File (CHGDSPF) command.
The contents of a display file can then be restored when an I/O operation is later
performed to that display file. If *NO is specified for the RSTDSP parameter, the
application program needs to rewrite the display to show it again.
The RSTDSP parameter lets you overlap a program call, keyboard input, and file
I/O processing, as shown in the following example:
Display File
Program 1
DSPFILY
Write . . . . . . . . .
Write . . . . . . . . .
RCD Y1
Read . . . . . . . . . .
Display File
DSPFILX
RCD X1
RV2W046-0
.1/ Program 1 issues a write operation to record format RCD Y1 in display file
DSPFILY, which activates display file DSPFILY.
.2/ Program 1 issues a write operation to record format RCD X1 in display file
DSPFILX, which suspends display file DSPFILY and activates display file
DSPFILX. If RSTDSP(*YES) is specified for display file DSPFILY, the data
displayed on the display station is saved. If RSTDSP(*NO) is specified
instead, the data is lost and the program needs to write the information in RCD
Y1 again to show it.
.3/ Program 1 issues a read operation to record format RCD Y1, which suspends
display file DSPFILX and restores display file DSPFILY. If the RSTDSP(*YES)
parameter is specified for DSPFILY, then the data displayed on the display
station when DSPFILY is suspended can be restored.
When RSTDSP(*YES) is specified for a display file, and you are suspending and
restoring that display file because of operations to another display file, some dis-
plays may appear to flash on the screen briefly. If a display file has a record on
the display and an I/O operation is done to a second display file, the first file is
suspended and its screen contents are saved. When returning to the first display
file, the display file and its screen contents are restored. If a write operation is
You should specify *YES for the RSTDSP parameter in the following situations:
When you are writing a record that has the following keywords in effect:
– CLRL
– OVERLAY
– PUTOVR
– PUTRETAIN
– ERRMSG
– ERRMSGID
You must ensure that the records that are on the display are the records that
these keywords apply to. If the display file is suspended, the data must be
restored to the screen so that the write operations to the record formats that
use these keywords are valid.
When you perform multiple read operations to a record format on the display
without intervening write operations. If you should call a program while pro-
cessing the data that has been read and that program presents a display of its
own, the subsequent read operation done by your program restores the display
properly.
Saving and displaying data again requires significant system and data transmission
overhead. For a 1920-character 5250 display station, approximately 3000 charac-
ters are transmitted each time the display data is saved displayed again. To avoid
this overhead, write your application programs to do the following:
Make the programs in the application share the same copy of the display file
among themselves by specifying SHARE(*YES) on the display file.
Perform complete display rewrites each time the programs in the application
write to the display. A complete display rewrite occurs when a record is written
to the screen and the OVERLAY keyword is not used or implied.
Note: If complete display rewrites are not performed and if new input fields,
occupying positions on the screen above the currently displayed fields,
are sent to the display, the program receives a message (CPF5192).
This occurs because the 5250 display station requires that new input
fields sent to the display appear in lower positions than input fields cur-
rently on the display. In normal operations, data management performs
field processing to satisfy the 5250 requirement. See “Avoiding Record
Format Problems on the 5250 Display Station” on page 3-45.
When one program that uses a display file with the SHARE(*YES) parameter speci-
fied calls another program that uses the same display file, the display file is not
suspended even though both programs have opened the file. If the display file is
not shared, the system maintains separate copies of the display file for each
program and suspends and restores the display files separately.
Since system programs do not specify file sharing, you should specify
RSTDSP(*YES) on the CRTDSPF or CHGDSPF command if your program con-
tains a display file and calls system functions that present displays. System func-
tions that break into the normal path of an application, however, such as the
To display saved display data again after a close operation is issued to a sus-
pended file, specify the KEEP keyword for a record format in the saved display
data.
The displays produced and the DDS for the record formats follow:
DETAIL
record
format
RSLH166-0
DETAIL
record
format
RV2W047-0
Assume that the DETAIL record format is on the screen, and the user is entering
data for a subscriber. Because the user does not know the state code for the state
to be entered, he or she presses the CA01 key.
Because the STATES record format is physically above the DETAIL record format,
the system must resend the field formats for the input fields in the DETAIL record
format. (The system would also resend the field formats if the STATES record
format contained only output-only fields and was replacing the RCDA record format.
In this case, the field formats are resent because a record format (RCDA) with a
specific cursor location is being removed.)
The following problems occur because the system resends the field formats for the
DETAIL record format:
All the input fields in the DETAIL record format lose their modified data tags
(MDTs). When the program does the next read to the DETAIL record format
(for example, when the user presses the Enter key), none of the fields typed in
before the user pressed the CA01 key are returned to the program. The
program cannot retrieve that typed data even though the data still remains on
the screen.
To avoid this problem:
– Avoid using a CAnn key.
– If you must use a CAnn key, avoid writing the format containing the CAnn
key to the screen and then writing another format that is physically placed
above the first format if both formats contain input-capable fields.
– Avoid writing a format to the screen that causes the removal of a format
containing a cursor location specification.
The highlight attribute for the constant fields (except Last name) is lost. The
system does not resend the field format for output-only fields. However, if an
output-only field immediately follows an input-capable field so that the leading
attribute character for the output field is in the same position as the ending attri-
bute character for the input-capable field, the attribute of the output field reverts
to normal.
To avoid this problem:
– Do not specify an output-only field with special display attributes imme-
diately following an input-capable field.
– If you must specify an output-only field with special display attributes imme-
diately following an input-capable field, avoid writing that format to the
screen and then writing another format that is physically placed above the
first format if both formats contain input-capable fields.
– Avoid writing a format to the screen that causes the removal of a format
containing a cursor location specification.
Note: The system needs to resend the attributes for the input-capable fields when
a subfile is rolled from a full page to a partial page, a partial page to a full
page, or a partial page to a partial page. The two problems mentioned
above may also occur when resending the field attributes.
The release operation can also be used to recover from errors from acquire, I/O,
and release operations. After a display station is released, it must be acquired
again with another acquire operation before any I/O operations can be directed to
it. If a program is written to recover from errors by releasing a display station and
then acquiring it again, a value other than *IMMED should be specified on the
WAITFILE keyword. This is because it takes the system a short time to transfer the
allocation of a display station description from a job, to the subsystem, and back
again.
If the display file is not being shared, the close operation also implicitly releases all
the display stations acquired to the file and deallocates any file resources allocated
by the open operation or the acquire operation.
If the close operation is successful, the only valid operation to the file is open. If
the close operation fails, the program should issue the close operation a second
time.
Table 3-6 (Page 1 of 2). Display File Operations Supported by the Operating System and the Equivalent High-
Level Language Commands
BASIC ILE C CL ILE COBOL ILE RPG
Operation Statements Functions Commands Statements Operations
Open OPEN fopen, _Ropen OPEN OPEN
Acquire _Racquire ACQUIRE ACQ
Release _Rrelease DROP REL
Get Attributes _Rdevatr ACCEPT POST
Write WRITE fwrite, SNDF WRITE WRITE,
_Rformat, _Rpgmdev, output
_Rwrite specifications
Read(wait) READ fread, RCVF WAIT(*YES) READ Primary or
_Rformat, _Rpgmdev, secondary
_Rreadn file input,
READ
Read READ RCVF WAIT(*NO) READ
Cancel Read ENDRCV
If an error occurs during an I/O operation to a display file, the major/minor return
code field in the file dependent I/O feedback area may be used to help diagnose
the error and determine the error recovery action needed.
Using the SHARE(*YES) parameter lets an open data path (ODP) be shared
between two or more programs running in the same job. An open data path is the
path through which all input/output operations for the file are performed. It con-
nects the program to a file. If not specified otherwise, every time a file is opened a
new open data path is built. You can specify that if a file is opened more than
once and an open data path is still active for it in the same job, the active ODP for
the file can be used with the current open of the file, and a new open data path
does not have to be created. This reduces the amount of time required to open the
file after the first open, and the amount of main storage required by the job.
SHARE(*YES) must be specified for the first open and other opens of the same file
for the open data path to be shared. Specifying SHARE(*YES) for other files
depends on the application.
Note: Most high-level language programs process an open or a close operation
independent of whether or not the file is being shared. You do not specify
that the file is being shared in the high-level language program. You indi-
cate that the file is being shared in the same job through the SHARE
parameter. The SHARE parameter is specified only on the create, change,
and override file commands. Refer to your appropriate language manual for
more information.
For display files, the display station remains in the same state as the last I/O opera-
tion.
For display and ICF files, programs other than the first program that opens the file
may acquire more display or program display stations or release display or program
display stations already acquired to the open data path. All programs sharing the
file have access to the newly acquired display stations, and do not have access to
any released display stations.
If the program closing the file is the last program sharing the file, then the close
operation performs all the functions it would if the file had not been opened with the
share option. This includes releasing any allocated resources for the file and
destroying the open data path.
The function provided by this last close operation is the function that is required for
recovering from certain run-time errors. If your application is written to recover from
such errors and it uses a shared file, this means that all programs that are attached
to the file when the error occurs will have to close the file. This may require
returning to previous programs in the program stack and closing the file in each
one of those programs.
RV2W049-0
This chapter uses DDS keywords to describe subfiles. For more information
about specific DDS keywords, see the DDS Reference.
Changing information, which allows the user to change one or more of the
records in the subfile. The following sample display allows the user to change
the QTY and SHIP values:
Input only without validity checking, which allows the user to enter data as fast
as possible; or input only with validity checking, which allows the user to enter
data that is validity checked by the system or by the program for valid entries.
The following sample display shows subfiles for input only:
Combination of tasks, which can, for example, allow the user to change data as
well as to enter new records. In the following example, the user can change
existing names and addresses or enter new records.
RV3W077-0
The DDS keywords can be specified in any order; however, the subfile record
format (SFL) must precede the subfile control record format (SFLCTL).
You can use option indicators to condition many of the DDS subfile keywords.
All named fields in a subfile record, including fields that are not input-capable, are
returned to the program.
If any input data validity checking is specified for the subfile record, the validity
checking is performed before any roll function is performed. If the data fails validity
checking, the roll function is not performed.
When the relative record number of the record written to the subfile equals the
subfile size, the system sends the program a CPF5003 message indicating that the
subfile is full. (Not all records need to be active; that is, this message is sent even
if the only record written to the subfile was the last record in the subfile.) If the
subfile size does not equal the page size and the program then writes more records
to the subfile, the system automatically extends the subfile as additional records are
added. The program is not notified that the subfile has been extended. (A subfile
cannot be extended past 9999 records.) Also, if the subfile size equals the page
size, the program is not notified that the subfile is full unless the last record written
to the subfile occupies the last line available on the subfile display area.
Figure 4-1 on page 4-10 illustrates the order in which some of the DDS keywords
used for subfile control are processed at run time:
No No
No No
No No
No No
Exit
RSLH181-0
I/0 Area
RV2W029-3
2. Send the subfile to the display in one output operation using the subfile control
record format.
3. After the user reviews the records, changes them, or enters new records
(depending on the function of the subfile), read the subfile control record
format.
RV2W030-2
4. Process each record in the subfile individually, updating the database file or
writing new records to the database file as required. If the function of the
subfile is to update records, the program need only process the changed
records by using the READC operation in ILE RPG or the Read Subfile Next
Modified verb in ILE COBOL.
File
Program
Subfile
Data-
base
File
I/0 Area
RV2W031-2
A display file that uses subfiles may display only a portion of a subfile at a time.
The portion that is displayed is called a subfile page. The data entered into an
input-only field on a subfile display goes to the subfile when a function key (such as
a Roll key) is pressed. The field then displays a value in the subfile, and what
happens when the Enter key is pressed depends on the application code.
Note: In a READC operation in ILE RPG, the data is moved from the subfile to
the program. It does not remove it from the subfile, and it will continue to
be displayed in the input-only field as if the fields were initialized to that
value. Otherwise, it would appear that the subfile was empty when the data
was actually there.
The valid requests that can be made to a subfile depend on whether the request is
made to the subfile record format or the subfile control record format.
The location must be a valid relative record number in the subfile. The minimum
relative record number is always 1. If the subfile size equals the subfile page, the
maximum relative record number value is the subfile size value. If the subfile size
is greater than the subfile page, the maximum relative record number value is 9999
because the system automatically extends the subfile as required. In addition, the
relative record number cannot be the number of an active record already in the
subfile. The relative record number is ignored when field selection is specified for
the subfile record.
When a put-relative operation adds a record at the last record location (the subfile
size value) in the subfile, a subfile-full condition occurs (message CPF5003). Both
ILE RPG and ILE COBOL have special support for notifying the application
program of this condition. See the appropriate high-level language manual.
The contents of input-capable fields without a default value specified are handled
as follows:
Numeric fields are initialized to zeros
Character fields are initialized to blanks
Floating point fields are initialized to nulls
The active record must have been read before the update operation by a get
request (either get relative or get-next-changed). No other I/O operations may be
performed on the subfile to be updated between the read and the update. In addi-
tion, the subfile being updated may not be displayed again between the read and
the update (for example, using subfile roll or SFLDROP processing).
Notes:
1. Some high-level languages do not allow I/O to any format in the display file
between the read and the update of a single subfile record in the display file.
Refer to the documentation for the high-level language you are using for more
information.
2. If field selection is specified for the subfile record, only the fields that were
selected when the record was placed in the subfile can be updated. Selecting
different fields will cause results that cannot be predicted.
The location must be a valid relative record number in the subfile. The entire
record, including response indicators (defined at the file level and on fields in a
subfile record), input, output, output/input, and hidden fields, is passed to the
program, the relative record number is placed in the input/output feedback area,
and the record is no longer identified as a changed record. Response indicators
defined at the file level are always returned as off. Response indicators defined on
fields in a subfile record, such as the BLANKS or CHANGE keywords, are returned
as on or off depending on the information in the field at the time the get operation
was done.
If the record specified on the get-relative operation is not active, a not valid record
number condition occurs (message CPF5020). This condition becomes a record-
not-found condition in some high-level languages. See the appropriate high-level
language manual.
Notes:
1. The get-relative operation and get-next-changed operation both update the rela-
tive record number in the input/output feedback area. Subsequent get-next-
changed-record requests retrieve sequentially changed records greater than
this relative record number.
2. The get-relative and get-next-changed operations do not process input data for
overlapping fields in a subfile. The record returned to the program contains the
data already existing in the buffer prior to the read operation for overlapped
fields. If this is a problem, use the subfile initialize function to ensure all subfile
fields are cleared.
If the get-next-changed operation is used as the first read operation, the first
changed record in the subfile is read. The entire record, including response indica-
tors (defined at the file level and on fields in a subfile record), input, output,
output/input, and hidden fields, is passed to the program, the relative record
number is placed in the data management feedback area, and the record is reset to
a not changed record. Response indicators defined at the file level are always
returned as off. Response indicators defined on fields in a subfile record, such as
the BLANKS or CHANGE keywords, are returned as on or off depending on the
information in the fields at the time the get operation was done.
If there are no more changed records in the subfile, a message (CPF5037) indi-
cating that the last changed record has already been retrieved, is sent to the
program. See the appropriate high-level language manual for a description of how
this condition is reported to your program.
Notes:
1. The get-relative operation and get-next-changed operation both update the rela-
tive record number in the input/output feedback area. Subsequent get-next-
changed-record requests retrieve sequentially changed records greater than
this relative record number.
2. The get-relative and get-next-changed operations do not process input data for
overlapping fields in a subfile. The record returned to the program contains the
data already existing in the buffer prior to the read operation for overlapped
fields. If this is a problem, use the subfile initialize function to ensure all subfile
fields are cleared.
You can control the write operation using the following DDS keywords:
SFLDSP Display the subfile.
SFLDSPCTL Display the subfile control record.
SFLCLR Clear the subfile of active records.
SFLDLT Delete the subfile.
SFLINZ Initialize the subfile with active records, or if the SFLRNA keyword
is specified, with inactive records. When the subfile is initialized, all
option indicators in the subfile record are assumed to be off.
SFLEND Notify the user when the last available record is displayed.
SFLRCDNBR Display the specified page of the subfile.
Note: These keywords are described under “Describing Subfiles in Your DDS
Source” on page 4-3.
Table 4-2 (Page 1 of 2). Subfile Operations Supported by the System and Equivalent HLL Commands
ILE C ILE RPG
Operation Function Operation ILE COBOL Statement BASIC Statement
Put Relative _Rwrited WRITE, WRITE SUBFILE WRITE REC =
output specifi-
cations
Update _Rupdate UPDAT REWRITE SUBFILE REWRITE REC =
Get Relative _Rreadd CHAIN READ SUBFILE READ REC =
Record 1
Record 2
Record 3
Record 4
.
.
.
.
RSLH702-0
Record A
Record B
Record C
Record D
Record E
RSLH704-0
Figure 4-4. Horizontally and Vertically Displayed Subfiles Displayed at the Same Time
If a subfile is larger than the space allowed for the subfile on the screen, the user
can roll the display from one group of records in the subfile to another. Each group
of records displayed at the same time is called a page. When you create a display
file with a subfile, you must specify the size of the page for a subfile by specifying
the number of records in the page (SFLPAG keyword). Usually page size is based
on the number of lines available on the display. You must also specify the size of
the subfile by specifying the number of records in the subfile (SFLSIZ keyword).
Page size and subfile size can be the same; that is, all records in the subfile fit on
one page. When page size equals subfile size, variable-length subfile records are
supported. One record can take up only a single line while another record can take
up more than one display line. Each record is placed in the first record position
available in the subfile; this position is always a new line. In addition, the
SFLDROP and SFLROLVAL keywords are ignored by display station support when
page size equals subfile size.
For more information on page size and subfile size, see “Specifying Subfile Size
Equal to Page Size” on page 4-19 and “Specifying Subfile Size Not Equal to Page
Size” on page 4-21.
When changing display modes, the display is cleared but the data is not cleared
from the subfile. SFLDSP or SFLDSPCTL must be in effect for DSPMOD to be
active in the control record.
In the previous example, if the user’s program turns indicator 10 off and issues a
write-read operation to the subfile control record format (SFLCTLR), the subfile is
displayed as follows:
In 27 by 132 (*DS4) mode, because indicator 10 for the DSPMOD keyword is
off.
Horizontally, because SFLLIN is specified. The SFLLIN value indicates the
number of bytes between records. Because each record is 30 bytes long and
the space between each record is 4 bytes long, four records can be displayed
on one horizontal line, (4 x 30) + (3 x 4) = 132 bytes. The subfile is displayed
on three lines because SFLPAG(12) is specified.
The following example shows the subfile displayed in *DS4 mode.
If the user presses the Enter key, control is returned to the user’s program. If the
user’s program turns on indicator 10 and then issues another write-read operation
to the subfile control record format (SFLCTLR), the subfile is displayed as follows:
In 24 by 80 (*DS3) mode, because indicator 10 for the DSPMOD keyword is
on.
Horizontally, because SFLLIN is specified for the *DS3 mode. If SFLLIN was
not specified for the *DS3 mode, the subfile would have been displayed verti-
cally. If the SFLLIN keyword is to be used for more than one screen size, a
screen size condition name for each secondary screen size is required.
Because each record is 30 bytes long and the space between each record is 6
bytes long, two records can be displayed on one horizontal line, (2 x 30) + 6 =
66 bytes). The subfile is displayed on six lines because SFLPAG(12) is speci-
fied. To ensure other records are not erased, the SFLPAG may need to be
specified for the secondary screen size.
à RECORD 1 RECORD 7
ð
RECORD 2 RECORD 8
RECORD 3 RECORD 9
RECORD 4 RECORD 1ð
RECORD 5 RECORD 11
RECORD 6 RECORD 12
When subfile size equals page size, the system does not automatically support the
use of the Roll Up and Roll Down keys. If you want the user to roll through the
subfile using these keys, you must specify the ROLLUP or ROLLDOWN keyword in
the subfile control record, and your program must handle the roll up or roll down
function.
For example, if a subfile is used to allow the user to search through a long list, you
can specify SFLSIZ equals SFLPAG and ROLLUP on the subfile control record:
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7...
A R SFLCTLR SFLCTL(SFLRCD)
A SFLSIZ(16)
A SFLPAG(16)
A ROLLUP(2ð 'Roll Up')
Figure 4-6. Sample DDS Using SFLSIZ, SFLPAG, and ROLLUP Keywords
When the user presses the Roll Up key, indicator 20 is set on and control returns to
the program. In your program, you would:
Clear the subfile (a write operation to the subfile control record with the
SFLCLR keyword in effect).
Use the indicator to control a return to the logic that fills the subfile with another
page of records.
Display the new subfile page.
You could also allow the display station user to press a CFnn key to return to the
start of the search. When the user presses the CFnn key, the associated indicator
is set on and control returns to the program. In your program, you would:
Clear the subfile.
Use the indicator to control a return to the logic that built the first subfile page
based on the search code entered. (The program needs to keep the original
search code in order to do this.)
When the subfile size equals page size, you can use field selection and variable-
length records in the subfile. If you use field selection, consider the following:
If the fields are selected through the use of option indicators, the relative record
number is ignored and each record is placed in the first available record posi-
tion in the subfile.
If a record is being updated, the field selection that does not match that on the
original output is ignored. For example, assume that FIELD1 and FIELD2 are
selected when the record is placed in the subfile. If the update selects FIELD2
and FIELD3, fields would overlay the original FIELD1 and FIELD2 fields, and
the results could not be predicted.
If field selection is specified on the subfile record, the number of records that
can be displayed on the screen depends on the number of fields selected.
When field selection is specified, the SFLPAG(value) keyword specifies the
number of screen lines available to display the subfile record. In other cases,
the SFLPAG(value) keyword specifies the number of subfile records that can
be displayed at one time.
The SFLFOLD, SFLDROP, and SFLROLVAL keywords are ignored.
When variable-length records are used, each record in the subfile is displayed
beginning on the first available line on the page. If you use field selection for
variable-length records, each record can take up a different number of lines on the
display. Therefore, the number of records that actually fit in the subfile depends on
the field selection of each record written to the subfile. The following shows an
example of the DDS for a variable-length record:
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7...
A R SFLRCD SFL
A ITMNBR 8Y ð 6 2
A ITMDSC 15 6 11
A QTYOH 4 ð 6 28
A LSTPC 7 2 6 39
A ALLOH 8Y ð 6 49
A SLSMO 1ð 2 6 63
A N8ð SLSYR 12 2 7 7
A N8ð CSTYR 12 2 +3
When indicator 80 is on, each record in the subfile fits on one line. However, when
indicator 80 is off, each record uses two lines on the display.
Another typical use of variable-length records is where two or more entirely different
formats are used to make up one format. In this case, each field would be sepa-
rately conditioned by option indicators so that one record format might use multiple
lines while another format uses only one line.
When the subfile size is not equal to the page size, the use of the Roll Up and Roll
Down keys is automatically supported.
To inform the user that there are more records in the subfile, use the SFLEND
keyword on the subfile control record. When SFLEND is in effect (for example, the
option indicator is on), a + (plus sign) is placed in the lower position to the extreme
right of the screen on each page except the last page. On the last subfile page,
the + is replaced with a blank.
When the subfile size is not equal to page size, you can use the SFLROLVAL
keyword to allow the user to enter a value to specify how many records should be
rolled up or down when the appropriate key is pressed. If the SFLROLVAL
keyword is not used, the subfile is rolled by the SFLPAG value except for subfiles
using SFLFOLD or SFLDROP. If the SFLFOLD or SFLDROP keyword is used,
more records are displayed than the SFLPAG value when records are displayed in
the truncated format. For truncated records, the display rolls by the number of
records displayed in the truncated format. When the SFLROLVAL keyword is used
and the Roll Up key is pressed, the uppermost record number in the displayed
subfile is added to the roll value to determine the new uppermost record number. If
this value is greater than the last record in the subfile, the last full page of records
is displayed. If the Roll Up key is pressed when the last subfile page is displayed
and the roll value is not less than the page size value, an error message is issued.
If the roll value is less than the page size value, the roll function is performed.
Variable-length records and field selection cannot be used when the subfile size is
not equal to the page size.
A technique to improve performance when you are using a multiple page subfile is
to write only one page of subfile records at a time but use the OS/400 support to
roll through the subfile. To do this, you need to define the ROLLUP keyword in
DDS with a response indicator and also use the SFLRCDNBR keyword. In your
program, you would write the records needed to fill one subfile page and then
display that page. When the user wants to see more records, he or she presses
the Roll Up key. The program then writes another page of records to the subfile,
places the relative record number of a record from the second page into the
SFLRCDNBR field, and displays the record.
The second page of subfile records is now displayed, and if the user presses the
Roll Down key, the roll down is handled by the system. If the user presses the Roll
Up key while the first page is displayed, the system will also handle the roll up.
The program is notified only when the user attempts to roll up beyond the records
currently in the subfile. The program would then handle any additional roll up
requests in the same manner as for the second page. When you use this tech-
For example, assume that you are using a subfile for an order entry program and
you want to check the item number field to be sure it is a valid order number. You
also want to check the quantity ordered field to ensure there are enough items on
hand to fill the order. To do this, you can use the SFLNXTCHG keyword on the
subfile record (SFL) to allow your program to diagnose the errors and require the
user to correct them. The following DDS shows an example of using the
SFLNXTCHG keyword:
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7...
A R ORDENTD
A 1 3ð'ORDER ENTRY DISPLAY'
A 3 2'Enter customer number:'
A CUST 5 3 25
A R SFLRCD SFL
A 61 SFLNXTCHG
A LINNBR 2 7 4
A ITMNBR 5 B 7 9
A 4ð DSPATR(RI PC)
A QTYORD 4 B 7 2ð
A 35 DSPATR(RI PC)
A R SFLCTLR SFLCTL(SFLRCD)
A SFLSIZ(5)
A SFLPAG(5)
A 55 SFLDSP
A 5ð SFLDSPCTL
A 3ð SFLCLR
A 1ð SFLINZ
A 4ð SFLMSG('Item number not valid' 4ð)
A 35 SFLMSG('Qty not available' 35)
When the program detects an error, it sets on the indicator that conditions the
SFLNXTCHG keyword and issues a write operation to the subfile control record
with the SFLDSP keyword in effect. The field in error is displayed in reverse
image, and the cursor is positioned at that field. The associated error message is
also displayed. The user then corrects the error.
A decision you must make when using the SFLNXTCHG keyword is whether to
allow the user to change the subfile fields that were not in error. If you do not want
the display station user to change those fields you can protect them with the
DSPATR(PR) keyword. For those fields you do not want changed, the
DSPATR(PR) keyword must be in effect only when the SFLNXTCHG keyword is in
effect. If you allow the user to change the fields, you can:
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7...
A R MSGSFL SFL
A SFLMSGRCD(14)
A MSGKEY SFLMSGKEY
A PGMQ SFLPGMQ
A R MSGCTL SFLCTL(MSGSFL)
A SFLSIZ(8)
A SFLPAG(8)
A 5ð SFLDSP
A 55 SFLDSPCTL
A 6ð SFLINZ
A PGMQ SFLPGMQ
A NBR 4 ðH SFLRCDNBR(CURSOR)
A
The SFLRCDNBR(CURSOR) keyword is used to position the cursor at the first dis-
played character in the message subfile that is specified in the SFLRCDNBR field
so the Roll Up and Roll Down keys will apply to the message subfile.
For information on sending and receiving messages and on the program message
queue, see the CL Programming book. Message subfiles are the only kind of sub-
files supported for CL programs and for ILE C programs.
The following example illustrates both and shows part of the DDS for a subfile in
which records are displayed vertically. Customer number, name, address, city, and
state are displayed. A user can change customer name, address, city, and state.
Customer number cannot be changed; it is an output field only. The DSPATR(PC)
keyword has been specified for the customer number field (CUST). Subfile size is
21 and page size is 7.
Cursor
RSLH709-0
The first seven records in the subfile are displayed and the cursor is positioned
under the customer number in the first record. The user moves the cursor to the
third record, updates the address for that customer, and moves the cursor to the
customer number of the fourth record:
RSLH183-0
Now the user presses the Roll Up key to display the next seven records. The
cursor is positioned under the customer number in the first record:
Cursor
RSLH184-0
If the DSPATR(PC) keyword had not been specified and the user pressed the Roll
Up key, the cursor would have been positioned at the fourth record under customer
number:
RSLH185-0
Positioning the Cursor and Rolling When Two or More Records Are
Displayed
When you display two or more records at the same time, the position of the cursor
determines the action taken when the user presses a roll key, regardless of which
record was written to the display last.
The cursor can be positioned in the roll-enabled area of the display or in the area
that is not roll-enabled of the display. A roll-enabled area is:
A record without subfiles and with the ROLLUP/ROLLDOWN keyword in effect
A subfile control record with the ROLLUP/ROLLDOWN keyword in effect
A roll-enabled subfile, which is an active subfile with subfile size greater than
page size
An active subfile with subfile size equal to page size and the
ROLLUP/ROLLDOWN keyword in effect for its subfile control record
Based on the location of the cursor, the action taken when the user presses a roll
key is as follows:
If the cursor is positioned in the roll-enabled area at a roll-enabled subfile or at
the subfile control record for a roll-enabled subfile, the subfile is rolled. If the
The following examples illustrate what action is taken, based on the location of the
cursor, when two records are displayed and the user presses a roll key.
Nonsubfile
Enter next customer number: Record with
ROLLUP/
ROLLDOWN
in Effect
RV2W050-0
Cursor
In the following example, two subfiles with the subfile size greater than the page
size and their control records are displayed. The user positions the cursor in the
RV2W051-0
Cursor
In the following example, a subfile with the subfile size equal to the page size and
the ROLLUP/ROLLDOWN keyword in effect is written to the display first. A record
without subfiles and without the ROLLUP/ROLLDOWN keyword in effect is then
written to the display. If the cursor is positioned at either the subfile record or the
second record, control returns to the program.
Cursor
Nonsubfile
Enter next customer number: Record without
ROLLUP/
ROLLDOWN
RV2W052-0
RV2W053-1
Cursor
In the following example, the subfile with a subfile size greater than the page size
and without ROLLUP/ROLLDOWN keyword is written to the display first. The
record without subfiles and with ROLLUP/ROLLDOWN keyword in effect is then
written to the display above the subfile. If the cursor is positioned within the subfile
record, the subfile is rolled. If the cursor is not positioned within the subfile record,
the subfile is not rolled and control returns to the program.
RSLH054-0
The following is an example of the logic a user program would use to process the
subfile just shown. A write-read operation is a combined input and output opera-
tion. A read is an input operation. A write is an output operation. See the appro-
priate high-level language manual for the operations that can be performed in the
high-level language program.
User Program
1. Opens a file and issues a write-read operation to the NAMESR record format to
prompt for a search code.
User
2. Enters a zip code in the search code field. The program uses the search code
field as a key field to find the first database record in the file with that key field.
The program will build the subfile using that record as the first record in the
subfile.
User Program
3. Obtains records (read operation) from the database file and places (write oper-
ation to SUBFIL1) them in the subfile one record at a time until the subfile is
full or there are no more records to place in the subfile.
4. When all records are in the subfile, issues a write-read operation to the subfile
control record format (FILCTL) with the following:
a. A + (plus sign) is displayed in the lower right corner of the screen when
there are more records than fit on one subfile page. Because the indicator
Use the DDS window keywords if your windows must use other DDS functions,
such as subfiles, display attributes, validity checking, and optioning. Also use the
DDS window keywords when the window contains multiple input fields, or if the
window location can be varied.
If you have help information defined with DDS and are using the HLPRCD keyword
to display it, the WINDOW keyword can be used to easily display the information in
a window.
The following sections describe the terminology used for windows, the functions of
the window keywords, and how to use the keywords for the following tasks:
Creating windows
Defining window borders
Reading data from windows
Changing window borders and contents
Moving and duplicating windows
Making two windows seem active at one time
Making one window in a series stand out
Removing windows
Improving application performance by bypassing system save and restore oper-
ations
For some applications, you might want to use a different method of creating
windows:
Chapter 20, “Defining Online Help Information” on page 20-1 describes how to
create help windows with the user interface manager (UIM). The UIM uses a
different language from DDS. However, it automates many help window func-
tions for you and provides a simple way of adding online help information to
your existing applications.
The IBM WindowTool/400 PRPQ, SC41-0050, describes how to create
windows with the WindowTool/400 PRPQ. Consider using this program if you
use windows primarily to construct application menus.
Chapter 6, “Creating a Graphical Look for Displays” describes how to create
menu bars, pull-down menus, selection fields, continued-entry fields, and how
to use edit masks using DDS keywords.
The active window is the window subject to the most recent input or output opera-
tion. The active window appears to be the topmost window on the display. It is the
only part of the display with which the work station user can interact.
A window remains on the display until your application or the system takes action
to remove it. Removing a window and overlaying a window are different oper-
ations. When a window is removed, it no longer exists on the display, and you can
no longer write to or read from it. When a window is overlayed by another
window, it might not be visible to the work station user; however, it is still available
for you to work with.
For detailed reference information about each keyword, see the DDS Reference.
Creating Windows
The record-level keyword WINDOW allows a record format to be displayed inside a
window. A maximum of 12 windows can be created on a display at one time.
To create a window, write a record that specifies a WINDOW keyword. The first
window record you write must be a window definition record specifying the window
size and its location on the display. The window definition record places the
window borders on the display. Then you can write the same window definition
record again or use one or more window reference records to complete the specifi-
cations for the window.
A window definition record must be the first record written for each window you
display. It is the record that actually creates the window and makes it visible on the
display. The record can contain the same types of fields or data found in any
typical record. It can also contain a WDWBORDER keyword defining the window
border. (The WDWBORDER keyword can also be used at the file level.)
You can supply all the specifications for the window in the window definition record.
You can supply additional specifications by writing the same window definition
record again, as you would when displaying an error message in the window. You
can also supply additional specifications by writing one or more window reference
records after you write the window definition record.
Each window reference record contains a WINDOW keyword specifying the name
of the window definition record to which it applies. When the window reference
record is written, the window definition record being referred to must be on the
display. If the referenced record is not on the display, then a notify message
stating that the window does not exist is returned to the application.
Window reference records do not contain size and position attributes, and any
active WDWBORDER keywords are ignored.
This window is specified as having a depth of 13 rows (also known as lines) and a
width of 19 columns (also known as positions). The usable area inside the window
borders is 12 rows deep and 19 columns wide. Row 13 is reserved for messages;
it cannot contain fields.
With its border, the window actually takes up additional rows and columns on the
display. All windows take up two more rows, one each for the top and bottom
borders. Most windows also take up six more columns:
Two for border attributes
Two for border characters
One for the leading window attribute
One for the continuation attribute on the right.
The window is positioned by the upper left corner of the border, which has a
starting row position equal to the top border row and a starting column position
equal to the left border column. Fields that do not fit within the window are diag-
nosed during file compilation. If the SLNO keyword is used and specifies the
starting line number, the DDS compiler flags any fields that do not fit within the
window. If *VAR is specified on the SLNO keyword and the run-time starting line
number does not allow the entire record to be displayed, an exception occurs.
The DDS compiler diagnoses window location problems when either the upper left
window line or upper left window position is specified as a constant. A run-time
error occurs if a dynamically positioned window does not fit on the display.
The special value, *DFT, can be specified in place of the start-line and start-
position parameters on the window keyword. *DFT indicates that the system will
determine the start line and start position of the window. The window is positioned
relative to the cursor location. The system uses the following sequence of rules to
position the window when *DFT is used:
1. If the window will fit below the cursor position on the display, it is placed there.
The top window border is positioned one row below the cursor. If possible, the
left window border is positioned in the same column as the cursor; if not, the
window is positioned as far to the left of the cursor as necessary for it to fit on
the display.
2. If the window will fit above the cursor position, it is placed there. The bottom
window border is positioned one row above the cursor. The window is posi-
tioned horizontally as described in step 1.
3. If the window will fit to the right of the cursor position, it is placed there. The
right window border is positioned in the next-to-last column of the display. If
possible, the top window border is positioned in the same row as the cursor; if
not, the window is positioned as far above that as necessary for it to fit on the
display.
4. If the window will fit to the left of the cursor position, it is placed there. The
right window border is positioned two columns to the left of the cursor. The
window is positioned vertically as described in step 3.
5. If the window cannot be positioned in any of the above areas, it is placed in the
bottom right corner of the display.
Cursor Position
To position the cursor in a window, use the CSRLOC and DSPATR(PC) keywords
in the same way as for a full-screen display. The cursor is positioned with refer-
ence to the upper left corner of the usable area of the window.
If *NORSTCSR is specified on the WINDOW keyword, the user may move the
cursor out of the active window and use any command function (CF) or command
attention (CA) key.
Error Messages
When windows exist on a display and *MSGLIN is specified on the WINDOW
keyword for the window, any error messages are displayed on the last usable line
of the active window. The last usable line in the window is reserved for error mes-
sages; no records are displayed there. If the error message is longer than the line,
it is truncated to fit. When windows exist on a display and *NOMSGLIN is specified
on the WINDOW keyword for the window, any error messages are displayed at the
bottom of the display or the location defined by the MSGLOC keyword.
Help is available through the Help key for error messages displayed in windows.
When messages reporting operational and keyboard errors, such as Function key
not allowed, are displayed, the keyboard is locked and the user must press the
Error Reset key to continue.
Subfiles
A maximum of 24 subfiles can be active at any one time. A maximum of 12 sub-
files can be displayed on the base display or in a single window at any one time.
If a subfile is displayed in a window and the window is removed from the display,
the subfile is not deleted. The subfile remains active until the display file is closed
or you explicitly delete the subfile.
You can use the WDWBORDER keyword at the file level, where it applies to each
window definition record in the file, or on individual window definition records. If
you use it on window reference records, a warning message is issued when the file
is created.
The following sections describe window border defaults, how the system handles
multiple window border definitions, and how to use the WDWBORDER keyword to
define UIM help window borders.
Border Defaults
When you do not use the WDWBORDER keyword, the system defaults are as
follows:
If more than one WDWBORDER keyword is specified at the same level, the param-
eters for the keywords that are in effect are combined. If different values are speci-
fied for the same parameter, the parameter value of the first keyword in effect is
used. The values for individual components of the border are determined when a
window definition record is written. The border values are determined by the fol-
lowing hierarchy:
1. Start with system defaults.
2. Override the defaults with any file-level border specifications.
3. Override any file-level border specifications with record-level border specifica-
tions.
The process is similar when more than one WDWBORDER keyword is in effect at
the same level and the keywords specify the same WDWBORDER component
(color, attribute, or character). The first component value is used. For example,
assume that two WDWBORDER keywords are in effect at the file level:
WDWBORDER((\COLOR GRN
\CHAR '........'))
WDWBORDER((\CHAR '---|||-|'))
and the following is specified at the record level:
WDWBORDER((\COLOR BLU))
then the border component values are determined as follows:
1. Start with the defaults for each component.
2. Override the character component and color component defaults with the file-
level values. Because the character component is specified more than once,
use the first character component value specified.
3. Override the file-level color value with the record-level value.
The window border is constructed using the record-level border color, the first file-
level border characters, and the default border display attributes.
If a single WDWBORDER keyword does not specify all three border components,
then those not specified use the values from any other WDWBORDER keywords in
effect; they do not use the defaults. In the preceding example, this is demonstrated
at the record level. Only the color component is specified. However, because the
à ð
NONWINDOW DISPLAY RECORD
............Window Title.............
: :
: WINDOW #1 :
: :
: CUSTOMER NO. nnnnnn : :
: :
: NAME: _ :
: ADDRESS: _ :
: PHONE: _ :
: :
: F12=CANCEL :
: :
:...................................:
á ñ
Figure 5-1. Window Title—Display Example
If the window defined by RECORD1 in Figure 5-2 is written to the display, the title
will be whatever text is contained within the TTL1 field. The title will appear cen-
tered in the top border of the window. If indicator 01 is set off, the text will be
green. If indicator 01 is set on, the text will be red.
If the window defined by RECORD2 is written to the display, the the title will be
whatever text is contained within the TTL2 field. The title will appear centered in
the top border of the window. The title will be in reverse image and yellow.
If your application attempts to read a window record and the window does not exist
on the display, a notify message stating that the window does not exist is returned.
If the application attempts to read a window record and the window is on the
display but the record is not on the display, a message stating that the record is not
on the display is returned.
If a window definition record is written to the display and a window with that name
already exists on the display in the same position, a new window is not created.
The new record is considered a normal write operation to the existing window. If
If a window reference record is written to the display and the specified window is on
the display, the record is written to the most recently created window with the spec-
ified name. To write to an earlier window with that name, use a window definition
record specifying the earlier window's location.
For more information about the USRRSTDSP keyword, see “Improving Application
Performance” on page 5-13.
Now you want to return to Window 3 and make it appear to pop out of the series,
so that the display looks like this:
┌─────────────────────────┐
│ 1 │
│ ┌──────────────────────┴──┐
│ │ 2 │
│ │ ┌──────────────────────┴──┐
│ │ │ 3 │
│ │ │ ├──┐
└──┤ │ │ │
│ │ ├──┴──┐
└──┤ │ │
│ │ │
└──┬──┬───────────────────┘ │
│ 4│ │
└──┤ │
│ 5 │
└─────────────────────────┘
To make Window 3 stand out without removing Windows 4 and 5 from the display,
take these steps:
1. Specify the USRRSTDSP keyword on Window 4 or any earlier window (that is,
Windows 1 through 3). The USRRSTDSP keyword prevents the previous
window and any subsequent windows from being saved.
2. Rebuild Window 3 so that it looks the way it did before Window 4 was first
displayed. Because USRRSTDSP was used, the display was not saved when
Window 4 was added to the display or at any later time. Thus, none of the
windows are removed from the display, and Window 3 appears to pop out of
the series.
For more information about the USRRSTDSP keyword, see “Improving Application
Performance” on page 5-13.
Removing Windows
When a window is removed, it no longer exists on the display, and you can no
longer write to or read from it. The window keywords provide you with several
different ways to remove windows. Which method you use depends on which
windows you want to remove and which operation you want to perform next. The
different methods are described in the following sections.
If a new window is being created on the display, the record that is active when the
window is written is saved, and the entire display remains as background data.
Then the new window becomes active. The saved record can be a window record
or nonwindow record; the procedure is the same for both.
If a nonwindow record is written to the display, any existing windows are removed
without being saved, the new record is written to the initial display, and the display
becomes active.
Response Time
The time needed for the system to perform save and restore operations depends
on your communications setup and on the window being displayed.
The slowest response time occurs during the read and save operations performed
when the first window is added to a display. Assume that the window is of average
size and complexity. If the work station is attached to the AS/400 system by a
twinaxial, local area network (LAN), or other high-speed communications line,
Other operations, such as saving the display before the second or third window is
added, or restoring the display after windows are removed, take less time.
For more information, including details about other window sizes, terminal types,
and line speeds, consult your marketing representative.
For example, under the following conditions, the system ordinarily performs two
save operations:
Your application displays only one window at a time.
The display file is created with RSTDSP(*YES).
The first window record to overlay the display is located in a separate file.
The first save operation is performed when the display file is suspended. The
second save operation is performed because a window is being displayed.
USRRSTDSP eliminates the second, unnecessary save operation.
┌─────────────────────────┐
│ 1. Saved │
│ ┌──────────────────────┴──┐
│ │ 2. Saved │
│ │ ┌──────────────────────┴──┐
│ │ │ 3. Not saved │
│ │ │ ┌──────────────────────┴──┐
└──┤ │ │ 4. USRRSTDSP; not saved │
│ │ │ ┌──────────────────────┴──┐
└──┤ │ │ 5. Not saved │
│ │ │ ┌──────────────────────┴──┐
└──┤ │ │ 6. Not saved │
│ │ │ │
└──┤ │ │
│ │ │
└──┤ │
│ │
└─────────────────────────┘
Programming Examples
The following sections illustrate the basic functions of the window keywords. The
first example shows how to use a variety of window functions. It defines a full-
screen display and several windows in one display file. The second example
shows how to create windows for a full-screen display defined in a separate display
file. The third example shows how to simulate menu bar support.
A\
A\------------------------------------------------------------------------\
A\ RECORDS USED IN DEFINING WINDOW2
A\------------------------------------------------------------------------\
A R WINDOW2 WINDOW(9 25 11 32)
A\
A 2 12'WINDOW #2'
A FLD5 22A O 4 6
A FLD6 25A O 5 4
A FLD7 25A O 6 4
A FLD8 25A O 7 4
A\
A R REC2WIN2 WINDOW(WINDOW2)
A OVERLAY
A CA12(12)
A 1ð 8'Xxxxxxx :'
A FLD9 6A B 1ð 18
A\
A\------------------------------------------------------------------------\
C\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
C\ Step 4: Restore Window #1
C\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
C EXFMTREC3WIN1
C\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
C\ Step 5: Display Initial Display
C\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
C READ INITIAL 91
C\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
C\ End The RPG Program
C\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
C SETON LR
C\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
à ð
NONWINDOW DISPLAY RECORD
á ñ
Before the window is displayed, the system performs a read screen immediate
operation to obtain the display image and saves the underlying display. The
system performs a read screen immediate operation only when the first window is
added to the display. It performs a save operation each time a window is created.
à ð
NONWINDOW DISPLAY RECORD
á ñ
à ð
NONWINDOW DISPLAY RECORD
á ñ
à ð
NONWINDOW DISPLAY RECORD
á ñ
à ð
NONWINDOW DISPLAY RECORD
á ñ
In the example, the application uses RSTDSP(*NO) to indicate that a save opera-
tion should not be done when a file is suspended. Because displaying a window
also performs a save operation, using RSTDSP(*NO) prevents two save operations
from being performed. Because removing the window restores the screen that was
present prior to the window operation, the application is not required to rebuild the
display after window processing. For more information on the USRRSTDSP
keyword, see the notes at the end of the example.
A\---------------------------------------------------------------------\
A\ DISPLAY FILE DISPLAY2 (RSTDSP=NO)
A\---------------------------------------------------------------------\
A R WINDOW1 WINDOW(7 4 11 25)
A Nð1 WDWBORDER((\COLOR GRN))
A ð1 WDWBORDER((\COLOR RED))
A 2 9'Window #1'
A \
A R REC2WIN1 WINDOW(WINDOW1)
A CA12(12) OVERLAY
A 4 1'Customer No. nnnnnn:'
A 6 1'Name:'
A FIELD3 19A B 6 7
A 7 1'Address:'
A FIELD4 16A B 7 1ð
A 8 1'Phone:'
A FIELD5 18A B 8 8
A 1ð 1'F12=Cancel'
A\---------------------------------------------------------------------\
A\ Dummy record to remove window from display before returning
A\---------------------------------------------------------------------\
A R RMVWDW CLRL(\NO) OVERLAY FRCDTA
A\---------------------------------------------------------------------\
A\ No I/O will ever be done to this record. This record prevents the
A\ display from clearing.
A\---------------------------------------------------------------------\
A R DUMMY ASSUME
A 11 1' '
A\---------------------------------------------------------------------\
à ð
FIRST RECORD IN FILE
á ñ
à ð
FIRST RECORD IN FILE
á ñ
The application performs a write operation to record REC1. Display file DISPLAY2
is suspended; because of the RSTDSP(*NO) setting, no save operation is per-
formed. Display file DISPLAY1 is restored; because of the RSTDSP(*NO) setting,
no data is sent.
à ð
FIRST RECORD IN FILE
á ñ
Additional notes on this example:
1. If the application closes DISPLAY2 in Step 3, then the application must rebuild
the initial display by performing a write operation to REC1 and then a write/read
operation to REC2. This can be avoided by specifying RSTDSP(*YES) for
DISPLAY1.
2. USRRSTDSP can be added to the window record in DISPLAY2. However, if
this is done, the user must either specify RSTDSP(*YES) for DISPLAY1, or
rebuild the initial display in Step 3. However, in Step 3, the application must
still write RMVWDW, or the borders of the window are not displayed properly
on the next write operation to the window.
3. The KEEP keyword should be added to the window format both of the following
conditions are true:
The application closes DISPLAY2 in Step 3.
No I/O is done to file DISPLAY1 prior to opening DISPLAY2 and displaying
the window again.
.........
: :
: 1. Undo : Undo
: 2. Mark : Mark
: Undo
3. Copy : Copy
: : Mark
.........
Copy
RV2W063-0
In addition to a fresher look, the enhanced function includes menu bars and pull-
down menus. Instead of having to simulate a menu bar by using lengthy DDS
coding, you can use DDS keywords.
Hardware Configuration
Table 6-1 on page 6-2 and Table 6-2 on page 6-3 show how each graphical func-
tion appears on different configurations. Letters A through F in the tables identify
the configurations; these letters are referred to throughout this chapter.
Normally, DDS windows and CUA* graphical items are rendered using whatever
enhanced capabilities are available on the display station. For example, window
borders and menu-bar separators are presented graphically on a graphical display
station.
You can use ENHDSP(*NO) to cause all records defined in the display file to be
displayed in character-based mode, regardless of the capabilities of the display
station. When ENHDSP(*NO) is specified, none of the enhanced capabilities that
may be available on a particular display station are used. That is, records display
just as they would on a display station in configuration F in Table 6-2 on page 6-3.
The default value for ENHDSP is *YES. Any enhanced capabilities of the display
station are taken advantage of automatically. If you specify ENHDSP(*YES) and
you use the default window border and menu-bar separator, the window border and
the menu-bar separator appear as solid lines. If the display station is attached to a
controller that does not support an enhanced interface for nonprogrammable work
stations, ENHDSP(*YES) is ignored. The records in the display file are displayed
on that display station in character-based mode (as if ENHDSP(*NO) were speci-
fied).
Writing records from files with ENHDSP(*YES) and files with ENHDSP(*NO) to
the same display. If the record (or records) displayed is from a file with
ENHDSP(*YES), the first write operation of a record (such as a window) from a file
with ENHDSP(*NO) causes all menu bars, pull-down menus, and other windows on
the display to change from graphical to character-based. The records from the file
with ENHDSP(*YES) are switched to the ENHDSP(*NO) mode of display.
Notes:
1. The system file that is used for UIM help is shipped with ENHDSP(*NO). If you
use UIM help with a file that has ENHDSP(*YES) specified, the display will
changes from graphical to character-based.
2. Some programmable work stations that support an enhanced interface ignore
the window border and menu-bar separator keywords.
3. If a window is written to the display station such that a border is in column 1,
column 80 (for display size 24 by 80), or column 132 (for display size 27 by
132), the window is always displayed as though ENHDSP(*NO) were specified.
à ð
.File/ Edit View Options Help
______________________________________________________________________________
If you define a pull-down record that is too large to fit beneath the maximum
number of rows occupied by the menu bar, the file is not created.
Figure 6-3 on page 6-9 shows an example of the DDS for a menu bar.
Figure 6-3. DDS for a Menu Bar. Assume that field EDITTXT contains the text >Edit.
You can control which menu-bar choices are displayed by specifying option indica-
tors on the MNUBARCHC keywords. Option indicators are used by the application
program to specify if a menu-bar choice should be displayed (optioned on) or
should not be displayed (optioned off). The DDS for option indicators are shown in
Figure 6-3 on page 6-9. The application specifies the option indicators as on or off
and then writes the menu-bar record (without MNUBARDSP in effect) to send the
option indicators to the system. If a menu-bar choice is optioned off, the list of
choices is compressed. However, the number of rows occupied by the menu-bar
record is not compressed (because records cannot be variable length). The
number of rows occupied by the menu bar is the number of rows needed if all the
choices were displayed plus one row for the menu bar separator. If, through
optioning, the list of choices is compressed so that it is displayed using fewer rows,
the separator line is displayed on the line following the last row of choices. There
are blank lines between the menu-bar separator and the next record on the display.
The text which appears for each choice in a menu-bar comes from either the
program-to-system fields named or the text specified for the choice text parameter
of the MNUBARCHC keyword. The number of rows calculated by the system for
the menu-bar record depends on the size of each program-to-system field or length
of choice text. In addition, three spaces are assumed between each choice. Any
trailing blanks in the choice text are removed; the remaining length is used for the
calculation. The length of any program-to-system field is used as is, because
trailing blanks can not be anticipated. However, when the menu-bar record is dis-
played, any trailing blanks are removed. Therefore, the number of rows actually
occupied could be less than the number calculated. When that occurs, blank lines
appear between the menu-bar separator and the next record on the display.
On display stations in configurations A and B from Table 6-1 on page 6-2, the
menu bar looks like this:
Figure 6-4. Menu Bar on a Graphical Display Station with Enhanced Interface
On display stations in configuration C from Table 6-1 on page 6-2, the menu bar
looks like this:
à ð
.File/ Edit View Options Help
-------------------------------------------------------------------------------
Figure 6-5. Menu Bar on a Nongraphical Display Station with Underline Capability
On display stations in configurations D and E from Table 6-2 on page 6-3, the
menu bar looks like this:
à ð
.File/ Edit View Options Help
-------------------------------------------------------------------------------
Figure 6-6. Menu Bar on a Nongraphical Display Station without Underline Capability
On display stations in configuration F from Table 6-2 on page 6-3, the menu bar
looks like this:
à ð
File Edit View Options Help
-------------------------------------------------------------------------------
Selection Fields—Overview
There are two types of selection fields: single-choice and multiple-choice.
On display stations in configurations A and B from Table 6-1 on page 6-2, the
selection fields (vertical format) look like this:
Figure 6-8. Selection Fields on a Graphical Display Station with Enhanced Interface
RV2W070-0
Notes:
1. If you suppress the selection indicators, the location that you specify for the
single-choice selection field is the location of the first character in the first
choice.
2. If the single-choice selection field is within a pull-down menu, the location you
specify is relative to the pull-down menu borders.
The default is for vertical selection fields. You can create a horizontal selection
field by using the *NUMCOL or *NUMROW values on the SNGCHCFLD keyword.
See “Creating a Horizontal Selection Field” for more information.
The default is for vertical selection fields. You can create a horizontal selection
field by using the *NUMCOL or *NUMROW values on the MLTCHCFLD keyword.
See “Creating a Horizontal Selection Field” for more information.
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7...
A R RECORD
A 2 2'Flavor . . . '
A F1 2Y ðB 2 16SNGCHCFLD((\NUMCOL 2))
A CHOICE(1 'Chocolate ')
A ð1 CHOICE(2 'Strawberry ')
A CHOICE(3 'Vanilla ')
A CHOICE(4 'Peach ')
Figure 6-11. Example of DDS for Horizontal Selection Field. The \NUMCOL 2 specifies that
the field should display in two columns.
The following shows how this single-choice selection field would appear on a
character-based display, assuming option indicator 01 is on:
à ð
Flavor . . . _ 1. Chocolate 2. Strawberry
3. Vanilla 4. Peach
The following shows how this single-choice selection field would appear if
*NUMROW 2 were specified:
If the choices are nonsequential, no blank line or blank space is left for the omitted
choice as would have happened with *NUMCOL.
You can optionally specify the number of spaces to appear between the choices by
using the *GUTTER value on the SNGCHCFLD and MLTCHCFLD keywords. The
gutter width must be at least 2. If *GUTTER is not specified, the default number of
spaces between choices is 3.
Note: The gutter width includes the beginning and ending attribute of the choices
on either side of the gutter.
The area occupied by the horizontal selection field is determined by the following:
The number of choices specified
The length of the longest choice
The width of the gutter
The number of columns specified
The longest accelerator text specified (for a horizontal single-choice selection
field in a pull-down menu)
A horizontal selection field must fit within the minimum display size specified for the
file (24 x 80 or 27 x 132). If the record is a window or a pull-down menu, the
horizontal selection field must fit within the minimum window size. Other fields may
be specified to the right or to the left of a horizontal selection field. Option indica-
tors can be specified on horizontal selection fields, as they can for other fields.
You can control which choices are displayed at one time by using option indicators
on the CHOICE keywords. Unlike a vertical selection field, if a choice is optioned
off, the remaining choices will be shifted to fill in the space.
To keep the cursor within a selection field, use the *RSTCSR value on the
SNGCHCFLD and MLTCHCFLD keywords. If the cursor up key is pressed when
To keep the cursor within a selection field, use the *RSTCSR value on the
SNGCHCFLD and MLTCHCFLD keywords. If the cursor up key is pressed when
the cursor is on the top choice in any column in the field, the cursor moves to one
of the following places:
If there is a cursorable position in a column to the left, the cursor moves to the
last choice in that column.
If there is not a cursorable position in a column to the left or if there is no
column to the left, the cursor moves to the last cursorable choice in right-most
column in the field.
If the cursor down key is pressed when the cursor is on the last choice in any
column in the field, the cursor moves to one of the following places:
If there is a cursorable position in a column to the right, the cursor moves to
the top choice in that column.
If there is not a cursorable position in a column to the right or if there is no
column to the right, the cursor moves to the first cursorable choice in left-most
column in the field.
If the cursor left key is pressed and there is a cursorable choice to the left of the
current choice, the cursor moves to that choice. If there is no cursorable choice to
the left, the cursor moves to the first cursorable choice in the row above the
present row (closest row, right-most choice). If the present row is the top row, the
cursor moves to the right-most choice in the last row.
The *NOSLTIND value is ignored for display stations that are not attached to a
controller that supports an enhanced interface for nonprogrammable work stations.
Figure 6-12 is an example of the DDS to suppress the selection indicators in a
selection field.
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7...
A R RECORD
A 2 3ð'Display Title'
A 4 5'Single selection field . . . :'
A F1 2Y ðB 4 4ðSNGCHCFLD(\NOSLTIND)
A CHOICE(1 '>One')
A ð1 CHOICE(2 '>Two')
A CHOICE(3 'T>hree')
A 8 5'Multiple selection field . . . :'
A F2 2Y ðB 8 4ðMLTCHCFLD(\NOSLTIND)
A CHOICE(1 '>One')
A ð1 CHOICE(2 '>Two')
A CHOICE(3 'T>hree')
On display stations in configurations A and B from Table 6-1 on page 6-2, the
selection fields look like this:
RV2W859-1
You must define the pull-down menus and the corresponding menu bar in the same
file.
The last field in any pull-down menu always operates as though the CHECK(FE)
(Field Exit) keyword were specified. This keeps the cursor in the pull-down menu
after you enter the input that is in the last field in the pull-down menu. Then, if you
press the Field Exit key with the cursor in the last field, the field is cleared and the
cursor moves to the next pull-down menu. If the last field did not operate with
CHECK(FE), the cursor automatically moves on to the next pull-down menu after
you press the Enter key.
A pull-down record can contain anything that a window record can contain.
However, use only single-choice selection fields or multiple-choice selection fields
in a pull-down menu. If you use fields other than single-choice selection fields or
multiple-choice selection fields, the cursor does not move consistently on all display
Figure 6-15 is an example of the DDS for a pull-down menu. The figures that
follow show how the pull-down menu appears on each type of display.
Note: Assume that the record PULLDOWN is specified on the MNUBARCHC
keyword for the Edit choice, and that the MARKTXT field contains the text,
>Mark.
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7...
A R PULLDOWN PULLDOWN
A F1 2Y ðB 1 1SNGCHCFLD
A ð1 CHOICE(1 '>Undo ')
A CHOICE(2 &MARKTXT)
A CHOICE(3 '>Copy ')
A
A :
On display stations in configurations A and B from Table 6-1 on page 6-2, the pull-
down menu looks like this:
RV2W859-1
Figure 6-16. Pull-Down Menu on a Graphical Display Station with Enhanced Interface
On display stations in configuration C from Table 6-1 on page 6-2, the pull-down
menu looks like this:
RV2W065-0
Figure 6-17. Pull-Down Menu on a Nongraphical Display Station with Underline Capability
RV2W064-0
Figure 6-18. Pull-Down Menu on a Nongraphical Display Station without Underline Capa-
bility
On display stations in configuration F from Table 6-2 on page 6-3, the pull-down
menu looks like this:
RV3W073-1
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7...
A R PULLDOWN PULLDOWN(\NOSLTIND)
A F1 2Y ðB 1 1SNGCHCFLD
A ð1 CHOICE(1 '>Undo ')
A CHOICE(2 &MARKTXT)
A CHOICE(3 '>Copy ')
On display stations in configurations A and B from Table 6-1 on page 6-2, the pull-
down menu looks like this:
RV2W857-1
On display stations in configuration C from Table 6-1 on page 6-2, the pull-down
menu looks like this:
RV2W066-1
The *NOSLTIND value is ignored for display stations that are not attached to a
controller that supports an enhanced interface for nonprogrammable work stations.
You can specify accelerators for a single-choice selection field in a pull-down menu
by doing the following:
1. Specify the necessary CFnn keys.
2. Use the CHCACCEL keyword.
Specify the accelerator text on the CHCACCEL keyword. You can use a P-field to
specify the text. Note that the CHCACCEL keyword does not define the acceler-
ator key itself. You must define the CFnn keyword for the key and design your
application to recognize this key as an accelerator for this choice. You must also
ensure that the text you specify on CHCACCEL correctly reflects the key you have
defined. For example, if you want CF08 to be an accelerator key, specify some-
thing like F8 or CFð8 on the CHCACCEL keyword for the appropriate choice.
The accelerator text appears three spaces after the length of the longest choice
text in the field.
Because the accelerator key functions even if the pull-down menu is not displayed,
you should define the necessary CFnn keys at the file level. If you define them at
the record level, specify them for every record from which they should be available.
On display stations in configurations A and B from Table 6-1 on page 6-2, the pull-
down menu looks like this:
RV2W855-1
You can define a menu-bar switch key using the MNUBARSW keyword at either
the file level or the record level. If the cursor is in the application record, pressing
the menu-bar switch key moves the cursor to the first choice in the menu bar.
Pressing the key again moves the cursor from the menu bar back to its previous
location in the application record. If you move the cursor using the cursor keys
from the application record to the menu bar and then press the menu-bar switch
key, the cursor returns to its initial position on the application record. This is the
first input field unless cursor positioning keywords are specified on the application
record. If a pull-down menu is displayed, pressing the menu-bar switch key
cancels the pull-down menu and moves the cursor to the application record.
The system always handles the menu-bar switch key regardless of whether the
application or the system displayed the menu bar. (For more information, see the
DDS Reference.)
For the menu-bar switch key to be active, it must have been active on the last
record written to the display. The easiest way to ensure that the menu-bar switch
key will always be active is to specify MNUBARSW at the file level. If you specify
MNUBARSW at the record level, you must specify it on all records on which it
should be active.
A cancel key closes a pull-down menu and moves the cursor to the associated
choice on the menu bar. This is true even if the cursor is not in the pull-down
menu. If no pull-down menus are displayed and the cursor is located within the
menu bar, the key cancels the menu bar and moves the cursor back to the applica-
tion record. This location is the cursor’s previous location in the application record
if the menu-bar switch key was used to move the cursor to the menu bar. If the
cursor had been moved to the menu bar with the cursor keys, this location is the
initial location of the cursor within the application record. If no pull-down menus are
displayed and the cursor is located on the application record, the key returns
control to the application program. In this case, the MNUCNL keyword works just
as any other key definition keyword, and includes the ability to return a response
indicator.
Like the menu-bar switch key, the cancel key is active only if it was active for the
last record written to the display. The easiest way to ensure that the cancel key
will always be active is to specify the MNUCNL keyword at the file level. If you use
the MNUCNL keyword at the record level, you must specify it on all records on
which it should be active.
Figure 6-25 shows how to use the MNUBARSW keyword and the MNUCNL
keyword. The example sets up command attention key 10 as the menu-bar switch
key and command attention key 12 as the cancel key. (These settings are the
defaults.)
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7...
A MNUBARSW(CA1ð) MNUCNL(CA12)
A R MENUBAR MNUBAR
A MNUFLD 2Y ðB 1 2
A MNUBARCHC(1 PULLFILE +
A '>File ')
A ð2 MNUBARCHC(2 PULLEDIT +
A &EDITTXT)
A MNUBARCHC(3 PULLVIEW +
A '>View ')
A ð4 MNUBARCHC(4 PULLOPT +
A '>Options ')
A MNUBARCHC(5 PULLHELP +
A '>Help ')
A EDITTXT 2ðA P
A .
A .
A .
Figure 6-25. DDS for Menu-Bar Switch Key and Cancel Key
Selection Lists—Overview
A selection list is a potentially scrollable list from which the user can select an
item. There are two types of selection lists: single-choice and multiple-choice. A
single-choice selection list is a potentially scrollable list from which the user can
select one item. A multiple-choice selection list is a potentially scrollable list
from which the user can select one or more items.
You can select any number of choices from the multiple-choice selection list. You
can only make one choice from the single-choice selection list. “Selection
Lists—Overview” shows an example of a single-choice selection list, multiple-choice
selection list, and scroll bars used with the selection lists.
On display stations in configurations A and B from Table 6-1 on page 6-2, the
selection lists look like this:
RV3W077-0
Figure 6-26. Selection Lists on a Graphical Display Station with Enhanced Interface
On display stations in configuration F from Table 6-2 on page 6-3, the selection
lists (vertical format) look like this:
RV3W069-2
Figure 6-27. Selection Lists on a Nongraphical Display Station with Underline Capability
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7...
A R SFLRCD SFL
A CTLFLD 1Y ðH SFLCHCCTL
A F1 11A O 6 1ð
A R SFLCTLRCD SFLCTL(SFLRCD)
A SFLSNGCHC
A SFLPAG(5) SFLSIZ(&SFLSIZ)
A SFLDSP SFLDSPCTL
A ROLLUP(1ð)
A 1ð SFLEND(\MORE)
A F3 5S ðH SFLSCROLL
A F2 4S ðH SFLRCDNBR(CURSOR \TOP)
A SFLSIZ 5S ðP
A 1 3ð'Panel Title'
A 4 5'Single selection list:'
A R SFLRCD2 SFL
A CTLFLD 1Y ðH SFLCHCCTL
A F1 11A O 13 1ð
A R SFLCTLRC2 SFLCTL(SFLRCD2)
A SFLMLTCHC(&NUMSEL \RSTCSR)
A SFLPAG(5) SFLSIZ(&SFLSIZ)
A SFLDSP SFLDSPCTL
A 1ð SFLEND(\MORE)
A ROLLUP(1ð)
A F2 4S ðH SFLRCDNBR(CURSOR \TOP)
A F3 5S ðH SFLSCROLL
A SFLSIZ 5S ðP
A NUMSEL 4Y ðH
A 11 5'Multiple selection list:'
Figure 6-28. DDS for Selection Lists—Example
To specify a default choice in a selection list, use either the subfile next-changed
(SFLNXTCHG) keyword or a control field. To use the SFLNXTCHG keyword,
specify the keyword on the text field within the subfile record. To use a control
field, specify a control field in the subfile record and specify the subfile choice
control (SFLCHCCTL) keyword on the field. The control field can have the fol-
lowing values:
On display stations in configurations A and B from Table 6-1 on page 6-2, the
choices are preceded by radio buttons (single-choice) and check boxes (multiple-
choice). This is true unless *NOSLTIND is specified on the subfile single-choice
selection list (SFLSNGCHC) and multiple-choice selection list (SFLMLTCHC)
keywords. The location that you specify for the first field in the subfile record
format is the location of the input fields (on a character-based nongraphical
display). On display stations in configurations A and B from Table 6-1 on
page 6-2, the location of the first field is the location of the first radio button or
check box.
Notes:
1. If you suppress the selection indicators, the location that you specify for the first
field in the subfile record format is the location of the first character in the first
choice.
2. If the selection list is within a pull-down menu, the location you specify is rela-
tive to the pull-down menu borders.
The SFLSCROLL keyword is used to return the relative record number of the
record at the top of the current page of records. If the user presses Enter,
SFLSCROLL returns the relative record number of record that is currently displayed
at the top of the page. If control is returned to the application because of the
ROLLUP keyword, SFLSCROLL returns the relative record number of the last
record in the subfile plus 1. If control is returned to the application because of the
ROLLDOWN keyword, SFLSCROLL always returns 1.
To redisplay the subfile with the correct subfile record at the top of the list of
choices, use the subfile record number (SFLRCDNBR) keyword. Specify
SFLRCDNBR(*TOP) as a hidden field and use the relative record number returned
by the SFLSCROLL keyword. Add more records to the subfile and redisplay the
subfile.
The *SLTIND value is ignored for display stations that are not attached to a con-
troller that supports an enhanced interface for nonprogrammable work stations.
Figure 6-29 on page 6-29 is an example of the DDS to enable the selection indica-
tors in a selection list.
On display stations in configurations A and B from Table 6-1 on page 6-2, the
selection list looks like this:
RV3W0079-0
The DDS in Figure 6-33 on page 6-33 produces the following displays:
On display stations in configurations A and B from Table 6-1 on page 6-2, the
selection lists and scroll bars look like this:
RV3W078-0
Figure 6-31. Scroll Bar on a Graphical Display Station with Enhanced Interface
RV3W080-0
Figure 6-32. Scroll Bar on a Nongraphical Display Station with Underline Capability
In most cases, the number of subfile records represented by the scroll bar is the
number of records that have been written to the subfile. The SFLEND keyword
optioned on indicates that no more records will be written to the subfile. The
SFLPAG value is not added to the number of records represented by the scroll bar.
When the bottom of the subfile is reached and the PAGEDOWN keyword is not
active, the scroll bar box is displayed exactly above the lower scroll bar button.
The SFLEND keyword optioned off indicates that more records will be written to the
subfile. The SFLPAG value is added to the number of records represented by the
scroll bar. Adding the SFLPAG value causes the scroll bar to appear as if more
subfile records exist after the last subfile record. When the last subfile record is
reached and the PAGEDOWN keyword is active, the scroll bar box is not displayed
exactly above the lower scroll bar button. This indicates there are more records to
display. If the PAGEDOWN keyword is active, control is given back to the applica-
tion if the user tries to page down or scroll to the unseen records. The application
can then write more records to the subfile.
Note: The SFLPAG value is not added to the number of records represented by
the scroll bar when PAGEDOWN is active and when the number of records
written is less than the SFLSIZ value. In this case, the number of subfile
records represented by the scroll bar is the SFLSIZ value. The SFLSIZ
If the PAGEDOWN keyword is active, no partial pages are displayed. If the user
tries to roll to a partial page, control is given back to the application. The subfile
roll value (SFLROLVAL) may override this. For more information on the
SFLROLVAL keyword, see the DDS Reference. If the PAGEDOWN keyword is not
active, the SFLPAG value minus 1 is added to the number of records represented
by the scroll bar. Adding the SFLPAG value minus 1 enables a partial page to be
displayed.
Note: If a scroll bar is displayed with a horizontal subfile, you may not be able to
use the top scroll button when the following are true:
A partial page is reached
Records are displayed in only the first column of the horizontal subfile
See Table 6-3 for a summary of how the scroll bar is sized under different condi-
tions.
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7...
A R SFLRCD SFL
A CTLFLD 1Y ðH SFLCHCCTL
A F1 11A O 6 1ð
A R SFLCTLRCD SFLCTL(SFLRCD)
A SFLSNGCHC
A SFLPAG(5) SFLSIZ(&SFLSIZ)
A SFLDSP SFLDSPCTL
A ROLLUP(1ð)
A 1ð SFLEND(\SCRBAR)
A F3 5S ðH SFLSCROLL
A F2 4S ðH SFLRCDNBR(CURSOR \TOP)
A SFLSIZ 5S ðP
A 1 3ð'Panel Title'
A 4 5'Single selection list:'
A R SFLRCD2 SFL
A CTLFLD 1Y ðH SFLCHCCTL
A F1 11A O 13 1ð
A R SFLCTLRC2 SFLCTL(SFLRCD2)
A SFLMLTCHC(&NUMSEL \RSTCSR)
A SFLPAG(5) SFLSIZ(&SFLSIZ)
A SFLDSP SFLDSPCTL
A 1ð SFLEND(\SCRBAR \MORE)
A ROLLUP(1ð)
A F2 4S ðH SFLRCDNBR(CURSOR \TOP)
A F3 5S ðH SFLSCROLL
A SFLSIZ 5S ðP
A NUMSEL 4Y ðH
A 11 5'Multiple selection list:'
Figure 6-33. DDS for Scroll Bars—Example
The DDS in Figure 6-38 on page 6-35 produces the following displays:
On display stations in configurations A and B from Table 6-1 on page 6-2, the
push buttons look like this:
RV3W070-0
Figure 6-34. Push Buttons on a Graphical Display Station with Enhanced Interface
On display stations in configuration C from Table 6-1 on page 6-2, the push
buttons look like this:
RV3W071-0
Figure 6-35. Push Buttons on a Nongraphical Display Station with Underline Capability
On display stations in configurations D and E from Table 6-1 on page 6-2, the
push buttons look like this:
RV3W072-0
Figure 6-36. Push Buttons on a Nongraphical Display Station without Underline Capability
On display stations in configuration F from Table 6-1 on page 6-2, the push
buttons look like this:
RV3W074-0
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7...
A R RECORD
A
A PSHFLD1 2Y ðB 23 4PSHBTNFLD(\RSTCSR (\NUMCOL 3))
A PSHBTNCHC(1 'F1=>Help' HELP)
A PSHBTNCHC(2 &F3 CFð3)
A CHCCTL(2 &CTL)
A ð2 PSHBTNCHC(3 'F4=>Prompt' CFð4)
A CHCAVAIL((\COLOR RED))
A F3 15A P
A CTL 1Y ðH
Figure 6-38. DDS for Push Buttons—Example
Use the choice control (CHCCTL) keyword to control the availability of the indi-
vidual push buttons. Use the choice available (CHCAVAIL) and choice unavailable
(CHCUNAVAIL) keywords to control the color or attribute of the individual push
buttons.
Specify a key for each push button. In the following example, the CF04 key is
returned when the F4=Prompt push button is selected:
PSHBTNCHC(3 'F4=>Prompt' CFð4)
If you do not specify a key, Enter is returned when the push button is selected.
The key defined in the push button choice is automatically enabled for the record
that contains the push button field.
The field that contains the push button contains the number of the push button
choice that is selected. If the user presses the key associated with a push button
(instead of selecting the push button itself), the number of the push button is not
returned. Zero is returned if no choice is made.
Note: The cursor restrictions in Figure 6-39 apply only to displays attached to a
controller that supports an enhanced interface for nonprogrammable work
stations.
You can also specify a message to be displayed if the user selects an unavailable
choice. If you do not specify a message, the system displays a default message.
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7...
A R RECORD
A 2 2'Flavor . . . '
A F1 2Y ðB 2 16SNGCHCFLD
A CHOICE(1 '>Chocolate ')
A CHCCTL(1 &CTLCHOC MSG1112 QUSER/A)
A ð1 CHOICE(2 '>Strawberry ')
A CHCCTL(2 &CTLSTRA &MSG &LIB/&MSGF)
A CHOICE(3 '>Vanilla ')
A CHCCTL(3 &CTLVANI)
A CHOICE(5 '>Peach ')
A CTLCHOC 1Y ðH
A CTLSTRA 1Y ðH
A CTLVANI 1Y ðH
A MSG 7A P
A LIB 1ðA P
A MSGF 1ðA P
On display stations in configuration C from Table 6-1 on page 6-2 and configura-
tions D, E, and F from Table 6-2 on page 6-3, the single-choice selection field
looks like this:
à Flavor . . . _ 1. Chocolate
ð
2. Strawberry
3. Vanilla
5. Peach
Figure 6-41. Single-Choice Selection Field with an Unavailable Choice. Assume that at
run time, CTLCHOC and CTLSTRA are set to 0 (available) and CTLVANI is set to 2 (una-
vailable). The choice text, Vanilla, appears gray to indicate it is unavailable.
Defining Mnemonics
You can define mnemonics for these items:
Menu-bar choices
Selection field choices (single and multiple)
Selection list choices (single and multiple)
Push buttons
The mnemonic cannot be a blank. Only one mnemonic may be specified in the
choice text. If more than one mnemonic is specified, only the first mnemonic is
selectable. Figure 6-43 is an example of incorrect coding.
You can select a mnemonic by typing either the uppercase or lowercase mnemonic
character. This is true for all languages. The system uses the monocase rules for
Because the system does not support both mnemonic and numeric selection for a
field, mnemonics work only when choices are not displayed using numbers.
You can use only the CHCAVAIL keyword and the CHCSLT keyword for menu bars
because menu-bar choices are either available or selected. For selection fields,
use only the CHCAVAIL keyword and the CHCUNAVAIL keyword when you are
using selection characters (for example, numbers or radio buttons). The CHCSLT
keyword is ignored in these cases. However, you can use CHCSLT for selection
fields in a pull-down menu on graphical display stations or character-based graph-
ical display stations when you have specified that the pull-down menu should not
contain selection indicators (PULLDOWN(*NOSLTIND) specified).
You can use only the CHCAVAIL keyword and the CHCUNAVAIL keyword for push
buttons because push button choices are either available or unavailable.
Display attributes CS, HI, and BL can cause fields on 5292, 3179, and 3197 Model
C1 and C2 display stations to appear as color fields. Display attributes HI, RI, and
UL cause a separator line not to be displayed. For more information, see the
CHCAVAIL keyword, the CHCUNAVAIL keyword, and the CHCSLT keyword in
DDS Reference.
In Figure 6-44, the choices in the menu bar are displayed in white on color display
stations and in high intensity on monochrome display stations. When a menu-bar
choice is selected, it is displayed in green on color display stations and reverts to
normal (not high intensity) display on monochrome display stations.
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7...
A R MENUBAR MNUBAR
A MNUFLD 2Y ðB 1 2
A MNUBARCHC(1 PULLFILE +
A '>File ')
A ð2 MNUBARCHC(2 PULLEDIT +
A &EDITTXT)
A MNUBARCHC(3 PULLVIEW +
A '>View ')
A ð4 MNUBARCHC(4 PULLOPT +
A '>Options ')
A MNUBARCHC(5 PULLHELP +
A '>Help ')
A MNUBARSEP((\COLOR WHT))
A CHCAVAIL((\COLOR WHT) (\DSPATR HI))
A CHCSLT((\COLOR GRN))
A EDITTXT 2ðA P
.
.
.
Figure 6-44. DDS Using CHCAVAIL and CHCSLT for Menu-Bar Choices
In Figure 6-45 on page 6-41, the available selection-field choices are displayed in
pink on color display stations and in high intensity on monochrome display stations.
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7...
A F1 2Y ðB 1 1SNGCHCFLD
A ð1 CHOICE(1 '>Chocolate ')
A CHOICE(2 '>Strawberry ')
A CHOICE(3 '>Vanilla ')
A CHCCTL(1 &CTLCHOC MSG1112 QUSER/A)
A CHCCTL(2 &CTLSTRA &MSG &LIB/&MSGF)
A CHCCTL(3 &CTLVANI)
A CHCAVAIL((\COLOR PNK) (\DSPATR HI))
A CHCUNAVAIL((\COLOR TRQ))
A CTLCHOC 1Y ðH
A CTLSTRA 1Y ðH
A CTLVANI 1Y ðH
A MSG 7A P
A LIB 1ðA P
A MSGF 1ðA P
Figure 6-45. DDS Using CHCAVAIL and CHCUNAVAIL for Selection Fields
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7...
A R PULLDOWN PULLDOWN(\NOSLTIND)
A F1 2Y ðB 1 1SNGCHCFLD
A ð1 CHOICE(1 '>Undo ')
A CHOICE(2 '>Mark ')
A CHOICE(3 '>Copy ')
A CHCCTL(1 &CTLUNDO MSG1112 QUSER/A)
A CHCCTL(2 &CTLMARK &MSG &LIB/&MSGF)
A CHCCTL(3 &CTLCOPY)
A CHCAVAIL((\COLOR PNK) (\DSPATR HI))
A CHCUNAVAIL((\COLOR TRQ))
A CHCSLT((\COLOR YLW))
A CTLUNDO 1Y ðH
A CTLMARK 1Y ðH
A CTLCOPY 1Y ðH
.
.
.
Figure 6-46. DDS Using CHCAVAIL, CHCUNAVAIL, and CHCSLT for Selection Fields
In Figure 6-47, the DDS source for a Single Choice Selection list is shown (the
example does not show all the keywords necessary for a correct subfile definition).
Available choices within the list will be displayed in yellow. Unavailable choices will
be displayed in red. The selected choice will be displayed in green.
A R SFLREC SFL
A CTLFLD 1Y ðH SFLCHCCTL
A R SFLCTLRCD SFLCTL(SFLREC)
A SFLSNGCHC
A .
A .
A .
A CHCAVAIL((\COLOR YLW))
A CHCUNAVAIL((\COLOR RED))
A CHCSLT((\COLOR GRN))
Figure 6-47. DDS Using CHCAVAIL, CHCUNAVAIL, and CHCSLT for Single Choice
Selection List Choices
In Figure 6-48, the DDS source for a Multiple Choice Selection list is shown (the
example does not show all the keywords necessary for a correct subfile definition).
Available choices within the list will be displayed in yellow. Unavailable choices will
be displayed in red. Any selected choices will be displayed in green.
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7...
A R SFLREC SFL
A CTLFLD 1Y ðH SFLCHCCTL
A R SFLCTLRCD SFLCTL(SFLREC)
A SFLMLTCHC
A .
A .
A .
A CHCAVAIL((\COLOR YLW))
A CHCUNAVAIL((\COLOR RED))
A CHCSLT((\COLOR GRN))
Figure 6-48. DDS Using CHCAVAIL, CHCUNAVAIL, and CHCSLT for Multiple Choice
Selection List Choices
Continued-Entry Fields—Overview
A continued-entry field is a set of associated entry fields. Continued-entry fields
are supported on displays attached to any controller. Controllers that support an
enhanced interface for nonprogrammable work stations treat continued-entry fields
as single-entry fields while data is being entered and edited in the fields.
Note: Controllers that do not support an enhanced interface for nonprogrammable
work stations treat continued-entry fields as separate input fields. Insert
and delete characters one segment at a time. When you reach the end of a
segment, the cursor does not move automatically to the next segment.
Figure 6-49 on page 6-43 illustrates the use of continued-entry fields to create a
rectangular text entry field. Consider using this format to avoid using a single input
field that wraps across multiple lines.
The CNTFLD keyword tells the system that this is a continued-entry field and its
parameter tells the system how wide the field should be. The system breaks the
field into columns and uses as many lines as it needs to reach the specified width.
For more information about the WRDWRAP keyword, see “Specifying Word Wrap
for Fields” on page 2-20.
The length of the DBCS continued-entry field must account for the SO/SI character
pairs that bracket the DBCS data on each segment of the continued-entry field.
The following total field lengths are required to ensure the field data fits into DBCS
continued-entry fields:
If the field is a DBCS-open field, the following are removed before the field is
returned to the application:
All single byte subfields at the end of a segment which consist only of one null
or are empty. This is to remove any SO/SI pairs that most likely have been
automatically inserted as a result of double byte data falling on a segment
boundary. Removing the extra SI/SO characters occurs for all hardware
regardless of whether the controller supports an enhanced interface for nonpro-
grammable work stations.
Single byte nulls that end a segment if the following is true:
– The number of nulls is three or less
– The previous character is not an SI character or null
– The next segment begins with an SO character
This is to remove any nulls that most likely have automatically been inserted as
a result of double byte data falling on a segment boundary.
Character data
In replace mode, there is no unique character data processing. When character
data is entered in the last character position of the first or one of the middle fields
in the set, the cursor moves to the first character position of the next field in the
set. When character data is entered in the last character position of the last field in
the continued fields, forward field-exit processing is performed (see “Forward Field-
Exit Processing” on page 6-49).
In insert mode and cursor direction matches field direction, the following actions
occur when a character data key is pressed:
In insert mode and cursor direction does not match field direction, the insert takes
place within a subfield. The insert is the same as if the field and cursor direction
matched, but the insert is performed within the subfield. The extent of a subfield is
defined as follows:
When the cursor direction is right-to-left, the subfield extends from the cursor to
the first null logically following the cursor. If there is no such null, the subfield
includes all positions logically following the cursor.
When the cursor direction is left-to-right, the subfield extends from the cursor to
the first null logically following the cursor. If there is no such null, the subfield
includes all positions logically following the cursor.
Field Mark
Processed the same as character data.
Delete
If the delete key is pressed within a continued-entry field and the cursor direction
matches the field direction, the following actions occur:
All field data within the continued-entry fields logically following the current
cursor location is shifted toward the cursor one position. Each data character
in the first character position of the remaining fields in the set is shifted to the
last character position of the preceding field.
A null is written in the last character position in the continued-entry fields.
For DBCS-only, DBCS-either (with DBCS data), and DBCS-pure continued
fields, all field data (not including the SO and SI characters) within the set of
field segments logically following the current cursor location is shifted toward
the cursor two positions. Each DBCS character in the first double byte char-
acter position of the remaining segments is moved to the last double byte char-
acter position of the preceding segment. A double byte null is written in the
last double byte character position of the last segment.
For DBCS-open fields, the data in the set of field segments, at and to the right
of the cursor, is copied into one continuous buffer. The deleted character or
subfield is removed from the start of the buffer. In addition, all single byte nulls
are removed from the buffer, and the data is shifted toward the beginning of the
buffer. All adjacent SI/SO character pairs (that is, empty single byte subfields)
are also removed from the buffer. The data is again shifted toward the begin-
ning of the buffer. The remaining data, then, is placed back into the continued
field one character at a time, according to the algorithm for writing data into a
DBCS-open continued field. The remaining character positions are replaced
with nulls.
If the delete key is pressed within a continued field when the cursor direction and
field direction do not match, the delete is performed within a subfield. The defi-
nition for subfields is the same as for the insert key.
Erase EOF
All field positions at (and logically following) the current cursor location within the
continued-entry fields are nulled. In DBCS-only, DBCS-either (with DBCS data),
and DBCS-pure fields, the SO and SI characters are not nulled out. In DBCS-open
fields, an SI character may additionally be written at the current cursor location if
the erase began in a double byte subfield.
Erase Input
All field positions of all changed fields are nulled. This includes all continued-entry
field segments if any continued-entry field segment has been changed. In
DBCS-only, DBCS-either (with DBCS data), and DBCS-pure fields, the SO and SI
characters are not nulled out.
Reverse
The cursor direction is reversed. If the preceding keystroke was not a cursor
movement key, the cursor is repositioned to the new first character position of the
current segment.
Field Exit
Pressing the Field Exit key within a continued-entry field causes the following
actions to occur:
All field data within the continued-entry fields at (and logically following) the
current cursor location are nulled. In DBCS-only, DBCS-either (with DBCS
data), and DBCS-pure fields, the SO and SI characters are not nulled out. In
DBCS-open fields, an SI character may additionally be written at the current
cursor location if the nulling began in a double byte subfield.
Forward field-exit processing is performed (see “Forward Field-Exit Processing”
on page 6-49).
Field Plus
Processed the same as Field Exit.
Field Minus
Not allowed. Operator error 0016 is posted.
Dup
Pressing the Dup key within a continued-entry field causes the following actions to
occur:
All field data within the continued-entry fields at (and logically following) the
current cursor location are set to the Dup character (1C). In DBCS-only,
DBCS-either (with DBCS data), and DBCS-pure fields, the SO and SI charac-
ters are not replaced with the Dup character. In DBCS-open fields, the cursor
must be on the very first character (whether it is a single byte or double byte
character) when the Dup key is pressed. Every character of every segment is
replaced with the Dup character ('1C') including all SO and SI characters. If the
cursor is not on the first character, operator error 0019 is posted.
Forward field-exit processing is performed (see “Forward Field-Exit Processing”
on page 6-49).
Kanji
The Kanji key causes the following actions to occur when pressed within a
DBCS-either continued field:
If the cursor is not at the first field position (when in single byte mode) of the
first segment, or at the second field position (when in double byte mode) of the
first segment, operator error 0062 is posted.
Otherwise, if the field is currently in double byte mode, it is placed into single
byte mode by replacing every character position of every segment with nulls.
The cursor is also placed at the first field position of the first segment.
Otherwise, if the field is currently in single byte mode, it is placed into double
byte mode by replacing every character position of every segment with nulls,
and writing SO and SI characters at the start and end of each field segment
respectively. The cursor is also placed in the first segment immediately fol-
lowing the shift out character.
Character Backspace
Pressing the Character Backspace key in the first position (or first DBCS character
in any DBCS-pure, DBCS-only, or DBCS-either field) of the first segment, moves
the cursor to the last position of the previous field. (The previous field could be a
continued-entry field. The cursor moves to the last position of the last segment
which could be further down on the display.) If the resulting cursor position is in a
DBCS-open, DBCS-only, or DBCS-either field, any SI character at the last position
is skipped. Pressing the Character Backspace key in the first position in a segment
(or first DBCS character in DBCS-pure, DBCS-only, or DBCS-either fields in double
byte mode) other than the first segment, moves the cursor to the last position of the
previous segment. If that resulting position is on a DBCS-only or DBCS-either field
SI character, the SI character is skipped. In addition, within DBCS-open fields,
single byte subfields at the end of a non-last segment are skipped by character
backspace if they consist only of 1 null character. This is to skip nulls that most
likely have been automatically inserted when splitting DBCS data on segment
boundaries.
Character Advance
Pressing the Character Advance key in the last position (or last double byte char-
acter in DBCS-pure, DBCS-only, or DBCS-either fields in double byte mode) of the
last segment, moves the cursor to the first position of the next field. Pressing the
Character Advance key in the last position (or last double byte character in
DBCS-pure, DBCS-only, or DBCS-either fields in double byte mode) of a segment
other than the last segment, moves the cursor to the first position of the next
segment. If the resulting position is on a DBCS-only or DBCS-either field SO char-
acter, the SO character is skipped. In DBCS-open fields, single byte subfields at
the end of a segment are skipped if they consist of only one null. This is to skip
nulls that most likely have been automatically inserted when splitting DBCS data on
segment boundaries.
New Line
Pressing the New Line key generally moves the cursor to the next position on the
display that allows a cursor. If the cursor is in a continued-entry field and an addi-
tional continued-entry field segment is on the next row or a subsequent row, the
cursor moves to the first position of that segment. If the continued-entry field is
also a highlighted field with an invisible text cursor, then pressing the New Line key
exits the continued-entry field. If the resulting position is in a new DBCS-open,
DBCS-only, or DBCS-either field segment of the same field, any S0 character at
the resulting cursor location is skipped. When the cursor moves into a continued-
entry field because the New Line key was pressed, the cursor is always positioned
in the first position of the first segment. Pressing the New Line key never moves
the cursor into a middle or last continued-entry field segment.
Field Backspace
When pressed while the cursor is not in the first position (or first DBCS character in
a DBCS-pure, DBCS-only, or DBCS-either field) of the first segment, the cursor
moves to the first position (or first DBCS character in a DBCS-pure, DBCS-only, or
DBCS-either field) of the first segment. Otherwise, Field Backspace performs back-
ward field-exit processing (see “Backward Field-Exit Processing”).
If cursor progression is not specified on the first continued-entry field segment, and
the cursor exits the continued-entry field in the forward direction, the cursor skips
any subsequent segments of the continued-entry field and moves to the next non-
protected field. The next nonprotected field is determined by exiting the first con-
tinued field segment, independent of which segment contained the cursor. If the
resulting position is in a DBCS-open, DBCS-only or DBCS-either field, any SO
character at the first position is skipped. The cursor is placed at the second posi-
tion.
Note: If a continued-entry field is also defined as a highlighted field, the system
restores the leading-field attribute of each segment when the cursor exits
the field.
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7...
A HELP ALTHELP CFð3
A MNUBARSW(CA1ð) MNUCNL(CA12)
A R MENUBAR MNUBAR
A MNUFLD 2Y ðB 1 2
A MNUBARCHC(1 PULLFILE +
A '>File ')
A ð2 MNUBARCHC(2 PULLEDIT +
A &EDITTXT)
A MNUBARCHC(3 PULLVIEW +
A '>View ')
A ð4 MNUBARCHC(4 PULLOPT +
A '>Options ')
A MNUBARCHC(5 PULLHELP +
A '>Help ')
:
:
A R APPSCR MNUBARDSP(MENUBAR &MNUCHOICE)
A FIELD1 1ðA B 1ð 12
A FIELD2 5S ðB 14 12
A 24 1'F1=Help F3=Exit +
A F1ð=Actions F12=Cancel '
A MNUCHOICE 2Y ðH
The system displays the menu-bar record first and then performs the write-read
operation to the application record. The active function keys and command keys
are those defined on the application record and not those defined on the menu-bar
record. If you want to use the MNUCNL keyword or the MNUBARSW keyword,
define them at the file level or on the application record.
Ordinarily, writing a record to the display without the OVERLAY keyword causes
the entire display to be erased before the record is displayed. The system displays
the menu-bar record followed by the application record as if they were logically one
record. The system automatically prevents the application record from erasing the
menu-bar record. In Figure 6-50 on page 6-50, when the system writes the appli-
cation record, it clears the entire display except for the menu-bar record. The
menu-bar record is always processed as though it contains the OVERLAY keyword
regardless of any other specifications. For example, if the CLRL keyword is speci-
fied on the menu-bar record, it is not used when the menu-bar record is processed.
The OVERLAY keyword and the CLRL keyword are processed normally for the
application record; however, the menu-bar record is not cleared.
The only active command keys and function keys are those defined on the applica-
tion record and not those defined on the menu-bar record. If you want to use the
MNUCNL keyword or the MNUBARSW keyword, define them at the file level or on
the application record.
The only command keys and function keys that are valid are those defined on the
menu-bar record. If you want to use the MNUCNL keyword or the MNUBARSW
keyword, define them at the file level or on the menu-bar record.
A menu-bar record may also be written without being displayed. If the system
attempts to write a pull-down menu record or a menu-bar record (without the
MNUBARDSP keyword optioned on) while the corresponding menu bar is dis-
played, an error occurs and the record is not written.
When a valid attention identifier (AID) key (other than the cancel key and the
menu-bar switch key) is pressed when a pull-down menu is displayed, control is
returned to the application and input may be received from the pull-down menu.
The valid AID keys that return input are the Enter key and any CFxx keys that are
defined on the pull-down menu record. (A CAxx key returns control to the applica-
tion, but does not return input.) Keys that are defined for the background display
are not valid unless they are also defined on the pull-down menu record. There-
fore, define the background keys and the pull-down menu keys once at the file
level.
Once a valid AID key (one that returns input) is pressed for a pull-down menu, the
application receives input for the record being read (either the application record or
the menu-bar record). By looking at the menu-bar choice number that is returned
in this record, the application can determine which pull-down menu record has
input. The application then must read that pull-down menu record. No I/O opera-
tion is done to the display; the input from the pull-down menu is returned to the
application and the pull-down menu remains displayed.
Figure 6-52 on page 6-54 illustrates the use of the PULLINPUT parameter on the
MNUBARDSP keyword.
To remove the pull-down menu and keep the current application display (perhaps
updated), the application performs another write-read (or read) operation to the
current (or changed) application record.
To remove the pull-down menu and display a window, the application writes a
window with the RMVWDW keyword specified.
To remove the pull-down menu and call another program, the application writes to
a dummy record and then calls the other program.
To leave the pull-down menu on the display and present a window (perhaps a help
window), the application writes the window record (without RMVWDW).
A pull-down menu remains on the display while UIM help is displayed in a window.
A pull-down menu also remains on the display while application help is displayed if
the application help record is a window and does not have the RMVWDW keyword
specified.
For the DDS in Figure 6-53, if the user selects menu-bar choice 1 or 4, control is
returned to the application with the choice number set in the RTNFLD field. The
menu-bar field or the choice field in the application record contains 0, indicating no
pull-down menu input was received. The application must read the menu-bar
record to get the contents of the RTNFLD field. The application then updates the
pull-down menu record for that choice and writes it. The application must read the
menu-bar record or the application record to request the display. After control has
been returned for updating the pull-down menu, the next record written must be the
pull-down menu specified on the MNUBARCHC keyword. In this example, if choice
1 was selected, record PULLFILE must be written; if choice 4 was selected, record
PULLOPT must be written. The system then displays the pull-down menu for the
choice and resumes control of the menu bar and pull-down menu interaction. A
read operation to a pull-down menu is not allowed until input has been received for
the pull-down menu. A write-read operation is never allowed.
Figure 6-55 is an example of the DDS coding for single-selection field choice help.
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7...
A HELP
A R PULLEDIT CFð4 CFð6
A WDWBORDER((\CHAR '+-+||+-+'))
A PULLDOWN
A H HLPARA(\FLD F1 1)
A HLPRCD(UNDOHLP LIB/FILE)
A H HLPARA(\FLD F1 2)
A HLPRCD(MARKHLP LIB/FILE)
A H HLPARA(\FLD F1 3)
A HLPRCD(COPYHLP LIB/FILE)
A F1 2Y ðB 1 1SNGCHCFLD
A CHECK(ER)
A ð1 CHOICE(1 '>Undo ')
A CHOICE(2 '>Mark ')
A CHOICE(3 '>Copy ')
Use the \FLD special value on the HLPARA keyword to indicate that the help area
is for a field. Following \FLD, specify the name of the field for which you are
defining help. Following the name of the field, specify the number of the choice for
which you are defining help.
As with any help specification, the text for choice-level help can be defined using
DDS records (HLPRCD keyword), OfficeVision* documents (HLPDOC keyword), or
UIM panel groups (HLPPNLGRP).
Help specifications must define help areas within the area encompassed by the
menu-bar record or the pull-down record.
If you use UIM help, item-specific help for a menu-bar choice includes the help
modules for the menu-bar choice and its pull-down menu. If you use DDS or
OfficeVision document help, item-specific help for the menu-bar choice is the help
for the menu-bar choice. The help area for the menu-bar choice includes the text
for the choice plus one space on each side of the text. The middle space between
the choices is part of the extended help area.
Item-specific help for menu bars is displayed when the cursor is located in one of
the following areas:
A menu-bar choice (if there is help for that choice).
Anywhere within an active pull-down record that does not include an active help
area. When the cursor is on the pull-down menu border, item-specific help is
displayed for the menu-bar choice item.
Item-specific help for a pull-down menu choice is displayed when the cursor is in an
active help area in the pull-down menu. The help area for a pull-down menu
choice starts on the first digit of the number and ends at the border of the selection
field. Help for pull-down menus and menu bars are part of the extended help for
the display. When the pull-down menu is displayed, all help areas are active
except the ones that are overlapped by the pull-down menu. Help for overlapped
areas can be viewed only in extended help. If a base display help area is partially
overlapped by a pull-down menu, the part of the help area that is not overlapped is
still active.
There are two help lists; one for the base display and one for the menu bar and its
pull-down menus. The help list for the menu bar is created when the menu bar is
displayed. The help list is destroyed when the menu bar is removed from the
display. For an example of a help list for a menu bar, see Figure 6-56 on
page 6-59. The help list is updated when the menu bar or pull-down menu is
written again. When the cursor is in a menu bar or pull-down menu, the menu-bar
help list is searched for item-specific help. The menu-bar help list is considered
above the base-display help list. When extended help is displayed, help for menu
bars and pull-down menus is presented immediately after general help. Base
display help is presented after menu-bar help and pull-down menu help. If DDS
help is used and the user initially selects pull-down menu help, the user then can
page up to see menu-bar help and page down to see base-display help.
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7...
A HELP
A R RECORD
A H HLPARA(\FLD FIELD)
A HLPRCD(FIELDHLP LIB/FILE)
A FIELD 1ðA B 5 5
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7...
A HELP
A R RECORD
A H HLPARA(\CNST 1)
A HLPRCD(HLPCNST1 LIB/FILE)
A 2 2'Constant field' HLPID(1)
When the display file is created, the actual help area coordinates are determined by
the DDS compiler. These coordinates are shown in the expanded source section
of the DDS listing (unless the field is a choice field).
á ñ
Figure 6-59. Cursor Locations
Table 6-7 on page 6-61 describes the actions that are performed when certain
keys are pressed at the cursor locations.
Cursor Movement
You can move the cursor on the application displays that you create using the Tab
key or the Cursor keys.
On display stations in configuration F from Table 6-2 on page 6-3, the following is
true:
The Menu-bar choices are individual fields.
The single-choice selection field is one field.
The multiple-choice selection fields are individual fields.
Pressing the Tab key for one of these displays when no pull-down menu is dis-
played moves the cursor from choice to choice in the menu bar. Then, the cursor
moves from input field to input field on the rest of the display. When a pull-down
On display stations in configurations A, B, and C from Table 6-1 on page 6-2, and
configurations D and E from Table 6-2 on page 6-3, the menu bar is a single field.
If no pull-down menu is displayed, pressing the Tab key moves the cursor from
choice to choice within the menu bar. The cursor performs a wraparound. When a
menu-bar choice is selected, the cursor is placed in the first input field within the
pull-down menu. Pressing the Tab key moves the cursor from input field to input
field within the pull-down menu and then moves the cursor to the next menu-bar
choice. While the pull-down menu is displayed, you cannot enter data in the input
fields on the base display nor can you tab to the input fields on the base display.
On display stations in configurations A, B, and C from Table 6-1 on page 6-2, and
configurations D and E from Table 6-2 on page 6-3, the cursor moves differently
depending on the type of field it is in.
In the menu bar, pressing the cursor-right or cursor-left keys moves the cursor
from choice to choice. The cursor does not perform a wraparound.
In the base display, pressing any cursor key moves the cursor one position in
the appropriate direction.
When the cursor is positioned on a selection field, see:
– “Cursor Movement in a Vertical Selection Field” on page 6-15.
– “Cursor Movement in a Horizontal Selection Field” on page 6-16.
Programming Examples
Following are examples of the DDS required to display a menu bar and a pull-down
menu with a description of how the DDS coding works.
Description
In the example using the MNUBARDSP keyword on the application record, the
application does a write-read operation to the APPSCR record. This causes the
MENUBAR record and the APPSCR record to be displayed. Because the field
EDITTXT in the MENUBAR record contains the text >Edit, Edit is displayed as the
text for the second menu-bar choice.
Pressing the F10 key provides quick access to the menu bar (which is always
active). Pressing F10 moves the cursor to the first choice in the menu bar.
Pressing F10 again (or F12) moves the cursor back to where it was on the applica-
tion display. On display stations in configuration F from Table 6-2 on page 6-3,
pressing the Tab key moves the cursor from choice to choice in the menu bar. The
cursor skips over any menu-bar choice that is selected. It then moves from input
field to input field on the entire display. On display stations in configurations A, B,
and C from Table 6-1 on page 6-2, and configurations D and E from Table 6-2 on
page 6-3, when the cursor is located within a menu bar, the cursor movement keys
or the Tab key moves the cursor from choice to choice within the menu bar.
If the user selects the Edit action, the system displays the pull-down menu record
(PULLEDIT). CHECK(ER) specifies automatic-enter. When the user types a value
in F1, control is returned to the application without the user having to press the
Enter key. If the user presses F4 or F6, control is also returned to the application.
If the user selects the Options action, control is returned to the application, with 4
set in field RTNFLD and 0 set in field MNUCHOICE. The application determines
from the 0 in field MNUCHOICE that control has been returned for pull-down menu
update. The application reads record MENUBAR to obtain the choice number set
in field RTNFLD. The application updates the record PULLOPT and then writes
record PULLOPT. The system then displays PULLOPT as the pull-down menu for
the options choice. The system resumes control of the menu bar interaction when
the application performs a read operation to the APPSCR record.
On display stations in configurations A and B from Table 6-1 on page 6-2, the
menu bar separator and the pull-down menus display as solid lines.
On display stations in configuration C from Table 6-1 on page 6-2, and configura-
tions D, E, and F from Table 6-2 on page 6-3), the menu-bar separator is made up
of dashes. The side and bottom borders of the pull-down menu are made up of
colons and periods, respectively.
Description
In the example using the MNUBARDSP keyword on the menu-bar record, the appli-
cation writes the MENUBAR record to display the menu bar. The application then
performs a write-read operation to the APPSCR record to display the application
display.
As in the previous example, F10 provides quick access to the menu bar (which is
always active). Pressing F10 moves the cursor to the first choice in the menu bar.
Pressing F10 again (or F12) moves the cursor back to where it was on the applica-
tion display.
On display stations in configuration F from Table 6-2 on page 6-3, pressing the
Tab key moves the cursor from choice to choice in the menu bar and from input
field to input field on the entire display. The cursor skips over any menu-bar choice
that is selected.
When the cursor is located within a menu bar on display stations in configurations
A, B, and C from Table 6-1 on page 6-2, and configurations D and E from
Table 6-2 on page 6-3, the cursor movement keys or the Tab key moves the
cursor from choice to choice within the menu bar.
If the user selects the Edit action, the system displays the pull-down menu record
(PULLEDIT). Because CHECK(ER) is not specified on field F1, the user enters a
value by typing the choice number and pressing the Enter key, or by pressing F4 or
F6. When a value is entered or an accelerator key is pressed, control is returned
to the application. Because the application was doing a write-read operation to the
APPSCR record, the APPSCR record is returned to the application. The applica-
tion must then read the MENUBAR record to determine the choice selected (2 is
returned in field MNUFLD). Because the input-field parameter was not specified on
the MNUBARDSP keyword, the application reads record PULLEDIT to receive the
pull-down menu input.
RV2W855-1
On display stations in configuration C from Table 6-1 on page 6-2, the display
looks like this:
RV2W067-0
On display stations in configurations D and E from Table 6-2 on page 6-3, the
display looks like this:
RV2W068-1
On display stations in configuration F in Table 6-2 on page 6-3, the display looks
like this:
RV3W075-0
The following hotspots are provided by controllers that support an enhanced inter-
face for nonprogrammable work stations:
Command key emulation
Page Up and Page Down key emulation
Enter key emulation
The user can perform the Enter function on InfoWindow II display stations by
double-clicking the left mouse button.
When the user clicks on a command key, the system scans the command key text
to the left until it finds one of the following:
An attribute
Two blanks
Two nulls
A blank and a null
Column one of the row
After finding the beginning of the command key text string, the system scans the
text to the right until it finds a match with one of the following:
Fx= x can be 1 to 9.
Fyx= y can be 0, 1, or 2. If y is 0, x can be 1 to 9. If y is 1, x can be 0 to 9.
If y is 2, x can be 0 to 4.
PFx= x can be 1 to 9.
PFyx= y can be 0, 1, or 2. If y is 0, x can be 1 to 9. If y is 1, x can be 0 to 9.
If y is 2, x can be 0 to 4.
PFx x can be 1 to 9.
PFyx y can be 0, 1, or 2. If y is 0, x can be 1 to 9. If y is 1, x can be 0 to 9.
If y is 2, x can be 0 to 4.
After the system finds a match, it performs the command key function.
A single event AID definition would also associate an AID code with a single pointer
device event whereas the two event AID definition would also associate an AID
with two consecutive pointer device events.
Notes:
1. This function is available only for displays attached to a controller that supports
an enhanced interface for nonprogrammable work stations.
2. The only pointer device supported is a mouse or a device that emulates a
mouse.
Notes:
1. The Shift key or Shift Lock key must be held down for a shifted pointer device
event. Caps Lock state and Shift Lock state are not considered shifted.
Releasing the Shift key does not reset Caps Lock state or Shift Lock state if
used for a shifted pointer device event.
2. The nonprogrammable work station (NWS) has a setup option to switch the
functions of the left and right buttons within the NWS. The system has no
knowledge of this. This provides the concept of left- and right-handed mice.
For this document, all references to the mouse buttons assumes a right-handed
mouse where the left and right buttons follow the usual definitions for left and
right.
When a two event pointer device event is performed, the system looks for the
leading edge event. When the leading edge event is received, the following occurs:
Note: Inbound data is not returned until the trailing edge event occurs.
1. A programmable-two-event state is entered.
2. A marker box is drawn around the location of the pointer device cursor on non-
programmable work stations capable of displaying a marker box. The marker
box appears as 4 blue lines around the character.
3. The pointer device color is changed to white on nonprogrammable work
stations capable of displaying white.
4. The system looks for the trailing edge event.
Keystrokes and host data streams will cancel the programmable-two-event state.
Some pointer device events are ignored while waiting for the trailing edge event.
For more information, see “Programmable Mouse Buttons—NWS Considerations”
on page 6-72. When the trailing edge event is received, the following occurs:
1. The marker box is erased
2. The pointer device cursor color is changed to input inhibited
3. The keyboard is locked
4. The text cursor is moved to the location of the pointer device cursor
If the specified host-defined AID normally returns inbound entry field data,
inbound data is included. The ending row and column location is returned.
Using programmable mouse buttons can prohibit other pointer device functions on
the display. For example, the copy and paste function has a lower priority than the
programmable mouse buttons for the shifted left button press and release. For
more information on the priority of pointer device events, see “Programmable
Mouse Buttons—Event Processing Priority” on page 6-73.
The NWS passes an event to the system any time a button is pressed or released.
It passes a double-click event to the system if a button is pressed, released, and
pressed again within a user-specified double click time. The system sees a button
pressed event, button released event, and a double click event, and eventually a
button released event.
A pointer device event will be ignored by the system if any of the following are true:
The keyboard is locked. An exception is single event programmable mouse
buttons which can be defined to be queued if the keyboard is locked.
The keyboard is in system request state or ss message state.
The keyboard is in operator error state. An exception is the left button down
and shifted left button down which can reset an operator error.
The display is in WP mode.
The system has any stored type ahead keystrokes.
The system does not have a pending read. An exception is single event pro-
grammable mouse buttons. When the keyboard is unlocked, the system
normally has a pending read. However, 3270DE sometimes unlocks the key-
board without a pending read. Processing a pointer device event could be con-
fusing in this case.
Mouse button events which cause states to be reset are not processed any further.
Keyboard events and host screen updates are processed as usual after resetting
any mouse event processing state.
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7...
A GRDATR((\COLOR BLU) (\LINTYP SLD))
A
A R GRDREC GRDRCD
A 96 GRDCLR
A GRDBOX((\POS (3 1ð 4 2ð)) +
A (\TYPE PLAIN) +
A (\COLOR RED) (\LINTYP THK) +
A (\CONTROL &CNTL1))
A
A GRDBOX((\POS (1ð 2 1ð 6ð)) +
A (\TYPE HRZVRT 2 15) +
A (\CONTROL &CNTL2))
A CNTL1 1S ðP
A CNTL2 1S ðP
A
A R REC1
A
A FIELD1 7A B 15 5CHGINPDFT
A
A FIELD2 7A B 18 35CHGINPDFT
Figure 6-61. DDS for Grid Line Structures—Example
When record GRDREC is written with option indicator 96 on, the GRDCLR keyword
causes all grid line structures on the screen to be cleared. The remainder of the
keywords are then processed in the order that they are coded. If the program-to-
system field CNTL1 contains a 1, the first GRDBOX keyword is ignored. If CNTL1
contains 0, a PLAIN box grid is displayed. This box begins at row 3, column 10. It
has a depth of 4 rows and a width of 20 columns. The box has a thick line type
and is red. If CNTL1 contains -1, the grid line structure at the defined position is
erased and all other grid line structures on the display are left intact.
Grid line structures are defined in records separate from other data fields. Grid line
records are displayed independent of all other data records. Grid line records are
also cleared independent of other data records. If the device file has
DFRWRT(*YES), all records written are buffered until a GET operation is done.
This includes all grid line records. A READ or PUTGET operation cannot be done
to a grid line record because there is no possible input for the grid line record. The
FRCDTA keyword is allowed on grid line records. In this case, the grid line record
written is immediately displayed regardless of the DFRWRT keyword.
A grid line record can define a window or specify a window reference record.
When a grid line structure is defined with a window, all start- row and start-column
parameters are relative to the start of the window. This includes both the start-row
and start-column parameters defined with DDS and the start-row and start-column
values set at run time with program-to-system fields. A grid line structure can be
displayed outside of the window. The depth, width, and length parameters will trun-
cate to the end of the display if they are too large for the display size.
For the desktop and floorstanding PS/55 systems, the Japanese keyboard
(5576-001/002/003/A01) and DBCS-capable display (5574) are required. The 5530
system has an integrated display. As a twinaxial communication adapter, 5250
adapter/A (ID#65X1092) is required.
The AS/400 system can sense if the attached display is capable of displaying grid
line structures. If a grid line record is written to a display that does not support grid
line structures, the record is ignored. However, window keywords on the grid line
record are processed.
Grid line structures (nonfield level file) can be printed using the Print Screen key if
the printer supports DBCS.
You can tailor documents on the Web to present multimedia information from a
variety of sources allowing end users to optionally access the information identified
by the links.
DDS support of the AS/400 5250 Workstation Gateway allows you to change
existing applications to enable them for the Internet through the World Wide Web.
The AS/400 5250 Workstation Gateway translates all 5250 data streams to an
HTML (Hypertext Markup Language) document and exports the document from
AS/400. You can insert HTML tags into a display file that allow graphic capabilities
of the client web browser to be utilized with only minor changes to the display file
source.
The HTML keyword is given a row/col position in the DDS file. However, row and
column positioning has no meaning in an HTML document. The row and column in
Example 1
The HTML field has a starting column 2 before an output field. The HTML will
appear before the field.
A ð1 FLD1A 2ð O 15 7DFTVAL('Output Field')
A ð1 15 5HTML('<p>HTML code')
Example 2
The HTML field has a starting column 1 before an output field, meaning that the
HTML starts at the attribute byte of the output field. The HTML will appear before
the field.
A ð1 FLD1A 2ð O 15 6DFTVAL('Output Field')
A ð1 15 5HTML('<p>HTML code')
Example 3
The HTML field has a starting column equal to an output field. The HTML will
appear before the first character of the field.
A ð1 FLD1A 2ð O 15 6DFTVAL('Output Field')
A ð1 15 6HTML('<p>HTML code')
Example 4
The HTML field has a starting column 1 past the starting column of an output field.
The HTML will appear after the 1st character of the output field.
A ð1 FLD1A 2ð O 15 6DFTVAL('Output Field')
A ð1 15 7HTML('<p>HTML code')
Example 5
Example 6
The HTML field has a starting column 2 past the ending column of an output field.
The HTML will appear after the output field.
A ð1 FLD1A 2ð O 15 6DFTVAL('Output Field')
A ð1 15 28HTML('<p>HTML code')
Notes:
1. Merging of HTML and DDS fields does not occur for input fields. Merging
occurs only for output fields.
2. HTML tags are inserted into the data stream if the device query indicates that
the device is an AS/400 5250 Workstation Gateway virtual terminal. Otherwise
for normal displays, the HTML tags are ignored.
Figure 6-62 shows an example of the DDS before adding HTML keyword
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7...
A
A FILE LEVEL KEYWORDS
A
A DSPSIZ(24 8ð \DS3)
A CAð3(ð3)
A
A
A R REC1
A CAð1(ð1)
A CAð2(ð2)
A 5 3ð'Description'
A DSPATR(HI)
A DSPATR(UL)
A 5 13'Item'
A DSPATR(HI)
A DSPATR(UL)
A 5 65'Price'
A DSPATR(HI)
A DSPATR(UL)
A FLDðð1 1ðA O 6 13
A FLDðð2 25A O 6 3ð
A FLDðð3 6A O 6 65
A 1 36'Catalog'
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7...
A
A FILE LEVEL KEYWORDS
A
A DSPSIZ(24 8ð \DS3)
A CAð3(ð3)
A
A
A R REC1
A CAð1(ð1)
A CAð2(ð2)
A 5 3ð'Description'
A DSPATR(HI)
A DSPATR(UL)
A 5 13'Item'
A DSPATR(HI)
A DSPATR(UL)
A 5 65'Price'
A DSPATR(HI)
A DSPATR(UL)
A FLDðð1 1ðA O 6 13
A FLDðð2 25A O 6 3ð
A FLDðð3 6A O 6 65
A 7 2HTML('<img src="http://www.ice.com +
A /bin/sundae.gif')
A 1 36'Catalog'
On AS/400 5250 Gateway display stations, you would see the following graphic
image if you used the DDS source in Figure 6-63:
Due to limitations of the web browser, the 5250 Gateway does not support
many of the graphic structures that DDS allows.
The following keywords are allowed, but are not supported. Attempting to
display them will have unpredictable results.
Windows (WINDOW keyword)
Menubars (MNUBAR keyword)
Pulldown (PULLDN Keyword)
Selection Lists (SFLMLTCHC/SFLSNGCHC keywords)
Selection Fields (SNGCHCFLD/MLTCHCFLD keywords)
PushButtons (PSHBUTTON keyword)
Scrollbars (SCRBAR keyword)
Continued Entry Fields (CNTENTFLD keyword)
Example: You create a display file named DISPLAY33 using the Create Display
File command:
Your application program specifies display file DISPLAY33 with STATION50 for the
display station and *NO for the IGCDTA parameter, which determines double-byte
character processing.
Before you run the application program, you want to change the display station to
STATION23 and wait file time to 45 seconds. The override command looks like
this:
OVRDSPF FILE(DISPLAY33) DEV(STATION23) WAITFILE(45)
When the application program opens the file, the file overrides, program-specified
attributes, and file attributes are merged to form the open data path (ODP), which is
used during the running of the program to manage access to the file and to
manage its attributes. File overrides have precedence over program-specified attri-
butes. Program-specified attributes have precedence over file-specified attributes.
In this example, when the file is opened, the following is used:
Display station STATION23
A double-byte character processing value of *NO
A wait file time of 45 seconds
The level identifiers of the records formats are not checked when the file is
opened.
Display
Program A File DISPLAY33
.
SRCFILE(DDSFILE1)
.
DEV(STATION1)
.
IGCDTA(*YES)
Open
WAITFILE(30)
DISPLAY33
LVLCHK(*NO)
.
.
.
Program-Specified
Attributes Open Data Path
DEV(STATION50) SRCFILE(DDSFILE1)
IGCDTA(*NO) DEV(STATION23)
IGCDTA(*NO)
WAITFILE(45)
LVLCHK(*NO)
Override Command
DEV(STATION23)
WAITFILE(45)
RV2W016-3
Example: You want the output from your application program to be displayed
using the display file DISPLAY12 instead of the display file DISPLAY33
(DISPLAY33 is specified in the application program). Before you run the program,
enter the following:
OVRDSPF FILE(DISPLAY33) TOFILE(DISPLAY12)
The file DISPLAY12 must have been created by a CRTDSPF command before it
can be used.
Display
file
DISPLAY33 DISPLAY33 output
Program
.
Before .
Override: Use display file DISPLAY33
.
.
Record
format RV2W006-2
Record
format
RV2W007-2
You may want to override a file with a file that has a different file type; for example,
you may want to override a display file with a diskette file using the Override
Diskette File (OVRDKTF) command. To determine if your file can be overridden
with a file that has a different file type, see the information under “Using File Redi-
rection to Override File Names and Libraries or File Types” on page 7-6. More
information about overriding with different file types is available in the Data Man-
agement book.
Assume the file REPORTS was created with the following command:
CRTDSPF FILE(REPORTS) SRCFILE(DDSFILE1) SRCMBR(MEMBER1) WAITFILE(25)
Then call the application program. The display file REPORTS is used with a wait
file time of 50 seconds.
Note that the single override command used in the previous example is not equal
to the following two override commands:
Override 1 OVRDSPF FILE(OUTPUT) TOFILE(REPORTS)
Override 2 OVRDSPF FILE(REPORTS) WAITFILE(5ð)
Only one override is applied for each call level for an open operation of a particular
file. If you want to override the file that is used by the program and also override
the attributes of the overriding file from one call level, you must use a single
command. If two overrides are used, override 1 causes the output to be displayed
using the display file REPORTS, but override 2 is ignored.
Overrides to the source file are handled just like any other override. They may
select another file, another member of a database file, or change other file attri-
butes.
Overrides may also be applied to files that are used within the program being com-
piled, if they are being used as externally described files in the program. These
files are not opened at compile time, and thus the overrides are not applied in the
normal manner. These overrides are used at compile time only to determine the
file name and library that will be used to define the record formats and fields for the
program to use I/O operations. Any other file attributes specified on the override
are ignored at compile time. It is necessary that these file overrides be active at
compile time only if the file name specified in the source for the program is not the
file name that contains the record formats that the application needs.
The file name that is opened when the compiled program is run is determined by
the file name that the program source refers to, changed by whatever overrides are
in effect at the time the program runs. The file name used at compile time is not
kept. The record formats in the file that is actually opened must be compatible with
Example: Assume that the source for the program INVENTORY, which has a wait
file time of 15 seconds, contains an open to the display file LISTOUT:
Override 1 OVRDBF FILE(RPGSRC) TOFILE(SRCPGMS) MAXRCDLEN(77)
Override 2 OVRDSPF FILE(OUTPUT) TOFILE(REPORTS)
CALL PGM(A)
Program A
Override 3 OVRDSPF FILE(LISTOUT) TOFILE(OUTPUT)
Override 4 OVRDBF FILE(RPGSRC) WAITFILE(3ð)
CRTRPGPGM PGM(INVENTORY) SRCFILE(RPGSRC)
RETURN
The program INVENTORY opens the display file REPORTS in place of display file
LISTOUT and allows DBCS data.
The program INVENTORY is created (compiled) from database file SRCPGMS and
allows a maximum record length of 77 characters. Override 4 (applied first) over-
rides an optional file attribute. Override 1 (applied last) causes the file RPGSRC to
be overridden with the database file SRCPGMS and a maximum record length of
77 characters.
The program INVENTORY is created with the display formats from the file
REPORTS. Override 3 (applied first) causes the file LISTOUT to be overridden
with OUTPUT. Override 2 (applied last) overrides OUTPUT with REPORTS. Other
attributes may be specified here, but it is not necessary because only the record
formats are used at compile time.
At run time, override 3 is no longer active, because program A has ended. There-
fore override 2 has no effect on LISTOUT. However, override 5, which is active at
run time, replaces LISTOUT with REPORTS and allows DBCS data. Because the
same file is used for both compilation and run-time, level checking may be left on.
Deleting Overrides
If you want to delete an override, you can use the Delete Override (DLTOVR)
command.
If you use the DLTOVR command in an application that either calls or transfers
control to other programs, the override may or may not be deleted. More informa-
tion about deleting overrides in application programs is available in the Data Man-
agement book.
If you use the DSPOVR command to display the overrides used by an application
that either calls or transfers control to other programs, you can control which over-
rides are displayed. More information about displaying overrides used in applica-
tion programs is available in the Data Management book.
Any attributes specified on overrides of a different file type than the final file type
are ignored. The parameters SPOOL, SHARE, and SECURE are exceptions to
this rule. They will be accepted from any override applied to the file, regardless of
device type.
Some redirection combinations present special problems due to the specific charac-
teristics of the device. In particular:
File redirection is not recommended for save files.
Display files and ICF files that use multiple devices (MAXDEV or
MAXPGMDEV > 1) can be redirected only to a display file or ICF file.
Redirecting a display file to any other file type, or another file type to a display
file, requires that the program be recompiled with the override active if there are
any input-only or output-only fields. This is necessary because the display file
omits these fields from the record buffer in which they are not used, but other
file types do not.
To use this chart, identify the file type to be overridden in the FROM-FILE columns
and the file type overriding in the TO-FILE column. The intersection specifies an I
or O or both, meaning that the substitution is valid for these two file types when
used as input files or as output files.
For instance, you can override a diskette output file with a tape output file, and a
diskette input file with a tape input file. The chart refers to file type substitutions
only. That is, you cannot change the program function by overriding an input file
with an output file.
The following chart describes the specific defaults taken and what is ignored for
each redirection combination involving display files:
ADDLFM DSPJRN
ADDPFM EDTOBJAUT
ALCOBJ EDTDLOAUT
APYJRNCHG ENDJRNPF
CHGOBJOWN GRTOBJAUT
CHGPTR INZPFM
CHGSBSD MOVOBJ
CHGXXXF (all change file commands) RGZPFM
CLRPFM RMVJRNCHG
CLRSAVF RMVM
CPYIGCTBL RNMOBJ
CRTDKTF RSTUSRPRF
CRTDUPOBJ RVKOBJAUT
CRTAUTHLR SAVCHGOBJ
CRTSBSD SAVLIB
CRTTAPF SAVOBJ
DLCOBJ SAVPGMPRD
DLTF SAVSAVFDTA
DLTAUTHLR SAVSYS
DSPDBR SBMDBJOB
DSPFD SIGNOFF
DSPFFD STRDBRDR
STRJRNPF
Overrides are not applied to any system files that are opened as part of an end-of-
routing step or end-of-job processing. For example, overrides cannot be specified
for the job log file. In some cases, when you need to override something in a
system file, you may be able to change it through a command other than an over-
ride command. For example, to change the output queue for a job log, the output
queue could be changed before sign-off using the OUTQ parameter on the Change
Job (CHGJOB) command to specify the name of the output queue for the job. If
the printer file for the job log contains the value *JOB for the output queue, the
output queue is the one specified for the job.
The SRCFILE and SRCMBR parameters on the following commands are affected
by overrides: overrides for the SRCFILE
CRTCMD CRTPF
CRTICFF CRTPRTF
CRTDSPF CRTSRCPF
CRTLF CRTTBL
CRTXXXPGM
(All create program commands. These commands also use over-
rides to determine which file will be opened by a compiled program.
See “Applying Overrides When Compiling a Program” on page 7-4
for more information.)
The following commands allow overrides, but do not allow changing the MBR to
*ALL:
CPYFRMPCD CPYTOPCD
DSPIGCDCT
EDTIGCDCT
QRYDTA
You can specify the following message handling functions for display files:
Display a message on the message line
Display a message on the message line when a subfile control record is written
Define a message line
Display messages in a field on the display
Display messages in a program message queue
Message line
My menu
F3=Exit
Order not found
Output field
My menu
Ways to show
messages on
the display Order not found MSGID keyword
F3=Exit
Subfile
Message 1
Message 2
Message 3 System message support
RV2W005-2
This section uses DDS keywords to define and display messages. For more
information about specific DDS keywords, see the DDS Reference.
When you use ERRMSG, the record that you want to present the message for
must already be on the display. If it is not, the ERRMSG function is not performed.
When you use the ERRMSG keyword to present a message, that message is
written to the message line of the display, which is usually the line at the bottom of
the screen. The user would then press the Reset key to clear the message from
the display and unlock the keyboard to continue typing. You provide the text of the
message right on the ERRMSG keyword. When you write a record that has the
ERRMSG keyword in effect, it causes that message to appear. Typically, you
would use an option indicator to cause the ERRMSG keyword to take effect. When
the application program turns on an option indicator, the keywords that have that
option indicator specified in the DDS then take effect. In this case, an application
program would leave an indicator that optioned an ERRMSG keyword off until the
message needed to be displayed.
In addition, you can change the line on which messages are displayed by using the
MSGLOC keyword. If not specified otherwise, the message line is the last line on
the display. If you use the MSGLOC keyword, the new message line applies to
messages that are displayed for validity-checking errors and keys that are not valid
as well as to user-defined messages.
Notes:
1. If the MSGLOC keyword is not specified, and a display station capable of dis-
playing 27 lines is attached to a local display station controller or attached to a
remote 5294 or 5394 controller, the default values are:
Line 28 for the 27 by 132 screen size
Line 25 for the 24 by 80 screen size
2. If line 25 is specified for the 24 by 80 mode, either because the default was
used or line 25 was specified in the MSGLOC keyword, the message actually
appears on line 24 unless the display is capable of displaying the message on
line 25.
3. The normal system display for message help gives the user access to
extended help (by pressing the Help key again), and may allow the user to use
F10 to display all messages in the job log. The message help display used for
a display station other than the job requester display station or for a display
station associated with a multi-display file does not provide these functions.
When the MSGID keyword is used, the keyboard is not locked because the field on
which it is specified is a normal output-capable field. Message help and substi-
tution variables are not supported for the MSGID keyword.
The ERRSFL keyword can be used in addition to the ERRMSG and ERRMSGID or
SFLMSG and SFLMSGID keywords to allow a user to roll through a subfile of error
messages. One error message is displayed at a time. The user's program handles
the validity checking of the fields, setting on the option indicators for the appropriate
message to be sent for the fields in error. The system handles putting the
message associated with the field in error in the error subfile, and displaying the
error messages.
The ERRSFL keyword can also be used to put error messages into an error subfile
when the system handles validity checking. Error messages are put into the error
subfile when input fails the validity check for the following reasons:
DDS keywords CHECK(M10 M11 VN VNE), COMP, RANGE, and VALUES
Floating point operations
More than one decimal point is entered in a field that has one or more decimal
positions
Either too many or too few decimal positions are entered in a field that has one
or more decimal positions
The messages can be viewed by paging through the error subfile. Only one error
message is displayed at a time. When the error subfile is displayed, the keyboard
is not locked. It is not necessary to press the Reset key prior to correcting the
fields in error.
If there is a record format currently displayed that covers the line defined to be the
message line, the ERRSFL keyword is ignored.
In this example, assume that RCD1 is currently on the display. When validating the
input data, your program detects several errors and sets on the option indicators
11, 21, and 30. On the subsequent output operation:
FIELD1, FIELD2, and FIELD3 are displayed in reverse image.
The cursor is located in position 2, 3 (start of FIELD1).
The keyboard is not locked.
An error subfile is displayed on line 24. The subfile contains three records:
Error Msg 1, the MSG2 message, and the MSG4 message. The user can
page through the messages, and by placing the cursor on the message line
and pressing the Help key, view the message help for MSG2 or MSG4.
Message CPF9897, which indicates that no help information is available, is dis-
played if the cursor is not located on the message line when the user is
attempting to view the message help of MSG2 or MSG4.
If the Help key is pressed on the message line for Error Msg 1, the message
help for message CPF9897 appears. The message help explains that no
message help is available.
On the subsequent display of RCD1, the error subfile is cleared of the previous
error messages.
Assume that CTLRCD1 and CTLRCD2 are on the display. When validating the
input data, your program detects several errors and sets on the option indicators 11
and 21. On the subsequent output operation:
The cursor is located in position 2, 3 (start of SFLRCD1).
The keyboard is not locked.
An error subfile is displayed on line 24. The subfile contains two records:
Error Msg 1 and the message of SFL0002. The user can page through the
messages, and by placing the cursor on the message line and pressing the
Help key, view the message help for SFL0002. If the Help key is pressed on
the message line for Error Msg 1, the message help for message CPF9897
appears, which explains that no help information is available.
On the subsequent display of CTLRCD1 and CTLRCD2, the error subfile is
cleared of the previous error messages.
The SFLEND keyword is specified on the ERRSFL subfile control record. An error
is issued and the keyboard is locked if the user attempts to roll beyond the top or
bottom of the file.
The following considerations apply to the ERRSFL keyword, except when used with
the ERRMSG and ERRMSGID keywords and the SFLMSG and SFLMSGID
keywords:
When the error subfile is displayed (that is, there are one or more fields in
error), pressing a Roll key results in the error subfile being rolled, regardless of
the cursor position at the time or whether other subfiles are currently displayed.
When processing errors from validity check, the error subfile is built every time
a valid command key, Roll key, or Enter key is pressed and errors occur.
The MSGALARM keyword can be used on any record in a display file, including
subfile control records. The MSGALARM keyword can also be used with the
ERRSFL keyword.
Note: If the MSGALARM and ALARM keywords are specified and active on the
same record format, the alarm sounds only once.
When an I/O error occurs (especially in the case of a communications line failing
for several active jobs at once), using the device-recovery-action job attribute can
save system resources. Also, the device-recovery-action job attribute makes the
job of coding for I/O errors easier. Once the display station is recovered, the user
application can continue at the point the error occurred by using the *DSCMSG and
*DSCENDRQS values. For *DSCMSG, if the major/minor return code is 83E1 after
an I/O operation, the program needs to assume that the display is blank. The
program must branch back to the point at which the first I/O operation to the display
is done. For *DSCENDRQS, the request-processing program receives control
when connecting to the job again. This is similar to selecting option 2 on the
System Request menu. No error recovery is performed for *MSG or *DSCMSG
until an I/O operation is performed to the device in error. For all other values, the
recovery occurs immediately when the error occurs.
Errors can be detected when a file is opened, when a program device is acquired
or released, during I/O operations to a file, and when the file is closed. When
appropriate, the system will automatically try to run a failing operation again, up to
a retry limit. When a retry is successful, neither operator nor program action is
required. Errors that can affect the processing of the program may be reported in
any or all of the following ways:
A notify, status, diagnostic, or escape message may be sent to the program
message queue of the program using the file. These messages may also
appear in the job log, depending on the message logging level set for the job.
A notify, status, diagnostic, or escape message may be sent to the operator
message queue (QSYSOPR) or the history message queue (QHST).
A file status code may be returned by the high-level language.
A major/minor return code is returned in the I/O feedback area for display files.
Only some of these are significant to a program that is attempting error recovery.
Not all file errors allow programmed error recovery. Some errors are considered
permanent; that is, the file, device, or program cannot work until some corrective
action is taken. This might involve resetting the device by varying it off and on
again, or correcting an error in the device configuration or the application program.
Some messages and return codes are used to inform the user or the application
program of conditions that are information rather than errors, such as change in the
status of a communications line, or system action taken for an unexpected condi-
tion. In many cases, it is possible for the application program to test for an error
condition and take some preplanned recovery action which allows the program to
continue without intervention from the user.
If an error occurs for which an escape message is issued and the message is not
monitored, your program will be ended and the message displayed in the operator
message queue. Status messages may also be monitored, but if they are not mon-
itored, the program continues. Most high-level languages except CL monitor for all
the file errors that are likely to be encountered, and provide some standard
recovery. Depending on the severity of the error, the high-level language may
simply end the program and issue a message of its own. Alternatively, you may
code an error recovery routine to handle errors that are anticipated in that particular
application.
The application program can test the return code after each I/O operation. If the
major return code is 00, the operation completed successfully and the minor return
code contains status information that indicates whether a read or a write operation
should be performed next. A major return code of 04 or above indicates that an
error occurred. The program may test for any specific errors for which programmed
Most major/minor return codes are accompanied by any one of several message
numbers, for which the typical recovery action is similar. File status codes are
defined by the individual languages and may be set based on the major/minor
return codes.
The following table defines the major return codes. Appendix E, “Display File
Return Codes” contains specific definitions of the major and minor return codes as
they are used for display files and the message numbers associated with each.
Normal Completion
A major/minor return code of 0000 indicates that the operation requested by your
program was completed successfully. Most of the time, no message is issued. In
some cases, a diagnostic message might be used to inform the user of some
unusual condition that the system was able to handle, but which might be consid-
ered an error under some conditions. For example, a parameter that is not valid
might be ignored, or some default action taken.
A major return code of 02 indicates that the requested input operation completed
successfully, but the job is being ended (controlled). The application program
should complete its processing as quickly as possible. The controlled cancel is
intended to allow programs time to end in an orderly manner. If your program does
not end within the time specified on the ENDJOB command, the job will be ended
by the system without further notice.
A major/minor code of 0309 is used to indicate that no data was received and the
job is being ended (controlled). A major/minor code of 0310 indicates that there is
no data because the specified wait time has ended. Other minor return codes
accompanying the 02 or 03 major code are the same as for a 00 major code, indi-
cating communications status and the operation to be performed next.
A major return code of 34 indicates that an input exception occurred. The received
data was either too long or incompatible with the record format. The minor return
code indicates what was wrong with the received data, and whether the data was
truncated or rejected. Your program can probably handle the exception and con-
tinue. If the data was rejected, you may be able to read it by specifying a different
record format.
Two other return codes in this group, 0800 and 1100, are both usually the result of
application programming errors, but are still recoverable. 0800 indicates that an
acquire operation failed because the device has already been acquired or the
session has already been established. 1100 indicates that the program attempted
to read from invited devices with no devices invited. In both cases, the request that
is not valid is ignored, and the program may continue.
No message is issued with a 02 major code or most minor codes with the 03 major
code, but the other exceptions in this group are usually accompanied by a message
in the CPF4701–CPF47FF or CPF5001–CPF50FF range.
Within this group, several minor return codes are of particular interest. A
major/minor code of 8081 indicates a serious system error for which an APAR
probably will be required. The message sent with the major/minor return code may
direct you to run the Analyze Problem (ANZPRB) command to obtain more informa-
tion.
A major/minor code of 80EB indicates that incompatible options or options that are
not valid were specified in the display file or as parameters on the open operation.
In most cases you can close the file, end the program, correct the parameter that is
not valid with an override command, and run the program again. The override
command affects only the job in which it is issued. It allows you to test the change
easily, but you may eventually want to change or re-create the display file as
appropriate to make the change permanent.
Depending on the file type, the program must either close the file and open it again,
release the device and acquire it again, or acquire the session again. To reset an
error condition in a shared file by closing it and opening it again, all programs
sharing the open data path must close the file. In some cases, the message may
instruct you to reset the device by varying it off and on again. It is unlikely that the
program will be able to use the failing device until the problem causing the error is
found and corrected, but recovery within the program may be possible if an alter-
nate device is available.
Some of the minor return codes in this group are the same as those for the 82
major return code. Device or line failures may occur at any time, but an 81 major
code occurs on an I/O operation. This means that your program had already
established a link with the device or session. Therefore, some data may have been
transferred, but when the program is started again, it starts from the beginning. A
possible duplication of data could result.
Some of the minor return codes in this group are the same as those for the 81
major return code. Device or line failures may occur at any time, but an 82 major
code indicates that the device or session was unusable when your program first
attempted to use it. Thus no data was transferred. The problem may be the result
of a configuration or installation error.
Depending on the minor return code, it may be appropriate for your program to
recover from the error and try the failing operation again after some waiting period.
The number of times you try should be specified in your program. It may also be
possible to use an alternate or backup device or session instead.
Most of the errors in this group are the result of sending commands or data that are
not valid to the device, or sending valid data at the wrong time or to a device that is
not able to handle it. The application program may recover by skipping the failing
operation or data item and going on to the next one, or by substituting an appro-
priate default. There may be a logic error in the application.
The first two types of user-defined menus can be created using the information in
this chapter:
Display file menus Menus that use a display defined by data description specifi-
cations (DDS) to present a menu format. The menu func-
tions are controlled by a message file containing the
commands used to run each of the menu options.
Program menus Menus that use a high-level language program to present the
menu format and provide the functions necessary to run the
menu options.
UIM menus Menus that a menu object defined by the user interface
manager (UIM) panel group definition language. For more
information on defining your own menus using the UIM, see
“Defining a Menu Object Using UIM” on page 16-6.
Some of the examples in this chapter use CL commands. For more information
about specific CL commands, see the CL Reference.
1. User tasks
2. Office tasks
3. General system tasks
4. Files, libraries, and folders
5. Programming
6. Communications
7. Define or change the system
8. Problem handling
9. Display a menu
Selection or Command
===> GO PROGRAM RTNPNT(\YES)___________________________________________________
______________________________________________________________________________
F3=Exit F4=Prompt F9=Retrieve F12=Cancel F13=Information Assistant
F23=Set initial menu
á ñ
2. Next, by typing GO PROBLEM RTNPNT(\NO) on the command line of the Program-
ming menu and pressing the Enter key, the Problem Handling menu is shown.
The Programming menu is not set as a return point.
à PROGRAM Programming
ð
System XXXXXXXX
Select one of the following:
1. Programmer's menu
2. Programming Development Manager
3. Utilities
4. Programming language debug
5. SQL pre-compiler
6. Question and answer
7. IBM product information
8. Copy screen image
Selection or Command
===> GO PROBLEM RTNPNT(\NO)____________________________________________________
______________________________________________________________________________
F3=Exit F4=Prompt F9=Retrieve F12=Cancel F13=Information Assistant
F16=System main menu
á ñ
Selection or Command
===>___________________________________________________________________________
______________________________________________________________________________
F3=Exit F4=Prompt F9=Retrieve F12=Cancel F13=Information Assistant
F16=System main menu
á ñ
3. In this example, if the Cancel key is pressed while viewing the Problem Han-
dling menu, the user is returned to the Programming menu because the Pro-
gramming menu is the preceding display on the menu stack. If F3 (Exit) is
pressed while viewing the Problem Handling menu, the user is returned to the
Main Menu, because the Main Menu is the most recent display from which a
GO command was entered with RTNPNT(*YES).
Note that since the default value for the RTNPNT parameter is *YES, GO PROBLEM
will have the same effect as GO PROBLEM RTNPNT(\YES).
Pressing either F3 (Exit) or F12 (Cancel) while viewing the help for a menu returns
the user to the menu itself.
See the Security – Reference for information about initial menus and limited users.
Help for the menu options may also be provided using DDS. See “Naming Help
Formats for Menus” on page 9-6 for more about help information.
More information about the specific DDS keywords used in this chapter is found
in the DDS Reference.
The following suggestions can also be used to help you define your menu using
DDS:
See “Creating and Displaying Your Own Messages” on page 8-1 for more informa-
tion about messages.
The help formats may be described in any order in the DDS. The system sorts the
help formats in ascending order when the menu is run.
If two or more help format names apply to the same option, only the first help
format (as sorted by the system) will be shown when Help is requested for that
option. For example, if the following help formats are given:
#Hðððð
#Hð1ð1
#Hð2ð5
#Hð3ð6
#Hð7ð7
Typing 3 on the command line (to select option 3) and pressing the Help key will
show the help designated #Hð2ð5. In this example, #Hð3ð6 can be viewed using the
Page Down key, but will be shown directly only by requesting help for option 6.
Similarly, by moving the cursor to the command line and pressing the Help key with
no option typed on the command line, the user is shown extended help for the
menu (#Hðððð). The cursor movement keys can be used to look through the other
help formats for the menu options.
The following example shows a menu with five options. The names of the help
formats and the menu options to which they apply are shown following the
example.
1. Departments menu
2. Education menu
3. Benefits menu
4. Job openings
5. Job applicants
Selection or Command
===>____________________________________________________________________________
_______________________________________________________________________________
á ñ
Help Name Contents
#H0000 General help for the Personnel Menu (PERSMENU)
#H0101 Help for option 1, Departments menu
#H0202 Help for option 2, Education menu
#H0303 Help for option 3, Benefits menu
#H0405 Help for options 4 and 5, Job openings and Job applicants
The help information for the menu options can be shown by typing the option
number on the command line and pressing the Help key, or by pressing Help
(extended help for the menu), and then using the Page Down key to page through
the help for the options.
The following DDS is for the sample display called PERSMENU. The first record
format (PERSMENU) is used to describe the appearance of the menu when dis-
played. Five menu options are listed, starting in position 7 of lines 5 through 9.
Five more record formats are shown: #H0000, #H0101, #H0202, #H0303, and
#H0405. Each of these is used to provide help information for the menu and its
options. Following the system convention described above (see “Naming Help
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7...
A\ PERSONNEL MENU (PERSMENU) SPECIFICATION
A\
A PRINT DSPSIZ(\DS3)
A INDARA
A\
A R PERSMENU LOCK
A 1 ð2'PERSMENU'
A 1 29'PERSONNEL MENU'
A 3 ð2'SELECT ONE OF THE FOLLOWING:'
A 5 ð7'1. DEPARTMENTS MENU'
A 6 ð7'2. EDUCATION MENU'
A 7 ð7'3. BENEFITS MENU'
A 8 ð7'4. JOB OPENINGS'
A 9 ð7'5. JOB APPLICANTS'
A 21 ð2'SELECTION OR COMMAND'
A\
A R #Hðððð LOCK
A 1 ð2'GENERAL'
A 2 26'HELP FOR THE PERSONNEL MENU
A 3 ð2'THIS IS THE GENERAL HELP'
A
A
A 3 27'FOR THE PERSONNEL MENU.'
A\
A R #Hð1ð1 LOCK
A 1 ð2'HELP1'
A 1 26'HELP FOR OPTION 1'
A 3 ð2'THIS IS THE HELP'
A 3 19'FOR OPTION 1.'
A\
A R #Hð2ð2 LOCK
A 1 ð2'HELP2'
A 1 26'HELP FOR OPTION 2'
A 3 ð2'THIS IS THE HELP'
A 3 19'FOR OPTION 2.'
A\
A R #Hð3ð3 LOCK
A 1 ð2'HELP3'
A 1 26'HELP FOR OPTION 3'
A 3 ð2'THIS IS THE HELP'
A 3 19'FOR OPTION 3.'
A\
A R #Hð4ð5 LOCK
A 1 ð2'HELP45'
A 1 26'HELP FOR OPTIONS 4 AND 5'
A 3 ð2'THIS IS THE HELP'
A 3 19'FOR OPTIONS 4 AND 5.'
A\
The DDS source member, PERSMENU, in the source file SFPERS in library
PERLIB, is used to create the display file for the PERSMENU menu.
The message file will be used to contain messages describing the actions taken
when the various menu options are selected.
The MSGID parameter of each ADDMSGD command is in the form USRxxxx, where
xxxx is the menu option number. The MSG parameter contains the command to
run the menu option.
In the following example, the MSG parameters of the first three messages contain
commands to run menus (using the GO command); the last two messages contain
commands which will call programs (using the CALL command) when either of
those menu options are selected from the menu.
ADDMSGD MSGID(USRððð1) MSGF(PERLIB/PERSMENU) +
MSG('GO DEPTMENU RTNPNT(\NO)')
ADDMSGD MSGID(USRððð2) MSGF(PERLIB/PERSMENU) +
MSG('GO EDUCMENU RTNPNT(\NO)')
ADDMSGD MSGID(USRððð3) MSGF(PERLIB/PERSMENU) +
MSG('GO BENEMENU RTNPNT(\NO)')
ADDMSGD MSGID(USRððð4) MSGF(PERLIB/PERSMENU) +
MSG('CALL JOBOPEN')
ADDMSGD MSGID(USRððð5) MSGF(PERLIB/PERSMENU) +
MSG('CALL JOBAPPS')
The DSPKEY parameter specifies whether the function key legend is shown at the
bottom of the menu when the menu is displayed. *NO specifies that the function
key legend is not shown at the bottom of the menu. *YES specifies that the func-
tion key legend is shown at the bottom of the menu. You do not have the option to
display only certain function keys.
1. Departments menu
2. Education menu
3. Benefits menu
4. Job openings
5. Job applicants
Selection or Command
===>____________________________________________________________________________
_______________________________________________________________________________
á ñ
All three parameters must be declared as variables in the program. The return
code determines how the program menu is exited, simulating the function keys
found on IBM-supplied menus. The four possible values are:
Note: The hexadecimal values shown above are used for those high-level lan-
guages (such as CL) that do not support binary numbers. CL programs
should use a 2-byte character variable.
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7...
A DSPSIZ(\DS3)
A PRINT
A CAð3(ð1)
A CA12(ð2)
A HOME(ð3)
A INDARA
A R MENUFMT BLINK OVERLAY
A DSPMNUN 1ðA O 1 2
A 1 72 TIME
A 1 31'EXAMPLE PROGRAM MENU'
A DSPATR(HI)
A 2 2'SELECT ONE OF THE FOLLOWING:'
A 3 5'1.' DSPATR(HI)
A 3 1ð'DISPLAY LIBRARY LIST (DSPLIBL)'
A 4 5'2.' DSPATR(HI)
A 4 1ð'WORK WITH ACTIVE JOBS (WRKACTJOB)'
A 5 5'3.' DSPATR(HI)
A 5 1ð'WORK WITH YOUR JOB (WRKJOB)'
A 6 5'9ð.' DSPATR(HI)
A 6 1ð'RETURN'
A 23 2'OPTION:'
A OPTION 3 I 23 12DSPATR(PC)
The DDS source file called SOURCE1 is used to create the display file for the
PGMMENU menu.
OPTION: ___
á ñ
The program menu needs to communicate with the menu driver that F3 was
pressed. If the program menu is coded to go to program MENU2, with a
RTNPNT(*NO), it has to be able to convey information between programs and to
convey information to the menu driver to tell it what should be done. You can use
data queues to communicate between the programs. For more information about
data queues, see the CL Programming book. The following example shows you
how to communicate between program menus if you want to use the
RTNPNT(*NO) parameter to go from one menu to another:
Deleting Menus
The Delete Menu (DLTMNU) command can be used to delete menu objects from a
library. The DLTMNU command can be used to delete only the menu object. Ref-
erenced display and message files (used by display file menus) and programs
(used by program menus) can also be deleted.
DLTMNU is a generic command. For example, all menus in a library called OELIB
could be deleted using the command, DLTMNU OELIB/\ALL.
As another example, if only those menus in OELIB whose names started with ACC
were to be deleted, the command, DLTMNU OELIB/ACC\ could be used.
When you use the USRDFN keyword at the record level, the format does not
contain any fields. Therefore, the buffer length of the file defaults to the length of
the longest normal record or 100 (whichever is greater). If the user-defined data
stream is longer than this default buffer length, you should perform the following
steps to obtain a larger buffer length:
Define an externally described file, and create the program using this file and a
record format in that file. The format should not have response indicators
defined for it. This includes file-level indicators that are spread to all record
formats. Any fields in the format should be defined with a field use of both
(input and output).
Create a second file and specify LVLCHK(\NO). The second file should have two
record formats:
– A format with the same name as the format in the first file and which con-
tains the USRDFN keyword.
– A format with one field in it. The length of this field must be as long as the
longest user-defined data stream that is to be sent to the screen.
When you run the program, override the first file with the second display file.
For information about coding 5250 display data streams, see the following
manuals:
IBM 5250 Information Display System Functions Reference.
IBM 5494 Remote Control Unit Functions Reference.
The USRDFN keyword is specified at the record format level and excludes for that
record format most other functions such as the use of indicators and all field-related
functions. However, the display file can contain other record formats not containing
the USRDFN keyword, and the record formats can be used in any order by a
program. When you use such a display file, you should be aware of the following:
When the system write routine recognizes a user-defined request, it disregards
all previous requests to the display. At the completion of the user-defined
request, the system assumes that a single record format is on the screen and
that this is the record format containing the USRDFN keyword. All erasing, all
resetting, and unlocking of the keyboard is your responsibility. The next I/O
request can be another user-defined request or a normal field-level request.
A normal field-level request after a user-defined request is handled as follows:
– If the OVERLAY keyword is not specified, the screen is erased before the
request is run.
– If the OVERLAY keyword is specified, only the portion of the display
needed (entire lines) is erased.
– The 5250 format buffer is reset, which means that all input fields are
changed to output-only fields.
The system assumes that only this record format exists on the screen. All pre-
vious requests are disregarded.
Help specifications are allowed in user-defined record formats.
When the USRDFN keyword is specified in a record format, no fields can be
defined for that record format. The only valid keywords are:
The user-defined data stream can alter the CFnn and CAnn keys and the
location of the message line in the display. However, display station support
assumes they are the same as when they were last set.
All display files that contain user-defined data streams should be opened as
both input and output files. This is because read and write commands in the
data stream are not dependent on write and read requests.
The output data stream should start with an escape character hex 04 and be fol-
lowed by a clear unit hex 40 or write to display command hex 11.
The output buffer must include information needed to send and receive the appro-
priate line controls. The buffer format for a 5250 display station is:
Byte Contents
0-1 Send data length (in hexadecimal), defines the output data
stream length
2-3 Receive data length (in hexadecimal), defines the maximum
input data length
4 Requested function
Hex 51 Send (WP mode)
Hex 53 Send/Receive (WP mode)
Hex 61 Send (3270 data stream)
Hex 63 Send/Receive (3270 data stream)
Hex 71 Send
Hex 73 Send/Receive
5-n Output data stream
Control
Operation ILE RPG ILE COBOL Language
SNDRCVF
Write-read(wait) EXFMT WAIT(*YES)
WRITE with WRITE with
INVITE, INVITE, SNDRCVF
Write-read(nowait) READ READ WAIT(*NO)
On input operations, the input buffer of the program contains the data received from
the display station. For example, when a read modified completes, the input buffer
contains an aid identification (AID) byte and the cursor address followed by each
changed field. Each changed field is preceded by the buffer address order and
field location on the screen.
All AID bytes are accepted by display station support for user-defined data streams.
If the Print key is pressed, the system attempts to perform the print function.
All write and write-read operations must specify the record format name. A read
operation that specifies the name of a record format that contains the USRDFN
keyword and is not one of the appropriate read operations for the display station
causes an exception to be issued.
Each request to a 5250 display station can contain more than one command. Each
command must be requested using the appropriate system operation identified as
follows:
You can also use the KEEP and ASSUME keywords to pass data between pro-
grams. The data is written to the display by the first program, and used from the
display by the second.
You can use the KEEP keyword to keep data on the display for review after the
program has ended, or you can use it to pass data between programs.
Normally, when a file is closed, the current display is cleared. However, you can
control this by using the KEEP keyword. If a record that is on the display when the
file is closed has the KEEP keyword specified, the system saves the name of the
first such record to support passing data. Using this keyword alone, you cannot
support processing of passed data, you must also use the ASSUME keyword in the
display file opened by the next program.
The ASSUME keyword causes a read operation to a specific record format name to
be valid when no preceding write operation to that record format name (or any
other record format) has occurred since the display file was opened. The following
shows a typical example of what happens when the ASSUME keyword is specified:
1. Program PGM1 issues a write operation to the record format PGM1ANY in the
display file DSPFIL1 and calls program PGM2. PGM1ANY specifies the LOCK
keyword.
2. PGM2 opens DSPFIL2 and issues a read operation to record format
PGM2ANY. The ASSUME keyword is specified. Input data is read from the
display and processed by record format PGM2ANY.
Records from record formats having the ASSUME keyword specified cannot overlay
one another on the display. In addition, all records must have at least one field that
is displayed.
When the system reads assumed records from the display, only fields whose modi-
fied data tags (MDTs) are on are returned. (This assumes that either the
DSPATR(MDT) keyword was specified for the field on the last output operation or
the user has typed in the field.) When the ASSUME keyword is in effect, the data
returned to the program is as follows:
For input-only and output/input fields with their MDTs on, the changed data is
returned.
In addition, only those fields received whose line and position on the display match
the field of an assumed record are processed. The data is processed using the
field descriptions in the assumed record, independent of how the fields were written
to the display.
For the 5250 display station, the first write operation or write-read operation after
the file is opened sends a CA and CFnn key specification to the display station.
Because there is no write operation after an open when using the ASSUME
keyword, the CFnnkey specification remains as it was left by the last application.
The CA and CFnnkey specification in this file will not be used until after the first
write operation to the file.
After the file is opened and the first write operation is issued, the display will be
erased if the OVERLAY keyword is not specified. When the OVERLAY keyword is
specified, all input-capable fields on the display become output-only fields. After
the first write operation, assumed records cannot be read by a program.
Fields not received from the assumed records on the display are returned to the
user program as follows:
Field Initialized To
Field with DFT keyword used Value specified in DFT keyword
Character field (no DFT keyword) Blanks
Numeric field (no DFT keyword) Zero
Hidden field Zero
Subsystem
OOO618/QUSER/WSN01
Routing Routing
Step Step
R PGM2RD R PGM2RD
RV2W044-2
.1/ The user signs on and SBS starts a routing step based on the routing data.
The first program in the routing step is PGM1.
.2/ PGM1 opens the display file DSPFIL1.
.3/ PGM1 interacts with the user and issues the following before ending:
A write operation to DSPFIL1 with the record format name PGM2RD. The
KEEP keyword is specified in the record format PGM2RD.
The display file and ICF file entry that is put on the data queue is 80 characters
long and contains the field attributes described in Table 12-1. Therefore, the data
queue that is specified using the commands listed above must have a length of at
least 80 characters.
Entries placed on the data queue by jobs using QSNDDTAQ are defined by the
user.
Table 12-1 (Page 1 of 2). Display File and ICF File Entry Field Attributes
Position Data Type Meaning
1 through 10 Character The type of file that placed the entry on the data
queue. This field will have one of two values:
*ICFF (ICF file)
*DSPF (display file)
If the job receiving the data from the data queue has
only one display file or one ICF file open, then this is
the only field that needs to be used to determine
what type of entry has been received from the data
queue.
For example, assume that a physical file on the system contains data in the Basic
French code page, and includes an é (e with an acute accent). In the Basic French
character set, this character is hex C0. The data could have been entered on a
display station that can handle the character or could have been sent to this system
from another system over a communications line.
Note: On some display stations, extended alphabetics can be entered on the key-
board (by pressing Cmd, then the key to its right with two diacritical marks
on it, then the 2 hexadecimal digits that represent that character).
Display
Station Physical File
Containing
Hex C0 (e)
RV2W036-3
When the hex C0 is sent to a display station that does not recognize hex C0 as é,
the hex C0 is not displayed as é. For example, a display station that recognizes
the U.S. code page displays hex C0 as { (a left brace). The é is at code point 51 in
the U.S. code page. To properly display é, the hex C0 must be converted to hex
51 for display on a U.S. basic display station.
With the IBM-supplied conversion tables, the system can convert most extended
alphabetics, but not all. If an extended alphabetic character does not have a
clearly preferable equivalent, the system converts the character to a (-) hyphen.
System Has Characters Not Normally Displayed on the Device: The case of an
output/input field shows how character conversion occurs at a display station.
Display
Application File Display
Physical
Program Station
File
RV2W037-3
Assume that a record in a physical file contains a field with the value Renée. An
application program reads the record from the physical file, and writes a record
containing the data to the display file. One way to achieve character conversion is
When displaying the data, the system converts the hex C0 to hex 51, and Renée
appears on the display. If no conversion occurred, Ren{e would appear on the
screen.
Device Passes Characters Not Displayed on the System: If the user can enter
data not normally displayed on the system (for instance, a user on a French-
language display station in Montreal dials up a remote line to a system in Toronto
with display stations that cannot display extended alphabetics), no change occurs
when the data is sent to the system. The program can read data from the French-
language display station and write it to a physical file. However, when another user
on the Toronto system displays data from the physical file, the system attempts to
translate the data for the display station that cannot display extended alphabetics.
1 If *JOBCCSID is specified by the CHRID parameter on the CRTDSPF, CHGDSPF, or OVRDSPF commands, the DDS keyword
CHRID is ignored. For more information, see the description for *JOBCCSID in “Specifying Character Translation for Fields” on
page 13-2.
When dealing with UCS-2 Level 1 data from a physical file, it will be necessary to
convert this data to EBCDIC before displaying the data on the screen. To accom-
plish this conversion, place the DDS CCSID keyword at either the file-, record-, or
field-level to enable conversion of UCS-2 data from the UCS-2 CCSID value speci-
fied with the keyword to the device CHRID on output. On input, the data is con-
verted from the device CHRID to the UCS-2 value. For more information, see
“UCS-2 Level 1 Considerations for DDS” in the DDS Reference book.
Another conversion that occurs every time data is displayed is converting the hex
“3F” character to the hex “1F” character on output and conversely on input. The
Character Data Representation Architecture (CDRA) specifies the hex “3F” char-
acter as a replacement character. This character is also a field attribute definition
for the 5250 data stream specification. Translation to convert hex “3F” character to
hex “1F” character for output is done for all fields whether *JOBCCSID translation is
active or inactive. Use the NOCCSID keyword to prevent translation at the field
level.
Chapter 13. Using Alternative Character Sets and Code Pages 13-3
When character conversions are necessary, the system uses a conversion table in
library QUSRSYS to convert the data. The name of the conversion table used is
derived from parts of the source and target CCSID for which the table is needed as
shown in the following example:
On Output:
CHRID(101 037)
CHRID(288 297)
On Input:
Display File Device Description
CHRID(101 037)
CHRID(288 297)
RV2W038-3
Chapter 13. Using Alternative Character Sets and Code Pages 13-5
13-6 Application Display Programming V4R1
Chapter 14. Improving System Performance with Displays
System performance is improved by doing the following:
Minimizing the number of bytes sent and received when designing a display.
For example, to reduce the number of fields on an application display:
– Split a display with many fields into more than one display.
– Consider removing fields which were added to help with development,
testing, or problem reporting.
Taking advantage of the system functions that reduce the number of bytes sent
to and received from the display station. This chapter describes some of these
system functions.
More information on the Defer Write parameter can be found in “Deferring the Write
Operation Until a Read Request is Made” on page 3-26.
The screen size designated as the primary screen size should be the one with
which the display file will most often be used. A performance benefit will be real-
ized by coding the DSPSIZ keyword in this manner. Additional processing is per-
formed when the actual screen size is the secondary screen size.
The second page of subfile records is now displayed, and if the user presses the
Roll Down key, the roll down is handled by the system. If the user presses the Roll
Up key while the first page is displayed, the system will also handle the roll up.
The program is notified only when the user attempts to roll up beyond the records
currently in the subfile. The program would then handle any additional roll up
requests in the same manner as for the second page. When you use this tech-
nique, the subfile appears to be more than one page because of the use of the roll
keys. Yet, you can maintain good response time because the program only fills
one subfile page before writing it to the display.
More information about sharing open data paths is found in “Sharing Display Files
in the Same Job” on page 3-50.
The use of the PUTOVR keyword causes only those fields for which the OVRDTA
or OVRATR keyword have been specified to be sent to the display when a subse-
quent write or write-read operation is issued to the same record format.
You can use ERASEINP to improve response time by causing the display to clear
fields instead of requiring blanks to be sent to the display. If the fields erased at
the display do not have their modified data tags set on for the next read operation,
data is returned for those fields from the input save area. This is data saved by the
system from the previous return of the field from the display station.
You can use the INZINP keyword at the record level with ERASEINP(*ALL) and
PUTOVR to initialize the input save area without sending data for the cleared fields
to the display.
The RSTDSP(*YES) parameter must be specified for the following keywords. If the
parameter is not specified, data on the display can be lost if the file is suspended.
CLRL
OVERLAY
PUTOVR
PUTRETAIN
ERRMSG
ERRMSGID
If none of the previous keywords are used, you can improve performance by speci-
fying *NO for the RSTDSP parameter.
Using the UIM language tags allows the application programmer to "link" an option
number or function key to a specific command or program. Then, when a user
selects an option or presses a function key, the UIM automatically handles running
the command or program. The UIM also handles scrolling through a multiple-page
panel. The Major Command Groups menu is an example of a multiple-page panel.
The UIM supports the following types of display screens (or panels). Each one can
be scrollable or nonscrollable:
List
Menu
Information
Data entry
For more information on creating these display screens, see Chapter 16, “Introduc-
tion to the User Interface Manager” on page 16-1.
The following lists some of the advantages and differences between using UIM or
DDS:
UIM Advantages
– Uses same standards as system so no need to redefine standards. User
applications work the same way as the system panels. UIM formats panels
based on what you want displayed.
– List processing offers ability to process commands, to prompt or call pro-
grams easily from a list panel, to specify programs for UIM to call after
option is selected, and allows more efficient list entry access or update pro-
cessing.
– Operates well with languages that efficiently process structures.
– Provides for more modular programming techniques (one program can
process all incomplete list exit calls, open all applications, and so on).
– Offers ability to condition menu options
– Formats and handles scrolling of large areas without user program inter-
vention (data, list, info, menu, and function key areas, for example).
DDS Advantages
– Provides more flexibility in screen design
– SDA helps in initial formatting
– Ability to use UIM help or help in folders
– Ability to take advantage of GUI windows
– Subfile processing
– Use of EDTCDE and EDTWRD and user-defined editing
– Faster for smaller applications since set-up time is less.
For additional factors to consider when using UIM, see “Choosing between Panel
Groups, Documents, and Records for Help” on page 18-2.
For detailed information on the UIM, see Chapter 17, “Details of Using User Inter-
face Manager” on page 17-1.
For information on using the examples mentioned in this chapter, see source
member T0011INF in source file QATTINFO in library QUSRTOOL.
Overview of UIM
The OS/400 UIM is a part of the system that allows you to define panels and
dialogs for your application and provides the following support:
A tag-based language for describing data and panels.
A compiler to create panel group objects and menu objects using the tag-based
language.
A set of application programming interfaces (APIs) to use as panel group
objects to display and print panels.
The UIM also provides the following functions:
– Dialog commands for screen management
– Contextual online help
– Index search
– Access to InfoSeeker
– Pop-up windows
– Menu bars
– Command line for entering CL commands
– Tailoring of the contents of a panel for different users or environments
– Fast paths through menu networks
– Double-byte character set (DBCS) languages
– Bidirectional (BIDI) language support
– Graphical user interface (GUI) support
– UCS-2 support
UIM supports common panel types, such as menus, information displays, list dis-
plays, and entry displays. When all display types and interfaces are consistent,
users adapt more quickly to new applications.
UIM applications can coexist with and share the requester display device with other
open display files that are not under UIM control. However, a UIM panel and a
DDS-defined record format cannot appear on the display at the same time. When
a UIM panel replaces a DDS panel or vice versa, the system suspends operations
of one file or panel group and restores the display as needed.
For detailed information on the panel group (PNLGRP) language tag, see
“PNLGRP (Panel Group)” on page A-139.
What Is a Menu
A menu is an object that contains the definition of a panel which contains one or
more options. The user can select an option from the panel in order to start using
a program or command, or to go to another menu. The system-recognized identi-
fier for the object type is *MENU.
You can define the following types of menus using the Create Menu (CRTMNU)
command.
*DSPF An existing display file (*DSPF) and message file (*MSGF) are used to
display the menu.
*PGM The OS/400 program calls an application-defined program to display the
menu. The program is responsible for displaying the menu to the user
and processing options requested by the user.
*UIM The menu object is created using a member in a source file that con-
tains a description of the menu. The source describes the menu using
the UIM tags.
This chapter discusses how to create a *UIM type of menu. For information on
how to create a *DSPF or *PGM type of menu, see Chapter 9, “Creating and
Accessing Menus Using Display Files” on page 9-1.
Creating Objects
The UIM creates and changes the following objects:
Panel group objects
Menu objects
Search index objects
The panel group and menu objects contain panel definitions and online help infor-
mation. A menu object (*MENU), which contains a panel group definition, is
created using the TYPE(*UIM) parameter on the Create Menu (CRTMNU)
command. The panel group and menu objects are created using a tag-based lan-
guage that specifies definitions for UIM elements.
The UIM creates search index objects that contain search terms extracted from
online help information. A search index object makes it more efficient for a user to
locate specific online information using the index search function.
Following is a list of the dialog commands and the functions they perform:
ACTIONS Alternates the cursor position between the panel and the menu
bar; removes, if shown, a pull-down menu from the panel.
CALL Calls an application program to perform a function.
CANCEL Backs up one panel (returns to the previous panel).
CHGVIEW Changes the displayed view of a list by switching defined sets of
columns to be shown.
CMD Submits an AS/400 CL command (or System/36 environment
OCL command) to the system for processing.
CMDLINE Displays a pop-up window with a command line.
DSPHELP Displays a module of help text.
ENTER Initiates processing of an action; submits panel input for pro-
cessing.
EXIT Returns the user from a group of displays or menus.
EXTHELP Displays the extended help text for the panel.
HELP Displays help information for the panel, based on the position of
the cursor.
HELPHELP Displays information about how to use the help facilities.
HELPIDX Initiates the index search function for the application to allow the
user to make a search request.
HOME Displays the initial (home) menu of the job.
KEYSHELP Displays the help for the function keys shown on the displayed
panel.
MENU Displays a subsequent menu as a result of selecting a menu
item or pressing a function key.
MOREKEYS Displays an additional set of active function keys and their
descriptions; used when all keys cannot be shown at once.
MOVETOP Moves a cursor-selected line to the top of the scrollable informa-
tion area.
MSG Displays a message on the message line.
PAGEDOWN Pages (scrolls) forward by one panel.
PAGEUP Pages (scrolls) backward by one panel.
PRINT Prints all the information shown on the current display.
PROMPT Prompts (seeks input) for commands, action list options, or entry
fields.
PULLDOWN Displays the pull-down menu for the first choice shown on the
menu bar.
RETRIEVE Retrieves and displays the previously entered command.
For detailed information on the dialog commands, see Appendix B, “UIM Dialog
Commands.”
á ñ
Figure 16-1. An Example Menu
The reference numbers in the example menu do not appear on the display. They
are shown for illustration purposes and also appear in the UIM tag source shown in
“Source for Example Menu” on page 16-9. These reference numbers show the
portions of the source which define text and information that appear on the menu.
.1/ The panel identifier is defined by declaring the UIM-defined Z-variable,
ZMENU, using the VAR tag and specifying the Z-variable to be used as the
panel identifier on the PANELID attribute of the PANEL tag.
.2/ The panel title is defined as text following the period of the PANEL tag.
.3/ The system name is shown because the TOPSEP=SYSNAM attribute was
specified on the PANEL tag.
.4/ The top instruction line is defined as text following the period of the top
instruction (TOPINST) tag.
.5/ Each option on the menu is defined using the menu item (MENUI) tag. The
option number is defined using the OPTION attribute and the text following the
option number is defined as text following the MENUI tag.
.6/ The command line is defined using the command line (CMDLINE) tag. The
command line prompt text is defined as text following the CMDLINE tag. The
UIM automatically provides the arrow (===>) for every command line.
An option line can be defined by using the option line (OPTLINE) tag instead
of the CMDLINE tag. In this case, the user enters option numbers, but is not
allowed to enter system commands.
.7/ Each function key is defined using a key list item (KEYI) tag. The text,
including the function key name, is defined as text following the period of the
KEYI tag.
All function keys for a panel are defined by placing the KEYI tags between a
key list (KEYL) and EKEYL tag. The name specified on the NAME attribute of
the KEYL tag is also specified on the KEYL attribute of the PANEL tag.
This example menu is not defined as scrollable because it contains only two
options. If you need to define a scrollable menu, change SCROLL=NO to
SCROLL=YES on the MENU tag and add one menu item (MENUI) tag for each
additional menu option. You also need to define a new help module for each menu
option.
:PNLGRP. ─────────────────┐
. │
. │
. │
:KEYL. ──┐ │
:KEYI. │ │
:EKEYL. ──┘ │
:PANEL. ──────────────┐ │
:MENU. ──┐ │ │
:MENUI. │ │ │
. │ │ │
. │ │ │
. │ │ │
:EMENU. ──┘ │ │
:OPTLINE or :CMDLINE. │ │
:EPANEL. ──────────────┘ │
. │
. │
. │
:HELP. ──┐ │
. │ │
. │ │
. │ │
:EHELP. ──┘ │
. │
. │
. │
:EPNLGRP. ─────────────────┘
Figure 16-2. Required UIM Tags for a Menu Panel
The panel shown in Figure 16-3 on page 16-14 shows an example of a mixed
panel with a list area. The panel is mixed because it contains two types of areas: a
data presentation area at the top and a list area at the bottom.
The data presentation area at the top consists of the fields which identify the file
and library name. The list area begins with the instruction line, Type options, press
Enter and ends with the scroll information (More...).
In this example, the panel contains a special type of list area called an action list.
An action list is a list which contains an option column. The user types in allowed
á ñ
The panel shown in Figure 16-4 is an alternate view shown when the user presses
F11 (Display names only) on the panel shown in Figure 16-3. The alternate view
shown here uses a multiple-column layout. The panel is divided into four layout
columns of equal size. The Opt and Member columns appear in each layout
column. The alternate view shows four times as many list entries as the original
view, but does not show the Type and Text columns for each entry.
A general example of an RPG application using the UIM APIs can be found in
QUSRTOOL. Refer to member T0011INF in source file QATTINFO in library
QUSRTOOL. See Chapter 21, “Designing IBM AS/400-Style Displays” on
page 21-1 for more information on using the examples.
To write a program in any language to display the example list panel, the program
should do the following:
1. Call the Open Display Application (QUIOPNDA) API to open the panel group.
The panel group must already be created using the Create Panel Group
(CRTPNLGRP) command.
2. Set up a buffer containing the values for the following dialog variables:
FILE A CHAR 10 variable which is the name of the file.
LIB A CHAR 10 variable which is the name of the library where the file
resides.
FATTR A CHAR 10 variable which is the file attribute of the file. This variable
is used to condition on list options which are only allowed for physical
files.
á ñ
Figure 16-6. Example Confirmation List Panel
The confirmation panel appears similar to the action list panel with the following
exceptions:
The instructions tell the user to confirm or cancel the option.
When the user presses the F11 key to change to a different view, the view of the
action list panel is changed when it is redisplayed. This is done because the same
dialog variable is specified on the VIEW attribute of the LIST tag for both the action
list panel and the confirmation panel.
Next, function keys need to be defined for the confirmation panel. Confirmation
panels should not allow F3 (Exit). The following key list (KEYL) tag should be
placed after the KEYL tag, shown in “Source for Example List Panel” on
page 16-17.
.\
.\ -----------------------------------------------------------------
.\ Define keys for confirm remove of members
.\ -----------------------------------------------------------------
:KEYL NAME=mconfkeys
HELP=keyl.
:KEYI KEY=F1
HELP=helpf1
ACTION=HELP.
:KEYI KEY=F11
HELP=altview
ACTION=CHGVIEW
COND=mbrview1.
F11=Display names only
:KEYI KEY=F11
HELP=altview
ACTION=CHGVIEW
To have the UIM perform confirmation processing for a list option, specify the name
of the confirmation panel on the CONFIRM attribute of the list action (LISTACT) tag
that defines the option to be confirmed. The following UIM source shows the
LISTACT tag for option 4 with the CONFIRM attribute specifying the name of the con-
firmation panel.
.\
:LISTACT OPTION=4
ACTFOR=LISTE
HELP='wrkmbr/rmvm'
CONFIRM=confrmvm
ENTER='CMD RMVM FILE(&lib./&file.) MBR(&mbr.)'
PROMPT='CMD ?RMVM ?\FILE(&lib./&file.) ?\MBR(&mbr.)'
USREXIT='CALL exitpgm'.
4=Remove
.\
For more information about defining a confirmation panel using the CONFIRM attri-
bute, see “LISTACT (List Action)” on page A-90.
When the UIM processes list options and finds an option with the CONFIRM attribute
specified, the UIM does the following:
1. Deletes the list specified on the LISTDEF attribute of the LIST tag in the confir-
mation panel.
2. Finds all entries in the action list with an option number the same as the option
number being confirmed, and copies these entries to the confirmation list.
3. Displays the confirmation panel.
4. Remembers that the option number has been confirmed by the user if the user
presses the Enter key. The confirmed options are processed in the order they
appear in the action list. No further confirmation processing is done for this
option number until the user types the option number for additional entries in
the action list.
5. Stops processing list options, if the user presses the F12 (Cancel) key, and
redisplays the action list panel showing the first entry with the option number
that was not confirmed.
When ACTOR=CALLER is specified on the LIST tag in the action list panel, the appli-
cation program that processes the list options should perform confirmation pro-
cessing similar to the UIM processing as described in “Automatic Confirmation
Processing.”
The following shows the coding to create the Display Member Description display
from the Work with File Members display.
The panel shown in Figure 16-7 shows an example of a data presentation panel.
This panel is shown as a result of using option 5 on the panel shown in
Figure 16-3 on page 16-14.
This panel contains two data presentation areas. The first area is using a vertical
layout with two layout columns. This area shows the file, library, and member
name. The second area also uses a vertical layout, but only one layout column.
This area shows the detail information for the member identified in the first area. If
you need more information on creating help for a data presentation panel, see
“Help in a Data Area” on page 19-9.
.4/ More...
F3=Exit F12=Cancel .5/
á ñ
Figure 16-7. Example Data Presentation Panel
The second area is defined as a scrollable area because there are more items to
show than will fit on a display at one time. The UIM automatically handles scrolling
when the user presses the Page Up (Rolldown) or Page Down (Rollup) keys.
When the Page Down operation is performed, the contents of the second data
presentation area is replaced with the next set of items to show. This results in the
panel shown in Figure 16-8 on page 16-33.
Notice that the contents of the first area remain the same when the second area is
scrolled. The scroll operation only applies to one area of the panel based on the
location of the cursor. Also, because the first area is not defined as scrollable, the
scroll operation does not apply to that area even when the cursor position is within
the area.
Text . . . . . . . . . . . . . . : XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXX
.4/ Bottom
F3=Exit F12=Cancel .5/
á ñ
Figure 16-8. Example Data Presentation Panel after Scrolling
The reference numbers in the example panel do not appear on the display. They
are shown for illustration purposes and also appear in the UIM tag source shown in
“Source for Example Data Presentation Panel” on page 16-35. These reference
numbers show which portions of the source define text and information which
appears on the panel.
.1/ The panel title is defined as text following the period of the display panel
(PANEL) tag.
.2/ In the first data area, the text for the file, library, and member name is defined
as text following the period of the data item (DATAI) tag. The file, library, and
member names are dialog variable values. Each dialog variable is defined
using the variable definition (VAR) tag. The name of the dialog variable is
specified on the VAR attribute of the DATAI tag.
The file name and library are formatted as a qualified object name because
GRPSEP=QINDENT is specified on the data group (DATAGRP) tag which sur-
rounds the two DATAI tags.
The dialog variables for the file name and library name and member name are
defined using the VAR tags at .A/, .B/, and .C/, respectively, shown on page
16-37.
This data presentation area is defined by specifying LAYOUT=2 on the DATA
tag that defines the area. This is shown at .D/ on page 16-42.
.3/ In the second data area, the text for each item is defined as text following the
period of the DATAI tag. The value for each item is a dialog variable value.
Each dialog variable is defined using the VAR tag. The name of the dialog
variable is specified on the VAR attribute of the DATAI tag.
Several items in the area show date and time values. This is done by speci-
fying the dialog variable for the date value on the VAR attribute of the DATAI
tag and specifying the dialog variable for the time value on the VAR attribute of
the data item extender (DATAIX) tag.
A general example of an RPG application written using the UIM APIs can be found
in QUSRTOOL. Refer to member T0011INF in source file QATTINFO in library
QUSRTOOL.
To write a program in any language to display the example data presentation panel,
the program should do the following:
1. If the program is not called by the UIM to process option 5 from the example
list panel shown in Figure 16-3 on page 16-14, the program should first do the
following. For example, this would be the case if the user could display the
member description directly by using a CL command.
a. Call the Open Display Application (QUIOPNDA) API to open the panel
group. The panel group must already be created using the Create Panel
Group (CRTPNLGRP) command.
b. Set up a buffer containing the values for the following dialog variables:
FILE A CHAR 10 variable which is the name of the file.
LIB A CHAR 10 variable which is the name of the library where the
file resides.
When USAGE=INOUT is specified, the user is allowed to enter a new value for the
dialog variable. For data areas using a vertical layout, the leader dots following the
descriptive text for the item end with a period instead of a colon. A colon is used
for data items which do not allow input.
When the UIM returns control from the Display Panel (QUIDSPP) API and the func-
tion requested parameter contains the value specified for the RETURN dialog
command on the ENTER attribute of the display panel (PANEL) tag, the application
program uses the Get Dialog Variable (QUIGETV) API to retrieve the values for the
dialog variables changed by the user.
The panel shown in Figure 16-10 shows an example of an action list panel which
also has a menu bar. This example explains how the menu bar is defined and how
it interacts with the rest of the panel definition. This example does not describe
how to define the action list portion of the panel. For more information on creating
an action list, see “Creating a List Panel” on page 16-13. If you need more infor-
mation on creating help for a menu bar area, see “Help in a Menu Bar Area” on
page 19-13.
The example panel is shown with a pull-down menu displayed. The pull-down is
active because the user selected entries in the list and pressed the Enter key.
á ñ
Figure 16-10. Example Panel with a Menu Bar
The reference numbers in the example panel do not appear on the display. They
are shown for illustration purposes and also appear in the UIM tag source shown in
“Source for Example Panel with a Menu Bar” on page 16-53. These reference
numbers show which portions of the source define text and information which
appears on the panel.
.1/ Each choice in the menu bar is defined using a menu bar choice (MBARC)
tag. The choice shown on the panel is defined as text following the period of
the MBARC tag.
From this panel, the application user can perform operations against entries in the
list using either of the following methods:
When the user selects entries in the list and presses the Enter key, the UIM
displays the pull-down menu for the member choice in the menu bar. This is
done because SELECT=PULLDOWN is specified on the PANEL tag shown at
.A/ on page 16-60.
When the user selects option 3, 4, 5, 7, 8 or 9 from the pull-down menu, the
UIM performs the action defined for that option once for each list entry selected
by the user. The UIM does this because ACTFOR=LIST is specified on the
PDFLDC tag at .B/ on page 16-57. The UIM makes these options unavailable
when the users displays the pull-down menu without selecting any entries in
the list.
When the user selects option 90 from the pull-down menu, the UIM returns
control to the application program that displayed the panel. The UIM does this
because ACTFOR=PANEL is specified on the PDFLDC tag at .C/ on page 16-58.
Because EXIT is specified for the ACTION attribute on the PDFLDC tag, the UIM
returns control to the calling program with an indication that the user requested
Exit.
When the user types option numbers next to the desired list entries and
presses the Enter key, the UIM performs the action for each option. The UIM
does this because ACTOR=UIM is specified on the list area (LIST) tag at .D/ on
page 16-61 and a list action (LISTACT) tag at .E/ on page 16-62 specifies the
action for the UIM to perform for each option number.
Note that in this case, no text is shown on the panel describing the option
numbers for the list. This is because no text is specified following the period of
the LISTACT tags. The primary interface defined for this panel is to select
entries in the list and then choose an action from a pull-down menu. The list
option numbers are available as a faster alternative for more experienced
users. Although the list option numbers do not appear on the panel, they are
described in the help shown when the Help key is pressed with the cursor posi-
tioned in the input column of the list.
For this example, the actions for the option numbers in the pull-down menu are
the same as the actions for the option numbers that can be entered in the list.
:PNLGRP. ──────────────┐
. │
. │
. │
:CLASS. ──┐ │
:ECLASS. ──┘ │
:VAR. │
. │
. │
. │
:MBAR. ──────────┐ │
:MBARC. ─────┐ │ │
:PDFLD. ──┐ │ │ │
:PDFLDC. │ │ │ │
. │ │ │ │
. │ │ │ │
. │ │ │ │
:EPDFLD. ──┘ │ │ │
:EMBARC. ─────┘ │ │
. │ │
. │ │
. │ │
:EMBAR. ──────────┘ │
. │
. │
. │
:KEYL. ──┐ │
:KEYI. │ │
:EKEYL. ──┘ │
:PANEL. ──┐ │
. │ │
. │ │
. │ │
:EPANEL. ──┘ │
. │
. │
. │
:HELP. ──┐ │
. │ │
. │ │
. │ │
:EHELP. ──┘ │
:EPNLGRP. ──────────────┘
Figure 16-11. Required UIM Tags for a Panel with a Menu Bar
The dialog variables contained in an open application are determined by the panel
group object associated with the application. Dialog variables are defined using the
variable definition (VAR) language tag in the source for a panel group. Special
dialog variables defined by UIM have names that begin with the letter Z and are
referred to as Z-variables. For more information on the VAR language tag, see
“VAR (Variable Definition)” on page A-166. For more information on Z-variables,
see “Dialog Variables Defined by UIM” on page A-166.
Every open application associated with a particular panel group object contains a
complete set of all the dialog variables defined in the panel group, including what-
ever Z-variables are defined in the tag language for that panel group. The set of all
dialog variables in an application is called the variable pool for the application.
UIM is not able to communicate directly with a program's storage to get the values
of its variables. The program can use the variable pool to communicate to UIM
what it would like to display on the panel. When a panel is to be displayed, UIM
retrieves the values from the variable pool and displays them on the panel. When
the user updates the fields on the panel, UIM reads the values from the panel and
places them into the variable pool for the user program to retrieve and act upon.
Because each open application has its own variable pool, each time a user
program wishes to gain access to the dialog variables in an application, it must
provide the variable pool APIs with the application handle that was assigned by the
QUIOPNDA API.
The definition of each dialog variable specifies a base data type value that controls
both the form of the internal storage of the variable and its editing characteristics on
the display. The following base type values are supported:
Character
IGC
Graphic
Binary (numeric)
Packed and zoned decimal
Date
Time
Action (list option or selection)
Name
Object name
Pointer
The class definition (CLASS) language tag defines a class of dialog variables to be
associated with a base data type, specific validity checking, and display value
translation functions. Validity checking is done only for values entered by the user
in an input field on a display. The validity checking is not done for values provided
by an application program through an API. For more information on the CLASS
tag, see “CLASS (Class Definition)” on page A-14.
A translation function allows the application program to operate with internal values.
The values are automatically mapped by the UIM to and from specified character
string values, when displayed or printed. An example of this is the months in a
year. The application program reference the values 1 through 12, but the user
sees only the names of the months on the display. For more information on the
translation function, see “TL (Translation List)” on page A-159.
When the application is initially opened, every dialog variable in the application has
an initial value. For dialog variables defined by the application programmer, the
initial value is determined by the base type as follows:
Because the variable pool exists until the application is closed, the UIM, and all
programs that use the application, can determine the last value assigned to any
dialog variable in the pool. Once the application program assigns the value of a
dialog variable, it never needs to be assigned again as long as it does not need to
be changed. Similarly, once an input value is accepted from the user and stored in
a dialog variable, that value continues to be available until the variable is updated
by either an application program or the user.
All variables in error in the open application are reset when the next dialog
command is processed by the UIM. Exceptions to this are the Menu Bar Cursor
Action (ACTIONS), Command Line (CMDLINE), Change View (CHGVIEW), HELP,
Display More Function Keys (MOREKEYS), Move to Top (MOVETOP), PAGEUP,
PAGEDOWN, Print Screen (PRINT), and Retrieve Command String (RETRIEVE)
dialog commands. The error status for each dialog variable is reset when control
returns from the Display Panel (QUIDSPP) API or when control is passed from the
UIM to a program or command identified by a menu item, action list, pull-down
choice, or function key item.
The application developer can specify that some function keys and pull-down
choices operate without updating the variable pool by using VARUPD=NO. If
control returns to the program that ran the QUIDSPP API for such a function, all
values entered by the user are lost. If the requested function causes the UIM to
call a program or system command, all input field values are stored internally by
the UIM in such a way that they can be shown when control returns to the UIM and
When the external form of a dialog variable contains characters that are incorrect
for a display device, the UIM converts the incorrect characters to hexadecimal 1F
characters ( J ). When the external form of a dialog variable contains characters
that are incorrect for a printer, the UIM converts the incorrect characters to the
replacement characters in effect for the printer file, or to blanks when
RPLUNPRT(*NO) is in effect for the printer file.
If the dialog variable that contained the incorrect characters is used as an input
field and retrieved with the Get Dialog Variable (QUIGETV) API by the program, the
incorrect characters might be changed to hexadecimal 3F. This occurs if the user
modifies the field or presses the Help key.
When the UIM displays a panel, it retrieves the current value for all variable fields
from the variable pool or from list entries. If the user types a value in an input field,
the UIM validates and translates the value according to the CLASS attribute of the
associated dialog variable, and then stores the value in the dialog variable or asso-
ciated list entry. The application program can determine the value entered by the
user by using the Get Dialog Variable (QUIGETV) or the Get List Entry
(QUIGETLE) API to retrieve the dialog variable value.
Displaying
The UIM compares the character set and code page of the device to the character
set and code page of the panel group. If they are different, then outbound and
inbound conversion tables are used to convert the appropriate dialog variables. If a
conversion table is not available, then the Open Display Application (QUIOPNDA)
API sends a diagnostic message and continues.
Display operations for Arabic and Hebrew bidirectional panel groups, which have
BIDI=LTR or BIDI=RTL specified on the panel group (PNLGRP) tag, are only
allowed when the device is configured to use code page 420 or 424.
When a printer file is printed on a printer device, the character set and code page
of the printer file is compared to the character set and code page that is loaded in
the printer. If they are different, all the printer file data, including the constant text
from the UIM tags, is translated to the character set and code page of the printer.
To minimize the number of times that character set and code page translations
takes place, specify the same CHRID value on both your printer file and your panel
group.
Print operations for Arabic and Hebrew bidirectional panel groups, which have
BIDI=LTR or BIDI=RTL specified on the panel group (PNLGRP) tag, must have
code page 420 or 424 specified for the printer file. Also, any call to the QUIADDPA
API for a bidirectional panel group must have the same code page specified for the
printer file as is used by the display device.
See Table 17-3 on page 17-7 for a summary of how CCSIDs are converted.
Managing a List
A UIM list is a sequential set of list entries. Each entry contains a copy of the
value for one or more dialog variables. The entries in a list can be presented to the
user in a scrollable area of a display. The UIM provides application programming
interfaces (API) that allow an application program to perform the following oper-
ations on lists:
Add a new entry between any two entries in the list.
Add an entry at the beginning or end of the list.
Update the values in a list entry.
Remove a list entry.
Defining a List
The definition for each list using the list definition (LISTDEF) language tag is speci-
fied in the source for the panel group object. Attributes of the list definition
(LISTDEF) tag specify the name of the list and what dialog variables should be
associated with the list (that is, what variable values are to be stored in each list
entry). For more information on the LISTDEF tag, see “LISTDEF (List Definition)”
on page A-100.
Each entry in a list contains a copy of the values of all dialog variables associated
with the list. The values of the dialog variable are copied into a list entry when the
entry is first added to the list using the Add List Entry (QUIADDLE) or Add List
Multiple Entries (QUIADDLM) API, and whenever the entry is updated using the
Update List Entry (QUIUPDLE) API. The values in a list entry can be copied into
the corresponding dialog variables when the entry is retrieved using the Get List
Entry (QUIGETLE) or Get List Multiple Entries (QUIGETLM) API.
Initializing a List
All UIM APIs for processing lists require the program to specify the list name on the
list object definition (LISTDEF) tag in order to identify the target list for the opera-
tion. Each list defined in a panel group is either active or inactive for each open
application using the panel group. Each list is initially inactive when an application
is opened using the Open Display Application (QUIOPNDA) or Open Print Applica-
tion (QUIOPNPA) API. A list becomes inactive when it is deleted using the Delete
List (QUIDLTL) API. A list may be active in multiple different open applications
using the same panel group. A list becomes active when the first entry is added to
the list using the Add List Entry (QUIADDLE), or Add List Multiple Entries
(QUIADDLM) API, or when the list attributes are set using the Set List Attribute
(QUISETLA) API. The maximum size of a list is approximately 16MB. The
maximum number of entries that can be added to a list is based on the size of
each entry.
Displaying a List
When a panel containing a list area is displayed, entries from the list are used to
build a display area that appears to the user as a table. Each list area is associ-
ated with one list definition (see “LIST (List Area)” on page A-82) and contains an
independent selection of columns to display. For more information on the LISTCOL
language tag, see “LISTCOL (List Column)” on page A-96. A list can be referred
to by more than one list area. The list area allows one list to be presented on
different panels within the same open application. If more than one list area exists
in a panel definition, a different list must be used for each list area.
Use the LISTCOL tag to specify the specific values presented in a list area. A list
area can present all the values in the associated list entries, or it can present only
a subset of the values available in each list entry. The list area the user sees
You can define a list area to present the values associated with only one list entry
per display line or with multiple list entries per display line. When multiple entries
are shown on each display line, the display is formatted in multiple layouts with
entries presented in order from top to bottom within layout columns, and from left to
right between layout columns. See “Example 2: List Area with Three Layout
Columns” on page A-87.
Updating a List
Values of list entries are used to fill the display for all fields in the list area; see
“LISTCOL (List Column)” on page A-96. The user can update any input fields on
the display, including those in the list area. If the value specified by the user satis-
fies all validity checks for the associated dialog variable, the corresponding value in
the list entry is updated with the value specified by the user.
The UIM APIs provided to retrieve, add, and update list entries all operate by using
the dialog variables associated with the list. No support is provided to directly
establish or change values of list entries without referencing dialog variables.
Every time a list entry is retrieved, added, or updated, the entire set of values for
dialog variables is copied to or from the list entry. When the UIM refers to or
updates list entries, such as processing user options in an action list, it can also
update values of dialog variables that correspond with the list columns.
Note: When working with an action list you should take care during incomplete list
processing. To avoid undesirable results, the action dialog variable should
be included in the VARRCD for the list entry and updated in the same way
as the other variables in the variable record. If you don't do this, you run
the risk of updating each new list entry (during incomplete list processing)
with the value of the last option that was entered on the panel. For
example, you have a list panel with 12 entries. You enter option “4” on one
entry and scroll down. The incomplete list exit is called to add more entries
to the list. The option dialog variable has a value of “4,” so each entry that
is added may now have a “4” in the option field.
Each entry inserted in a list is assigned an identifier, called a list entry handle,
that uniquely identifies the entry within the active list until the entry is removed from
the list. The identifier is meaningful only for a particular combination of open appli-
cation, active list, and list entry instances. An identifier has no meaning in any
other open UIM application, or even in the same application if the list or the entry is
deleted and then created again. Undesirable results are possible if an identifier is
used outside of this definition.
The UIM maintains a current entry pointer for each active list to use as a reference
point for list-entry operations. The list entry manipulation APIs support a list entry
handle parameter. This parameter returns to the application program the identifier
where the current entry pointer for the list was positioned at the end of the opera-
tion. The UIM sets the current entry point to:
The entry just added by the Add List Entry (QUIADDLE) or Add list Multiple
Entries (QUIADDLM) API
The list entry requested by the Get List Entry (QUIGETLE) or Get List Multiple
Entries (QUIGETLM) API, or left unchanged if the requested entry is not found
or not available
The entry that preceded the entry removed by the Remove List Entry
(QUIRMVLE) API
The current entry point is unchanged by the Update List Entry (QUIUPDLE) API.
The Get List Entry (QUIGETLE), Get List Multiple Entries (QUIGETLM), and
Remove List Entry (QUIRMVLE) APIs may set the current entry pointer position to
either the top or bottom of the list. The top is the position that is always logically
before the first entry in the list, and the bottom is the position that is always log-
ically after the last entry in the list. Each of these positions has a special identifier
value for the list entry handle, but because the top and bottom are not "real"
entries, they cannot be updated or removed from the list. The application program
receives an error if it attempts to insert an entry before the top of the list or after
the bottom of the list.
The display position attribute is updated whenever the user moves to a new page
of the list. Any time the application program removes the entry identified by the
display position attribute, the display position attribute is automatically updated to
refer to the entry preceding the one removed. If there is no entry before the one
removed, the display position attribute is set to the top of the list, and the next
display of the panel presents the first entry at the top of the list area in the panel.
When an entry is added or updated in a list, the error state of every dialog variable
associated with the list is saved with the list entry. The processing described in
When a panel is displayed that contains a list area and the associated list is either
not active or contains no entries, the user sees a blank list area and a message
indicates that there are no entries in the list. However, if the list attributes are set
to indicate that the list is not complete, an application program is called to add
entries to the list. The panel is not displayed to the user until either enough entries
are added to the list to present a full display page or the application program marks
the list as complete at either the top or the bottom. The application program is
called not only when the list is empty but any time there are not enough entries in
an incomplete list to fill a list area on the panel.
To define an action list area, the application developer must specify ACTOR=UIM or
ACTOR=CALLER on the LIST tag. In addition, one LISTACT tag must be defined for
each option number that can be entered by the user.
For an ACTOR=UIM action list, each LISTACT tag specifies the action the UIM per-
forms when the user types the option number and presses the Enter key. The
application developer can also define an action the UIM performs when the user
presses a key assigned to the PROMPT dialog command. Two types of actions
Having the UIM as the actor for the action list is the preferred method because of
the following benefits:
The UIM performs all actions entered by the user.
The UIM automatically displays a confirmation panel for destructive actions,
such as option 4 to delete an object. No application program code needs to be
written to provide confirmation support.
The UIM redisplays the action list panel in cases where an action does not
complete successfully. When the UIM receives an escape message, the UIM
redisplays the list with the cursor located on the option number. The option
number is shown in error. When the Exit (F3) or Cancel (F12) function is
requested from a panel displayed as a result of the list option, the UIM redis-
plays the panel as appropriate. For more information about the UIM processing
a request for Exit and Cancel when displaying an action list, see “Folding Up a
List Panel” on page 17-26.
When the application program is the actor for an action list, the above processing
must be done by the application program.
When a panel contains an action list and a menu bar, pull-down choices can be
defined within the menu bar which operate against each selected entry in the action
list. When at least one pull-down choice is defined which operates against selected
list entries, the UIM allows the user to select entries by typing a valid selection
character. The user selects one or more entries in the list, selects a pull-down
menu from the menu bar, and then selects a choice from the pull-down menu. The
UIM performs the selected pull-down choice for each entry selected by the user.
The definition of the UIM list displayed as a selection list must include a variable
defined with BASETYPE=ACTION specified on the CLASS tag. This variable is
referred to as the action variable of the list. When the user enters a valid
selection character for a list entry, the UIM sets the action variable for that entry to
1000. A value of 1000 for an action variable always indicates that the list entry is
selected.
When a panel contains a selection list and a menu bar, pull-down choices can be
defined within the menu bar which operate against each selected entry in the list.
The user selects one or more entries in the list, selects a pull-down menu from the
menu bar, and then selects a choice from the pull-down menu. The UIM performs
the selected pull-down choice for each entry selected by the user.
If *JOBCCSID is specified for the CHRID attribute when the panel group is created,
the country- designated selection characters are converted at run time from the
panel group source file CCSID to the job CCSID. This enables the comparison to
be done in an equivalent CCSID.
All operations performed by the UIM are done in a single process called a routing
step. It is the application developer's responsibility to consider the effects of things
such as recursion, locks, and static storage, for each of the following functions:
Function key action
Menu or action list option
Pull-down choice
The UIM does not guarantee that the call-sensitive effects of programs and CL
commands, such as overrides and the Set Attention Program (SETATNPGM)
command, are preserved when commands are run from a panel in any of the ways
listed above. The effect of any command that scopes its function to the program
call that used the command might be lost by the time the next command or
program is called. This is because the UIM call to the function that was scoped was
destroyed in the interim.
You can use the ENBGUI attribute on the PANEL or PNLGRP tag to specify
whether you want the encoded information included in your panels. More informa-
tion on how to set this attribute can be found in “PANEL (Display Panel)” on
page A-122 and “PNLGRP (Panel Group)” on page A-139.
Scrolling Support
The UIM supports page up and page down scrolling of all panel information, data
presentation, list, and menu areas. Multiple scrollable areas can be defined on a
single panel; the UIM imposes no order on them. However, using scrollable menus
is discouraged because of usability.
No left-to-right scrolling of text is provided, but the Change View (CHGVIEW) dialog
command for lists can be used to show more fields.
Panels with scrollable areas must have function keys assigned to the PAGEUP and
PAGEDOWN dialog commands because the UIM does not automatically enable
any function keys. Normally these are the Page Up and Page Down keys,1 but if
you use a function key, F7 and F8 are recommended. The UIM does not prevent
assigning different function keys to the PAGEUP and PAGEDOWN dialog com-
mands, but it does not allow assigning the engraved page keys to anything other
than their implied functions which is page up and page down.
Scrolling status information is also managed by the UIM and is displayed at the
bottom of each scrollable area.
The message line is under UIM control. A plus sign (+) on the message line indi-
cates that more messages can be viewed by pressing the Page Down key.
1 On a 5250 keyboard, these are the Rolldown and Rollup keys respectively.
The position of the cursor determines which area to scroll. If the cursor is not in a
scrollable area (except for a pull-down menu), the scroll request applies to the
topmost scrollable area on the display. If the cursor is in a scrollable area, the
scroll request applies to that area. The bounds of the scrollable area are the top
and bottom line of that area as defined by the menu area (MENU), data presenta-
tion area (DATA), list area (LIST), and information area (INFO) language tags. For
more information on these language tags, see Appendix A, “UIM Panel Group Defi-
nition Language” on page A-1. Titles and instruction lines are part of the area but
not part of the scrollable portion of the area.
The command line is not considered part of a scrollable area, but it may be associ-
ated with a particular area on the screen. For example, a panel with a scrollable
menu area has a command line and it is associated with the menu. However, for
scrolling purposes, the command line is not part of the area.
When scrolling the message line, the UIM does not perform any validity checking or
updating of the dialog variables. When scrolling any other area, validity checking or
updating of the dialog variables is performed on all input fields on the screen. The
scroll function is not performed if an error is found. All input and output fields on
the screen must be correct before the scroll operation can proceed.
Data presentation areas can also be presented in multiple columns and the
columns are filled from left to right. Generally, scrollable data presentation areas
should not be defined with a two-column layout because the usability is poor.
A general panel exit program should be used to diagnose if the user has scrolled
too far. If the user has scrolled too far, the general panel exit should send an
appropriate message followed by the special message to cancel the determined
action. For the message to cancel the determined action, see the section on the
general panel exit program in the System API Reference.
When defining a panel, the user can associate help text with the following areas:
Entire panel
Menu bar
When the Help key is pressed, the UIM displays the help text depending primarily
on where the cursor is. The rules are as follows:
Depending on whether the command line is short or long, the UIM formats and
displays the command line to occupy the one or two lines preceding the function
key area. This position remains unchanged regardless of scrolling, item condi-
tioning, or the number of list entries.
Command lines are defined by the command line (CMDLINE) language tag. For
more information on the CMDLINE tag, see “CMDLINE (Command Line)” on
page A-26. The UIM allows specifying this tag on any panel, but does not require
it.
When a command line is defined for a panel, it is recommended that the F4 key be
assigned to the PROMPT dialog command and the F9 key be assigned to the
RETRIEVE dialog command. This allows the user to prompt for commands
entered on the command line and to retrieve previously entered commands. For
more information on dialog commands, see Appendix B, “UIM Dialog Commands”
on page B-1, and for more information on defining function keys, see “KEYL (Key
List)” on page A-76.
The UIM sometimes associates the command line with one area on the panel. If a
menu area is present, the command line is associated with the menu area. If an
action list is present, the command line is associated with the action list. If neither
is present, the command line is not associated with an area on the panel. The UIM
does not allow two menu areas, two action lists, or a combination of these within a
single panel. Also, command lines and menu option lines are mutually exclusive.
For more information on the option line (OPTLINE) tag, see “OPTLINE (Option
Line)” on page A-120.
Many dialog commands do not require any input on the command line. The fol-
lowing conditions assume the action is one requiring the UIM to know the command
line contents. These actions are for the ENTER, HELP, and PROMPT dialog com-
mands. For more information on the Enter, Help, and Prompt functions, see
Appendix B, “UIM Dialog Commands” on page B-1.
For a command line associated with a menu, the UIM examines the first non-
blank set of characters. If it is composed of only digits (hexadecimal F0
Any changes to the command line causes the UIM to discard the internal version
and treat the changed command line as a new request. If no change is made and
the command is prompted or submitted, the internal version is not reset and is sub-
mitted as the new command string. Modification is based on a character compar-
ison of the command line contents.
F1 through F24 can be assigned to any of the dialog commands except PRINT and
MOREKEYS. The MOREKEYS dialog command can be assigned only to F24.
Function keys that are inactive due to conditioning are treated as if they are not
defined. If the user presses a function key that is not defined, a message is dis-
played to indicate that the key is not allowed. When help is displayed for the func-
tion key area, no help information is displayed for inactive keys.
When defining a function key, the VARUPD attribute of the key list item (KEYI) or
pull-down field choice (PDFLDC) language tag defines whether dialog variables and
list entry values should be updated with user entered values when the function key
is pressed or when the pull-down choice is selected. If any fields on the panel fail
validity checking, the action associated with the function key or pull-down choice is
not performed.
When VARUPD=YES is specified, all values keyed in by the user must pass
validity checks. If any values fail the validity checks, the following occurs:
Any dialog variable that does not pass validity checking is not updated.
The specified function is not performed.
The general exit program for the panel, if specified, is not called.
The UIM displays the same panel again with the appropriate error messages.
When VARUPD=NO is specified for a dialog command, which causes the UIM to
return control to the application program, variable values entered by a user are not
available to the application program. The values are stored for the panel and can
be shown again by using the redisplay parameter of the Display Panel (QUIDSPP)
API. For more information on this, see the System API Reference. When
VARUPD=NO is specified on the CMD and CALL dialog commands, the UIM saves
the screen copies of dialog variables and uses them when the panel is displayed
again after the specified action completes.
Note that when VARUPD=NO is specified on the CMD and CALL dialog com-
mands, any modification of dialog variables or list entries causes the saved version
to be lost. The saved version for any field is used if the underlying dialog variable
has not changed since the field was saved. For lists, the saved version of a vari-
able in a list entry is used unless one of the following occurs:
For example, assume dialog variable VARX is present on panel PANELX and is
modified by the user just before pressing a function key using the CALL dialog
command where VARUPD=NO. If the target of that CALL dialog command modi-
fied VARX, the saved version is lost. When the UIM displays the panel again after
the call returns, the displayed version of VARX is based on the modification. This
allows actions, which are unrelated to the current panel, to be performed without
requiring the panel contents to pass all validity checks. VARUPD=NO should not
be used with CMD or CALL dialog commands if the intended action is to use the
same panel or any of its associated dialog variables, lists, or conditioning dialog
variables.
Panel formatting takes place when the panel group is compiled and again at run
time.
Most decisions are made when the panel group is compiled and the information is
kept in the panel group object. Those formatting decisions that cannot be made
when the panel group is compiled are made during Display Panel (QUIDSPP) API
processing.
An example of this distinction is a data item that is conditioned. All details about
the prompt text layout, number of leader dots, field position, and formatting of pos-
sible choices are performed when the panel is created.
This does not mean that the internal format cannot change within an application.
Most of the internal format does not change, but some panel elements such as
menu items, list actions, and function keys, are conditioned by the application. The
effect of changes to these areas are evaluated each time the panel is displayed,
and then the format is updated.
Because the UIM performs many functions, such as submitting commands and
calling programs, before returning control to the application that called the
QUIDSPP API, the specified panel can be presented to the user several times.
Each time the panel is displayed, the UIM reevaluates the panel formatting. For
example, pressing a function key causes an application program to be called.
When the application program returns control to the UIM, the UIM displays the
panel again, but only after checking to see if the application program changed the
conditions that affected the internal format. For example, if the QUIDSPP API is
called to display a panel with a menu area on it, and the application program
changed a dialog variable affecting the conditioning of some of the menu items,
when the UIM displays the menu area again, it reflects the changes.
Generally, the closer information is packed on a panel, the less likely the UIM for-
matter can match what manual formatting might achieve.
There are two ways the application program can turn on the exit flag:
1. Specify the SET parameter on the EXIT dialog command. When the UIM per-
forms the EXIT dialog command with the SET parameter, it turns on the job's
exit flag. For more information on the EXIT dialog command, see Appendix B,
“UIM Dialog Commands” on page B-1.
2. Set the UIM-defined variable ZEXIT to "1" using the Put Dialog Variable
(QUIPUTV) API. By setting this Z-variable, the UIM turns on the job's exit flag.
The UIM automatically turns off the exit flag when it begins processing actions.
Whenever the UIM regains control after performing a panel-defined action, such as
submitting a command assigned to a function key or calling a program because a
menu item is selected, the job's exit flag is checked. If the flag is on and the panel
is displayed as an old user task (user task parameter on the QUIDSPP API), the
UIM returns control to the calling application at that point. Also, the function-
requested parameter of the QUIDSPP API contains an indication that the panel
display ended due to the EXIT dialog command.
If the job's exit flag is off or the panel is displayed as a new user task, nothing
special happens. The UIM turns off the exit flag and displays the panel again.
PGMX
QUIDSPP
Job
Exit
Flag
On
PGMY
EXIT QUIDSPP
PANELY
RV2W058-0
If the function key on PANELY assigned to the EXIT dialog command does not use
the SET parameter, the UIM displays PANELX again because the job's exit flag is
not turned on.
The operating system maintains a flag for each job indicating whether or not cancel
is requested. This flag is similar to the flag described for exit processing; see
“Folding Up Multiple Panels When EXIT Is Requested” on page 17-24. However,
the cancel flag is not used to bypass more than one panel, and it is not used in
conjunction with the user task parameter on the Display Panel (QUIDSPP) API.
There are two ways the application program can turn on the cancel flag:
1. Specify the SET parameter on the CANCEL dialog command. When the UIM
performs the CANCEL dialog command with the SET parameter, it turns on the
job's cancel flag. (For more information on the CANCEL dialog command with
the set parameter, see Appendix B, “UIM Dialog Commands” on page B-1.)
2. Set the UIM defined variable, ZCANCEL, to "1" using the QUIPUTV API. By
setting this Z-variable, the UIM turns on the job's cancel flag.
It is the application developer's responsibility to ensure that pressing the Exit key
stops the processing of list actions and either redisplays the action list panel at the
point where processing was stopped or exits the action list panel. If another panel
can be displayed as a result of processing a list option, the job's exit flag should be
turned on when the Exit key is pressed by specifying the SET parameter on the
EXIT dialog command. When the UIM performs action list processing, it checks the
exit flag after each list action completes. When the UIM finds that the flag is on, it
stops processing the remaining list options and the following occurs:
If the action list panel is displayed as a new user task, the panel is displayed
again.
If the action list panel is displayed as an old user task, the panel is not dis-
played again, and control is returned to the program that displayed the action
list panel with a return function indicating EXIT was used.
In either case, the option field for the list entry just processed is cleared and the
options of list entries whose action was not attempted are left in the list. The UIM
also checks the job's exit flag when it gets control back after processing menu
options, function keys and pull-down menu choices. For more information, see
“Folding Up Multiple Panels When EXIT Is Requested” on page 17-24
The UIM does not become a request processor program when displaying a panel in
a pop-up window that has a menu or action list unless the panel also has a
command line. This is true even when the window is displayed over a primary
panel that has a command line, action list, or menu area.
When the UIM becomes a request processor program while displaying a full-screen
panel, and the application is designed to use the CALL dialog command to add and
display a pop-up window, the program stack contains the UIM request processor
program for the full-screen panel. However, when the application is designed to
use the RETURN dialog command to add and display a window, the program stack
does not contain the UIM request processor program. Therefore, the ENDRQS
command causes different results depending on the internal design of the applica-
tion.
As a general guideline, you should avoid designing long-running functions that run
as a result of a list option or menu option from a pop-up window, unless your
program is a request processor at appropriate times.
If your program becomes a request processor program and displays one or more
pop-up windows by using a design that relies on the RETURN dialog command,
then the code needs to clean up the window stack if the function that displayed a
window is canceled by the ENDRQS command. When this happens, the Remove
Pop-up Window (QUIRMVPW) API must be called once for each window to be
removed from the application window stack.
If your program becomes a request processor program and displays one or more
pop-up windows by using a design that relies on the CALL dialog command, then
the UIM cleans up the window stack automatically if the function that displayed a
window is canceled by the ENDRQS command.
The menu bar contains a list of choices that users may request. The choices are
listed horizontally on one to three lines with three blanks between all choices.
For more information on defining menu bars, see the following language tags in
Appendix A, “UIM Panel Group Definition Language” on page A-1.
PANEL (Display Panel)
MBAR (Menu Bar)
MBARC (Menu Bar Choice)
PDFLD (Pull-down Field)
PDFLDC (Pull-Down Field Choice)
Visually, a pull-down menu appears different from a pop-up window in the following
ways:
The separator line appearing below the menu bar is always used as the top
border of the pull-down menu. The border for a pop-up window is never part of
the underlying panel.
A pull-down menu does not have a title. A pop-up window can have a title.
A pull-down menu does not have function key descriptions and a pull-down
menu never overlays the function key descriptions of the underlying panel.
Pop-up windows usually have function key descriptions and a window can
overlay the function key descriptions of the underlying panel.
A pull-down menu does not have a message line and any messages displayed
as a result of the user interacting with the pull-down menu appear in the
message line of the underlying panel. A pop-up window always contains a
message line and any messages displayed as a result of interaction with the
pop-up window appear in the message line of the pop-up window.
Pull-down menus and pop-up windows also differ in how the user is allowed to
interact with each. The differences are as follows:
When a pull-down menu is displayed, pressing the cursor tab key moves the
cursor to the first unselected choice within the menu bar. Press the tab key
again to move the cursor to the next unselected choice, until the cursor is
moved back to the pull-down menu. When a pop-up window is displayed,
pressing the cursor tab key moves the cursor to the next input field defined
Further differences between pull-down menus and pop-up windows are in how the
application developer can control them. Following are the differences:
Application-defined means that the application developer defines the exact size of
the window on the display panel (PANEL) tag on the panel group source. The
location of the window is specified when the application program calls the Add
Pop-Up Window (QUIADDPW) API.
Windows can be removed from the stack internally by the UIM or by the application
developer.
Adding and removing windows is controlled by the application program, but the UIM
provides a set of APIs to manipulate these windows.
To display a window, an application program must first use the Add Pop-Up
Window (QUIADDPW) API to inform the UIM that the next display is for a window.
A window displaying a selection list should use field-adjacent positioning, while a
window displaying a prompt for positioning a list should use offset positioning.
The QUIADDPW API call does not specify the panel to be displayed in the window.
It specifies only the location information necessary to position the window.
For a window displaying the prompt for positioning a list, offset positioning should
be specified on the Add Pop-Up Window (QUIADDPW) API call. The upper left
corner of the window is positioned below and indented to the right of the upper left
corner of the underlying panel.
Once a window is added to the display, the Display Panel (QUIDSPP) API is used
to display a panel within the window. When the QUIDSPP API is called, the UIM
performs the following operations:
1. Determines the actual location for the window. The location is determined
according to the location information provided by the call to the QUIADDPW
API.
2. Formats the panel.
3. Merges the newly formatted panel and window border with the underlying panel
image.
4. Displays the merged panel output.
The end user must interact with the most recently displayed window before inter-
acting with any other underlying panel or window.
The QUIRMVPW API does not cause the UIM to automatically display the under-
lying panel again. The panel is displayed again without the window on the next call
to the QUIDSPP API, or when the UIM automatically displays a panel again after
processing a function or running an exit program.
For DDS panels, a command line window can be provided by calling the
QUSCMDLN API.
The following example shows a command line pop-up window used on a display.
..............................................................................
: Command :
: :
: ===> ____________________________________________________________________ :
: F4=Prompt F9=Retrieve F12=Cancel :
: :
:............................................................................:
á ñ
Printing Concepts
The UIM allows applications to define and generate printed output to the level
required for the OUTPUT(*PRINT) parameter on a CL command. This support pro-
vides a hardcopy form of information in a format similar to that displayed by the
UIM, but it does not allow for generalized printing via the UIM.
The application developer does not need to provide a print panel and a display
panel. However, it is recommended that both print and display panels be placed in
the same panel group. For printing panels, use the Print Panel (QUIPRTP) API.
A panel group can be opened for either display or print. Once a panel group has
been opened for display, it can also be used to produce printed output. The Add
Print Application (QUIADDPA) API is provided to open a printer file for an already
open display application, and the Remove Print Application (QUIRMVPA) API
closes the printer file that was opened with the QUIADDPA API.
The UIM tag language is used to define print head panels and print panels. The
print head panel, created with the print head (PRTHEAD) tag, defines the header
information that is printed at the top of each page. The print panel, created with
the print panel (PRTPNL) tag, defines the different panel areas to be printed. Both
the print head panels and print panels must be printed for the same open applica-
tion.
The following areas make up a printed listing and the example that follows is how it
would look:
Title The title consists of two lines printed at the top of every page. The
title lines contain information such as the output title, time and date,
system name, product information, and page number. All of the infor-
mation in the title lines is defined by the print head panel.
Prolog (Optional.) The prolog section is printed only on the first page and
comes right after the title lines. The prolog section is used for such
things as indicating what parameters were specified to print the
output. The prolog section is defined as the portion of the print head
panel that has TYPE=PROLOG specified on the data presentation
area (DATA) or information area (INFO) tag.
Header (Optional.) The header section is used to print the same data on
every page. This data usually includes things such as the file name,
library, and member name for which information is printed. This
section comes after the prolog on the first page and after the title
lines on all remaining pages. The header section is defined as the
portion of the print head panel that has TYPE=NORMAL specified or
defaulted.
Page body The page body is made up of one or more panels of information.
These panels of information appear very similar to panels that are
used to display information on a display. These panels can contain
data, information, and list areas. Menu areas and selection fields
cannot be defined for printing. Because there is no such thing as a
scrollable print panel, all information and data associated with the
panel is printed via the Print Panel (QUIPRTP) API.
Trailer The trailer is a single line of text that is printed after the last panel
area on the last page. This trailer usually says something like
E N D O F L I S T I N G
or
E N D O F S O U R C E
Prologue (optional)
what parameters
were specified
Header (optional)
file name, library,
member name
Page body
Page body
same as page 1
RV2W059-2
The HP0 through HP9 highlighting phrase tags are not allowed in print panel defi-
nitions. Highlighting, underline, and double strike are not supported. (A double
strike is when the printer prints a letter and then prints the same character or
another character in the same position.)
With TYPE=PROLOG specified, the prolog section consists of one or more data
areas, one or more information areas, or a combination of both. The prolog section
is printed only from the first print head panel that is printed for each open printer
file. An attempt to print a print head panel containing a prolog section causes an
escape message if the print head panel is not the first one printed for an open
printer file.
The minimum page length is 18 lines. To ensure that there is room for data on
each page, with the possible exception of the first, the UIM limits the combined total
depth of the prolog and header sections to 14 lines. If these maximums are not
followed, a compile-time error message occurs.
A title line must be printed at the top of every page, so the UIM requires that a print
head panel be printed before any other print panels. The Print Panel (QUIPRTP)
API needs to be called only once for the print head panel for each printer file. After
that, the same header information is printed on each page of the printer file. To
change the header information, call the QUIPRTP API again for the same or dif-
ferent print head panel.
When a print head panel is processed by the Print Panel (QUIPRTP) API, it is not
actually printed until another QUIPRTP API is called for a print panel. Therefore, if
the QUIPRTP API is called for five different print head panels before the QUIPRTP
API is called for a print panel, only the last print head panel affects the listing.
If multiple UIM applications are printing to the same printer file, it is possible to
have more than one prolog section per printer file, because a prolog section, if
there is one, is printed once per open application.
Care must be taken when working with a shared file to avoid inadvertently sharing
with a higher or previous program in the program stack. Sharing a printer file
between a UIM application and an application using a DDS record format file does
not work. The shared file is closed when the last application sharing the shared file
uses a Close Application (QUICLOA) or Remove Print Application (QUIRMVPA)
API.
Chapter 19. Making Online Help Accessible for Your Panel Group . . . 19-1
Definitions and Explanations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-1
Giving Help Panel Groups Access to InfoSeeker . . . . . . . . . . . . . 19-3
Giving Help Panel Groups Access to Index Search . . . . . . . . . . . . 19-4
Giving Help Panel Groups Access to A User-Defined Panel Group . . . 19-4
Removing Access to F18=More Indexes . . . . . . . . . . . . . . . . . . 19-5
Help in a List Area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-5
Coding Help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-6
Help in a Menu Area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-7
Coding Help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-7
Help in a Data Area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-9
Coding Help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-10
Help in a Menu Bar Area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-13
Coding Help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-14
Help in a Function Key Area . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-15
Coding Help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-16
The following illustration shows what happens when the Help key is pressed and
online help information is available and accessible:
User presses Help key
F1
Display
File Display
Help XXX
F3 F12 Enter
or or
Display
File Display
RV2W018-4
Note: Caution is advised when using application help with multiple display stations
acquired to the file because all display stations wait for the completion of
the application help display.
To provide online help information for your display, you need to do the following:
Add to your display file the necessary DDS keywords to make online help infor-
mation accessible for your display. This chapter provides instructions for
adding these keywords.
For more information about the DDS keywords described in this chapter, see
the DDS Reference.
Each method has characteristics that can help you choose the method that will
work best for you. The following table lists these characteristics and the method or
methods that they apply to:
Table 18-2 (Page 1 of 2). Characteristics of Different Methods of Online Help Information
Panel
Characteristic Groups Documents Records
Accessible through H specifications for X X X
DDS-described displays
Allows cursor-sensitive help X X X
Allows extended help X X X
Index search function available X
InfoSeeker function available X
Windows used X
Hypertext linking available X
Used by system displays X
Can be used for command help X
Word processing functions, such as spell X (See X
checking, available note.)
RV2W020-2
The cursor location is determined when the Help key is pressed. If the Help key is
enabled and the cursor is in any active help area, the online help information asso-
ciated with that help area is displayed.
Chapter 18. Making Online Help Information Accessible for Your Display File 18-3
Each help area on a display is defined in the DDS source using the following:
H specification
Defines help for the containing record. An H in column 17 of the DDS
source indicates a help specification level. The help specifications are
defined before the first field in the record.
Help Area (HLPARA) keyword
Defines a help area by giving the upper-left row column and lower-right
row column of the rectangular area. These coordinates must be located in
the screen area, but are not required to be in the record area.
If *RCD is specified for the HLPARA keyword, the help is associated with
the entire record area, which includes all columns in the lines occupied by
the record. When the cursor is located in the record area and the Help
key is pressed, the online help information from the record on the HLPRCD
keyword is displayed.
Help (HLPxxx) keyword
Defines whether a panel group (HLPPNLGRP), document (HLPDOC), or
record format (HLPRCD) contains the actual online help information that
you see when you press the Help key.
The following illustration shows how H specifications are entered in your DDS
source:
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7...
H HLPARA(\RCD)
HLPxxx(required-variables)
This sample DDS defines help for a record. The required variables for the help
keyword depend on whether HLPxx is defined as a HLPPNLGRP, HLPDOC, or
HLPRCD keyword. Only one help keyword can be defined for the file, but you can
specify one or more H specifications for a record.
The order of H specifications is important because the first match found is selected.
Therefore, the more specific HLPARA locations should be listed first.
The following sample display is defined with two record formats, HEADER and
SINFO:
Record
SINFO
(lines 15-17)
RV2W022-3
The following table shows one way to define the online help information for the
sample display:
Depending on the help method you plan to use, continue with any of the following
to define H specifications in your DDS source:
Panel groups (UIM)
“Specifying Panel Groups for Help in Your Display File” on page 18-6
Documents (OfficeVision)
“Specifying Documents in Your Display File” on page 18-9
Records (DDS)
“Specifying Records in Your Display File” on page 18-12
To compare and contrast the different ways to create online help information, see
“Choosing between Panel Groups, Documents, and Records for Help” on
page 18-2.
Chapter 18. Making Online Help Information Accessible for Your Display File 18-5
Specifying Panel Groups for Help in Your Display File
The HLPPNLGRP keyword in DDS identifies the panel group that contains online
help information for a display. The HLPPNLGRP keyword may be specified in an H
specification or at the file level. To use the HLPPNLGRP keyword, you need to
know the name of the help module and the name of the panel group and library
that contains that help module.
Several other DDS functions are available for use with panel groups. The functions
and their associated DDS keywords are described in the following table:
Table 18-4 (Page 1 of 2). Other DDS Keywords for UIM Help
Function DDS keyword Description
Defining the name of the HLPTITLE The text to be displayed on the first line of
help screen the help display is defined with the file- or
record-level DDS keyword HLPTITLE (Help
Title). This text should be the name of the
display that is displayed when the Help key
is pressed. The HLPTITLE keyword must
be used in the display file. This keyword is
used only on full-screen displays of help
when no help title is specified in the help
source.
Indicating full-screen HLPFULL Using the DDS file-level HLPFULL (Help
online help information Full) keyword, the UIM-defined online help
information for the application is displayed
in a full-screen replacement display rather
than in a window.
When the HLPFULL keyword is not speci-
fied, the help is displayed in a window
unless the user's profile specifies other-
wise.
Excluding panel group HLPEXCLD The HLPEXCLD keyword excludes a help
help as secondary help panel group with a duplicate name from
information being displayed within extended help. To
do this, place HLPEXCLD on all but the
first H specification that names an identical
help panel group. HLPEXCLD indicates
that the information associated with the H
specification is not displayed as part of the
extended help.
When the HLPEXCLD keyword is not
specified, extended help consists of the
information associated with both the file-
level HLPPNLGRP keyword (if any) and
the HLPPNLGRP keywords on all active H
specifications.
At least one help panel group name must
not specify the HLPEXCLD keyword.
Enabling the Index HLPSCHIDX The Index Search function is enabled, and
Search function the search index object used for the Index
Search function is specified by the file-level
DDS keyword HLPSCHIDX (Help Search
Index).
Using the sample display from “Defining Which Areas of Your Display Need Online
Help Information” on page 18-3, the following online help information is defined for
each help area:
Record
HEADER
(lines 5-7)
Record
SINFO
(lines 15-17)
RV2W023-5
The following DDS source shows how the help areas are defined for the sample
display using panel groups:
Chapter 18. Making Online Help Information Accessible for Your Display File 18-7
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7...
HELP
HLPPNLGRP(SUPHELP SMPLIB/SMPPNL)
HLPTITLE('ADD,UPDATE,DISPLAY SUPPLIER')
R HEADER OVERLAY
H HLPARA(\RCD)
HLPPNLGRP(HLPCMPY SMPLIB/SMPPNL)
5 25'ADD, UPDATE, DISPLAY SUPPLIER'
7 1ð'ENTER NEW OR EXISTING NAME:'
CONAME 1ðA I 7 47
R SINFO OVERLAY PROTECT
H HLPARA(15 1 15 79)
HLPPNLGRP(HLPADDR SMPLIB/SMPPNL)
H HLPARA(16 1 16 79)
HLPPNLGRP(HLPCITY SMPLIB/SMPPNL)
H HLPARA(17 1 17 79)
HLPPNLGRP(HLPST SMPLIB/SMPPNL)
15 1ð'ADDRESS:'
ADDR 3ðA B 15 32
16 1ð'CITY:'
CITY 1ðA B 16 32
17 1ð'STATE:'
STATE 2A B 17 32
The file-level help in SUPHELP provides extended help for the display (when the
cursor is not located in the record area for either HEADER or SINFO) because
HLPARA(*RCD) is the location specified on the H specification.
The panel groups that contain the online help information must be created by using
the UIM source from a source file member. More information about creating panel
groups is found in “Defining Online Help Information in a Panel Group” on
page 20-1.
Note: HLPPNLGRP and HLPRCD are not allowed in the same display file;
HLPPNLGRP and HLPDOC are also not allowed in the same display file.
Defining Panel Groups with Option Indicators: The HLPPNLGRP keyword can
be specified with option indicators. In the following example, assume the SINFO
record has indicator 90 on and the cursor is in the help area defined for the H
specification. When the Help key is pressed, the panel group HELP1 is displayed.
If indicator 90 is off, panel group HELP2 is displayed.
Figure 18-3. Sample DDS Source Showing HLPPNLGRP and Option Indicators
The source of the online help information that is identified by a help document in
DDS source is specified with the help-specification or file-level DDS keyword
HLPDOC (Help Document). To use the HLPDOC keyword, you need to know the
names of the document and folder (or folders) where the information is stored and
the help information label name that marks the specified location in the document
where the information is located.
Using the sample display from “Defining Which Areas of Your Display Need Online
Help Information” on page 18-3, the following online help information is defined for
each help area:
Chapter 18. Making Online Help Information Accessible for Your Display File 18-9
Record
HEADER
(lines 5-7)
Record
SINFO
(lines 15-17)
RV2W023-5
The following DDS source shows how the help areas are defined for the sample
display using help documents:
The file-level help in SUPHELP is used to provide extended help for the display
(when the cursor is not located in the record area for either HEADER or SINFO)
because HLPARA(*RCD) is the location specified on the H specification.
The DDS keywords HLPDOC and HLPPNLGRP are not allowed in the same
display file. The keywords HLPDOC and HLPRCD are allowed in the same display
file; however, several considerations apply when mixing the two keywords. For
more information about HLPRCD and these considerations, see “Specifying
Records in Your Display File” on page 18-12.
Chapter 18. Making Online Help Information Accessible for Your Display File 18-11
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7...
HELP
R HEADER OVERLAY
5 25'ADD, UPDATE, DISPLAY SUPPLIER'
7 1ð'ENTER NEW OR EXISTING NAME'
CONAME 1ðA I 7 47
R SINFO OVERLAY PROTECT
H HLPARA(15 9 15 61)
9ð HLPDOC(CITY1 HELP#1 HELP.F1)
H HLPARA(15 9 15 61)
N9ð HLPDOC(CITY2 HELP#2 HELP.F1)
15 1ð'ADDRESS'
ADDR 3ðA B 15 32
Figure 18-5. Sample DDS Source Showing HLPDOC and Option Indicators
HLPRCD and HLPPNLGRP are not allowed in the same display file.
Using the sample display from “Defining Which Areas of Your Display Need Online
Help Information” on page 18-3, the following online help information is defined for
each help area:
Record
HEADER
(lines 5-7)
Record
SINFO
(lines 15-17)
RV2W023-5
The following DDS source shows how the help areas are defined for the sample
display using help records:
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7...
HELP
HLPRCD(SUPHELP)
R HEADER OVERLAY
H HLPARA(\RCD)
HLPRCD(HLPCMPY)
5 25'ADD, UPDATE, DISPLAY SUPPLIER'
7 1ð'ENTER NEW OR EXISTING NAME:'
CONAME 1ðA I 7 47
R SINFO OVERLAY PROTECT
H HLPARA(15 1 15 61)
HLPRCD(HLPADDR)
H HLPARA(16 1 16 41)
HLPRCD(HLPCITY)
H HLPARA(17 1 17 33)
HLPRCD(HLPST)
15 1ð'ADDRESS:'
ADDR 3ðA B 15 32
16 1ð'CITY:'
CITY 1ðA B 16 32
17 1ð'STATE:'
STATE 2A B 17 32
The file level help is used to provide general help for the display when the cursor is
not located in any of the defined help areas for either HEADER or SINFO.
You are not required to define each help area with a different record. This means
that the same record may be used to define one or more help areas on a display,
including the help area that defines the entire display.
Defining Records with Option Indicators: The HLPRCD keyword can be speci-
fied with option indicators. In the following example, assume the SINFO record is
put with indicator 90 on and the cursor is in the help area defined for the H specifi-
cation. When the Help key is pressed, the record HELP#1 is displayed. If indicator
90 is off, the record HELP#2 is displayed.
Chapter 18. Making Online Help Information Accessible for Your Display File 18-13
The DDS for this file is:
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7...
HELP
R HEADER OVERLAY
5 25'ADD, UPDATE, DISPLAY SUPPLIER'
7 1ð'ENTER NEW OR EXISTING NAME'
CONAME 1ðA I 7 47
R SINFO OVERLAY PROTECT
H HLPARA(15 9 15 61)
9ð HLPRCD(HELP#1)
H HLPARA(15 9 15 61)
N9ð HLPRCD(HELP#2)
15 1ð'ADDRESS'
ADDR 3ðA B 15 32
Figure 18-7. Sample DDS Source Showing HLPRCD and Option Indicators
Regardless of where the information is contained, the DDS source for the previous
example looks like the following:
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7...
R SUPHELP
2 5'TO ADD, UPDATE, OR DISPLAY -
THE SUPPLIER NAME AND -
ADDRESS, ENTER THE SUPPLIER -
NAME. ITS CURRENT ADDRESS, -
IF ANY, WILL BE SHOWN AND MAY -
BE UPDATED.'
R HLPCMPY
2 5'ENTER THE FIRST 1ð -
CHARACTERS OF THE COMPANY'
R HLPADDR
2 5'ENTER THE NEW OR CHANGED -
ADDRESS.'
R HLPCITY
2 5'ENTER THE FIRST 1ð -
CHARACTERS OF THE CITY'
R HLPST
2 5'ENTER THE 2 CHARACTER ABBR -
FOR THE STATE.'
Chapter 18. Making Online Help Information Accessible for Your Display File 18-15
All other display file keywords, though allowed, do not make sense for records
and may or may not be processed while displaying the help.
Pressing the Help key in a help area on the display does the following:
H
Display
File Display H Help XXX
H
H
H
RV2W019-3
The order and content of the H specifications in the list are determined by the fol-
lowing:
When a record format is added to the display, the H specifications for that
record format are placed on the front of the list.
If the record format contains more than one H specification, they are added to
the help list in the order in which they are defined in the display file.
The help list is cleared either when a record format is written that clears the
display, or when one is written that has the HLPCLR keyword enabled.
If a record has the OVERLAY keyword in effect, has H specifications, or com-
pletely or partially overlaps another record already on the display, the help list
is updated in different ways. The following table describes the type of help-list
updating for records for each combination of the three factors:
Note: An H specification with *NONE specified for the help area is removed from
the help list when the first H specification with a help area defined above it
is removed. If a help specification with *NONE specified for its help area is
the first help specification, then it is only removed when the help list is
cleared or when a help specification with a help area is placed above this
help specification. This H specification is removed when the one above it is
removed.
A help group is defined with the HLPSEQ keyword and consists of those record
formats that have the same group name specified. The HLPSEQ keyword allows
you to specify the help group name and the help sequencing number. The help
sequencing number specifies the order in which the help will be displayed. If two
record formats that are in different display files happen to have the same group
name, they are still considered to be in separate help groups. Record formats that
do not have a HLPSEQ keyword specified are considered to be groups of one.
A help sublist contains all of those H specifications defined between help bounda-
ries. The HLPBDY keyword partitions the help list into sublists by defining help
boundaries. (The H specification that has the HLPBDY keyword coded is consid-
ered to be before the boundary.) Sublists are important when using the roll keys to
look at more online help information.
Chapter 18. Making Online Help Information Accessible for Your Display File 18-17
Determining the Sequence of Secondary Help: Depending on whether you are
using the Roll Up or Roll Down key, the system selects secondary help as follows:
1. A help record format that is in the same help group as the current help record
format and has the next highest help sequencing number (if the Roll Up key is
pressed) or next lowest help sequencing number (if the Roll Down key is
pressed) is selected.
2. If the current help record format already has the highest help sequencing
number (if the Roll Up key is pressed) or the lowest help sequencing number (if
the Roll Down key is pressed) in the group, the help sublist is searched for the
next H specification that does not refer to the same help group as the currently
displayed record format.
Notes:
a. To prevent including unexpected help, it is recommended that the HLPBDY
keyword be specified on the last H specification in each record of the appli-
cation display file. This defines one sublist for each record that has help.
However, if multiple records are on the screen, this may not be desirable.
In this case, the HLPBDY keyword should be in effect only on the last
record put to the screen.
b. Because this second method works only when a sublist can be identified, it
is not used if the primary help was the default record format for the file (for
example, if it was selected from the file-level HLPRCD keyword).
3. Searching in the sublist continues until the boundary of the sublist is reached.
The search then wraps to the other end of the sublist and continues until the
current H specification being displayed is reached.
4. If no H specification that has a satisfactory HLPRCD is found, the record format
in the help display file that has the same help group name and the lowest help
sequence number (if the Roll Up key is pressed) or the highest help sequence
number (if the Roll Down key is pressed) is selected. This method always finds
a match because the current help format always meets this criteria if no other
format does.
In the following example, the fields and HLPARA keywords are not specified
because neither has an effect on the order of secondary information:
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7...
HELP
HLPRCD(HELP11)
R RECORD1
H HLPRCD(HELP1)
H HLPRCD(HELPSCR1)
HLPBDY
H HLPRCD(HELP2SRC)
HLPBDY
The sample file HELPFILE contains the following record formats with HLPSEQ
keywords coded as shown:
Note that the help record formats HELP and HELPSCR2 are not referred to in the
application display file. Because they are not referred to in this way, they are not
primary help, but they are displayed as secondary help as follows:
Sequence 1:
Primary help format HELP11
Press Roll Down HELP1
Press Roll Down HELP
Press Roll Down HELP11
In this first sequence, HELP1 is shown when the Roll Down key is pressed
because this is the previous help record format in GROUPA. Similarly, HELP is
shown when Roll Down is pressed the second time. When Roll Down is pressed
the third time, the end of the help group is reached. HELP11 is then selected
again because it is the last help record format in the original help group.
Sequence 2:
Primary help format HELPSCR1
Press Roll Up HELPSCR2
Press Roll Up HELP1
Press Roll Down HELP
The second sequence starts with HELPSCR1 being displayed as the primary help
record format. Pressing Roll Up causes HELPSCR2 to be displayed because it is
the next help record format in GROUPB. Rolling up again runs off the end of the
group and HELP1 is found because it is the next help record format found, after
wrapping, in the sublist that contains HELPSCR1. Pressing Roll Down now causes
HELP to be displayed because it is the previous entry in GROUPA.
Sequence 3:
Primary help format HELP2SRC
Press Roll Up or Down HELP2SRC
Because HELP2SRC is not in a help group and is the only one in its sublist,
HELP2SRC is to be shown when rolling in either direction.
Chapter 18. Making Online Help Information Accessible for Your Display File 18-19
the application program. All other function keys, including the Help key, are
ignored.
Records with the USRDFN, SFL, and SFLCTL keywords may not be used as
records. When a display file is created, a diagnostic is issued if the HLPSEQ
keyword is found on a record with one of these keywords. When the applica-
tion is running, error reset message CPD4050 is issued if a record with one of
these keywords is used as help. The help record is not displayed.
The KEEP and ASSUME keywords should be avoided on records because they
cause results that cannot be predicted.
The command key must apply to both the application record format and the
application-help record format. If a CAnn or CFnn key does not apply to the
application-help record format, the HLPCMDKEY keyword is ignored.
The following DDS source, which uses help records, shows how the HLPCMDKEY
keyword is specified:
If the user is on the application help display that uses the previous data description
specifications, the following happens when the various keys are pressed:
The CF04 key, which is specified only on the application record format, acts the
same as the Enter key.
The CMD3 key acts the same as the Enter key. Corresponding CAnn or CFnn
keys must be specified on both the application-help record format and applica-
tion record format for control to return to the program.
The CA01 key returns control to the application program.
In the next example, response indicators are used. When a response indicator is
specified on a CAnn or CFnn key on the application record format (for example,
CF12(12)), the response indicator is returned after the application-help record
format is displayed. When a response indicator is specified on a CAnn or CFnn
key on the application-help record format (for example, CF01(11)), the response
indicator is ignored.
Chapter 18. Making Online Help Information Accessible for Your Display File 18-21
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7...
R APPRCD CAð1
CAð3
CF12(12)
HELP
H HLPRCD(HELPRCD)
HLPARA(1 1 24 8ð)
8 2'THIS IS THE APPLICATION'
9 2'RECORD FORMAT'
INPUT1 1ð B 12 1ð
INPUT2 1ð B 13 1ð
INPUT3 1ð B 14 2ð
\
R HELPRCD HLPCMDKEY
CFð1(11)
CF12
8 2'SPECIFY COMPANY NAME'
9 2'SPECIFY STREET'
1ð 2'SPECIFY CITY, STATE, ZIP'
Figure 18-11. Sample DDS Source to Show HLPCMDKEY and Response Indicators
When the user presses the Help key, a sequence of events occur, as illustrated by
the following diagram:
UIM Panel
F1 Help
or
1
F3 F12 Enter
or or
1
If the cursor is on a hypertext link when you press the
Enter key, instead of returning to the current UIM panel,
you are taken to the hypertext information.
RV2W061-2
When the user presses the Help key, the current panel is suspended by the UIM
and a help panel is displayed with information about a specific item, group of items,
area on a panel, or the entire panel. When the user has read the displayed help,
the user presses the F3, F12, or Enter key to return to the current panel before the
Help key was pressed.
Online help information is the information displayed to the user when the Help
key is pressed on the keyboard. The level of help displayed depends on the
location of the cursor when the user presses the Help key.
Help is always available for the entire panel. This help is known as extended
help, which is the general information for a panel. Extended help begins with infor-
mation about the purpose and use of the panel and is followed by contextual help
for each item on the panel. Extended help includes contextual help for items that
do not currently show on the screen, but which can be shown by using the Page
Up and Page Down keys. (Contextual help provides information about a single
item or group of related items where the cursor is positioned when the user
requests help.) An item is excluded from extended help when the item is not cur-
rently active for the panel by using the COND attribute for a specific item on the
panel.
Extended help is displayed when the Help key is pressed for an area of the screen
that does not have contextual help defined. It is also displayed when the user
presses F2 (Extended help) while viewing contextual help.
The extended help is defined on the HELP attribute of the display panel (PANEL)
tag. This attribute identifies the help module containing the beginning of the
extended help for the panel.
When coding online help for a panel, the tag which actually contains the information
that is displayed when the user presses the Help key is the help module (HELP)
tag. For more information on the attributes of this tag, see “HELP (Help Module)”
on page A-60.
To code for help in a panel, the HELP attribute must be specified on the tag for
which the help is provided. The name of the help module containing the help infor-
mation is specified on the HELP attribute of a tag.
The help module identified on a HELP attribute exists in the same panel group or
menu where that HELP attribute appears, or in another panel group. When the
panel group or menu is created, the UIM compiler determines the panel group in
which the UIM will find the help module when the Help key is pressed by finding a
help module name that matches the name specified on the HELP attribute in one of
the following places:
1. If the panel group or menu being created contains a matching name on the
NAME attribute of a HELP tag, the help module is found in the same panel group
or menu when the Help key is pressed.
2. If the panel group or menu being created contains a matching name on the
NEWNAME attribute of an import (IMPORT) tag, the help module is found in the
panel group specified on the PNLGRP attribute of the IMPORT tag.
3. If the panel group or menu being created contains an IMPORT tag with NAME='*'
specified, the help module is found in the panel group specified on the PNLGRP
attribute of the IMPORT tag.
When specifying the name of a help module, apostrophes are not necessary unless
characters other than A through Z, a through z, and 0 through 9 are used. If any
other keyboard characters are used, apostrophes are required. For example, in a
name specifying HELP='key/enter', the apostrophes are required because the slash
(/) is not an alphabetic character or a numeral. For more information on the rules
for names, see “Name Syntax” on page A-4.
The :HLPSHELF parameter causes the F11=InfoSeeker key to display on the help
panel for the UIM panel. Pressing F11=InfoSeeker displays the InfoSeeker main
display as shown in Figure 19-1. The LIST value on the :HLPSHELF parameter
causes the default list of online books and bookshelves to display.
à InfoSeeker
ð
Type options, press Enter.
1=Open 2=Search 4=Remove from view 8=Display description
9=Put in shelf 11=Update bookshelf
Opt Description
__ (S) AS/4ðð General System Information
__ \ (S) AS/4ðð Planning and Installation
__ (S) AS/4ðð Operation
__ (S) AS/4ðð System Management
__ (S) AS/4ðð Communications and Connectivity
__ (S) AS/4ðð Using Applications
__ (S) AS/4ðð Application Development
__ (S) AS/4ðð Environments, Program Interfaces, and Enablers
__ \ (S) AS/4ðð Migration
__ (S) AS/4ðð Service
__ (S) AS/4ðð All System Books
__ (S) AS/4ðð Redbooks
__ (B) My Little User's Guide
Bottom
F3=Exit F5=Refresh F6=Change list F9=Command line
F12=Cancel F13=Sort F17=Position to F24=More keys
á ñ
Figure 19-1. InfoSeeker Display
Chapter 19. Making Online Help Accessible for Your Panel Group 19-3
Giving Help Panel Groups Access to Index Search
Index search provides access to user created search indexes. You can give a UIM
help panel group access to these search indexes using the :SCHIDX parameter on
the :PNLGRP tag. Here is an example of the UIM coding to give a help panel
group access to index search:
:PNLGRP SCHIDX=search index
..
.
:PANEL.
..
.
:EPANEL.
..
.
:EPNLGRP.
The :SCHIDX parameter causes the F11=Search Index key to display on the help
panel for the UIM panel. Pressing F11=Search Index displays the index search
main display as shown in Figure 19-2. The search index specified on the :SCHIDX
parameter will be the search index displayed on the index search screen.
à Search Index
ð
Type options, press Enter. (+ indicates an expandable topic)
5=Display topic 6=Print topic 7=Expand topic 8=Compress topic
Opt Topic
Title of this index
_ Main Help Topic
_ Help number 1
_ Help number 3
_ Help number 4
_ Help number 2
_ Help number 3
Bottom
Or type search words and press Enter. (\ indicates a topic match)
________________________________________________________________________
á ñ
Figure 19-2. Index Search Display
For this panel, the user may enter numbers 2, 4, 5, 7, or 8 in the Opt column to
specify an action to be performed against one of the rows in the list.
à Spooled Files
ð
Type options, press Enter.
2=Change 4=Cancel 5=Display 7=Hold 8=Release
-----Created------
Opt File Nbr User Pty Date Time
_ ffffffffff nnnn uuuuuuuuuu p mm/dd/yy hh:mm:ss
_ ffffffffff nnnn uuuuuuuuuu p mm/dd/yy hh:mm:ss
_ ffffffffff nnnn uuuuuuuuuu p mm/dd/yy hh:mm:ss
_ ffffffffff nnnn uuuuuuuuuu p mm/dd/yy hh:mm:ss
Chapter 19. Making Online Help Accessible for Your Panel Group 19-5
Help in a list area must be defined at the group level and at the column level for
columns which are not part of a group.
Coding Help
The following source shows how help is defined for the sample panel with a list
area shown above. All help modules for this sample list area are imported from
panel group *LIBL/EXAMPL2. When the cursor is positioned on the Opt column,
the 'splf/option' help module is displayed, followed by these help modules:
'splf/change'
'splf/cancel'
'splf/display'
'splf/hold'
'splf/release'
When the cursor is positioned on either the Date or Time column, the 'splf/created
date time' help module is displayed. With the cursor on any other column, the help
module identified on the LISTCOL tag is displayed.
:import name='\' pnlgrp='\libl/example2'.
..
.
:listact option=2 help='splf/change' enter='call listactpgm'.2=Change
:listact option=4 help='splf/cancel' enter='call listactpgm'.4=Cancel
:listact option=5 help='splf/display' enter='call listactpgm'.5=Display
:listact option=7 help='splf/hold' enter='call listactpgm'.7=Hold
:listact option=8 help='splf/release'enter='call listactpgm'.8=Release
..
.
:listcol var=option help='splf/option' usage=inout maxwidth=6.Opt
:listcol var=filenam help='splf/file_name' usage=out maxwidth=12.File
:listcol var=filenbr help='splf/file_number' usage=out maxwidth=6.Nbr
:listcol var=usernam help='splf/user_name' usage=out maxwidth=12.User
:listcol var=filepty help='splf/file_priority' usage=out maxwidth=6.Pty
:listgrp col=filecrt help='splf/created_date_time'.Created
:listcol var=filedat usage=out maxwidth=8.Date
:listcol var=filetim1 usage=out maxwidth=8.Time
:elistgrp.
:listview cols='option filenam filenbr usernam filepty filecrt'.
This panel has six options the user can choose, and each option has a brief
description of the action it performs. The option number chosen by the user is
entered on the Selection line.
Selection
_
á ñ
Help in a menu area must be defined at the item level.
Coding Help
The following source shows how help is defined for the sample panel shown on
page 19-7.
Reference numbers (.n/) are used in this example to show the relationship
between referring to a help module using the HELP attribute of a tag, and the defi-
nition of the help module using the HELP tag.
Chapter 19. Making Online Help Accessible for Your Panel Group 19-7
:menui option=1 help='option/display_attr' action='call menuipgm' .1/
.Display file attributes
:menui option=2 help='option/display_cont' action='call menuipgm' .2/
.Display file contents
:menui option=3 help='option/change_owner' action='call menuipgm' .3/
.Change ownership
:menui option=4 help='option/change_auth' action='call menuipgm' .4/
.Change authorizations
:menui option=5 help='option/delete' action='call menuipgm' .5/
.Delete
:menui option=6 help='option/backup_tape' action='call menuipgm' .6/
.Backup to tape
..
.
:help name='option/display_attr' .1/
.Display File Attributes - Help
:xh3.1. Display file attributes
:p.Choose this option to display the attributes associated with this file.
The attributes include all the information about the definition of the file.
:ehelp.
:help name='option/display_contents' .2/
.Display File Contents - Help
:xh3.2. Display file contents
:p.Choose this option to display the data contained in this file.
:ehelp.
:help name='option/change_owner' .3/
.Change Ownership - Help
:xh3.3. Change ownership
:p.Choose this option to change the owner of this file.
You are prompted to enter the name of the new owner.
:ehelp.
:help name='option/change_auth' .4/
.Change Authorizations - Help
:xh3.4. Change authorizations
:p.Choose this option to change the list of users
who have authority to access this file.
You are prompted for the user names and authorizations for the file.
:ehelp.
:help name='option/delete' .5/
.Delete - Help
:xh3.5. Delete
:p.Choose this option to delete this file.
The file and all the data in the file is erased from the system
and the storage used by the file is made available for other use.
:ehelp.
:help name='option/backup_tape' .6/
.Backup to Tape - Help
:xh3.6. Backup to tape
:p.Choose this option to
save a copy of this file on a magnetic tape.
You are prompted for more information about how to back up the
file on the tape.
:ehelp.
Help in a data area must be defined for every item at one of three levels.
Chapter 19. Making Online Help Accessible for Your Panel Group 19-9
The HELP attribute applies to all data item extender (DATAIX) tags associated
with a data item.
If the HELP attribute is specified on the DATASLT tag, the HELP attribute can
also be specified for each choice on the DATASLTC tag. If the HELP attribute is
specified on a DATASLTC tag within a selection field, all DATASLTC tags
within that selection field must have the HELP attribute specified.
For multiple-choice selection fields, the online information identified for each
choice is included as part of the contextual help displayed when the cursor is
positioned anywhere within the selection field.
For single-choice selection fields, the online information identified for each
choice is displayed when help is requested while the cursor is positioned on the
text of the choice. This online information is also included as part of the con-
textual help displayed when the cursor is positioned within the selection field
but not on the text for one of the choices within the field. This includes occur-
rences when the cursor is positioned on the prompt text for the selection field
or in the entry field for the selection field. If the cursor is in the entry field and
a valid choice is entered, when help is requested, the help for that choice is
displayed.
Coding Help
The following source shows how help is defined for the sample data area panel
shown previously. All the help modules for this sample data area are imported
from panel group *LIBL/DATAXMP.
..
.
:import name='\' pnlgrp='\libl/dataxmp'.
..
.
:datai var=filename help='print/filename' usage=inout.File name
:datac.Name of document to be printed
:datai var=typestyle help='print/style' usage=inout.Type style for printing
:datac.1=Prestige Elite (12 pitch)
:datac.2=Courier (1ð pitch)
:datac.3=Essay Standard (proportional)
:datac.4=Essay Bold (proportional)
:datai var=leftmarg help='print/left_margin' usage=inout.Left margin
:datac.Number of spaces from the left edge of the paper (1-2ð)
:datai var=copies help='print/copies' usage=inout.Copies
:datac.Number of copies (1-99)
:datai var=duplex help='print/duplex' usage=inout.Duplex
:datac.1=Yes (Print both sides of paper)
:datac.2=No (Print one side only)
..
.
The following source defines the help modules in panel group *LIBL/DATAXMP.
These help modules are imported when the Help key is pressed for the previous
sample data area.
The following example panel shows the file name and library name in a data area
with a horizontal layout.
Chapter 19. Making Online Help Accessible for Your Panel Group 19-11
The following source shows how help is defined for the sample data area shown
above. This is an example of providing area level help. When the cursor is posi-
tioned anywhere on the line containing the file name, help for the file name and
library are displayed.
Reference numbers (.n/) are used in this example to show the relationship
between a reference to a help module using the HELP attribute of a tag, and the
definition of the help module using the HELP tag.
..
.
:data depth=2 help='file_and_library' layout=horiz. .1/
:datai var=filename usage=out.File
:datai var=library usage=out.Library
:edata.
..
.
:help name='file_and_library'.File and Library - Help .1/
:xh3.File and library
:p.The qualified name of the file whose members are being displayed.
:ehelp.
..
.
The following example panel shows a qualified file name and a record name in a
data area with a two-column, vertical layout.
The following source shows how help is defined for the sample data area shown
above. This includes providing group level help for the qualified file name. When
the cursor is positioned on the file or library, help for the qualified file name is dis-
played. When the cursor is positioned on the record name, help for the record
name is displayed.
Reference numbers (.n/) are used in this example to show the relationship
between referring to a help module using the HELP attribute of a tag, and the defi-
nition of the help module using the HELP tag.
..
.
:data depth=3 layout=2.
:datacol width=16.
:datacol width='\'.
:datagrp grpsep=qindent help='library/file' compact. .1/
:datai var=filename usage=out.File
:datai var=library usage=out.Library
:edatagrp.
:datai var=record help=record usage=out.Record .2/
:edata.
..
.
This partial screen contains an example of a menu bar area. The menu bar is the
line near the top of the panel, listing File and Help as choices for the user. The
user may select one of the choices to display the pull-down menu for that choice.
The second screen in this example shows the pull-down menu displayed after
selecting File.
à File Help
ð
------------------------------------------------------------------------------
Work with Programs
System: ROCHððð1
Type choices, press Enter.
2=Change 4=Delete 5=Display
When File is selected, a pull-down menu appears containing choices for actions for
the panel. The actions available in the pull-down menu are Change, Delete,
Display, and Exit. A pull-down menu with another list of actions appears when the
user selects the Help menu bar choice while in the menu bar.
à File _Help
ð
-.-------------------.--------------------------------------------------------
: 2. Change : Work with Programs
: : System: ROCHððð1
: 4. Delete : er.
: 5. Display : 5=Display
: 6. Exit F3 :
:...................: y Text
PPPPPPPPPP LLLLLLLLLL Description textxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
PPPPPPPPPP LLLLLLLLLL Description textxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
PPPPPPPPPP LLLLLLLLLL Description textxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Contextual help for a menu bar choice includes help for the choice on the menu
bar, as well as help for each active choice in the pull-down menu for that menu bar
choice. Help in a menu bar area must be defined at the menu bar choice level and
at the pull-down choice level.
Chapter 19. Making Online Help Accessible for Your Panel Group 19-13
Menu Bar Choice Level Help
To define help at the menu bar choice level, specify the HELP attribute on the
menu bar choice (MBARC) tag. This attribute identifies the help module which
explains the purpose of the menu bar choice.
Coding Help
The following source shows how help is defined for the first menu bar choice and
the pull-down menu shown on page 19-13.
Reference numbers (.n/) are used in this example to show the relationship
between referring to a help module using the HELP attribute of a tag, and the defi-
nition of the help module using the HELP tag.
..
.
:mbarc help='mbarpgm/file'.File .1/
:pdfld.
:pdfldc option=2 help='mbarpgm/file/change' .2/
action='cmd ?CHGPGM PGM(&var2./&var1.)'
actfor=list.Change
:pdfldc option=4 help='mbarpgm/file/delete' .3/
action='cmd DLTPGM PGM(&var2./&var1.)'
actfor=list confirm=confpgm usrexit='call exitpgm'.Delete
:pdfldc option=5 help='mbarpgm/file/display' .4/
action='cmd DSPPGM PGM(&var2./&var1.)'
actfor=list.Display
:pdfldc option=6 help='mbarpgm/file/exit' action='exit set' .5/
varupd=no.Exit
:pdaccel.F3
:epdfld.
:embarc.
..
.
:help name='mbarpgm/file'.File - Help .1/
:xh3.File
:p.Select this choice to display a pull-down menu containing options
to perform against selected programs.
:ehelp.
:help name='mbarpgm/file/change'.Change - Help .2/
:parml.
:pt.Change
:pd.Choose this option to change attributes of the selected
programs.
This choice is not available if no programs were selected
from the list.
:eparml.
:ehelp.
:help name='mbarpgm/file/delete'.Delete - Help .3/
:parml.
:pt.Delete
:pd.Choose this option to delete the selected programs.
This choice is not available if no programs were selected
from the list.
:eparml.
The following partial screen contains an example of a function key area for function
keys F3, F4, F9, and F12. The descriptions for these keys are listed in the function
key area, which contains the text F3=Exit, F4=Prompt, F9=Retrieve, and
F12=Cancel.
Selection or command
===> ___________________________________________________________________________
________________________________________________________________________________
F3=Exit F4=Prompt F9=Retrieve F12=Cancel
á ñ
Contextual help for the function key area includes help for the entire list of keys, as
well as help for each active function key. This includes function keys which do not
have text displayed on the panel. Help in a function key area can be defined at the
area level and must be defined at the item level.
Chapter 19. Making Online Help Accessible for Your Panel Group 19-15
Coding Help
The following source shows how help is defined for the function key area shown on
page 19-15. The help module, fkey, contains no help information. This help
module only provides a title for contextual help for the function key area and a
heading for the function keys in extended help. There is no title or extended help
heading tag in the help for each function key because the contextual help is for the
entire function key area, not for an individual key.
Reference numbers (.n/) are used in this example to show the relationship
between referring to a help module using the HELP attribute of a tag, and the defi-
nition of the help module using the HELP tag.
..
.
:keyl name=keys help=fkey. .1/
:keyi key=f3 help='fkey/exit' action='exit set' varupd=no.F3=Exit .2/
:keyi key=f4 help='fkey/prompt' action=prompt.F4=Prompt .3/
:keyi key=f9 help='fkey/retrieve' action=retrieve.F9=Retrieve .4/
:keyi key=f12 help='fkey/cancel' action='cancel set' varupd=no.F12=Cancel .5/
:keyi key=enter help='fkey/enter' action=enter. .6/
:keyi key=help help='fkey/help' action=help. .7/
:keyi key=pagedown help='fkey/pagedown' action=pagedown. .8/
:keyi key=pageup help='fkey/pageup' action=pageup. .9/
:keyi key=print help='fkey/print' action=print. .1ð/
:ekeyl.
..
.
:help name='fkey'.Function Keys - Help .1/
:xh3.Function keys
:ehelp.
:help name='fkey/exit'. .2/
:parml.
:pt.F3=Exit
:pd.Ends the current task and returns you to the display from
which the task was started.
:eparml.
:ehelp.
:help name='fkey/prompt'. .3/
:parml.
:pt.F4=Prompt
:pd.Provides assistance in entering or selecting a command.
:eparml.
:ehelp.
:help name='fkey/retrieve'. .4/
:parml.
:pt.:F9=Retrieve
:pd.Shows the last command you entered on the command line,
along with any parameters you included. By pressing this key
once, you receive the last command you ran. By pressing this
key twice, you receive the next to last command that you ran,
and so on.
:eparml.
:ehelp.
:help name='fkey/retrieve'. .5/
:parml.
:pt.F12=Cancel
:pd.Returns to the previous menu or display.
:eparml.
:ehelp.
Chapter 19. Making Online Help Accessible for Your Panel Group 19-17
19-18 Application Display Programming V4R1
Chapter 20. Defining Online Help Information
When the Help key is pressed and the DDS source for your display file specifies
that online help information is available for the display, the system shows the infor-
mation referred to by the panel group or document or, if you used DDS, contained
in the record.
The following sections in this chapter tell you how to create the actual information
that the user sees:
“Defining Online Help Information in a Panel Group”
For more information on creating online help using the UIM, see Chapter 19,
“Making Online Help Accessible for Your Panel Group” on page 19-1 and
Part 3, “Programming Application Displays Using Panel Groups” on page 14-5.
“Defining Online Information in a Document” on page 20-18
“Defining Online Help Information in a DDS Record” on page 20-19
If the DDS source for your display does not specify that online help information is
accessible for your display, go to Chapter 18, “Making Online Help Information
Accessible for Your Display File.”
To use panel groups for online help information, you must specify them in the DDS
source for your application display. If you plan to use panel groups for help but
have not yet specified them in your DDS source, see “Specifying Panel Groups for
Help in Your Display File” on page 18-6.
UIM tags, which always begin with a colon (:) and end with a period (.), are used to
help format and identify the information. Detailed information about UIM tags is
found in Appendix A, “UIM Panel Group Definition Language.”
Units of help information, known as help modules, are defined in the panel group
between the :PNLGRP and :EPNLGRP tags. Each help module starts with a
named :HELP tag and ends with an :EHELP tag, as follows:
:PNLGRP.
:HELP name=firsthelp.Title of First Help Module
:P.
Information for first help module
:EHELP.
:HELP name=secondhelp.Title of Second Help Module
:P.
Information for second help module.
:EHELP.
:EPNLGRP.
A panel group may contain one or more help modules. The help module name,
which is the value for the name attribute on the :HELP tag, identifies the help
module and must be unique for each help module in the panel group. The text that
follows the period (.) on the :HELP tag is used as the title when the online help
information is displayed.
RV2W056-2
Defining Paragraphs and Notes: The following panel markup tags format blocks
of text into paragraphs or notes:
Adding Headings: The following panel markup tags identify associated text as
headings:
Highlighting Text: The following panel markup tags allow you to highlight text:
For more information on the language tags, see Appendix A, “UIM Panel Group
Definition Language” on page A-1.
Understanding How Index Search Works: Users can access the index search
function from any display help that specifies that the index search function is avail-
able.
When the user presses the Help key from a working display, help information is
displayed. On all help displays that support the index search function, F11=Index
search is active. When the user presses F11, the Index Search display appears.
This display shows a list of main topics in the topic hierarchy. It has an input field
at the bottom for search words.
The user can browse or print any topic in the list or type a word (or words) on the
input field. To view one or more topics, the user types a 5 in the option field beside
the topic title and presses the Enter key. To print one or more topics, the user
types a 6 in the option field.
A plus sign (+) next to a topic means that the user can expand the topic to show its
subtopics in the hierarchy using option 7 (Expand topic). Or, the user can use
If the user types a word or words on the input field, the index search function
matches the words with synonym tables, and presents a list of topics that match
the search words entered.
The following illustration shows how the index search function is accessed from
display help:
Bookkeeping
Amount . . . .
---------
Receivable ---------
Help Display
HELP Receivable
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXX XXXXXXXXXX
XXXXXXXXXX Cursor- XXXXXXXXXX
XXXXXXXXXX sensitive XXXXXXXXXX
XXXXXXXXXX help XXXXXXXXXX
XXXXXXXXXX XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Select topic:
Topic A
Topic B Types of
Topic C help and how
Enter words to find to get it
Topic D
User
enters
search
words
RV3W130-0
The user may also reach the index search function by using the Start Search Index
(STRSCHIDX) command. The STRSCHIDX command lets a user access search
indexes without using the Help key or F11.
Defining Index Search Topics and Root Words: The :ISCH tag defines the title
of a topic in the index and specifies the root words that serve as the link between
the topic and the search words (synonyms) entered by the user. The tag appears
immediately after the :HELP tag to which it refers. There can only be one :ISCH
tag within a single help module.
For each :ISCH tag, there can be several lines of root words, provided that the total
number of root words is no more than 50. If more than one line of root words is
used, ROOTS= must be repeated at the beginning of the second line and subsequent
lines:
:PNLGRP.
:HELP name=entry1.
:ISCH ROOTS='root1 root2 root3 root4 root5'
ROOTS='root6 root7 root8 root9 root1ð'
ROOTS='root11 root12 root13 ... root5ð'.
Title of First Topic
:P.
This is the first index search module in this panel group.
:EHELP.
:EPNLGRP.
The root words on all lines must be enclosed in apostrophes and a period must be
placed only at the end of the last line of root words. The topic title follows the
period on the :ISCH tag and may be placed on the line immediately following the
period.
Designating Synonyms for Root Words: The :ISCHSYN tag defines the words
(synonyms) that, if entered by a user, match a specific root word. If a word that is
entered by a user is a synonym for a root word, then a match is found for each
topic whose :ISCH tag contains that root.
If you want a word that is used as a root word to be used as a synonym as well,
you must include the word as a synonym on the :ISCHSYN tag. For example:
:ISCHSYN ROOT='ocean'.ocean water sea
The synonyms for the :ISCHSYN tag must be entered on one line, and at least one
:ISCHSYN tag must exist for each root word. If more than one line is needed,
more :ISCHSYN tags may be entered for the same root word.
You may use alphabetic or numeric characters for synonyms; however, the fol-
lowing characters (including their hexadecimal equivalents) are not allowed to be
used as a synonym or part of a synonym:
. (period)
( (left parenthesis)
) (right parenthesis)
; (semicolon)
, (comma)
? (question mark)
: (colon)
The :ISCHSYN tags may be placed anywhere in the panel group, but to make
maintenance easier, place them all in one area (such as at the beginning of your
panel group or in a panel group object that contains only :ISCHSYN tags).
The following example shows some :ISCHSYN tags and the :ISCH tags that use
them:
:PNLGRP.
:ISCHSYN ROOT='ocean'.ocean water sea
:ISCHSYN ROOT='lake'.lake water pond
:ISCHSYN ROOT='definition'.definition define description what
:ISCHSYN ROOT='definition'.summary concept information explanation
:HELP name='defocean'.
:ISCH ROOTS='definition ocean'.
Definition of ocean
:P.
An ocean is one of the five large bodies of salt water, which
together cover nearly three-fourths of the world.
:EHELP.
:HELP name='deflake'.
:ISCH ROOTS='definition lake'.
Definition of lake
:P.
A lake is a body of standing water that is enclosed by land.
:EHELP.
:EPNLGRP.
Choosing Root Words and Synonyms for Index Search Topics: The following
tips help you decide which words to use as root words and synonyms for your
index search topics:
Design the root words as building blocks that can be put together in different
combinations for different topics.
The significant words in the title of a topic provide a good start on an appro-
priate set of root words for the topic.
Use only one form of a word as a root word if all forms of the word have the
same synonyms.
If two similar words have the same synonyms, use only one of the words as a
root word, not both.
The TOPIC attribute on the ISCHSUBT tag is used to define the subtopics for a
topic. The order in which the help modules appear on the TOPICS attribute is the
order in which they are displayed in the index search hierarchy. For more informa-
tion on the rules for help module names, see “Name Syntax” on page A-4.
The following example shows how the ISCH tags and ISCHSUBT tags work
together to form an index search hierarchy:
:PNLGRP.
:HELP name=mainhelp.
:ISCH roots='root words'.
Main Help Topic
:ISCHSUBT topics='help1'
topics='help2'.
..
.
:EHELP.
:HELP name=help1.
:ISCH roots='root words'.
Help number 1
:ISCHSUBT topics='help3 help4'.
..
.
à Search Index
ð
Type options, press Enter. (+ indicates an expandable topic)
5=Display topic 6=Print topic 7=Expand topic 8=Compress topic
Opt Topic
Title of this index
_ Main Help Topic
_ Help number 1
_ Help number 3
_ Help number 4
_ Help number 2
_ Help number 3
Bottom
Or type search words and press Enter. (\ indicates a topic match)
________________________________________________________________________
á ñ
National Language Considerations: The index search function can be used with
either double-byte character support (DBCS) or single-byte character support
(SBCS) data. When DBCS data is used, the device from which it is requested
must be capable of entering and presenting the data in DBCS. The object which
contains the index search data is marked as containing DBCS data when appro-
priate. The system determines if the device is capable of handling the DBCS data.
When the data is being prepared for DBCS format and the index search function is
used with that data, consider the following:
When the index search data is prepared for a DBCS system, the synonyms
entered on the ISCHSYN tag must be in double-byte character mode. That is,
the first byte after the tag must be a shift-out character and the last byte of the
data must be a shift-in character. The system does not convert data on the
ISCHSYN tag to double-byte.
When the search words are shown on the screen, the double-byte character repre-
sentation (the character that was actually used in the search) is shown. Special
processing takes place so that index search is not case sensitive. The search
words from the ISCHSYN tag are uppercased using a translation table for the code
page that is specified with the TXTCHRID attribute of the PNLGRP tag. If the search
words are DBCS, they are not uppercased. Shift-out and shift-in characters are
treated as blanks during parsing; leading and trailing blanks are removed. All
SBCS words are uppercased using a translate table for the code page of the
device description. For more information on DBCS, see Appendix D, “Double-Byte
Character Set Support for Displays” on page D-1
Without hypertext, the only way you can access help is through the associated
display or the command prompter. You cannot go directly from one help module to
another unless a link, an association between two information nodes, exists that
makes each help module a node in a hypertext network.
RV2W014-2
Similarly, the only way you can access an index search topic is through the index
search function. You cannot go directly from one index search topic to another.
RV3W131-0
These restrictions make it difficult for you, first, to determine what related informa-
tion exists and, second, to access the information conveniently. Hypertext makes it
possible for you to identify relationships among information nodes so that you and
other users can easily access the information you need.
Designing Your Links: The structure of your hypertext nodes determines the
relationships among the different nodes.
Relationships that involve hierarchy (such as those between a task and its subtasks
or between a command and its parameters) can be expressed as subordinate
nodes below a larger node that they relate to, in the same way that an organization
chart represents the management structure.
If you are designing a complex hypertext structure, the following questions may
help you make design decisions about what to link to what:
“What don’t I understand here?”
“What words are unfamiliar?”
“What conceptual information is assumed?”
“What else do I need to know to complete my task?”
“What is the next task I want to do after this one?”
“What other tasks are similar to this one?”
“What would a graphical representation of this information look like?”
“What is a specific example of this general information?”
“What other displays or commands are related to this one?”
You are allowed as many links as you want from any one information node;
however, it is not essential that each information node be linked to another node.
A link implies a clear logical relationship. If the relationship is not clear and logical,
no link should exist.
You define a link in one direction only, from node A to node B. The link back from
node B to node A is not defined by a :LINK tag. However, the user can return from
node B to node A by pressing F12. The user can also press F6 to display a list of
the titles of nodes previously displayed, then position the cursor next to a title on
that list and press Enter to return to and display the selected node again.
The following example uses the :LINK tag to create a link from one help module to
another help module:
:HELP NAME='wrkjob'.Work with Jobs - Help
:XH3.Work with jobs
:P.
The Work with Jobs display shows you the status of your
:LINK PERFORM='DSPHELP job pnlgrp1'.
jobs.
:ELINK.
:EHELP.
The following display shows how the preceding example would look to the user:
à ð
Work with Jobs - Help
The Work with Jobs display shows you the status of your jobs.
Note that the reference phrase is emphasized when displayed. It is also preceded
by three blanks for an attribute byte, a one-character field, and another attribute
byte. By using the Tab key to place the cursor on this field, the user can see the
additional information about the highlighted word or phrase by pressing the Enter
key.
The Delete Panel Group command (DLTPNLGRP) deletes panel groups from the
system. In the following example, the panel group named PNLSAM in library
LIBSAM is deleted:
DLTPNLGRP PNLGRP(LIBSAM/PNLSAM)
The first help module, which contains extended help for the command, is specified
for the Help identifier parameter for the Create Command (CRTCMD) command.
Each additional help item in the panel group corresponds to a parameter in the
command. Only one help module can exist for each parameter that can be
prompted.
For a help module to be associated with a parameter, the :HELP name must use
the following convention:
:HELP name='help-identifier/parameter-name'.
where help-identifier is the name specified for the Help identifier parameter in
the Create Command (CRTCMD) command, and parameter-name is the name of
the parameter that the help module describes.
The following example shows one way to organize a panel group for command
help:
:PNLGRP.
:HELP name=startcmd.
:P.
The text for this help module is used as the
extended help for the command.
:EHELP.
:HELP name='startcmd/parameter1'.
:P.
This help item is used for information about the first
parameter.
:EHELP.
:HELP name='startcmd/parameter2'.
:P.
This help item is used for information about the second
parameter.
:EHELP.
:EPNLGRP.
When a search index object refers to several panel groups as entries, the order
that the panel groups are added into the search index object determines the order
the entries are displayed when search index function is shown. Similarly, the order
of the help modules in a panel group define the order in which those topics appear
in the search index. If the panel group defines a hierarchy, then the topics appear
in the order defined by the hierarchy.
A limit of 1000 panel groups may be added to a search index object. Only one
type of panel group may be added to a search index object. That is, a search
index object cannot contain panel groups that use the ISCHSUBT tag and panel
groups that do not use the ISCHSUBT tag.
In the following example, the panel group named PAYROLL is added to the search
index named ACCOUNTING. Both the panel group object and the search index
object must exist in the library list.
ADDSCHIDXE SCHIDX(ACCOUNTING) PNLGRP(PAYROLL)
In the following example, entries for the panel group PAYROLL are removed from
the search index ACCOUNTING. The search index object is found by searching
the library list.
RMVSCHIDXE SCHIDX(ACCOUNTING) PNLGRP(PAYROLL)
To use documents for online help information, you must specify them in the DDS
source for your application display. If you plan to use documents but have not yet
specified them in your DDS source, see “Specifying Documents in Your Display
File” on page 18-9.
Online documents used as help information are created using the word processing
function of the OfficeVision licensed program. You do not need the OfficeVision
licensed program on your system to run online help information, but you do need
the licensed program to create an online help document.
When you create your document, you need to use help information labels to mark
the specific location in the document where the information is located.
More information about using documents in applications is found in the Office Ser-
vices Concepts and Programmer’s Guide.
The record formats that give the actual online help information may be included in
the same member as the DDS source for the application display. The record
formats may also be contained in a different display file. An example of DDS
By using the guidelines in this chapter, your displays will be compatible with the
Systems Application Architecture* (SAA*) environment, which makes significant use
of the IBM Systems Application Architecture Common User Access (CUA) rules
and guidelines that apply to display stations.
Before you can use any of these program examples, the save files in which they
are packaged must first be changed into source physical files. This may have
already been done for you; if not, an UNPACKAGE tool is provided to do it for you.
For instructions for unpackaging the files, see member TTTINFO in source physical
file QATTINFO. (You can use the DSPPFM command to display the physical file
member.)
Source physical file QATTINFO contains all the information you'll need to get
started. For each example program in the QUSRTOOL library, there is a member
in QATTINFO that describes the tool and how to install it.
The displays example in the QUSRTOOL library gives you access to four sample
displays and a sample command. Online information is available for the displays
and the command and includes the index search function and hypertext links.
The sample displays, command, and online help information are contained in the
following members of QUSRTOOL:
The other objects are not contained in the QUSRTOOL library but are created
when you create the example objects into your library:
à Go To Another List
ð
Select one of the following:
Selection
_
F3=Exit F12=Cancel
á ñ
Figure 21-1. Sample Menu in QUSRTOOL
Press the Help key to view the online help information for the display. The
online help information shown depends on where the cursor is located when
you press the Help key.
To view the sample entry display, enter:
CALL PGM(your-library/Tðð11DCL) PARM(ENTRY)
The sample entry display appears.
á ñ
Figure 21-2. Sample Entry Display in QUSRTOOL
Press the Help key to view the online help information for the display. The
online help information shown depends on where the cursor is located when
you press the Help key.
To view the sample information display, enter:
CALL PGM(your-library/Tðð11DCL) PARM(INFO)
The sample information display appears:
F3=Exit F12=Cancel
á ñ
à View Document Details Page 2 of 2
ð
Project . . . . . . . . : oooooooooo
Reference . . . . . . . : ooooooooooooooooooooooooooooooooooooooooooooooooo
oooooooooo
Status . . . . . . . . . : oooooooooooooooooooo
Document date . . . . . : oooooooo
Expiration date . . . . : oooooooo
Sent to . . . . . . . . : ooooooooooooooooooooooooooooooooooooooooooooooooo
ooooooooo
F3=Exit F12=Cancel
á ñ
Figure 21-3. Sample Information Display (Two Pages) in QUSRTOOL
Press the Help key to view the online help information for the display. The
online help information shown depends on where the cursor is located when
you press the Help key.
To view the sample list display, enter:
CALL PGM(your-library/Tðð11DCL) PARM(LIST)
The sample list display appears:
á ñ
Figure 21-4. Sample List Display in QUSRTOOL
Press the Help key to view the online help information for the display. The
online help information shown depends on where the cursor is located when
you press the Help key.
To view the index search function, do the following:
1. Type the command to show any of the displays shown in Figure 21-1 on
page 21-4, Figure 21-2 on page 21-5, Figure 21-3 on page 21-6, or
Figure 21-4.
2. Press the Help key to show the help for the display.
3. Press F11 to use the index search function.
4. Press F5 to show all the topics available in index search.
5. You can choose to view any topic shown in the list. The second topic in
the list contains a hypertext link. The fourth topic in the list uses the same
panel group as the help for the command.
To view the sample command, enter Tðð11CMD:
Press the Help key to view the online help information for the command. The
online help information shown depends on where the cursor is located when
you press the Help key.
Copying the Source for the Example Objects for Your Own Use
You can tailor the example objects for your own use after you copy the source from
the QUSRTOOL source file. There are basically two different ways that you can
copy the source from the QUSRTOOL source file:
You can copy one member at a time using the browse/copy services function of
SEU.
You can copy all members from a QUSRTOOL source file (for example, all CL
source members contained in QATTCL) at one time using the Copy Source File
(CPYSRCF) command.
The following functions and attributes are optional for all AS/400-style displays:
Selection
_
F3=Exit F12=Cancel
á ñ
Figure 21-5. Sample Application Menu
Before you continue designing this display, define the required and, if desired,
optional functions and attributes found in “Defining Special Functions and Attributes
for All Displays” on page 21-8.
For information about viewing this sample display or copying the source for your
own use, see “Using the Displays Example in the QUSRTOOL Library” on
page 21-1.
Title
The title should be centered on line 1, in mixed case, and displayed in high inten-
sity.
Instruction Line
The guidelines for an instruction line are as follows:
The instruction line is located on line 3 and begins in position 2. It tells the
user to choose between the options listed on the display.
The instruction line format for a menu is:
Select one of the following:
Note that the instruction line ends in a colon.
All instruction lines on system displays are specified as blue on color displays.
Leave line 4 blank and begin the menu options on line 5.
Menu Options
The guidelines for menu options are as follows:
Begin the options following one blank line after the instruction line.
Function Keys
Guidelines for defining the function key area are available in “Defining the Function
Key Area for All Displays” on page 21-33.
Guidelines for defining the online help information are available in “Help for the
Menu Display” on page 21-44.
à Merge Options
ð
Type choices, press Enter.
á ñ
Figure 21-6. Sample Entry Display
Before you continue designing this display, define the required and, if desired,
optional functions and attributes found in “Defining Special Functions and Attributes
for All Displays” on page 21-8.
For information about viewing this sample display or copying the source for your
own use, see “Using the Displays Example in the QUSRTOOL Library” on
page 21-1.
Title
The title should be centered on line 1, in mixed case, and displayed in high inten-
sity.
Prompt Area
In general, the columns containing the field prompts and entry fields should be on
the left half of the display, and the column containing the list of possible choices
should be on the right half of the display. If all the prompts for a request cannot be
shown in the prompt area of a single display, make paging of the prompt area pos-
sible.
Field Prompts
The guidelines for field prompts are as follows:
Field prompts are in normal sentence capitalization and are located to the left
of the field they identify.
The first letter of the first word of the prompt should be uppercase; the
remaining text should be lowercase, unless grammatically incorrect to do so.
There is no punctuation at the end of the prompt.
A series of periods (dots) is used to connect the field prompt and the input
field.
Dots are spaced every other character. The farthest right dot is in the last
position within the column width specified for the field prompt, and the dots are
placed every other position back to the prompt text. There must be three blank
spaces between the farthest right dot and the input field the prompt identifies.
The closest dot to the prompt text is two or three positions after the prompt
(minimum of one blank between prompt text and dot).
For input fields, there should be room for two or more dots; otherwise dots
should not be shown.
Entry Fields: A required entry field requires the user to type a value. Such a field
cannot be supported by a default. An optional entry field does not require the user
to type a value. The program can always get a value for an optional entry field by
defining a default.
Entry fields take two forms. The first form requests a user-supplied value, like a
name, descriptive text, or address. Frequently, these fields can accept a value
from a list of values of variable length and contents. When such a list of valid
choices exists, F4 should be supported to allow the user to request the list and
simply choose from it.
File . . . . . . . . . __________ Name, F4 for list
The second type of entry field supports a selection from a fixed set of choices. CUA
calls this a Selection field. If only one choice can be selected, the choices should
be numbered. For example:
Type style . . . . . 1 1=Prestige elite (12 pitch)
2=Courier (1ð pitch)
3=Essay standard
The only exceptions to numbering the choices are when the answers are Yes or No
and when the choice value has significance to the user by itself.
When the prompt requires a Yes or No response, Y and N should be valid entries.
For example:
Duplex . . . . . . . Y Y=Yes, N=No
When a display first appears, the cursor should be positioned on the first entry field
that the user will type into. This is usually the first field unless a field specified on
an earlier display is carried over to this display.
Rules for Entry Fields: The following rules apply to the entry fields themselves:
Required fields cannot have a default. A subvalue of a required specification
can have a default. For example, a file name parameter is required. No
default file name is defined but a default library qualification of the file name
can be provided.
Required entry fields must be displayed in high intensity. The field prompt and
possible choices information are in normal intensity. If a value is entered in
error the value should be shown again in reverse image and underlined.
Optional entry fields should be normal intensity.
Wherever possible, optional entry fields should have a defined and displayed
default value.
Starting positions for entry fields must be left-justified and aligned (unless there
are hierarchical fields).
If defined, default values should appear in the input fields. Values shown in
fields are left-justified, including numbers that are displayed as character values
(see Figure 21-6 on page 21-11). When values shown in fields are specified
as numeric, they are right-justified.
User-supplied values typed in the entry fields override the default values.
Use the underline attribute to indicate the length of the entry field. The indi-
cated length should be the same as the maximum number of characters that
can be entered.
The entry field can extend into the possible choices information and even carry
over into the field prompt area on subsequent lines if needed. If an unfor-
matted, or continuous, field carries over to another line, it must extend to posi-
tion 80 and carry over to position 1 on the following line. For example:
Message text . . . . . . ________________________________________________
____________________________________________________________________________
____________________________________________________________________________
If a list of possible choices is appropriate for an extended length input field (see
“Descriptive Text Area (Possible Choices Information)” on page 21-16), the
choices may be shown after the input field or accessed through F4.
Echoed errors (incorrect values in input fields) are displayed again in reverse
image. The keyboard should be unlocked so that the user can correct the error
without having to press Error Reset before making the correction. The cursor
should be positioned at the first field in error.
Note: If reverse image is used in a highlighted input field (for example, a
required field), the highlight attribute should be turned off (changed to
normal intensity) to avoid a no display situation with 5250 display
stations.
If a field supports F4 for a list of choices, F4 must remain available if an error is
made in the field. This is important in helping the user correct the error.
If the entry display can be paged and the first error is on the currently displayed
fields, show the display as is without special positioning. If the first error is not
Function Keys
Guidelines for defining the function key area are available in “Defining the Function
Key Area for All Displays” on page 21-33.
Guidelines for defining the online help information are available in “Help for the
Entry Display” on page 21-46.
F3=Exit F12=Cancel
á ñ
à View Document Details Page 2 of 2
ð
Project . . . . . . . . : oooooooooo
Reference . . . . . . . : ooooooooooooooooooooooooooooooooooooooooooooooooo
oooooooooo
Status . . . . . . . . . : oooooooooooooooooooo
Document date . . . . . : oooooooo
Expiration date . . . . : oooooooo
Sent to . . . . . . . . : ooooooooooooooooooooooooooooooooooooooooooooooooo
ooooooooo
F3=Exit F12=Cancel
á ñ
Figure 21-7. Sample Information Display (Two Pages)
Before you continue designing this display, define the required and, if desired,
optional functions and attributes found in “Defining Special Functions and Attributes
for All Displays” on page 21-8.
For information about viewing this sample display or copying the source for your
own use, see “Using the Displays Example in the QUSRTOOL Library” on
page 21-1.
Location Information
Location information for a multiple-part display is right-aligned on line 1 and is in
the form:
Page xx of xx
Prompt Area 1
The guidelines for field prompts are as follows:
Field prompts are in normal sentence capitalization and are located to the left
of the field they identify.
Field prompts for output fields are not preceded by an instruction line and begin
in position 2.
A series of periods (dots) and a colon are used to connect the field prompt and
the output field.
The colon is in the last position within the column width specified for the field
prompt, and the dots are placed every other position back to the prompt text.
The closest dot to the prompt text is two or three positions after the prompt
(minimum of one blank between prompt text and dot).
The field prompt column is separated from the column containing the output
field by 3 character positions (blanks).
When two or more lines of field prompts are presented, the dots and colons on
each line are aligned vertically.
Output fields are always preceded by a colon, and have no underline attributes
marking the field length.
If the prompt requires more than one line, indent the second line two positions.
The output field is after the last line.
Record format
of file . . . . . . : ______________________________
For output fields, dots should be used if there is room for one or more in addi-
tion to the colon. The colon is required. There must be one blank space
before the colon in the output field format.
Prompt . . . : Xxxxxxx (room for more than 1 dot)
Med prompt . : Xxxxxxx (room for 1 dot only)
Long prompt : Xxxxxxx (no room for 1 dot)
Indentation of field prompts and their corresponding output fields is allowed to
show a level of hierarchy.
When two or more lines of field prompts are presented, the starting positions of
the prompts, the dots and colons, and the output fields are aligned.
The use of leader dots and the colon with an unformatted (continuous) output
field that carries over to multiple lines is the same as with standard formatting.
The second and subsequent lines, in the case of output fields, are indented by
two positions from the beginning of the prompt text.
Prompt Area 2
The prompts on the second part of the information display follow the same format
as those on the first part of the display.
Instruction Line
Multipart information displays use an instruction line that tells the user how to con-
tinue or end the dialog with the display. For example:
Press Enter to continue.
This bottom instruction line is placed one blank line after the last line of information
or one blank line above the first function key line.
Function Keys
Guidelines for defining the function key area are available in “Defining the Function
Key Area for All Displays” on page 21-33.
Guidelines for defining the online help information are available in “Help for the
Information Display” on page 21-47.
Before you continue designing this display, define the required and, if desired,
optional functions and attributes found in “Defining Special Functions and Attributes
for All Displays” on page 21-8.
For information about viewing this sample display or copying the source for your
own use, see “Using the Displays Example in the QUSRTOOL Library” on
page 21-1.
Prompt Area
In Figure 21-8 on page 21-21, the prompt area consists of the list control field and
the Position to field.
Instruction Line
The guidelines for the instruction line are as follows:
The first character of an instruction line begins in position 2.
There is no blank line between an instruction line and a following options line.
The top instruction line for a list display ends in a period.
If the instruction line is preceded by any information, such as an entry field, it
must be separated from that information by one blank line.
The instruction line for a standard action list is as follows:
Type options, press Enter.
The instruction line for an action list with an extended action entry is as follows:
Type options (and Xxxx), press Enter.
where Xxxx identifies the type of item the list contains, such as Dictionary, Doc-
ument, and so on.
When an instruction line followed by an options line is used with a list, the
instruction and option combination is separated from the list column headings
by one blank line.
All instruction lines on system displays are specified as blue on color displays.
Both fields have the attributes of entry fields: underline plus reverse image and
cursor positioning in case of errors.
List Fields
The farthest left column in the list area is the Option column. It contains input fields
(underlined) 1 or 2 characters long, depending on the number of options available.
One-character entries are accepted in either position for two-character input fields.
The column to the right of the Option column should contain the information for
identifying the list item or for sequencing (if the list is ordered). This column usually
names the item.
In the sample list display shown in Figure 21-8 on page 21-21, the fields on the
available list lines are described using five fields on a line and nine lines in each
field. The program then loads the successive nine-line blocks of data as the user
pages through the file.
The fields in the Option column have the attributes of entry fields. The fields in the
other columns, being defined as input/output (B), have the protect attribute to
prevent user access.
The location information field is defined as the seven farthest right display positions
of the bottom separator line. More... and Bottom are right-aligned in this field.
When multiple areas on a mixed display can be paged, each requires its own
paging information. Figure 21-9 shows the layout of a display with location infor-
mation.
ð1 Display Title
ð2 Top Separator Line
ð3 Display Body
ð4
ð5 - - - - - - - - - - - - start of paging area - - - - - - - - - - - - - - -
ð6
ð7
ð8
ð9
1ð
11
16
12
13
14
15
17
18
19
2ð
21 - - - - - - - - - - - - -end of paging area- - - - - - - - - - - - - - - -
22 Bottom Separator Line More...
23 Function Key Area
24 Message Area
Function Keys
Guidelines for defining the function key area are available in “Defining the Function
Key Area for All Displays” on page 21-33.
Guidelines for defining the online help information are available in “Help for the
Information Display” on page 21-47.
On this type of mixed list display, the list control field at the top of the display
normally contains the name of the object (folder, dictionary, and so on) whose con-
tents are being displayed. By changing the name, for example to another valid
folder name, the user is essentially issuing a display command for the contents of
the newly specified folder. When the user presses the Enter key, the list display
area is then replaced with a new list display.
The guidelines for the operation of the list control field are as follows:
Once a list of items is displayed, changing the name of the list in the list control
field while selections within the list are pending causes an error message. The
pending selections are saved and the list control field with the changed name is
in reverse image. The error message must include the name that was changed
so the user can change the name back, if desired.
Blanking out the name simply results in the name being restored when the list
is displayed again after pending operations are completed.
If a list of items from folder A is being displayed and there are no pending
selections entered in the list, the user may obtain a list of items from folder B
by changing folder A to folder B in the list control field and pressing the Enter
key.
While a list of items from folder A is being displayed with no pending requests,
the user may perform a specific function on a particular item in folder B by
changing folder A to folder B, typing in the selected option number and the
identifier in the extended action entry area, and then pressing the Enter key.
After the option is performed, the folder B list is displayed.
If folder A is changed to folder B in the list control field and the Enter key is not
pressed, and then a page/roll operation is attempted (with or without selections
pending), the page/roll is not performed, an error message is shown, and the
list control field is in reverse image.
Are
other options No
(if any) in Error.
list Create is not done.
valid?
Yes
No
Is
there a No Create is done.
"Position to" Other options (if any) specified
value? in list are performed.
Yes
List is positioned.
No create is done.
Other options (if any) are not processed.
RV3W066-0
The system uses names in this identifier field only on menus accessed by the GO
command. Using this identifier field on application menus could confuse the user
because the names would not work with the GO command. A user can access the
system menus, given the menu identifier. Using the GO command, a user can
specify a particular menu, by the menu identifier, or, if a particular menu is not
known, a generic identifier can be used. In this case, the user is shown the Work
with Menus display and from this list, can specify a menu to run. For more infor-
mation on how to create display file menus, see Chapter 9, “Creating and
Accessing Menus Using Display Files” on page 9-1.
System menus also use a command line as the entry field for menu selection. The
only command area support DDS provides is to allow you to define an entry field
(with accompanying field prompt) into which a command could be entered. You
write all code to support this entry area as a command area, including passing the
command to the system, handling the Prompt function, handling the Retrieve func-
tion, and handling help for the command. “Available Command Line Tool” on
page 21-37 provides information on a command line function available in the
QUSRTOOL library to assist in putting a command line on an application display.
With the AS/400 system you can limit command entry to the system commands
and application commands you want. Typically, this is the best approach for the
user. You can limit the user to special commands by specifying *YES for the Limit
capabilities prompt on the Create User Profile (CRTUSRPRF) display, as in
Figure 21-11. You can then create commands with the Create Command
(CRTCMD) command. Specify *YES for the Allow limited users prompt to make
the command available to limited users as in Figure 21-12 on page 21-36 and
Figure 21-13 on page 21-36.
Note: Most commands are shipped with ALWLMTUSR(*NO). See the Limit capa-
bilities (LMTCPB) prompt on the Create User Profile (CRTUSRPRF) display
for a list of ALWLMTUSR(*YES) commands. You can change IBM-supplied
commands with the Change Command (CHGCMD) command. If you
change an IBM-supplied command you must keep track of your changes in
a control language (CL) program because the commands are replaced with
each release.
Bottom
F3=Exit F4=Prompt F5=Refresh F1ð=Additional parameters F12=Cancel
F13=How to use this display F24=More keys
á ñ
Figure 21-11. Create User Profile Entry Display
Additional Parameters
á ñ
Figure 21-12. Create Command Display with Additional Parameters Selected
Bottom
F3=Exit F4=Prompt F5=Refresh F12=Cancel F13=How to use this display
F24=More keys
á ñ
Figure 21-13. Second Display of Additional Parameters
If your application uses commands, you should define an entry field (with accompa-
nying field prompt) on the display. To match the AS/400 system, command lines
should appear as follows:
Selection or command
===> ________________________________________________________________
The one-line command line begins in position 7 on the line immediately above
the function key area and ends in position 79 on the same line.
The QUSCMDLN program can be used to display a pop-up window that contains a
command line. The command line can be used to enter system commands.
QUSCMDLN can be called by any user program. More information about
QUSCMDLN is available in the System API Reference.
The QUSRTOOL library on the AS/400 system contains a command line function
and documentation to assist in putting a command line function on an application
display (member CMDLINE, in file QATTINFO, in QUSRTOOL). One way to
access this function is by using the Work with Members Using PDM
(WRKMBRPDM) display, shown in Figure 21-14.
Bottom
F3=Exit F4=Prompt F5=Refresh F12=Cancel F13=How to use this display
F24=More keys
á ñ
Figure 21-14. Work with Members Using PDM Entry Display
Non-CUA keys are keys commonly used on the system for a particular function. If
the function is available on a display, the key assignment given should be used for
compatibility with system key assignments. If the function is not being used, you
can use the key assignment for an application-specific function.
Help on the system also includes a system help index. This section describes the
type of help support for fields provided by the system for each display type.
Cursor not on
any area defined
=== top ===
with contextual
help
What panel does
Extended
Menu Panel How to get help Help
Select one of the following: Using command line
Cursor in
1. Option 1 description What option 1 does
contextual
What option 2 does
2. Option 2 description
help area
3. Option 3 description What option 3 does
.
. .. .
. .
.
n. Option n description . Contextual
= = Help
What option n does
F2=xxx F3=xxx . . . Fn=xxx
Function keys
RV2W027-4
The following table gives the DDS considerations for help on menu displays:
Cursor not on
any area defined
with contextual === top ===
help
What panel does
Extended
Entry Panel Help
Item Choice Position Choices How to get help
aaaa . . Cursor in
Help for aaaa
contextual
bbbb . . Help for bbbb
help area
cccc . . Help for cccc
.. ..
. . .
. Contextual
nnnn . . . Help
Help for nnnn
F2=xxx F3=xxx . . . Fn=xxx
Function keys
RV2W026-6
The following table gives the DDS considerations for help on menu displays:
Cursor not
on any
area defined
with
contextual === top ===
help
Cursor in
Help for aaaa
aaaa . . : wwwww
contextual
bbbb . . : xxxxx Help for bbbb
help area
cccc . . : yyyyy Help for cccc
.. ..
. . .
. Contextual
nnnn . . : zzzzz . Help
Help for nnnn
F2=xxx F3=xxx . . . Fn=xxx
Function keys
RV2W043-5
The following table gives the DDS considerations for help on information displays:
List Panel
Position cursor, enter choices
1=xxx 2=xxx 3=xxxxx 4=xxxx
0 AAA BBB CCC NNN
xxx xxx xxx ... xxx
Cursor not on
xxx xxx xxx xxx any area defined
with contextual === top ===
. . . . .
. . . help Extended
. .
. . . . . How to use panel
Help
How to get help
Column AAA
contextual
Column BBB
help area
Column CCC Contextual
Help
.
.
.
Column NNN
Function keys
RV2W025-3
The user can request help for the message being displayed by moving the cursor
to the message line and pressing the Help key. Message help is presented on a
separate display and can extend to more than one display if needed.
The DDS keyword ERRMSG is easy to use, but locks the keyboard and lets the
user see only one message at a time. This option is acceptable if there are only a
few messages. However, to keep the user's interaction with the message easy, the
goals are to:
Not make the user unlock the keyboard to respond to the message
Provide a formatted display that can be paged for additional message informa-
tion
To accomplish this, you should use a subfile containing messages from a program
message queue (SFLMSGKEY, SFLMSGRCD, and SFLPGMQ keywords) rather
than use the ERRMSG, ERRMSGID, SFLMSGID, and SFLMSG keywords.
To provide messages that tell the user what is correct, not simply that an entry is
not valid, validity checking in your program is recommended over using the
CHECK, RANGE, VALUES, and COMP keywords in DDS. When these keywords
are used, a message tells the user that what is entered is not valid, but no explana-
tion or indication of what is valid is given.
The CUA entry model closely resembles the existing AS/400 interface. The user is
typically asked to select an action or task from a menu or list and then indicate the
object to which that action applies.
Function Key Area and Message Line Relationship: The entry model has the
message line placed as a separator between other display areas and the function
key area, and command area if used. A command line would be above the func-
tion key area and below the message line.
The guidelines for the function key area do not change, except for placement. A
single line of function keys is on line 24. Two lines of function keys occupy lines 23
and 24. The message area is on the line immediately above the function keys.
à Go To Another List
ð
Select one of the following:
F3=Exit F12=Cancel
á ñ
Figure 21-18. Example of an Application Menu
Entry Display
Entry displays let users type in entry fields, and are typically used to indicate the
system parameters and options associated with an action request. Figure 21-19
on page 21-54 shows an example of an entry display.
Entry Fields
CUA entry fields take two forms. The first form is an entry field that requests a
user-supplied value, like a name, descriptive text, or address. Frequently, these
fields can accept a value from a list of values that is of variable length and con-
tents. When such a list of valid choices exists, support F4 to allow the user to
request the list and simply choose from it.
Using descriptive text (F4 for list) is preferred method for identifying a field sup-
porting F4. As an alternative, CUA specifies a plus sign (+) to follow the entry field
(with one intervening blank for an attribute byte) if the field supports F4.
File . . . . . . . . . __________ + Name
The second type of entry field supports a selection from a fixed set of choices. CUA
calls this a Selection field. If only one choice can be selected, number the choices.
For example:
Type style . . . . . _ 1. Prestige elite (12 pitch)
2. Courier (1ð pitch)
3. Essay standard
The user selects by either moving the cursor or typing in the entry field (see
“Guidelines for Single Selection Field Operation” on page 21-53).
If the list of values is more than can be shown in one to five lines, support F4.
CUA recommends:
Selection choices are aligned on the left and shown on separate lines. No comma
or other punctuation is shown at the end of any line.
_ 1. Prestige elite (12 pitch)
2. Courier (1ð pitch)
3. Essay standard (proportional)
4. Essay bold (proportional)
Information Display
A CUA version of the information display shown could be paged instead of being in
two parts as the AS/400 example shown in Figure 21-7 on page 21-18. Also, the
explanatory information for Yes and No would not be required because Yes and No
would not have been used for the entry function for which this information display is
based. See “List Display” for a discussion of CUA paging information.
Figure 21-20 shows an example of the sample information display in CUA format.
F3=Exit F12=Cancel
á ñ
Figure 21-20. Example of an Information Display
List Display
Like the information display, a CUA version of the sample list display would differ
primarily in the display of paging information. Figure 21-21 on page 21-56 shows
an example of a list display.
CUA uses the word More followed by a colon and then paging symbols to indicate
additional information exists outside the visible area, and the direction to page to
see that information.
If the user can page in all four directions, backward, forward, left, and right, reserve
space for all four paging symbols. If the user can page in only two directions,
According to CUA, the following paging indicators can be used instead of More: - +
for alternative text paging indicators:
Top Above the area that is paged when users view the beginning of the
information
More Above the area that is paged when users can page backward
Bottom Below the area that is paged when users view the end of the information
More Below the area that is paged when users can page forward
Note: This technique takes extra lines above and below the area that will be
paged.
Using CUA defined paging information is not possible when using subfiles. The
application program itself must handle the paging. See “List Fields” on page 21-24
for more information.
The paging method used should be cursor independent when the information is
paged in fixed amounts.
These functions cannot be provided by DDS using function keys from help displays.
For information on DDS capabilities for help information, see “Defining Help Infor-
mation for All Displays” on page 21-44.
Part 6. Appendixes
Example: Key Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-75
UIM Source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-75
Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-75
KEYL (Key List) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-76
Required Attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-76
Optional Attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-76
Example: Key List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-76
UIM Source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-76
LINES (Unformatted Lines) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-77
Optional Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-77
Example: Unformatted Lines . . . . . . . . . . . . . . . . . . . . . . . . . . A-77
UIM Source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-77
Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-77
LINK (Hypertext Link Definition) . . . . . . . . . . . . . . . . . . . . . . . . . . A-78
Required Attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-78
Optional Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-78
Conditional Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-79
Bidirectional Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . A-80
Example: Hypertext Link . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-80
UIM Source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-80
Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-81
LIST (List Area) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-82
Required Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-83
Optional Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-83
Optional Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-85
Print Formatting Considerations . . . . . . . . . . . . . . . . . . . . . . . . . A-86
Example 1: List Area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-86
UIM Source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-86
Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-87
Example 2: List Area with Three Layout Columns . . . . . . . . . . . . . . A-87
UIM Source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-87
Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-87
Example 3: List Area with List Column Groups . . . . . . . . . . . . . . . . A-87
UIM Source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-87
Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-88
Example 4: Dynamic List Column Heading Formatting . . . . . . . . . . . A-88
UIM Source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-88
Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-89
LISTACT (List Action) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-90
Required Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-90
Optional Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-91
Optional Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-94
Confirmation Panel Requirements . . . . . . . . . . . . . . . . . . . . . . . A-94
Confirmation Panel Conventions . . . . . . . . . . . . . . . . . . . . . . . . A-94
Example: List Actions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-95
UIM Source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-95
Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-95
LISTCOL (List Column) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-96
Required Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-96
Optional Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-97
Optional Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-99
Formatting Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-99
LISTDEF (List Definition) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-100
Required Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-100
Part 6. Appendixes
Optional Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-120
P (Paragraph) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-121
Optional Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-121
Example: Paragraph Tag . . . . . . . . . . . . . . . . . . . . . . . . . . . A-121
UIM Source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-121
Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-121
PANEL (Display Panel) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-122
Required Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-122
Optional Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-123
Optional Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-127
Example: Panel Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . A-127
UIM Source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-127
Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-128
PARML (Parameter List) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-129
Required Tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-129
Example: Parameter List . . . . . . . . . . . . . . . . . . . . . . . . . . . A-130
UIM Source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-130
Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-130
PC (Paragraph Continuation) . . . . . . . . . . . . . . . . . . . . . . . . . . . A-131
Example: Paragraph Continuation . . . . . . . . . . . . . . . . . . . . . . A-131
UIM Source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-131
Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-131
PDACCEL (Pull-Down Accelerator) . . . . . . . . . . . . . . . . . . . . . . . A-132
Required Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-132
PDFLD (Pull-Down Field) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-133
Optional Attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-133
PDFLDC (Pull-Down Field Choice) . . . . . . . . . . . . . . . . . . . . . . . . A-134
Required Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-134
Optional Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-134
Optional Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-136
Confirmation Panel Requirements . . . . . . . . . . . . . . . . . . . . . . A-136
Confirmation Panel Conventions . . . . . . . . . . . . . . . . . . . . . . . A-136
PK (Programming Keyword) . . . . . . . . . . . . . . . . . . . . . . . . . . . A-138
Optional Attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-138
Required Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-138
PNLGRP (Panel Group) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-139
Optional Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-139
PRTHEAD (Print Head Panel) . . . . . . . . . . . . . . . . . . . . . . . . . . A-142
Required Attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-142
Optional Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-142
Optional Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-143
Layout of the Title Lines . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-143
Example: Print Title Line . . . . . . . . . . . . . . . . . . . . . . . . . . . A-145
PRTPNL (Print Panel) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-146
Required Attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-146
Optional Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-146
Optional Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-146
PRTTRAIL (Print Trailer Message) . . . . . . . . . . . . . . . . . . . . . . . . A-148
Required Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-148
Example: Trailer Message . . . . . . . . . . . . . . . . . . . . . . . . . . . A-148
UIM Source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-148
PV (Programming Variable) . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-149
Required Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-149
RT (Reverse Text) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-150
Part 6. Appendixes
XMP (Example) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-171
Example: Formatting an Example . . . . . . . . . . . . . . . . . . . . . . A-171
UIM Source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-171
Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-171
Part 6. Appendixes
How to Delete a DBCS Sort Table . . . . . . . . . . . . . . . . . . . . . . D-14
DBCS Conversion Dictionaries . . . . . . . . . . . . . . . . . . . . . . . . . . . D-14
System-Supplied Dictionary (for Japanese Use Only) . . . . . . . . . . . . D-14
User-Created Dictionary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D-15
Commands for DBCS Conversion Dictionaries . . . . . . . . . . . . . . . . D-15
Creating a DBCS Conversion Dictionary . . . . . . . . . . . . . . . . . . D-15
Editing a DBCS Conversion Dictionary . . . . . . . . . . . . . . . . . . . D-16
Displaying and Printing the DBCS Conversion Dictionary . . . . . . . . . . D-19
Deleting a DBCS Conversion Dictionary . . . . . . . . . . . . . . . . . . . . D-19
DBCS Conversion (for Japanese Use Only) . . . . . . . . . . . . . . . . . . . D-19
Where You Can Use DBCS Conversion . . . . . . . . . . . . . . . . . . . . D-20
How DBCS Conversion Works . . . . . . . . . . . . . . . . . . . . . . . . . D-20
Using DBCS Conversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D-20
Performing DBCS Conversion . . . . . . . . . . . . . . . . . . . . . . . . . . D-21
Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D-22
Considerations for Using DBCS Conversion . . . . . . . . . . . . . . . . D-25
Part 6. Appendixes
Application Display Programming V4R1
Tag Language
This appendix describes the UIM panel group defi- actual statements of the language, the tags, are
nition language. Following some introductory defined. The tag definitions in this chapter are
material on the nature of the language syntax and organized alphabetically.
the structure of the panel group definitions, the
A sample syntax diagram is shown below:
55──:TAGNAME──VATTR=value──┬─────────────────────┬──.──┬─────────────┬──────────────────5%
│ ┌─DEFAULT─┐ │ └─tag-content─┘
└─KATTR=─┼─VALUE1──┼──┘
└─VALUE2──┘
The TAGNAME specifies the name of the tag. appropriate during the compile process. For
This sample tag has two attributes: VATTR, for example, the following uses of the example tag,
value attribute; and KATTR, for keyword attribute. TAGNAME, are equivalent specifications:
The second attribute in this example is shown on :TAGNAME VATTR=VALUE.
the alternate branch to indicate that it is an :tagname vattr=value.
optional attribute. This attribute can have one of :Tagname Vattr=Value.
three values: DEFAULT, VALUE1, and VALUE2.
Tag attributes do not need to be specified in the
DEFAULT is the value used when you do not order specified in the syntax diagram. For
specify a value for the KATTR attribute. If there is a example, the following uses of the example tag,
default value, it appears on the group choice line TAGNAME, are equivalent specifications:
above the attribute name, as DEFAULT appears
:tagname vattr=value kattr=value1.
on the line above the KATTR attribute name.
:tagname kattr=value1 vattr=value.
Instead of using the DEFAULT value, you may
choose either VALUE1 or VALUE2. These values Sometimes it is necessary to continue the attribute
are entered as shown in the syntax diagram. of a tag to another source line. However, not all
attributes can be continued. The attributes in the
The value is a value you enter, as specified for
following table are the only ones that can be con-
that attribute. An attribute value must be enclosed
tinued.
with apostrophes (') when it contains characters
other than A through Z or 0 through 9, and it must Table A-1 (Page 1 of 2). Tag Attributes That Can Be
be contained on one source line. To enter an Continued
apostrophe in a value surrounded by apostrophes,
Attribute Tag
type the apostrophe twice.
ACTION KEYI
The tag-content is text associated with that tag ACTION MENUI
that may be displayed or printed for the user. It is ACTION PDFLDC
COLHEAD LISTCOL
designed to allow national language translation.
COLS LISTVIEW
CONDS TT
The period at the end of the tag and before the
EMPHASIS LISTDEF
tag content is known as the markup/content sep- ENTER LISTACT
arator. This separator is required for all tag ENTER PANEL
markup. EXPR COND
EXTENTER LISTACT
The source for a panel group can be entered in EXTPROMPT LISTACT
either lowercase, uppercase, or mixed case char- LINKWHEN LINK
acters. The UIM converts the tag names, attribute NOGET VARRCD
names, and attribute values to uppercase as NOPUT VARRCD
Table A-1 (Page 2 of 2). Tag Attributes That Can Be This is the first sentence. This is the
Continued second! This is the third.
Attribute Tag There are two spaces between the first and
PERFORM LINK second sentences. There are three spaces
PROMPT LISTACT between the second and third sentences.
PROTECT LISTDEF
RANGE CHECK Because the CPI6AB9 message affects the
REL CHECK amount of space that follows the end of a source
ROOTS ISCH line, if the CPI6AB9 message is changed to xxx,
TOPICS ISCHSUBT there will be three spaces between each sentence
UNLESSn LINK
in the previous example.
VALUES CHECK
VALUES TTROW Note: The CPI6AB9 message should already be
VARS LISTDEF translated to the proper number of x's for your
VARS VARRCD country.
To continue an attribute, repeat the attribute on Panel Areas: The five types of panel areas
the next source line, as in the following example: are menu, information, data, list, and text areas.
:TAGNAME A mixed panel is constructed by using two or
VATTR='value1 value2 value3' more of these areas within the same panel.
VATTR='value4 value5 value6'
VATTR='value7 value8 value9'. The restrictions associated with mixed panels are
tag-content listed in Table A-2.
A maximum of fifty attribute names can be speci- Table A-2. Restrictions Associated With Mixed Panels
fied for any tag, including each repeated attribute Menu Info Data Non- Action Text
name. Action List
List
Tag Content Formatted as Menu No Yes Yes Yes No No
Paragraphs: The period (.), question mark Info Yes Yes Yes Yes Yes No
(?), and exclamation point (!) are sentence-ending
Data Yes Yes Yes Yes Yes No
characters. Depending on the national language
requirements, one or more blanks are placed after Non- Yes Yes Yes Yes Yes No
each of the sentence-ending characters that end a Action
UIM source line when the panel group or menu List
object is created. The number of blanks can be Action No Yes Yes Yes No No
from one to six, and is specified in the message List
text of the CPI6AB9 message in the message file Text No No No No No No
QCPFMSG.
All of these area types can be scrolled. Scrolling,
The following example shows how the CPI6AB9
as well as presentation of the appropriate scroll
message works.
location information, is handled by the UIM for
:p.This is the first sentence. menu, information, data, and list areas. Scrolling
This is the second! This is the third. for text areas is handled by the text area user exit
program.
In this example, :p. is the tag name. The :p. tag
does not require attributes. There are three
spaces between the second sentence and the Panels: A panel is made up of one or more
third sentence because of national language panel areas, each of which has a specific layout
requirements. If the CPI6AB9 message is set to and function. Specific panels are usually categor-
xx, this paragraph appears this way to the UIM ized according to the nature of their application
after it is compiled: areas, such as information panels, menu panels,
list panels, and text panels.
Panel Group Objects: A panel group is a Help on Panels: Help for a panel is con-
logical grouping of panels that can correspond to structed from help modules referred to in the
a software product, a command, or a related col- panel definition. Extended help for a panel is a
lection of commands or other services. It can concatenation of the help for the panel, the menu
contain panels of any type. Panel groups provide bar, items in all areas in the order of their defi-
a context for names of panels, variables, list defi- nitions, and function keys in the order of their defi-
nitions, and help modules. nitions.
1 PANEL, PRTHEAD, PRTPNL, and HELP tags can be used in any order.
2 The PANEL and HELP tags can be used in any order.
Because all names are stored in the panel group When the &cont. symbol is used to
object in uppercase format, lowercase alphabetic continue the two parts of a double-byte
characters (a through z) are converted to upper- character set (DBCS) word, both the
case alphabetic characters (A through Z). When ending shift-in character of the first line
the name of an element is passed to the UIM and the starting shift-out character of
through an application program interface, the the second line are discarded.
name must be passed in uppercase characters.
The &cont. symbol is useful with a
figure, a line, or an example. The
Because these names stay within the panel group
symbol can be used when a CIT, HPn,
and reside in the same name space, a dialog vari-
or LINK tag would cause the resulting
able and a UIM list cannot have the same name.
source line to be longer than the length
There is an occasional need to refer to object of the source record.
names in the panel group source. These names Here is an example of how to use the
must obey the rules for OS/400 object names. &cont. symbol.
They must be enclosed between apostrophes
:LINES.
when they contain characters other than A through Text to be continued &cont.
Z and 0 through 9. :LINK perform='dsphelp hyper'
linkwhen='chkusrcls("\PGMR")'.&cont.
Symbols reference phrase&cont.
:ELINK.&cont.
A symbol is a name that can be replaced with more text on line.
something else while the panel group is compiling. :ELINES.
All symbols use an ampersand (&), followed by
55──&cont.───────────────────────5%
the symbol name, followed by a period. Symbols
must appear in the text following the period of a &msg(msgid,msgf,lib).
tag. The compiler extracts the first-level
message text for the message MSGID
Symbols can be entered in either uppercase or
from the message file MSGF in library
lowercase.
LIB and substitutes the text in place of
this symbol. The message text is
The following symbols are defined by the UIM:
retrieved in the CCSID of the panel
&. Creates an ampersand (&) without trig- group source file without any substi-
gering symbol processing. This symbol tution variables.
is used when an ampersand is needed
The message file defaults to the
in the text of a tag. If this symbol is
message file specified on the SUBMSGF
not used, the UIM replaces the symbol
attribute of the PNLGRP tag. If
name with its actual value.
SUBMSGF is not specified, the message
55──&.────────────────────────5% file must be specified in the symbol.
&slr. Creates a right slash (/) in the text. DBCS Graphic Literals
This symbol is used if a right slash is
needed in column one of the tag DBCS graphic literals are supported by the UIM to
source. If this symbol is not used, right support processing of strings of literal characters
slashes in column one of the source of DBCS graphic data. The syntax of the literals
file can cause problems if the source follows:
file is part of the input stream for a
┌──
─────┐
batch job. (1) 6
55──"shift-out── (2)
───D─── (3)
┴─shift-in── "──g────5%
55──&slr.────────────────────────5%
Notes:
1 Shift-out is X'0E'
55──:APPFMT──VAR=dialog-variable-name──WIDTH=area-width──DEPTH=area-depth────────────────5
5──┬──────────────────────────────────┬──.──────────────────────────────────────────────5%
└─USREXIT='CALL program-reference'─┘
The application formatted area (APPFMT) tag is variable using a class definition (CLASS) tag
an optional tag which defines an area in the upper with a BASETYPE of CHAR x, where x equals
right corner of a menu area to be formatted by the the product of the area width times the area
application. Only one APPFMT tag can be speci- depth.
fied in each menu area. It must immediately
You can use the exit program for application
follow the menu area (MENU) and top instruction
formatted data, specified on the USREXIT attri-
(TOPINST) tags.
bute of this tag, to update this dialog variable
each time the panel is displayed. The UIM
The application formatted area is part of the menu
uses the value of the dialog variable as the
area, appearing at the right edge of the menu
application formatted data, described in “Appli-
area and ending one character position before the
cation Formatted Data” on page A-9.
right edge of the panel. The width is determined
by the WIDTH attribute of this tag. The application WIDTH=area-width
formatted area extends from the blank line fol- The width, in characters, for the application
lowing the top instruction lines of the menu area to formatted area associated with the menu area.
the number of lines defined in the DEPTH attribute The width specified must be an integer in the
of this tag. A two-byte separator is maintained range of 1 to 40, or the panel width minus 17,
between the menu item descriptions and the appli- whichever is less.
cation formatted area.
DEPTH=area-depth
If the depth of the application formatted area is The depth, in lines, of the application for-
less than the depth of the menu area, the area matted area. This depth must be no greater
below the application formatted area and to the than the number of lines available for the body
right of the menu area is blank. The depth of the of the menu. The body of the menu is the
application formatted area may not be greater area between and excluding the top instruc-
than the depth of the menu area. tion line and the bottom instruction line or
bottom separator.
If the menu area is scrollable, the scroll indicators
appear to the left of the separator between the Optional Attribute
menu area and the application formatted area.
You cannot scroll the application formatted area, USREXIT='CALL program-reference'
even if you can scroll the menu area. The exit program for application formatted
data, called to update the value of the dialog
The application formatted data is described in variable containing the application formatted
“Application Formatted Data” on page A-9. data each time the panel is displayed.
For a description of the CALL dialog
Extended help for the panel is displayed if the
command, see Appendix B, “UIM Dialog
Help key is pressed while the cursor is in the
Commands” on page B-1.
application formatted area.
For a description of the interface between the
Required Attributes UIM and the exit program for application for-
matted data, see the System API Reference.
VAR=dialog-variable-name
The name of the dialog variable containing the
application formatted area. Define the dialog
7. Directories/distribution lists 9 1ð 11 12 13 14 15
class. Other character values in the ranges X'01' 8. Decision support 16 17 18 19 2ð 21 22
9. Administration 23 24 25 26 27 28 29
through X'06', and X'10' through X'3F', as well 9ð. Sign off
as X'FF', are converted to X'1F', appearing as a
Bottom
reverse image box on the screen. Characters Press ATTN to suspend a selected option.
Selection
X'00' (null), X'0E' (shift-out for double-byte),
X'0F' (shift-in for double-byte), and X'40' F3=Exit F12=Cancel F19=Display messages
(C) COPYRIGHT IBM CORP. 1985, 1991.
á ñ
55──:BOTINST──┬───────────────────────────┬──.──┬──────────────────┬────────────────────5%
└─INST=dialog-variable-name─┘ └─instruction-text─┘
The bottom instruction (BOTINST) tag specifies is used, no instruction-text can be specified for
the bottom instruction lines for an area of the this tag.
panel. This tag appears immediately before the
Dialog variables must be defined with a
ending tag for the area. You can use multiple
BASETYPE of CHAR, IGC, or BIN on the class
bottom instruction tags to present multiple instruc-
definition (CLASS) tag.
tion lines if the tag contains instruction text after
the period. If multiple tags are coded, no blank The error state of the dialog variable is not
lines appear between the text on different tags. used for determining the highlighting of the
Only one bottom instruction tag is allowed per text.
area if the INST attribute is used on this tag. Special formatting for IGC. (The abbrevi-
ation IGC is used in commands and keywords
If you do not specify a BOTINST tag for an area,
to represent double-byte character set func-
no instruction line is allocated for the area.
tions.) When a dialog variable with a
BASETYPE of IGC is specified on the CLASS
For menus and information areas, a blank line is
tag, the UIM does special formatting. If the
always left between the body of the area and the
dialog variable value begins with a shift-out
instruction lines. If you can scroll the area, a
character (X'0E'), the UIM shifts the value
blank line is reserved for the scroll information
one byte to the left to preserve vertical align-
between the body of the area and the bottom
ment with other lines.
instruction. For information about how instruction
lines are formatted with respect to the body of
data and list areas, see the BODYSEP attribute in Optional Text
“DATA (Data Presentation Area)” on page A-31
instruction-text
and “LIST (List Area)” on page A-82.
The text appearing as bottom instructions for
the area. The text is an implied paragraph.
Optional Attribute When the display is formatted, any text that
does not fit onto one display line is formatted
INST=dialog-variable-name
on multiple lines as necessary and indented
The name of a dialog variable that contains
two display positions. The text can be a
the bottom instruction text to be displayed.
maximum of 255 characters, and can contain
The dialog variable must be defined with a
only the reverse text (RT) tag. The instruction
width less than or equal to the width specified
text is required unless the INST attribute is
on the panel tag minus 2. If the INST attribute
specified on this tag.
55──:CHECK──MSGID=message-identifier──┬────────────────────────────────────┬─────────────5
└─MSGF='qualified-message-file-name'─┘
5──┬─────────────────────────────┬──┬─────────────────────────┬──────────────────────────5
│ ┌──
───────────────┐ │ │ ┌──
─────────────┐ │
└─RANGE='──6─value1 value2─┴─'─┘ └─REL='──6─relop value─┴─'─┘
5──┬──────────────────────┬──.──────────────────────────────────────────────────────────5%
│ ┌──
───────┐ │
└─VALUES='──6─value─┴─'─┘
The validity checking (CHECK) tag is used within the DFTMSGF attribute is not specified on the
a class definition to specify validity checks associ- panel group (PNLGRP) tag, this attribute must
ated with variables of that class. be specified.
< Less than. The check passes if the attributes of the CLASS tag. The VALUES attri-
value entered by the user is less than bute can be specified more than once, and up
this literal value. to 50 values can be specified for this tag.
>= Greater than or equal. The check Each value must be numeric or character to
passes if the value entered by the user is match the BASETYPE of the variable as speci-
greater than or equal to this literal value. fied on the CLASS tag, and cannot be a
dialog variable. The values in the list are sep-
<= Less than or equal. The check passes
arated by blanks. All character values must
if the value entered by the user is less
be enclosed in quotation marks.
than or equal to this literal value.
55──:CIT.─┬────────────┬─:ECIT.─────────────────────────────────────────────────────────5%
└─title-text─┘
The title citation (CIT) tag identifies the title of a Optional Text
publication and requires a matching end tag. This
tag is only allowed in information areas and help title-text
areas. Title citations are underscored for online Although the title to be cited is not required,
and printed text, and can occur anywhere in the the tag has no meaning when no title is speci-
text. fied.
The CIT and ECIT tags must be specified on word Example: Title Citations
boundaries. If the two characters immediately fol-
lowing the ECIT tag are a punctuation mark and a
UIM Source
blank, the UIM extends the emphasis attribute to
include the punctuation mark. This allows the :P.For more information about the UIM,
punctuation mark and the title to be displayed see the :cit.Application Display Programming:ecit. book.
using the same emphasis.
Results
The class definition (CLASS) tag defines variable order number. For example, a tag with an order
types in variable pools and on panels. Attributes number of three cannot precede a tag with an
of the CLASS tag define the data type for the order number of one or two.
class of the dialog variable and the validity
checking necessary for all variables of that class. Table A-3. Tags Allowed Between the CLASS and
The attributes of this tag also determine the ECLASS Tag
methods for mapping an internal dialog variable of Tag Name Order Page
a particular class to or from a displayed form. TL 1 A-159
(Translation list)
Other tags can be nested within the CLASS tag.
These tags are listed in the following table. The CHECK 2 A-11
(Validity checking)
table defines the order in which the tags must
appear and specifies on which page more infor-
mation can be found about each tag. Required Attributes
When more than one tag is listed with the same NAME=class-name
order number, all tags of that number can be The name assigned to the class. For more
mixed in any order. However, a tag with a higher information on the rules for naming, see
order number cannot precede a tag with a lower “Name Syntax” on page A-4.
be used for the field length instead of tion on converting lowercase characters to
default field width. The value entered for uppercase characters, see the CL Refer-
the WIDTH attribute represents the ence.
number of UCS-2 characters that would
The number of bytes, n, is from 1 to 255.
be displayed on the screen.
SIMPLE indicates that the name entered
For example, a panel group contains the
must be allowed as a simple OS/400
following line:
name.
:class name=example
basetype='graphic 1ð X' width=Y. GENERIC indicates that the name must
be a syntactically correct OS/400 generic
X is the UCS-2 CCSID that the data is name.
stored as. Y is the width of this field.
A translation list must be specified in the
If Y was not specified then the length
class definition if blanks or any other
of the field on the screen is 20 (two
name value that is not valid is allowed as
times the number of UCS-2 charac-
an input value for a dialog variable of this
ters).
BASETYPE.
If you know that the UCS-2 data is
constructed from single-byte data, OBJNAME n [SIMPLE | GENERIC | POSTO]
then the field width, Y, could be speci- Use a BASETYPE of OBJNAME for OS/400
fied as 5 UCS-2 characters so that the object names. SIMPLE indicates that the
field would have a width of 10 single- name entered must be a single OS/400
byte characters on the screen. object name.
If you know that the UCS-2 data is
GENERIC indicates that the name must
constructed from double-byte data,
be a syntactically correct OS/400 generic
then the field width, Y, could be speci-
object name.
fied as 11 UCS-2 characters so that
the field would have a length of 22 POSTO indicates that the name is used
single-byte characters on the screen. for a position-to field, and does not have
This would allow space for the to be a syntactically correct OS/400 name.
shift-out and shift-in characters. Lowercase characters (a through z) are
converted to uppercase characters (A
On output, field data that is longer than through Z) unless the name is enclosed in
the specified field length will be truncated. double quotation marks. The number of
On input, if too many characters were bytes, n, is from 1 to 255.
entered into the UCS-2 field, then the field
will be reverse image and an error will When POSTO is specified, if the first and
appear on the error line stating too many last character of the name is a double
characters were entered. The maximum quotation mark, the last double quote is
number of characters to enter will be dis- removed from the name. If the first char-
played in the error message. acter is not a quotation mark, all lower-
case characters (a through z) are
Variables defined with the UCS-2 converted to uppercase characters (A
basetype are not allowed on print panels. through Z). When POSTO is specified,
NAME n [SIMPLE | GENERIC] the name does not have to be a valid
Use a BASETYPE of NAME for System/38 object name.
names and names which follow the same A translation list must be specified in the
rules as System/38 object names, such as class definition if blanks or any other
names of record formats. name value that is not valid is allowed as
Lowercase characters (a through z) are an input value for a dialog variable of this
converted to upper case characters (A BASETYPE. For example, a translation list
through Z) according to the same rules is necessary when \LIBL should be an
that commands follow. For more informa- allowed value for a variable containing the
library name. For an example of a trans-
lation list, see “TL (Translation List)” on area. For more information on text areas,
page A-159. see “TEXT (Text Area)” on page A-154.
The CASE attribute on this tag cannot be DATE
specified for an object name class. The The variable is a 7-byte string repre-
UIM automatically adds or removes delim- senting the date in the form cyymmdd.
iter characters (quotation marks) and con- The date abbreviations are represented as
verts lowercase input values to uppercase follows:
as necessary.
c Century. Zero indicates the twentieth
BIN b century and one indicates the twenty-
Variables of this BASETYPE are signed and first century.
unsigned binary numbers. The number of yy Year
bits, b, is either 15, 16, 31, or 32. mm Month
'BIN 15' and 'BIN 31' are signed binary dd Day
numbers. 'BIN 16' and 'BIN 32' are TIME
unsigned binary numbers. A value of this class is a 6-byte string
'BIN 15' is the same as BINARY(2) and representing the time in the form hhmmss.
'BIN 31' is the same as BINARY(4), as The time abbreviations are represented as
described in chapter two of the System follows:
API Reference.
hh Hours
PACKED t f mm Minutes
Variables of this class are packed decimal ss Seconds
numbers. The number of digits, t, is from
ACTION
1 to 31. The number of decimal positions,
The variable is a 2-byte binary number
f, is from 0 to t.
with the same internal form as BIN 15,
ZONED t f used as the option column for an action
Variables of this class are zoned decimal list or the selection column for a selection
numbers. The number of digits, t, is from list.
1 to 31. The number of decimal positions, When a variable with this BASETYPE is
f, is from 0 to t. specified for the VAR attribute on a list
PTR column (LISTCOL) tag for an action list,
Variables of this class are pointers. Any the UIM determines the width of the input
variables of this BASETYPE cannot be dis- field based on the maximum OPTION attri-
played or printed. The data pointed to by bute value specified for any list action
a PTR variable can be displayed in a text (LISTACT) tag in the area.
For variables that use this class, a value If NONE is specified, the data is assumed to
larger than the default for the BASETYPE may be in the correct character set and code page
be needed to support the external display for the display or printer device.
form of values appearing in a translation list. If PNLGRP is specified, the data associated
with this class is interpreted with the character
set and code page specified on the CHRID inbound processing of a translation list. For a
parameter on the CRTPNLGRP control lan- BASETYPE of GRAPHIC, CASE=UPPER is not
guage command. For devices that do not allowed. The default case is determined by
allow the downloading of this code page to the BASETYPE. For a summary of the BASETYPE
handle the display of such data, character and corresponding default, see Table A-4 on
conversion occurs on both output and input for page A-18.
variables of this class. The conversion table
BLANKS=RESPECT | IGNORE
for such cases is determined by the following
RESPECT indicates that blanks in the input
rules:
field are preserved when the value is assigned
Character set Code page to the variable pool.
Panel group xxx yyy
Device aaa bbb IGNORE indicates that the value is left justi-
Output conversion table = QUSRSYS/Qyyyaaabbb fied when it is assigned to the variable pool.
Input conversion table = QUSRSYS/Qbbbxxxyyy The default is determined by the BASETYPE.
The processing to remove leading blanks
If the conversion table is not found, no conver-
takes place after any processing for the CHRID
sion takes place. This conversion is done
and CASE attributes on this tag, and before
before any validity checking or inbound pro-
validity checking or inbound processing of a
cessing of a translation list.
translation list. For a summary of the
For a BASETYPE of GRAPHIC, CHRID=PNLGRP BASETYPE and corresponding default, see
is not allowed on this tag. The UIM does not Table A-4 on page A-18.
perform character set and code page conver-
When BLANKS=IGNORE is specified for a
sion on GRAPHIC fields containing DBCS
BASETYPE of IGC, only leading SBCS blanks
data because there is no single-byte part of a
are removed from the field value. The pro-
GRAPHIC field. For GRAPHIC fields con-
cessing to remove leading blanks stops at the
taining UCS-2 data, conversions will occur
first shift-out character in the field.
only between the specified UCS-2 CCSID and
the device CCSID. SUBST=DISPLAY | QUOTED
When CHRID=PNLGRP is specified for a class If DISPLAY is specified, the substitution
with BASETYPE of IGC, the UIM converts only values used on the CMD dialog command for
the single-byte portion of the field. No conver- this class of variables is the same as their dis-
sion is done on the DBCS portion of the field. played values.
If QUOTED is specified, the substitution
SHIFT=NONE | UPPER
values used on the CMD dialog command for
If NONE is coded, no special keyboard shift is
this class of variables are enclosed in apostro-
used for fields of this class.
phes, and apostrophes within the values are
If UPPER is coded, the keyboard is shifted to doubled. Values translated with the trans-
uppercase for data entry for display input lation list (TL) tag are not quoted.
fields associated with variables of this class.
The default keyboard shift is determined by BIDI=PNLGRP | LTR | RTL
the BASETYPE. For a summary of the BASETYPE Sets the left-to-right or right-to-left orientation
and corresponding default, see Table A-4 on for variables of this class. This attribute is
page A-18. ignored when BIDI=NONE is specified on the
PNLGRP tag.
CASE=MIXED | UPPER
PNLGRP indicates that the parameter from
MIXED indicates that characters from any field
the BIDI attribute on the PNLGRP tag should
of this class are preserved when assigned to
be used to set the orientation for variables of
the variable pool.
this class.
UPPER indicates that lowercase characters (a
LTR indicates that a left-to-right orientation
through z) are uppercased before assignment
should be used for variables of this class.
to the pool. This translation takes place after
any processing for the CHRID attribute on this RTL indicates that a right-to-left orientation
tag and before any validity checking or should be used for variables of this class.
The orientation defaults to PNLGRP for The Arabic and Hebrew code pages used to
classes with a BASETYPE of CHAR and IGC. determine if the variable must have its display
Orientation defaults to LTR for classes with a orientation flipped are described as follows:
BASETYPE of NAME, OBJNAME, BIN,
For code page 420
PACKED, ZONED, DATE, TIME, and
ACTION. – The following hex values represent
Arabic characters: 42 through 49, 51,
The cursor direction is reversed for any input
52, 55 through 59, 62 through 69, 70
field which has an orientation opposite the
through 79, 80, 8A through 8F, 90, 9A
panel's orientation. The cursor direction can
through 9F, A0, AA through AF, B0
be changed later when the CONTXTREV attribute
through B5, B8 through BF, CB, CD,
of this tag is processed.
CF, D0, and DA through DE.
CONTXTREV=NO | YES
– The following hex values represent
Specifies that a context-sensitive reversal is
Latin characters: 6F, 81 through 89,
performed for bidirectional variables of this
91 through 99, A2 through A9, C1
class. This attribute is ignored when
through C9, D1 through D9, DF, E2
BIDI=NONE is specified on the PNLGRP tag.
through EB, ED, EE, EF, F0 through
For CONTXTREV=NO, when the orientation of a F9, and FB through FE.
variable does not match the orientation of the
– The remaining characters are not con-
panel group, the value for each display line of
sidered to be Arabic and Latin.
the variable is reversed before it is displayed.
On entry, the contents of each display line of For code page 424
a field that has an orientation opposite to the – The following hex values represent
panel is also reversed before it is moved from Hebrew characters: 41 through 49, 51
the display field to the variable pool. NO is through 59, 62 through 69, and 71.
the default.
– The following hex values represent
For CONTXTREV=YES, the contents of dialog Latin characters: 81 through 89, 91
variables are checked to determine the ulti- through 99, A2 through A9, C1
mate display orientation of the variable. The through C9, D1 through D9, E2
dialog variable value is checked before it is through E9, and F0 through F9.
displayed. If the dialog variable is used in an
input field, the value is checked again before – The remaining characters are not con-
the input value is copied to the variable pool. sidered to be Hebrew and Latin.
A description of the checking follows: For a CONTXTREV=YES input field, the initial
When BIDI=LTR is specified on the cursor direction is determined the same way
PNLGRP tag, as for a CONTXTREV=NO input field. Then it is
further processed and redetermined, based on
– The dialog variable is inverted if and the results of the following content inversion:
only if the dialog variable value con-
tains at least one Arabic or one BIDI=LTR is specified on the PNLGRP
Hebrew alphabetic character, or if it tag:
contains no Latin characters and – When BIDI=LTR is specified on the
BIDI=RTL is specified on the CLASS CLASS tag:
tag.
- The cursor direction is inverted if
When BIDI=RTL is specified on the and only if the content of the
PNLGRP tag, dialog variable is inverted.
– The dialog variable is inverted if and – When BIDI=RTL is specified on the
only if the dialog variable value does CLASS tag:
not contain any Arabic or Hebrew
alphabetic characters, and if either it - The cursor direction is inverted if
contains Latin characters or BIDI=LTR and only if the content of the
is specified on the CLASS tag.
No Are Any
Yes
Arabic or Hebrew
Characters Found?
No Yes
RTL LTR
LTR RTL
LTR
RTL
CLASS CLASS
BIDI attribute BIDI attribute
Result Result
3 2
Result Result
2 1
Result Result
4 3
RV2W060-0
This attribute is ignored when BIDI=NONE is The complete list of symmetric characters for
specified on the PNLGRP tag. An example of Hebrew (code page 424) is:
two pairs of symmetric characters are:
( with ) Right and left parentheses, 4D
'(' with ')' with 5D
'<' with '>' { with } Right and left braces, C0 with D0
[ with ] Right and left square brackets,
When YES is specified, the symmetric char- BA with BB
acter exchange is performed for both input
< with > Less than and greater than signs,
and output operations on any field displayed
4C with 6E
with a right-to-left orientation. The situations h with i Double less than and double
where this can occur are: greater than signs, 8A with 8B
CONTXTREV=NO is specified on this tag for
The complete list of symmetric characters for
a variable that has a right-to-left orien- Arabic (code page 420) is:
tation.
( with ) Right and left parentheses, 4D
CONTXTREV=YES is specified on this tag for
with 5D
a variable that has a right-to-left orien-
< with > Less than and greater than signs,
tation, and the contents of the field causes
4C with 6E
the resulting field orientation to stay right-
to-left. All symmetric characters generated by the
CONTXTREV=YES is specified on this tag for UIM are processed as if SYMSWAP=YES is
a variable that has a left-to-right orien- specified. At this time, the symmetric charac-
tation, and the contents of the field causes ters include:
the resulting field orientation to change to > Greater than symbol. Used to mark menu
right-to-left. options and used in the command line
When SYMSWAP=NO is specified, symmetric prompt
character exchanges are not performed. NO ( ) Right and left parentheses symbols. Used
is the default. around an empty list message.
Example: Class Definitions checks are performed on the field and the value of
the variable in the variable pool is left unchanged.
If a value is too large to fit in the display field on Some examples of the display for numeric values
output, the field is filled with plus signs. If a field are shown in the following table.
consists entirely of plus signs on entry, no validity
Display Forms of Character, Date, must be in the format specified by the date format
of the current job, but the separator characters
and Time Values specified by the date separator of the current job
Character values are displayed as they appear are optional. Because the date formats do not
from the variable pool, padding with nulls on the allow the entry of the century digit, it is assumed
right as necessary. If the value entered into the to be 0 if the year number is greater than 40. If
input field is not translated using a translation list, the year number is less than or equal to 40, the
an error is reported to the user and the dialog var- century digit is assumed to be 1.
iable is not updated if the value is longer than the
Times are always displayed in a 24-hour time
BASETYPE of the variable after trailing blanks are
format, with the time separator as specified by the
removed. Only trailing SBCS blanks are removed;
time separator of the current job. The separator
DBCS blanks are considered significant.
characters specified by the time separator of the
Dates are always displayed in the form specified current job are optional. If a time is entered
by the date format and date separator of the without a time separator, either four or six digits
current job. When a date is entered by a user, it must be supplied.
55──:CMDLINE──SIZE=─┬─SHORT─┬───┬────────────────────────┬──.──┬──────────────────┬─────5%
└─LONG──┘ └─NAME=command-line-name─┘ └─instruction-text─┘
The command line (CMDLINE) tag specifies that SIZE=LONG is valid only for a 27-row by
the panel has a command line and provides addi- 132-byte panel or a 24-row by 80-byte panel.
tional command line information. This tag is
When BIDI=RTL is specified on the panel
allowed only for display panels. A command line
group (PNLGRP) tag, all SIZE=LONG
may appear on any panel and may be inde-
command lines are automatically formatted by
pendent of all areas on the panel, or it may be
the compiler to a one-line command line with
associated with an action list or menu area on the
a blank line separator between the command
panel.
line and the function key area.
Only system commands can be entered on the
command line, unless the panel contains a menu Optional Attribute
area or an action list area. If the panel contains a
NAME=command-line-name
menu area, the user enters either a menu option
The name associated with the command line.
or a command on the command line. For an
This name can be used later with the Add
action list, the user enters a string that is either
Pop-Up Window (QUIADDPW) API to position
run as a command or acts as parameter informa-
a window near the command line.
tion for action list processing.
For more information on the rules for naming,
This tag must be the final tag in the panel, and is see “Name Syntax” on page A-4.
placed just before the end of the display panel.
The CMDLINE tag and the option line (OPTLINE) Optional Text
tag are mutually exclusive.
instruction-text
Required Attribute The text appearing as instructions for the
command line. The text is an implied para-
SIZE=SHORT | LONG graph.
A SHORT command line takes up only one
When the display is formatted, any text that
line of the display and fills up that line.
does not fit on one display line is formatted on
A LONG command line takes up two lines on multiple lines as necessary and indented two
the display. display positions. The text can be a maximum
of 255 characters and can only contain the
SIZE=SHORT must be specified if a panel
reverse text (RT) tag. If no text is provided,
width other than 80 bytes (or 132 bytes) is
no instruction line is displayed above the
specified on the display panel (PANEL) tag.
command line.
55──:COND──NAME=condition-name──EXPR='conditional-expression'──┬───────────────────┬─────5
└─EVAL=─┬─ALWAYS─┬──┘
└─ONCE───┘
5──.────────────────────────────────────────────────────────────────────────────────────5%
The condition definition (COND) tag defines a con- page 00037, the common USA code page, the
dition that must be true if certain processing is to hexadecimal value of the logical OR character
take place. Other tags may refer to this condition, is X'4F', and the hexadecimal value of the
which is evaluated before a panel is displayed. If logical NOT character is X'5F'. The UIM
the condition is true, the action or formatting spec- compiler uses these hexadecimal values
ified by the referring tag is performed. regardless of the code page of the source.
When operand A is a comparison between a
Required Attributes dialog variable and a literal value, or between
two dialog variables, it must be in the fol-
NAME=condition-name
lowing form:
The name of the condition specified in the
expression. The name must be unique within 55──┬─dialog-variable-name─┬─────────────5
the panel group. └─literal-value────────┘
5────relational-operator─────────────────5
For more information on the rules for naming,
see “Name Syntax” on page A-4. 5──┬─dialog-variable-name─┬─────────────5%
└─literal-value────────┘
EXPR='conditional-expression'.
A conditional expression is a true or false The relational operator may be specified as =,
expression in the following form: ¬=, >, <, >=, or <=, if the code page of the
┌─\AND──────────────┐ source maps the not character (¬) to X'5F'.
│ ┌─\OR───────────┐ │ Otherwise, it is suggested that the special
55───6──6──┬─A───────┬──┴─┴───────────────5% values *EQ, *NE, *GT, *LT, *GE, or *LE be
├─(A)─────┤
└─\NOT(A)─┘ used, respectively for the relational operator.
Comparisons may take place only between
where A is an operand which can be one of items of matching BASETYPE and precision as
the following: defined on the class definition (CLASS) tag.
Comparisons between two literals are not
A conditional expression allowed.
A comparison between a dialog variable
and a literal value Character string literals must be enclosed in
A comparison between two dialog vari- double quotation marks ("). The UIM does
ables not automatically uppercase character strings.
A built-in function Hexadecimal strings are allowed as character
strings. Hexadecimal strings cannot be used
When operand A is a conditional expression,
for comparison with dialog variables defined
the *AND and *OR logic becomes more
with a BASETYPE of GRAPHIC on the CLASS
complex.
tag. For more information about specifying
The logical OR character (|) can be used in hexadecimal strings, see “Hexadecimal
place of *OR, the ampersand character (&) Literals” on page A-6.
can be used in place of *AND, and the logical
For a comparison between a dialog variable
NOT character (¬) can be used in place of
whose BASETYPE is GRAPHIC (as defined on
*NOT. Since the logical OR and logical NOT
the CLASS tag) and a literal, a double-byte
characters are not in the invariant character
character set (DBCS) graphic literal must be
set, their use is not recommended. For code
└─.──6─digit─┴──┘ ├─\OBJMGT───┤
├─\OBJOPR───┤
├─\OBJALTER─┤
├─\OBJREF───┤
or ├─\ADD──────┤
├─\DLT──────┤
┌─+─┐ ┌──
───────┐ ├─\READ─────┤
55──┼───┼──┬───────────┬──.──6─digit─┴───5% ├─\UPD──────┤
└─-─┘ │ ┌─────────┐ │ └─\EXECUTE──┘
└──6─digit─┴─┘ Note:
1 Each value can be used only once, with
CHKOBJ("OBJECT","\FILE","\USE")
CHKOBJ("PANELGRP","\PNLGRP")
\AND CHKUSRCLS("\PGMR")
CHKOBJ("DOCUMENT","\DOC","\READ \UPD")
\OR CHKUSRCLS("\SYSOPR")
\NOT(CHKOBJ("PROGRAM","\PGM"))
Optional Attribute
EVAL=ALWAYS | ONCE
Indicates whether or not the expression speci-
fied on the EXPR attribute of this tag must be
COPYR (Copyright)
55──:COPYR──.──notice-text──────────────────────────────────────────────────────────────5%
55──:DATA──DEPTH=─┬─area-depth─┬───┬───────────────────────┬──┬────────────────────┬───────5
└─'\'────────┘ └─HELP=help-module-name─┘ │ ┌─SPACE─┐ │
└─BOTSEP=─┼─NONE──┼──┘
└─RULE──┘
5──┬──────────────────┬──┬────────────────────┬──┬─────────────────┬───────────────────────5
│ ┌─NO──┐ │ │ ┌─1─────┐ │ │ ┌─ð─┐ │
└─SCROLL=─┴─YES─┴──┘ └─LAYOUT=─┼─2─────┼──┘ └─MAXHEAD=─┼─1─┼──┘
└─HORIZ─┘ ├─2─┤
├─3─┤
└─4─┘
5──┬──────────────────────┬──┬─────────┬──.──┬────────────┬──:EDATA.──────────────────────5%
│ ┌─SPACE──┐ │ └─COMPACT─┘ └─area-title─┘
└─BODYSEP=─┼─INDENT─┼──┘
├─BOTH───┤
└─NONE───┘
55──:DATA──┬────────────────────┬──┬────────────────────┬──┬─────────────────┬─────────────5
│ ┌─SPACE─┐ │ │ ┌─1─────┐ │ │ ┌─ð─┐ │
└─BOTSEP=─┼─NONE──┼──┘ └─LAYOUT=─┼─2─────┼──┘ └─MAXHEAD=─┼─1─┼──┘
└─RULE──┘ └─HORIZ─┘ ├─2─┤
├─3─┤
└─4─┘
5──┬──────────────────────┬──┬─────────┬──┬───────────────────┬──.──┬────────────┬─────────5
│ ┌─SPACE──┐ │ └─COMPACT─┘ │ ┌─NORMAL─┐ │ └─area-title─┘
└─BODYSEP=─┼─INDENT─┼──┘ └─TYPE=─┴─PROLOG─┴──┘
├─BOTH───┤
└─NONE───┘
5──:EDATA.────────────────────────────────────────────────────────────────────────────────5%
The data presentation area (DATA) tag describes (specified by a D, P, or B, respectively), and spec-
a data presentation area in a panel. This tag is ifies on which page more information can be found
allowed for display panels and print panels. This for each tag.
area can be used for data entry items or output
data items, or any combination of the two. When more than one tag is listed with the same
order number, all tags of that number can be
Other tags can be nested within the DATA tag. mixed in any order. However, a tag with a higher
These tags are listed in the following table. The order number cannot precede a tag with a lower
table defines the order in which the tags must order number. For example, a tag with an order
appear, indicates which tags can be used in number of three cannot precede a tag with an
display panels only, print panels only, or both order number of one or two.
Table A-5. Tags Allowed Between the DATA and If no HELP attribute is specified on the DATA
EDATA Tags tag, a help module name must be associated
Tag Name Order Use Page with each item in the area by specifying the
HELP attribute on the DATAGRP tags or the
TOPINST 1 D A-161
DATAI and DATASLT tags.
(Top instruction
line) To provide the user with easy access to the
DATACOL 2 B A-39 online information for a data area with the
(Data column) LAYOUT=HORIZ attribute specified on this tag,
specify the HELP attribute on the DATA tag
DATAGRP 3 B A-40
(Data item group) instead of the HELP attribute on the individual
DATAI tags.
DATAI 3 B A-42
(Data item) BOTSEP=SPACE | NONE | RULE
DATASLT 3 D A-51 Defines the bottom separator for the data
(Data selection presentation area. If SPACE is specified, a
field) line of spaces is used. SPACE is the default.
BOTINST 4 D A-10 NONE indicates that no separator line exists.
(Bottom instruc-
tion line) RULE indicates that a line of underscored
spaces is used.
SCROLL=NO | YES
Required Attribute
Specifies whether or not the area is scrollable.
DEPTH=area-depth | '*' This attribute is allowed only for display
The depth of the area in lines, including sepa- panels. NO indicates that the area is not
rators if any are specified. This attribute is scrollable. NO is the default.
required for display panels but is not allowed
YES indicates that the data presentation area
for print panels. If '*' is specified, the space
is scrollable. SCROLL=YES is not allowed
remaining on the display after all else is allo-
when LAYOUT=HORIZ is specified. A line of
cated is given to this area. Only one area in
spaces is used by the UIM to provide a line
the panel may have '*' coded.
for the scroll information. If BOTSEP=SPACE,
only one line of spaces is used unless this
Optional Attributes area also contains bottom instructions.
HELP=help-module-name LAYOUT=1 | 2 | HORIZ
Identifies online information explaining all Indicates either the number of layout columns
items in the area. This attribute is allowed for a vertically formatted area or that a hori-
only for display panels. The help module zontal format should be used.
name may be a name imported from another
For LAYOUT=1, there is only one column of
panel group, but must follow the rules for
data items. For panels with WIDTH=80 bytes
names outlined earlier in this chapter. For
on the panel definition (PANEL) tag, the single
more information on the rules for naming, see
column of data items is in positions 2 through
“Name Syntax” on page A-4.
79. For panels with WIDTH=132, the single
A single help module name must be associ- column of data items is in positions 2 through
ated with every item in the area. If the HELP 131.
attribute is specified on the DATA tag, the
For LAYOUT=2, two layout columns of equal
help applies to all groups and items in the
width are used for data items. The data items
area, and the HELP attribute is not allowed on
specified within the area appear in order, from
any data group (DATAGRP), data item
top to bottom within a layout column and from
(DATAI), data selection field (DATASLT), and
left to right between layout columns. For
data selection field choice (DATASLTC) tags
panels with WIDTH=80, the two layout columns
in the area.
are in positions 2 through 38 and 43 through
79. For panels with WIDTH=132, the two layout
columns of data items are in positions 2 except if the area is scrollable. If the area is
through 64 and 69 through 131. scrollable, a blank line is reserved to provide a
line for the scroll information.
For LAYOUT=HORIZ, the data fields are listed
horizontally across the width of the panel, with BOTH leaves a blank line after the last top
five spaces between items. This layout is instruction line and before the first bottom
useful if only two or three short values are instruction line, and also indents items in the
necessary. It should be limited to a single body of the area by two bytes from the left-
display line, because the UIM does not verti- most position in the layout column where the
cally align items appearing on different lines instruction lines begin. If the area contains no
within the area. top or bottom instruction lines, no blank lines
are reserved before or after the area body.
MAXHEAD=0 | 1 | 2 | 3 | 4
The maximum number of lines that can be NONE does not leave a blank line between
used for column headings. The column the instruction line and the body, and does not
headings are specified using the data column indent the body with respect to the layout
(DATACOL) tag. From zero to four lines can column except if the area is scrollable. If the
be specified. Zero is the default, meaning that area is scrollable, a blank line is reserved to
no column headings are allowed. Only provide a line for the scroll information.
MAXHEAD=0 is valid for a data presentation area
COMPACT
with a horizontal layout, because column
If COMPACT is specified, no blank lines are left
headings are not allowed in horizontal presen-
between column headings and all items and
tation. For more information on column
outer groups in the area. If COMPACT is not
headings, see “DATACOL (Data Column)” on
specified, a blank line appears after the area
page A-39.
column headings and between all items and
When column headings are used, you may outer groups.
want to provide expansion space for national
TYPE=NORMAL | PROLOG
language translation by specifying a MAXHEAD
Indicates whether or not this data area is a
value larger than the number of heading lines
prolog area. The prolog area is printed only
required. If this is not done, expansion space
once after the title line on the first page. This
must be provided within the column widths
attribute is allowed only for the print head
determined by the DATACOL tag.
panel (PRTHEAD) tag. NORMAL is the
BODYSEP=SPACE | INDENT | BOTH | NONE default value.
The type of visual separation distinguishing
the body of the area from other elements on Optional Text
the display, particularly any top and bottom
instruction lines within the area. area-title
The title of the area. If no text is specified, no
SPACE leaves a blank line after the last top
title line is allocated to the area. The text
instruction line and before the first bottom
must appear on the same or next line as the
instruction line. Items in the body of the area
tag, can contain only the reverse text (RT)
begin in the leftmost position of the layout
tag, and is a maximum of 55 characters long.
column. They are not indented with respect to
instruction lines. If the area contains no top or
bottom instruction lines, no blank lines are Print Formatting Considerations
reserved before or after the area body.
Printed data areas are formatted similarly to data
INDENT is used to indent items in the body of areas that are displayed, with the following
the area by two bytes from the leftmost posi- exceptions:
tion in the layout column where the instruction
lines begin. If the area contains top or bottom When printing, there is a minimum of two lines
instruction lines, no blank line is reserved of data entries on a page besides the data
between the instructions and the area body group headings and the data column
headings.
help=hvar4
var=var4.Fourth element
à Another Sample Panel
ð
Compact data group: Another compact group:
:datai usage=out First element . . . : XXXXXXXXXX Seventh element . . : XXXXXXXX
Second element . . . : XXXXXXXXXX Eighth element . . . : XXXXXXXX
help=hvar5 Ninth element . . . : XXXX
Third element . . . . : XXXXXXXX
var=var5.Fifth element Fourth element . . . . : XXXXXXXX
Tenth element . . . . : XXXXXXXX
XXXXXXXX
:datai usage=out Fifth element . . . :
Sixth element . . . :
XXXXXXXX
XXXXXXXX
XXXXXXXX
var=var7.Seventh element á ñ
:datai usage=out
help=hvar8
var=var8.Eighth element Example 3: Two Presentation
:datai usage=out Areas for Data Items
help=hvar9
var=var9.Ninth element The following two examples show three data
:edatagrp. areas, which are initialized from the dialog vari-
:datagrp help=hvar1ð12
ables in the variable pool. The first two areas are
grpsep=none compact.
aligned horizontally, and the third area is for-
:datai usage=out
var=var1ð.Tenth element matted vertically.
:datai usage=out
var=var11 cond=cond11. UIM Source
:datai usage=out
:panel name=xmp3
var=var12 cond=cond12.
keyl=x1
:edatagrp.
help=hxmp3
:datagrp grpsep=none
.Data Item Extenders
compact.
:data depth=2
:datai usage=out
layout=horiz
help=hvar13
botsep=space.
var=var13.Thirteenth element
:datai usage=out
:datai usage=out
var=date
help=hvar14
help=hdatetime.Date and time
var=var14.Fourteenth element
:dataix usage=out
:datai usage=out
var=time
help=hvar15
newline=no
var=var15.Fifteenth element
itemsep=1.
:edatagrp.
:edata.
:edata.
:data depth=2
:data depth=3
layout=horiz
bodysep=none.
botsep=space.
:datacol width=ð.
:datai usage=out
:datacol width='\'.
var=jobname
:datagrp.Sixteenth element
help=hdatetime.Job name
:datai usage=inout
:dataix usage=out
help=hvarx
var=user
var=varx.
newline=no
:edatagrp.
itemsep=1.
:edata.
:dataix usage=out
:epanel.
var=jobnbr
newline=no itemsep=1.
Results :edata.
:data depth='\'
layout=1
Selection
F3=Exit F12=Cancel _
á ñ F3=Exit F12=Cancel
á ñ
Example 4: Data Presentation
Area with a Menu Area Example 5: Data Entry Panel
with a Nested Data Group
UIM Source
:panel name=xxx
UIM Source
keyl=x1 :panel name=nestg
help=hxxx help=helpn
.Work with Files topsep=space
:data depth=2 keyl=keys
layout=horiz. .Nested Data Group
:datai var=fname :data depth='\'
help='filename'.File scroll=no.
:datai var=lname :topinst.Type choices, press Enter.
help='libname'.Library :datacol width=4ð.
:edata. :datacol width=1ð.
:menu depth='\'. :datacol width='\'.
:datagrp compact
grpsep=none. :edatagrp.
:datai usage=inout :epanel.
help=hjobq
var=jobq.Place on job queue Results
:datac.Y=Yes, N=No
.\ The following "datagrp" tag is
.\needed to cause indentation for à Nested Data Group
ð
.\ the "For choice Y=Yes" data group. Type choices, press Enter.
:datagrp compact
grpsep=indent.For choice Y=Yes:
:datai usage=inout
help=hcmpmsg
var=cmpmsg.Send completion message
:datac.Y=Yes, N=No F3=Exit F12=Cancel
:edatagrp.
:edatagrp.
á ñ
55──:DATAC──┬─────────────────────────────┬──.──┬──────────────────┬────────────────────5%
└─CHOICE=dialog-variable-name─┘ └─text-for-choices─┘
The data item choices (DATAC) tag provides the Dialog variables must be defined with a
text for the possible choices column of a data BASETYPE of CHAR, IGC, or BIN on the class
presentation area. This tag is allowed for display definition (CLASS) tag.
panels and print panels. It is not valid if only two
The error state of the dialog variable is not
data column (DATACOL) tags are specified for the
used for determining the highlighting of the
area, or if LAYOUT=HORIZ is specified on the data
text.
presentation area (DATA) tag for the area.
Special formatting for IGC. (The abbrevi-
The DATAC tag must appear after the corre- ation IGC is used in commands and keywords
sponding data item (DATAI) tag. More than one to represent double-byte character set func-
DATAC tag may be specified after the DATAI tag tions.) When a dialog variable with a
to provide several lines of text. If no DATAC tags BASETYPE of IGC is specified on the CLASS
are entered, no text exists in the possible choices tag, the UIM does special formatting. If the
column for the data item. variable value begins with a shift-out character
(X'0E'), the UIM shifts the value one byte to
Optional Attribute the left to preserve vertical alignment with
data choices on other lines.
CHOICE=dialog-variable-name
The name of a dialog variable containing the
Optional Text
choices text to be displayed. The dialog vari-
able must be defined with a width less than or text-for-choices
equal to the width specified on the third The text is an implied paragraph. Lines are
DATACOL tag for the data area, the possible formatted as necessary onto multiple lines
choices column. If the CHOICE attribute is within the column and indented two spaces
used, no text-for-choices can be specified from the beginning of the column. The text is
after the period of this tag. a maximum of 255 characters and can only
contain the reverse text (RT) tag. The text-
for-choices is required unless the CHOICE attri-
bute is specified on this tag.
55──:DATACOL──WIDTH=─┬─column-width─┬───.──┬────────────────┬───────────────────────────5%
└─'\'──────────┘ └─column-heading─┘
The data column (DATACOL) tag specifies the case, the item column is not allocated and
width of the item, choice, and possible choices there is no separator in front of the choice
columns, and can also provide column headings. column.
This tag is allowed for display panels and print
The value for any data item may span
panels. It is not valid if LAYOUT=HORIZ is speci-
columns, but must begin on the correct
fied for the data presentation area. It must appear
column boundary. The possible choices text
after the data presentation area (DATA) tag for the
for that item, assuming three DATACOL tags
area and before the first data item (DATAI), data
are specified, begins in the location assigned
selection field (DATASLT), or data group
to the possible choices. This possible choices
(DATAGRP) tag.
text may be on the same or next line as the
data item field.
Two or three DATACOL tags must be specified
when the LAYOUT attribute of on the DATA tag
specifies 1 or 2. If only two DATACOL tags are Optional Text
used, the area has no possible choices column
column-heading
and no data item choices (DATAC) tags are
The column heading placed above the data
allowed in the area. If three DATACOL tags are
items in the data area. If no column heading
specified, all three columns are allocated,
is specified, none is displayed.
including the possible choices column.
The text may appear on more than one line
and can contain only the reverse text (RT)
Required Attribute
tag. Each word of the column heading is
WIDTH=column-width | '*' placed on a new line. If multiple words are
The width, in bytes, for the column. The width necessary in a line of the column heading,
specified must be a positive integer, and the they must be enclosed in apostrophes (').
sum of the widths of the columns and separa- Each word or quoted string must fit within the
tors in the data presentation area must not column width defined by the WIDTH attribute on
exceed the width of the layout column deter- this tag. The maximum number of words or
mined by the DATA tag. WIDTH=0 is allowed quoted strings allowed is specified by the
only for the first DATACOL tag; it formats the MAXHEAD attribute on the DATA tag. Column
area without an item column for data item or headings are not allowed if MAXHEAD=0 is used
data selection field prompt text. for the data area.
If '*' is coded, the remainder of the area The column headings are left-justified. If no
width is used for the column. Only one column heading text is specified on any
DATACOL in the area may have '*' specified. DATACOL tag for the area, no lines are
A three-column separator is maintained reserved on the display for heading informa-
between columns, except when WIDTH=0 is tion.
specified for the first DATACOL tag. In this
55──:DATAGRP──┬───────────────────────┬──┬──────────────────────┬──────────────────────────5
└─HELP=help-module-name─┘ └─NAME=data-group-name─┘
5──┬──────────────────────┬──┬─────────────────────┬──┬─────────┬──.──┬───────────────┬────5
│ ┌─INDENT──┐ │ └─COND=condition-name─┘ └─COMPACT─┘ └─group-heading─┘
└─GRPSEP=─┼─QINDENT─┼──┘
└─NONE────┘
5──:EDATAGRP.─────────────────────────────────────────────────────────────────────────────5%
55──:DATAGRP──┬──────────────────────┬──┬─────────────────────┬──┬─────────┬──.────────────5
│ ┌─INDENT──┐ │ └─COND=condition-name─┘ └─COMPACT─┘
└─GRPSEP=─┼─QINDENT─┼──┘
└─NONE────┘
5──┬───────────────┬──:EDATAGRP.──────────────────────────────────────────────────────────5%
└─group-heading─┘
The data group (DATAGRP) tag is used to group name may be a name imported from another
data items and data selection fields in a data pres- panel group, but must follow the rules for
entation area. This tag is allowed for display names outlined earlier in this chapter. For
panels and print panels. One data group may be more information on the rules for naming, see
nested within another data group; up to four levels “Name Syntax” on page A-4.
of data group nesting are allowed, including the
A single help module name must be associ-
outermost group. This tag is not valid if
ated with every item in the area. If the HELP
LAYOUT=HORIZ is specified for the data presenta-
attribute is specified on the DATA tag, the
tion area (DATA) tag.
help applies to all groups and items in the
area, and the HELP attribute is not allowed on
The UIM does keep processing for data item
any data group (DATAGRP), data item
groups. When data groups are nested within
(DATAI), data selection field (DATASLT), and
other data groups, keep processing is done for all
data selection field choice (DATASLTC) tags
the groups. If an outer group must be split, keep
in the area.
processing is attempted for groups nested within
it. If the number of lines required for an entire If the HELP attribute is specified on the
group exceeds the number of lines remaining in DATAGRP tag, the help applies to all items in
the layout column, the entire group is forced to the the group, and the HELP attribute is not
next column. In the case of single-column layout, allowed on any DATAI, DATASLT,
the entire group is forced to the next scrollable DATASLTC, or nested DATAGRP tags within
page. Any data group that becomes too large for the data group.
one layout column begins at the top of one
If no HELP attribute is specified on the DATA
column and continues onto as many columns or
tag or on any outer or nested DATAGRP tags,
pages as required for all items.
the HELP attribute is required on all DATAI and
DATASLT tags within the group.
Optional Attributes
NAME=data-group-name
HELP=help-module-name The name associated with the group. This
Identifies online information explaining all name can be used with the Add Pop-Up
items in the group. This attribute is allowed Window (QUIADDPW) API to position a
only for display panels. The help module
window near this data group. This attribute is the group. This option is not recommended
allowed only for display panels. when group heading text is specified. It can
be used to group related data items, data item
For more information on the rules for naming,
groups, and data selection fields together
see “Name Syntax” on page A-4.
without a group heading. It does this by
GRPSEP=INDENT | NONE | QINDENT defining a compact group of items and nested
Specifies what type of visual separation groups in a non-compact area.
should be used to distinguish the items in the
COND=condition-name
group.
The group is displayed or printed only if the
INDENT is used to indent the left-most condition specified is true. All tags within the
column, prompt, or value for every data item, group appear only if this data group appears.
group heading of a nested data group, or data The condition must be defined in the panel
selection field within the group by two posi- group prolog with the condition definition
tions. Only the left-most column is indented. (COND) tag.
The group heading is not indented.
COMPACT
QINDENT is used to indent each data item or If COMPACT is specified, then no blank lines are
nested data group or data selection field, left between individual items or nested data
except the first one in the group. The first group headings. If this data group is nested
item or imbedded group within this data item inside another data group for which COMPACT is
group are not indented. All other items, fields, specified, COMPACT is implied for this data
and imbedded groups are indented. Both the group whether it is specified or not.
prompt column and the value column of a
data item or data selection field are indented
by two positions. The group heading of an
Optional Text
nested data group and all items within it are group-heading
indented by two positions. The heading placed above the data items of
The determination of which data items, the group. The text occupies only one line of
selection fields and groups are indented is the panel, but may span several columns.
made when the panel group is created and is The text must appear on the same line or next
unaffected by conditioning. This option pre- line as the tag and can only contain the
sents data items in the same format the reverse text (RT) tag.
control language (CL) prompter uses for quali- If the text is omitted, no lines are allocated on
fied names. Because qualified name the display for a group heading, but the items
indenting of a value would be backward for a between the DATAGRP and EDATAGRP tags
BIDI=RTL panel group, the value column is are processed as a group with respect to keep
not indented when QINDENT is specified for a processing on the display and other UIM oper-
BIDI=RTL panel group. The prompt text of ations.
each item after the first one is still indented.
A colon is added to the end of the text if one
NONE does not indent any data items, data is not already specified and if there is room for
selection fields, or nested data item groups in it.
55──:DATAI──VAR=dialog-variable-name──USAGE=─┬─OUT───┬───┬───────────────────────┬─────────5
└─INOUT─┘ └─HELP=help-module-name─┘
5──┬─────────────────────┬──┬─────────────────────┬──┬────────────────────┬────────────────5
└─NAME=data-item-name─┘ │ ┌─BEFORE─┐ │ │ ┌─AFTER─┐ │
└─PMTLOC=─┴─ABOVE──┴──┘ └─CHCLOC=─┴─ABOVE─┴──┘
5──┬───────────────────┬──┬─────────────────────┬──┬────────────────────┬──────────────────5
│ ┌─LEFT──┐ │ └─JUSTIFY=─┬─LEFT──┬──┘ │ ┌─NO──┐ │
└─ALIGN=─┼─RIGHT─┼──┘ ├─RIGHT─┤ └─REQUIRED=─┴─YES─┴──┘
├─START─┤ ├─START─┤
└─END───┘ └─END───┘
5──┬──────────────────┬──┬───────────────────┬──┬────────────────────┬─────────────────────5
│ ┌─YES─┐ │ │ ┌─YES─┐ │ │ ┌─NO──┐ │
└─CSRLOC=─┴─NO──┴──┘ └─DISPLAY=─┴─NO──┴──┘ └─AUTOENTR=─┴─YES─┴──┘
5──┬─────────────────────┬──┬──────────────────────┬──┬───────────────────────────────┬────5
└─COND=condition-name─┘ └─PROMPT='action-text'─┘ └─DSPVALUE=dialog-variable-name─┘
5──.──┬────────────────┬──────────────────────────────────────────────────────────────────5%
└─data-item-text─┘
55──:DATAI──VAR=dialog-variable-name──┬───────────┬──┬─────────────────────┬───────────────5
└─USAGE=OUT─┘ │ ┌─BEFORE─┐ │
└─PMTLOC=─┴─ABOVE──┴──┘
5──┬────────────────────┬──┬───────────────────┬──┬─────────────────────┬──────────────────5
│ ┌─AFTER─┐ │ │ ┌─LEFT──┐ │ └─JUSTIFY=─┬─LEFT──┬──┘
└─CHCLOC=─┴─ABOVE─┴──┘ └─ALIGN=─┼─RIGHT─┼──┘ ├─RIGHT─┤
├─START─┤ ├─START─┤
└─END───┘ └─END───┘
5──┬─────────────────────┬──.──┬────────────────┬─────────────────────────────────────────5%
└─COND=condition-name─┘ └─data-item-text─┘
The data item (DATAI) tag defines an item placed The UIM does not allow an individual data item to
in a data presentation area. This tag is allowed be split while scrolling.
for display panels and print panels.
determined from the second data column To provide the user with easy access to the
(DATACOL) tag and the ending position for online information for a LAYOUT=HORIZ data
the layout column. area, use the HELP attribute on the DATA tag
instead of the HELP attribute on the individual
For a data presentation area specified with
DATAI tags in the horizontal area.
LAYOUT=HORIZ, if there are already data items
on the display line and if the length of the The HELP attribute applies to all DATAIX tags
prompt plus the value does not fit on the associated with this data item.
current line and allow a five column separator
NAME=data-item-name
between data items, the prompt and values
The name associated with the item. This
are placed on the next display line. For hori-
name can be used with the Add Pop-Up
zontal layout, the prompt plus the value must
Window (QUIADDPW) API to position a
fit on a single line of the panel.
window near this data item. This attribute is
USAGE=OUT | INOUT allowed only for display panels.
Indicates the display use of the data item.
For more information on the rules for naming,
This attribute is required for display panels
see “Name Syntax” on page A-4.
and is optional for print panels.
PMTLOC=BEFORE | ABOVE
USAGE=OUT defines an output data item. OUT
Governs the placement of the variable value
indicates that the variable displayed is for
in relationship to the prompt text for the data
output only and cannot be changed by the
item.
user.
BEFORE indicates that the prompt text is
USAGE=INOUT defines a data entry item.
placed before (to the left of) the variable
INOUT indicates that the variable is for data
value. The variable value begins on the line
entry and can be changed by the user.
the prompt text ended on.
YES indicates that the item is required on the NO indicates that the field is not visible.
display and that the field is highlighted accord- DISPLAY=NO is intended for input fields, such
ingly. YES is only valid if USAGE=INOUT is as a password field, which should not be
specified on this tag for the data item. visible.
be specified for the group or for the entire columns or even on different scrollable
area. pages. If the same help module is speci-
fied for multiple data items, extended help
When data groups are not used, the UIM
for the panel repeats the online informa-
may present items in different layout
tion for each item on the panel.
55──:DATAIX──VAR=dialog-variable-name──USAGE=─┬─OUT───┬───┬────────────────────┬───────────5
└─INOUT─┘ │ ┌─CALC─┐ │
└─NEWLINE=─┼─NO───┼──┘
└─YES──┘
5──┬────────────────────────────────────┬──┬───────────────────┬───────────────────────────5
│ ┌─2────────────────────┐ │ │ ┌─LEFT──┐ │
└─ITEMSEP=─┴─item-separator-value─┴──┘ └─ALIGN=─┼─RIGHT─┼──┘
├─START─┤
└─END───┘
5──┬─────────────────────┬──┬────────────────────┬──┬───────────────────┬──────────────────5
└─JUSTIFY=─┬─LEFT──┬──┘ │ ┌─NO──┐ │ │ ┌─YES─┐ │
├─RIGHT─┤ └─REQUIRED=─┴─YES─┴──┘ └─DISPLAY=─┴─NO──┴──┘
├─START─┤
└─END───┘
5──┬──────────────────────┬──┬───────────────────────────────┬──┬────────────────────┬─────5
└─PROMPT='action-text'─┘ └─DSPVALUE=dialog-variable-name─┘ │ ┌─NO──┐ │
└─AUTOENTR=─┴─YES─┴──┘
5──.──────────────────────────────────────────────────────────────────────────────────────5%
55──:DATAIX──VAR=dialog-variable-name──┬───────────┬──┬────────────────────┬───────────────5
└─USAGE=OUT─┘ │ ┌─CALC─┐ │
└─NEWLINE=─┼─NO───┼──┘
└─YES──┘
5──┬────────────────────────────────────┬──┬───────────────────┬───────────────────────────5
│ ┌─2────────────────────┐ │ │ ┌─LEFT──┐ │
└─ITEMSEP=─┴─item-separator-value─┴──┘ └─ALIGN=─┼─RIGHT─┼──┘
├─START─┤
└─END───┘
5──┬─────────────────────┬──.─────────────────────────────────────────────────────────────5%
└─JUSTIFY=─┬─LEFT──┬──┘
├─RIGHT─┤
├─START─┤
└─END───┘
The data item extender (DATAIX) tag provides an are specified determines where they appear in
additional dialog variable to be associated with a relationship to the dialog variable of the DATAI
data item (DATAI) tag. This tag is allowed for tag.
display panels and print panels.
panel. In this case, the value is presented as display or print line. It is positioned according
a single field that wraps onto as many lines as to the ALIGN attribute of this tag.
necessary. For a LAYOUT=2 data presentation
When NEWLINE=CALC is specified in a data
area, the display value must fit on one line.
presentation area with LAYOUT=HORIZ speci-
For a LAYOUT=HORIZ data presentation area, fied, the value is placed on the same line as
the data item prompt, value, and all DATAIX the previous value.
values must all fit on a single line of the panel.
NEWLINE=NO indicates that the value should
If there are already data items on one line of
be placed on the same line and to the right of
the panel and if the prompt text and dialog
the previous value. The previous value is the
variable for the DATAI tag plus the value of
dialog variable for either the DATAI tag or a
this dialog variable do not fit on the current
previous DATAIX tag. If the DATAIX tag
line and still allow a five-column separator
appears immediately after a DATAC tag,
between data items, the entire data item,
NEWLINE=NO is not allowed.
including this item extender, are placed on the
next line of the panel. NEWLINE=YES indicates that the value should
be placed on the next display or print line.
USAGE=OUT | INOUT NEWLINE=YES is not allowed for data presenta-
The display use of the data item. This attri- tion areas with LAYOUT=HORIZ specified.
bute is required for display panels but is
optional for print panels. ITEMSEP=2 | item-separator-value
Indicates how many spaces separate the
USAGE=OUT defines an output data item. OUT
dialog variable of this data item extender and
indicates that the variable displayed is for
the previous dialog variable.
output only and cannot be changed by the
user. For data presentation areas with LAYOUT=1 or
LAYOUT=2, the maximum value for this attribute
USAGE=INOUT defines a data entry item.
is the width of the choice column, as defined
INOUT indicates that the variable is for data
by the second DATACOL tag. For data pres-
entry and can be changed by the user.
entation areas with LAYOUT=HORIZ specified,
the maximum value for this attribute is 5. The
Optional Attributes default value is 2, and the minimum value is
1.
NEWLINE=CALC | NO | YES
Governs the placement of the variable for the The ITEMSEP attribute is not allowed when
data item extender in relationship to the vari- NEWLINE=YES is specified on this tag, and has
able value for the data item, possible choices no effect when NEWLINE=CALC is specified
text, and previously-defined data item and the extender variable is placed on a new
extenders. line.
NEWLINE=CALC indicates that the UIM deter- ALIGN=LEFT | RIGHT | START | END
mines the placement of the variable. The var- Governs how the display value is positioned
iable is placed on the same line as the within the choice column defined by the
previous dialog variable if all of the following second DATACOL tag.
conditions are true:
If the dialog variable is preceded by the dialog
The variable fits within the value column, variable for the DATAI tag or by a previous
defined by the second data column DATAIX tag, the ALIGN attribute has no effect
(DATACOL) tag of the current line. on the position of the display value within the
choice column.
The DATAIX tag is not immediately fol-
lowed by a DATAC tag. If the dialog variable is the first variable on the
display or print line, the ALIGN attribute formats
The current line is not wrapped from the
text as follows:
previous line
ALIGN=LEFT positions the leftmost char-
If any of the above conditions are not true, the
acter of the display value with the left
data item extender is placed on the next
edge of the choice column.
The JUSTIFY attribute is ignored for variables This variable is updated regardless of whether
defined as UCS-2. or not VARUPD processing is performed. The
variable pool is updated based on the VARUPD
REQUIRED=NO | YES attribute used to define the function key. This
NO indicates that the item is not required. updating is independent of the display value
This attribute is allowed only for display variable processing.
panels.
The dialog variable specified must be defined
YES indicates that the item is required on the on the class definition (CLASS) tag as a
display and that the field is highlighted accord- CHAR or IGC variable whose length is the
ingly. YES is only valid if USAGE=INOUT is same as the width of the dialog variable speci-
specified for the data item extender. fied on the VAR attribute of this tag.
When REQUIRED=YES is coded, no explicit No translation list processing or value
checks are made for user entry. checking is performed for the value before it is
REQUIRED=YES causes the UIM to perform placed in this variable. Character set and
input editing and validity check processing, code page conversion are performed for this
even if the user does not enter anything into variable if the class of the variable named on
the field. This allows you to use the validity the VAR attribute of this tag specifies that char-
checking (CHECK) tag to ensure that the user acter set and code page conversion should be
enters data into a required field. performed.
DISPLAY=YES | NO AUTOENTR=NO | YES
Indicates whether or not the field is visible Indicates whether or not the field is an auto-
when the panel is displayed. This attribute is matic enter input field. This attribute is
allowed only for display panels. YES indi- allowed only for display panels. An automatic
cates that the field is visible. enter input field returns from the device to the
NO indicates that the field is not visible. host when the user enters a character,
DISPLAY=NO is intended for input fields such including a blank, into the last position of the
field. This has the same effect as the user YES indicates that the field is an automatic
pressing the Enter key. enter field. If YES is specified, USAGE=INOUT
must also be specified on this tag. Although
NO indicates that the field is not an automatic
the UIM does not restrict its usage,
enter field. This is the default value.
AUTOENTR=YES is intended for input fields that
are one character wide.
55──:DATASLT──TYPE=─┬─SINGLE─┬───┬──────────────────────────┬────────────────────────────5
└─MULTI──┘ └─VAR=dialog-variable-name─┘
5──┬───────────────────────┬──┬───────────────────────────┬──┬─────────────────────┬─────5
└─HELP=help-module-name─┘ └─NAME=selection-field-name─┘ └─PMTLOC=─┬─BEFORE─┬──┘
└─ABOVE──┘
5──┬────────────────────┬──┬─────────────────────┬──┬─────────────────────┬──.───────────5
└─REQUIRED=─┬─NO──┬──┘ └─AUTOENTER=─┬─NO──┬──┘ └─COND=condition-name─┘
└─YES─┘ └─YES─┘
5──┬─────────────────────────────┬──:EDATASLT.──────────────────────────────────────────5%
└─selection-field-prompt-text─┘
The data selection field (DATASLT) tag defines a Table A-6. Tag Allowed Between the DATASLT and
selection field in the data presentation area. This EDATASLT Tags
tag is allowed only for display panels. Tag Name Order Use Page
DATASLTC 1 D A-55
The DATASLT may be a single- or multiple-choice
(Data selection
selection field. The selection field is fixed in field choice)
content and number of choices. A data selection
field can only be specified when LAYOUT=1 or 2 on
the data presentation area (DATA) tag. Required Attributes
The data selection field choice (DATASLTC) tag TYPE=SINGLE | MULTI
specifies the choices for the selection field. The Specifies whether or not the selection field is
DATASLTC tag is part of the DATASLT tag with a selection field for single or multiple choices.
respect to formatting, conditioning, scrolling, and SINGLE indicates that the selection field is for
help. a single choice.
The prompt, field, and choices must fit within the MULTI indicates that the selection field is for
data area. The UIM does not allow a selection multiple choices.
field to be split while scrolling.
Optional Attributes
Other tags can be nested within the DATASLT
tag. These tags are listed in the following table. VAR=dialog-variable-name
The table defines the order in which the tags must The name of the dialog variable used to con-
appear, indicates which tags can be used in struct the single-choice selection field. This
display panels only, print panels only, or both attribute is required for TYPE=SINGLE. The
(specified by a D, P, or B, respectively), and spec- variable is presented on the display if
ifies on which page more information can be found TYPE=SINGLE, and must be declared with a
for each tag. BASETYPE of BIN(31) on the class definition
(CLASS) tag. This variable contains the
When more than one tag is listed with the same option number of the choice selected by the
order number, all tags of that number can be user. If no choices are selected, the variable
mixed in any order. However, a tag with a higher returns a zero. The current value of the
order number cannot precede a tag with a lower dialog variable is presented on the display.
order number. For example, a tag with an order If TYPE=MULTI is specified on this tag, this
number of three cannot precede a tag with an attribute is not allowed.
order number of one or two.
HELP=help-module-name
Identifies online information explaining the
purpose of the data selection field. The name
of the help module may be a name imported explicit checks are made for user entry.
from another panel group, but the name must However, YES causes the UIM to perform
follow the rules for names outlined earlier in input editing and validity check processing
this chapter. For more information on the even if the user does not enter anything into
rules for names, see “Name Syntax” on the field. This allows you to use the validity
page A-4. checking (CHECK) tag to ensure that the user
enters data into a required field.
A single help module name must be associ-
REQUIRED=YES cannot be specified when
ated with every item in the area. If the HELP
TYPE=MULTI is specified on this tag.
attribute is specified on the DATA tag, the
help applies to all groups and items in the AUTOENTR=NO | YES
area, and the HELP attribute is not allowed on Indicates whether or not the field is an auto-
any data group (DATAGRP) and DATASLT matic enter input field. An automatic enter
tags in the area. input field returns the screen from the device
If the HELP attribute is specified on the to the host when the user enters a character,
DATAGRP tag, the help applies to all data including a blank, into the last position of the
selection fields in the group, and the HELP field. This has the same effect as the user
attribute is not allowed on DATASLT tags pressing the Enter key.
within the group. NO indicates that the field is not an automatic
If no HELP attribute is specified on the DATA enter field. This is the default value.
tag nor on DATAGRP tags containing a data YES indicates that the field is an automatic
selection field, the HELP attribute is required on enter field. Although the UIM does not restrict
the DATASLT tag. its usage, AUTOENTR=YES is intended to be
used only on input fields that are one char-
NAME=selection-field-name
acter wide. YES is not allowed when
The name associated with the selection field.
TYPE=MULTI is specified on this tag.
This name can be used later with the Add
Pop-Up Window (QUIADDPW) API to position COND=condition-name
a window associated with this selection field. The selection field is displayed only if the con-
For more information on the rules for naming, dition specified is true. Associated
see “Name Syntax” on page A-4. DATASLTC tags are displayed only if this
selection field appears on the display. The
PMTLOC=BEFORE | ABOVE
condition must be defined in the panel group
Governs the placement of the prompt text in
with the condition definition (COND) tag.
relationship to the input field associated with
the selection field.
BEFORE indicates that the prompt text is
Optional Text
placed before (to the left of) the variable value selection-field-prompt-text
of the data field. The variable value begins on The text which describes the selection field.
the same line on which the prompt text ended. The text may appear on more than one line
BEFORE is the default. and can contain only the reverse text (RT)
tag. The length of the text is 255 bytes or
ABOVE indicates that the prompt text is
less.
placed above the data item variable. The var-
iable is indented two spaces from the begin- If the selection field appears in a data item
ning of the prompt text. group, it is indented as specified by the
GRPSEP attribute on the DATAGRP tag. If the
REQUIRED=NO | YES
text is too long to fit in the prompt column, it is
This attribute is allowed only for
formatted on the following lines as necessary
TYPE=SINGLE. NO indicates that the field is
to fit within the column and indented two
not required. NO is the default value.
spaces from the beginning of the first line.
YES indicates that the field is required on the
If no text is specified, the selection field
display, and the field is highlighted accord-
appears without a prompt. Prompt text should
ingly. When REQUIRED=YES is coded, no
be specified for all DATASLT tags, except for
:datacol width=3ð.
:datacol width='\'.
:dataslt help=hstyle In this example, the PRTSTYLE and DUPLEX
var=prtstyle dialog variables must be BIN 31, and the option
type=single value selected is returned to the calling program in
.Type style for printing these variables.
:datasltc help=hstylep
option=1 Example 2: Multiple-Selection
.Prestige elite (12 pitch)
:datasltc help=hstylec Field
option=2
.Courier (1ð pitch) This example shows a multiple-selection field.
:datasltc help=hstylees The user selects the values by typing a slash (/)
option=3 or the country-designated character into the entry
field preceding the desired options. More than
one heading option may be selected.
55──:DATASLTC──┬─────────────────────────────┬──┬──────────────────────┬─────────────────5
└─CHOICE=dialog-variable-name─┘ └─OPTION=option-number─┘
5──┬──────────────────────────┬──┬───────────────────────┬──┬─────────────────────┬──────5
└─VAR=dialog-variable-name─┘ └─HELP=help-module-name─┘ └─COND=condition-name─┘
5──┬──────────────────────┬──┬─────────────────────────────┬─────────────────────────────5
└─AVAIL=condition-name─┘ └─AVLMSGID=message-identifier─┘
5──┬───────────────────────────────────────┬──.──┬──────────────────┬───────────────────5%
└─AVLMSGF='qualified-message-file-name'─┘ └─text-for-choices─┘
The data selection field choice (DATASLTC) tag acter to the left to preserve vertical alignment
defines a possible choice for a single- or multiple- with data choices on other lines.
choice selection field. This tag is allowed only for
OPTION=option-number
display panels. It is not valid if LAYOUT=HORIZ is
The number assigned to this option. Option
specified on the data presentation area (DATA)
numbers are integers in the range of 1 to 99.
tag for the area.
This attribute is required if specified within a
The DATASLTC tags must appear after the corre- DATASLT tag that has TYPE=SINGLE speci-
sponding data selection field (DATASLT) tag and fied, but cannot be used if TYPE=MULTI is
at least one DATASLTC tag must be specified specified.
between the DATASLT and the EDATASLTC tags. Selection field choices are displayed in the
The DATASLTC tag defines the choices for the order defined in the selection field. If the
selection field. numbering of two choices is not consecutive,
a blank line is automatically placed between
Optional Attributes the two choices. If two choices have the
same option number and both are
CHOICE=dialog-variable-name conditioned-on at the same time, the choice
The name of a dialog variable containing the defined first is displayed.
possible choices text to be displayed. The
dialog variable must be defined so that the VAR=dialog-variable-name
text fits on a single line. The name of the dialog variable used to indi-
cate whether or not the selection field choice
Dialog variables must be defined with a is selected. This attribute is required for
BASETYPE of CHAR, IGC, or BIN on the class TYPE=MULTI. The variable must be declared
definition (CLASS) tag. with a BASETYPE of CHAR 1 on the CLASS
The error state of the dialog variable is not tag.
used for determining the highlighting of the If the choice is not selected, the value of the
text. dialog variable is '0'. If the choice is selected,
If the CHOICE attribute is specified, the text-for- a value of '1' is returned in the dialog variable.
choices cannot be specified. If the current value of the variable is '1' when
the screen is displayed, a slash (/) is dis-
Special formatting for IGC. (The abbrevi-
played on the screen. The user may enter
ation IGC is used in commands and keywords
either a slash or the country-designated char-
to represent double-byte character set func-
acter and a '1' is returned to the user. Which-
tions.) When a dialog variable with a
ever character is used for selection by the
BASETYPE of IGC is specified on the CLASS
user is shown when the panel is redisplayed.
tag, the UIM does special formatting. If the
If the current value of the dialog variable is
variable value begins with a shift-out character
something other than '1' when the panel is
(X'0E'), the UIM shifts the value one char-
displayed, the variable is presented as unse-
lected.
The VAR attribute is required if TYPE=MULTI on for the choice is not included in requests to
the DATASLT tag. If TYPE=SINGLE is speci- display help.
fied, the VAR attribute is not allowed.
AVAIL=condition-name
HELP=help-module-name The name of a condition indicating whether or
Identifies online information explaining the not the selection field choice is available. The
purpose of the selection field choice. The condition must be defined in the panel group
name of the help module may be a name prolog with the COND tag.
imported from another panel group, but must
When the condition is true, the selection field
follow the rules for names outlined earlier in
choice is available. When the condition is
this chapter. For more information on the
false, the selection field choice is not avail-
rules for names, see “Name Syntax” on
able. Any condition specified on the COND
page A-4.
attribute on this tag takes precedence over
This attribute is allowed only when the HELP this attribute.
attribute is specified on the DATASLT tag that
Unavailable choices are displayed with a color
contains this DATASLTC tag.
change and an asterisk (*) overlaying the first
If the HELP attribute is specified on a part of the choice option number.
DATASLTC tag within a selection field, all
The AVAIL attribute cannot be specified if the
DATASLTC tags within that selection field
selection field is specified as TYPE=MULTI on
must have the HELP attribute specified.
the DATASLT tag.
For multiple-choice selection fields with
AVLMSGID=message-identifier
SELECT=MULTI specified on the DATASLT tag,
The message identifier of the message dis-
the online information identified by this attri-
played when the selection field choice is
bute is included as part of the contextual help
selected when it is not available as specified
displayed when the cursor is positioned any-
by the AVAIL attribute on this tag. This attri-
where within the selection field.
bute is allowed only when the AVAIL attribute
For single-choice selection fields with is specified.
SELECT=SINGLE specified on the DATASLT
If this attribute is not specified, the UIM dis-
tag, the online information identified by this
plays a default message stating that the
attribute is displayed when help is requested
choice is not currently available.
while the cursor is positioned on the choice
text for this tag. This online information is AVLMSGF='qualified-message-file-name'
also included as part of the contextual help The message file name containing the
displayed when the cursor is positioned within message identifier. This attribute is allowed
the selection field but not on the text for one when the AVLMSGID attribute on this tag is
of the choices within the field. This includes specified. If the DFTMSGF attribute is not speci-
when the cursor is positioned on the prompt fied on the panel group (PNLGRP) tag and
text for the selection field or in the entry field the AVLMSGID attribute on this tag is specified,
for the selection field. If the cursor is in the this attribute must be specified.
entry field and a valid choice is entered, when
help is requested, the help for that choice is
displayed.
Optional Text
text-for-choices
COND=condition-name
This text is an implied paragraph. When the
The selection field choice is in effect on the
display is formatted, any text that does not fit
panel only if the condition specified is true.
onto one line is formatted on the following
The condition must be defined in the panel
lines and indented two columns. The text can
group prolog with the condition definition
be a maximum of 255 characters and can only
(COND) tag. When the choice is
contain the reverse text (RT) tag. Text-for-
conditioned-off, the selection field choice does
choices is required unless the CHOICE attribute
not appear in the selection field and the help
is specified on this tag.
DL (Definition List)
55──:DL──┬─────────┬──.──┬──────────────────────────────┬──┬─────────────────────────┬───5
└─COMPACT─┘ └─:DTHD.definition-term-header─┘ └─:DDHD.definition-header─┘
┌──
─────────────────────────────────────┐
5───6─:DT.definition-term──:DD.definition─┴──:EDL.───────────────────────────────────────5%
The definition list (DL) is a list of words or phrases Table A-7. Tags Allowed Between the DL and EDL
and their corresponding definitions, descriptions, Tags
or explanations. This tag requires a matching end Tag Name Order Use Page
tag. A definition list is only allowed in information
LINES 1 B A-77
areas and help areas. (Unformatted
lines)
The terms being defined and their definitions are
identified by the definition term (DT) tag and the XMP 1 B A-171
(Example)
definition description (DD) tag. A heading for the
column of terms and the column of definitions can NT 1 B A-117
be identified by the definition term heading (Note)
(DTHD) tag and the definition description heading P 1 B A-121
(DDHD) tags, respectively. (Paragraph)
PC 1 B A-131
Definition lists can occur anywhere in text; they (Paragraph con-
can be nested within other lists or definition lists, tinuation)
and other lists can be nested within definition lists.
LP 1 B A-107
(List part)
Two DT or DD tags cannot be used consecutively.
OL 1 B A-118
Other tags can be nested within the DL tag. (Ordered list)
These tags are listed in the following table. The SL 1 B A-152
table defines the order in which the tags must (Simple list)
appear, indicates which tags can be used in UL 1 B A-164
display panels only, print panels only, or both (Unordered list)
(specified by a D, P, or B, respectively), and spec-
PARML 1 B A-129
ifies on which page more information can be found
(Parameter list)
for each tag.
DL 1 B A-57
When more than one tag is listed with the same (Definition list)
order number, all tags of that number can be
mixed in any order. However, a tag with a higher
order number cannot precede a tag with a lower
Optional Attribute
order number. For example, a tag with an order COMPACT
number of three cannot precede a tag with an Formats the list without the blank line between
order number of one or two. the items.
FIG (Figure)
55──:FIG──┬──────────────────┬──.──figure-content──┬─────────────────────────────┬───────5
│ ┌─RULE─┐ │ └─:FIGCAP.figure-caption-text─┘
└─FRAME=─┴─NONE─┴──┘
5──:EFIG.───────────────────────────────────────────────────────────────────────────────5%
The figure (FIG) tag identifies a diagram, chart, or NONE indicates that no frame is used; a blank
other illustration. This tag requires a matching line is placed ahead of and behind the figure.
end tag. The figure tag is only allowed in informa-
tion areas and help areas. A figure can also Optional Tag
contain a figure caption, which is identified by the
figure caption (FIGCAP) tag. FIGCAP.figure caption text
A caption for the figure, if needed. The
Figures turn off automatic formatting, so the text is caption may appear on more than one line in
formatted the same way it is entered. The figure the source. The FIGCAP tag must appear
formats where it is entered, across the full width of immediately before the EFIG tag.
the screen or window.
55──:HELP──NAME=help-module-name──┬───────────────────────────────┬──────────────────────5
│ ┌─'\'───────────────┐ │
└─WIDTH=─┴─help-window-width─┴──┘
5──┬───────────────────────────────┬──.──┬─────────────────┬──:EHELP.───────────────────5%
│ ┌─'\'───────────────┐ │ └─help-title-text─┘
└─DEPTH=─┴─help-window-depth─┴──┘
The help module (HELP) tag indicates the begin- The maximum length of the value for the NAME
ning of a help module. An EHELP tag must be attribute is 32 characters. A slash (/) can be
specified at the end of the help module. A help used in the name as a delimiter or separator
module can be used for help displays and for character. The slash is used to separate a
index search topics. For more information on the command name from a parameter name when
index search function, see “ISCH (Index Search)” naming a help module for commands. If the
on page A-70. Help modules may also be linked slash is used, the name must be enclosed in
to each other. For more information on how help apostrophes ('). Help modules may not be
modules may be linked together, see “LINK nested.
(Hypertext Link Definition)” on page A-78.
The DSPHELP dialog command. The width used is that of the first HELP tag
found when the UIM assembles the online
help information.
UIM Source
:help name=hmain.Main System Menu - Help
:p.
This panel allows you to ...
(extended description of the panel)
:ehelp.
Results
______________________________________________________________________________
á ñ
55───┬─:HPð.──┬──────┬──:EHPð.─┬────────────────────────────────────────────────────────5%
│ └─text─┘ │
├─:HP1.──┬──────┬──:EHP1.─┤
│ └─text─┘ │
├─:HP2.──┬──────┬──:EHP2.─┤
│ └─text─┘ │
├─:HP3.──┬──────┬──:EHP3.─┤
│ └─text─┘ │
├─:HP4.──┬──────┬──:EHP4.─┤
│ └─text─┘ │
├─:HP5.──┬──────┬──:EHP5.─┤
│ └─text─┘ │
├─:HP6.──┬──────┬──:EHP6.─┤
│ └─text─┘ │
├─:HP7.──┬──────┬──:EHP7.─┤
│ └─text─┘ │
├─:HP8.──┬──────┬──:EHP8.─┤
│ └─text─┘ │
└─:HP9.──┬──────┬──:EHP9.─┘
└─text─┘
These highlighted phrase (HP0-HP9) tags identify punctuation mark. This allows the punctuation
a word or phrase which is highlighted. All HPn mark and the text associated with it to be dis-
tags require matching end tags. These tags are played using the same emphasis.
only allowed in help areas and in information
areas that are not in the print head (PRTHEAD) or Highlighting tags may be nested. For example,
print panel (PRTPNL) tags. :HP1.text:HP2.text2:EHP2.text3:EHP1. is valid.
The HPn and EHPn tag phrase should be speci- Optional Text
fied on word boundaries. If the two characters
immediately following the EHPn tag are a punctu- text
ation mark and a blank, the UIM automatically Although the word or phrase to be highlighted
extends the emphasis attribute to include the is not required, the tag has no meaning when
no text is specified.
HP7 White, reverse image High intensity, reverse image Bold, underlined
HP8 White, reverse image High intensity, reverse image Bold, underlined
RV2W062-0
H1 through H4 (Heading)
55───┬─:H1─┬─.heading-text──────────────────────────────────────────────────────────────5%
├─:H2─┤
├─:H3─┤
└─:H4─┘
The heading (H1-H4) tags identify main topics and text according to the current publishing style,
subtopics of information. These tags are only with significant words in initial caps.
allowed in information areas and help areas.
55──:IMHELP──NAME=help-module-name──.───────────────────────────────────────────────────5%
The imbed help (IMHELP) tag embeds a help active HPn tags must be ended with EHPn
module from another panel group object. This tag tags before coding the IMHELP tag.
can occur only in help modules within the help
module (HELP) and EHELP tags. Example: Imbedded Help
Required Attribute This example uses imported help for the help on
function keys.
NAME=help-module-name
The name of a help module imbedded where
this tag occurs. For more information on the
UIM Source
rules for naming, see “Name Syntax” on :HELP name='menu1'.
page A-4. The name must be the name of :H2.Purpose of MENU1
another help module defined within the same Menu1 is intended for the use of...
..
panel group, or it must be imported from .
another panel group using the import :IMHELP name='keydefs'.
..
(IMPORT) tag. IMHELP tags have a nesting .
limit of 16. :EHELP.
..
.
If the index search (ISCH) or index search :HELP name='keydefs'.
synonym (ISCHSYN) tags are a part of the :PARML.
embedded help module, they are not part of :PT.F1=Help
the module where the the IMHELP tag occurs. :PD.This key...
:PT.F3=Exit
An active highlight phrase (HPn) tag is not :PD.This key...
allowed when an IMHELP tag is coded. Any :EPARML.
:EHELP.
IMPORT (Import)
55──:IMPORT──NAME=─┬─imported-name─┬───PNLGRP=panel-group-name───────────────────────────5
└─'\'───────────┘
5──┬────────────────────────────┬──┬─────────────────────────────┬──.───────────────────5%
│ ┌─SAME─────────┐ │ └─PRDLIB=product-library-name─┘
└─NEWNAME=─┴─private-name─┴──┘
55──:INFO──DEPTH=─┬─area-depth─┬───┬────────────────────┬──┬──────────────────┬──.─────────5
└─'\'────────┘ │ ┌─SPACE─┐ │ │ ┌─NO──┐ │
└─BOTSEP=─┼─NONE──┼──┘ └─SCROLL=─┴─YES─┴──┘
└─RULE──┘
5──┬────────────┬──:EINFO.────────────────────────────────────────────────────────────────5%
└─area-title─┘
55──:INFO──┬────────────────────┬──┬───────────────────┬──.──┬────────────┬──:EINFO.──────5%
│ ┌─SPACE─┐ │ │ ┌─NORMAL─┐ │ └─area-title─┘
└─BOTSEP=─┼─NONE──┼──┘ └─TYPE=─┴─PROLOG─┴──┘
└─RULE──┘
An information area (INFO) tag provides textual If RULE is specified, a line of underscored
information to explain the operation of an applica- spaces is used.
tion or panel. This tag is allowed for display
SCROLL=NO | YES
panels and print panels. It can construct a
Indicates whether or not this area is scrollable.
detailed instruction area on a panel.
This attribute is allowed only for display
Information areas are formatted with a width of 72 panels. NO indicates that the area is not
columns unless the width attribute on the panel scrollable.
tag is less than 74 columns. In this case, the YES indicates that the area is intended to be
information area is formatted with a width of two scrollable. For a SCROLL=YES area, a line of
columns less than the width attribute on the panel spaces is used by the UIM to provide a line
tag. for the scroll information. If BOTSEP=SPACE is
specified also, one line is used for both the
Required Attribute separator and the scroll information line.
tag, and cannot exceed a maximum length of tion areas are formatted to a width of 72 columns,
55 characters long. as is done for information areas on display panels,
regardless of the width specified on the PRTHEAD
Print Formatting Considerations or print panel (PRTPNL) tag.
55──:ISCH──ROOTS='root-word-list'──.──index-entry-text──────────────────────────────────5%
The index search (ISCH) tag identifies the text dis- same or next line as the period which ends
played by the index search function if the user the tag definition and cannot span two lines in
enters a word that matches a synonym. The the source.
ISCH tag is only allowed in source code for panel
If the index entry is a subtopic, the index-
group objects and is not allowed in the source for
entry-text is indented two spaces from the text
menu objects. The placement of the ISCH tag
of the first higher index entry in the hierarchy
determines the help module displayed when the
of index entries.
index entry is selected. The ISCH tags should
appear immediately after the help module (HELP) The text which is provided is used as the topic
tag it refers to. title when topics are presented for selection.
If no text is specified on the HELP tag of the
topic, the text provided on the ISCH tag is
Required Attribute also used as the panel title when the topic is
ROOTS='root-word-list' selected for presentation. When used as a
A list of up to 50 root words that apply to the panel title, no more than 55 characters of the
index entry. Each root word may be up to 20 text is shown. If the text contains more than
characters and can contain only the charac- 55 characters, it is truncated at a blank and
ters A through Z, a through z, and 0 through an ellipse (...) is placed after the text to indi-
9. One or more blanks must be specified cate that truncation has occurred.
between words, so the entire list must be
enclosed in apostrophes. The ROOTS attribute Example: Index Search
may be repeated, allowing you to define more
root words for an index entry than fits on one This example shows some ISCHSYN tags and the
source line. ISCH tags that use them:
The root words serve as a link between the
ISCH tags and the index search synonym UIM Source
(ISCHSYN) tags, and do not appear to the :ISCHSYN ROOT='copy'.copy copying copies
user. To allow the user to search for an index :ISCHSYN ROOT='delete'.delete deleting deletes
entry, each root word specified here must :ISCHSYN ROOT='delete'.remove removes removing
have a matching root word on an ISCHSYN :ISCHSYN ROOT='folder'.folder folders
tag. :ISCHSYN ROOT='folder'.document documents
..
.
Required Text :help name=fldcpy.
:ISCH ROOTS='copy folder'.Copying folders
..
index-entry-text .
The text of the index entry presented when :ehelp.
one of the synonym words is selected. The :help name=flddlt.
text may contain up to 72 characters but can :ISCH ROOTS='delete folder'.
not contain other tags. It must appear on the Deleting folders
:ehelp.
55──:ISCHSUBT──TOPICS='help-module-name-list'──.────────────────────────────────────────5%
55──:ISCHSYN──ROOT=root-word──.──synonym-words──────────────────────────────────────────5%
The index search synonym (ISCHSYN) tag identi- additional ISCHSYN tags should be entered
fies the variations and synonyms for the root specifying the same root word. The additional
words used in the index search function. The synonyms are added to the previous syno-
ISCHSYN tag is only allowed in source for panel nyms.
group objects and is not allowed in the source for
Each synonym word must be 40 characters or
menu objects.
less and can contain no spaces. It cannot
contain a period, left or right parenthesis, a
The text must be entered on one line. If more
semicolon, a comma, question mark, or colon.
than one line is needed, multiple ISCHSYN tags
may be coded. This text, when combined with the Different languages have a larger or smaller
index search (ISCH) tag, determines the index number of synonyms for each word. To
entries displayed when the user enters words for provide meaningful results, the translation of a
the index search function. root word must be done by providing a list of
synonym words and by not translating each
The ISCHSYN tags build a table of synonyms, English synonym.
which serves as a link to the ISCH tags. As
The UIM automatically handles lowercase,
words are entered for an index search, they are
single-byte character set (SBCS) synonym
matched with the words in the synonym table to
words the same way as uppercase words,
link to the entries displayed.
using the code page specified on the TXTCHRID
There is no restriction on the placement of the attribute of the panel group (PNLGRP) tag.
ISCHSYN tags, but to make maintenance and
translation easier, they should be placed in one Example: Index Search
area, such as the beginning of the panel group or Synonyms
in a panel group object which contains only
ISCHSYN tags. This example shows several ISCHSYN tags and
how they are referred to by ISCH tags.
Required Attribute
UIM Source
ROOT='root-word'
The root word to which the synonyms apply. :pnlgrp...
..
If a real word is used for the root word, like .
“copy,” that word should also be entered in :ISCHSYN ROOT='copy'.copy copying
the synonym-words field. :ISCHSYN ROOT='copy'.duplicate duplicating
:ISCHSYN ROOT='copy'.model
The root word is used in the ROOTS attribute of :ISCHSYN ROOT='root1'.remove removing
the ISCH tag and may be up to 20 characters. :ISCHSYN ROOT='root1'.delete deleting
A root word can contain only the characters A :ISCHSYN ROOT='root1'.trash discard
through Z, a through z, and 0 through 9. :ISCHSYN ROOT='folder'.folder folders
:ISCHSYN ROOT='folder'.document documents
:ISCHSYN ROOT='folder'.data information
Required Text ..
.
synonym-words :help name=fldcpy.
Special Format. Specifies variations and :ISCH ROOTS='copy folder'.Copying a folder
:h2.Copying a Folder
synonyms for the root word. The synonym ..
words must be separated by blanks. If addi- .
:ehelp.
tional synonyms are needed for a root word, ..
.
55──:KEYI──KEY=key-name──HELP=help-module-name──┬──────────────────────┬─────────────────5
└─ACTION='action-text'─┘
5──┬─────────────────────┬──┬──────────────────┬──┬──────────────────────────┬──.────────5
└─COND=condition-name─┘ │ ┌─YES─┐ │ └─PRIORITY=priority-number─┘
└─VARUPD=─┴─NO──┴──┘
5──┬──────────────────────┬─────────────────────────────────────────────────────────────5%
└─key-description-text─┘
The key list item (KEYI) tag defines a single func- Any dialog variable in the command string
tion key. This tag must occur between the KEYL must be preceded by an ampersand to
and EKEYL tags. It assigns displayable text for a denote variable substitution.
specified key and identifies the action to take 'CMDLINE'
place when that key is pressed. 'ENTER'
'EXIT'
Required Attributes 'HELP'
'HOME'
KEY=key-name 'MENU qualified-menu-name
The names for the engraved or software RTNPNT|NORTNPNT'
defined function keys are Attn, Enter, F1-F24, 'MOREKEYS'
Help, Home, Print, Pagedown, Pageup, and 'MOVETOP'
Sysreq. 'PRINT'
'PROMPT'
HELP=help-module-name
'RETRIEVE'
The associated help module for the key
'RETURN positive-integer'
description. The help module name may be a
'PAGEUP'
name imported from another panel group, but
'PAGEDOWN'
it must follow the rules for names outlined
earlier in this chapter. For more information For a description of each of these actions, see
on the rules for naming, see “Name Syntax” Appendix B, “UIM Dialog Commands” on
on page A-4. page B-1.
ACTION='action-text' Engraved key assignments are enforced by
The action occurring when the function key is the compiler. These keys are the keys listed,
pressed. This attribute is conditionally except for F1 through F24. If engraved keys
required. For certain keys, the ACTION attri- are assigned anything but their corresponding
bute must not be specified since the UIM does dialog function (or no action in certain cases),
not handle that particular key. For all other a compile error results. The following is a list
keys, the ACTION attribute is required. of the engraved keys and their corresponding
actions:
The valid forms of action text are:
Key Action
'ACTIONS'
Attn No action
'CALL program-reference'
Enter 'ENTER'
For a description of the interface between
Help 'HELP'
the UIM and the function key CALL
Home 'HOME'
program, see the System API Reference.
Print 'PRINT'
'CANCEL'
Pageup 'PAGEUP'
'CHGVIEW'
Pagedown 'PAGEDOWN'
'CMD command-string'
Sysreq No action
á ñ
55──:KEYL──NAME=key-list-name──┬───────────────────────┬──.──:EKEYL.────────────────────5%
└─HELP=help-module-name─┘
The key list (KEYL) tag indicates the beginning of Example: Key List
a list of key definitions. Each list may be referred
to by one or more panel definitions. An EKEYL This is an example of a key list.
tag must be specified at the end of the key list.
UIM Source: An example of a key list follows:
Other tags can be nested within the KEYL tag.
These tags are listed in the following table. The :keyl name=keylist.
table defines the order in which the tags must :keyi key=f1
appear and specifies on which page more infor- help='key/helpf1'
mation can be found for each tag. action=help.
:keyi key=f3
Table A-8. Tag Allowed Between the KEYL and help='key/exit'
EKEYL Tags. action='exit set'.F3=Exit
:keyi key=f12
Tag Name Order Page help='key/cancel'
KEYI 1 A-76 action='cancel set'.F12=Cancel
(Key list item) :keyi key=f24
help='key/morekeys'
action=morekeys.F24=More keys
Required Attribute :keyi key=enter
help='key/enter'
NAME=key-list-name action=enter.
The name assigned to the key list. For more :keyi key=help
information on the rules for naming, see help='key/help'
“Name Syntax” on page A-4. action=help.
:keyi key=pagedown
help='key/pagedown'
Optional Attribute action=pagedown.
HELP=help-module-name :keyi key=pageup
Identifies online help information explaining help='key/pageup'
the purpose of the function keys. The name action=pageup.
:keyi key=print
of the help module can be a name imported
help='key/print'
from another panel group, but must follow the
action=print.
rules for names outlined earlier in this chapter. :ekeyl.
For more information on the rules for names,
see “Name Syntax” on page A-4.
55──:LINES.──┬───────────────────┬──:ELINES.────────────────────────────────────────────5%
└─unformatted-lines─┘
55──:LINK──PERFORM='action-text'──┬────────────────────────────────────────┬─────────────5
└──┬─UNLESS1─┬─='conditional-expression'─┘
├─UNLESS2─┤
├─UNLESS3─┤
└─UNLESS4─┘
5──┬─────────────────────────────┬──┬───────────────────────────────────┬──.─────────────5
└──┬─THENDO1─┬─='action-text'─┘ └─LINKWHEN='conditional-expression'─┘
├─THENDO2─┤
├─THENDO3─┤
└─THENDO4─┘
5──┬──────────────────┬──:ELINK.────────────────────────────────────────────────────────5%
└─hypertext-phrase─┘
The hypertext link definition (LINK) tag identifies LINES Unformatted lines
the reference phrase text which is the anchor of a LP List part
static hypertext link. A reference phrase may NT Note
appear in any UIM help area, but may not appear P Paragraph
in an information area. This tag requires a PC Paragraph continuation
matching end tag. It also identifies action taken PD Parameter description
when the reference phrase is selected. The only PK Programming keyword
type of action supported is to display a help PV Programming variable
module. XMP Example
topics.
:EHELP. When the cursor is moved to INDEX SEARCH
HELP and the Enter key is pressed, the following
Results screen is shown.
à ......................................................................
ð
: Definition of Index Search :
: :
: Index search allows you to tell the system to search for specific :
: information. Index search information is made more useful by the :
: addition of > hypertext because it allows you to link to :
: additional help topics. :
: Bottom :
: F6=Viewed topics F1ð=Move to top F11=Index search :
: F12=Cancel F13=User support F24=More keys :
: :
:....................................................................:
55──:LIST──DEPTH=─┬─area-depth─┬───LISTDEF=list-name──┬────────────────────┬───────────────5
└─'\'────────┘ │ ┌─SPACE─┐ │
└─BOTSEP=─┼─NONE──┼──┘
└─RULE──┘
5──┬──────────────────┬──┬─────────────────┬──┬──────────────────────┬─────────────────────5
│ ┌─YES─┐ │ │ ┌─ð─┐ │ │ ┌─SPACE──┐ │
└─SCROLL=─┴─NO──┴──┘ └─MAXHEAD=─┼─1─┼──┘ └─BODYSEP=─┼─INDENT─┼──┘
├─2─┤ ├─BOTH───┤
├─3─┤ └─NONE───┘
└─4─┘
5──┬───────────────────────────┬──┬────────────────────┬──┬──────────────────┬─────────────5
└─VIEW=dialog-variable-name─┘ │ ┌─NONE───┐ │ │ ┌─NO──┐ │
└─ACTOR=─┼─UIM────┼──┘ └─EXTACT=─┴─YES─┴──┘
└─CALLER─┘
5──┬─────────────────────┬──┬─────────────────┬──┬────────────────────────────┬────────────5
│ ┌─NONE───┐ │ │ ┌─2─┐ │ └─PARMS=dialog-variable-name─┘
└─SELECT=─┼─SINGLE─┼──┘ └─MAXACTL=─┼─1─┼──┘
└─MULTI──┘ └─3─┘
5──┬───────────────────────────────┬──.──┬────────────┬──:ELIST.──────────────────────────5%
└─HEADSIZE=dialog-variable-name─┘ └─area-title─┘
55──:LIST──LISTDEF=list-name──┬────────────────────┬──┬─────────────────┬──────────────────5
│ ┌─SPACE─┐ │ │ ┌─ð─┐ │
└─BOTSEP=─┼─NONE──┼──┘ └─MAXHEAD=─┼─1─┼──┘
└─RULE──┘ ├─2─┤
├─3─┤
└─4─┘
5──┬──────────────────────┬──┬───────────────────────────┬─────────────────────────────────5
│ ┌─SPACE──┐ │ └─VIEW=dialog-variable-name─┘
└─BODYSEP=─┼─INDENT─┼──┘
├─BOTH───┤
└─NONE───┘
5──┬───────────────────────────────┬──.──┬────────────┬──:ELIST.──────────────────────────5%
└─HEADSIZE=dialog-variable-name─┘ └─area-title─┘
The list area (LIST) tag defines a list area on a described by the list definition (LISTDEF) tag.
panel. The UIM displays the entries in the list, handling
the scroll operations which allow the user to see
This tag is allowed for display panels and print all the entries.
panels, except for the print head panel
(PRTHEAD) tag. A list area consists of an arbi- The area may have multiple views, which are
trary number of rows of like columns, and can be selected by the CHGVIEW dialog command. The
scrolled up and down if the number of rows CHGVIEW dialog command can be assigned to a
exceeds the area in which the list is displayed. function key which alternates between the views.
A list area presents a view of a UIM list, which is Other tags can be nested within the LIST tag.
manipulated by the UIM application programming These tags are listed in the following table. The
interfaces (APIs). UIM lists are named and table defines the order in which the tags must
SPACE leaves a blank line after the top one LISTVIEW tag is specified for the list
instruction lines and before the bottom instruc- area.
tion lines. List columns in the body of the
ACTOR=NONE | UIM | CALLER.
area begin in the leftmost position of the
If ACTOR=NONE is used, the list is not an
layout column and are not indented with
action list. This attribute is allowed only for
respect to instruction lines. If the area con-
display panels. No list action (LISTACT) tags
tains no top or bottom instruction lines, no
can be specified and the UIM does not do
blank lines are reserved before or after the
action list processing for the list area.
area body.
If ACTOR=UIM is specified, the actions indicated
INDENT is used to indent list columns in the
by the LISTACT tags are performed by the
body of the area by two positions from the
UIM and must have the ENTER attribute speci-
leftmost position in the layout column where
fied.
the instruction lines begin. If the area con-
tains top or bottom instruction lines, no blank If ACTOR=CALLER, the actions indicated by the
line is reserved between the instructions and LISTACT tags must be performed by the
the area body except if the area is scrollable. calling program of the display panel
If the area is scrollable, a blank line is (QUIDSPP) API.
reserved for the scroll information.
EXTACT=NO | YES
BOTH leaves a blank line after the top instruc- Specifies whether or not an action list has
tion lines and before the bottom instruction extended action capability. This attribute is
lines, and indents the body two positions from allowed only for display panels. With an
the leftmost position in the layout column extended action list, the first line below the
where the instruction lines begin. If the area column headings is used for an extended
contains no top or bottom instruction lines, no action entry. This line contains the action
blank lines are reserved before or after the option column, along with input-capable fields
area body. for additional list columns.
NONE does not leave a blank line between The user can enter a list action option in the
instruction lines and the body and does not option field for the extended action entry,
indent the body with respect to the layout along with data in the other columns. The
column except if the area is scrollable. If the action identified by the list action tag is per-
area is scrollable, a blank line is reserved to formed using the data entered for the other list
provide a line for the scroll information. columns. The data entered into the extended
action entry columns does not have to match
VIEW=dialog-variable-name
the data in an existing list entry.
This is a BIN 15 dialog variable which deter-
mines the view of the list which appears to the EXTACT=NO indicates that the list does not
user. Valid values are 0 through one less have extended action capability.
than the number of views defined. The UIM
EXTACT=YES indicates that the list does have
changes this variable to match the number of
extended action capability. This is allowed
the view that is active (where 0 is the first
only if ACTOR=UIM or ACTOR=CALLER is speci-
view) when the value is not valid or when the
fied on this tag. The action list option column
CHGVIEW dialog command is run for the list
and at least one other list column defined in
area.
each list view must be defined for extended
The first list view (LISTVIEW) tag for the list action use with EXTACT=YES on the LISTCOL
area defines view 0, the second LISTVIEW tag. Any LISTACT tags which can operate on
tag for the list area defines view 1, and so on the extended action field must have
for each LISTVIEW tag in the list area. ACTFOR=BOTH or ACTFOR=EXTACTE specified.
For more information on list views, see When a panel is displayed which has an
“LISTVIEW (List View)” on page A-105. The extended action list but the list is not currently
VIEW attribute must be specified if more than active in the open application, the list is acti-
vated by the QUIDSPP API.
SELECT=NONE | SINGLE | MULTI used when the list area operates in conjunc-
If SELECT=NONE is used, the list is not a tion with a command line on the same panel.
selection list. This attribute is allowed only for This provides a way for the user to specify
display panels. parameters that affect action list processing.
If SELECT=SINGLE is specified, the list area is The UIM stores the contents of the command
a single-choice selection list. When a single- line in this variable when the command line
choice selection list is displayed, a period (.) contains parameters for action list processing.
precedes each list entry. The user can select The UIM sets the variable to blanks before
only one list entry by typing the slash (/) or the action list processing when the command line
country-designated character over the period. does not contain parameter information.
If SELECT=MULTI is specified, the list is a This dialog variable is intended for use in the
multiple-choice selection list. Multiple list action string for a CMD dialog command spec-
entries may be chosen by entering the slash ified on the ENTER, EXTENTER, PROMPT, or
(/) or the country-designated character into the EXTPROMPT attribute on the LISTACT tag.
entry field preceding each list entry to select.
Note: This variable only contains command
To deselect a choice, the user should type a
line contents when the command line is inter-
blank over, or delete the slash or country-
preted as specifying parameters for action list
designated character, in the list entry.
processing. It does not provide generalized
A value of 1000 is set in the action variable access to the contents of the command line.
for the selected list entries.
HEADSIZE=dialog-variable-name
ACTOR=NONE must be specified or made a This dialog variable specifies the number of
default on this tag if the value of SELECT is dialog variables specified on the COLHEAD attri-
either SINGLE or MULTI. An action variable bute of the LISTCOL tag that should be used
must be declared for each view of the list. for the list column headings. This attribute is
not allowed if MAXHEAD is specified.
MAXACTL= 2 | 1 | 3
The maximum number of lines used for list This dialog variable can only contain the
action descriptions. From 1 to 3 lines can be values 0 through 10, as these are the valid
specified; 2 is the default. Only as many list number of lines for heading text. If this dialog
action lines as needed are used. This attri- variable is not a valid value from 0 through 10,
bute is allowed only for display panels. the maximum of 10 is used. When using the
dialog variables from the list specified on the
The only time that MAXACTL=1 would be useful
COLHEAD attribute of the LISTCOL tag, the vari-
is when there are two or more list actions and
ables are used in the order defined on the
you do not want two lines of list actions after
COLHEAD attribute. This dialog variable must
national language translation.
be defined with a BASETYPE of 'BIN 15' on the
When the UIM formats the first two list action class definition (CLASS) tag.
lines, it attempts to align the start of each
The dialog variables on the HEADSIZE attribute
action with the line above or below it. This is
and the COLHEAD attribute of the LISTCOL tag
done by moving text a few columns to the
are evaluated like normal dialog variables. It
right on either the first or second line. When
is recommend that you set the HEADSIZE
the text for the third list action line is for-
dialog variable before calling the QUIDSPP
matted, the text for the first two lines is not
API and not change it when changing from
moved, but the UIM tries to align the text on
one view to another. It is up to the application
the third line with the text on the second line.
programmer to not let the list and headings
PARMS=dialog-variable-name shift up and down on panels.
This attribute must name a CHAR 255 dialog
This attribute may not be specified if the list
variable, used by the UIM to store parameter
area contains list column groups.
information for action list processing. This
attribute is allowed only for display panels and
is only valid when the ACTOR attribute on this Optional Text
tag has a value other than NONE. It must be
:elist.
:cmdline size=short.Parameters or command:
:epanel.
á ñ
à Output Files
ð
Type options, press Enter.
2=Change
OPT FILE
4=Cancel
NBR
5=Display
USER
7=Hold
PTY
8=Release
Parameters or command:
More... UIM Source
===> _________________________________________________________________________
F3=Exit F12=Cancel :listdef name=auth
á ñ vars='user oper mgmt exist'
vars='read add update delete'.
:panel panel─attributes.User Authorizations
Example 2: List Area with Three :list listdef=auth
Layout Columns depth='\'
maxhead=3.
This example shows a list area where three :listcol var=user
usage=out
entries appear in each row of the display.
maxwidth=1ð
help=huser
.User Name
:listgrp col=objrights
à User Authorizations
ð
System: XXXXXXXX
-----Object Rights----- --------Data Rights---------
help=hobjaut.Object Rights User Name Oper Mgmt Exist Read Add Upd Dlt
XXXXXXXXXX X X X X X X X
:listcol var=oper XXXXXXXXXX X X X X X X X
XXXXXXXXXX X X X X X X X
usage=out XXXXXXXXXX
XXXXXXXXXX
X
X
X
X
X
X
X
X
X
X
X
X
X
X
maxwidth=7 XXXXXXXXXX
XXXXXXXXXX
X
X
X
X
X
X
X
X
X
X
X
X
X
X
.Oper XXXXXXXXXX
XXXXXXXXXX
X
X
X
X
X
X
X
X
X
X
X
X
X
X
XXXXXXXXXX X X X X X X X
:listcol var=mgmt XXXXXXXXXX X X X X X X X
XXXXXXXXXX X X X X X X X
usage=out XXXXXXXXXX X X X X X X X
XXXXXXXXXX X X X X X X X
maxwidth=7 XXXXXXXXXX
XXXXXXXXXX
X
X
X
X
X
X
X
X
X
X
X
X
X
X
.Mgmt XXXXXXXXXX X X X X X X X
More...
:listcol var=exist F3=Exit F12=Cancel
usage=out maxwidth=7 á ñ
.Exist
:elistgrp.
:listgrp col=dtarights Example 4: Dynamic List
help=hdtaaut.Data Rights Column Heading Formatting
:listcol var=read
usage=out This example shows how the column headings are
maxwidth=7 contained in dialog variables.
.Read
:listcol var=add
usage=out UIM Source
maxwidth=7 :listdef name=xmp4
.Add vars='var1 var2 var3'.
:listcol var=update :panel panel-attributes.
usage=out Example of Dynamic Column Headings
maxwidth=7 :list listdef=xmp4
.Upd depth='\'
:listcol var=delete headsize=colhsize.
usage=out :listcol var=var1
maxwidth=7 usage=inout
.Dlt maxwidth=1ð
:elistgrp. colhead='A B C D E F'.
:listview layout=1 :listcol var=var2
cols='user objrights dtarights' usage=inout
:elist. maxwidth=14
:epanel. colhead='G H'.
:listcol var=var3
Results usage=inout
maxwidth=1ð
colhead='I J K L'.
:listview layout=1
cols='var1 var2 var3'.
:elist.
:epanel.
Note: In this example, A B C D E F G H I J K
and L are dialog variables that would each be set
to one line of column heading text. In the screen
that follows, the actual text appears instead of the
dialog variable names. COLHSIZE is also a
dialog variable, and in this example it is set equal
to 4.
Results
F3=Exit F12=Cancel
á ñ
55──:LISTACT──HELP=help-module-name──OPTION=number──┬──────────────────────┬─────────────5
│ ┌─BOTH────┐ │
└─ACTFOR=─┼─LISTE───┼──┘
└─EXTACTE─┘
5──┬────────────────────┬──┬─────────────────────┬──┬────────────────────────┬───────────5
└─CONFIRM=panel-name─┘ └─ENTER='action-text'─┘ └─EXTENTER='action-text'─┘
5──┬──────────────────────┬──┬─────────────────────────┬──┬────────────────────┬─────────5
└─PROMPT='action-text'─┘ └─EXTPROMPT='action-text'─┘ │ ┌─ENTER──┐ │
└─NOCMD=─┴─PROMPT─┴──┘
5──┬────────────────────┬──┬──────────────────────────────────┬──────────────────────────5
│ ┌─ENTER──┐ │ └─USREXIT='CALL program-reference'─┘
└─NOEXT=─┼─PROMPT─┼──┘
└─MSG────┘
5──┬─────────────────────────────┬──┬───────────────────────────────────────┬────────────5
└─EXTMSGID=message-identifier─┘ └─EXTMSGF='qualified-message-file-name'─┘
5──┬─────────────────────┬──┬──────────────────────┬──┬─────────────────────────────┬────5
└─COND=condition-name─┘ └─AVAIL=condition-name─┘ └─AVLMSGID=message-identifier─┘
5──┬───────────────────────────────────────┬──.──┬────────────────────┬─────────────────5%
└─AVLMSGF='qualified-message-file-name'─┘ └─action-description─┘
The list action (LISTACT) tag defines an operation There is no way to have the UIM perform some
which takes place on individual items of a list. actions and the calling program perform others.
This tag is allowed only for display panels.
Options entered by a user are not actually run When the CMD dialog command is used as the
until an Enter or Prompt function key is pressed, action performed for the extended action entry in
allowing the user to select several list items while an action list, the command text should be a
using the Page Up or Page Down keys. Control Language command, not a System/36
Environment OCL command. The value *N is
If ACTOR=UIM is specified on the list area (LIST) substituted in the command text for any dialog
tag, all actions indicated by LISTACT tags are per- variable from the extended action entry that has a
formed by the UIM. These actions must have the blank value. An exception to this is when
ENTER attribute specified, and may also have the NOEXT=MSG is specified on this tag, indicating that
PROMPT and USREXIT attributes specified. If the command should not be submitted when any
ACTOR=CALLER is specified on the LIST tag, the of the values for the extended action entry are
actions are handled by the program which called blank. This consideration applies to the following
the Display Panel (QUIDSPP) API. In this case, attributes of this tag:
none of the following attributes can be specified
ENTER
on the LISTACT tag:
PROMPT
CONFIRM EXTENTER
ENTER EXTPROMPT
PROMPT
USREXIT Required Attributes
EXTENTER
EXTPROMPT HELP=help-module-name
NOEXT Identifies the associated help module for this
EXTMSGID list action. The online help information for all
EXTMSGF actively-conditioned list actions is always
added to the online help information for the
action column.
the "?<" or "??" selective prompting characters command line, or to show the current param-
are used, it is your responsibility to have the eter values for the object when an overriding
current parameter values substituted into the parameter is not on the command line. When
command string. the "?<" or "??" selective prompting characters
are used, it is your responsibility to have the
EXTENTER='action-text'
current parameter values substituted into the
Specifies the action occurring when the list
command string.
action for the extended action field is
requested through the ENTER dialog EXTPROMPT='action-text'
command. This attribute is not allowed when Specifies the action occurring when the list
ACTFOR=LISTE is specified on the LISTACT action for the extended action field is
tag, or when EXTACT=NO is specified on the requested through the PROMPT dialog
LIST tag. command. The EXTPROMPT attribute is not
allowed when ACTFOR=LISTE is specified on
The syntax and usage of this attribute is the
the LISTACT tag, when EXTACT=NO is speci-
same as the ENTER attribute for this tag. If the
fied on the LIST tag, or when the PROMPT attri-
EXTENTER attribute is not specified, the action
bute is not specified on this tag.
specified on the ENTER attribute is used.
The syntax and use of this attribute is the
PROMPT='action-text'
same as for the PROMPT attribute on this tag. If
Specifies the action occurring when the list
the EXTPROMPT attribute is not specified, the
action is requested through the PROMPT
action specified on the PROMPT attribute is
dialog command. The valid forms of action
used.
text are:
NOCMD=ENTER | PROMPT
'CALL program-reference'
Specifies the action the UIM performs for the
For a description of the interface between
ENTER dialog command when the command
the UIM and the exit program for an action
line is blank.
list option, see the System API Reference.
ENTER indicates that the action on the ENTER
'CMD command-string'
attribute of this tag should be performed.
Any dialog variable name in the command
string must be preceded by an ampersand PROMPT indicates that the action on the
to denote variable substitution. PROMPT attribute of this tag should be per-
formed.
For a description of these actions, see
Appendix B, “UIM Dialog Commands” on This allows you to have a command prompted
page B-1. when the command line is empty, but not
prompted if the command line contains param-
This attribute is repeatable, allowing the con- eters.
struction of long command strings.
For an explanation of how this attribute inter-
The PARMS attribute on the LIST tag identifies acts with the NOEXT attribute of this tag, see
a dialog variable that can be substituted into a Table A-10 on page A-93.
command string on the CMD dialog command.
Additional command submission support is NOEXT=ENTER | PROMPT | MSG
activated for list actions which use the CMD Specifies the action the UIM should perform
dialog command. When parameters from the for the ENTER dialog command when one or
command line are substituted into a command more of the input fields on the extended action
string, the parameters from the command line entry are blank.
override the same parameter defined in the ENTER indicates that the action on the
command string if the parameter in the EXTENTER attribute of this tag should be per-
command string is preceded by the "?<" or formed.
"??" selective prompting characters.
PROMPT indicates that the action on the
This function allows a prompt for a command EXTPROMPT attribute of this tag should be per-
to show the parameter values from the formed.
For a description of the interface between the If this attribute is not specified, the UIM dis-
UIM and the program for an action list, see plays a default message stating that the
the System API Reference. option number is not currently available.
column heading on the confirmation panel as will be shown as blanks even though there
it was on the action list panel. may be a value there.
Only the values for the input capable fields of
the extended list action entry will be displayed Example: List Actions
on the confirmation panel. All other columns
This example shows how the action options on a
display are defined.
UIM Source Results
:listact option=2
help='option/2' à ð
enter='CALL CHGPGM' Type choices, press Enter.
2=Change 4=Delete 5=Display
.2=Change
:listact option=4
help='option/4'
enter='CALL DLTPGM'
confirm=CONFDLT
.4=Delete
:listact option=5
help='option/5'
enter='CALL DSPPGM'
.5=Display
55──:LISTCOL──VAR=list-object-variable-name──MAXWIDTH=─┬─column-width─┬────────────────────5
└─'\'──────────┘
5──USAGE=─┬─OUT───┬───┬───────────────────────┬──┬───────────────────────┬─────────────────5
└─INOUT─┘ └─HELP=help-module-name─┘ └─COL=column-identifier─┘
5──┬───────────────────────┬──┬─────────────────────┬──┬──────────────────┬────────────────5
└─NAME=list-column-name─┘ └─JUSTIFY=─┬─LEFT──┬──┘ │ ┌─NO──┐ │
├─RIGHT─┤ └─EXTACT=─┴─YES─┴──┘
├─START─┤
└─END───┘
5──┬──────────────────────┬──┬───────────────────────────────┬─────────────────────────────5
└─PROMPT='action-text'─┘ └─DSPVALUE=dialog-variable-name─┘
5──┬─────────────────────────────────────┬──┬───────────────────┬──────────────────────────5
└─COLHEAD='dialog-variable-name-list'─┘ │ ┌─YES─┐ │
└─DISPLAY=─┴─NO──┴──┘
5──┬────────────────────┬──.──┬────────────────┬──────────────────────────────────────────5%
│ ┌─YES─┐ │ └─column-heading─┘
└─AUTOSKIP=─┴─NO──┴──┘
55──:LISTCOL──VAR=list-object-variable-name──MAXWIDTH=─┬─column-width─┬───┬───────────┬────5
└─'\'──────────┘ └─USAGE=OUT─┘
5──┬───────────────────────┬──┬─────────────────────┬──────────────────────────────────────5
└─COL=column-identifier─┘ └─JUSTIFY=─┬─LEFT──┬──┘
├─RIGHT─┤
├─START─┤
└─END───┘
5──┬─────────────────────────────────────┬──.──┬────────────────┬─────────────────────────5%
└─COLHEAD='dialog-variable-name-list'─┘ └─column-heading─┘
The list column (LISTCOL) tag defines a column size for a column heading is four characters.
that may belong to any of several list views. This Specification of a width longer than that
tag is allowed for display panels and print panels. defined in the class definition (CLASS) tag
It specifies the dialog variable, whether the field allows more room for the formatting of column
allows the user to enter data or is for output only, headings, but does not allow more data to be
the column width, and the column heading. entered into the field. Specification of a width
shorter than the class width on the CLASS tag
Required Attributes is allowed only for CHAR or IGC variables,
and is not allowed for input columns.
VAR=list-object-variable-name
If '*' is coded, the remainder of the area width
The name of the variable from the underlying
is used for the column, and values in that
list object to display in this column.
column can be truncated. Only one column
MAXWIDTH=column-width | '*' may have '*' coded. A warning message is
The maximum width of the column. The width put in the compiler listing if the column with '*'
may allow for translation of the column specified is not the last column of all views. A
heading into other languages. The minimum two- to five-character separator is maintained
between columns.
DSPVALUE='dialog-variable-name' DISPLAY=YES | NO
The dialog variable containing the current data Indicates whether or not the fields in the list
entered in the list entry which contains the column are visible when the panel is dis-
cursor. This attribute is allowed only for played. This attribute is allowed only for
display panels and when the PROMPT attribute display panels. YES indicates that the fields
is coded on this tag. This variable is updated in the list column are visible.
regardless of whether or not the variable pool NO indicates that the fields in the list column
is updated. The variable pool is updated are not visible. NO can only be specified for a
based on the VARUPD attribute of the key item column in the list when USAGE=INOUT is spec-
(KEYI) or pull-down field choice (PDFLDC) ified on this tag and ACTOR=NONE is specified
tag. This updating is independent of the on the LIST tag.
normal updating of the variable pool.
AUTOSKIP=YES | NO
The dialog variable specified must be defined Indicates whether or not the cursor should
on the CLASS tag as a CHAR or IGC variable automatically move to the next input field
whose length is the same as the width of the when data is entered in the last position of the
dialog variable specified on the VAR attribute of list column field. This attribute is allowed only
this tag. No translation processing or validity for display panels. YES is the default.
checking is performed for the value before it is
placed in this variable. Character set and YES indicates that the cursor automatically
code page conversion is performed for this moves to the next input field.
variable if the class of the variable named on NO indicates that the cursor does not auto-
the VAR attribute of this tag specifies that the matically move to the next input field. NO can
character set and code page conversion only be specified for a column in the list when
should be performed. USAGE=INOUT is specified on this tag and
ACTOR=NONE is specified on the LIST tag.
55──:LISTDEF──NAME=list-name──VARS='dialog-variable-list'────────────────────────────────5
5──┬─────────────────────────────┬──┬──────────────────────────┬─────────────────────────5
└─CHGVAR=dialog-variable-name─┘ └─MSGID=message-identifier─┘
5──┬───────────────────────────────┬──┬────────────────────────────────────┬─────────────5
└─MSGIDVAR=dialog-variable-name─┘ └─MSGF='qualified-message-file-name'─┘
5──┬──────────────────────────────┬──┬──────────────────────────────────────────┬────────5
└─PRTFLAG=dialog-variable-name─┘ └─EMPHASIS='dialog-variable-emphasis-list'─┘
5──┬──────────────────────────────────────┬──.──────────────────────────────────────────5%
└─PROTECT='dialog-variable-usage-list'─┘
The list definition (LISTDEF) tag defines UIM lists list area (LIST) tag. Only one column of a list
which are data structures maintained by the UIM. may be specified as an action column.
These lists contain the data for list areas pre-
sented on the display. UIM lists consist of a vari- Optional Attributes
able number of rows. Each row contains one or
more columns, and each column in the row con- CHGVAR=dialog-variable-name
tains a copy of one dialog variable value. These Specifies that any list entry values entered by
lists are manipulated by the program using the the user must be compared to values already
UIM application programming interfaces (APIs). in the list entry. This attribute also indicates
Lists may be shared among panels which contain where the comparison result should be stored.
list areas. The dialog variable specified must be one of
the variables listed on the VARS attribute of
this tag, and must be defined with a BASETYPE
Required Attributes
of CHAR 1 on the CLASS tag.
NAME=list-name
List values are compared using the internal
The name of the list object. This name must
form of each dialog variable rather than its
be unique within the panel group. For more
display form. If any values in the list entry are
information on the rules for naming, see
changed, the list value associated with the
“Name Syntax” on page A-4.
dialog variable specified on this attribute is set
VARS='dialog-variable-list' to '1'. If all the new list values are equal to
The list of up to 50 variables which make up the old list values, no special processing is
the columns of the list. All dialog variables in performed; the dialog variable specified for
this list must be previously defined using the this attribute is not changed.
variable definition (VAR) tag in this panel Note: The dialog variable specified on this
group. Not all of these variables need to be attribute is set to '1' each time the user
displayed in a view defined with the list view changes the list entry, scrolls the list, or uses
(LISTVIEW) tag. The variable names in the some other function key. The list value asso-
list are separated by blanks. ciated with the dialog variable specified on this
The UIM automatically determines what attribute is set to '1' twice if a value in the list
column is used for action list or selection list is changed, the list is scrolled, scrolled back
processing by identifying the variable specified again to the original position, and the list entry
on the VARS attribute and defined with a is changed back to its original value.
BASETYPE of ACTION on the class definition An application program can use the list value
(CLASS) tag. An action column is required for for the dialog variable specified on this attri-
each list view when an ACTOR or SELECT value bute to determine which list entries are
other than NONE is specified, or when changed by the user. The application is
SELECT=SINGLE or MULTI is specified on the responsible for setting and resetting the list
entry value to something other than '1'. It
does this by updating the list entry after the tag. The number of items in the list must be
input values are processed and before the list the same as the number of dialog variables
is redisplayed to make the comparison reli- specified on the VARS attribute. Only one
able. emphasis is allowed for each variable listed,
but a particular emphasis value may apply to
MSGID=message-identifier
more than one variable. A value of '*' should
The message identifier of a message that is
be specified to indicate that normal emphasis
displayed to the user when the UIM list is
should be used with the corresponding vari-
empty. If no message identifier is specified
able listed on the VARS attribute, and also used
with either the MSGID or MSGIDVAR attribute on
for list columns not displayed in any list view.
this tag, no message is displayed when the
list is empty. The MSGID and the MSGIDVAR The dialog variables specified on this attribute
attributes cannot both be used on the same cannot be one of the variables listed on the
LISTDEF tag. VARS attribute of this tag.
A value of '*' should be specified to indicate tag. The valid values for the dialog variables
that there is no override for the USAGE attribute specified on this attribute are as follows:
on the LISTCOL tag for the corresponding
'1' The variable use is output-only.
variable listed on the VARS attribute. A value
of '*' is also used for list columns not dis- '0' The use is controlled by the USAGE
played in any list view. attribute on the LISTCOL tag.
The dialog variables specified on this attribute Changing a list option field for an action list or
cannot be one of the variables listed on the selection list to output-only does not affect list
VARS attribute. processing. If the action field contains an
Each variable in the list must be defined with option number or selection value but is dis-
a BASETYPE of CHAR 1 on the CLASS tag. played as output-only, the option is processed.
When an entry is added to the list or an If a dialog variable listed in this attribute is not
existing entry is updated, the values for these specified or has a value specified other than
variables determine the protection whenever '1' or '0', the use is controlled by the USAGE
that entry is displayed. This attribute over- attribute of the LISTCOL tag.
rides the USAGE attribute from the LISTCOL
55──:LISTGRP──COL=column-identifier──HELP=help-module-name─────────────────────────────────5
5──┬─────────────────────────────┬──┬────────────────┬──.──┬───────────────┬───────────────5
└─NAME=list-column-group-name─┘ │ ┌─\─┐ │ └─group-heading─┘
└─COLSEP=─┴─N─┴──┘
5──:ELISTGRP.─────────────────────────────────────────────────────────────────────────────5%
55──:LISTGRP──COL=column-identifier──┬────────────────┬──.──┬───────────────┬──────────────5
│ ┌─\─┐ │ └─group-heading─┘
└─COLSEP=─┴─N─┴──┘
5──:ELISTGRP.─────────────────────────────────────────────────────────────────────────────5%
The list column group (LISTGRP) tag groups this list. This attribute is required for display
columns in a list area together under a single panels; it is not allowed for print panels. The
heading that applies to all the columns. This tag help module name may be a name imported
is allowed for display panels and print panels. from another panel group, but must follow the
Columns may be defined within the list area that rules for names outlined earlier in this chapter.
do not belong to any list column group. This tag For more information on the rules for names,
cannot be used in a list area if MAXHEAD=0 is spec- see “Name Syntax” on page A-4.
ified on the list area (LIST) tag for the area.
Results
Bottom
F3=Exit F4=Prompt F12=Cancel
á ñ
55──:LISTVIEW──COLS='column-identifier-list'─────────────────────────────────────────────5
5──┬───────────────────────────────────────┬──.─────────────────────────────────────────5%
│ ┌─1────────────────────────┐ │
└─LAYOUT=─┴─number-of-layout-columns─┴──┘
The list view (LISTVIEW) tag defines one of the Required Attribute
views of a list presented in a list area. This tag is
allowed for both display panels and print panels. COLS='column-identifier-list'
A list of column or column group identifiers
Multiple list views can be defined in an area and which are separated by blanks. This list iden-
can be changed using the CHGVIEW dialog tifies columns and groups that are part of this
command, which can be assigned to a function view.
key or to a pull-down choice. If there is more than All variables used in this view must be distinct.
one list view on the panel and the CHGVIEW
dialog command is performed, the list area with
the cursor in it changes views. Optional Attribute
LAYOUT=1 | number-of-layout-columns
The view may also be established in a program by
Indicates whether more than one set of
changing the value of the dialog variable specified
columns should be presented on the display
on the VIEW attribute on the list area (LIST) tag.
at one time. If the width of columns defined
Views are numbered consecutively from zero to
by the COLS attribute of this tag is small, it
one less than the number of LISTVIEW tags
may be possible to position more than one set
defined in this area. The first LISTVIEW tag for
of the columns on the display or page.
the list area defines view zero, the second
LISTVIEW tag defines view one, and so on for The format used for multiple-column layout
each LISTVIEW tag in the list area. divides the entire display or page width into
layout columns of equal size, with a separator
If the ACTOR attribute on the LIST tag has a value of at least three characters between layout
other than NONE, the action column of the list columns. All list columns specified on the
must appear in all views of the list area for the COLS attribute of this tag must fit within a
panel. If the SELECT attribute on the LIST tag has single layout column.
a value other than NONE or MULTI, the action
For all panels with WIDTH=132 on the display
column of the list must appear in all views of the
panel (PANEL) or print panel (PRTPNL) tags,
list area.
a value from 1 through 10 is allowed. For
panels with WIDTH less than 132, a value from
Although multiple views can be defined for a print
1 through 6 is allowed.
panel, only the view identified by the VIEW attribute
on the LIST tag is printed when the Print Panel
The following tables show the available column
(QUIPRTP) API is called. To print more than one
width and what positions are used for each layout
view, the QUIPRTP API must be called multiple
column, depending on the value of the LAYOUT
times, updating the view dialog variable between
attribute. The first table applies to all panels with
each call to QUIPRTP.
WIDTH=80 specified on the PANEL or PRTPNL
tags. The second table applies to panels with
WIDTH=132 specified.
Table A-12. Layout Values for Width=80. Layout column widths and positions for panels with WIDTH=80.
Layout Layout Layout 1 Layout 2 Layout 3 Layout 4 Layout 5 Layout 6
Width Column Column Column Column Column Column
Positions Positions Positions Positions Positions Positions
1 78 2-79
2 37 2-38 43-79
3 24 2-25 29-52 56-79
4 17 2-18 22-38 42-58 62-78
5 13 2-14 18-30 34-46 50-62 66-78
6 10 2-11 15-24 28-37 41-50 54-63 67-76
Table A-13. Layout Values for WIDTH=132. Layout column widths and positions for panels with WIDTH=132.
Layout Layout Layout 1 Layout 2 Layout 3 Layout 4 Layout 5 Layout 6
Width Column Column Column Column Column Column
Positions Positions Positions Positions Positions Positions
1 130 2-131
2 63 2-64 69-131
3 41 2-42 46-86 90-130
4 30 2-31 35-64 68-97 101-130
5 23 2-24 28-50 54-76 80-102 106-128
6 19 2-20 24-42 46-64 68-86 90-108 112-130
Table A-14. Layout Values for WIDTH=132. Layout column widths and positions for panels with WIDTH=132.
Layout Layout Width Layout 7 Layout 8 Layout 9 Layout 10
Column Column Column Column
Positions Positions Positions Positions
7 16 97-112
8 13 66-78 82-94
9 11 86-96 100-110 114-124
10 10 80-89 93-102 106-115 119-128
If a WIDTH of less than 80 or a width between 81 3. Divide the result of step 2 by the layout; do
and 131 is specified on the PANEL tag, the fol- not round up. This is the layout width.
lowing algorithm can be used to determine the
4. If the remainder from step 3 is greater than
layout width:
(layout-1), the separator between the layouts
1. Subtract 2 from the width of the panel. is 4. Otherwise, the separator space is 3.
2. Subtract 3*(layout-1) from the result of step 1.
This is the total separator space between the
layouts.
LP (List Part)
55──:LP.list-part-text──────────────────────────────────────────────────────────────────5%
55──:MBAR──NAME=menu-bar-name──┬───────────────────────┬──┬────────────────┬──.──────────5
└─HELP=help-module-name─┘ │ ┌─1─┐ │
└─MAXBARL─┼─2─┼──┘
└─3─┘
5──:EMBAR.──────────────────────────────────────────────────────────────────────────────5%
The menu bar (MBAR) tag defines a menu bar Table A-15. Tag Allowed Between the MBAR and
area of a panel. The menu bar appears as the EMBAR Tags.
topmost element in a panel and consists of one or Tag Name Order Page
more menu bar choices. When the user positions
MBARC 1 A-110
the cursor at a menu bar choice and requests the (Menu bar choice)
ENTER dialog command, the pull-down menu for
the selected menu bar choice is displayed below
the text for the menu bar choice. Required Attribute
The resulting pull-down menu contains a selection NAME=menu-bar-name
field which has one or more pull-down choices. The name assigned to the menu bar. For
The user is allowed to choose only one pull-down more information on the rules for naming, see
menu choice. Each selection field has one or “Name Syntax” on page A-4.
more pull-down menu choices.
Optional Attributes
All menu bars must be defined after any condi-
tional statements and before the key lists. HELP=help-module-name
The name of the help information explaining
When a menu bar is specified for a panel with a the purpose of the menu bar. The help
list action column, a slash (/) or country- module name may be a name imported from
designated selection character may be entered on another panel group, but must follow the rules
the list action column to indicate the elements the for names outlined earlier in this chapter. For
menu bar choice is to act against. The slashes more information on the rules for names, see
are processed in the same top-to-bottom pro- “Name Syntax” on page A-4.
cessing as in normal list action processing. The
MAXBARL=1 | 2 | 3
slash (/) is not allowed on the extended action
The maximum number of lines that can be
entry of an action list.
used for the descriptions of the menu bar.
From 1 to 3 lines can be specified; 1 is the
Other tags can be nested within the MBAR tag.
default. Only as many menu bar lines as
These tags are listed in the following table. This
needed up to the maximum number allowed
table defines the order in which the tags must
by MAXBARL are used. If all the menu bar
appear and specifies on what page more informa-
choices do not fit in the number of lines speci-
tion can be found for each tag.
fied, a compiler error results.
help='mbarpgm/file/display'
action='cmd DSPPGM PGM(&var2./&var1.)' The File pull-down is displayed as shown below.
actfor=list
.Display
:pdfldc option=6 à File Help
ð
-.-------------------.--------------------------------------------------------
help='mbarpgm/file/exit' : 2. Change : Work with Programs
: : System: SYSTEMð1
action=exit : 4. Delete : ress F1ð to select action.
: 5. Display :
varupd=no : 6. Exit F3 : y Text
:...................: LLLL Description text
.Exit PPPPPPPPP2 LLLLLLLLLL Description text
PPPPPPPPP3 LLLLLLLLLL Description text
:pdaccel.F3 PPPPPPPPP4 LLLLLLLLLL Description text
:epdfld.
:embarc. The Help pull-down is displayed as shown below.
.\
.\ Menu bar choice for the "Help" pull-down
:mbarc help='mbarpgm/help'
à File Help
ð
--------.------------------------.--------------------------------------------
: 1. Help for help... : with programs
.Help : 2. Extended help... : System: SYSTEMð1
Select : 3. Keys help... : select action.
:pdfld. : 4. Help index... :
Opt Pr : 5. About... :
:pdfldc option=1 PP :........................: ption text
PPPPPPPPP2 LLLLLLLLLL Description text
help='mbarpgm/help/helphelp' PPPPPPPPP3 LLLLLLLLLL Description text
PPPPPPPPP4 LLLLLLLLLL Description text
action=helphelp
varupd=no
.Help for help... When F10 (ACTIONS) is pressed, the cursor is
:pdfldc option=2 positioned in the space before the first menu bar
help='mbarpgm/help/help' choice.
action=exthelp
varupd=no When a menu bar choice is selected, the cursor is
.Extended help... located at the pull-down field and the tab key
:pdfldc option=3 moves to the first unselected menu bar choice.
help='mbarpgm/help/keyshelp' Repeated pressing of the tab key moves the
action=keyshelp cursor through the menu bar area and then back
varupd=no to the pull-down menu.
55──:MBARC──HELP=help-module-name──.──menu-bar-choice-text──:EMBARC.────────────────────5%
The menu bar choice (MBARC) tag defines one for names outlined earlier in this chapter. For
choice within a menu bar. The end of the menu more information on the rules for names, see
bar choice must be indicated with an EMBARC “Name Syntax” on page A-4.
tag.
55──:MENU──DEPTH=─┬─area-depth─┬───┬────────────────────┬──┬──────────────────┬──.───────5
└─'\'────────┘ │ ┌─SPACE─┐ │ │ ┌─NO──┐ │
└─BOTSEP=─┼─NONE──┼──┘ └─SCROLL=─┴─YES─┴──┘
└─RULE──┘
5──┬────────────┬──:EMENU.──────────────────────────────────────────────────────────────5%
└─area-title─┘
The menu area (MENU) tag defines a menu area. Table A-17. Tags Allowed Between the MENU and
This tag is allowed only for display panels. The EMENU Tags
end of the menu area must have a EMENU tag. Tag Name Order Use Page
MENUGRP 3 D A-114
The menu area is included in the panel with all the
(Menu column
other areas that are defined on the panel. Only group)
one menu area may be present on any panel.
MENUI 3 D A-115
Either the command line (CMDLINE) tag or the (Menu item)
option line (OPTLINE) tag must be specified for a BOTINST 4 D A-10
menu panel. The user selects a menu option by (Bottom instruc-
entering the option number on the command line tion line)
or option line.
:epanel. á ñ
55──:MENUGRP──┬─────────────────────┬──.──┬───────────────┬──:EMENUGRP.─────────────────5%
└─COND=condition-name─┘ └─group=heading─┘
The menu group (MENUGRP) tag groups menu number of three cannot precede a tag with an
items of a menu area together and supplies a order number of one or two.
heading for the group. This tag is allowed only for
display panels. Table A-18. Tag Allowed Between the MENUGRP
and EMENUGRP Tags
If the number of lines required to display the first Tag Name Order Use Page
two items of the menu group exceeds the number
MENUI 1 D A-115
of lines remaining in the current page, the entire (Menu item)
group is forced to the next page. When all items
in the menu group are not completely displayed
on one page, the group is continued onto as many Optional Attribute
pages as required to display all items.
COND=condition-name
Other tags can be nested within the MENUGRP The group is displayed and active on the
tag. These tags are listed in the following table. panel only if the condition specified is true. If
The table defines the order in which the tags must the condition is false, the entire group is not
appear, indicates which tags can be used in shown. The condition must be defined in the
display panels only, print panels only, or both panel group prolog with the condition definition
(specified by a D, P, or B, respectively), and spec- (COND) tag.
ifies on which page more information can be found
for each tag. Optional Text
When more than one tag is listed with the same group-heading
order number, all tags of that number can be The heading placed above the menu items of
mixed in any order. However, a tag with a higher the group. The text must appear on the same
order number cannot precede a tag with a lower or next line as the tag and can only contain
order number. For example, a tag with an order the reverse text (RT) tag. The group heading
always appears on one display line beginning
in column four.
55──:MENUI or MI──HELP=help-module-name──OPTION=option-number──ACTION='action-text'──────5
5──┬─────────────────────┬──┬─────────────────────┬──┬──────────────────────┬────────────5
└─NAME=menu-item-name─┘ └─COND=condition-name─┘ └─AVAIL=condition-name─┘
5──┬─────────────────────────────┬──┬─────────────────────────────────────┬──────────────5
└─AVLMSGID=message-identifier─┘ └─AVLMSGF=qualified-message-file-name─┘
5──┬───────────────────────┬──┬───────────────────────────┬──.───────────────────────────5
└─MARKER=condition-name─┘ └─ITEM=dialog-variable-name─┘
5──┬────────────────────────────┬───────────────────────────────────────────────────────5%
└─menu-item-description-text─┘
AVLMSGID=message-identifier ITEM=dialog-variable-name
The message identifier of the message dis- The name of a dialog variable containing the
played when the pull-down choice is selected text for the menu item description when the
but is not available as specified by the AVAIL panel is displayed. The dialog variable may
attribute of this tag. This attribute is allowed be defined with a BASETYPE of CHAR, IGC, or
only when the AVAIL attribute is specified. BIN on the class definition (CLASS) tag. The
declared length of the dialog variable must be
If this attribute is not specified, the UIM dis-
no longer than what fits on one line of the
plays a default message stating that the
panel, starting in column 10. Allowance must
choice is currently not available.
be made if there is an application formatted
AVLMSGF='qualified-message-file-name' area.
The message file name containing the
If this attribute is used, no menu-item-
message identifier. This attribute is allowed
description-text can be specified after the
only when the AVLMSGID attribute is specified
period for this tag.
on this tag. If the DFTMSGF attribute is not
specified on the panel group (PNLGRP) tag,
and if the AVLMSGID attribute is specified on Optional Text
this tag, then this attribute must be specified. menu-item-description-text
MARKER=condition-name The descriptive text accompanying the option
The name of a condition indicating whether or and shown on the menu. The text may
not the menu item is marked with a greater appear on more than one line in the source.
than sign (>). The marker is displayed only if The text can contain only the reverse text
the condition specified is true. The condition (RT) tag, and cannot exceed 70 characters in
must be defined in the panel group prolog with length.
the COND tag. The item description text begins in column 10
When the condition is true, a greater than sign of the panel. The option number, a period,
is displayed to the left of the option number of and one blank appear immediately before the
the menu item. When the condition is false, item description text. The item number begins
the line is blank before the option number of in column 7, 6, or 5, depending on whether
the menu item. If this attribute is omitted, no the option number has 1, 2, or 3 digits. The
marker appears on the menu item. text is formatted onto additional lines as nec-
essary, and the additional lines are not
indented two spaces to fit on the panel.
NT or NOTE (Note)
The note (NT) tag identifies a single- or multiple- Table A-19. Tags Allowed Between the NOTE and
paragraph note. This tag must have a matching ENOTE Tags
end tag. You can also use :NOTE and :ENOTE in Tag Name Order Use Page
place of the :NT and :ENT tags. These tags are
P 1 B A-121
only allowed in information areas and help areas. (Paragraph)
Notes cannot be nested.
PC 1 B A-131
Notes can occur anywhere in text that a para- (Paragraph con-
tinuation)
graph is allowed. They can contain any basic text
items, but cannot contain headings, figures, lines,
examples, or any type of list. If this tag has not Optional Text
been ended when a heading tag is encountered,
the note ends and a warning message is issued note-text
by the compiler. Although the text of the note is not required,
the tag has no meaning when text is not spec-
The note is an implied paragraph. It is formatted ified.
as a block and indented 6 spaces from the current
margin. The word Note, formatted in highlight Example: Using a Note
phrase 2 (HP2) and followed by a colon, begins
the paragraph. There are two spaces between The note tag makes important information stand
the note tag and the text if either the note tag or out in a paragraph, as in this example.
the text are single-byte characters. There are four
spaces between the note tag and the text if both
UIM Source
are double-byte characters.
:P.Here's a paragraph.
A note is aligned with the text of a list item when :NT.
used within a list. Here's the first paragraph
of the note.
Other tags can be nested within the NOTE tag. :P.
These tags are listed in the following table. The Here's the second paragraph
of the note.
table defines the order in which the tags must
:ENT.
appear, indicates which tags can be used in
:P.Here's a paragraph.
display panels only, print panels only, or both
(specified by a D, P, or B, respectively), and spec-
ifies on which page more information can be found Results
for each tag.
Here's a paragraph.
When more than one tag is listed with the same
Note: Here's the first paragraph of the
order number, all tags of that number can be
note.
mixed in any order. However, a tag with a higher
order number cannot precede a tag with a lower
Here's the second paragraph of the note.
order number. For example, a tag with an order
number of three cannot precede a tag with an Here's a paragraph.
order number of one or two.
OL (Ordered List)
┌──
───────────────┐
55──:OL ─┬─────────┬─.───6─:LI.item-text─┴──:EOL.────────────────────────────────────────5%
└─COMPACT─┘
The ordered list (OL) tag identifies an ordered list ifies on which page more information can be found
of items. It requires a matching end tag. These for each tag.
tags are only allowed in information areas and
help areas. When more than one tag is listed with the same
order number, all tags of that number can be
Ordered lists can occur anywhere in text and can mixed in any order. However, a tag with a higher
be nested within other lists. order number cannot precede a tag with a lower
order number. For example, a tag with an order
Note: Care should be taken when using unfor-
number of three cannot precede a tag with an
matted lines (LINES), figure (FIG), and example
order number of one or two.
(XMP) tags within ordered lists, because text that
does not fit on one line wraps to column one of Table A-20. Tags Allowed Between the OL and EOL
the next line. Lines and figures start at the current Tags
left margin, and examples are indented four
Tag Name Order Use Page
spaces from the current left margin. The current
left margin changes when nested lists are for- FIG 1 B A-59
matted. If online help information has the LINES, (Figure)
FIG, or XMP tag imbedded at various locations, LINES 1 B A-77
including within lists, it may not look the same (Unformatted
each time. lines)
XMP 1 B A-171
The OL tag is formatted as a hanging, indented (Example)
list, with the item identifier (1,2,...a,b,...) at position
NT 1 B A-117
four relative to the left margin. The text begins at
(Note)
position eight relative to the left margin.
P 1 B A-121
Ordered lists are identified in a formatted docu- (Paragraph)
ment by sequential numbers or letters, depending PC 1 B A-131
on the definition for each level. The levels of defi- (Paragraph con-
nition are as follows: tinuation)
55──:OPTLINE──┬───────────────────────┬──.──┬──────────────────┬────────────────────────5%
└─NAME=option-line-name─┘ └─instruction-text─┘
The option line (OPTLINE) tag specifies that a Window (QUIADDPW) API to position a
panel has a menu option field as opposed to a window near the option line. For more infor-
command line which allows commands or options mation on the rules for naming, see “Name
to be entered. This tag is allowed only for display Syntax” on page A-4.
panels. The OPTLINE tag can be used only on a
panel that has a menu area. Optional Text
Any text associated with this tag is used as an instruction-text
instruction line, appearing immediately above the The text appearing as instructions for the
option field on the panel. option line. This text is an implied paragraph.
When the display is formatted, any text that
This tag must be the final tag in a panel, placed
does not fit onto one display line is formatted
just before the EPANEL tag. The command line
on the following blank lines and indented two
(CMDLINE) tag and the OPTLINE tag are mutually
columns. The text can be a maximum of 255
exclusive.
characters and can contain only the reverse
text (RT) tag. If no text is provided, no
Optional Attribute instruction line is allocated or displayed above
NAME=option-line-name the option line.
The name associated with the option line.
This name can be used with the Add Pop-Up
P (Paragraph)
55──:P.paragraph-text───────────────────────────────────────────────────────────────────5%
55──:PANEL──NAME=panel-name──HELP=help-module-name──KEYL=key-list-name───────────────────5
5──┬──────────────────────────────┬──┬────────────────────────────┬──────────────────────5
└─PANELID=dialog-variable-name─┘ └─TITLE=dialog-variable-name─┘
5──┬─────────────────────────┬──┬─────────────────────────┬──┬────────────────────┬──────5
│ ┌─8ð──────────┐ │ │ ┌─FIT─────────┐ │ └─MBAR=menu-bar-name─┘
└─WIDTH=─┴─panel-width─┴──┘ └─DEPTH=─┴─panel-depth─┴──┘
5──┬──────────────┬──┬───────────────────────┬──┬───────────────────────────┬────────────5
│ ┌─1─┐ │ │ ┌─SYSNAM───┐ │ └─DATE=dialog-variable-name─┘
└─MSGL=─┼─2─┼──┘ └─TOPSEP=─┼─SPACE────┼──┘
├─3─┤ ├─RULE─────┤
└─4─┘ ├─DATETIME─┤
└─NONE─────┘
5──┬───────────────────────────┬──┬─────────────────────┬──┬─────────────────────┬───────5
└─TIME=dialog-variable-name─┘ │ ┌─PNLGRP─┐ │ └─ENTER='action-text'─┘
└─ENBGUI=─┼─NO─────┼──┘
└─YES────┘
5──┬──────────────────────┬──┬──────────────────────────────────┬────────────────────────5
└─SELECT='action-text'─┘ └─USREXIT='CALL program-reference'─┘
5──┬─────────────────────┬──┬─────────────────────────────┬──────────────────────────────5
└─TT=truth-table-name─┘ └─CSRVAR=dialog-variable-name─┘
5──┬─────────────────────────────┬──┬─────────────────────────────┬──────────────────────5
└─CSRPOS=dialog-variable-name─┘ └─CSRLST=dialog-variable-name─┘
5──┬─────────────────────────────┬──┬──────────────────────────────┬──.──────────────────5
└─CSREID=dialog-variable-name─┘ └─CSRNAME=dialog-variable-name─┘
5──┬──────────────────┬──:EPANEL.───────────────────────────────────────────────────────5%
└─panel-title-text─┘
The display panel (PANEL) tag is opened using Table A-21. Tags Allowed Between the PANEL and
the PANEL tag and closed using the EPANEL tag. EPANEL Tag
It contains tags to define one or more panel area Tag Name Order Use Page
definitions.
DATA 1 D A-31
(Data presenta-
Other tags can be nested within the PANEL tag. tion area)
These tags are listed in the following table. The
table defines the order in which the tags must INFO 1 D A-68
(Information area)
appear, indicates which tags can be used in
display panels only, print panels only, or both LIST 1 D A-82
(specified by a D, P, or B, respectively), and spec- (List area)
ifies on which page more information can be found MENU 1 D A-111
for each tag. (Menu area)
TEXT 1 D A-154
When more than one tag is listed with the same (Text area)
order number, all tags of that number can be
CMDLINE 2 D A-26
mixed in any order. However, a tag with a higher
(Command line)
order number cannot precede a tag with a lower
order number. For example, a tag with an order OPTLINE 2 D A-120
number of three cannot precede a tag with an (Option line)
order number of one or two.
Required Attributes
TIME=dialog-variable-name
When ENBGUI=NO is specified, the UIM does
The name of a dialog variable containing a
not include the extra information in the data
time displayed on the top separator for the
stream.
panel. This attribute is required when
TOPSEP=DATETIME is specified. The dialog ENTER='action-text'
variable must be defined with The default enter action for the panel, occur-
BASETYPE='TIME' on the CLASS tag. ring when the Enter key is pressed and no
UIM-defined action, such as menu or action
ENBGUI=PNLGRP | NO | YES
list processing, is necessary. If this attribute
Specifies whether the panel is enabled for
is omitted, the panel is redisplayed to the user
conversion to a graphical user interface (GUI)
with no message or error indication. The valid
by a client program.
forms of action text are:
'CALL program-reference'
For a description of the interface between the user presses an inactive function key. If
the UIM and the program for a function the user presses a function key defined with
key CALL, see the System API Reference. VARUPD=NO on the KEYI tag, the values
'CMD command-string' entered on the panel by the user are not avail-
Any dialog variable name in the command able to this program. They are only stored
string must be preceded by an ampersand internally in the UIM.
to denote variable substitution.
For a description of the CALL dialog
'MSG message-identifier [ qualified-
command, see Appendix B, “UIM Dialog
message-file-name ]'
Commands” on page B-1.
'RETURN positive-integer'
For a description of the interface between the
For a description of each of these dialog com- UIM and the general exit program, see the
mands, see Appendix B, “UIM Dialog System API Reference.
Commands” on page B-1.
TT=truth-table-name
SELECT='action-text' The name of a truth table defined by the truth
The default selection action for the panel, table (TT) tag, specifying what combinations
occurring when items are selected in a of truth values may occur for conditions
selection list or an action list and no action is defined by condition definition (COND) tags
selected from the menu bar. If this attribute is while the application is running.
not specified, the panel is displayed to the
user with no message or error indication. The The table specified may contain any subset or
valid forms of action text are: superset of the conditions referred to by tags
in the panel definition. Only the truth value
'ACTIONS' combinations specified in the table, aug-
'MSG message-identifier [ qualified- mented by worst-case assumptions for any
message-file-name ]' truth values not specified in the table, are con-
'PULLDOWN' sidered in evaluating whether or not the panel
'RETURN positive-integer' definition is usable. The table should not
exclude any truth value combination that could
The PULLDOWN and ACTIONS dialog com-
occur when the panel is displayed. If a valid
mands cannot be specified if the MBAR attribute
truth value combination is omitted, a panel
is not specified on this tag.
group object may create without error and
USREXIT='CALL program-reference' have undesirable results when panels are dis-
A general exit program called each time the played. For example, the UIM may fail to
user presses a function key or the Enter key show panel elements that are conditioned-on
after dialog variables and list entries are for display. For more information about truth
updated and before any action specified on tables, see “TT (Truth Table)” on page A-162.
the key list item (KEYI), list action (LISTACT),
If this attribute is omitted, all combinations of
pull-down field choice (PDFLDC), or menu
truth values are considered possible. This
item (MENUI) tag is performed.
causes the tag language compiler to make
The program is passed parameters that worst-case assumptions for all conditions in
include what function is requested by the user. evaluating whether or not the panel definition
The exit program may do application-defined is valid.
validity checks, change the display position
CSRVAR=dialog-variable-name
attribute of lists that appear on the screen, or
This attribute must name a CHAR 10 dialog
both. If the exit program sends a CPF6A02
variable which is used by the UIM to contain
status message to the UIM, the UIM redis-
either the name of the dialog variable or the
plays the panel without performing the normal
name of the command line where the cursor is
action processing.
or will be positioned.
The panel is redisplayed without calling this
The UIM updates this variable after the panel
exit program if validity check errors associated
is displayed and before the general exit
with the CLASS, validity checking (CHECK),
program or any action routines are called. It
or translation list (TL) tags are detected, or if
contains the name of the dialog variable asso- identifies a position that is not valid for the
ciated with the field, or the name of the display field, the UIM default cursor posi-
command line (if named) where the cursor is tioning is used and no error is reported.
positioned on exit from the panel. If the
CSRLST=dialog-variable-name
cursor is not in a field or on a named
This attribute must name a CHAR 10 dialog
command line, the CSRVAR dialog variable is
variable used by the UIM to contain the name
set to blanks.
of the list where the cursor is or will be posi-
The Display Panel (QUIDSPP) API supports tioned.
an option that allows the application program
The UIM updates this variable after the panel
to control the initial cursor position by setting
is displayed, before the panel exit program or
the dialog variables associated with the
any action routines are called. It contains the
CSRVAR, CSRPOS, CSRLST, and CSREID panel
name of the list associated with the list area
attributes before the panel is displayed. If the
where the cursor is positioned on exit from the
CSRVAR dialog variable does not contain the
panel. If the cursor is not in a list area, the
name of a dialog variable or command line
dialog variable is set to blanks.
displayed on the panel, the UIM default cursor
positioning is used and no error is reported. The QUIDSPP API supports an option that
allows the using program to control initial
If a data item is defined using data item
cursor position by setting the dialog variables
extenders, the CSRVAR attribute contains the
associated with the CSRVAR, CSRPOS, CSRLST,
name of the extender dialog variable if the
and CSREID attributes of this tag before the
cursor is positioned within the extender field.
panel is displayed. If the CSRLST attribute is
If the cursor is positioned between fields,
not blank and does not contain the name of a
CSRVAR is set to the name of the dialog vari-
list displayed on the panel, the UIM default
able specified on the VAR attribute of the data
cursor positioning is used and no error is
presentation area (DATA) tag, and the
reported.
CSRPOS dialog variable is set to zero.
CSREID=dialog-variable-name
CSRPOS=dialog-variable-name
This attribute must name a CHAR 4 dialog
This attribute must name a BIN 15 dialog vari-
variable used by the UIM to contain the list
able used by the UIM to contain the character
entry handle within the list identified by the
position within the field identified by the
CSRLST attribute where the cursor is or will be
CSRVAR attribute on this tag where the cursor is
positioned.
or will be positioned.
The UIM updates this variable after the panel
The UIM updates this variable after the panel
is displayed, before the panel exit program or
is displayed, before the panel exit program or
any action routines are called. It contains the
any action routines are called. It contains the
list entry identifier where the cursor was posi-
position within a field where the cursor is posi-
tioned on exit from the panel. If the cursor
tioned on exit from the panel. If the cursor is
was not in any list entry, the CSREID dialog
not in a field, the dialog variable is set to zero.
variable is set to X'00'. If the cursor was
If the cursor is positioned in a text area asso-
positioned in a text area associated with a list
ciated with the field, such as a prompt label or
column, such as a column heading, the
column heading for a list area, the CSRVAR
CSRLST attribute contains the name of the cor-
attribute contains the name of the dialog vari-
responding list and the CSREID dialog vari-
able for the corresponding data item or list
able is set to X'00'.
column, and the CSRPOS dialog variable is
set to zero. The QUIDSPP API supports an option that
allows the using program to control the initial
The QUIDSPP API supports an option which
cursor position by setting the dialog variables
allows the using program to control the initial
associated with the CSRVAR, CSRPOS, CSRLST,
cursor position by setting the dialog variables
and CSREID attributes of this tag before the
associated with the CSRVAR, CSRPOS, CSRLST,
panel is displayed. If the CSREID attribute
and CSREID attributes on this tag before the
identifies an unusable position that does not
panel is displayed. If the CSRPOS attribute
specify a list entry displayed on the panel, the
UIM default cursor positioning is used and no than 55 bytes long and is required unless the
error is reported. TITLE attribute is specified on this tag.
CSRNAME=dialog-variable-name
This attribute must name a CHAR 10 dialog Example: Panel Definition
variable used by the UIM to contain the name
of the item where the cursor is positioned. This example defines a panel and sets up the ele-
ments used within the panel.
The UIM updates this variable after the panel
is displayed, before the panel exit program or
UIM Source
any action routines are called. It contains the
name of the item where the cursor is posi- :panel name=main
tioned on exit from the panel. If the cursor help=hmain
was not on any item, the CSRNAME dialog panelid=zmenu
keyl=small
variable is set to blanks.
.My Main Menu
The value of this variable may be used to :menu depth='\'.
position pop-up windows adjacent to a field :topinst.Select one of the following:
using the Add Pop-Up Window (QUIADDPW) :menui help=MNUSER option=1
API. action='CMD MENU X'
.Display menu X
:menui help=MNSYS
Optional Text option=2
action='CMD MENU SYSOPR'
panel-title-text
.System operations
The title used on this panel. The text must
:menui help=MNOFF
appear on the same or next line as the tag. option=9ð
The text cannot contain other tags, and is action='CMD SIGNOFF'
limited in length based on the width of the .Sign off
panel. The panel-title-text may be no more :emenu.
:cmdline size=long.Selection or command
:epanel.
Results à ð
MAIN My Main Menu
System: SYSTEMð1
Select one of the following:
1. Display menu X
2. System operations
Selection or command
===> __________________________________________________________________________
_______________________________________________________________________________
F3=Exit F4=Prompt F9=Retrieve F12=Cancel
á ñ
┌──
─────────────────────────────────────┐
55──:PARML.───6─:PT.parameter-term──:PD.description─┴──:EPARML.──────────────────────────5%
The parameter list (PARML) tag identifies param- Table A-23. Tags Allowed Between the PARML and
eter terms and descriptions. These tags are only EPARML Tags
allowed in information areas and help areas. This Tag Name Order Use Page
tag requires a matching end tag. The terms
FIG 1 B A-59
defined and their definitions are identified by the (Figure)
parameter term (PT) tag and the parameter defi-
nition (PD) tag, respectively. LINES 1 B A-77
(Unformatted
Note: Care should be taken when using unfor- lines)
matted lines (LINES), figure (FIG), and example XMP 1 B A-171
(XMP) tags within parameter lists because text (Example)
that does not fit on one line wraps to column one
NT 1 B A-117
of the next line. Lines and figures start at the
(Note)
current left margin, and examples are indented
four spaces from the current left margin. The P 1 B A-121
current left margin changes when nested lists are (Paragraph)
formatted. If there is online help information con- PC 1 B A-131
taining lines, figures, or examples imbedded at (Paragraph con-
various locations, including within lists, it may not tinuation)
look the same each time. LP 1 B A-107
(List part)
Parameter lists can occur anywhere in text; they
OL 1 B A-118
can be nested within other lists, and other lists (Ordered list)
can be nested within parameter lists. Two PT or
SL 1 B A-152
two PD tags cannot be used consecutively.
(Simple list)
Nested PARML tags increase the current left UL 1 B A-164
margin by four. (Unordered list)
PARML 1 B A-129
Other tags can be nested within the PARML tag. (Parameter list)
These tags are listed in the following table. The
DL 1 B A-57
table defines the order in which the tags must (Definition list)
appear, indicates which tags can be used in
display panels only, print panels only, or both
(specified by a D, P, or B, respectively), and spec- Required Tags
ifies on which page more information can be found
for each tag. PT.parameter-term
The parameter term. The term formats in
When more than one tag is listed with the same highlight phrase 2 (HP2) and can contain the
order number, all tags of that number can be programming keyword (PK) or programming
mixed in any order. However, a tag with a higher variable (PV) tags.
order number cannot precede a tag with a lower The term appears on a line by itself, starting
order number. For example, a tag with an order at position four relative to the current left
number of three cannot precede a tag with an margin.
order number of one or two.
PD.parameter-description
The description of the parameter. It can also
contain the PK and PV tags.
Results
TERM
This is a description of the term. Term
is a programming keyword.
DEFAULT
This is a sample default parameter.
variable
This is a parameter variable.
PC (Paragraph Continuation)
55──:PC.paragraph-continuation-text─────────────────────────────────────────────────────5%
55──:PDACCEL──.──accelerator-text───────────────────────────────────────────────────────5%
55──:PDFLD──┬───────────────────────────┬──.──:EPDFLD.──────────────────────────────────5%
└─NAME=pull-down-field-name─┘
The pull-down field (PDFLD) tag defines a When more than one tag is listed with the same
selection field within the menu bar pull-down. A order number, all tags of that number can be
pull-down field consists of one or more pull-down mixed in any order. However, a tag with a higher
choices. The pull-down fields are formatted order number cannot precede a tag with a lower
according to the IBM Systems Application Archi- order number. For example, a tag with an order
tecture (SAA) basic interface. number of three cannot precede a tag with an
order number of one or two.
A single pull-down field can be defined for one
menu bar choice between the menu bar choice Table A-24. Tags Allowed Between the PDFLD and
(MBARC) and the EMBARC tags. The largest EPDFLD Tags
option number allowed for a pull-down choice is Tag Name Order Use Page
99. The number of pull-down choices allowed to
PDACCEL 1 D A-132
be specified between the PDFLD tag and the (Pull-down choice
EPDFLD tag is determined by how many choices accelerator)
fit on the screen, based on conditioning. The
PDFLDC 1 D A-134
maximum number of pull-down choices active at
(Pull-down field
one time is determined by what fits on a screen. choice)
55──:PDFLDC──OPTION=option-number──HELP=help-module-name──ACTION='action-text'───────────5
5──┬────────────────────┬──┬─────────────────────────────┬───────────────────────────────5
│ ┌─PANEL─┐ │ └─CONFIRM=internal-panel-name─┘
└─ACTFOR=─┴─LIST──┴──┘
5──┬──────────────────────────────────┬──┬──────────────────┬────────────────────────────5
└─USREXIT='CALL program-reference'─┘ └─VARUPD=─┬─YES─┬──┘
└─NO──┘
5──┬─────────────────────┬──┬──────────────────────┬──┬─────────────────────────────┬────5
└─COND=condition-name─┘ └─AVAIL=condition-name─┘ └─AVLMSGID=message-identifier─┘
5──┬───────────────────────────────────────┬──┬─────────────────────────────┬──.─────────5
└─AVLMSGF='qualified-message-file-name'─┘ └─CHOICE=dialog-variable-name─┘
5──┬───────────────────────┬────────────────────────────────────────────────────────────5%
└─pull-down-choice-text─┘
The pull-down field choice (PDFLDC) tag defines choices. If the cursor is in the entry field and
one choice within a pull-down field. A pull-down a valid choice has been entered when help is
field consists of one or more pull-down choices. requested, the help for that choice is dis-
played.
Required Attributes ACTION='action-text'
OPTION=option-number The action occurring when the pull-down
The number assigned to this option. Option choice is selected.
numbers are integers in the range of 1
through 99. Table A-25. Valid Action Text for ACTION Values
If LIST is specified, the pull-down choice per- If NO is specified, the action is performed
forms actions against items in a selection list immediately and no variable pool updating
or in an action list. occurs.
When LIST is specified on a pull-down choice
and if the user has not selected a list to be Dialog Command VARUPD Values
processed, the pull-down choice is displayed CALL YES | NO
with an asterisk (*) overlaying the option CHGVIEW YES
number to indicate that the pull-down choice is CMD YES | NO
not available. CMDLINE NO
DSPHELP NO
CONFIRM=internal-panel-name EXIT NO | YES
The name of the confirmation panel displayed EXTHELP NO
before the action is performed. This attribute HELPHELP NO
is allowed only when ACTFOR=LIST and KEYSHELP NO
HELPIDX NO
ACTION=CALL or ACTION=CMD is specified on
MENU YES
this tag. The confirmation panel must give the RETRIEVE NO
user the option to confirm or not confirm the RETURN YES | NO
action. If the action is confirmed, the appro-
priate actions from this tag are performed. If Note: The default value is based on the
the action is not confirmed, none of those ACTION attribute. The first value is the default
actions are performed. value.
tag. If this attribute is not specified, the UIM when BIDI=LTR or when BIDI=RTL is speci-
displays a default message stating that the fied on the PNLGRP tag.
choice is currently not available.
If a general exit program is defined, it should tion panels are used within a UIM application,
avoid making changes to the list or condition they can share the same list.
values that affect the redisplay of the original
Most of the online help information for the
panel.
action list panel can be used for the confirma-
The list used on the confirmation panel should tion panel, but separate help information
not be used on anything but a confirmation should be provided for the action column and
panel, because the UIM deletes and changes for the extended panel help.
the contents of that list. If multiple confirma-
PK (Programming Keyword)
55──:PK──┬─────┬──.──programming-keyword-text──:EPK.────────────────────────────────────5%
└─DEF─┘
The programming keyword (PK) tag identifies a text associated with it to be displayed with the
programming keyword. This tag is only allowed in same emphasis.
information areas and help areas. It requires a
matching end tag. Optional Attribute
A programming keyword can occur anywhere in DEF
text. It helps explain the elements of program- Specifies that the programming keyword is a
ming syntax and is frequently used within param- default value. The programming keyword
eter lists. For more information on parameter lists, formats in highlight phrase 2 (HP2) unless the
see “PARML (Parameter List)” on page A-129, DEF attribute is specified. If the DEF attribute is
specified, the programming keyword formats
The PK and EPK tag phrase must be specified on as highlight phrase 3 (HP3).
word boundaries. If the two characters imme-
diately following the EPK tag are a punctuation
mark and a blank, the UIM automatically extends
Required Text
the emphasis attribute to include the punctuation programming-keyword-text
mark. This allows the punctuation mark and the Specifies the programming keyword.
55──:PNLGRP──┬──────────────────────────────┬──┬───────────────────────────────┬─────────5
└─SCHIDX=qualified-object-name─┘ └─HLPSHELF=─┬─LIST───────────┬──┘
└─bookshelf-name─┘
5──┬──────────────────┬──┬────────────────────┬──────────────────────────────────────────5
│ ┌─NO──┐ │ │ ┌─SBCS─┐ │
└─ENBGUI=─┴─YES─┴──┘ └─TXTMODE=─┴─DBCS─┴──┘
5──┬────────────────────────────────────┬──┬─────────────────┬───────────────────────────5
└─TXTCHRID='character-set code-page'─┘ │ ┌─NONE─┐ │
└─BIDI=─┼─LTR──┼──┘
└─RTL──┘
5──┬───────────────────────┬──┬─────────────────────────────────────┬────────────────────5
│ ┌─ARABIC─┐ │ └─DFTMSGF=qualified-message-file-name─┘
└─NBRSHAPE=─┴─HINDI──┴──┘
5──┬───────────────────────────────────────┬──.──:EPNLGRP.──────────────────────────────5%
└─SUBMSGF='qualified-message-file-name'─┘
The panel group (PNLGRP) tag begins the defi- Table A-26. Tags Allowed Between the PNLGRP and
nition of a panel group. Only one PNLGRP tag is EPNLGRP Tags
allowed and a matching EPNLGRP tag is Tag Name Order Page
required.
VARRCD 5 A-169
(Variable record defi-
Other tags can be nested within the PNLGRP tag. nition)
These tags are listed in the following table. This
table defines the order in which the tags must LISTDEF 6 A-100
(List definition)
appear and specifies on which page more infor-
mation can be found for each tag. COND 7 A-27
(Condition definition)
When more than one tag is listed with the same TT 8 A-162
order number, all tags of that number can be (Truth table)
mixed in any order. However, a tag with a higher
MBAR 9 A-108
order number cannot precede a tag with a lower (Menu bar)
order number. For example, a tag with an order
KEYL 10 A-76
number of three cannot precede a tag with an
(Key list)
order number of one or two.
PANEL 11 A-122
Table A-26. Tags Allowed Between the PNLGRP and (Display panel)
EPNLGRP Tags PRTHEAD 11 A-142
Tag Name Order Page (Print head panel)
COPYR 1 A-30 PRTPNL 11 A-146
(Copyright) (Print panel)
ISCHSYN any A-72 HELP 11 A-60
(Index search synonym) (Help module)
IMPORT 2 A-67
(Import)
Optional Attributes
CLASS 3 A-14
(Class definition) SCHIDX=qualified-object-name
The index search object used when the index
VAR 4 A-166
search function is requested from the help
(Variable definition)
modules for panels defined in this panel
group. If SCHIDX is not specified, the index
search function is not accessible when help present DBCS help information on a device
modules are displayed for panels in this panel that does not support DBCS results in an
group. This attribute has no effect on help exception.
modules defined in the panel group unless
TXTCHRID='character-set code-page'
panels in the panel group use the help
Specifies the character set and code page for
modules. This attribute is mutually exclusive
SBCS text data in the panel group source.
with the HLPSHELF attribute.
This information is used for synonyms defined
HLPSHELF=LIST | bookshelf-name using the index search synonym (ISCHSYN)
Specifies the bookshelf to be used when tag. For more information on this tag, see
InfoSeeker is requested from the help “ISCHSYN (Index Search Synonym)” on
modules for the panels defined in the panel page A-72. If this attribute is omitted, all text
group. LIST indicates that the default list of must be on the index search (ISCH) and
books and bookshelves are to be used. If the ISCHSYN tags to be in the character set and
HLPSHELF attribute is not specified, code page specified by the QCHRID system
InfoSeeker is not accessible when help value at the time the panel group is created.
modules are displayed for the panels in the
The TXTCHRID attribute specifies the code
panel group. This attribute has no effect on
page and character set of the text information
help modules defined in the panel group
in the panel group source. It must not be con-
unless panels in the panel group use the help
fused with the CHRID parameter on the
modules. This attribute is mutually exclusive
CRTPNLGRP command, which controls the
with the SCHIDX attribute.
way dialog variables with CHRID=PNLGRP
ENBGUI=NO | YES specified on the class definition (CLASS) tag
Specifies the default value for enabling a are handled when the dialog variable value is
client program for all panels in the panel sent to or from the display station.
group. This attribute establishes the value
BIDI=NONE | LTR | RTL
when ENBGUI=PNLGRP is specified or
Indicates the orientation of the panels in the
defaulted on the PANEL tag.
panel group. NONE indicates that the panels
When ENBGUI=YES is specified for a panel, the in the panel group should be displayed in a
UIM includes information about the layout and single direction with a left-to-right orientation.
content of the panel in the 5250 data stream. NONE is the default and is required when
This information is used by a client program to TXTMODE=DBCS is specified on this tag.
create the graphical interface on the client.
When BIDI=NONE is coded, the following
Table A-22 on page A-124 describes the
items are ignored:
information that is included in the 5250 data
stream. The NBRSHAPE attribute on this tag
The BIDI, NBRSHAPE, CONTXTREV, and
When ENBGUI=NO is specified for a panel, the
SYMSWAP attributes on the CLASS tag
UIM does not include the extra information in
All reverse text (RT) tags
the data stream.
LTR indicates that the panels in the panel
TXTMODE=SBCS | DBCS
group are bidirectional and should be dis-
Specifies whether a single-byte character set
played with a left-to-right orientation.
(SBCS) or double-byte character set (DBCS)
is used in the tag text. If DBCS is specified, RTL indicates that the panels in the panel
the tag text must have the shift-in or shift-out group are bidirectional and should be dis-
characters to indicate the start and end of played with a right-to-left orientation.
DBCS text.
When either LTR or RTL is specified for a
A panel group object for which TXTMODE=DBCS panel group, the work station controller
is specified can only be used on a display enables the hot key to flip the panel so that
station and system capable of handling DBCS the user can flip the panel if necessary.
information. An attempt to display a DBCS When RTL is specified, the controller automat-
menu, open a DBCS panel group object, or
ically flips all panels of the panel group as Numbers generated by the UIM for
they are displayed. ordered list numbers
The normal use of LTR is for panels written in Numbers generated by the UIM for pull-
a left-to-right language with a small amount of down field choices
right-to-left language text in it. The normal
Page number information on a print panel
use of RTL is for panels written in a right-to-
and printed help information
left language with a small amount of text in a
left-to-right language. Numbers that are not affected by the NBRSHAPE
attribute are:
The UIM does not allow a LTR or RTL panel
to be used on a display device that does not The digits used in the system name
have the correct code page for bidirectional Messages displayed on the message line
languages. Hebrew uses code page 424 and Copyright dates on the message line
Arabic uses code page 420. Product number information on a print
The value of this attribute of all possible panel panel and in printed help information
groups that can be reached through hypertext Because the Hindi zero looks like a period,
links should be the same. If they are not the the format of the number in front of a menu
same when a reference phrase is selected, item or pull-down choice is 'n)' instead of
the resulting screen or pop-up window may be 'n.', where 'n' is the menu item or choice
displayed with the opposite orientation. option number.
NBRSHAPE=ARABIC | HINDI DFTMSGF= qualified-message-file-name
This attribute is ignored when BIDI=NONE is The default message file used when a
specified on this. The NBRSHAPE attribute con- message file is not specified for a message
trols the display shape of UIM-generated identifier on any of the following tags:
numbers. This attribute is ignored except
when code page 420 (Arabic) is being used. CHECK Validity checking
LISTDEF List definition
When ARABIC is specified, the normal digits,
TL Translation list
X'F0' through X'F9', are used for numbers.
DATASLTC Data selection field
ARABIC is the default.
PDFLDC Pull-down field choice
When HINDI is specified, the translation of LISTACT List action
digits is performed with a translation table MENUI Menu item
defined for each national language.
If the corresponding message file attribute is
Digits that come from the panel group source not specified on any of these tags when the
or from messages are not affected by the MSGID attribute is specified for this tag, this
NBRSHAPE attribute because they are expected attribute is required.
to already be translated to the correct char-
acter. The numbers that are affected by the SUBMSGF= qualified-message-file-name
NBRSHAPE attribute are: The default message file used when a
message file is not specified on the &msg
Numbers generated by the UIM for menu symbol.
items
55──:PRTHEAD──NAME=panel-name──┬───────────────────────────────┬─────────────────────────5
└─PRODINFO=dialog-variable-name─┘
5──┬──────────────────────────────┬──┬──────────────────────────────┬────────────────────5
└─PRTDATE=dialog-variable-name─┘ └─PRTTIME=dialog-variable-name─┘
5──┬────────────────────────────┬──┬─────────────────────┬──┬─────────────────┬──────────5
└─TITLE=dialog-variable-name─┘ └─TT=truth-table-name─┘ │ ┌─8ð──┐ │
└─WIDTH=─┴─132─┴──┘
5──┬──────────────────────────┬──┬─────────────────────────────┬──.──────────────────────5
└─OBJ=dialog-variable-name─┘ └─OBJLIB=dialog-variable-name─┘
5──┬─────────────────┬──:EPRTHEAD.──────────────────────────────────────────────────────5%
└─page-title-text─┘
Table A-28. First Line of Heading with Print Width 132 Table A-30. Second Line of Heading with Print Width
132
Start
Data Column Length Start
Data Column Length
Title See Max. 55
note. Product information 1 22
Separator See 4 Separator 23 Min. 55
note.
Library See Max. 10
"Page" (with expansion) See Max. 11 note.
note.
Slash See 1
Separator 125 2 note.
Page number 127 4 Object See Max. 10
note.
Separator 131 2
Separator 99 4
Note: The start column for this data is variable. The
title is centered between the left margin and the sepa- System name 103 8
rator following the title.
Separator 111 2
Date 113 8
Table A-29. First Line of Heading with Print Width 80
Separator 121 2
Start
Data Column Length Time 123 8
Title See Max. 55 Separator 131 2
note.
Note: The library and object are formatted as
Separator See 4 OBJLIB/OBJ with trailing blanks stripped from the
note. OBJLIB and OBJ values. The OBJLIB/OBJ aggregate
is right-justified against the separator before the system
"Page" (with expansion) See Max. 11
name.
note.
Separator 73 2
Page number 75 4
Separator 79 2
Note: The start column for this data is variable.
Table A-31. Second Line of Heading with Print Width Example: Print Title Line
80
Start The following example has a title line for output
Data Column Length with a width of 132 bytes. The title is from the
Product code 1 Max. 22 print head panel or the first print panel. The page
text and page number are provided by the UIM.
Separator 23 Min. 3
Library See Max. 10 Either the UIM or the application can provide the
note. date and time. The application must use the
Slash See 1 PRTDATE and PRTTIME attributes on the PRTHEAD
note. tag to specify a date and time. If the PRTDATE and
Object See Max. 10
PRTTIME attributes are not specified, the UIM uses
note. the system date and time when the QUIOPNPA
API or the QUIADDPA API is called. The date
Separator 47 4
and time are formatted using the job attributes.
System name 51 8
Separator 59 2
Date 61 8
Separator 69 2
Time 71 8
Separator 79 2
Note: The library and object are formatted as
OBJLIB/OBJ with trailing blanks stripped from the
OBJLIB and OBJ values. The OBJLIB/OBJ aggregate
is right-justified against the separator before the system
name.
55──:PRTPNL──NAME=panel-name──┬────────────────────────────┬──┬─────────────────────┬────5
└─TITLE=dialog-variable-name─┘ └─TT=truth-table-name─┘
5──┬─────────────────┬──.──┬────────────┬──:EPRTPNL.────────────────────────────────────5%
│ ┌─8ð──┐ │ └─title-text─┘
└─WIDTH=─┴─132─┴──┘
Optional Text
55──:PRTTRAIL.trailer-message-text──────────────────────────────────────────────────────5%
The print trailer message (PRTTRAIL) tag is leading or trailing asterisks (*). The UIM adds
allowed only within the print head panel asterisks before and after the text.
(PRTHEAD) tag, appearing immediately before the
The text can be a maximum of 106 bytes for
EPRTHEAD tag. The trailer message is printed at
WIDTH=132 and a maximum of 54 bytes for
the end of the print listing. If no trailer is speci-
WIDTH=80, specified on a PRTHEAD tag. The
fied, no default trailer is printed.
text can contain only the reverse text (RT) tag.
Note: The trailer is only printed when the printer
file is closed by using the option for a normal Example: Trailer Message
close on either the Close Application (QUICLOA)
API or the Remove Application (QUIRMVPA) API. This example shows what kind of text a print
The trailer is not printed if the application is closed trailer message might have.
using the option for an abnormal close.
UIM Source
Required Text :prttrail.E N D O F L I S T I N G
trailer-message-text
The text appearing at the end of the print
listing. This text can be entered without
PV (Programming Variable)
55──:PV.programming-variable:EPV.───────────────────────────────────────────────────────5%
The programming variable (PV) tag identifies a diately following the EPV tag are a punctuation
programming variable. It requires a matching end mark and a blank, the UIM automatically extends
tag. These tags are only allowed in information the emphasis attribute to include the punctuation
areas and help areas. It is frequently used within mark. This allows the punctuation mark and the
parameter lists. For more information on param- text associated with it to be displayed using the
eter lists, see “PARML (Parameter List)” on same emphasis.
page A-129.
RT (Reverse Text)
55──:RT.reverse-direction-text:ERT.─────────────────────────────────────────────────────5%
The reverse text (RT) tag indicates that the LISTGRP List group
enclosed text has an orientation opposite to the LI List item
orientation of the panel group. This tag is ignored LP List part
for panel groups with BIDI=NONE specified on MBARC Menu bar choice
the panel group (PNLGRP) tag. On a BIDI=RTL MENU Menu area
panel group, text in a left-to-right language is MENUI Menu item
placed between the RT and ERT tags, while on a NT Note
BIDI=LTR panel group, text in a right-to-left lan- OPTLINE Option line
guage is placed between the RT and ERT tags. P Paragraph
PC Paragraph continuation
With the import (IMPORT) tag, it is possible to PD Parameter description
combine help information from panel groups that PT Parameter term
have BIDI=RTL specified with help information PRTHEAD Print head panel
from panel groups that have BIDI=LTR specified. PRTPNL Print panel
This is not recommended, but when it does occur, PRTTRAIL Print trailer message
the user needs to use the hot key sequence for PDFLDC Pull-down field choice
the work station controller to flip the screen to TOPINST Top instruction line
read the help information with the opposite orien-
tation. Any text within the RT and ERT tags is for- The RT tag cannot be used within a figure (FIG),
matted correctly for its panel group orientation. unformatted lines (LINES), or an example (XMP)
Therefore, when the RT tag is used for text that is tag. No tag is allowed between an RT tag and its
imported into help information with the opposite matching ERT tag.
orientation, the imported text is also readable
when the screen is flipped. Blanks found between an RT tag and its matching
ERT tag are preserved. This includes the trailing
Unlike the highlight phrase tags, the RT tag is blank at the end of each source line. Therefore,
allowed within the text of most tags. The following starting a source line with an ERT tag is not
tags allow an imbedded RT tag: recommended.
BOTINST Bottom instructions
CIT Title citation Example 1: Left-to-Right
CMDLINE Command line Formatting on a Right-to-Left
DATA Data area Panel
DATASLTC Data selection choices
DATAGRP Data group This example illustrates left-to-right source for-
DATAI Data item matted and displayed on a right-to-left panel.
DD Definition
DDHD Definition header
UIM Source
DT Definition term
DTHD Definition term header :P.For more information see the
FIGCAP Figure caption text :CIT.:RT.IBM OS/4ðð User Interface
Hn Headings Manager Reference Manual:ERT.:ECIT.
HPn Highlighted phrase which you can find in your library.
INFO Information area
KEYI Key list item Results
LINK Hypertext link definition IBM OS/4ðð User eht ees noitamrofni erom roF
LIST List area uoy hcihw Interface Manager Reference Manual
LISTACT List action .yrarbil ruoy ni dnif nac
SL (Simple List)
┌──
───────────────┐
55──:SL──┬─────────┬──.───6─:LI.item-text─┴──:ESL.───────────────────────────────────────5%
└─COMPACT─┘
The simple list (SL) tag identifies a list of items. It Table A-33. Tags Allowed Between the SL and ESL
requires a matching end tag. These tags are only Tags
allowed in information areas and help areas. Tag Name Order Use Page
LINES 1 B A-77
Simple lists can occur anywhere in text and can
(Unformatted
be nested within other lists. lines)
This example uses two simple lists, one imbedded Some normal text...
within the other. The second simple list uses the
COMPACT attribute. First item
First item
UIM Source Second item
Second item
Some normal text...
:sl.
:li.First item
:sl compact.
:li.First item
:li.Second item
:esl.
:li.Second item
:esl.
55──:TEXT──VAR=dialog-variable-name──USREXIT='CALL program-reference'────────────────────5
5──┬────────────────────────────────────────────────────┬──.────────────────────────────5%
└─ROW=dialog-variable-name COL=dialog-variable-name─┘
The text area (TEXT) tag defines a text area in a If the dialog-variable-name has a BASETYPE of
panel to be formatted by the application. Only CHAR on its CLASS tag, this dialog variable
one TEXT tag can be specified in each panel. contains the data for the text area.
Menu bars and command lines are allowed,
If the dialog-variable-name has a BASETYPE of
however, no other areas can be defined in the
PTR on its CLASS tag, this dialog variable
panel.
contains a pointer to the data for the text area.
The data pointed to by this pointer is viewed
The width of this area is determined by the WIDTH
by UIM the same as for a dialog variable with
attribute of the PANEL tag which this area is
a BASETYPE of CHAR. Any exception the UIM
defined in.
receives while accessing this data will result in
The depth of this area is the depth of the panel. an escape message sent to the calling
The depth of the panel is determined by the DEPTH program.
attribute of the PANEL tag which this area is The dialog variable can be declared as any
defined in. The DEPTH value is reduced by any size. If there is not enough data to fill the text
lines used for other parts of the panel such as a area the remainder of the text area will be
menu bar lines, the panel title line, the command blank. If there is more than enough data to fill
lines, the function key line(s), and the message the text area only the data needed to fill the
line(s). See the PANEL tag for a description of text area will be used.
these dimensions.
You can use the exit program for the text
The data passed to the UIM to be displayed in this area, specified on the USREXIT attribute of this
area is described in the “Text Data” on tag, to update this dialog variable each time
page A-155 section below. the panel is displayed. The UIM uses the
value of the dialog variable to work with the
If the Help key is pressed while the cursor is in data for the text area as described in “Text
the text area extended help for the panel is dis- Data” on page A-155. The value of the dialog
played. variable depends on the BASETYPE attribute on
the CLASS tag of the dialog variable.
Required Attribute The size of the text area can vary depending
on the number of rows taken up by the func-
VAR=dialog-variable-name tion keys. This is important to remember when
The name of the dialog variable containing the coding for multiple languages or conditioning
data, or a pointer to the data, for the text area. function keys with the condition (COND) tag.
Define the dialog variable using a class defi-
nition (CLASS) tag with basetype of CHAR X USREXIT='CALL program-reference'
or PTR. The CHRID=PNLGRP attribute is not The exit program called to update the value of
allowed on the class definition for this dialog the dialog variable on the VAR attribute each
variable. time the panel is displayed.
The data in the dialog variable is viewed by This area will be considered scrollable by the
the UIM as a d by w array of characters, UIM. If the user presses a key assigned to a
where d is the depth and w is the width of the scrolling dialog command and the text area
text area. Each row of the array is displayed should be scrolled (as opposed to other
as one line of the text area. scrollable areas on the panel) the UIM will call
the user exit program. On return the UIM will
redisplay the panel. For a description of the the user exited the panel the row and column
user exit program structure passed by the dialog variables will both be zero.
UIM, see the System API Reference.
COL=dialog-variable-name
A general panel exit program should be used The same as ROW except this is the column of
to diagnose if the user has scrolled too far. If the cursor.
the user has scrolled too far the general panel
exit should send an appropriate message fol-
lowed by the special message to cancel the
Cursor positioning
determined action. For a description of the The cursor position in a panel with a text area
general panel exit program structure passed depends on many things. The following is a prior-
by the UIM, see the System API Reference. If itized list for where the cursor will be positioned.
this is done the message telling the user he The first item that holds true will position the
has scrolled to far will only be seen once. If cursor.
the text area exit sends the message it may
be displayed on the screen longer than 1. If the ROW and COL attributes are used on the
desired. TEXT tag and the value of the dialog variables
are valid when the panel is displayed, the
For a description of the CALL dialog cursor is positioned at that row and column.
command, see Appendix B, “UIM Dialog
Commands” on page B-1. 2. If the panel has a command line the cursor is
positioned at the command line.
Optional Attributes 3. If the panel has a menu bar the cursor is posi-
tioned at the first menu bar choice.
ROW=dialog-variable-name
The row of the cursor. Define the dialog vari- 4. If the text area has tabable highlighting
able using a class definition (CLASS) tag with classes the cursor is positioned at the first
BASETYPE of BIN(31). one.
The dialog variables for the row and column 5. If none of the above position the cursor the
can be set by the application before calling cursor will be positioned at the upper left
the UIM to set the location of the cursor within corner of the panel or pop-up window.
the text area. The first character of the first
row in the text area would be row 1 and Text Data
column 1. A value of zero in either of the
dialog variables tells the UIM to use default Any character within the data can be a selection
cursor positioning. character for a highlighting class. Only output
data is allowed in a text area; no input fields are
When the UIM returns to the application, it will
allowed. The highlighting of the text applies to the
set these dialog variables to the row and
characters following the class selection character
column where the cursor was positioned in the
up to another class selection character or the end
text area when the user exited the panel. If
of the area, whichever occurs first.
the cursor was not within the text area when
The following table describes the selection characters for highlighting that are recognized by the UIM:
X’34’ 52 Red reverse image tab High intensity reverse image tab
X’36’ 54 Yellow reverse image tab * High intensity reverse image tab
X’37’ 55 White reverse image tab High intensity reverse image tab
* On some displays this highlighting class will display column separators RV3W081-0
and the blank character will look like a small box on the screen.
The UIM replaces each class selection character For pop-up windows highlighting classes never
with the appropriate display attributes for the continue on the next line. You must use another
class. Other character values in the ranges X'10' highlighting class if you want it to continue.
through X'3F', as well as X'FF', are converted
to X'1F', appearing as a reverse image box on If a panel smaller than the device is displayed
the screen. Characters X'00' (null), X'0E' without adding a pop-up window first, highlighting
(shift-out for double-byte), X'0F' (shift-in for classes continue into the blank space to the right
double-byte), and X'40' through X'FE' (normal, of the panel on the screen. To turn off these high-
displayable characters), are passed unchanged to lighting classes use other highlighting classes at
the screen. the end of each row that look like blank space.
For best appearance you should not place text in No character set and code page conversion is
the first and last column of a panel. This also done on the text area data. The application should
allows you to highlight the first word in any row provide the data in the correct character set and
easily. code page for the device.
If you are trying to create a tabable phrase of a When the UIM calls the exit program to format the
particular color do not use blanks between the text area, it passes a value which identifies the
words of the phrase. You should use the non- BIDI attribute on the panel group (PNLGRP) tag
tabable highlighting class of the same color. This and the code page number of the display device.
will give you the most effective display on all work
stations. If the NBRSHAPE and SYMSWAP attributes are used on
the CLASS tag for the text area dialog variable
When a panel is displayed with tabable high- they will be ignored.
lighting classes in the text area the cursor is not
automatically located on the first one. If you want If DBCS data is used the application is fully
this to happen you must use the ROW and COL responsible to make sure it displays properly. An
attributes of this tag to set the location of the error will occur if you attempt to display half of a
cursor. DBCS character or if one of the IGC shift charac-
ters (X'0E', X'0F') is missing.
If one or more tabable highlight classes are placed
next to each other in the data only the last one will Example: Text area
allow tabbing. The others will be ignored. The
maximum number of tabable fields is 240. It may
be less if there are other input capable or tabable
à Computer bug
ð
..............................................................................
fields on the display such as the command line or ..............................................................................
..............................................................................
..............................................................................
menu bar choices. ..............................................................................
..............................................................................
...............................\\\............................................
...............................((():..........................................
If any highlighting class is placed in the last ...............................///............................................
..............................................................................
..............................................................................
column of the last row in a full screen panel or in ..............................................................................
..............................................................................
the last column of any row in a pop-up window, it ..............................................................................
..............................................................................
will be ignored. ..............................................................................
..............................................................................
..............................................................................
..............................................................................
..............................................................................
..............................................................................
F3=Exit F12=Cancel
á ñ
55──:TI──┬────────────────────────┬──.──┬─────────────────┬─────────────────────────────5%
└─VALUE='internal-value'─┘ └─displayed-value─┘
The translation list item (TI) tag specifies a list If the internal value is specified in string or
item in a translation list. This tag must occur hexadecimal notation, the value must be
between translation list (TL) and ETL tags. The enclosed in quotation marks in addition to
item is translated on output to the panel and on apostrophes. For example, an internal value
input to the variable pool. of *YES must be specified as VALUE='"*YES"'.
Omitting the VALUE attribute leaves the internal
Optional Attribute dialog variable value unchanged when the
user enters the displayed-value specified as
VALUE='internal-value'.
tag content after the period. A TI tag of this
The internal value for the dialog variable in the
type has no effect on the way internal values
variable pool. This internal value is not
are presented to the user for display.
subject to validity checks defined by the
validity checking (CHECK) tag for this class.
If the same internal value is specified more Optional Text
than once in the list, the first item in the list is
displayed-value
chosen for translation on output.
The value appearing on the panel or entered
If the BASETYPE of this class is BIN, as speci- by the user. The comparisons done by the
fied on the class definition (CLASS) tag, the UIM to determine what internal value to use
value may be specified in either integer or for an external value specified by the user
hexadecimal notation. If the BASETYPE speci- may be changed by the CASE and BLANKS attri-
fied on the CLASS tag is CHAR, IGC, DATE, butes of the CLASS tag. If the same external
TIME, NAME, or OBJNAME, the value may be value appears more than once in the list, the
specified in either string or hexadecimal string first item is used for translation on entry. If no
notation. Strings are implicitly padded on the value is specified, a display value of blanks is
right with blanks, but no implicit padding is used.
done for hexadecimal notation.
TL (Translation List)
55──:TL──┬──────────────────┬──┬──────────────────────────┬──────────────────────────────5
│ ┌─UPPER─┐ │ └─MSGID=message-identifier─┘
└─CASE=─┴─MIXED─┴──┘
5──┬────────────────────────────────────┬──.──:ETL──────────────────────────────────────5%
└─MSGF='qualified-message-file-name'─┘
UIM Source
Optional Attributes
:tl msgid=MMMððð1 msgf='\LIBL/QCPFMSG'.
CASE=UPPER | MIXED :ti value=1.Blue
UPPER indicates that lowercase characters (a :ti value=1.BLUE
through z) in an input field value are con- :ti value=2.Red
verted to uppercase characters (A through Z) :ti value=2.RED
before comparison to the external value for :ti value=3.Green
:ti value=3.GREEN
each translation list item. This conversion to
:ti value=4.Turquoise
uppercase occurs after any conversion for the
:ti value=4.TURQUOISE
CASE attribute on the CLASS tag, but has no :etl.
effect on the value assigned to the dialog vari-
able or list entry if no matching translation list On entry, Blue, due to the default CASE=UPPER
item is found. It also does not change the and the uppercase version of the translation item,
external display value specified on each trans- is mapped to the value 1. On output, 1 is mapped
lation list item (TI) tag; the text on the TI tag to the value Blue, which is mixed case, because
must be specified in uppercase to get a the first matching translation list item is always
match. used. Notice that because the integer notation is
used for the value, the BASETYPE on the CLASS
MIXED indicates that an input value is com- tag that this translation list applies to must be
pared as it is entered with the external value numeric.
specified on each TI tag.
55──:TOPINST──┬───────────────────────────┬──.──┬──────────────────┬────────────────────5%
└─INST=dialog-variable-name─┘ └─instruction-text─┘
The top instruction (TOPINST) tag of an area minus two. If this attribute is used, no
specifies the top instruction lines. This tag is valid instruction-text can be specified for this tag.
for all areas, but is allowed only for display panels.
Dialog variables must be defined with a
It appears immediately after the introducing tag for
BASETYPE of CHAR, IGC, or BIN on the class
the area.
definition (CLASS) tag.
Multiple top instruction tags may be used to The error state of the dialog variable is not
present multiple lines of instructions if the used for determining the highlighting of the
TOPINST tag contains instruction-text. If multiple text.
TOPINST tags are coded, no blank lines appear
Special formatting for IGC. The abbrevi-
between the text on different tags. Only one top
ation IGC is used in commands and keywords
instruction tag is allowed per area if an INST attri-
to represent double-byte character set (DBCS)
bute variable is used for this tag.
functions. When a dialog variable with a
BASETYPE of IGC is specified on the CLASS
For menus, a blank line is always left between the
tag, the UIM does special formatting. If the
body and the instruction lines area. For more
variable value begins with a shift-out character
information about how instruction lines are for-
(X'0E'), the UIM shifts the value 1 byte to the
matted with respect to the body of certain areas,
left to preserve vertical alignment with other
see the BODYSEP attribute in “DATA (Data Presen-
lines.
tation Area)” on page A-31.
TT (Truth Table)
55──:TT──NAME=truth-table-name──CONDS='condition-name-list'──.──:ETT.───────────────────5%
The truth table (TT) tag begins the definition of a Table A-35. Tag Allowed Between the TT and ETT
truth table used by the compiler when processing Tags
panel definitions. The TT tag must occur in the Tag Name Order Page
prolog section of the panel group after the condi-
TTROW 1 A-163
tion definition (COND) tags and before any menu (Truth table row)
bar (MBAR) tags. You should use a truth table to
assert to the UIM which conditions are mutually
exclusive. Required Attributes
During compilation of a panel group, a panel is NAME='truth-table-name'
formatted once for each row of a truth table. The name of the truth table. For more infor-
Using the truth value for each condition, the com- mation on the rules for naming, see “Name
piler checks if the panel definition is valid. If a Syntax” on page A-4. This name is referred
panel element is conditioned using the COND attri- to by all panels which use this truth table for
bute on this tag, and if that condition is not men- compile-time checking. This name must be
tioned in the truth table, it is assumed to have a unique within the panel group.
true value by the compiler. CONDS='condition-name-list'.
A list of condition names separated by blanks.
The name of a truth table must be specified on
Each condition in the list must have been pre-
the TT attribute of the display panel (PANEL), print
viously defined with the COND tag. The rows
panel (PRTPNL), or print head panel (PRTHEAD)
of the truth table are defined with the truth
tag for the compiler to use the truth table for panel
table row (TTROW) tag. Each item in the
verification.
VALUES attribute of the TTROW tag corre-
sponds positionally with the condition specified
After the compile, if the truth table is wrong and
in this attribute. A maximum of 50 condition
the conditioning causes more panel elements to
names can be specified.
be active in an area than can be displayed, only
the elements that fit are displayed, and no excep-
tion is reported. Example: Truth Table
Other tags can be nested within the TT tag. If conditions A, B, and C are known to be mutually
These tags are listed in the following table. This exclusive on panel X, this example would illustrate
table defines the order in which the tags must how to assert this to the compiler.
appear and specifies on which page more infor-
mation can be found for each tag. UIM Source
:tt name=tt1 conds='A B C'.
:ttrow values='1 ð ð'.
:ttrow values='ð 1 ð'.
:ttrow values='ð ð 1'.
:ett.
55──:TTROW──VALUES='condition-value-list'──.────────────────────────────────────────────5%
The truth table row (TTROW) tag defines a row in Required Attribute
a truth table used by the compiler when pro-
cessing panel definitions. The TTROW tag must VALUES='condition-value-list'.
occur between the truth table (TT) and ETT tags The value of each condition used by the com-
in the prolog section of the panel group. piler to check the panel definition. Each item
in the VALUES attribute of the TTROW tag cor-
During compilation of a panel group, a panel is responds positionally with the condition speci-
formatted once for each row of a truth table, and fied in this attribute. The following values can
the truth value for each condition is used to check be used for the condition:
if the panel definition is valid. A truth table can
0 The condition is false.
describe which of the conditions that control the
1 The condition is true
formatting of a panel are mutually exclusive. If a
* No truth value is specified. The compiler
condition is used within the panel definition and is
assumes the value is true for a worst
not mentioned in the truth table, it is assumed to
case.
be true for the purposes of compile time checking;
this is the same as specifying an asterisk (*) in the The items in the list of condition values are
VALUES attribute on this tag. separated by blanks. The number of items in
the list must equal the number of items in the
CONDS attribute of the TT tag.
UL (Unordered List)
┌──
───────────────┐
55──:UL ─┬─────────┬───.───6─:LI.item-text─┴──:EUL.──────────────────────────────────────5%
└─COMPACT─┘
The unordered list (UL) tag identifies an unordered mixed in any order. However, a tag with a higher
list of items. The UL tag requires a matching end order number cannot precede a tag with a lower
tag. These tags are only allowed in information order number. For example, a tag with an order
areas and help areas. number of three cannot precede a tag with an
order number of one or two.
Unordered lists can occur anywhere in text and
can be nested within other lists. Table A-36. Tags Allowed Between the UL and EUL
Tags
Note: Care should be taken when using the
unformatted lines (LINES), figure (FIG), and Tag Name Order Use Page
example (XMP) tags within unordered lists, FIG 1 B A-59
because text that does not fit on one line wraps to (Figure)
column one of the next line. Lines and figures LINES 1 B A-77
start at the current left margin and examples are (Unformatted
indented four spaces from the current left margin. lines)
The current left margin changes when nested lists XMP 1 B A-171
are formatted. If there is help information con- (Example)
taining the LINES, FIG, or XMP tag imbedded at
NT 1 B A-117
various locations, including within lists, it may not
(Note)
look the same each time and can cause undesir-
able results. P 1 B A-121
(Paragraph)
Unordered lists are formatted as hanging, PC 1 B A-131
indented lists, with the item identifier at the current (Paragraph con-
left margin. There are three levels of item identi- tinuation)
fiers for nested, unordered lists: LP 1 B A-107
(List part)
Bullets (lowercase letter o)
Hyphens (-) OL 1 B A-118
Dashes (--). (Ordered list)
SL 1 B A-152
These levels are repeated for more than three (Simple list)
levels of nested, unordered lists.
UL 1 B A-164
(Unordered list)
Other tags can be nested within the UL tag.
These tags are listed in the following table. The PARML 1 B A-129
table defines the order in which the tags must (Parameter list)
appear, indicates which tags can be used in DL 1 B A-57
display panels only, print panels only, or both (Definition list)
(specified by a D, P, or B, respectively), and spec-
ifies on which page more information can be found
for each tag. Optional Attribute
COMPACT
When more than one tag is listed with the same The list is formatted without a blank line
order number, all tags of that number can be between the items.
55──:VAR──NAME=variable-name──┬──────────────────┬───────────────────────────────────────5
└─CLASS=class-name─┘
5──┬───────────────────────────────────┬──.─────────────────────────────────────────────5%
└─ERRVAR=error-status-variable-name─┘
The variable definition (VAR) tag declares a dialog tag. This name must also be unique within
variable in the panel group. The VAR tag does the panel group.
not allow nested tags and must be placed after
This dialog variable contains the error status
the last class definition (CLASS) tag and before
of the variable defined by this tag. This attri-
the first variable record definition (VARRCD) tag.
bute is used with the Put Dialog Variable
(QUIPUTV) API and the Get Dialog Variable
A value for each dialog variable exists in the vari-
(QUIGETV) API.
able pool for an application opened using this
panel group. The dialog variables communicate During the QUIPUTV API, the current value of
values to and from panels when the panels are the error variable determines the error status.
presented to the user. Dialog variable values are A value of 1 (X'F1') indicates that the dialog
set and retrieved using the UIM application pro- variable specified on the NAME attribute on this
gramming interfaces (APIs). tag is in error. A value other than 1 (X'F1')
indicates that the dialog variable is not in
The VAR tag defines all Z-variables, as well as error. If the error status variable is updated
other dialog variables used by an application. during the same QUIPUTV API request as its
Only variables defined by a VAR tag in the panel associated dialog variable, the new value of
group source are available in an open application. the error status variable is used.
During the QUIGETV API for either the NAME
Required Attribute dialog variable or the ERRVAR dialog vari-
NAME=variable-name able, the value of the error status variable is
The name of a dialog variable. This name set to 1 (X'F1') if the dialog variable specified
must be unique within the panel group. For on the NAME attribute of this tag is in error.
more information on the rules for naming, see Otherwise, the value of the error status vari-
“Name Syntax” on page A-4. able is set to zero (X'F0').
Note: Simply updating the ERRVAR dialog
Optional Attributes variable does not set the error state of the
dialog variable specified in the VAR attribute of
CLASS=class-name this tag. The VAR dialog variable must be
The name of the class to which this variable updated using the QUIPUTV API to change its
belongs. The class must have been previ- error state.
ously defined in the panel group.
The error dialog variable cannot be referred to
The class definition for all Z-variables is deter- any place in the panel group source where
mined by the UIM, so this attribute cannot be dialog variables can normally be specified.
specified on the VAR tag for a Z-variable. A
class must be specified for other variables
declared in the panel group.
Dialog Variables Defined by UIM
ERRVAR=error-status-variable-name The UIM defines a set of dialog variables that can
The name of a dialog variable, automatically be automatically available in the variable pool for
defined by the UIM with a BASETYPE of every open application. The variables must be
CHAR 1 on the CLASS tag. The error status defined using the variable definition (VAR) tag in
variable must not be defined by another VAR order to be available in the variable pool. These
variables can be referenced by user programs
(see the QUIGETV API) and in panel definitions, This Z-variable can be changed by
and some can be modified by user programs (see the calling (application) program using
the QUIPUTV API) to control UIM processing the Put Dialog Variable API service.
functions. Dialog variables are not allowed for Changing this dialog variable results
input fields on any panel. in changing the job's exit flag. For
more information on the job's exit
All dialog variables defined by the UIM have flag, see “Folding Up Multiple Panels
names that begin with the letter Z. If you define a When EXIT Is Requested” on
dialog variable for your application with the same page 17-24.
name as a UIM dialog variable, you receive a
ZJOB Simple name of the current job (the
warning message. The message states that you
first qualifier of the job name).
do not have access to the UIM dialog variable with
the same name. However, you are allowed to use ZJOBNBR Job number of the current job (the
the dialog variable that you defined. The following last qualifier of the job name).
is a description of all UIM-defined dialog variables:
ZLMTCPB Indicates the limits to which the user
ZCANCEL Indicates whether the CANCEL func- controls the initial program, initial
tion is requested and is set as menu, current library, and Attention
follows: key handling program values and is
set as follows:
0 The CANCEL function was not
requested. *NO
1 The CANCEL function is *PARTIAL
requested. *YES
This Z-variable can be changed by ZMENU Name of the menu object currently
the calling (application) program using displayed by the UIM. This dialog
the QUIPUTV API. Changing this variable can be used only in defi-
dialog variable results in changing the nitions of *MENU objects.
job's cancel flag. For more informa-
ZMNULIB The name of the library that contains
tion on the cancel flag, see “Folding
the menu object currently displayed
Up a List Panel” on page 17-26.
by the UIM. This dialog variable can
ZDBCS Indicates whether the job is currently be used only in definitions of *MENU
in DBCS mode, and is set as follows: objects.
0 The job is not in DBCS mode. ZSYSNAM Current system name retrieved from
1 The job is in DBCS mode. the SYSNAM network attribute.
ZDSPSIZ Indicates the maximum size of the ZUSER User profile name for the current job
display that the device is capable of (which is also the middle qualifier of
displaying and is set as follows: the job name).
*DS3 The largest size panel the Z36ENV Indicates whether the job is currently
device can display is 24 x 80. running in the System/36 environment
*DS4 The largest size panel the and is set as follows:
device can display is 27 x 132.
0 The job is not running in the
This device can also display
System/36 environment.
panels of size 24 x 80.
1 The job is running in the
ZEXIT Indicates whether the EXIT function System/36 environment.
was requested and is set as follows:
For a description of the characteristics (including
0 The EXIT function is not
external display form) for the base type of each
requested.
Z-variable, see “CLASS (Class Definition)” on
1 The EXIT function is requested.
page A-14.
55──:VARRCD──NAME=variable-record-name──VARS='variable-list'─────────────────────────────5
5──┬───────────────────────┬──┬───────────────────────┬──.──────────────────────────────5%
└─NOPUT='variable-list'─┘ └─NOGET='variable-list'─┘
The variable record definition (VARRCD) tag does UIM makes no boundary alignment adjust-
not allow nested tags, and must be placed after ments when calculating the offsets to vari-
the last variable definition (VAR) tag and before ables within the buffer.
the first list definition (LISTDEF) tag.
If any read-only Z-variables are listed in the
VARS attribute of this tag, they must also
When data is passed between a calling program
appear in the NOPUT attribute of this tag.
and the variable pool, a variable buffer is used.
The variable buffer contains values for one or
more dialog variables. A VARRCD tag defines Optional Attributes
which dialog variables are in the variable buffer as
NOPUT='variable-list'
well as the sequence the variables appear in the
A list of up to 256 variables which should not
variable buffer.
be processed when the QUIPUTV API is
requested. All variables in this variable list
The VARRCD tag must be used to define a vari-
must appear in the variable list specified on
able record definition for use with the Get Dialog
the VARS attribute of this tag. The variable
Variable (QUIGETV) API and the Put Dialog Vari-
names in the list are separated by blanks.
able (QUIPUTV) API requests. Only variables
defined by a VAR tag in the panel group source Using this attribute, you can specify that only
may appear in the variable record definition. a subset of the variables in the variable buffer
should be copied to the variable pool during
Required Attributes the QUIPUTV API.
If this attribute is not specified, all variables
NAME=variable-record-name
specified on the VARS attribute of this tag are
The name of a variable record definition. This
copied from the variable buffer to the variable
name must be unique within the panel group.
pool during the QUIPUTV API.
For more information on the rules for naming,
see “Name Syntax” on page A-4. NOGET='variable-list'
A list of up to 256 variables which should not
VARS='variable-list'
be processed when the QUIGETV API is
A list of up to 256 dialog variables which
requested. All variables in this variable list
make up the variable record. All dialog vari-
must appear in the variable list specified on
ables in this variable list must be previously
the VARS attribute of this tag. The variable
defined using the VAR tag. The dialog vari-
names in the list are separated by blanks.
able names in the list are separated by one or
more blanks. Using this attribute, you can specify that only
a subset of the variables in the variable buffer
The order in which the variable names appear
should be copied from the variable pool during
in the variable list is the order the variable
the QUIGETV API.
values must appear in the variable buffer of
the calling program when the QUIPUTV and If this attribute is not specified, all variables
QUIGETV APIs are called. specified on the VARS attribute of this tag are
copied from the variable pool to the variable
The variables must appear contiguously in the
buffer during the QUIGETV API.
variable buffer for the calling program. The
55───┬─:XH1.─┬─extended-help-heading-text───────────────────────────────────────────────5%
├─:XH2.─┤
├─:XH3.─┤
└─:XH4.─┘
The extended help heading (XH1-XH4) tag identi- XH1 Centers, underscores and highlights text
fies the heading used over contextual help when it (HP3). This tag causes a page eject when
is displayed as part of an extended panel help, it appears in a printed help module.
including help for index search topics. This tag
XH2 Left-justifies, underscores, and highlights
must appear within a help module (HELP) tag and
text (HP3).
EHELP boundary and is not allowed on the infor-
mation (INFO) tag. The text associated with this XH3 Left-justifies and highlights text (HP2).
tag is used as the heading text. XH4 Left-justifies and underscores text (HP1).
This tag allows headings to appear with help infor-
mation, based on whether the text is displayed for Example: Sample Headings
extended panel help or for contextual help. The
text from XHn tags always appears in extended This example shows how extended help headings
panel help. The text also appears in contextual are highlighted and justified.
help if any tag containing help information pre-
cedes the XHn tag, or the contextual help is dis- UIM Source
played in a full screen and no help panel title is :XH1.Main Subject
specified on the HELP tag. :p.Here's a paragraph.
:XH2.Topic
In all cases of contextual help, with the exception :p.Another paragraph.
of the two previously mentioned, the text from the :XH3.Subtopic
XHn tag does not appear when the XHn tag is the :p.Still another paragraph.
first tag used for contextual help. :XH4.A Four Heading
:p.Still another paragraph.
Required Text
Results:
extended-help-heading-text
The text associated with this tag is used as a Main Subject
heading when the help item is used in
extended panel help. The text must be on the Here's a paragraph.
same or next line as the period ending the
tag. Topic
Another paragraph.
Formatting Rules
Subtopic
Headings have one blank line formatted before
and after them. The heading tag generates a Still another paragraph.
blank line before the heading, and the tag fol-
lowing the heading generates the space after the A Four Heading
heading.
Still another paragraph.
Specific formatting rules follow:
XMP (Example)
55──:XMP.──:EXMP.───────────────────────────────────────────────────────────────────────5%
The example (XMP) tag identifies an example of are indented by 4 bytes. Therefore, the formatting
computer input or output. The XMP tag requires a width initially is 10 bytes less than the width speci-
matching end tag. These tags are only allowed in fied on the help module. When the XMP tag
information areas and help areas. appears in an information area, the formatting
width initially is 6 bytes less than the width speci-
Examples can occur anywhere in text, except in fied on the panel tag.
other examples. The body of an example is com-
posed of the text between the XMP tag and the
EXMP tags.
Example: Formatting an Example
This example illustrates how to use an example.
The normal formatting of text is suspended within
an example; that is, the lines are not concat-
enated. UIM Source
Some normal text...
Note: Care should be taken when using exam-
:xmp.
ples within lists, because example text that does
This is an example
not fit on a line wraps to column one of the next right here
line. The current left margin changes when :exmp.
nested lists are formatted. If there is help informa-
tion containing examples imbedded at various
locations, including within lists, it may not look the
Results:
same each time and can cause undesirable
Some normal text...
results. An example is indented 4 spaces from
the current margin. Help modules displayed in This is an example
full-screen format or in an extended help window right here
5 PROMPT becomes CALL or RETURN when processing a cursor-sensitive prompt defined by the PROMPT attribute of a DATAI,
DATAIX, or LISTCOL language tag.
6 When PAGEUP and PAGEDOWN apply to the message area, an information area, or a menu area, these values are not
applicable.
ACTIONS (Menu Bar Cursor then presses the ACTIONS function key, the UIM
determines the best position for the cursor.
Action)
Messages: No messages are issued by the UIM
55──ACTIONS──────────────────────────5% during processing.
When the ACTIONS function key is pressed, the Calls an application program and allows applica-
UIM saves the information where the cursor was tions to link programs and screens together.
located and moves the cursor to the first choice
on the menu bar. If the ACTIONS function key is The call function calls by address, by name, or by
pressed again, the cursor returns to its previous an extended program model (EPM) call.
location before it was moved to the menu bar. If
the user moves the cursor to the menu bar area For best performance, use call by address. If call
using the cursor movement keys (arrow keys) and by address is not feasible, use the call by name or
an EPM call with a library qualified program name
(do not use *LIBL).
For a description of the interface between the UIM program and library names should be left
and the program being called, see the section justified and put in uppercase unless a
called "User Interface Management EXIT quoted object name is used.
Program" in the System API Reference. The
Call by extended program model (EPM)
CALL dialog command can be used with the fol-
This type of call allows calling an entry
lowing:
point in an EPM language program. The
Menu item action UIM uses the QPXXCALL interface to
Function key action make the call. Define the specified dialog
Action list option variable with BASETYPE='CHAR 13ð'. When
Action list exit the call function is requested, the dialog
General panel exit variable must contain the following:
Default enter action
Characters Contents
Application format exit
Contextual prompt exit 1-20 The name of the EPM
Pull-down choice action program object and the name
of the library that the object
The CALL dialog command cannot be used on resides in
menu objects created using the Create Menu
21-120 The name of the external
(CRTMNU) command, but can be used within a
entry point to be called
panel group object created using the Create Panel
Group (CRTPNLGRP) command. If calling a 121-130 The name of the environment
program is the desired result of a menu option in to which the entry point
an external menu, use the CMD dialog command belongs
to submit the CALL CL command. The user must Because UIM is simply passing this infor-
have the proper authority to the CALL CL mation to the QPXXCALL language inter-
command and the program being called. face program, ensure that the contents of
the dialog variable adhere to the require-
Required Parameter ments defined by QPXXCALL. When UIM
calls the QPXXCALL program, the EPM
dialog-variable-name
environment is implicitly started and
Specifies a dialog variable containing the call
remains active until explicitly deleted.
information as described below for each of the
three types of call. Note: There is a high performance over-
head for calling an EPM program. If pos-
Call by address sible, call by address or call by name
This type of call is used within OS/400 instead. The support for calling an EPM
system programs to allow calls of other program is provided for cases where, due
system modules. Define the specified to application design, an EPM program is
dialog variable with BASETYPE='PTR'. used as the target of the CALL dialog
When the call function is requested, the command.
dialog variable must contain a system
pointer to the program. Ensure the proper
VARUPD Value: The CALL dialog command
authority is contained in the pointer.
does not have a predefined VARUPD value. When
Call by name CALL is assigned to a function key, the VARUPD
Allows calling an application program using value of the function key dictates whether or not to
a qualified name of a program object. perform validity checking and then updates the
Define the specified dialog variable with dialog variables.
BASETYPE='CHAR 2ð'. When the call func-
tion is requested, the first 10 characters of Messages: The following errors may be encoun-
the dialog variable must contain the name tered during processing:
of the program object. The second 10
Program not found.
characters must contain the name of the
Not authorized to specified program.
library where the program resides. The
The UIM does not stop processing if these errors Changes the displayed view of a list and can only
occurred on a call for the general panel exit, on a be assigned to a function key or a pull-down field
call for the list action exit, and on application for- choice action.
matted area calls.
If there are several columns of information that a
For all other types of calls, the UIM ends the user needs to see, and all the columns do not fit
action it was performing. In most cases, this on the display, you can change the view so the
involves displaying the panel again with an error user sees one set of columns and then another
message indicating that the program call was not set of columns. This continues until all the
successful. columns of information are viewed.
VARUPD Value: The CHGVIEW dialog dialog variables. Because substituting commands
command always operates with VARUPD=YES depends on the values of dialog variables, care
and the following occurs: should be taken when using VARUPD=NO.
Validity checking is always performed.
Messages: No messages are issued during pro-
Valid values are processed and the dialog var-
cessing unless there are errors from a validity
iables are updated.
check.
Any failures from validity checking prevent
changing the view and the screen is displayed Hint: Because these commands are not logged
again with the appropriate error messages. to the job log, it is sometimes difficult to discover
and correct command syntax errors. One way to
Messages: No messages are issued during pro-
see the command after all dialog variables have
cessing unless there are errors from a validity
been substituted is to make the command the
check.
value of the message on a SNDMSG command
as follows:
CMD (System Command)
SNDMSG MSG (command here) TOUSR (\REQUESTER)
55──CMD──command-text────────────────5%
CMDLINE (Command Line)
same panel group that contains the DSPHELP acteristics than other dialog commands. These
dialog command, or 2) the help module must dialog commands are more like action qualifiers;
be imported from another panel group by things used to determine or modify a more con-
using an IMPORT tag. crete action like a system command string.
EXTHELP (Extended Help) Displays information about how to use the help
facilities for contextual help, extended help, help
on function keys, and the help index from help
55──EXTHELP──────────────────────────5% panels. The HELPHELP dialog command can be
coded only on pull-down choices for menu bars.
Messages: No messages are issued during pro- Messages: No messages are issued during pro-
cessing. cessing.
If not all of the function key descriptions fit in the VARUPD Value: The MOVETOP dialog
area, the UIM enables the function key assigned command operates with VARUPD=YES (except
to the MOREKEYS dialog command and places when scrolling the message line) and the following
the descriptions of the function keys on the panel. occurs:
If all of the descriptions of the function keys fit, the
Validity checking is always performed.
function key assigned to the MOREKEYS dialog
Valid values are processed and the dialog var-
command is not enabled.
iables are updated.
Any failures from validity checking prevent the
If a user presses the function key assigned to the
operation and the panel is displayed again
MOREKEYS dialog command, the UIM starts
with the appropriate error messages.
where it left off in the key list and gathers as many
active descriptions of function keys that fit in the
Messages: The UIM can issue Cursor not
function key area in order of priority. The function
positioned on valid line.
key assigned to the MOREKEYS dialog command
is enabled.
MSG (Display Message)
This process continues until the end of the key list
is reached. If the MOREKEYS dialog command is
selected again, the UIM starts back at the begin- 55──MSG──message-id───────────────────5
ning of the key list and begins processing the 5──┬─────────────────────────────┬───5%
MOREKEYS dialog command again. └─qualified-message-file-name─┘
Parameters: None
Displays a message on the message line. It can
Messages: No messages are issued during pro- only be assigned as the default enter action or the
cessing. default selection action to perform when the Enter
key is pressed, and the UIM cannot find any other
specific function to perform.
MOVETOP (Move to Top)
One intended use of this dialog command is to
inform the user that they must select an option or
55──MOVETOP──────────────────────────5%
press a function key.
PAGEDOWN
Prompts for commands, action list options, and For more information about entry field prompting,
entry fields and can be assigned only to function see the description of the PROMPT attribute for the
keys. Its specific function depends on the fol- following tags found in Appendix A, “UIM Panel
lowing: Group Definition Language” on page A-1.
Type of screen being managed Data item (DATAI)
Location of the cursor Data item Extender (DATAIX)
Contents of the command or parameter line List column (LISTCOL)
for the UIM to update. The update is with the The UIM keeps a series of commands entered on
contents of the command line when the action command lines. When the RETRIEVE dialog
list is processed. For more information see command is issued, the previous command is dis-
the LIST tag in Appendix A, “UIM Panel played on the command line. If the RETRIEVE
Group Definition Language” on page A-1 dialog command is issued again before any other
function is performed, the next most recent
Each individual option receives a separate
command is displayed.
prompt. The UIM does not apply information
added during prompting from one command to
Menu item selections and parameter strings
another.
cannot be retrieved. Also, commands submitted
When the prompt action is to call an applica- via the CMD dialog command cannot be retrieved.
tion program, the option is processed without
prompting by the UIM. When the UIM calls Parameters: None
the application program, an indication is given
that the user requested the prompt function. It VARUPD Value: The RETRIEVE dialog
is the responsibility of the application program command always operates with VARUPD=NO.
to provide its own version of prompting. No validity checking is performed on the contents
of the current panel and no updates are made to
If the command line contains a command, the the dialog variables.
command is submitted for prompting and pro-
cessing. The command can then be run or Messages: No messages are issued during pro-
canceled through normal prompter functions. cessing.
Depending on the environment the job is
running in, the system can pass the command
to the System/36 environment or REXX.
RETURN (Return Control to
Application)
If the command line was blank (a subclass of
assuming it contains a command), the Major
Command Groups menu is displayed. 55──RETURN──n────────────────────────5%
Type 1 Controllers available at V2R2 which support such things as windows, selection fields, scroll bars, and continued cursor
progression.
Type 2 Controllers available at V2R3. These support all of the V2R2 functions as well as menu bars, continued-entry fields,
edit masks, and simple hotspots.
Type 3 Controllers available at V3R1. These support all of the V2R2 and V2R3 functions. They also support text in the bottom
border of windows.
Display files can be DBCS files. In display files, you can define fields with
DBCS-only data type (type J), either data type
When to Indicate a DBCS File (type E), open data type (type O), or
DBCS-graphic data type (type G).
You should indicate that a file is DBCS in one or
more of the following situations: You can also use a double-byte literal that is used
with the file at processing time, such as literals
The file receives input, or displays output, specified with the Default (DFT) and Error
which has double-byte characters. Message (ERRMSG) DDS keywords.
The file contains double-byte literals.
The file has double-byte literals in the DDS Note: You may also use double-byte literals as
that are used in the file at processing time text and comments in a file, such as with the DDS
(such as constant fields and error messages). keyword TEXT. However, the system does not
The DDS of the file includes DBCS keywords. consider a file, whose only DBCS attribute is that
See the DDS Reference for information on it has double-byte comments, to be a DBCS file.
these keywords.
You may also specify the Alternative Data Type
The file stores double-byte data (database
(IGCALTTYP) DDS keyword in display files. This
files).
keyword lets you use display files with both alpha-
numeric and double-byte applications. When you
How to Indicate a DBCS File put the IGCALTTYP keyword into effect, you can
use double-byte data with the file.
You must indicate that a device file is a DBCS file
in order for the system to process double-byte Put the IGCALTTYP keyword into effect by cre-
data properly. You can do this in one of the fol- ating, changing, or overriding display files with the
lowing ways: IGCDTA(*YES) value. You can put the
By specifying IGCDTA(*YES) on the Create IGCALTTYP keyword into effect for display files by
Display File (CRTDSPF) command specifying IGCDTA(*YES) on the following device
file commands:
Through DDS
Create Display File (CRTDSPF)
DDS provides fields of the following data types: Change Display File (CHGDSPF)
Override with Display File (OVRDSPF)
DBCS-Only Field
DBCS-only fields display and accept only When you specify IGCDTA(*NO), the IGCALTTYP
double-byte characters. Double-byte charac- keyword is not in effect and you can use only
ters are always enclosed in shift-out and alphanumeric data with the file. Changing or over-
shift-in characters that have to be paired. riding the file to put the IGCALTTYP keyword into
effect does not change the DDS of the file.
Copying User-Defined
How to Delete a DBCS Font Table: To
delete a table, do the following: Double-Byte Characters
1. If desired, copy the table onto tape or Use the STRFMA command to copy user-defined
diskettes. See “Copying a DBCS Font Table double-byte characters between an AS/400 DBCS
onto Tape or Diskette” on page D-9 for font table and a user font file at a Personal
instructions. If you do not copy the table to System/55, a 5295 Display Station, or an
removable media before deleting it, you will InfoWindow 3477 Display Station.
not have a copy of the table for future use.
2. Vary off all devices using that table.
DBCS Font Files
3. Enter the DLTIGCTBL command.
For example, to delete the DBCS font table In addition to the system-supplied DBCS font
QIGC3232, enter: tables, the system also provides DBCS font files.
These DBCS font files are physical files which
DLTIGCTBL IGCTBL(QIGC3232)
contain frequently used double-byte characters.
4. Press the Enter key. The system sends When using the character generator utility, you
inquiry message CPA8424 to the system can use the characters in these files as the base
operator message queue for you to confirm for a new user-defined character. These files are
your intention to delete a DBCS font table. supplied with read-only authority as they are not to
be changed. If you do not use the character gen-
5. Respond to the inquiry message. The system
erator utility or the Advanced DBCS Printer
sends you a message when it has deleted the
table.
HRSLS332-1
See the discussion of the EDTIGCDCT command the Work with DBCS Conversion Dictionary
in the CL Reference for a complete description of display.
HRSLS328-2
See the discussion of the EDTIGCDCT command Adding the First Entries in a Dictionary: To
in the CL Reference for a complete description of add the first entries into a dictionary, do the fol-
the Edit Related Words display. lowing:
1. Specify ENTRY(*ALL) when entering the
Examples of Editing Operations: The following
EDTIGCDCT command. For example, to edit
sections give examples of the editing operations
the dictionary QUSRIGCDCT stored in the
that you can perform using the EDTIGCDCT dis-
library DBCSLIB, enter:
plays:
EDTIGCDCT IGCDCT(DBCSLIB/QUSRIGCDCT) ENTRY(\ALL)
Beginning to edit a dictionary
Adding the first entries in a dictionary The system displays the Work with DBCS
Deleting an entry Conversion Dictionary display.
Moving a related word 2. Enter a 1 in the first option field in the list and
Ending editing the dictionary enter an alphanumeric entry to be added to
the dictionary in the entry field.
Beginning to Edit a Dictionary: Enter the
EDTIGCDCT command to start editing the dic- The system then displays the Edit Related
tionary for any type of editing operation. For Words display showing only two lines of data:
example, to put the first entry in the dictionary, BEGINNING OF DATA and END OF DATA.
enter: 3. Enter an I in the NBR field beside the
EDTIGCDCT IGCDCT(DBCSLIB/QUSRIGCDCT) ENTRY(\ALL) BEGINNING OF DATA line to insert a line.
4. Press the Enter key. The system displays a
Or, to edit the entries beginning with the string blank line.
ABC enter:
5. On the blank line, enter a DBCS word to be
EDTIGCDCT IGCDCT(DBCSLIB/QUSRIGCDCT) ENTRY('ABC\')
related to the new alphanumeric entry.
If you enter data on the inserted line and
leave the cursor on that line, another new line
HRSLS331-2
Moving a Related Word: Moving the words Ending the Editing Process: To end the editing
related to an alphanumeric entry changes the operation, press F3. The Exit Dictionary Entry
order in which the words appear during DBCS display is displayed, and you can choose to save
conversion. To move a word, do the following: the entry or not. The system then returns you to
your basic working display, such as the Command
1. Display the Edit Related Words display for the
Entry display.
entry in which you want to move DBCS words,
either by entering a specific entry with the
Suggestions for Editing the Dictionary: When
EDTIGCDCT command, or by choosing an
editing the DBCS conversion dictionary, consider
entry to edit from the Work with DBCS Con-
the following:
version Dictionary display.
You can use DBCS conversion with the Edit
2. When the display appears, enter an M in the
Related Words display to enter related words
NBR field beside the DBCS word to be
into a user-created dictionary. See “DBCS
moved.
Conversion (for Japanese Use Only)” on
3. Enter an A in the NBR field of the line after page D-19 for information on this procedure.
which the word will be moved.
Place the most commonly used DBCS words
4. Press the Enter key. The system moves the at the beginning of the list of related words on
word, on the line marked M to a position imme- the Edit Related Words display. This simpli-
diately following the line marked with an A. fies DBCS conversion because the system
displays the related words in the same order
in which those words are listed in the dic-
tionary.
HRSLS337-2
See the discussion of the DSPIGCDCT command named QUSRIGCDCT, stored in their libraries. If
in the CL Reference for a complete description of you do not specify any library name, the system
the command and the display it produces. deletes the first DBCS conversion dictionary in
your library list.
Deleting a DBCS Conversion For example, to delete the DBCS conversion dic-
Dictionary tionary QUSRIGCDCT in the library DBCSLIB,
enter:
Use the Delete DBCS Conversion Dictionary
(DLTIGCDCT) command to delete a DBCS con- DLTIGCDCT IGCDCT(DBCSLIB/QUSRIGCDCT)
version dictionary from the system.
In order to delete the dictionary, you must have DBCS Conversion (for Japanese
object existence authority to the dictionary and Use Only)
object operational authorities to the library in
which the dictionary is stored. When you use DBCS display stations to enter
double-byte data, you may use the various data
When you delete a dictionary, make sure that you entry methods supported on the display station, or
specify the correct library name. It is possible that you may choose to use the AS/400 DBCS conver-
many users have their own dictionaries, each sion support. DBCS conversion lets you enter an
4. Enter the following values: 6. Choose the DBCS word from the last field that
best suits your needs by positioning the cursor
a. In the first field, enter one of the following: under that DBCS word.
I Inserts the converted word before 7. Press the Enter key. The system enters the
the character under which you posi- word where the cursor was positioned in step
tioned the cursor in step 2. 2, either by inserting the word or by replacing
R Replaces the character under which another word, depending on what you entered
you positioned the cursor in step 2 in the first field.
with the converted word. 8. Do one of the following:
b. In the second field, enter one of the fol- a. Continue using DBCS conversion. Repeat
lowing: steps 4 through 7 until you finish entering
1) A string of alphanumeric characters to data into the field.
be converted. The string can have as b. End DBCS conversion by pressing the
many as 12 characters. same function key used to start conver-
2) The 4-character DBCS code of a sion. The system automatically ends the
double-byte character. conversion when you reach the end of the
field.
3) The 2- to 5-digit DBCS number of a
double-byte character. In SEU, as well as from the Edit Related
Words display (displayed when using the
c. In the third field, enter one of the following
EDTIGCDCT command), press F18.
conversion codes:
HRSLS321-0
2. Insert shift-control characters into the field. 3. Press the function key used to start DBCS
See “Inserting Shift-Control Characters” on conversion. For the display just shown, the
page D-6 for instructions on inserting shift- function key is F18. The system displays a
control characters. prompt line.
HRSLS322-0
The prompt line.
Because the cursor was placed under a 4. Enter an alphanumeric entry to be converted
shift-in character when conversion was in the second field.
started, conversion automatically is set to I
Leave the third field blank.
(inserting the converted word).
HRSLS323-0
Enter an alphameric entry here.
5. Press the Enter key. The system displays 6. Position the cursor under the DBCS word that
related DBCS words. you want to enter, if that word is not the first
HRSLS324-0
Position the cursor here.
HRSLS325-0
Converting Many Alphanumeric Entries at One 1. Enter as many alphanumeric entries as will fit
Time: You do not have to continually start DBCS into field B. Separate each entry by a blank.
conversion for each alphanumeric entry. Instead, Field B contains space for 12 alphanumeric
you can do the following: characters:
1. Enter one or more blanks in field B. Perform DBCS conversion according to the
_ ____________ _ instructions described in “Performing DBCS
A B C D Conversion” on page D-21.
2. Press the Enter key. The system displays in Note: You must start and end DBCS conversion
field D the same number of DBCS blanks as separately for each line of data.
the alphanumeric blanks that you entered in
field B. The DBCS blanks are displayed in Considerations for Using DBCS Con-
reverse image.
version: Consider the following when per-
3. Press the Enter key again. The system enters forming DBCS conversion:
the DBCS blanks into the field where you
You can only perform DBCS conversion at a
started DBCS conversion.
DBCS display station, using the 5556 key-
board.
Changing Alphanumeric Entries or Conversion
Code: If none of the related words shown during You may use DBCS conversion to insert or
conversion are suitable candidates for the alpha- replace characters only if the line in which
numeric entry, and you would like to try a conver- double-byte characters are to be inserted has
sion again (by using a different type of conversion sufficient space.
or a different alphanumeric entry), do the fol-
– The space available for inserting charac-
lowing:
ters is equal to the number of characters
1. Move the cursor to field B. For example: from the last character on the line that is
not blank to the right edge of the display.
– The space available for replacing charac-
ters is equal to the number of characters
from the cursor position (including the
Messages: Messages:
Table F-1 (Page 1 of 2). Summary Chart for OS/400 Edit Codes
Sign Blank I J
Displayed Value of Value of Value of
Decimal When QDECFMT QDECFMT QDECFMT Leading
Edit Commas1 Points1 Negative System System System Zero
Codes Displayed Displayed Value Value Value Value Suppressed
1 Yes Yes No sign .00 or 0 ,00 or 0 0,00 or 0 Yes
2 Yes Yes No sign Blanks Blanks Blanks Yes
3 Yes No sign .00 or 0 ,00 or 0 0,00 or 0 Yes
4 Yes No sign Blanks Blanks Blanks Yes
A Yes Yes CR .00 or 0 ,00 or 0 0,00 or 0 Yes
B Yes Yes CR Blanks Blanks Blanks Yes
C Yes CR .00 or 0 ,00 or 0 0,00 or 0 Yes
D Yes CR Blanks Blanks Blanks Yes
J Yes Yes −(Minus) .00 or 0 ,00 or 0 0,00 or 0 Yes
K Yes Yes −(Minus) Blanks Blanks Blanks Yes
L Yes −(Minus) .00 or 0 ,00 or 0 0,00 or 0 Yes
M Yes −(Minus) Blanks Blanks Blanks Yes
N Yes Yes −(Minus) .00 or 0 ,00 or 0 0,00 or 0 Yes
O Yes Yes −(Minus) Blanks Blanks Blanks Yes
P Yes −(Minus) .00 or 0 ,00 or 0 0,00 or 0 Yes
Q Yes −(Minus) Blanks Blanks Blanks Yes
Y2 Yes
Note: Edit code X can be specified but has no other effect on the display file and is ignored for
effect on display files and is ignored. The AS/400 all other processing. The display length of the
system hardware operates with a preferred sign of field is determined by the keyboard shift and not
F, which is equivalent to using edit code X. Edit by edit code X (the default numeric-only Y attri-
code X causes a blank keyboard shift (position 35) bute may add 1 position to the field for decimals).
to default to numeric only (attribute Y), but has no
Table F-2. Valid Edit Codes, Source Data, and Edited Output
Positive Positive Negative Negative Zero Zero
Number– Number– Number– Number– Balance– Balance–
Two No Three No Two No
Decimal Decimal Decimal Decimal Decimal Decimal
Edit Codes Positions Positions Positions1 Positions1 Positions1 Positions1
Unedited 1234567 1234567 xxxx.125– xxxx.125– xxxxxx xxxxxx
1 12,345.67 1,234,567 .125 125 .00 0
2 12,345.67 1,234,567 .125 125
3 12345.67 1234567 .125 125 .00 0
4 12345.67 1234567 .125 125
A 12,345.67 1,234,567 .125CR 125CR .00 0
B 12,345.67 1,234,567 .125CR 125CR
C 12345.67 1234567 .125CR 125CR .00 0
D 12345.67 1234567 .125CR 125CR
J 12,345.67 1,234,567 .125− 125− .00 0
K 12,345.67 1,234,567 .125− 125−
L 12345.67 1234567 .125− 125− .00 0
M 12345.67 1234567 .125− 125−
N 12,345.67 1,234,567 −.125 −125 .00 0
O 12,345.67 1,234,567 −.125 −125
P 12345.67 1234567 −.125 −125 .00 0
Q 12345.67 1234567 −.125 −125
Y2 123/45/67 123/45/67 0/01/25 0/01/25 0/00/00 0/00/00
Z3 1234567 1234567 125 125
Notes:
1. The x represents a blank.
2. The Y edit code suppresses the farthest left zero of a date field that is three to six digits long, and
it suppresses the two farthest left zeros of a field that is seven positions long. For more informa-
tion, see the second footnote in Table F-1 on page F-1.
3. The Z edit code removes the sign (plus or minus) and suppresses leading zeros.
Applications can clear all or just parts of the OS/400 display data management allows only one
display by using the clear line (CLRL) keyword. record with input fields for programs written in a
The CLRL keyword is automatically put in the System/36-compatible language or for display files
DDS source when the System/36 environment that specify the USRDSPMGT keyword.
converts the SFGR source to DDS. The value
generated for the number of lines to clear is based
on the value in columns 19 and 20 of the SFGR S Input Data from the Work Station
specification. Controller
Because some of the OS/400 and The System/36 work station controller returns the
System/36-compatible display-clearing functions data for all input-capable fields. With the default
are different, the following DDS keywords cannot OS/400 display data management support, the
be used in display files that specify the work station controller returns only data from the
USRDSPMGT keyword: display for the input-capable fields that the display
ERASE station operator has changed.
PUTRETAIN
KEEP OS/400 display data management provides the
ASSUME System/36 function with the Modified Data Tag
(MDT) value of the DSPATR DDS keyword. The
Also, the OVERLAY keyword is ignored for pro- DSPATR(MDT) keyword is automatically put in the
grams written in a System/36-compatible language DDS source for every input-capable field when the
and for display files that specify the USRDSPMGT System/36 environment converts SFGR source to
keyword. DDS. This keyword sets on an indicator in the
work station controller that makes the work station
controller act as if the field with DSPATR(MDT)
Input Data for Display File was changed by the display station operator.
Records Because this keyword is specified for all input-
capable fields, all the input data is returned to the
On the System/36, only one record with input system and to the program when the program
fields can be displayed. For example, if an appli- issues a read operation.
cation on the System/36 writes record REC1 and
then record REC2, only the last record written
(REC2) has input-capable fields. When REC1 is Self-Check
written, the input fields defined by REC1 are input-
capable. When REC2 is written, REC1 fields are On System/36, if a field specifies modulus 10 or
then no longer input-capable, and the input fields modulus 11 self-checking (column 30 of SFGR D
defined by REC2 are input-capable. specification), the work station controller verifies
that valid data is entered into the field. If a display
With the default OS/400 display data management station operator enters an incorrect modulus 10 or
support, many different records with input fields modulus 11 number for a field, the work station
can be displayed at the same time. For example, controller displays a blinking four-digit error code,
record REC1 (which occupies lines 1 through 12) and the user must enter data into the field again.
and record REC2 (which occupies lines 21
through 24) can be displayed at the same time. OS/400 display data management support for self-
check, which uses the CHECK(M10) and
OS/400 display data management follows the On System/36, fields can be defined that have
System/36 rules to determine if a field should message text automatically inserted into the field
have an ending attribute when the USRDSPMGT when a record is displayed. System/36 work
keyword is specified in a display file. station data management retrieves the message
text defined for the field and supplies the message
text as output data for the field. To display
Positioning the Cursor message text, System/36 applications must
specify the following:
System/36 uses the following rules to determine M for constant type (column 56 of SFGR D
where the cursor should be positioned when a specification).
record is displayed:
The message identification code (MIC)
1. The cursor is positioned to the first input field (columns 57 through 60 of SFGR D specifica-
(defined by the SFGR source statements) that tion or output data supplied by the program).
has an indicator specified for the position-
The message member identifier (columns 61
cursor attribute, has this indicator set on, and
and 62 of SFGR D specification or output data
where one of the following conditions is true:
supplied by the program).
This field does not have the protect attri-
bute specified (columns 37 and 38 of the OS/400 applications can display messages in a
SFGR D specification). variety of different ways. For information on dis-
playing messages, see “Creating and Displaying
This field has an indicator specified for the
Your Own Messages” on page 8-1.
protect attribute, but the indicator is off.
This field has an unoptioned-protect attri- To provide application compatibility with
bute specified (columns 37 or 38 of the System/36, the MSGID keyword can be used to
SFGR D specification is Y or N). display messages. The MSGID keyword is auto-
matically generated by the System/36 environment
2. If the cursor is not positioned by rule 1, a
if M is specified for constant type in the SFGR D
check is made for fields with an unoptioned-
specification.
position-cursor attribute (columns 32 or 33 of
the SFGR D specification is Y). If there is a
Either of the following formats can be used to
field with an unoptioned-position-cursor attri-
display messages that follow the System/36 con-
bute, the cursor is positioned to this field.
ventions for sending messages:
3. If the cursor is not positioned by rule 1 or 2, MSGID(message-identifier message-file)
the cursor is positioned to the first input field MSGID(USR message-identification-code message-file)
(as defined by the SFGR source statements)
that does not have an unoptioned-protect attri- Message-identifier consists of two parts: a
bute (columns 37 or 38 of the SFGR D spec- message prefix and a message-identification-code
ification are blank). (MIC). If an application uses the first format of the
MSGID keyword, the three-character message
prefix should be the first three characters of the
Special Message File Used The following DDS keywords cannot be speci-
Value fied on a field with the MSGID keyword:
3. If the Help key is not processed by rules 1 or The default OS/400 display data management
2 and there is application help defined for the support causes the cancel-invite operation to fail if
the data is available. Message CPF4737 and
Use this manual to learn how to specify authority for Office Services Concepts and Programmer’s Guide,
your display files. SH21-0703.
This guide provides information about writing appli-
Application Development cations that use OfficeVision functions.
ADTS/400: Character Generator Utility, SC09-1769 Use this guide to develop office documents, which
can be used as online help information.
This guide provides information about using the
Application Development Tools character generator
utility (CGU) to create and maintain a double-byte Communications and Connectivity
character set (DBCS) on the AS/400 system. ICF Programming, SC41-5442
Use this guide to add user-defined characters to This guide provides the information needed to write
DBCS font tables. application programs that use AS/400 communica-
ADTS/400: Programming Development Manager, tions and the OS/400 intersystem communications
SC09-1771 function (OS/400-ICF). This manual also contains
information on data description specifications (DDS)
This guide and reference provides information about keywords, system-supplied formats, return codes,
using the Application Development Tools program- file transfer support, and program examples.
ming development manager (PDM) to work with lists
of libraries, objects, members, and user-defined Use this guide to work with applications on remote
options to easily do such operations as copy, systems.
delete, and rename. IBM 5250 Information Display System Functions
Reference Manual, SA21-9247.
Bibliography H-3
H-4 Application Display Programming V4R1
Index
adding (continued)
Special Characters window to display stack 17-31
*DSPATR (display attribute) parameter 6-40 ADDMSGD (Add Message Description)
*FLD (field) special value 6-57 command 9-9
*JOBCCSID special value 13-3 ADDSCHIDXE (Add Search Index Entry)
*MENU (menu) OS/400 object type 9-1 command 20-17
*PGM (program) OS/400 object type alarm
defining *PGM menu 9-11 sounding for messages 8-7
menu object defining 9-11 ALCOBJ (Allocate Object) command 3-1
Allocate Object (ALCOBJ) command 3-1
Allow Roll (ALWROL) keyword
Numerics effects on rolling 3-16
5250 display data stream
use 3-16
See user-defined data stream (UDDS)
alphabetic conversion
5250 display station
name syntax A-4
avoiding record format problems 3-45
alphanumeric application
UNLOCK results 3-35
converting to DBCS D-8
5250 engraved key restriction 17-14
alphanumeric device
displaying double-byte data D-7
A alternative character sets and code pages 13-1
Alternative Data Type (IGCALTTYP) keyword D-5
accelerator key
defining 6-21 alternative keywords, specifying
definition 6-21 Help (HELP) 2-13
example 6-22 Page Down (PAGEDOWN) 2-13
acquire operation Page Up (PAGEUP) 2-13
definition 3-2 ALTHELP (Alternative Help) keyword 2-13
file resource allocation for 3-1 ALTPAGEDWN (Alternative Page Down)
ILE C function for 3-49 keyword 2-14
ILE COBOL statement for 3-49 ALTPAGEUP (Alternative Page Up) keyword 2-14
ILE RPG operation for 3-49 ALWROL (Allow Roll) keyword
acquired display station effects on rolling 3-16
additional, for I/O operations 3-2 use 3-16
releasing from I/O operations 3-49 ampersand (&) symbol A-5
action list definition 17-11 analyzing
action list option prompting B-13 system error messages 8-8
action variable definition 17-11, 17-13 API (application programming interface)
ACTIONS (Menu Bar Cursor Action) dialog adding and removing windows 17-30
command B-4 services 16-5
active record format APPFMT (application formatted area) tag
determining 3-5 application formatted data A-8
table 3-5 example
active subfile record an application formatted area A-9
definition 4-4 overview A-8
Add Message Description (ADDMSGD) application
command 9-9 help 6-56
Add Search Index Entry (ADDSCHIDXE) interaction with menu bar 6-50
command 20-17 application control of panel formatting 17-23
adding application display
entries during incomplete processing 17-9 changing record formats on a 3-8
pop-up window over another panel 17-31 creating a sample 1-1
pop-up windows using APIs 17-30 DBCS conversion dictionary D-19
window over another panel 17-31 defining in display file 2-1
Index X-3
character (continued) CHKOBJ (Check Object) function A-28, A-79
symmetric (continued) CHKUSRCLS (Check User Class) function A-28,
Hebrew A-23 A-80
character beginning attribute 2-8 choice entry field, Common User Access 21-53
character ending attribute 2-8 choice-level help 6-56
character field attribute 2-8 CHRID (Character Identifier) keyword
character generator utility (CGU) description 13-1
DBCS sort table example 13-1
copying from data file D-13 CHRID (Character Identifier) parameter
copying to data file D-12 specifying 13-3
Japanese DBCS master sort table values, table of 13-5
copying from data file D-13 CIT (title citation) tag
copying to data file D-12 example, title citations A-13
Character Identifier (CHRID) keyword overview A-13
description 13-1 use in help module 20-4
example 13-1 CL (control language) program
character set and code page examples
considerations when printing 17-5 program menu 9-12
conversion, DDS 13-1 RTNPNT(*NO) for program menu 9-14
conversion, UIM A-19 I/O operations using 3-49
character translation inviting input from 3-30
using 13-2 reading-from-invited-devices from 3-33
character value CLASS (class definition) tag
display form A-25 BASETYPE summary table A-18
CHECK (Check) keyword decision tree for orientation A-21
parameters for cursor movement 2-16 display forms
RL and RLTB parameters 2-16 character value A-25
CHECK (validity checking) tag date value A-25
example, validity checking A-12 numeric values A-24
overview A-11 time value A-25
check box example
definition 6-1 class definitions A-24
example 6-1 numeric values table A-24
CHECK(FE) (Field Exit) keyword 6-18 overview A-14
CHGCMDDFT (Change Command Default) tags allowed table A-14
command 9-16 class definition (CLASS) tag
CHGDEVDSP (Change Device Description (Display)) BASETYPE summary table A-18
command 2-26 decision tree for orientation A-21
CHGDSPF (Change Display File) command display forms
changing character value A-25
display files 2-5 date value A-25
file description 2-2 numeric values A-24
DFRWRT (defer write) parameter time value A-25
described 3-26 example
when creating display file 3-26 class definitions A-24
DFRWRT parameter 14-1 example numeric values table A-24
ENHDSP (enhance display) parameter 6-4 overview A-14
indicating DBCS files D-5 tags allowed table A-14
running 2-5 CLEAR (Clear) keyword 2-11
SHARE parameter 14-2 Clear Lines (CLRL) keyword
CHGJOB (Change Job) command 8-7 example
CHGLIBL (Change Library List) command D-8 differences between OVERLAY and 3-15
CHGMNU (Change Menu) command 9-16 with (*NO) value 3-14
CHGPRTF (Change Printer File) command D-5 S/36 environment considerations G-1
CHGVIEW (Change View) dialog command B-6 system performance considerations 14-2
when to use 3-13
Index X-5
command, CL (continued) command, CL (continued)
CPYIGCTBL (Copy DBCS Font Table) D-9 CRTPRTF (Create Printer File) D-5
Create Command (CRTCMD) 20-16 CRTSCHIDX (Create Search Index) 20-16
Create Control Language Program (CRTCLPGM) CRTTBL (Create Table) 13-4
program menus 9-12 Delete DBCS Conversion Dictionary
Create DBCS Conversion Dictionary (DLTIGCDCT) D-19
(CRTIGCDCT) D-15 Delete DBCS Font Table (DLTIGCTBL) D-10
Create Display File (CRTDSPF) Delete DBCS Sort Table (DLTIGCSRT) D-14
building display with 1-4 Delete Menu (DLTMNU) 9-17
creating display files 2-4 Delete Override (DLTOVR) 7-5
DFRWRT parameter 14-1 Delete Panel Group (DLTPNLGRP) 20-15
display file menus 9-9 Delete Search Index (DLTSCHIDXE) 20-17
indicating DBCS files D-5 Display DBCS Conversion Dictionary
program menus 9-12 (DSPIGCDCT) D-19
SHARE parameter 14-2 Display Edit Description (DSPEDTD) 2-24
Create Document (CRTDOC) 20-18 Display File Description (DSPFD) 2-7
Create Duplicate Object (CRTDUPOBJ) Display File Field Description (DSPFFD) 2-7
DBCS conversion dictionary D-15 Display Help Document (DSPHLPDOC) 20-19
use 9-16 Display Menu Attributes (DSPMNUA) 9-16
Create Edit Description (CRTEDTD) 2-23 Display Override (DSPOVR) 7-6
Create Menu (CRTMNU) Display Program References (DSPPGMREF) 2-7
display file menus 9-9 DLTIGCDCT (Delete DBCS Conversion
program menus 9-13 Dictionary) D-19
Create Message File (CRTMSGF) 9-9 DLTIGCSRT (Delete DBCS Sort Table) D-14
Create Panel Group (CRTPNLGRP) DLTIGCTBL (Delete DBCS Font Table) D-10
building display with 1-5 DLTMNU (Delete Menu) 9-17
use 20-15 DLTOVR (Delete Override) 7-5
Create Printer File (CRTPRTF) D-5 DLTPNLGRP (Delete Panel Group) 20-15
Create Search Index (CRTSCHIDX) 20-16 DLTSCHIDXE (Delete Search Index Entry) 20-17
Create Table (CRTTBL) 13-4 DSPEDTD (Display Edit Description) 2-24
creating your own 20-16 DSPFD (Display File Description) 2-7
CRTCLPGM (Create Control Language Program) DSPFFD (Display File Field Description) 2-7
program menus 9-12 DSPHLPDOC (Display Help Document) 20-19
CRTCMD (Create Command) 20-16 DSPIGCDCT (Display DBCS Conversion
CRTDOC (Create Document) 20-18 Dictionary) D-19
CRTDSPF (Create Display File) DSPMNUA (Display Menu Attributes) 9-16
building display with 1-4 DSPOVR (Display Override) 7-6
creating display files 2-4 DSPPGMREF (Display Program References) 2-7
DFRWRT (defer write) parameter 14-1 Edit DBCS Conversion Dictionary
display file menus 9-9 (EDTIGCDCT) D-16
indicating DBCS files D-5 EDTIGCDCT (Edit DBCS Conversion
program menus 9-12 Dictionary) D-16
SHARE parameter 14-2 End Receive (ENDRCV) 3-31
CRTDUPOBJ (Create Duplicate Object) ENDRCV (End Receive) 3-31
saving and restoring DBCS dictionaries D-15 GO (Go to Menu)
use 9-16 generic menu specification 9-16
CRTEDTD (Create Edit Description) 2-23 use 9-1
CRTIGCDCT (Create DBCS Conversion Go to Menu (GO)
Dictionary) D-15 generic menu specification 9-16
CRTMNU (Create Menu) use 9-1
display file menus 9-9 help for, assigning 20-16
program menus 9-13 Initialize Diskette (INZDKT) D-9
CRTMSGF (Create Message File) 9-9 INZDKT (Initialize Diskette) D-9
CRTPNLGRP (Create Panel Group) Move Object (MOVOBJ) D-15
building display with 1-5 MOVOBJ (Move Object) D-15
use 20-15 OVERLAY (Overlay) keyword
effect on help-list updating 18-16
Index X-7
contextual help (continued) Copy DBCS Sort Table (CPYIGCSRT) command
defining on display 18-3 copying DBCS master sort table from data file D-13
definition 19-2 copying DBCS master sort table to data file D-12
continued attribute copying
example A-1 DBCS files
continued-entry field from tape or diskette D-9
backward field-exit processing 6-49 onto tape or diskette D-9
creating 6-42 DBCS font table
DBCS considerations 6-43 copying from tape or diskette (restoring) D-9
example 6-43 copying onto diskette (saving) D-9
forward field-exit processing 6-49 DBCS sort table
keyboard function 6-44 copying from file (move from System/36) D-13
word wrap 6-43 copying to file (move to System/36 or
control character, shift AS/Entry) D-12
description of D-3 COPYR (copyright) tag
inserting D-6 overview A-30
control language (CL) program copyright (COPYR) tag
examples overview A-30
program menu 9-12 country-designated selection character 17-13
RTNPNT(*NO) for program menu 9-14 CPA8424 inquiry message D-10
I/O operations using 3-49 CPF4001-40FF message 8-10
inviting input from 3-30 CPF4101-43FF message 8-10
reading-from-invited-devices from 3-33 CPF4401-44FF message 8-10
control value 6-36 CPF4501-46FF message 8-10
controller, display station G-2 CPF4701-48FF message 8-10
controlling CPF4901-49FF message 8-10
availability of choices 6-36 CPF5001-50FF message 8-10
list entries on list display 17-10 CPF5101-53FF message 8-10
convention CPF5501-56FF message 8-10
recommended CPYIGCSRT (Copy DBCS Sort Table) command
list action (LISTACT) tag A-94 copying DBCS master sort table from data file D-13
pull-down field choice (PDFLDC) tag A-136 copying DBCS master sort table to data file D-12
required CPYIGCTBL (Copy DBCS Font Table) command
list action (LISTACT) tag A-94 copying from tape or diskette D-9
pull-down field choice (PDFLDC) tag A-136 copying onto tape or diskette D-9
conversion Create Command (CRTCMD) command 20-16
alphabetic A-4 Create Control Language Program (CRTCLPGM)
character set and code page, DDS 13-1 command 9-12
character set and code page, UIM A-19 Create DBCS Conversion Dictionary (CRTIGCDCT)
conversion, DBCS command D-15
alphanumeric applications to DBCS Create Display File (CRTDSPF) command
applications D-8 building display with 1-4
alphanumeric blanks to DBCS blanks D-25 creating display files 2-4
changing DBCS conversion dictionaries used D-20 DFRWRT (defer write) parameter
deleting unwanted DBCS words D-25 improving performance with 14-1
description D-19 write operation 3-26
entering double-byte data D-21 display file menus 9-9
function D-20 ENHDSP (enhance display) parameter 6-4
many alphanumeric entries at one time D-24 indicating DBCS files D-5
one alphanumeric entry to double-byte entry D-22 program menus 9-12
performing (including example operations) D-21 SHARE parameter 14-2
use while editing DBCS conversion dictionary D-25 Create Document (CRTDOC) command 20-18
where you can use D-20 Create Duplicate Object (CRTDUPOBJ) command
Copy DBCS Font Table (CPYIGCTBL) command DBCS conversion dictionaries D-15
copying from tape or diskette D-9 use 9-16
copying onto tape or diskette D-9
Index X-9
cursor in window 5-5 data description specifications (DDS) (continued)
Cursor Input Only (CSRINPONLY) keyword 2-16 display files (continued)
cursor key passing data between routing steps 11-3
movement 6-62 use in 2-7
DSPRL (Display Right-to-Left) keyword 2-19
entry displays 21-46
D ERRMSG (Error Message) keyword 5-6
damaged DBCS devices D-10 ERRMSGID (Error Message ID) keyword 5-6
data ERRSFL (Error Subfile) keyword 5-6
ASSUME keyword considerations for passing 11-1 example
checking validity of 3-37 5250 display station problems 3-45
data CLRL and OVERLAY keywords, differences
receiving 3-4 between 3-15
describing inside or outside your program 2-3 display file menu 9-8
externally described display file source 2-7
definition 2-3 DSPATR(PC) keyword 4-24
using 2-3 DSPMOD keyword 3-27
input DSPMOD keyword with subfiles 4-17
handling negative numeric 3-40 ERRSFL keyword 8-4
keeping 3-36 GRDATR (Grid Line Attribute) keyword 6-80
KEEP keyword considerations for passing 11-1 GRDBOX (Grid Box) keyword 6-80
levels of description 2-2 GRDCLR (Grid Clear) keyword 6-80
passing GRDLIN (Grid Line) keyword 6-80
between programs 11-1 GRDRCD (Grid Record) keyword 6-80
between programs in same routing step 11-1 grid line structure 6-80
between routing steps 11-3 HLPCMDKEY keyword 18-20
program-described HLPCMDKEY keyword with response
definition 2-3 indicators 18-21
described 2-4 HLPDOC keyword 18-10
using 2-27 HLPDOC keyword with option indicators 18-11
receiving 3-4 HLPPNLGRP keyword 18-7
relationship to display file 2-2 HLPPNLGRP keyword with option
rolling between two lines on display 3-16 indicators 18-8
sending and receiving 3-4 HLPRCD keyword 18-13
DATA (data presentation area) tag HLPRCD keyword with option indicators 18-14
example message subfile 4-23
data entry panel A-34 mnemonic 6-38
data entry panel with nested data group A-36 OVERLAY and CLRL keywords, differences
data presentation area with menu area A-36 between 3-15
two presentation areas for data items A-35 program menu 9-11
two-column format in data entry panel A-34 PULLINPUT keyword 6-54
overview A-31 push button 6-35
tags allowed table A-31 PUTOVR keyword 3-18
data area help 19-8 PUTOVR keyword for more efficient coding 3-20
data column (DATACOL) tag PUTOVR keyword for repeatedly entered
overview A-39 data 3-21
data description specifications (DDS) PUTRETAIN keyword, field level 3-24
See also display file PUTRETAIN keyword, record level 3-24
See also keyword, DDS ROLLUP, SFLSIZ, and SFLPAG keywords 4-19
CAnn keys, restrictions 2-13 scroll bar 6-33
changing 2-5 secondary help 18-18
CHECK(FE) (Field Exit) keyword 6-18 selection field 6-12
DBCS capabilities D-5 selection list 6-26
DDS form 2-7 SFLMSGID keyword 8-5
definition 1-1 SFLNXTCHG keyword 4-22
display files SFLPAG, SFLSIZ, and ROLLUP keywords 4-19
passing data between programs 11-1 SFLSIZ, ROLLUP, and SFLPAG keywords 4-19
Index X-11
DBCS conversion dictionary DBCS-graphic fields on double-byte displays D-7
adding the first entries to D-17 DDS (data description specifications)
beginning editing D-17 See also display file
creating D-15 See also keyword, DDS
deleting D-19 CAnn keys, restrictions 2-13
deleting entry D-18 changing 2-5
description D-14 CHECK(FE) (Field Exit) keyword 6-18
displaying and printing D-19 DBCS capabilities D-5
editing (adding and changing terms) D-16 DDS form 2-7
editing suggestions D-18 definition 1-1
ending editing D-18 display files
moving entries D-18 passing data between programs 11-1
printing after displaying D-19 passing data between routing steps 11-3
system-supplied D-14 use in 2-7
user-created D-15 DSPRL (Display Right-to-Left) keyword 2-19
DBCS device entry displays 21-46
damaged D-10 ERRMSG (Error Message) keyword 5-6
display stations D-6 ERRMSGID (Error Message ID) keyword 5-6
DBCS display stations and number of input ERRSFL (Error Subfile) keyword 5-6
fields D-6 example
DBCS field 5250 display station problems 3-45
continued-entry field 6-43 CLRL and OVERLAY keywords, differences
determining the length D-4 between 3-15
DBCS file display file menu 9-8
description of D-5 display file source 2-7
restrictions D-6 DSPATR(PC) keyword 4-24
specifying D-5 DSPMOD keyword 3-27
DBCS font table DSPMOD keyword with subfiles 4-17
checking for existence of D-8 ERRSFL keyword 8-4
copying GRDATR (Grid Line Attribute) keyword 6-80
from tape (restore) D-10 GRDBOX (Grid Box) keyword 6-80
onto diskette (save) D-9 GRDCLR (Grid Clear) keyword 6-80
deleting D-10 GRDLIN (Grid Line) keyword 6-80
description of D-8 GRDRCD (Grid Record) keyword 6-80
restoring from tape or diskette D-9 grid line structure 6-80
saving onto diskette D-9 HLPCMDKEY keyword 18-20
system-supplied D-8 HLPCMDKEY keyword with response
DBCS grid line structure indicators 18-21
See grid line structure HLPDOC keyword 18-10
DBCS master sort table, Japanese HLPDOC keyword with option indicators 18-11
copying from data file D-13 HLPPNLGRP keyword 18-7
copying to data file D-13 HLPPNLGRP keyword with option
DBCS sort table indicators 18-8
checking for existence of D-12 HLPRCD keyword 18-13
copying HLPRCD keyword with option indicators 18-14
from data file (move from System/36) D-13 message subfile 4-23
to data file (move to System/36 or mnemonic 6-38
AS/Entry) D-12 OVERLAY and CLRL keywords, differences
deleting D-14 between 3-15
description D-11 program menu 9-11
restoring from tape or diskette D-12 PULLINPUT keyword 6-54
saving onto diskette D-12 push button 6-35
DBCS words, deleting during DBCS PUTOVR keyword 3-18
conversion D-25 PUTOVR keyword for more efficient coding 3-20
DBCS-graphic and shift control characters D-6 PUTOVR keyword for repeatedly entered
data 3-21
PUTRETAIN keyword, field level 3-24
Index X-13
description dialog command (continued)
field-level HELP (Help) B-9
definition 2-2 HELPHELP (Help Help) B-9
use 2-2 HELPIDX (Help Index) B-9
file-level HOME (Display Home Menu) B-9
definition 2-3 introduction B-1
use 2-3 KEYSHELP (Keys Help) B-10
record-level MENU (Menu) B-10
definition 2-3 Menu Bar Cursor Action (ACTIONS) B-4
use 2-3 MOREKEYS (Display More Function Keys) B-10
description, file Move to Top (MOVETOP) B-11
changing MOVETOP (Move to Top) B-11
reasons for 2-2 MSG (Display Message) B-11
with the CHGDSPF command 2-5 PAGEDOWN (Page Down) B-11
creating for display file 2-4 PAGEUP (Page Up) B-12
definition 1-1 PRINT (Print Display) B-12
detecting changes in 2-6 Print Display (PRINT) B-12
determining 2-2 PROMPT (Prompt) B-13
descriptive text area, entry displays 21-16 prompting an entry field B-13
device PULLDOWN (Display Pull-down Menu) B-14
DBCS RETRIEVE (Retrieve Command String) B-14
damaged D-10 Retrieve Command String (RETRIEVE) B-14
display stations D-6 RETURN (Return Control to Application) B-14
device definition list Return Control to Application (RETURN) B-14
definition 3-3 System Command (CMD) B-7
part of open feedback area C-4 valid uses B-1
DFRWRT (defer write) parameter variable update (VARUPD) attribute B-4
improving performance with 14-1 VARUPD attribute B-4
restrictions 3-26 dialog variable
using 3-26 defined by UIM A-167
DFT (Default) keyword defining 17-1
use 3-26 definition 17-1
with ASSUME keyword 11-1 displaying panel field value using 17-4
DFTVAL (Default Value) keyword 3-26 error messages 17-3
dialog command incorrect display characters 17-4
ACTIONS (Menu Bar Cursor Action) B-4 initial value 17-2
CALL (Call Program) B-4 restrictions 17-3
Call Program (CALL) B-4 variable pool 17-2
CANCEL (Cancel) B-6 Z36ENV A-167
Change View (Change View) B-6 ZCANCEL A-167
CHGVIEW (Change View) B-6 ZDBCS A-167
CMD (System Command) B-7 ZDSPSIZ A-167
CMDLINE (Command Line) B-7 ZEXIT A-167
Command Line (CMDLINE) B-7 ZJOB A-167
Display Help (DSPHELP) B-7 ZJOBNBR A-167
Display Home Menu (HOME) B-9 ZLMTCPB A-167
Display Message (MSG) B-11 ZMENU A-167
Display More Function Keys (MOREKEYS) B-10 ZMNULIB A-167
DSPHELP (Display Help) B-7 ZSYSNAM A-167
effects of B-1 ZUSER A-167
ENTER (Enter) B-8 dictionary, DBCS conversion
entry field prompting B-13 adding the first entries to D-17
EXIT (Exit Display) B-8 beginning editing D-17
Exit Display (EXIT) B-8 creating D-15
Extended Help (EXTHELP) B-9 deleting D-19
EXTHELP (Extended Help) B-9 deleting entry D-18
Index X-15
display file (continued) display panel (PANEL) tag
put with explicit override, System/36 example
compatibility G-6 panel definition A-127
relationship to data 2-2 overview A-122
retain command and function keys, System/36 appli- tags allowed table A-122
cation compatibility G-9 display panel field value using dialog
return codes E-1 variables 17-4
screen size, specifying to improve Display Program References (DSPPGMREF)
performance 14-1 command 2-7
self-check, System/36 application compatibility G-2 Display Right-to-Left (DSPRL) keyword 2-19
sharing in same job 3-50 Display Size (DSPSIZ) keyword 2-24
signed numeric data, System/36 application compat- display station
ibility G-7 acquired, releasing from I/O operations 3-49
suspended 3-43 calculating maximum number of fields 3-39
System/36 application compatibility G-1 device description, changing for printers 2-26
System/36 functions not supported G-10 enhanced capabilities 6-4
use 3-1 models
waiting for data with ICF file, data queue 12-1 3180-2 3-27
window use 5-1 3197 3-27
display file attribute 5250, avoiding record format problems on 3-45
See file attribute obtaining information about 3-3
Display File Description (DSPFD) command 2-7 types 5-3, 6-1
Display File Field Description (DSPFFD) user-defined data streams, differences for 10-1
command 2-7 with UNLOCK 3-35
display file menu display station controller, System/36 application
See menu display compatibility G-2
display form display, application
binary value A-24 See application display
character value A-25 displaying
date value A-25 list 17-8
example numeric values A-24 message
numeric value A-24 about 8-1
time value A-25 in field 8-3
Display Help (DSPHELP) dialog command B-7 in program message queue 8-4
Display Help Document (DSPHLPDOC) on message line 8-2
command 20-19 on message line using message field 8-3
Display Home Menu (HOME) dialog command B-9 on message line when subfile control record
display I/O feedback area C-9 written 8-2
Display Menu Attributes (DSPMNUA) through subfile 8-4
command 9-16 override 7-6
Display Message (MSG) dialog command B-11 panel using request processor program 17-33
display mode System/36 application compatibility G-4
changing 4-17 DL (definition list) tag
DDS keywords ignored if changed 3-28 example
definition 4-17 a definition list A-58
displaying subfiles horizontally with 4-17 compact definition list A-58
Display Mode (DSPMOD) keyword overview A-57
description 3-27 tags allowed table A-57
example for subfiles 4-17 use in help module 20-5
sample subfile display for *DS3 4-19 DLTIGCDCT (Delete DBCS Conversion Dictionary)
sample subfile display for *DS4 4-18 command D-19
subfile use 4-17 DLTIGCSRT (Delete DBCS Sort Table)
Display More Function Keys (MOREKEYS) dialog command D-14
command B-10 DLTIGCTBL (Delete DBCS Font Table) command
Display Override (DSPOVR) command 7-6 deleting D-10
use D-10
Index X-17
edit mask entry field
creating 2-19 attributes for 2-18
Edit Related Words display D-17 CUA 21-54
edit word cursor progression for 2-17
definition 2-23 entry displays 21-14
Edit Word (EDTWRD) keyword 2-23 menu selection 21-10
editing prompting B-13
DBCS conversion dictionary D-16 protecting using Edit Masks 2-19
EDTCDE (Edit Code) keyword 2-23 rules for displays 21-15
EDTIGCDCT (Edit DBCS Conversion Dictionary) entry field attribute
command D-16 creating 2-18
EDTWRD (Edit Word) keyword 2-23 entry pointer for list 17-10
effects of displaying DBCS-graphic fields on ERASE (Erase) keyword
double-byte displays D-7 erasing records 3-10
elements within a panel group 16-3 restriction with USRDSPMGT keyword G-10
embed System/36 application compatibility G-2
See imbed with OVERLAY keyword 3-10
emphasis values table A-101 Erase Input (ERASEINP) keyword
emphasizing fields 2-21 system performance considerations 14-3
enabled selection indicator in selection list use 3-23
example 6-29 erase-input-fields function, System/36 application
enabling graphical user interface (GUI) compatibility G-3
support 17-14 ERASEINP (Erase Input) keyword
End Receive (ENDRCV) command 3-31 system performance considerations 14-3
ending attribute character use 3-23
definition 2-8 erasing input 3-23
ENDRCV (End Receive) command 3-31 ERRMSG (Error Message) keyword 5-6, 8-2
engraved key restrictions 17-14 ERRMSGID (Error Message Identifier) keyword 5-6,
enhanced display (ENHDSP) parameter 8-2
writing records 6-4 error
ENHDSP (enhanced display) parameter See also major/minor return code
writing records 6-4 See also message
ENTER dialog command B-8 field validation 3-34
entering recovering from 8-11
commands that are too long 17-20 recovering from run-time 3-52
entry dialog actions, table of CUA 21-51 while scrolling 17-15
entry display error condition 17-15
CUA entry field 21-53 error message
description 21-11 dialog variables 17-3
descriptive text area 21-16 window 5-6
entry fields 21-14 Error Message (ERRMSG) keyword 5-6, 8-2
examples Error Message ID (ERRMSGID) keyword 5-6
AS/400-style 21-11 Error Message Identifier (ERRMSGID) keyword 8-2
CUA entry field 21-53 Error Message Subfile (ERRSFL) keyword
field prompts 21-12 example DDS source 8-4
instruction lines 21-12 message received from 5-6
online help information restriction with USRDSPMGT keyword G-10
DDS considerations 21-46 use 8-4
description 21-46 ERRSFL (Error Message Subfile) keyword
help areas for 21-46 example DDS source 8-4
types 21-46 message received from 5-6
operating guidelines 21-17 restriction with USRDSPMGT keyword G-10
possible choices information 21-16 use 8-4
prompt areas 21-12 example
title 21-11 a text area A-157
accelerator key 6-22
Index X-19
example (continued) example (continued)
index search A-70 online help information (continued)
index search synonym A-72 HLPCMDKEY keyword 18-20
information display 21-17 HLPCMDKEY keyword with response
key definitions A-75 indicators 18-21
key list A-76 HLPDOC keyword 18-10
left-to-right formatting on left-to-right panel A-150 HLPDOC keyword with option indicators 18-11
left-to-right formatting on right-to-left panel A-150 HLPPNLGRP keyword 18-7
list HLPPNLGRP keyword with option
ordered A-119 indicators 18-8
simple A-152 HLPRCD keyword 18-13
translation A-159 HLPRCD keyword with option indicators 18-14
unordered A-165 imbedded help modules in panel group 20-2
list actions A-95 imported help modules in panel group 20-3
list area ISCH tag 20-9
example, UIM source A-86 ISCHSYN tag 20-9
list column groups A-87 LINK tag 20-15
three layout columns A-87 panel groups with help modules 20-2
list display secondary help 18-18
CUA 21-55 ordered list A-119
extended action entry area 21-21 output operation
list panel 16-14 effect of OVERLAY and ERASE on 3-10
list part A-107 overrides
menu area with groups A-112 applying when compiling program 7-5
menu bar attribute of display file 7-1
choices 6-7 different display file 7-3
DDS 6-62 different display file and attributes 7-4
panel 16-50 panel definition A-127
UIM A-108 panel groups
menu displays command help 20-16
display file menu 9-8 help modules 20-2
message file, adding messages to 9-9 HLPPNLGRP keyword 18-7
message file, describing menu actions in 9-6 HLPPNLGRP keyword with option
naming help formats in message file 9-6 indicators 18-8
program menu 9-11 imbedded help modules 20-2
program menu, CL source for 9-12 imported help modules 20-3
RTNPNT(*NO) for program menu, CL source ISCH tag 20-9
for 9-14 ISCHSYN tag 20-9
single choice 21-8 LINK tag 20-15
using options and GO command 9-2 paragraph continuation A-131
menu panel 16-6 paragraph tag A-121
creating 16-6 parameter list A-130
menu source 16-9 passing data
menu-bar choice help 6-57 between routing steps 11-3
menu-bar help list 6-59 in same routing step 11-1
message print title line A-145
ERRSFL keyword 8-4 program-described display file 2-27
SFLMSGID keyword 8-5 pull-down menu 6-18, 6-62
message, trailer A-148 PULLINPUT parameter 6-54
mnemonic, not valid DDS for 6-38 push button 6-35
multiple-choice selection list 6-25 radio button 6-1
multiple-selection field (UIM) A-53 record format, replacing 3-8
note A-117 record, DDS
numeric values table A-24 HLPCMDKEY keyword 18-20
online help information HLPCMDKEY keyword with response
command help 20-16 indicators 18-21
display showing help areas 18-4 HLPRCD keyword 18-13
Index X-21
field (continued) field-level description
character, maximum length 2-11 definition 2-2
characteristics of 2-2 use 2-2
choice entry, Common User Access 21-53 field, graphic A-6
color 2-22 FIG (figure) tag
constant 2-10 example, sample figure A-59
cursor progression overview A-59
defining 2-17 use in help module 20-6
default values, specifying 3-26 figure (FIG) tag
defining example, sample figure A-59
attribute 2-18 overview A-59
cursor progression 2-17 use in help module 20-6
definition 2-2 file
display 2-7 DBCS
displaying 2-8 diskette D-5
emphasizing 2-21 display D-5
entry ICF D-5
See entry field printer D-5
erasing unprotected input and output/input 3-23 tape D-5
hidden 2-9 definition 2-3
input 2-9 display
input and output, displayed in response to See display file
request 2-10 shared in job
input-capable, limitations on number of 3-39 close operation for 3-52
keeping on display 3-23 input/output operation for 3-51
list 21-24 open operation for 3-51
maximum number in record format 2-10 source 1-2
menu selection entry 21-10 file attribute
message 2-10 building 7-1
numeric overriding
maximum length 2-11 along with display file name in HLL
output 2-9 programs 7-3
output/input 2-9 display files in HLL programs 7-1
overriding attributes or content of 3-18 file description
previously described 2-11 changing
program-to-system reasons for 2-2
understanding how to use 2-10 with the CHGDSPF command 2-5
with DSPATR keyword 2-21 creating for display file 2-4
record format 2-9 definition 1-1
reference 2-11 detecting changes in 2-6
validation errors 3-34 determining 2-2
zoned decimal, maximum length 2-11 file redirection
field (*FLD) special value 6-57 definition 7-6
field attribute character 2-8 different file types 7-6
Field Cursor Progression (FLDCSRPRG) level checking 7-6
keyword 2-17 same file types 7-6
Field Exit (CHECK(FE)) keyword 6-18 table of defaults for combinations 7-7
field location valid for input and output 7-7
input and output records 2-9 file resource
when to specify 2-11 how allocated 3-1
field prompt, entry displays 21-12 file-dependent feedback area 3-3
field value for display panel using dialog file-level description 2-3
variables 17-4 FLDCSRPRG (Field Cursor Progression)
field-exit processing keyword 2-17
backward 6-49 folding
forward 6-49 list panel 17-26
Index X-23
Grid Line Attribute (GRDATR) keyword 6-80 help (continued)
grid line structure panels A-3
definition 6-79 HELP (help module) tag
example, DDS 6-80 example, help panel definition A-61
hardware requirements 6-82 overview A-60
overview 6-79 placement in UIM source 20-2
window 6-81 UIM source showing panel groups with help
Grid Record (GRDRCD) 6-80 modules 20-2
group object, panel A-2 HELP (Help) keyword
GRTOBJAUT (Grant Object Authority) enabling the Help key 18-2
command D-15 function key use 2-12
GUI (graphical user interface) specifying alternative 2-13
support 17-14 System/36 application compatibility G-7
guideline help area
CUA, single selection field operation 21-53 See online help information
message 21-49 Help Area (HLPARA) keyword 18-4
operating help boundary
entry displays 21-17 definition 18-17
information displays 21-21 Help Boundary (HLPBDY) keyword
list display 21-26 secondary help 18-18
menu displays 21-10 use 18-17
Help Command Key (HLPCMDKEY) keyword
restriction with USRDSPMGT keyword G-10
H use 18-20
H specification HELP dialog command B-9
definition 18-4 help display
effect on help-list updating 18-16 See online help information
entering in DDS source 18-4 Help Document (HLPDOC) keyword
order in DDS source 18-4 for specifying the document name 18-9
paging order 18-16 with HLPRCD and HLPPNLGRP 18-11
H1 through H4 (headings) with option indicators 18-11
example Help Exclude (HLPEXCLD) keyword 18-6
heading tags A-65 help for field 6-59
help module 20-4 Help Full (HLPFULL) keyword 18-6
overview A-65 help group
handle on list entry 17-9 definition 18-17
handling function keys and VARUPD value 17-21 help information
header area See online help information
defining 17-36 Help InfoSeeker (HLPSHELF) keyword 18-6
heading (H1 through H4) tag Help key 19-1
example See also ALTHELP (Alternate Help) keyword
heading tags A-65 See also HELP (Help) keyword
overview A-65 enabling 18-2
use in help module 20-4 results when pressed 18-1
heading, column 21-24 returning to program after pressing 18-20
help returning to program without pressing 18-22
choice-level 6-56 help list
data area 19-8 defining for application 6-58
defining for application 6-56 definition 18-16
displayed in window 5-7, 5-9 help module
field 6-59 contained in different help panel group, using 20-3
function key area 19-15 definition 20-2
item specific 6-58 emphasizing and formatting text within 20-4
list area 19-3 examples
menu area 19-6 command help 20-16
menu bar area 19-13 imbedded 20-2
imported 20-3
Index X-25
HOME (Home) keyword 2-12 ICF file
horizontal selection field DBCS D-5
cursor movement 6-16, 6-17 file entry field attributes 12-1
example 6-14 waiting for data with display file, data queue 12-1
HP0 through HP9 (highlighted phrase) tag identifier fields for menu displays 21-34
overview A-63 identifier, level 2-6
use in help module 20-4 ideographic characters (IGC)
HTML (Hypertext Markup Language) keyword formatting
inserting 6-82 BOTINST (bottom instruction) tag A-10
resolving field overlap 6-83 DATAC (data item choices) tag A-38
examples 6-83 PDFLDC (pull-down field choice) tag A-136
restrictions 6-87 TOPINST (top instruction) tag A-161
hypertext IGC (ideographic characters)
See also online help information formatting
definition 20-13 BOTINST (bottom instruction) tag A-10
hypertext link DATAC (data item choices) tag A-38
example A-80 PDFLDC (pull-down field choice) tag A-136
hypertext link definition (LINK) tag TOPINST (top instruction) tag A-161
conditional expressions IGCALTTYP (Alternative Data Type) keyword D-5
CHKOBJ built-in function A-79 ILE C functions
CHKUSRCLS (check user class) built-in I/O requests for subfiles 4-15
function A-80 mapping to I/O operations 3-49
example, hypertext link A-80 ILE COBOL statement
overview A-78 I/O requests for subfiles 4-15
placement in UIM source 20-15 mapping to I/O operations 3-49
Hypertext Markup Language (HTML) keyword ILE RPG operation
resolving field overlap 6-83 I/O requests for subfiles 4-15
using 6-82 mapping to I/O operations 3-49
hypertext reference phrase imbed help (IMHELP) tag
See also online help information example, imbedded help A-66
definition 20-14 overview A-66
placement in UIM source 20-2
imbedding
I nesting source files A-6
I/O feedback area imbedding source files
common C-6 nesting imbeds A-6
contents 3-3 imbedding UIM source files A-6
definition 3-3 IMHELP (imbed help) tag
display C-9 example, imbedded help A-66
I/O operation overview A-66
acquiring a display station for 3-2 placement in UIM source 20-2
locking keyboard and positioning cursor 3-41 UIM source showing panel groups using 20-2
mapping to HLL operations UIM source showing panel groups with help
CL commands 3-49 modules 20-2
ILE C functions 3-49 IMPORT (import) tag
ILE COBOL statements 3-49 overview A-67
ILE RPG operations 3-49 placement in UIM source 20-3
obtaining information about 3-3 UIM source showing panel groups using 20-3
releasing an acquired display station from 3-49 improving
requesting productivity with UIM 15-1
for subfile control record formats 4-15 system performance with displays 14-1
for subfile record formats 4-12 improving productivity with UIM 15-1
for subfiles 4-12 inactive subfile record
I/O request definition 4-4
high-level languages, table of subfile 4-15 incorrect characters in dialog variable 17-4
supported by high-level languages 3-49
Index X-27
input/output operation (continued) ISCHSYN (index search synonym) tag
files shared in a job 3-51 parameter list A-72
locking keyboard and positioning cursor 3-41 placement in UIM source 20-9
mapping to HLL operations item-specific help 6-58
CL commands 3-49
ILE C functions 3-49
ILE COBOL statements 3-49 J
ILE RPG. operations 3-49 job
mapping to I/O operations 3-49 close operation for files shared in 3-52
obtaining information about 3-3 input/output operation for files shared in 3-51
releasing an acquired display station from 3-49 open operation for files shared in 3-51
requesting
for subfile control record formats 4-15
for subfile record formats 4-12
K
KEEP (Keep) keyword
for subfiles 4-12
considerations 11-1
input/output request
example DDS source 11-3
high-level languages, table of subfile 4-15
restriction with USRDSPMGT keyword G-10
supported by high-level languages 3-49
sharing file between programs 11-1
inserting
System/36 application compatibility G-2
entry from list display 17-10
key
HTML tags 6-82
Cancel and Exit, using on menus 9-2
inserting entry from list 17-10
CAnn and CFnn, defining 2-12
instruction line
CFnn (command function), validity
entry displays 21-12
considerations 3-45
information displays 21-20
command
list display 21-22
defining 2-12
menu displays, single-choice 21-9
validity considerations 3-45
interaction
command attention (CAnn) 2-12
between menu bar and application 6-50
command function (CFnn) 2-12
between menu bar and pull-down menu 6-60
function
interactive response time for list displays 17-11
defining 2-11
interpretation of command line 17-19
System/36 application compatibility G-7
INVITE (Invite) keyword
key assignments, common
system performance considerations 14-3
See common key assignments
use 3-30
key definition
invite operation
example A-75
CL command for 3-49
key interaction for menu bars and pull-down
definition 3-30
menus 6-60
ILE C function for 3-49
key list (KEYL) tag
ILE COBOL statement for 3-49
example, key list A-76
ILE RPG operation for 3-49
overview A-76
system performance considerations 14-3
tags allowed table A-76
invited input, reading from the display 3-31
key list item (KEYI) tag
INZDKT (Initialize Diskette) command D-9
example, key definitions A-75
INZINP (Initialize Input) keyword
overview A-74
performance considerations 14-3
keyboard
INZRCD (Initialize Record) keyword
locking 3-10
example with UNLOCK keyword 3-36
locking during I/O operations 3-41
use 3-35
unlocking while the program is processing
ISCH (index search) tag
data 3-35
parameter list A-70
keyboard function
placement in UIM source 20-9
continued-entry field 6-44
ISCHSUBT (index search subtopic) tag
KEYI (key list item) tag
parameter list A-71
example, key definitions A-75
placement in UIM source 20-11
overview A-74
Index X-29
keyword, DDS (continued) keyword, DDS (continued)
HELP (Help) HOME (Home) 2-12
enabling Help key 18-2 HTML (Hypertext Markup Language)
function key use 2-12 resolving field overlap 6-83
Help Area (HLPARA) 18-4 restrictions 6-87
Help Boundary (HLPBDY) use 6-82
use 18-17 INDARA (Indicator Area) 2-15
Help Command Key (HLPCMDKEY) Indicator Area (INDARA) 2-15
use 18-20 Initialize Record (INZRCD)
Help Document (HLPDOC) use 3-35
description 18-9 INVITE (Invite)
with option indicators 18-11 description 3-30
Help Exclude (HLPEXCLD) 18-6 system performance considerations 14-3
Help Full (HLPFULL) 18-6 INZINP (Initialize Input), system performance consid-
Help InfoSeeker (HLPSHELF) 18-6 erations 14-3
Help Panel Group (HLPPNLGRP) INZRCD (Initialize Record)
description 18-6 example with UNLOCK keyword 3-36
with option indicators 18-8 use 3-35
Help Record (HLPRCD) KEEP (Keep)
description 18-12 description 11-1
with option indicators 18-13 example DDS source 11-3
Help Return (HLPRTN) 18-22 keywords ignored if display modes are
Help Search Index (HLPSCHIDX) 18-6 changed 3-28
Help Sequencing (HLPSEQ) 18-17 LOCK (Lock) 3-42
Help Title (HLPTITLE) 18-6 MDTOFF (Modified Data Tag Off) 3-23
HLPARA (Help Area) 18-4 MOUBTN (Programmable Mouse Button) 6-69
HLPBDY (Help Boundary) MSGALARM (Message Alarm) 8-7
secondary help 18-18 MSGID (Message Identifier) 8-3
use 18-17 OVERLAY (Overlay)
HLPCMDKEY (Help Command Key) description 3-10
response indicators, sample source with 18-21 effect on output operation 3-10
sample DDS source 18-20 example of effects with ERASE 3-10
use 18-20 example with CLRL 3-15
HLPDOC (Help Document) system performance considerations 14-3
description 18-9 Override Attribute (OVRATR)
option indicators, sample source with 18-11 system performance considerations 14-2
sample DDS source 18-10 use 3-18
with option indicators 18-11 Override Data (OVRDTA) 3-20
HLPEXCLD (Help Exclude) 18-6 system performance considerations 14-2
HLPFULL (Help Full) 18-6 OVRATR (Override Attribute)
HLPPNLGRP (Help Panel Group) system performance considerations 14-2
description 18-6 use 3-18
option indicators, sample source with 18-8 OVRDTA (Override Data) 3-20
sample DDS source 18-7 system performance considerations 14-2
with option indicators 18-8 Page Down (PAGEDOWN) 2-12
HLPRCD (Help Record) Page Up (PAGEUP)
description 18-12 defining 2-12
option indicators, sample source with 18-14 PAGEDOWN (Page Down) 2-12
sample DDS source 18-13 PAGEUP (Page Up) 2-12
secondary help 18-18 PASSRCD (Passed Record) 11-3
with option indicators 18-13 PRINT (Print)
HLPRTN (Help Return) 18-22 enabling 2-25
HLPSCHIDX (Help Search Index) 18-6 for function key 2-12
HLPSEQ (Help Sequencing) 18-17 results available (table) 2-25
HLPSHELF (Help InfoSeeker) 18-6 Programmable Mouse Button (MOUBTN) 6-69
HLPTITLE (Help Title) 18-6 PSHBTNCHC (Push Button Choice) 6-35
Index X-31
keyword, DDS (continued) keyword, DDS (continued)
Subfile End (SFLEND) 4-4 Window Title (WDWTITLE) 5-9
Subfile Enter (SFLENTER) 4-4 Word Wrap (WRDWRAP) 2-20, 6-43
Subfile Fold (SFLFOLD) 4-4
Subfile Initialize (SFLINZ) 4-4
Subfile Line (SFLLIN) 4-4 L
Subfile Message (SFLMSG) layout
defining 4-4 title lines table A-143
description 4-4 layout and positions summary table A-105, A-106
displaying on message line when subfile control left-to-right formatting on a left-to-right panel
record written 8-2 example A-150
Subfile Message Identifier (SFLMSGID) left-to-right formatting on a right-to-left panel
defining 4-4 example A-150
description 4-4 level identifier
displaying on message line when subfile control changes in 2-6
record written 8-2 definition of 2-6
sample DDS 8-5 determining 2-6
Subfile Message Key (SFLMSGKEY) library
description 4-4 QUSRSYS library 13-4
displaying messages from a program message QUSRTOOL
queue 8-4 definition 1-5
Subfile Message Record (SFLMSGRCD) display examples 21-1
description 4-4 panel groups, using word processing functions
displaying messages from a program message when creating 18-2
queue 8-4 limitations
Subfile Mode (SFLMODE) 3-29 panel formatter 17-24
Subfile Next Changed (SFLNXTCHG) line
description 4-4 clearing a specified number of 3-13
example 4-22 rolling data between 3-16
Subfile Page (SFLPAG) line, instruction
example with ROLLUP and SFLSIZ 4-19 See instruction line
use in subfile control record format 4-3 line, options 21-23
Subfile Program Message Queue (SFLPGMQ) LINES (unformatted lines) tag
description 4-4 example, unformatted lines A-77
displaying messages from a program message overview A-77
queue 8-4 use in help module 20-6
Subfile Record Number (SFLRCDNBR) LINK (hypertext link) tag
description 4-4 conditional expressions
improving subfile performance 14-1 CHKOBJ built-in function A-79
Subfile Records Not Active (SFLRNA) 4-4 CHKUSRCLS (check user class) built-in
Subfile Return Selected Choice (SFLRTNSEL) 6-27 function A-80
Subfile Roll Value (SFLROLVAL) 4-4 example, hypertext link A-80
Subfile Scroll (SFLSCROLL) 6-28 overview A-78
Subfile Single-Choice Selection placement in UIM source 20-15
(SFLSNGCHC) 6-26 UIM source showing panel groups using 20-15
Subfile Size (SFLSIZ) list
example with ROLLUP and SFLPAG 4-19 adding entries, 17-9
use in subfile control record format 4-3 displaying 17-8
UNLOCK (Unlock) incomplete processing 17-9
effects on input operation 3-36 initializing 17-8
example with INZRCD keyword 3-36 inserting entry from 17-10
unlocking while program is processing data 3-35 key A-76
USRDFN (User-Defined) 10-1 managing 17-7
validity-checking 3-37 ordered A-118
VALNUM 3-37 parameter A-129
VALUES (Values) 3-37 part A-107
Index X-33
literal, graphic A-6 MDTOFF (Modified Data Tag Off) keyword 3-23
location information, displays 21-19 member
location of window 5-4, 5-5 source
LOCK (Lock) keyword 3-42 definition 1-2
locked display file 3-1 MENU (menu area) tag
locking keyboard and positioning cursor 3-41 example
LP (list part) tag menu area with groups A-112
example, list part A-107 simple menu area A-112
overview A-107 tags allowed table A-111
use in help module 20-5 menu area
help 19-6
scrolling 17-16
M with groups
Main Menu display 9-2 example A-112
major/minor return code menu area (MENU) tag
major return code definitions example
00 8-11 menu area with groups A-112
02 8-11 simple menu area A-112
03 8-11 tags allowed table A-111
04 8-11 menu bar
08 8-11 area help 19-13
11 8-11 creating 6-7
34 8-11 definition 6-7
80 8-11 example 6-7, 6-62
81 8-11 interaction with application 6-50
82 8-11 interaction with pull-down menu 6-60
83 8-11 using 17-27
recovering from errors menu bar (MBAR) tag
completion with exceptions 8-12 example, menu bar A-108
device or session error on open or acquire opera- overview A-108
tion 8-14 tags allowed table A-108
normal completion 8-11 menu bar choice (MBARC) tag
permanent device or session error on I/O opera- overview A-110
tion 8-13 tags allowed table A-110
permanent system or file errors 8-13 Menu Bar Cursor Action (ACTIONS) dialog
recoverable device or session errors on I/O oper- command B-4
ation 8-14 menu bar panel
understanding 8-10 application programming 16-63
managing creating 16-50
panel functions 17-13 source 16-53
managing list 17-7 menu definition 16-2
managing panel functions 17-13 MENU dialog command B-10
markup separator A-1 menu display
MBAR (menu bar) tag See also application display
example, menu bar A-108 Cancel key, using on 9-2
overview A-108 changing attributes 9-16
tags allowed table A-108 choosing which to display at sign-on time 9-3
MBARC (menu bar choice) tag creating UIM 16-6
overview A-110 CUA 21-52
tags allowed table A-110 deleting 9-17
MDT (modified data tag) description 21-8
character translation 13-2 determining the previous menu 9-1
definition 2-10 display file
resetting 3-23 building 9-7
with ASSUME keyword 11-1 creating for 9-9
creating menu object for 9-9
creating message file for 9-9
Index X-35
message (continued) messages displayed on message line priorities 8-3
CPF5101-53FF 8-10 mixed display
CPF5501-56FF 8-10 example 21-21
creating and displaying 8-1 mnemonic
description 21-49 coding, not valid 6-38
displaying defining 6-38
in field 8-3 definition 6-1
in program message queue 8-4 valid coding for 6-38
message line for 8-3 MNUBARDSP (Menu-Bar Display) keyword
on message line 8-2 application record 6-50, 6-62
on message line when subfile control record menu-bar record 6-51, 6-65
written 8-2 mode, display
priorities for 8-3 changing 4-17
through subfile 8-4 definition 4-17
error displaying subfiles horizontally with 4-17
displaying from subfiles 4-23 modified data tag (MDT)
examples character translation 13-2
ERRSFL keyword 8-4 definition 2-10
SFLMSGID keyword 8-5 resetting 3-23
guidelines 21-49 with ASSUME keyword 11-1
line relationship, CUA 21-52 Modified Data Tag Off (MDTOFF) keyword 3-23
reasons for 8-1 monitor message 8-9
sounding alarm for 8-7 MOREKEYS (Display More Function Keys) dialog
system command B-10
alert 8-9 MOUBTN (Programmable Mouse Button)
analyzing 8-8 keyword 6-69
detecting 8-8 mouse button, programmable
diagnostic 8-8 See Programmable Mouse Button (MOUBTN)
escape 8-8 keyword
file status code 8-8 Move Object (MOVOBJ) command D-15
message queues 8-8 Move to Top (MOVETOP) dialog command B-11
notifying 8-8 MOVETOP (Move to Top) dialog command B-11
permanent 8-9 moving
reporting 8-8 cursor
status 8-8 CSRINPONLY keyword 2-16
System/36 application compatibility G-4 using cursor keys 6-62
understanding 8-9 using tab key 6-61
window 5-6 window 5-11
Message Alarm (MSGALARM) keyword 8-7 MOVOBJ (Move Object) command D-15
message description 2-16 MSG (Display Message) dialog command B-11
message field to display message on message MSGALARM (Message Alarm) keyword 8-7
line 8-3 MSGID (Message Identifier) keyword 8-3
message file MSGLOC (Message Location) keyword 5-6
adding messages to 9-9 multiple panel foldup when EXIT requested 17-24
creating 9-9 multiple-choice selection field
describing menu action in 9-5 colors and display attributes 6-40
message line definition 6-10
definition 2-10 vertical 6-14
scrolling 17-15 multiple-choice selection list
use 2-10 creating 6-26
Message Location (MSGLOC) keyword 5-6 definition 6-24
message subfile 4-23 example 6-25
message text symbol A-5 multiple-selection field (UIM)
message, monitor example A-53
See message
Index X-37
online help information (continued) online help information (continued)
help areas panel groups (continued)
DDS keywords for 18-4 deleting 20-15
defining 18-3 deleting search index 20-17
office documents, specifying for 18-9 designing hypertext links 20-14
panel groups, specifying 18-6 documents and records in same file with 18-8
record 18-4 emphasizing and formatting text in help
records, specifying for 18-12 modules 20-4
required DDS source 18-4 entering UIM source for 20-1
Help key full-screen help, indicating 18-6
enabling 18-2 headings in help modules, adding 20-4
returning control to program after pressing 18-20 help modules, linking 20-13
returning control to program without help modules, using more than once 20-2
pressing 18-22 help, specifying for 18-6
help text displayed according to cursor highlighting text in help modules 20-4
position 17-17 HLPPNLGRP keyword 18-7
hypertext HLPPNLGRP keyword with option
creating links 20-14 indicators 18-8
definition 20-13 hypertext 20-13
designing links 20-14 hypertext reference phrase 20-14
reference phrase, definition 20-14 index search function 20-6
index search Index search, enabling 18-6, 19-4
accessing 19-4 InfoSeeker, enabling 18-6, 19-3
index search function making lists in help modules 20-5
See also InfoSeeker function name of help screen, defining 18-6
deciding topics 20-9 option indicators, specifying with 18-8
function 20-6 organizing with help modules 20-2
root words, choosing for topic 20-10 paragraphs and notes, defining in help
root words, defining 20-9 modules 20-4
root words, including as synonyms 20-9 programming keywords and variables, identifying
synonyms for root words, designating 20-9 in help modules 20-5
synonyms, choosing for topic 20-10 purpose of UIM tags 20-1
topics, defining 20-9 records and documents in same file with 18-8
UIM tags for 20-6 removing entries from search index 20-17
information display root words, choosing for index search
DDS considerations 21-47 topic 20-10
description 21-47 root words, defining 20-9
help areas for 21-47 root words, including as index search
InfoSeeker synonyms 20-9
accessing 19-3 secondary help, excluding as 18-6
list display structured text in help modules, indicating 20-6
DDS considerations 21-49 synonyms for root words, designating 20-9
description 21-48 synonyms, choosing for index search
help areas for 21-48 topic 20-10
menu display topics, defining 20-9
DDS considerations 21-45 user-defined, enabling 19-4
help areas for 21-44 uses for 20-1
types 21-44 using a help module contained in different 20-3
overview 19-2 record, DDS
panel groups comparing with panel groups and
adding entries to search index 20-17 documents 18-2
command help, assigning 20-16 entering source 18-14
comparing with documents and records 18-2 help boundaries 18-17
creating 20-15 help group 18-17
creating hypertext links 20-14 help list 18-16
creating search index 20-16 help sublist 18-17
DDS functions for 18-6 help, defining for 20-19
Index X-39
OVERLAY (Overlay) keyword (continued) overriding and sharing printer file 17-37
system performance considerations 14-3 OVRATR (Override Attribute) keyword
System/36 application compatibility G-2 system performance considerations 14-2
override use 3-18
applying when compiling program 7-4 OVRDSPF (Override with Display File) command
attributes 3-18 compared to CHGDSPF 2-2
CL programs file attributes 7-1
included in 7-1 file names 7-3
QCMDEXC, use of 7-1 file names and attributes 7-3
commands that ignore or restrict 7-9 indicating DBCS files D-5
Delete Override (DLTOVR) command 7-5 OVRDTA (Override Data) keyword
deleting 7-5 description 3-20
determining whether or not to use 7-1 system performance considerations 14-2
different file types 7-6 OVRPRTF (Override with Printer File)
display file attributes in HLL programs 7-1 command D-5
display file names and attributes in HLL
programs 7-3
display file names in HLL programs 7-3 P
Display Override (DSPOVR) command 7-6 P (paragraph) tag
displaying 7-6 example, paragraph tag A-121
effect on other jobs 7-1 overview A-121
entering 7-1 placement in UIM source 20-2
examples use in help module 20-4
applying when compiling program 7-5 page 420 for code page conversion A-20
attribute of display file 7-1 page 424 for code page conversion A-20
different display file 7-3 Page Down (PAGEDOWN) keyword
different display file and attributes 7-4 for function key 2-12
file redirection specifying alternative 2-13
definition 7-6 page eject during printing 17-37
different file types 7-6 Page Up (PAGEUP) keyword
level checking (LVLCHK) 7-6 for function key 2-12
same file types 7-6 specifying alternative 2-13
table of defaults for combinations 7-7 page, code
valid for input and output 7-7 See code page
Override with Display File (OVRDSPF) command PAGEDOWN (Page Down) keyword
file attributes 7-1 for function key 2-12
file names 7-3 specifying alternative 2-13
file names and attributes 7-3 PAGEDOWN dialog command B-11
performance considerations 14-2 PAGEUP (Page Up) keyword
properties of 7-1 for function key 2-12
same file types 7-6 specifying alternative 2-13
when in effect 7-1 PAGEUP dialog command B-12
when to apply 7-1 paging
Override Attribute (OVRATR) keyword help displays, DDS records 18-16
system performance considerations 14-2 location information, list displays 21-25
use 3-18 panel
Override Data (OVRDTA) keyword areas A-2
description 3-20 definition 16-2, A-2
system performance considerations 14-2 group object A-2
Override with Display File (OVRDSPF) command help A-2
compared to CHGDSPF 2-2 organization A-2
file attributes 7-1 outline A-2
file names 7-3 UIM menu outline A-2
file names and attributes 7-3 PANEL (display panel) tag
Override with Printer File (OVRPRTF) example, panel definition A-127
command D-5 overview A-122
Index X-41
PARML (parameter list) tag PNLGRP (panel group) tag
example, parameter list A-130 overview A-139
overview A-129 placement in UIM source 20-2
tags allowed table A-129 tags allowed table A-139
use in help module 20-5 UIM source showing panel groups with help
Passed Record (PASSRCD) keyword 11-3 modules 20-2
passing data pointer device event
between routing steps 11-3 processing priority
in the same routing step 11-1 other pointer device 6-79
PASSRCD (Passed Record) keyword shifted left button pressed 6-76
example DDS source 11-3 shifted left button released 6-76
use 11-3 shifted right button pressed 6-78
PC (paragraph continuation) tag unshifted left button double click 6-75
example, paragraph continuation A-131 unshifted left button pressed 6-73
overview A-131 unshifted left button released 6-75
use in help module 20-4 processing states 6-72
PDACCEL (pull-down accelerator) tag programmable mouse button 6-69
overview A-132 pop-up window
PDFLD (pull-down field) tag adding 17-31
overview A-133 adding over another panel 17-27
tags allowed table A-133 adding to display stack 17-31
PDFLDC (pull-down field choice) tag help information A-61
overview A-134 removing 17-31
recommended conventions A-136 pop-up window and pull-down menu
required conventions A-136 differences 17-28
PDM (programming development manager) position of window 5-4, 5-5
definition 1-2 possible choices information, entry displays 21-16
performance primary help, definition 18-16
command attention keys versus command function PRINT (Print Display) dialog command B-12
keys 14-3 PRINT (Print) keyword
DDS windows 14-4 enabling 2-25
deferring write operation 14-1 for function key 2-12
designating primary screen size 14-1 results available (table) 2-25
ERASEINP keyword, considerations with 14-3 Print Display (PRINT) dialog command B-12
invite operation 14-3 print head panel (PRTHEAD) tag
INZINP keyword, considerations with 14-3 example, print title lines A-145
overlapping but not deleting records 14-2 layout of title lines tables A-144, A-145
OVERLAY keyword, considerations with 14-3 overview A-142
override commands 14-2 tags allowed table A-142
PUTOVR, OVRDTA and OVRATR keywords, consid- print head panel printing 17-35
erations with 14-2 Print key
restoring display 14-3 enabling 2-25
RSTDSP (restore display) results available (table) 2-25
keywords that require 14-3 print panel (PRTPNL) tag
system performance considerations 14-3 overview A-146
sending records with input fields 14-2 tags allowed table A-146
sharing open data paths for same job 14-2 print panel printing 17-35
subfile use 14-1 print title lines
ways to improve using displays 14-1 example A-145
window application 5-13 print trailer message (PRTTRAIL) tag
period (.) symbol A-5 example, trailer message A-148
PK (programming keyword) tag overview A-148
overview A-138 printer characters, incorrect 17-4
use in help module 20-5 printer file sharing and overriding 17-37
placement of window 5-4, 5-5 printer files in DBCS D-5
Index X-43
pull-down menu (continued) QIGC system value (continued)
restrict cursor 6-24 DBCS conversion dictionaries (continued)
single-choice selection field 6-18 display D-19
updating before displaying 6-55 edit, examples of D-17
pull-down menu and pop-up window editing (adding and changing terms) D-16
differences 17-28 perform object management functions with D-15
PULLDOWN dialog command B-14 printing D-19
PULLINPUT (Pull-Down Menu Input) parameter QIGC2424 (DBCS font table) D-8
example 6-54 QRCVDTAQ (receive data queue) program 12-1
push button QSNDDTAQ (send data queue) program 12-1
creating 6-35 QSYSIGCDCT (system-supplied DBCS conversion
definition 6-34 dictionary)
example, DDS 6-35 contents D-14
Push Button Choice (PSHBTNCHC) keyword 6-35 definition D-14
Push Button Field (PSHBTNFLD) keyword 6-35 queue, data
Put with Explicit Override (PUTOVR) keyword See DTAQ (data queue) parameter
for repeatedly entered data 3-21 QUSRIGCDCT (user-created dictionary) D-15
more efficient coding 3-20 QUSRSYS library 13-4
sample DDS source 3-18 QUSRTOOL library
put-relative operation for subfiles definition 1-5
BASIC statement for 4-15 display examples 21-1
definition 4-12 panel groups, using word processing functions when
ILE C function for 4-15 creating 18-2
ILE COBOL statement for 4-15
ILE RPG operation for 4-15
Put-Retain (PUTRETAIN) keyword R
example radio button
field level 3-24 definition 6-1
record level 3-24 example 6-1
restriction with USRDSPMGT keyword G-10 read operation
System/36 application compatibility G-2 canceling read operation, CL command for 3-49
using 3-23 definition 3-33
PUTOVR (Put with Explicit Override) keyword definition for subfile 4-15
description 3-18 subfiles
example BASIC statement 4-15
more efficient coding 3-20 ILE C function for 4-15
repeatedly entered data 3-21 ILE COBOL statement for 4-15
sample DDS source 3-18 ILE RPG operation for 4-15
system performance considerations 14-2 with no wait
System/36 application compatibility G-6 CL command for 3-49
PUTRETAIN (Put-Retain) keyword ILE COBOL statement for 3-49
example ILE RPG operation for 3-49
field level 3-24 with wait
record level 3-24 CL command for 3-49
restriction with USRDSPMGT keyword G-10 ILE C function for 3-49
System/36 application compatibility G-2 ILE COBOL statement for 3-49
using 3-23 ILE RPG operation for 3-49
PV (programming variable) tag read-from-invited-program-devices operation
overview A-149 after inviting input 3-30
use in help module 20-5 from CL programs,
reading-from-invited-devices 3-33
ILE C function for 3-49
Q ILE COBOL statement for 3-49
QIGC system value ILE RPG operation for 3-49
DBCS conversion dictionaries understanding 3-32
creating D-15
deleting D-19
Index X-45
response indicator (continued) return code (continued)
removing from record area 2-15 display file (continued)
restriction with USRDSPMGT G-10 major 00 E-1
ROLLDOWN keyword, use with 2-15 major 02 E-1
ROLLUP keyword, use with 2-15 major 03 E-2
SETOF or SETOFF keyword, use with 2-15 major 04 E-2
response time major 08 and 11 E-3
for list displays 17-11 major 34 E-3
list displays 17-11 major 80 E-3
window application 5-13 major 81 E-5
restore display (RSTDSP) parameter major 82 E-6
example 3-43 major 83 E-10
keywords that require 14-3 major/minor
system performance considerations 14-3 See major/minor return code
use 3-43 Return Control to Application (RETURN) dialog
Restore Library (RSTLIB) command D-15 command B-14
Restore Object (RSTOBJ) command Return Cursor Location (RTNCSRLOC)
DBCS conversion dictionaries D-15 keyword 3-29
DBCS sort table D-12 return point (RTNPNT) parameter
restoring DBCS font tables for program menus 9-13
copying from tape or diskette (restoring) D-9 return-field (RTNFLD) parameter
copying onto diskette (saving) D-9 description 6-55
restoring DBCS sort tables example 6-56
copying from file (move from System/36) D-13 returning cursor position within subfile to applica-
copying to file (move to System/36 or tion 3-29
AS/Entry) D-12 returning mode of subfile to application 3-29
restrict cursor returning to menu after running GO command 9-1
PULLDOWN keyword 6-24 reverse text (RT) tag
WINDOW keyword 5-5 example
restrictions left-to-right formatting on a left-to-right
5250 engraved keys 17-14 panel A-150
command line 17-19 left-to-right formatting on right-to-left panel A-150
name syntax overview A-150
HELP tag A-4 Revoke Object Authority (RVKOBJAUT)
object names A-4 command D-15
on command line 17-19 right slash (/) symbol A-5
using dialog variables 17-3 right-to-left cursor movement 2-16
retain command and function keys right-to-left display processing 2-19
System/36 application compatibility G-9 RMVSCHIDXE (Remove Search Index Entry)
Retain Command Keys (RETCMDKEY) keyword command 20-17
System/36 application compatibility G-10 RMVWDW (Remove Window) keyword 5-12
Retain Function Keys (RETKEY) keyword RNMOBJ (Rename Object) command D-15
System/36 application compatibility G-10 Roll Down (ROLLDOWN) keyword
RETCMDKEY (Retain Command Keys) keyword for function keys 2-12
System/36 application compatibility G-10 Roll Up (ROLLUP) keyword
RETKEY (Retain Function Keys) keyword example with SFLSIZ and SFLPAG 4-19
System/36 application compatibility G-10 ROLLDOWN (Roll Down) keyword
RETRIEVE (Retrieve Command String) dialog function keys 2-12
command B-14 response indicators for 2-15
Retrieve Command String (RETRIEVE) dialog ROLLUP (Roll Up) keyword
command B-14 example with SFLSIZ and SFLPAG 4-19
RETURN (Return Control to Application) dialog function keys 2-12
command B-14 improving subfile performance 14-1
return code response indicators for 2-15
binary program menus 9-10 root words for index search
display file See online help information
description E-1
Index X-47
selection field SFLCSRRRN (Subfile Cursor Relative Record
example 6-10 Number) keyword 3-29
example, DDS 6-12 SFLCTL (Subfile Control) keyword 4-3
horizontal 6-14 SFLDLT (Subfile Delete) keyword 4-4
cursor movement 6-16 SFLDROP (Subfile Drop) keyword 4-4
multiple-choice SFLDSP (Subfile Display) keyword 4-3
definition 6-10 SFLDSPCTL (Subfile Display Control) keyword 4-4
vertical 6-14 SFLEND (Subfile End) keyword 4-4
pull-down menu 6-18 SFLENTER (Subfile Enter) keyword 4-4
selection indicator 6-17 SFLFOLD (Subfile Fold) keyword 4-4
single-choice SFLINZ (Subfile Initialize) keyword 4-4
auto-enter 6-38 SFLLIN (Subfile Line) keyword 4-4
auto-selection 6-37 SFLMLTCHC (Subfile Multiple-Choice Selection)
definition 6-10 keyword 6-26
vertical 6-13 SFLMODE (Subfile Mode) keyword 3-29
vertical SFLMSG (Subfile Message) keyword
creating 6-13, 6-14 description 4-4
cursor movement 6-15 displaying on message line when subfile control
selection field choice record written 8-2
colors and display attributes 6-40 messages resulting from 5-6
selection indicator SFLMSGID (Subfile Message Identifier) keyword
definition 6-17 description 4-4
suppressing displaying on message line when subfile control
in pull-down menu 6-20 record written 8-2
in selection field 6-17 example DDS source 8-5
in selection list 6-28 messages resulting from 5-6
selection list SFLMSGKEY (Subfile Message Key) keyword
creating 6-26 description 4-4
definition 6-24 displaying messages from program message
example, DDS 6-26 queue 8-4
multiple 6-26 SFLMSGRCD (Subfile Message Record) keyword
selection indicator 6-28 description 4-4
single 6-26 displaying messages from program message
selection list (UIM) 17-12 queue 8-4
self-check, System/36 application compatibility G-2 SFLNXTCHG (Subfile Next Changed) keyword
sending description 4-4
data 3-4 example DDS 4-22
sentence-ending characters A-2 SFLPAG (Subfile Page) keyword
separating with blank lines 17-36 example with ROLLUP and SFLSIZ 4-19
separator use in subfile control record format 4-3
content A-1 SFLPGMQ (Subfile Program Message Queue)
markup A-1 keyword
Set Off (SETOF or SETOFF) keywords description 4-4
response indicators for 2-15 displaying messages from program message
SETOF or SETOFF (Set Off) keyword queue 8-4
response indicators for 2-15 SFLRCDNBR (Subfile Record Number) keyword
SEU (source entry utility) description 4-4
definition 1-3 improving subfile performance 14-1
Edit display 1-3 SFLRNA (Subfile Records Not Active) keyword 4-4
SFL (Subfile) keyword 4-3 SFLROLVAL (Subfile Roll Value) keyword 4-4
SFLCHCCTL (Subfile Choice Control) keyword 6-26 SFLRTNSEL (Subfile Return Selected Choice)
SFLCLR (Subfile Clear) keyword keyword 6-27
description 4-4 SFLSCROLL (Subfile Scroll) keyword 6-28
SFLCSRPRG (Subfile Cursor Progression) SFLSIZ (Subfile Size) keyword
keyword 2-18 example with ROLLUP and SFLPAG 4-19
use in subfile control record format 4-3
Index X-49
subfile (continued) subfile (continued)
displaying (continued) SFLDSP keyword, use of 4-3
horizontally 4-16 SFLPAG keyword, use of 4-3
horizontally with display modes 4-17 SFLSCROLL keyword, use of 6-28
records 4-15 SFLSIZ keyword, use of 4-3
vertically 4-16 size equal to page size 4-19
example size not equal to page size 4-21
*DS3 mode display 4-19 subfile control record format, purpose 4-3
*DS4 mode display 4-18 subfile control, processing order of DDS keywords
DDS for two display sizes 2-25 for 4-9
DSPATR(PC) keyword, use of 4-24 subfile record format, purpose 4-3
DSPMOD keyword, use of 4-17 table of I/O requests in high-level languages
message subfile 4-23 BASIC statements 4-15
program logic for subfiles 4-31 ILE C functions 4-15
ROLLUP, SFLSIZ, and SFLPAG keywords 4-19 ILE COBOL statements 4-15
sample display for changing information 4-2 ILE RPG operations 4-15
sample display for display only 4-1 USRDSPMGT keyword restriction G-10
sample display for input only 4-2 validity checking before rolling 4-9
sample display for task combination 4-2 window 5-6
sample display with selection 4-1 Subfile Choice Control (SFLCHCCTL) keyword 6-26
sample displays when rolling two or more Subfile Clear (SFLCLR) keyword
records 4-28 description 4-4
SFLNXTCHG keyword, use of 4-22 Subfile Control (SFLCTL) keyword 4-3
SFLPAG, SFLSIZ, and ROLLUP keywords 4-19 subfile control record format
SFLSIZ, ROLLUP, and SFLPAG keywords 4-19 definition 4-3
variable-length record 4-20 placement after subfile record format 4-4
vertical and horizontal, displayed at same read operation 4-15
time 4-16 requesting I/O operations for 4-15
extending full 4-9 required DDS keywords 4-3
functions for 4-4 SFLCTL keyword, use of 4-3
high-level language programs, use in 4-10 SFLDSP keyword, use of 4-3
maximum number active to display station 4-9 SFLPAG keyword, use of 4-3
maximum number allowed in display file 4-9 SFLSIZ keyword, use of 4-3
multiple records 4-1 write operation 4-15
optional functions, table of 4-4 write-read operation 4-15
order of subfile record format and subfile control Subfile Cursor Progression (SFLCSRPRG)
record format 4-4 keyword 2-18
performance considerations 14-1 Subfile Cursor Relative Record Number
placing records on display for processing 4-15 (SFLSCRRRN) keyword 3-29
positioning cursor for each page of records 4-24 Subfile Delete (SFLDLT) keyword 4-4
program logic for 4-31 Subfile Display (SFLDSP) keyword 4-3
reading active record at specified location in 4-13 Subfile Display Control (SFLDSPCTL) keyword 4-4
reading next changed record in 4-14 Subfile Drop (SFLDROP) keyword 4-4
recognizing uses of Subfile End (SFLEND) keyword 4-4
changing information 4-2 Subfile Enter (SFLENTER) keyword 4-4
combination of tasks 4-2 Subfile Fold (SFLFOLD) keyword 4-4
display only 4-1 Subfile Initialize (SFLINZ) keyword 4-4
input only without validity checking 4-2 Subfile Line (SFLLIN) keyword 4-4
sample display with selection 4-1 Subfile Message (SFLMSG) keyword
records description 4-4
active subfile 4-4 displaying on message line when subfile control
inactive subfile 4-4 record written 8-2
requesting I/O operations for 4-12 messages resulting from 5-6
rolling and validity checking 4-9 Subfile Message Identifier (SFLMSGID) keyword
SFL keyword, use of 4-3 defining in display 8-4
SFLCTL keyword, use of 4-3 description 4-4
Index X-51
tag within help module (continued) tag within help module (continued)
DL (definition list) note (NT)
use in help module 20-5 use in help module 20-4
example (XMP) NT (note)
use in help module 20-6 OL (ordered list)
extended help headings (XH1-XH4) use in help module 20-5
use in help module 20-4 ordered list (OL)
FIG (figure) use in help module 20-5
use in help module 20-6 P (paragraph)
figure (FIG) placement in UIM source 20-2
use in help module 20-6 use in help module 20-4
H1 through H4 (headings) panel group (PNLGRP)
use in help module 20-4 placement in UIM source 20-2
heading (H1 through H4) panel markup
use in help module 20-4 definition 20-4
HELP (help module) paragraph (P)
panel groups with help modules 20-2 use in help module 20-4
placement in UIM source 20-2 paragraph continuation (PC)
help module (HELP) use in help module 20-4
panel groups with help modules 20-2 parameter list (PARML)
placement in UIM source 20-2 use in help module 20-5
highlighted phrase (HP0-HP9) PARML (parameter list)
use in help module 20-4 use in help module 20-5
HP0-HP9 (highlighted phrase) PC (paragraph continuation)
use in help module 20-4 use in help module 20-4
hypertext link (LINK) PK (programming keyword)
placement in UIM source 20-15 use in help module 20-5
imbed help (IMHELP) PNLGRP (panel group)
placement in panel group source 20-2 panel groups with help modules 20-2
IMHELP (imbed help) placement in UIM source 20-2
panel groups using 20-2 programming keyword (PK)
placement in panel group source 20-2 use in help module 20-5
IMPORT (import) programming variable (PV)
panel groups using 20-3 use in help module 20-5
placement in UIM source 20-3 purpose 20-1
index search (ISCH) PV (programming variable)
placement in UIM source 20-9 use in help module 20-5
index search synonym (ISCHSYN) simple list (SL)
placement in UIM source 20-9 use in help module 20-5
ISCH (index search) SL (simple list)
panel groups using 20-9 use in help module 20-5
placement in UIM source 20-9 title citation (CIT)
ISCHSYN (index search synonym) use in help module 20-4
panel groups using 20-9 UL (unordered list)
placement in UIM source 20-9 use in help module 20-5
LINES (unformatted lines) unformatted lines (LINES)
use in help module 20-6 use in help module 20-6
LINK (hypertext link) unordered list (UL)
panel groups using 20-15 use in help module 20-5
placement in UIM source 20-15 XH1 through XH4 (extended help heading)
list part (LP) use in help module 20-4
use in help module 20-5 XMP (example)
LP (list part) use in help module 20-6
use in help module 20-5 tag, modified data 2-10
NOTE (note) tag, UIM
use in help module 20-4 APPFMT (application formatted area) A-8
Index X-53
tool, command line 21-37 UDDS (user-defined data streams) (continued)
top instruction (TOPINST) tag output record area for record format 10-2
overview A-161 system operations to request commands 10-4
topics, index search understanding limitations 10-2
See online help information using 10-1
TOPINST (top instruction) tag USRDFN (User-Defined) keyword 10-1
overview A-161 valid keywords with USRDFN keyword 10-2
trailer message write-read function 10-4
example A-148 write-read operations
trailer printing 17-36 CL (control language) 10-4
translation ILE COBOL 10-4
character set and code page, UIM A-19 ILE RPG 10-4
translation list (TL) tag UIM
list, translation A-159 commonly asked questions 17-37
overview A-159 UIM (user interface manager)
tags allowed table A-159 See also panel group
translation list item (TI) tag 5250 engraved key restrictions 17-14
overview A-158 action list definition 17-11
translation table 13-4 action variable definition 17-11, 17-13
truth table (TT) tag adding pop-up window over another panel 17-27
example, truth table A-162 adding window over another panel 17-27
overview A-162 after scrolling example 16-33
tags allowed table A-162 alternate view of list example 16-15
truth table row (TTROW) tag API services 16-5
overview A-163 application handle definition 17-1
TT (truth table) tag application programming
example, truth table A-162 confirmation processing 16-31
overview A-162 data presentation panel 16-46
tags allowed table A-162 list panel 16-25
TTROW (truth table row) tag menu bar panel 16-63
overview A-163 application window, defining 17-30
two presentation areas for data items automatic confirmation processing 16-31
example A-35 command line
two-column format in a data entry panel entered too long 17-20
example A-34 interpretation 17-19
type pop-up window 17-32
display station 5-3, 6-1 restrictions 17-19
window 17-32
window example 17-32
U confirmation list panel, creating 16-27
UDDS (user-defined data streams) confirmation panel source 16-28
3270 Model 4 display station support 10-3 confirmation processing
available functions 10-2 application programming 16-31
buffer format for 5250 display station 10-3 automatically 16-31
command attention keys, effects on 10-3 considerations before using 15-1
command function keys, effects on 10-3 contextual help, defining 17-16
defining output buffer 10-3 controlling list entries on list display 17-10
defining output data stream 10-3 conversion of character set and code page A-19
display station differences, understanding 10-1 creating
handling of field-level requests after user-defined confirmation list panel 16-27
requests 10-2 data presentation panel 16-32
help information for 10-2 list panel 16-13
I/O requests, effect on 10-2 menu bar panel 16-50
input operations 10-4 menu panel 16-6
limitations 10-2 object 16-3
opening display files containing 10-3 cursor position when help text displayed 17-17
Index X-55
UIM (user interface manager) (continued) UIM (user interface manager) (continued)
national language considerations and DBCS 20-12 removing entry from list 17-10
opening application 17-1 request processor program when displaying
panel elements supported 16-2 panel 17-33
panel formatter limitations 17-24 response time for list displays 17-11
panel formatting restrictions
application control 17-23 5250 engraved keys 17-14
concepts 17-22 using dialog variables 17-3
definition 17-22 routing step 17-13
when to perform 17-22 scrolling
panel function managing 17-13 area definition 17-14
panel group areas that can be scrolled 17-14
definition 16-2 data item groups 17-16
elements 16-3 defining scrollable areas 17-14
panel group object, defining 16-13 error conditions 17-15
panel list fold up 17-26 function key 17-15
pop-up window incomplete list 17-15
adding 17-30, 17-31 information area 17-16
adding and removing using APIs 17-30 list area 17-15
adding over another panel 17-27 menu area 17-16
adding to display stack 17-30, 17-31 message line 17-15
API for adding and removing 17-30 status information 17-14
command line 17-32 text area 17-16
defining application 17-30 selection characters 17-13
example in command line 17-32 selection list definition 17-12
removing 17-31 source
removing using APIs 17-30 example confirmation panel 16-28
using 17-30 example data presentation panel 16-35
pop-up window and pull-down menu example list panel 16-17
differences 17-28 example menu 16-9
printer characters, incorrect 17-4 example menu bar panel 16-53
printing 17-33 updating list 17-9
blank lines for separating 17-36 user-defined panel group
character set and code page 17-5 giving help panels access 19-4
code page and character set 17-5 using DDS instead of 15-1
concepts 17-33 variable pool services 17-4
DBCS (double-byte character set) 17-37 VARUPD value and function keys 17-21
double-byte character set (DBCS) 17-37 when to use to gain productivity 15-1
fonts and highlighting 17-36 window
header area 17-36 adding 17-30, 17-31
highlighting 17-36 adding and removing using APIs 17-30
highlighting and fonts 17-36 adding over another panel 17-27
introduction 17-33 adding to display stack 17-30, 17-31
overriding with and sharing printer file 17-37 API for adding and removing 17-30
page eject 17-37 command line 17-32
print head panel 17-35 defining application 17-30
print panel 17-35 example in command line 17-32
printer file, sharing and overriding with 17-37 removing 17-31
prolog area 17-36 removing using APIs 17-30
separating with blank lines 17-36 using 17-30
sharing and overriding with printer file 17-37 UIM-defined variable attributes A-167
trailer 17-36 UL (unordered list) tag
productivity example, unordered list A-165
improvements 15-1 overview A-164
increasing application programmer 15-1 tags allowed table A-164
pull-down menu and pop-up window use in help module 20-5
differences 17-28
Index X-57
user interface manager (UIM) (continued) user interface manager (UIM) (continued)
example (continued) list panel (continued)
menu bar panel 16-49 creating 16-13
menu source 16-9 example 16-14
exit flag 17-24 fold up 17-26
field value for display panel using dialog source 16-17
variables 17-4 managing panel functions 17-13
folding up list panel 17-26 menu area, scrolling 17-16
folding up multiple panels when EXIT menu bar 17-27
requested 17-24 menu bar panel 16-50
folding when EXIT requested 17-24 application programming 16-63
formatting function keys 17-20 creating 16-50
function key example 16-49
defining 17-20 source 16-53
formatting 17-20 menu definition 16-2
scrolling 17-15 menu object, defining 16-6
VARUPD value 17-21 menu panel
functions supported 16-2 creating 16-6
graphical user interface (GUI) 17-14 example 16-6
help message line, scrolling 17-15
hierarchy, index search 20-11 national language considerations and DBCS 20-12
index search 19-4 opening application 17-1
index search hierarchy 20-11 panel elements supported 16-2
user-defined panel group 19-4 panel formatter limitations 17-24
help text displayed according to cursor panel formatting
position 17-17 application control 17-23
help window 5-9 concepts 17-22
incorrect characters in dialog variable 17-4 definition 17-22
incorrect display characters 17-4 when to perform 17-22
incorrect printer characters 17-4 panel function managing 17-13
increasing user productivity 15-1 panel group
index search definition 16-2
giving help panels access 19-4 elements 16-3
InfoSeeker 19-3 panel group object, defining 16-13
initial value of dialog variable 17-2 panel list fold up 17-26
initializing list 17-8 pop-up window
inserting entry from list 17-10 adding 17-30, 17-31
interactive response time for list displays 17-11 adding and removing using APIs 17-30
introduction 16-1 adding over another panel 17-27
limitations of panel formatter 17-24 adding to display stack 17-30, 17-31
list API for adding and removing 17-30
defining 17-8 command line 17-32
displaying 17-8 defining application 17-30
incomplete processing 17-9 example in command line 17-32
initialing 17-8 removing 17-31
inserting entry from 17-10 removing using APIs 17-30
managing 17-7, 17-8 using 17-30
removing entry from 17-10 pop-up window and pull-down menu
updating 17-9 differences 17-28
list display printer characters, incorrect 17-4
controlling list entries 17-10 printing 17-33
list entry blank lines for separating 17-36
handle 17-9 character set and code page 17-5
on list display 17-10 code page and character set 17-5
pointer 17-10 concepts 17-33
list panel DBCS (double-byte character set) 17-37
application programming 16-25 double-byte character set (DBCS) 17-37
Index X-59
USRDSPMGT (User Display Management) keyword vertical (continued)
(continued) single-choice selection field 6-13
restrictions for response indicators G-10 VRYCFG (Vary Configuration) command D-10
restrictions for subfiles G-10
use G-1
USRRSTDSP (User Restore Display) keyword 5-13 W
WAIT (wait) command 3-33
WAIT(*NO) parameter 3-30
V WAITFILE (wait file) parameter
valid DDS for mnemonic for acquire operation 3-3
example 6-38 for open operation 3-2
validity checking for system allocation of resources 3-1
functions, specifying 3-37 WAITRCD (wait record) parameter
keywords 3-37 timing function for 3-33
performing 17-2 WDWBORDER (Window Border) keyword 5-7
restrictions when using CAnn keys 2-13 WDWTITLE (Window Title) keyword 5-9
subfile data 4-22 window
validity checking (CHECK) tag adding over another panel 17-27
example, validity checking A-12 border 5-7
overview A-11 changing 5-10
validity-checking keyword 5-6 creating 5-3
value cursor position 5-5
BASETYPE A-14 defining 17-30
character A-25 definition 2-27
date A-25 duplicating 5-11
numeric A-24 grid line structure 6-81
time A-25 help displayed in 5-7, 5-9
VAR (variable definition) tag location 5-4, 5-5
overview A-166 making one pop out of series 5-12
variable definition (VAR) tag making two active 5-11
overview A-166 maximum displayed 5-3
variable pool message in 5-6
definition 17-2 moving 5-11
services 17-4 performance 5-13
variable record definition (VARRCD) tag programming example 5-15
overview A-169 reading data from 5-10
variable update (VARUPD) attribute removing 5-12
dialog command B-4 size 5-4
function keys 17-21 subfile used in 5-6
KEYI tag A-75 system performance considerations 14-4
PDFLDC tag A-135 title 5-9
variable value 17-4 WINDOW (Window) keyword 5-3
variable-length record 4-20 Window Border (WDWBORDER) keyword 5-7
VARRCD (variable record definition) tag window definition record 5-3
overview A-169 window reference record 5-3
VARUPD (variable update) attribute window title
dialog command B-4 example, DDS 5-9
function keys 17-21 Window Title (WDWTITLE) keyword 5-9
KEYI tag A-75 Word Wrap (WRDWRAP) keyword 2-20, 6-43
PDFLDC tag A-135 words, index search root
VARUPD value and function keys 17-21 See online help information
Vary Configuration (VRYCFG) command D-10 Work with DBCS Conversion Dictionary
vertical display D-16
multiple-choice selection field Work with Members Using PDM display 1-3
cursor movement 6-15 wrap
example 6-14 word 2-20, 6-43
X
XH1 through XH4 (extended help headings) tag
example, sample heading A-170
formatting rules A-170
overview A-170
use in help module 20-4
XMP (example) tag
example, formatting an example A-171
help module 20-6
overview A-171
Z
Z-variable
attributes A-167
definition A-167
Z36ENV dialog variable A-167
ZCANCEL dialog variable A-167
ZDBCS dialog variable A-167
ZDSPSIZ dialog variable A-167
ZEXIT dialog variable A-167
ZJOB dialog variable A-167
ZJOBNBR dialog variable A-167
ZLMTCPB dialog variable A-167
ZMENU dialog variable A-167
ZMNULIB dialog variable A-167
ZSYSNAM dialog variable A-167
ZUSER dialog variable A-167
Index X-61
Reader Comments—We'd Like to Hear from You!
AS/400 Advanced Series
Application Display Programming
Version 4
Publication No. SC41-5715-00
Very
Very Dissatis-
Satisfied Dissatis-
Satisfied fied
fied
Overall satisfaction
How satisfied are you that the information in this manual is:
Accurate
Complete
Easy to find
Easy to understand
Well organized
Applicable to your tasks
THANK YOU!
Note that IBM may use or distribute the responses to this form without obligation.
Name Address
Company or Organization
Phone No.
Cut or Fold
Reader Comments—We'd Like to Hear from You!
IBM
Along Line
SC41-5715-00
NO POSTAGE
NECESSARY
IF MAILED IN THE
UNITED STATES
Cut or Fold
SC41-5715-00 Along Line
IBM
SC41-5715-ðð
Spine information: