Defining the point-and-shoot section

The )PNTS (point-and-shoot) section of a panel definition specifies what fields, if any, are point-and-shoot fields. Input and output fields are specified as point-and-shoot fields by the use of the attribute keyword, PAS(ON). Text fields are specified as point-and-shoot fields by the attribute type keyword, TYPE(PS). For each panel field specified as a point-and-shoot field, there must be a corresponding entry in the )PNTS section. If a field specified as a point-and-shoot field has no corresponding entry in the )PNTS section, no action will be taken if the point-and-shoot field is selected. The examples show a )PNTS section point-and-shoot phrase definition for input/output fields and for text fields.
Note:
  • You can use option 0 (Settings) to set the tab key to move the cursor point-and-shoot fields. This changes output fields to input fields, but data is not altered. However, if a variable is used on an output field that is changed to an input field by the tab to point-and-shoot option, and the variable is VDEFINEd to the application, the variable will be truncated. In this case, the application developer should have a temporary panel variable.
  • If there is a command entered on the command line, the point-and-shoot field is ignored.
Read syntax diagramSkip visual syntax diagram)PNTSFIELD(field_nameZPS xxyyy)VAR( value)VAL( value)DEPTH( depth)IMAGE( image-name)IMAGEP( image-name)TEXT(' text')PLACE( a, b, l, r)
Note: Each entry in the )PNTS section must contain the keywords in this order: FIELD, VAR, VAL.
where:
FIELD
For point-and-shoot input/output fields, the format is:
FIELD(field_name)
where:
field_name
The name of the field on the panel that this statement controls.
For point-and-shoot text fields, the format is:
FIELD(ZPSxxyyy)
where:
xx
00 for a point-and-shoot field defined in the )BODY section and 01 to 99 for the number of the scrollable area in which the point-and-shoot text field is defined.

Each scrollable area is assigned a sequential number based on its relative position within the panel body. The scrollable area closest to the upper-left corner of the panel body is assigned number 01. Each additional scrollable area, scanning left to right, top to bottom, is assigned the next sequential number. A maximum of 99 scrollable areas in any given panel can contain point-and-shoot text fields.

yyy
001 to 999 for the relative number of the point-and-shoot text field within the panel body or within a particular scrollable area.

A point-and-shoot text field can wrap around multiple terminal lines in panels that are not displayed in a window. A point-and-shoot text field that logically wraps in a pop-up window requires the beginning of each wrapped line to contain a PS field attribute and an entry must exist in the )PNTS section for each wrapped line. This is also true for panels containing the WINDOW() keyword that are not displayed in a pop-up window. The additional )PNTS section entries should result in the same action as the first line of the wrapped text field.

VAR(value)
The name, or a variable containing the name, of the variable to be set when the field named in this )PNTS statement is selected. If the value is a variable, an ampersand (&) must be in the first column following the left parenthesis of the VAR keyword, and it must follow dialog variable naming conventions. If the value is a variable it is limited to the leading ampersand plus 7 characters.
VAL(value)
The value assigned to the variable named in this statement. The value can be a variable or text. If the value is a variable, an ampersand (&) must be in the first column following the left parenthesis of the VAL keyword. The length of the variable data is limited to 255 single-byte characters. If the variable data is longer than 255 bytes, it is truncated. If the value is a variable it is limited to the leading ampersand plus 7 characters.
VAL(&var)
If the value is a single word text string it is not necessary to enclose it in single quotation marks.
VAL(Batch)
If the value is more than a single word of text, the phrase must be enclosed in single quotation marks.
VAL('List of products')
Literal values can be split between lines by coding a plus sign (+) as the last character on each line that is to be continued. The plus sign is used as a continuation character.
VAL('This is an example of a continuation +
of the literal string')
DEPTH(depth)
The depth of the point-and-shoot field. ISPF allows depth values from zero to sixty-two (0 - 62). The maximum screen depth is 62. It is up to the dialog developer to define the depth such that other items on the panel body will not be overlaid by the point-and-shoot field. If depth is specified as 0, the default depth of two (2) is used. The depth can be a variable, whose value is from 0-62. This attribute is accepted in order to support existing DTL source files that use it. However, although the space is reserved, point-and-shoot does not function in the additional reserved space.
IMAGE(image-name)
The IMAGE keyword is accepted in order to support existing panel definitions that use it. However, it no longer affects the displayed panel.
IMAGEP(image-name)

The IMAGEP keyword is accepted in order to support existing panel definitions that use it. However, it no longer affects the displayed panel.

TEXT('text')
The TEXT keyword is required for point-and-shoot text fields. The text ties the point-and-shoot text field defined in the panel body with its point-and-shoot entry in the )PNTS section. The text must match the text for the point-and-shoot field in the body. If the text in the body contains variables, the text of the TEXT keyword must allow for the possible expansion once the variable has been substituted, just as the point-and-shoot text field in the body should. If the text consists of more than a single word of text, the phrase must be enclosed in single quotation marks.
PLACE
The PLACE keyword is accepted in order to support existing panel definitions that use it. However, it no longer affects the displayed panel.
Figure 1. Sample point-and-shoot definition

Example:

)PANEL
)ATTR
  $ TYPE(PIN)
  } TYPE(PS)
  + TYPE(NT)
  | AREA(SCRL) EXTEND(ON)
  ! TYPE(OUTPUT) PAS(ON) COLOR(RED)
  * TYPE(OUTPUT) PAS(ON) COLOR(BLUE)
  @ TYPE(TEXT) INTENS(LOW) COLOR(RED) PAD(NULLS)
  ø TYPE(TEXT) INTENS(LOW) COLOR(BLUE) PAD(NULLS)
)BODY WINDOW(60,23)
$
%COMMAND ===>_ZCMD
$
$  Press }DEFAULTS$to reinstate defaults
$
+
|S1                                                |
)AREA S1
+                                        +
+                                        +
+     øBLUE  . . . .*BLUE1               +
+     @RED . . . . .!RED1                +
)INIT
 .CURSOR = blue1
    &blue1    = ' '
)PROC
 REFRESH(*)
)PNTS
  FIELD(BLUE1) VAR(RED1) VAL(RED)
  FIELD(ZPS00001) VAR(BLUE1) VAL(DEFAULT)
)END