HP 3000 Manuals

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,

	       Click here to view figure.
            

                                       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