SET [ HP Transact Reference Manual ] MPE/iX 5.0 Documentation
HP Transact Reference Manual
SET
Alters execution control parameters, sets the match, update, or key
registers, sets the list register stack pointer, sets up data for
subsequent display on a VPLUS form, or sets alternate delimiters.
Syntax
SET(modifier) target;
The function of SET depends on the verb's modifier, and the different
modifiers determine the syntax of the statement. The allowed modifiers
and the associated syntax options are:
COMMAND Specifies Transact commands. (See Syntax Option 1.)
DELIMITER Specifies Transact delimiters. (See Syntax Option 2.)
FORM Specifies data transfer to a VPLUS form buffer for
subsequent display. (See Syntax Option 3.)
KEY Sets the value of the key and argument registers. (See
Syntax Option 4.)
LANGUAGE Specifies the native language used by Transact. (See
Syntax Option 5.)
MATCH Sets up match selection criteria in the match register.
(See Syntax Option 6.)
OPTION Specifies various execution control parameters. (See
Syntax Option 7.)
PROPER Specifies delimiters for upshifting the next letter. (See
Syntax Option 8.)
STACK Changes the value of the stack pointer for the list
register. (See Syntax Option 9.)
UPDATE Sets the value of the update register. (See Syntax Option
10.)
The DELIMITER, KEY, OPTION, and UPDATE modifiers are restored at the end
of a LEVEL.
Syntax Options
(1) SET(COMMAND) argument;
SET(COMMAND) programmatically invokes command mode and performs any
command identified in argument.
argument The commands specified in the argument parameter can be any
of the following:
EXIT Generates an exit from Transact; control
passes to the operating system or calling
program.
INITIALIZE Generates an exit from the current program
and causes Transact to prompt for a different
program name, which it will then initiate.
COMMAND Lists the commands or subcommands defined in
[(command- the currently loaded program. If a
label)] particular command-label is specified, it
lists all the subcommands associated with
that command; if no command-label, it lists
all the commands in the program.
"input- Specifies possible user responses to command
string" prompts and/or to prompts issued by PROMPT,
DATA, or INPUT statements. This construct
allows the program to simulate user responses
to prompts. This option transfers control to
and executes any command sequences specified
by input-string. The code does not return
automatically to the point from which it was
called. The maximum length of the
input-string is 256 characters.
Examples of SET(COMMAND)
This statement lists all the commands in the current program and returns
to the next statement.
SET(COMMAND) COMMAND;
This statement lists all the subcommands in the command sequence
beginning with $$ADD and returns to the next statement.
SET(COMMAND) COMMAND(ADD);
This statement executes ADD ELEMENT until the user enters "]" or "]]".
It then returns to command mode and issues the ">" prompt for another
command.
SET(COMMAND) "REPEAT ADD ELEMENT";
This statement executes the code associated with the command/subcommand:
SET(COMMAND) "ADD CUSTOMER";
and results in:
$$ADD:
$CUSTOMER:
It does not return.
(2) SET(DELIMITER) "delimiter-string";
SET(DELIMITER) replaces Transact's input field delimiters ("," and "="
described in Chapter 5) with the delimiter characters specified in the
delimiter string. A blank is not a valid delimiter. A maximum of eight
characters can be defined as a delimiter-string.
For example:
If Then Transact:
delimiter-
string is:
"#/" recognizes the characters "#" and "/" as field delimiters.
"" "" recognizes quotation marks as field delimiters.
" " recognizes no delimiters, which means the user cannot enter
multiple field responses.
(3) SET(FORM) form[,option-list];
SET(FORM) is used prior to another statement that actually displays the
form. It can be used to transfer data to the VPLUS form buffer for
subsequent display by a GET(FORM), PUT(FORM), or UPDATE(FORM) statement.
It can also be used to set up window messages and field enhancements for
subsequent displays.
However, even though the SET(FORM) statement performs a VGETBUFFER (when
there are items to transfer), the data returned from the VPLUS form
buffer is not made available to the programmer. This is because the data
is not directly transferred to the data register, but to an internal
buffer.
Used with the LIST= option, SET(FORM) allows you to initialize fields in
a VPLUS form with values from the data register rather than with values
specified through FORMSPEC. The internal buffer holding the data from the
VPLUS form buffer is partially or completely overlaid with data from the
data register, depending on the items specified in the LIST= option.
Once the overlay is complete, the VPUTBUFFER intrinsic is used to move
the data back to the VPLUS form buffer.
With the inclusion of other options, SET(FORM) also provides form
sequence control for the specified form and for the next form after that
form.
SET(FORM) opens the forms file, but not the terminal. By default,
Transact gets records formatted for a 264X terminal. If a different
terminal is being used, a verb which opens the terminal (e.g., GET(FORM)
or PUT(FORM)) should precede the SET. Information will therefore be
available to tell SET to use a different format.
form A form in the VPLUS forms file that is used for the subsequent
display. It can be specified as one of the following:
form-name Name of the form as defined by FORMSPEC.
(item-name Name of an item that contains the form name. It
[(sub- can be subscripted if an array item is being
script)]) referenced. (See "Array Subscripting" in
Chapter 3.)
* The form identified by the "current" form name;
that is, the form name most recently specified
in a Transact statement that references VPLUS
forms. Note that this does not necessarily mean
the form currently displayed.
& The form identified as the "next" form name;
that is, the form name defined as "NEXT FORM" in
the FORMSPEC definition of the current form.
option- One or more of the following options, separated by commas,
list should be specified in a SET(FORM) statement:
_____________________________________________________________
NOTE The scope of the APPEND, CLEAR, and FREEZE options is
both the previous form (accessed by the last form
specification before this SET operation) and the current
form. Therefore, if the CLEAR option is used, not only
will the previous form be CLEARed when the specified
form is displayed, but also the current form will be
CLEARed when the next form is displayed. This happens
regardless of the FORMSPEC definitions of the two forms.
_____________________________________________________________
APPEND Appends the next form to the specified form,
overriding any current or next form processing
specified for the form in its FORMSPEC
definition. APPEND sets the FREEZAPP field of
the VPLUS comarea to 1.
CLEAR Clears the specified form when the next form is
displayed, overriding any freeze or append
condition specified for the form in its FORMSPEC
definition. CLEAR sets the FREEZAPP field of
the VPLUS comarea to zero.
CURSOR= Positions the cursor within the specified field.
field-name Field-name identifies the field and the
|item-name item-name identifies the item which names the
[(sub- field. The item-name can be subscripted if an
script)] array item is being referenced. (See "Array
Subscripting" in Chapter 3.)
If this option is omitted, the cursor is
positioned in the form's default field.
_______________________________________________
NOTE To ensure that the cursor will be
positioned on the correct field, you must
have a one to one correspondence between
the fields defined in VPLUS. Transact
determines where to position the cursor by
counting the fields.
_______________________________________________
FEDIT After transferring data to the form, perform any
field edits specified in the FORMSPEC definition
for the form.
FREEZE Freezes the specified form on the screen when
the next form is displayed, and append the next
form to it. FREEZE sets the FREEZAPP field of
the VPLUS comarea to 2.
INIT Initializes the fields in the specified form to
any initial values defined for the forms by
FORMSPEC, or performs any Init Phase processing
specified for the form by FORMSPEC.
LIST= The list of items from the list register to be
(range-list) transferred from the data register to the VPLUS
buffer for subsequent. processing. The list
can include child items. If this option is
omitted, items that appear in both the list
register and SYSTEM definition for the form are
transferred.
For all options of range-list, the data items
selected are the result of scanning the data
items in the list register from top to bottom,
where top is the last or most recent entry.
(See Chapter 4 for more information on
registers.)
The LIST= option has a limit of 64 individually
listed item names and a limit of 128 items
specified by a range.
The options for range-list and the records upon
which they operate include the following:
(item-name) A single data item.
(item-nameX: All the data items in the range
item-nameY) from item-nameX through
item-nameY. In other words, the
list register is scanned for the
occurrence of item-nameY closest
to the top of the list register.
From that entry, the list register
is scanned for item-nameX. All
data items between are selected.
An error is returned if item-nameX
is between item-nameY and the top
of the list register.
Duplicate data items can be
included or excluded from the
range, depending on their position
on the list register. For
example, if range-list is A:D and
the list register is as shown,
then data items A, B, C, D, and D
are selected.
(item- All data items in the range from
nameX:) the last entry through the
occurrence of item-nameX closest
to the top of the list register.
(:item- All data items in the range from
nameY) the occurrence of item-nameY
closest to the top through the
bottom of the list register.
(item-nameX, The data items are selected from
item-nameY, the list register. For VPLUS
... forms, data items must be
item-nameZ) specified in the order of their
occurrence in the form. This
order need not match the order of
the data items on the list
register. Child items can be
included in the list as long as
they are defined in the VPLUS
form. This option incurs some
system overhead.
(@) Specifies a range of all data
items of form as defined in a
dictionary. The range-list is
defined as item-name1:item-namen
for the file.
(#) Specifies an enumeration of all
data items of form as defined in
the data dictionary. The data
items are specified in the order
of their occurrence in the form as
defined in the dictionary. This
order need not match the order of
the data items in the list
register.
( ) A null data item list. Does not
retrieve any data.
WINDOW= Places a message in the window area of the
([field], screen and, optionally, enhances a field in the
message) form. The enhancement is done according to the
definition of the form in FORMSPEC. If the
LIST=( ) option is in effect, the window message
overwrites any previous window messages for the
form, but the field enhancement is in addition
to any field enhancement already on the form.
The parameters field and message can be
specified as follows:
field Either the name of the field
to be enhanced, or an
item-name[(subscript)] within
parentheses whose data register
value is the name of the field to
be enhanced. The item-name can be
subscripted if an array item is
being referenced. (See "Array
Subscripting" in Chapter 3.)
message Either a "string" of characters
within quotes that comprises the
message to be displayed, or an
item-name[(subscript)] within
parentheses whose data register
value is the message string to be
displayed in the window. The
item-name can be subscripted if an
array item is being referenced.
(See "Array Subscripting" in
Chapter 3.)
Examples of SET(FORM)
This statement clears any prior forms from the screen when a subsequent
statement displays the form MENU. If MENU is the current form, this
statement clears the MENU when the next form is displayed, regardless of
the value of the MENU's FREEZAPP option.
SET(FORM) MENU,
CLEAR;
This example moves a value from the data register area identified by
LIST-DATE to the VPLUS buffer for subsequent display by GET(FORM). It
also sets up a field to be enhanced and a message for display when
GET(FORM) displays LIST-FORM.
SET(FORM) LIST-FORM,
LIST=(LIST-DATE),
WINDOW=(LIST-DATE,"Only enter orders for this date");
GET(FORM) *,
LIST=(ORDER-NO:QTY-ON-HAND);
This example is highly general. The first PUT(FORM) statement displays
whatever form is identified by FORMNAME and freezes that form on the
screen. SET(FORM) then specifies that the value of ITEM-A is to be
displayed and enhanced in the next form and also specifies a message
(MESSAGE) to be issued when the next form is displayed by the subsequent
PUT(FORM) statement.
PUT(FORM) (FORMNAME), FREEZE;
SET(FORM) &,
LIST=(ITEM-A),
WINDOW=((ITEM-A), (MESSAGE));
PUT(FORM) *,
WAIT=F1;
(4) SET(KEY) LIST ({item-name});
{ * }
SET(KEY) sets the key and argument registers to the values associated
with item-name in the list and data registers. Transact generates an
error message at execution time if the item name cannot be found in the
list register. You typically use this modifier on multiple data set
operations where the necessary key value has been retrieved by a previous
operation. If an * is used as the item-name, the last item added to the
list register is used.
Examples of SET(KEY)
The example below identifies the key as the item named ACCT-NO and moves
the associated value in the data register to the argument register for
the subsequent data set retrieval by the OUTPUT statement.
SET(KEY) LIST(ACCT-NO);
OUTPUT(CHAIN) ORDER-DETAIL,
LIST=(ACCT-NO:QTY-ON-HAND);
(5) SET(LANGUAGE) [language[,STATUS]];
The SET(LANGUAGE) statement allows the programmer to specify or change
the native language at run time. The user can either specify a literal
language name or number in quotes (which is checked at compile time) or
give the name of an item which will contain the language number at run
time. This item must begin on a 32-bit storage boundary. It can be
subscripted if an array item is being referenced.
If the operation is successful, Transact sets the status register to the
number of the language in effect before the language is changed. If an
error results, Transact returns the error message to the user, sets the
status register to -1, and leaves the native language unchanged. If
STATUS is specified, Transact suppresses the error message, and the
contents of the status register is the same as described above.
If you omit language, Transact sets the status register to the number of
the current language and then resets the language number to 0
(NATIVE-3000). A compiler error results if the STATUS option is
specified without language. For more information see Appendix E, "Native
Language Support."
(6) SET(MATCH) LIST ({item-name})[,option-list];
{ * }
SET(MATCH) sets up a match criterion in the match register using the
specified item name from the list register and its current value in the
data register.[REV BEG] If the item name is an unsubscripted array, only
the value in the data register for the first element of the array will be
set up as match criterion in the match register.[REV END]
The resulting match criterion is used for subsequent data set and file
operations. By default, the relation between the item name and its value
is equality. You can choose another relational operator from
option-list. If an * is specified, the last item added to the list
register is used.
You can set up as many match criteria as you desire using separate
SET(MATCH) statements for each. Match criteria set up with the same item
name and no option, or the same item name and one of the options LEADER,
TRAILER, or SCAN, are joined by a logical OR; those set up with different
item names or with one of the options NE, LT, LE, GT, or GE are joined by
a logical AND. (See the PROMPT(MATCH) and DATA(MATCH) descriptions in
this chapter for other ways to set up match criteria.)
option- Any one of the following options can be selected:
list
NE Not equal to
LT Less than
LE Less than or equal to
GT Greater than
GE Greater than or equal to
LEADER Matched item must begin with the input string;
equivalent to the use of trailing "^" on input
SCAN Matched item must contain the input string;
equivalent to the use of trailing "^^" on input
TRAILER Matched item must end with the input string;
equivalent to the use of a leading "^" on input
Examples of SET(MATCH)
This example sets up the match register with the selection criterion
shown below:
LET (QTY-ON-HAND) 10;
SET(MATCH) LIST (QTY-ON-HAND), LT;
+-------------+
| QTY-ON-HAND |
| less than |
| 10 |
+-------------+
These statements set up the match register with the selection criteria
shown below. Note that criteria with the same item name are joined by a
logical OR, those with a different name by a logical AND. These criteria
select entries whose value for STATE is either CA or NM and whose value
for DATE is 010192.
MOVE (STATE) = "CA";
SET(MATCH) LIST(STATE);
MOVE (STATE) = "NM";
SET(MATCH) LIST(STATE);
LET (DATE) = 010192;
SET(MATCH) LIST(DATE), GE;
+-----------------------------------------------+
| STATE STATE DATE |
| equal to OR equal to AND greater than |
| "CA" "NM" 010192 |
+-----------------------------------------------+
(7) SET(OPTION) option-list;
SET(OPTION) and one or more option fields included in option-list set the
Transact command options or override default execution parameters. The
options in option-list are separated by commas.
option- Select one or more of the following options:
list
AUTOLOAD Causes VPLUS forms to be loaded automatically
into the local form storage of the terminal
at the time the form is displayed if the
FSTORESIZE parameter is specified in the
SYSTEM statement. Chapter 5 contains more
information about the AUTOLOAD option under
"Local Form Storage".
DEPTH=number Sets the terminal display area depth to a
line count of number. The default value is
22. The depth value defines how many lines
are displayed on the terminal before Transact
automatically generates the prompt
"CONTINUE(Y/N)?". This option allows the
video terminal user to view a listing in a
controlled page mode. If number is 0,
information is displayed continuously on the
terminal, with no generation of the "CONTINUE
(Y/N)?" prompt.
END=label Transact branches to the statement marked
label if an end of sequence is encountered,
either by an explicit or implicit END or by
"]" or "]]" input in response to a prompt at
execution time. This control function can be
re-assigned to a different label or reset at
any point in the program logic. By default,
the list register is reset before the END
sequence block executes. However, if a
REPEAT option or command is in effect, the
list register is not reset until the END
block is executed.Once the END block is
executed, this option is automatically reset.
FIELD[="ab"] Enhances or changes the prompts for data item
fields on the terminal display. (This option
with no parameter has the same effect as the
FIELD command qualifier, described in Chapter
5.) By default, an item name prompt issued
by a PROMPT or DATA statement shows the item
name followed by the character ">".
The parameters a and b specify alternate
display options, where a specifies the
leading prompt character, b specifies the
trailing prompt character. If a is a caret,
"^", then the leading prompt character is
suppressed. If both a and b are omitted, the
FIELD option encloses the response field with
the delimiters ">" and "<".
If the statement is: then the
prompt is:
SET(OPTION) FIELD; NAME> field-length <
SET(OPTION) FIELD=":"; NAME:
SET(OPTION) FIELD="^"; NAME
SET(OPTION) FIELD="[]"; NAME[ field-length ]
Note that the cursor is positioned in the
second character position following the left
delimiter. If no delimiter is used, the
cursor is positioned in the second character
position following the field name.
Normally b sets the trailing prompt character
to its value; however, if b is one of the
characters "A" through "O" or "@", entry
fields are enhanced as described in the forms
caching terminal user handbooks. For
example:
SET(OPTION) FIELD= " J";
This statement enhances the response field
with half bright inverse video.
Transact enhances (or delimits) the number of
spaces that represent the field length,
except in two circumstances:
* If the field being prompted for is
longer than the space available on the
current line on the screen, Transact
only enhances (or marks with a right.
delimiter) the rest of the line.
* The length of the response to a
DATA(MATCH) or PROMPT(MATCH) prompt
cannot be known in advance, since the
response might include operators and
multiple values. Therefore, Transact
highlights or delimits only the rest
of the line.
FORMSTORE= Loads the VPLUS forms in form-store-list into
(form-store- local storage memory of a forms caching
list) terminal. This reduces datacomm overhead
with frequently used forms and causes the
form to appear all at once instead of being
painted line by line on the screen.
Form-store-list can either be a list of VPLUS
forms separated by commas or the name,
enclosed in an additional set of parentheses,
of a data item containing such a list. The
data item can be subscripted. Forms
belonging to different families can appear in
the same list.
To use local form storage, you must include
the FSTORESIZE parameter in the SYSTEM verb.
(See the FSTORESIZE parameter in the SYSTEM
verb entry in this chapter.)
The RESET(OPTION) FORMSTORE statement is not
required with the SET(OPTION) FORMSTORE
statement. (See the explanation of the
RESET(OPTION) FORMSTORE statement in the
RESET verb description in this chapter.
Chapter 5 contains more information about the
SET(OPTION) FORMSTORE statement under "Local
Form Storage".)
The following example loads four forms.
SET(OPTION) FORMSTORE=(MENU,ADDPROD,CHGPROD,DELPROD);
The following commands do the same as
above with a data name specified as
form-store-list.
DEFINE(ITEM) FORMLIST X(40);
:
LIST FORMLIST;
MOVE (FORMLIST) = "MENU,ADDPROD,CHGPROD,DELPROD";
SET(OPTION) FORMSTORE=((FORMLIST));
____________________________________________
NOTE When local form storage is enabled,
VPLUS automatically configures the
2626A and 2626W terminals to use
datacomm port 1 and removes the HPWORD
configuration from the 2626W terminal.
____________________________________________
HEAD Generates headings for the next DISPLAY verb
encountered with the TABLE option, regardless
of page position.
LEFT Left-justifies data items for any subsequent
displays set up by the DISPLAY or OUTPUT
statements. Since this is the default
option, it is normally used to reset
justification after a SET(OPTION) RIGHT or
ZEROS statement.
NOBANNER Suppresses the default page banner containing
date, time, and page number on any subsequent
displays set up by the DISPLAY or OUTPUT
statements. The default printer page depth
then becomes 60.
NOHEAD Suppresses data item headings on any
subsequent displays set up by the DISPLAY or
OUTPUT statements.
NOLOCK Disables the automatic locking of a database
opened in mode 1 for a DELETE, PUT, REPLACE,
or UPDATE operation. NOLOCK does not reset
the LOCK option specified with a database
access verb (DELETE, FIND, GET, OUTPUT, PUT,
REPLACE, or UPDATE). Use NOLOCK when you want
to set up data set or data item locks through
a PROC statement or when you are locking with
the LOCK option on the LOGTRAN verb. (See
Chapter 6 for more information on locking.)
The NOLOCK option is turned off when
processing crosses a barrier between command
sequences. Therefore, NOLOCK must be set in
each command sequence to which it applies.
NOLOOKAHEAD Disables look-ahead loading, which is the
default option when local form storage is
used. Setting the NOLOOKAHEAD option has the
effect of protecting explicitly loaded forms
from being overwritten by automatically
loaded forms. Chapter 5 contains more
information about look-ahead loading under
"Local Form Storage".
PALIGN=number Right-justifies the prompts on a display
device to column number on the display
screen.
PDEPTH=number Sets the printer page depth to a line count
of number. The default value is 58 unless
the NOBANNER option is specified, in which
case the default value is 60. If number is
0, the page heading is suppressed on any
subsequent displays directed to the printer.
PRINT Sets the PRINT option. Any displays
generated by the DISPLAY or OUTPUT statements
are directed to the line printer instead of
to the user terminal. This option has the
same effect as the PRINT command qualifier.
(See Chapter 5.)
You can redirect results to the printer
immediately by using this option before
issuing a DISPLAY or OUTPUT statement, and
then closing the print file with a CLOSE
$PRINT statement. For example:
SET(OPTION) PRINT;
DISPLAY "PRINT THIS NOW";
CLOSE $PRINT;
PROMPT=number Sets the line feed count between prompts
issued by the PROMPT, DATA, or INPUT
statements to number. The default value is
1.
PWIDTH=number Sets the printer line width to a character
count of number. The default value for
PWIDTH is 132 and the maximum is 152.
REPEAT Sets the REPEAT option. At execution time,
Transact repeats the associated statement
sequence until the user enters one of the
following special characters:
] Terminates execution of the current
command sequence and passes control
to the first statement in the
sequence. However, if there is an
active SET(OPTION) END= label, the
block introduced by label is executed
before control is passed to the first
statement of the command sequence.
]] Terminates repeated execution of this
command sequence and passes control
to command mode regardless of the
command level or subcommand level.
However, if there is an active
SET(OPTION) END= label statement, the
block introduced by label is executed
before control is passed to command
mode.
The list register is reset before the
current command sequence is repeated.
The user can enter "REPEAT" and then a
command name during execution to control a
loop. This option has the same effect as the
REPEAT command qualifier. Information on
this procedure is in Chapter 5 under "Command
Qualifiers."
RIGHT Right-justifies data item values for any
subsequent displays set up by the DISPLAY or
OUTPUT statements.
SORT Sets the SORT option. Any listing generated
by subsequent OUTPUT statements is sorted
before display. The sort is performed in the
order that the display fields appear in the
list register. This option has the same
effect as the SORT command qualifier. (See
"Command Qualifiers" in Chapter 5.)
SUPPRESS Suppress blank lines of data; only the first
of a series of blank lines is sent to the
line printer.
TABLE Right-justifies numeric fields and
left-justifies alphabetic fields for display.
TPRINT Sets the TPRINT option. Any displays
generated by the DISPLAY or OUTPUT statements
and directed to the terminal are line printer
formatted. This option has the same effect
as the TPRINT command qualifier. (See
"Command Qualifiers" in Chapter 5.)
VPLS=item-name Informs Transact that you want to reference
[(subscript)] the VPLUS comarea directly. It directs error
messages to the window, and moves the VPLUS
comarea to the area in the data register
identified by item-name. The item-name can
be subscripted if an array item is being
referenced. (See "Array Subscripting" in
Chapter 3.)
Item-name is the name of a data field
containing all or part of the VPLUS comarea,
depending on the size of the specified item.
When this option is used as much of the
current VPLUS comarea as will fit in the
specified item is moved to the data register
area associated with that item. You can then
examine or change comarea fields.
A SET(OPTION) VPLS statement must be followed
by a RESET(OPTION) VPLS statement before any
Transact statements can be used to manipulate
the forms within the same Transact system and
level. Otherwise, Transact returns to
command mode and issues an error message.
If you plan to open the forms file and
terminal with PROC statements, you should use
a SET(OPTION) VPLS statement just before you
place the terminal in block mode with a call
to VOPENTERM. Reset with a RESET(OPTION) VPLS
statement following the call to VCLOSETERM to
return the terminal to character mode. If
you do not call VOPENTERM or VCLOSETERM
directly, or if you do not plan to reference
the comarea directly, you need not use
SET(OPTION) VPLS. Instead, in these cases,
use the VCOM parameter of the PROC statement.
(See the PROC verb description.)
If the VPLUS form is already open, you can
use this option in conjunction with a
RESET(OPTION) VPLS statement to retrieve or
change comarea values.
For example, you could change the window
enhancement in the VPLUS comarea:
DEFINE(ITEM) COMAREA X(16): <<First eight words, comarea >>
WINDOW-ENH X(1) <<Right byte of eighth word >>
= COMAREA(16);
LIST COMAREA;
:
UPDATE(FORM) *;
SET(OPTION) VPLS=COMAREA;
MOVE (WINDOW-ENH)="K"; <<Half bright, inverse video >>
RESET(OPTION) VPLS;
WIDTH=number Sets the terminal line width to a character
count of number. The default value is 79.
ZERO[E]S Right-justifies numeric data item values and
inserts leading zeros for any subsequent
displays set up by the DISPLAY or OUTPUT
statements.
Examples of SET(OPTION)
This statement aligns the prompt character on column 25, with two blank
lines between the prompt lines.
SET(OPTION) PALIGN25,PROMPT=2;
This statement sorts subsequent OUTPUT listings to the terminal. It
suppresses item headings and suppresses the usually automatic "CONTINUE
(Y/N)?" prompt.
SET(OPTION) NOHEAD,SORT,DEPTH=0;
(8) SET(PROPER) "delimiter-string";
SET(PROPER) replaces the default characters that cause the next letter to
be upshifted with the delimiter characters specified in the delimiter
string. This statement is used in conjunction with the PROPER function
on the MOVE verb. A maximum of 256 characters can be defined as the
delimiter-string. The double quote character (") can be made one of
these delimiter characters by including 2 consecutive double quotes ("")
anywhere in the delimiter-string. Use the RESET(PROPER) verb to reset
the delimiter which was set to the default set.
Examples of SET(PROPER)
SET(PROPER) " -;,:""0123456789";
MOVE (NAME) = PROPER((NAME));
Before After
NAME X(12) 1doe's_joe,p 1Doe's_Joe,P
SET(PROPER) " .&";
MOVE (LNAME) = PROPER("mr.&ms.smith-jones");
Before After
LNAME X(18) Mr._John_Smith,jr. Mr.&Ms.Smith-jones
(9) SET(STACK) LIST ({item-name});
{ * }
SET(STACK) moves the stack pointer for the list register from the current
position to the one identified by item-name. Transact begins the search
at the data item prior to the current (last) one in the list register and
performs a reverse scan to the beginning of the list. Transact generates
an error at execution time if it cannot find the data item in the list
register. The scan does not move the stack pointer, which is moved only
when the search finds the first occurrence of the data item. The stack
pointer will not be moved if item-name is the current data item and it
occurs only once in the list register. When the stack pointer moves down
the list register, the items above the new current item are removed from
the list register. When a data item has more than one appearance in the
list register, each occurrence can be located by using additional
SET(STACK) statements.
You typically use SET(STACK) to manipulate the list register for more
than one file or data set operation or to redefine the data register
contents. You can choose to redefine the data register contents for the
following reasons:
* To transfer values from one data item to another in a different
set,
* To access subfields of a data item by adding several item names in
place of the original item name, or
* To manipulate data item arrays.
Examples of SET(STACK)
To move the stack pointer for the list register from the current data
item to the item immediately prior to it, use the following format:
SET(STACK) LIST(*);
The next statement moves the stack pointer back to the item PROD-NO and
removes all items above it. If PROD-NO appears more than once in the
list register, the pointer is set to the first occurrence of this item
going back down the list; that is, the item nearest the top of the list
register stack.
SET(STACK) LIST(PROD-NO);
(10) SET(UPDATE) LIST({item-name});
{ * }
SET(UPDATE) specifies that the item-name in the list register and the
current value for item-name in the data register are to be placed in the
update register for a subsequent file or data set operation using the
REPLACE verb. If * is used as the item name, the current item name is
used.
NOTE A child item value placed in the UPDATE register is overridden by
its parent's value if the parent value was placed in the update
register before it.
MPE/iX 5.0 Documentation