home *** CD-ROM | disk | FTP | other *** search
Text File | 1999-11-01 | 137.1 KB | 1,932 lines |
- ENG|05 | 0 FORM.enh 10.05.01 1998-04-24
- ENG|05 | 1| | Forms
- ENG|05 | 2| | -----
- ENG|05 | 4| M| #01Examples of Form Definitions
- ENG|05 | 5| M| #05Structure of a Form
- ENG|05 | 6| M| #03Form Fields
- ENG|05 | 7| M| #04Processing Statements in Forms
- ENG|05 | 8| M| #06Options on Form Calls
- ENG|05 | 9| M| #07Parameters on Form Calls
- ENG|05 | 10| M| #08Options for the FORM Compiler
- ENG|05 | 11|RM| #10Action Bar and Pulldown Menus
- ENG|0501 | 1| | Example 1 : LAYOUT Design
- ENG|0501 | 3| E|
- ENG|0501 | 4| E| FORM customer.mastercard
- ENG|0501 | 5| E| LAYOUT
- ENG|0501 | 6| E| <user CUSTOMER CARD <today
- ENG|0501 | 7| E| -------------------------------------
- ENG|0501 | 8| E| customer_no : _cno
- ENG|0501 | 9| E| firstname : _cfname
- ENG|0501 | 10| E| name : _cname
- ENG|0501 | 12| E| bank_balance : _(account)
- ENG|0501 | 14| E| -------------------------------------
- ENG|0501 | 15| E| <MESSAGE
- ENG|0501 | 16|SE| ENDLAYOUT
- ENG|0501 | 19| E|
- ENG|0501 | 21| | Example 2 : LAYOUT and Options
- ENG|0501 | 24| | FORM customer.modification
- ENG|0501 | 25| | LAYOUT HIGH = % LOW = + PROMPT = .
- ENG|0501 | 26| | <user %<headtext +<today
- ENG|0501 | 27| | -------------------------------------------------------
- ENG|0501 | 29| | Customer : % <cno>> <ctit>> <cname>> <cfname
- ENG|0501 | 30| | Old address % New address
- ENG|0501 | 31| | ----------- % -----------
- ENG|0501 | 32| | City : <ccty + % City : _newcity
- ENG|0501 | 33| | Zip code : <czip % Zip code : _newzip +
- ENG|0501 | 34|S | <" + _" +
- ENG|0501 | 37| | -------------------------------------------------------
- ENG|0501 | 38| | <MESSAGE
- ENG|0501 | 39| | ENDLAYOUT
- ENG|0501 | 40| | ACCEPT ( F1='UPDATE', F9='RETURN' );
- ENG|0501 | 42| | FIELD MESSAGE INIT 'correct specifications, if nec.';
- ENG|0501 | 44| | FIELD newcity INIT NULL
- ENG|0501 | 45| | CHECK IS ALPHA;
- ENG|0501 | 47| | FIELD newzip INIT NULL SIZE 5
- ENG|0501 | 48| | CHECK BETWEEN 1 AND 99999
- ENG|0501 | 49| | ELSE 'Please: 5 digits numeric';
- ENG|0501 | 51| | IGNORE newcity, newzip WHEN $KEY = F9;
- ENG|0501 | 53|S | CONTROL CASE $KEY OF
- ENG|0501 | 55| | F1 : CALL PROC alter;
- ENG|0501 | 56| | F9 : RETURN;
- ENG|0501 | 57|R | END;
- ENG|0503 | 1| | Form Fields
- ENG|0503 | 2| | -----------
- ENG|0503 | 4| M| #01Simple Form Fields
- ENG|0503 | 5| M| #02Multiple-line Form Fields
- ENG|0503 | 6| M| #03Form Fields of Varying Lengths
- ENG|0503 | 7| M| #04Vector Variables (Subscripted Variables) in Forms
- ENG|0503 | 8| M| #05Vector Slices as an Abbreviated Notation
- ENG|0503 | 9| M| #06Field Numbers Substituting Variable Names
- ENG|0503 | 10| M| #07Vector Variables with Dynamic Index
- ENG|0503 | 11|RI| ##051160->^Syntax
- ENG|050301 | 1| | Simple Form Fields
- ENG|050301 | 3| | <today -> Output field : current value of the variable 'today'
- ENG|050301 | 4| | is displayed here; it c a n n o t be overwritten.
- ENG|050301 | 6| | _cno -> Input field : the current value of the variable 'cno'
- ENG|050301 | 7| | is displayed here; it c a n be overwritten.
- ENG|050301 | 9| | _(passw) -> Input field without display and echo (password input).
- ENG|050301 | 11| | <MESSAGE -> The variable MESSAGE sends system messages.
- ENG|050301 | 12| | If the form contains no MESSAGE field, the last
- ENG|050301 | 13| | screen line is reserved for the message.
- ENG|050301 | 14| | After display, MESSAGE is implicitly set to NULL.
- ENG|050301 | 16| | Just in front of an input/output field either a blank or an intensity
- ENG|050301 | 17|R | sign or an input/output field may occur.
- ENG|050302 | 1| | Multiple-line Form Fields
- ENG|050302 | 3| | <ccity + -> multiple-line output field _newcity +
- ENG|050302 | 4| | <" + multiple-line input field -> _" +
- ENG|050302 | 6| | The field segments of the multiple-line fields must begin immediately
- ENG|050302 | 7| | one below the other in the same column; but they may have various
- ENG|050302 | 8| | lengths.
- ENG|050302 | 10| | Definition:
- ENG|050302 | 11| E|
- ENG|050302 | 12| E| FORM test.m_ln
- ENG|050302 | 13| E| LAYOUT PROMPT = .
- ENG|050302 | 14| E| _newcity +
- ENG|050302 | 15| E| _" +
- ENG|050302 | 16|SE| ENDLAYOUT
- ENG|050302 | 19| E|
- ENG|050302 | 21| | Input: | Bond St. 110...... |
- ENG|050302 | 22| | | New York 10580.... |
- ENG|050302 | 24| | Values of newcity
- ENG|050302 | 25|R | after input: 'Bond St. 110 New York 10580'
- ENG|050303 | 1| | Form Fields of Varying Lengths
- ENG|050303 | 3| | <item_no>> -> output field with variable length.
- ENG|050303 | 5| | '>>' has the effect that the following form fields are attached to
- ENG|050303 | 6| | the portion of field having a variable length.
- ENG|050303 | 8| | Example: item_no := '4711'; item_des := 'screw';
- ENG|050303 | 10| | Definition:
- ENG|050303 | 11| | LAYOUT
- ENG|050303 | 12| | ... Item <item_no>>, <item_des>>, unavailable...
- ENG|050303 | 13| | ENDLAYOUT
- ENG|050303 | 15| | Output:
- ENG|050303 | 16|R | ... Item 4711 , screw , unavailable...
- ENG|050304 | 1| | Subscripted Variables in Forms (Vector Variables)
- ENG|050304 | 3| | C.No. | Firstname | Name
- ENG|050304 | 4| | -----------|----------------|------------------
- ENG|050304 | 5| | _cno(1) | _firstname(1) | _name(1) + -> processing tables
- ENG|050304 | 6| | _cno(2) | _firstname(2) | _name(2) + -> using
- ENG|050304 | 7| | ... | ... | ... + -> subscripted
- ENG|050304 | 8| | _cno(8) | _firstname(8) | _name(8) + -> variables
- ENG|050304 | 10|R | A vector variable can consist of up to 255 components.
- ENG|050305 | 1| | Vector Slices as an Abbreviated Notation
- ENG|050305 | 3| | C.No. | Firstname | Name
- ENG|050305 | 4| | -----------|-------------------|------------------
- ENG|050305 | 5| | _cno(1..8) | _firstname(1..8) | _name(1..8) +
- ENG|050305 | 6| | _ | _ | _ +
- ENG|050305 | 7| | ... | ... | ... +
- ENG|050305 | 8| | _ | _ | _ +
- ENG|050305 | 10| | fo.
- ENG|050305 | 11| | Vector components which are listed one below the other may
- ENG|050305 | 12|R | be described in an abbreviated notation as vector slices.
- ENG|050306 | 1| | Field Numbers Substituting Variable Names
- ENG|050306 | 2| E|
- ENG|050306 | 3| E| FORM test.fld_nr
- ENG|050306 | 4| E| LAYOUT GRAPHIC = *
- ENG|050306 | 5| E| C.No. * Firstname
- ENG|050306 | 6| E| ***************************
- ENG|050306 | 7| E| _1 * _firstname(1..4) *
- ENG|050306 | 8| E| _ * _ *
- ENG|050306 | 9| E| _ * _ *
- ENG|050306 | 10| E| _ * _ *
- ENG|050306 | 11| E| ENDLAYOUT
- ENG|050306 | 12| E| FIELD 1:cno(1..4)
- ENG|050306 | 14| E|
- ENG|050306 | 16| | - A form field can be represented by a field number. This makes
- ENG|050306 | 17|S | the field size independent of the length of the variable name.
- ENG|050306 | 19| | - Field number and variable are associated with each other
- ENG|050306 | 20|R | within the FIELD statement.
- ENG|050307 | 1| | Vector Variables with Dynamic Index
- ENG|050307 | 2| E|
- ENG|050307 | 3| E| FORM test.vec_fld
- ENG|050307 | 4| E| LAYOUT GRAPHIC = *
- ENG|050307 | 5| E| ******************************
- ENG|050307 | 6| E| _1 * _firstname(1..4) *
- ENG|050307 | 7| E| _ * _ *
- ENG|050307 | 8| E| _ * _ *
- ENG|050307 | 9| E| _ * _ *
- ENG|050307 | 10| E| ENDLAYOUT
- ENG|050307 | 11| E| FIELD 1:cno(1..4), firstname(1..4) OFFSET x;
- ENG|050307 | 13| E|
- ENG|050307 | 15| | - If the variable after OFFSET (here x) has a value greater than 0,
- ENG|050307 | 16| | then the value of the vector component firstname(1+x) appears in the
- ENG|050307 | 17|S | form field of the vector component firstname(1).
- ENG|050307 | 19| | - This rule applies accordingly to all vector components that are
- ENG|050307 | 20| | given in the FIELD statement.
- ENG|050307 | 22|R | - Numeric expressions can be specified instead of the variable x.
- ENG|0504 | 1| | Processing Statements in Forms
- ENG|0504 | 2| | ------------------------------
- ENG|0504 | 4| M| #01PROMPT : Representing a field with NULL Value
- ENG|0504 | 5| M| #02ATTR1,... : Display Attributes
- ENG|0504 | 6| M| #03IN^and^OUT : Identifiers for Input/Output Fields
- ENG|0504 | 7| M| #14GRAPHIC : Graphics Characters in Forms
- ENG|0504 | 8| M| #04FIELD/... : Options for the FIELD Statement
- ENG|0504 | 9| M| #08ACCEPT : Activating the Release Key
- ENG|0504 | 10| M| #15MARK : Initializing the Cursor Position
- ENG|0504 | 11| M| #09IGNORE : Suppressing Input Checking
- ENG|0504 | 12| M| #10KEYSWAP : Interchanging the Key Functions
- ENG|0504 | 13| M| #18SPECIALATTR : Situation-dependent Display Attributes
- ENG|0504 | 14| M| #19INSERTMODE : Display of the Input Mode
- ENG|0504 | 15| M| #11CONTROL : The Form as Controlling Module
- ENG|0504 | 16| M| #16RETURNONLAST : Leaving the Form via the Return Key
- ENG|0504 | 17|SM| #06PICK/PUT : PICK/PUT Mechanism
- ENG|0504 | 19| M| #05AUTOPAGE : Support of Scrolling
- ENG|0504 | 20| M| #17HEADERLINES/
- ENG|0504 | 21| M| #17BOTTOMLINES : Header and Bottomlines
- ENG|0504 | 23| M| #22BEFORE/AFTER^FIELD : What's to do on Entering and Leaving a Field
- ENG|0504 | 24| M| #23GROUP : Several Fields can be summarized to a Group
- ENG|0504 | 25| M| #24BEFORE/AFTER^GROUP : What's to do on Entering and Leaving a Group
- ENG|0504 | 26| M| #25NEXTFIELD : Continue with Another Field of the Group
- ENG|0504 | 27| M| #26NEXTGROUP : Continue with Another Group
- ENG|0504 | 28| M| #27NOAUTONEXT : Continue with Next Field
- ENG|0504 | 29| M| #28SCROLLFIELD : Move Vector Slices
- ENG|0504 | 30| M| #29KEYS : Assign Function to Keys
- ENG|0504 | 31|RI| ##051138->^Syntax
- ENG|050401 | 1| | PROMPT : Representing a Field with NULL Value
- ENG|050401 | 2| E|
- ENG|050401 | 3| E| FORM test.fld_prompt
- ENG|050401 | 4| E| LAYOUT PROMPT = .
- ENG|050401 | 5| E| ...
- ENG|050401 | 6| E| Firstname : _cfname
- ENG|050401 | 7| E| ...
- ENG|050401 | 8| E| ENDLAYOUT
- ENG|050401 | 9| E| FIELD cfname INIT NULL SIZE 20;
- ENG|050401 | 11| E|
- ENG|050401 | 13| | The PROMPT option in the LAYOUT line fills the entire length of fields
- ENG|050401 | 14| | the variables of which are NULL with the specified character.
- ENG|050401 | 16| | After user input, the prompt characters are truncated to the left and
- ENG|050401 | 17|S | to the right of the input ( like TRIM (cfname,'.') ).
- ENG|050401 | 19|RI| ##051103->^Syntax
- ENG|050402 | 1| | ATTR1,...ATTR16, HIGH, HI, LOW, INV, BLK, UNDERL : Display Attributes
- ENG|050402 | 2| E|
- ENG|050402 | 3| E| FORM test.lopt_attr
- ENG|050402 | 4| E| LAYOUT HIGH = % LOW = + ATTR16 = *
- ENG|050402 | 5| E| <user CUSTOMER CARD *<today
- ENG|050402 | 6| E| -------------------------------------
- ENG|050402 | 7| E| %customer_no. : +_cno
- ENG|050402 | 8| E| ENDLAYOUT
- ENG|050402 | 9| E| FIELD user INIT $USER;
- ENG|050402 | 10| E| FIELD today INIT DATE(DD.MM.YY);
- ENG|050402 | 11| E| FIELD cno INIT '.'(6);
- ENG|050402 | 13| E|
- ENG|050402 | 15| | The options ATTR1,...,ATTR16 (HIGH, HI,
- ENG|050402 | 16| | LOW, INV, BLK, UNDERL) can be used to define special
- ENG|050402 | 17|S | characters for controlling the intensity of the display.
- ENG|050402 | 19| | Normally input fields are displayed brightly, output fields and text
- ENG|050402 | 20| | parts darkly (SET parameter ATTR2/HI and ATTR1/LOW).
- ENG|050402 | 21| | As soon as one of the special characters appears,
- ENG|050402 | 22| | the line is output according to the intensity defined, starting
- ENG|050402 | 23| | with the special character until the end of line or up to
- ENG|050402 | 24| | the next occurrence of a special character.
- ENG|050402 | 26| | In the example: '<user' and '_cno' appear dark, 'customer_no.' bright
- ENG|050402 | 27| | '<today' SET parameter ATTR16.
- ENG|050402 | 29|RI| ##051103->^Syntax
- ENG|050403 | 1| | IN and OUT : Identfiers for Input/Output Fields
- ENG|050403 | 2| E|
- ENG|050403 | 3| E| FORM bsp_form.l_in_out
- ENG|050403 | 4| E| LAYOUT IN = & OUT = @
- ENG|050403 | 5| E| @user CUSTOMER CARD @today
- ENG|050403 | 6| E| -------------------------------------
- ENG|050403 | 7| E| customer_no.: &cno
- ENG|050403 | 8| E| ....
- ENG|050403 | 9| E| ENDLAYOUT
- ENG|050403 | 11| E| FIELD user INIT $USER;
- ENG|050403 | 12| E| FIELD today INIT DATE(DD.MM.YY);
- ENG|050403 | 13| E| FIELD cno INIT '.'(6);
- ENG|050403 | 15| E|
- ENG|050403 | 17|S | IN and OUT can be used to define explicitly characters other than the
- ENG|050403 | 19| | given '_' (underscore) and '<' (less than) to denote the beginning of
- ENG|050403 | 20| | an input or output field.
- ENG|050403 | 22| | Thus 'user' and 'today' are output fields in this example, whereas
- ENG|050403 | 23| | 'cno' is an input field.
- ENG|050403 | 25|RI| ##051103->^Syntax
- ENG|050404 | 1| | Options of the FIELD Statement
- ENG|050404 | 2| | ------------------------------
- ENG|050404 | 4| M| #02FIELD/INIT^^^^^^: Initializations
- ENG|050404 | 5| M| #01FIELD/SIZE^^^^^^: Explicit Field Delimitation
- ENG|050404 | 6| M| #06FIELD/WIDTH^^^^^: Field Delimitation in case of
- ENG|050404 | 7| | Multiple-line Form Fields
- ENG|050404 | 8| M| #04FIELD/CHECK^^^^^: Input Checking
- ENG|050404 | 9| M| #07FIELD/DOMAIN^^^^: Using DOMAIN Definitions
- ENG|050404 | 10| M| #03FIELD/HELP^FORM^: Output of HELP Forms
- ENG|050404 | 11| M| #08FIELD/HELP^MSG^^: Output of HELP Messages
- ENG|050404 | 12| M| #05FIELD/DISPLAY^^^: Editing the Display
- ENG|050404 | 13| M| #09FIELD/OFFSET^^^^: Vector Components with Dynamic Index
- ENG|050404 | 14| M| #10FIELD/ATTR^^^^^^: Assignment of Field Attributes
- ENG|050404 | 15| M| #11FIELD/NOINPUT^^^: Positioning Cursor without overwriting the field
- ENG|050404 | 16|RI| ##051105->^Syntax
- ENG|05040401 | 1| | FIELD/SIZE : Field Delimitation
- ENG|05040401 | 3| E|
- ENG|05040401 | 4| E| FORM test.fld_size
- ENG|05040401 | 5| E| LAYOUT PROMPT = . HIGH = % LOW = +
- ENG|05040401 | 6| E| Amount1 : _amount1
- ENG|05040401 | 7| E| .............................................
- ENG|05040401 | 8| E| Amount2 : _amount2 $
- ENG|05040401 | 9| E| ........
- ENG|05040401 | 10| E| Amount3 : _amount3 +
- ENG|05040401 | 11| E| ...........
- ENG|05040401 | 12| E| Amount4 : _amount4
- ENG|05040401 | 13| E| ..........
- ENG|05040401 | 14| E| ENDLAYOUT
- ENG|05040401 | 16|SE| FIELD amount4 SIZE 10;
- ENG|05040401 | 19| E|
- ENG|05040401 | 21| | This example illustrates the various possibilities of precisely
- ENG|05040401 | 22| | limiting a field. The dots denote the lengths of the input areas.
- ENG|05040401 | 24|RI| ##051107->^Syntax
- ENG|05040402 | 1| | FIELD/INIT : Initializations
- ENG|05040402 | 3| E|
- ENG|05040402 | 4| E| FORM test.fld_init
- ENG|05040402 | 5| E| LAYOUT
- ENG|05040402 | 6| E| <user CUSTOMER CARD <today
- ENG|05040402 | 7| E| ------------------------------------
- ENG|05040402 | 8| E| customer_no : _cno
- ENG|05040402 | 9| E| ...
- ENG|05040402 | 10| E| ENDLAYOUT
- ENG|05040402 | 12| E| FIELD user INIT $USER;
- ENG|05040402 | 13| E| FIELD today INIT DATE(DD.MM.YY);
- ENG|05040402 | 14| E| FIELD cno INIT '.'(6);
- ENG|05040402 | 16|SE|
- ENG|05040402 | 19| | Whenever the form is called, the variables 'user', 'today' and 'cno'
- ENG|05040402 | 20| | are initialized according to the INIT option.
- ENG|05040402 | 21| | The initializations can be suppressed dynamically at runtime by calling
- ENG|05040402 | 22| | the form with NOINIT option :
- ENG|05040402 | 24| | CALL FORM mastercard ( NOINIT );
- ENG|05040402 | 26| | In this case, the current values of the variables appear in the fields.
- ENG|05040402 | 28| | Fields for which no INIT option has been specified always contain the
- ENG|05040402 | 29| | current values of the variables. If their value is NULL, they will be
- ENG|05040402 | 30| | filled with the PROMPT character.
- ENG|05040402 | 32|RI| ##051106->^Syntax
- ENG|05040403 | 1| | FIELD/HELP FORM : Output of HELP Forms
- ENG|05040403 | 3| | The FIELD/HELP statement can be used to assign HELP information in form
- ENG|05040403 | 4| I| of a HELP form or ##05040408HELP message to a form field or group of form fields.
- ENG|05040403 | 5| | A HELP form is a special form starting with the keyword 'HELPFORM'. In
- ENG|05040403 | 6| | a HELP form only local variables may be used, and the CONTROL statement
- ENG|05040403 | 7| | must not contain CALL, SWITCH, or SWITCHCALL statements.
- ENG|05040403 | 9| | Example of a HELP form definition:
- ENG|05040403 | 11| E|
- ENG|05040403 | 12| E| HELPFORM customer.helpinfo
- ENG|05040403 | 13| E| LAYOUT
- ENG|05040403 | 14| E| customerno : 5 digits numeric
- ENG|05040403 | 15| E| ENDLAYOUT
- ENG|05040403 | 16|SE| FIELD message INIT 'Continue with ENTER';
- ENG|05040403 | 19| E|
- ENG|05040403 | 21| | Example of a HELP form call:
- ENG|05040403 | 23| | FORM customer.mastercard
- ENG|05040403 | 24| | LAYOUT
- ENG|05040403 | 25| | customerno: _cno
- ENG|05040403 | 26| | ENDLAYOUT
- ENG|05040403 | 28| | ACCEPT( F10='INFO', ENTER, F3='RETURN' );
- ENG|05040403 | 29| | FIELD cno
- ENG|05040403 | 30| | HELP FORM helpinfo;
- ENG|05040403 | 32| | If the F10 KEY (HELP key) is pressed at runtime while the cursor is
- ENG|05040403 | 33| | placed on the field 'cno' of the form 'mastercard', the HELP form
- ENG|05040403 | 34| | 'helpinfo' will be displayed. It will be positioned on the current
- ENG|05040403 | 35|S | screen in such a way that the field 'cno' remains visible.
- ENG|05040403 | 37| | Position, size, and section of the HELP screen may also be specified
- ENG|05040403 | 38| | explicitly as call options (see SCREENPOS, SCREENSIZE, and FORMPOS).
- ENG|05040403 | 40| | If the cursor is placed on a form field for which no HELP option has
- ENG|05040403 | 41| | been specified and the HELP form is released, then the F10 key (HELP
- ENG|05040403 | 42| | key) will have the same effect as any other key.
- ENG|05040403 | 44|RI| ##051111->^Syntax
- ENG|05040404 | 1| | FIELD/CHECK: Input Checking
- ENG|05040404 | 3| | For each input field, one condition and an associated message can be
- ENG|05040404 | 4| | specified via the CHECK option of the FIELD instructions.
- ENG|05040404 | 6| | If an input value does not fulfil the required condition, the cursor is
- ENG|05040404 | 7| | set to the field concerned and the message behind ELSE in the CHECK
- ENG|05040404 | 8| | option is displayed via MESSAGE. The user can then correct the input
- ENG|05040404 | 9| | immediately.
- ENG|05040404 | 11| | If no message text was specified behind ELSE, a substitute message is
- ENG|05040404 | 12| | displayed.
- ENG|05040404 | 14| | The CHECK conditions are processed in the sequence of their definition.
- ENG|05040404 | 16| | If no CHECK condition has been infringed, FORM sets the MESSAGE
- ENG|05040404 | 17|S | variable to NULL.
- ENG|05040404 | 19| | There are several other ways of formulating a CHECK condition.
- ENG|05040404 | 21| M| 1. The list of fields to be checked contains only #01simple^variables (no
- ENG|05040404 | 22| | vector slices).
- ENG|05040404 | 24| M| 2. The list of fields to be checked contains only #02vector^slices
- ENG|05040404 | 26| M| 3. #03Other^conditions
- ENG|05040404 | 28|RI| ##051109->^Syntax
- ENG|0504040401 | 1| | The list of fields to be checked contains only simple variables
- ENG|0504040401 | 3| I| - Behind CHECK a ##0203040148<check^cond> can be used without using the field
- ENG|0504040401 | 4| | name again. The <check cond> condition can also consist of arbitrary
- ENG|0504040401 | 5| | partial conditions joined by AND or OR. All IS, IN, BETWEEN or LIKE
- ENG|0504040401 | 6| | conditions and their negations are permitted as partial conditions
- ENG|0504040401 | 7| | The formulated condition holds for all variables of the field list.
- ENG|0504040401 | 9| I| - Behind CHECK, ##0203040136<expr> followed by <check cond> can be used.
- ENG|0504040401 | 10| | With <expr> a function value of the field e.g. can be checked.
- ENG|0504040401 | 12| | Take note : 'FIELD a, b CHECK UPPER (a) in (....)'
- ENG|0504040401 | 13| | checks the condition formulated regarding field a
- ENG|0504040401 | 14| | in field a as well as in field b.
- ENG|0504040401 | 15| E|
- ENG|0504040401 | 16| E| FORM customer.mastercard
- ENG|0504040401 | 17|SE| LAYOUT
- ENG|0504040401 | 19| E| zip cno ctit cfname ccname
- ENG|0504040401 | 20| E| ------------------------------------------------
- ENG|0504040401 | 21| E| _zip _cno _ctit _cfname _ccname
- ENG|0504040401 | 23| E| ...
- ENG|0504040401 | 24| E| ENDLAYOUT
- ENG|0504040401 | 26| E| /* composite expressions
- ENG|0504040401 | 27| E| FIELD zip SIZE 5
- ENG|0504040401 | 28| E| CHECK BETWEEN 1000 AND 9999
- ENG|0504040401 | 29| E| AND IS NOT NULL OR IS BLANK;
- ENG|0504040401 | 31| E| /* regular expressions in the LIKE condition
- ENG|0504040401 | 32| E| FIELD cno SIZE 5
- ENG|0504040401 | 33| E| CHECK LIKE '(a-Z)(0-9)(0-9)(0-9)(0-9)'
- ENG|0504040401 | 34|SE| ELSE 'alpha followed by 4 digits';
- ENG|0504040401 | 37| E| /* checking a function expression
- ENG|0504040401 | 38| E| FIELD ctit
- ENG|0504040401 | 39| E| CHECK UPPER(ctit) IN ('MS','MR','FIRM')
- ENG|0504040401 | 40| E| ELSE 'specify either Ms, Mr or Firm';
- ENG|0504040401 | 42| E| /* composite expression for list with simple fields
- ENG|0504040401 | 43| E| FIELD cfname, cname INIT NULL
- ENG|0504040401 | 44| E| CHECK IS NOT NULL AND IS ALPHA
- ENG|0504040401 | 45| E| ELSE 'please enter complete name';
- ENG|0504040401 | 47| E|
- ENG|0504040401 | 48|RI| ##051109->^Syntax
- ENG|0504040402 | 1| | The list of fields to be checked contains only vector slices
- ENG|0504040402 | 3| | The predicates ALL, ANY and ONE must be used for a precise formulation.
- ENG|0504040402 | 4| I| Behind CHECK and a predicate, a ##0203040148<check^cond> can be specified.
- ENG|0504040402 | 5| E|
- ENG|0504040402 | 6| E| FORM customer.list
- ENG|0504040402 | 7| E| LAYOUT
- ENG|0504040402 | 8| E| _1 _2
- ENG|0504040402 | 9| E| _ _
- ENG|0504040402 | 10| E| _ _
- ENG|0504040402 | 11| E| ENDLAYOUT
- ENG|0504040402 | 13| E| FIELD 1:cno_alt(1..3), 2:cno_neu(1..3)
- ENG|0504040402 | 14| E| CHECK ANY BETWEEN 1000 and 9999 OR IS BLANK
- ENG|0504040402 | 15| E| ELSE 'specify at least one 4 digit number per column';
- ENG|0504040402 | 17|SE|
- ENG|0504040402 | 19|RI| ##051109->^Syntax
- ENG|0504040403 | 1| | Other conditions
- ENG|0504040403 | 3| I| Behind CHECK an arbitrary ##0203040146<boolean^expr> can be specified. A mixture of
- ENG|0504040403 | 4| | simple variables and vector slices is permitted as variable list of the
- ENG|0504040403 | 5| | fields to be checked. However, in most cases it will be sensible to
- ENG|0504040403 | 6| | check only a definite field with this variant and not a field list.
- ENG|0504040403 | 8| | nf Examples:
- ENG|0504040403 | 9| | FIELD cno CHECK cno > 1000 ...
- ENG|0504040403 | 10| | ELSE 'customer numbers start at 1000';
- ENG|0504040403 | 11| | or
- ENG|0504040403 | 12| | FIELD cno CHECK ( cno DIV 2 ) * 2 = cno
- ENG|0504040403 | 13| | ELSE 'all customer numbers must be even';
- ENG|0504040403 | 15| | Example for checking date values:
- ENG|0504040403 | 17|S | form execution
- ENG|0504040403 | 22| | date format from to
- ENG|0504040403 | 23| | ____________ __________ __________
- ENG|0504040403 | 24| | .......... mm/dd/yyyy 01/01/1993 30/06/1993
- ENG|0504040403 | 29| | please enter a date with the specified date format and within
- ENG|0504040403 | 30| | the interval specified
- ENG|0504040403 | 32| E|
- ENG|0504040403 | 33| E| FORM date.input
- ENG|0504040403 | 34| E| LAYOUT LOW=+ PROMPT = .
- ENG|0504040403 | 35|SE| date format from to
- ENG|0504040403 | 37| E| ____________ __________ __________
- ENG|0504040403 | 38| E| _date <datformat <from_date <to_date
- ENG|0504040403 | 40| E| ENDLAYOUT
- ENG|0504040403 | 42| E| FIELD message INIT 'please enter a date with the specified date '
- ENG|0504040403 | 43| E| & 'format and in the specified interval';
- ENG|0504040403 | 45| E| FIELD datformat INIT SET (DATE);
- ENG|0504040403 | 46| E| FIELD from_date INIT DATE ( , '19930101', yyyymmdd );
- ENG|0504040403 | 47| E| FIELD to_date INIT DATE ( , '19930630', yyyymmdd );
- ENG|0504040403 | 49| E| FIELD date SIZE 10
- ENG|0504040403 | 50| E| CHECK
- ENG|0504040403 | 51| E| DATE (yyyymmdd,date ) BETWEEN 19930101 AND 19930630
- ENG|0504040403 | 52| E| ELSE 'date must be in the specified range'
- ENG|0504040403 | 53|SE| & 'and be notated in the specified format';
- ENG|0504040403 | 56| E|
- ENG|0504040403 | 57| | In this example it is checked whether a date input (field 'date') is
- ENG|0504040403 | 58| | within a certain interval. The test whether a value is in a certain
- ENG|0504040403 | 59| | interval is only possible for date values by means of the internal
- ENG|0504040403 | 60| | representation of the date values. The function DATE (yyyymmdd, date)
- ENG|0504040403 | 61| | converts the variable value 'date' from the format set in the SET
- ENG|0504040403 | 62| | parameters into the internal date format.
- ENG|0504040403 | 64| | The subsequent BETWEEN predicate checks finally whether the value is in
- ENG|0504040403 | 65| | the specified interval.
- ENG|0504040403 | 67| | Since the DATE function only returns a valid value if the input value
- ENG|0504040403 | 68| | has the format expected by the SET parameters, in this way, the date
- ENG|0504040403 | 69| | format of the date input is also checked automatically.
- ENG|0504040403 | 71|RI| ##051109->^Syntax
- ENG|05040405 | 1| | FIELD/DISPLAY : Editing the Display
- ENG|05040405 | 3| | The FIELD/DISPLAY statement can be used to format the values of the
- ENG|05040405 | 4| | variables before their display. Numeric values can be formatted via a
- ENG|05040405 | 5| | FORMAT statement and be left- or right-justified in addition.
- ENG|05040405 | 7| | e.g.: FIELD amount DISPLAY FORMAT ('+999.999,99');
- ENG|05040405 | 8| | FIELD amount DISPLAY FORMAT ('+999.999,99') RIGHT;
- ENG|05040405 | 10| | Alphanumeric values may be displayed in lower or upper case characters
- ENG|05040405 | 11| | and be left- or right-justified.
- ENG|05040405 | 13|S | e.g.: FIELD name DISPLAY UPPER;
- ENG|05040405 | 19| | Example of the Formatting of Numeric Values
- ENG|05040405 | 21| | Form Definition
- ENG|05040405 | 22| | -----------------
- ENG|05040405 | 23| E|
- ENG|05040405 | 24| E| FORM account.display
- ENG|05040405 | 25| E| LAYOUT LOW=+
- ENG|05040405 | 26| E| ...
- ENG|05040405 | 27| E| bank_balance: <amount + <today
- ENG|05040405 | 28| E| ...
- ENG|05040405 | 29| E| ENDLAYOUT
- ENG|05040405 | 31| E| FIELD amount INIT 12345678 DISPLAY FORMAT ('-999.999.999,99') RIGHT;
- ENG|05040405 | 32| E| FIELD today INIT DATE(dd/mm/yy);
- ENG|05040405 | 34|SE|
- ENG|05040405 | 37|RI| ##051112->^Syntax
- ENG|05040406 | 1| | FIELD/WIDTH : Field Delimitation in case of Multiple-line Form Fields
- ENG|05040406 | 3| | In case of multiple-line fields it is desirable to be able to specify
- ENG|05040406 | 4| | the total length of the field and the length of each subfield.
- ENG|05040406 | 5| | FIELD/SIZE defines the total length of the multiple-line field.
- ENG|05040406 | 6| | FIELD/WIDTH defines the length of the individual subfields.
- ENG|05040406 | 8| | These functions facilitate the writing of tools which generate an
- ENG|05040406 | 9| | appropriate form field for a table field occurring in the database.
- ENG|05040406 | 11|RI| ##051108->^Syntax
- ENG|05040407 | 1| | FIELD/DOMAIN : Using DOMAIN Definitions for Form Fields
- ENG|05040407 | 3| | If DOMAIN objects are defined, these can be used for the definition of
- ENG|05040407 | 4| | a form field. The FIELD/DOMAIN specification has the effect that FORM
- ENG|05040407 | 5| | accesses the DOMAIN definition stored in the database using it for the
- ENG|05040407 | 6| | definition of SIZE, WIDTH, INIT, and CHECK.
- ENG|05040407 | 8| | The length in the DOMAIN definition specified under LENGTH has the
- ENG|05040407 | 9| | effect of an explicit FIELD/SIZE specification. The width specified in
- ENG|05040407 | 10| | the DOMAIN definition under COLS has the effect of a FIELD/WIDTH
- ENG|05040407 | 11| | specification. The DEFAULT value of the DOMAIN definition has the same
- ENG|05040407 | 12| | effect as a FIELD/INIT specification with the same value. The RANGE
- ENG|05040407 | 13| | specification of the DOMAIN definition has the effect of a FIELD/CHECK
- ENG|05040407 | 14| | specification defined explicitly. Example:
- ENG|05040407 | 16| | Let a DOMAIN be defined in the database in the following way (the
- ENG|05040407 | 17|S | interactive component DOMAIN should always be used for defining):
- ENG|05040407 | 19| | domainname : TITLE
- ENG|05040407 | 20| | length (length): 5
- ENG|05040407 | 21| | data type : char
- ENG|05040407 | 22| | range : IN ('Mr','Ms','-')
- ENG|05040407 | 23| | default : -
- ENG|05040407 | 25| | Then ...
- ENG|05040407 | 27| | FIELD tit SIZE 5
- ENG|05040407 | 28| | INIT '-'
- ENG|05040407 | 29| | CHECK IN ('Mr','Ms','-')
- ENG|05040407 | 31| | is equivalent to ...
- ENG|05040407 | 33| | FIELD tit DOMAIN title
- ENG|05040407 | 35|S | Sometimes it may be desirable that only some of the definitions which
- ENG|05040407 | 37| | have been made for the object DOMAIN are used. In such a case those
- ENG|05040407 | 38| | parts of the DOMAIN definition which shall have an effect on the field
- ENG|05040407 | 39| | concerned may be specified after the domain name by means of the
- ENG|05040407 | 40| | keywords SIZE, WIDTH, INIT, and CHECK.
- ENG|05040407 | 42| | Example:
- ENG|05040407 | 43| | FIELD tit DOMAIN tit ( SIZE, CHECK );
- ENG|05040407 | 45| | has the same effect as:
- ENG|05040407 | 47| | FIELD tit SIZE 5
- ENG|05040407 | 48| | CHECK IN ('Mr','Ms','-')
- ENG|05040407 | 50|RI| ##051110->^Syntax
- ENG|05040408 | 1| | FIELD/HELP MSG : Output of HELP Messages in the MESSAGE Line
- ENG|05040408 | 3| | The statement FIELD a HELP MSG <str expr> has the effect that the
- ENG|05040408 | 4| | specified message is displayed in the message line as soon as the F10
- ENG|05040408 | 5| | key (HELP key) is pressed. If both kinds of HELP information (HELP MSG
- ENG|05040408 | 6| I| and ##05040403HELP^FORM) are specified, pressing the F10 key (HELP key) once will
- ENG|05040408 | 7| | display the message, pressing the F10 key (HELP key) a second time will
- ENG|05040408 | 8| | display the form.
- ENG|05040408 | 11| | Example:
- ENG|05040408 | 13| E|
- ENG|05040408 | 14| E| FORM test.help_msg
- ENG|05040408 | 15| E| LAYOUT
- ENG|05040408 | 16| E| _func
- ENG|05040408 | 17|SE| ENDLAYOUT
- ENG|05040408 | 19| E| ACCEPT ( ENTER, F10='HELP INFO');
- ENG|05040408 | 20| E| FIELD func
- ENG|05040408 | 21| E| HELP MSG
- ENG|05040408 | 22| E| 'The menu items describe the possible activities'
- ENG|05040408 | 23| E| HELP FORM
- ENG|05040408 | 24| E| menu_info;
- ENG|05040408 | 26| E|
- ENG|05040408 | 28|RI| ##051111->^Syntax
- ENG|05040409 | 1| | FIELD/OFFSET : Vector Components with Dynamic Index
- ENG|05040409 | 2| E|
- ENG|05040409 | 3| E| FORM customer.registration
- ENG|05040409 | 5| E| LAYOUT GRAPHIC=*
- ENG|05040409 | 6| E| cno * name *
- ENG|05040409 | 7| E| *****************************
- ENG|05040409 | 8| E| _1 * _name(1..4) *
- ENG|05040409 | 9| E| _ * _ *
- ENG|05040409 | 10| E| _ * _ *
- ENG|05040409 | 11| E| _ * _ *
- ENG|05040409 | 13| E| ENDLAYOUT
- ENG|05040409 | 15| E| FIELD 1:cno(1..4), name(1..4) OFFSET x;
- ENG|05040409 | 17|SE|
- ENG|05040409 | 19| | If the expression behind OFFSET (here the variable x) has a value greater
- ENG|05040409 | 20| | than 0, the value of the vector component 'name(1+x)' appears in the form
- ENG|05040409 | 21| | field of the vector component 'name(1)'.
- ENG|05040409 | 23| | This rule accordingly applies for all vector components that are addressed in
- ENG|05040409 | 24| | this FIELD instruction.
- ENG|05040409 | 26| | Instead of the variable x, numerical expressions are also permitted.
- ENG|05040409 | 28|RI| ##051113->^Syntax
- ENG|05040410 | 1| | FIELD/ATTR : Assignment of Field Attributes
- ENG|05040410 | 3| | With the aid of the FIELD/ATTR instruction, an attribute can be
- ENG|05040410 | 4| | assigned to each input or output field without an additional character
- ENG|05040410 | 5| | having to be placed before the fields in the LAYOUT. The attributes of
- ENG|05040410 | 6| | the text fields, however, can only be altered with the help of the
- ENG|05040410 | 7| | control characters.
- ENG|05040410 | 9| E|
- ENG|05040410 | 10| E| LAYOUT UNDERL=+
- ENG|05040410 | 11| E| ...
- ENG|05040410 | 12| E| +Name : <name
- ENG|05040410 | 13| E| ...
- ENG|05040410 | 14| E| ENDLAYOUT
- ENG|05040410 | 16|SE| FIELD name SIZE 18 ATTR INV;
- ENG|05040410 | 20| E|
- ENG|05040410 | 22|RI| ##051114->^Syntax
- ENG|05040411 | 1| | FIELD/NOINPUT : Positioning Cursor without overwriting the field
- ENG|05040411 | 3| | A frequent application of forms is to choose a certain field in a list
- ENG|05040411 | 4| | of fields by means of the cursor without overwriting the field.
- ENG|05040411 | 6| | The option NOINPUT ensures that a field defined as input field in the
- ENG|05040411 | 7| | layout cannot be overwritten, but can nevertheless be chosen by the
- ENG|05040411 | 8| | cursor.
- ENG|05040411 | 9| E|
- ENG|05040411 | 10| E| FORM test.noinp
- ENG|05040411 | 11| E| LAYOUT
- ENG|05040411 | 13| E| _Z(1..5)
- ENG|05040411 | 14| E| _
- ENG|05040411 | 15| E| _
- ENG|05040411 | 16| E| _
- ENG|05040411 | 17|SE| _
- ENG|05040411 | 20| E| ENDLAYOUT
- ENG|05040411 | 21| E| ACCEPT ( ENTER, F3= 'END' );
- ENG|05040411 | 23| E| SPECIALATTR CURSORLINE INV;
- ENG|05040411 | 24| E| FIELD Z(1..5) NOINPUT;
- ENG|05040411 | 25| E| CONTROL CASE $KEY OF
- ENG|05040411 | 26| E| ENTER : CALL PROC display (Z($CURSOR));
- ENG|05040411 | 27| E| F3 : RETURN;
- ENG|05040411 | 28| E| END;
- ENG|05040411 | 29| E|
- ENG|05040411 | 31|RI| ##051184->^Syntax
- ENG|050405 | 1| | AUTOPAGE/PAGE : Scrolling Support
- ENG|050405 | 3| | Scrolling (paging) in forms is necessary when a form is larger that the
- ENG|050405 | 4| | screen segment in which it is displayed. There are three ways of
- ENG|050405 | 5| | scrolling in forms.
- ENG|050405 | 7| | 1. In the CONTROL instruction of the form, the instructions PAGE UP,
- ENG|050405 | 8| | PAGE DOWN, PAGE LEFT and PAGE RIGHT are used.
- ENG|050405 | 10| E|
- ENG|050405 | 11| E| CONTROL
- ENG|050405 | 12| E| CASE $KEY OF
- ENG|050405 | 13| E| UP : PAGE UP; (* one page up *)
- ENG|050405 | 14| E| DOWN : PAGE DOWN n; (* n lines down *)
- ENG|050405 | 15| E| ...
- ENG|050405 | 16|SE| END;
- ENG|050405 | 19| E|
- ENG|050405 | 21| | 2. The instruction AUTOPAGE is used which assigns the scrolling
- ENG|050405 | 22| | functions automatically to the keys and supports scrolling in all
- ENG|050405 | 23| | directions depending on the size of the screen segment.
- ENG|050405 | 25| | ...
- ENG|050405 | 26| | ENDLAYOUT
- ENG|050405 | 27| | ACCEPT ( ... );
- ENG|050405 | 28| | AUTOPAGE;
- ENG|050405 | 29| | FIELD ...
- ENG|050405 | 30| | ...
- ENG|050405 | 32| | FORM occupies definite keys for scrolling with AUTOPAGE. If these are
- ENG|050405 | 33| | already occupied by the program, FORM cannot use these keys for
- ENG|050405 | 34|S | scrolling. The function is thus switched off.
- ENG|050405 | 37| | If a keyboard has engraved scroll keys, FORM activates them for
- ENG|050405 | 38| | scrolling; this applies to all directions of scrolling.
- ENG|050405 | 40| | For all the other keyboards F12 (=DOWN) releases scrolling towards the
- ENG|050405 | 41| | bottom and F11 (=UP) releases scrolling towards the top. For scrolling
- ENG|050405 | 42| | to the right/left in case of keyboards without engraved keys, FORM
- ENG|050405 | 43| | implicitly distinguishes two modes. If the screen section is so wide
- ENG|050405 | 44| | that the left or right part of the form is shown, FORM provides the F9
- ENG|050405 | 45| | key for alternating scrolling. If the screen section is so small that
- ENG|050405 | 46| | horizontal scrolling can be done several times, then FORM provides two
- ENG|050405 | 47| | keys, F8 and F9, for scrolling to the left or to the right.
- ENG|050405 | 49| | For keyboards with nine function keys only, there must be one key
- ENG|050405 | 50| | combination at least be assigned to vt_up_key and vt_down_key in order
- ENG|050405 | 51| | that AUTOPAGE may be operative. If also vt_left_key and vt_right_key
- ENG|050405 | 52| | are realized via key combinations, FORM will recognize this and handle
- ENG|050405 | 53|S | them like engraved keys.
- ENG|050405 | 55| | Example :
- ENG|050405 | 57| | ...
- ENG|050405 | 58| | ENDLAYOUT
- ENG|050405 | 59| | ACCEPT ( ... );
- ENG|050405 | 60| | AUTOPAGE;
- ENG|050405 | 61| | FIELD ...
- ENG|050405 | 64| I| ##051119AUTOPAGE-Syntax
- ENG|050405 | 65|RI| ##051124PAGE-Syntax
- ENG|050406 | 1| | PICK/PUT Mechanism in Forms
- ENG|050406 | 3| | The PICK/PUT statements can be used to define forms from which example
- ENG|050406 | 4| | values may be picked for input fields.
- ENG|050406 | 5| | PICK and PUT may only occur in the CONTROL block of forms.
- ENG|050406 | 7| | Function of PICK without argument:
- ENG|050406 | 8| | stores the value of the field where the cursor is positioned into the
- ENG|050406 | 9| | PICK buffer. Usually the argument will be formulated argument in
- ENG|050406 | 10| | dependence on the cursor position. If the cursor is not positioned on
- ENG|050406 | 11| | an input field, an error message will be output.
- ENG|050406 | 13| | Function of PICK with argument:
- ENG|050406 | 14| | stores the argument in the PICK buffer. Usually the argument is
- ENG|050406 | 15| | formulated according to the cursor position. If the cursor is not
- ENG|050406 | 16|S | positioned on an input field, an error message will be output.
- ENG|050406 | 19| | Example:
- ENG|050406 | 20| E|
- ENG|050406 | 21| E| HELPFORM tpick.test
- ENG|050406 | 22| E| LAYOUT
- ENG|050406 | 23| E| _1 <@menu(1)
- ENG|050406 | 24| E| _ <@menu(2)
- ENG|050406 | 25| E| _ <@menu(3)
- ENG|050406 | 26| E| ENDLAYOUT
- ENG|050406 | 27| E| FIELD 1:@choice(1..3);
- ENG|050406 | 28| E| FIELD @menu(1) INIT 'insert';
- ENG|050406 | 29| E| FIELD @menu(2) INIT 'update';
- ENG|050406 | 30| E| FIELD @menu(3) INIT 'delete';
- ENG|050406 | 31| E| ACCEPT ( ENTER, F3='end' );
- ENG|050406 | 32| E| CONTROL CASE $KEY OF
- ENG|050406 | 33| E| ENTER: PICK(@menu($CURSOR));
- ENG|050406 | 34| E| ELSE : RETURN;
- ENG|050406 | 35|SE| END;
- ENG|050406 | 38| E|
- ENG|050406 | 39| |
- ENG|050406 | 42| | Function of PUT without argument :
- ENG|050406 | 44| | stores the PICK buffer contents as value of the field where the
- ENG|050406 | 45| | cursor is positioned. If the cursor is not positioned on an input
- ENG|050406 | 46| | field, an error message will be output.
- ENG|050406 | 49| | Function of PUT with argument :
- ENG|050406 | 51| | stores the PICK buffer contents as value of the specified variable.
- ENG|050406 | 52| | This variant is needed in the case that an output field shall be
- ENG|050406 | 53|S | filled with a picked value.
- ENG|050406 | 55| | Example:
- ENG|050406 | 57| E|
- ENG|050406 | 58| E| FORM tpick.m1
- ENG|050406 | 59| E| LAYOUT
- ENG|050406 | 60| E| _1 _2
- ENG|050406 | 61| E| _ _
- ENG|050406 | 62| E| _ _
- ENG|050406 | 63| E| _ _
- ENG|050406 | 64| E| ENDLAYOUT
- ENG|050406 | 65| E| ACCEPT ( enter, f5='PUT', f10='PICK FORM' );
- ENG|050406 | 66| E| FIELD 1:title(1..4) HELP FORM p_title ( frame );
- ENG|050406 | 67| E| FIELD 2:city(1..4) HELP FORM p_city ( frame );
- ENG|050406 | 68| E| CONTROL
- ENG|050406 | 69| E| CASE $KEY of
- ENG|050406 | 70| E| F5: PUT;
- ENG|050406 | 71|SE| END;
- ENG|050406 | 74| E|
- ENG|050406 | 76| I| To facilitate the handling of PICK within forms, the ##050610AUTOPUT option can
- ENG|050406 | 77| | be used when calling a form.
- ENG|050406 | 79|RI| ##051123->^Syntax
- ENG|050408 | 1| | ACCEPT : Activating the Release Key
- ENG|050408 | 2| | sp 1 The ACCEPT statement can be used to determine the release keys
- ENG|050408 | 3| | which are to be accepted by the form.
- ENG|050408 | 5| | The permitted release keys are:
- ENG|050408 | 6| | ENTER, F1, ..., F12, HELP, UP, DOWN
- ENG|050408 | 8| | The ACCEPT option can be specified either in the form definition or as
- ENG|050408 | 9| | a call option.
- ENG|050408 | 11| | The rule is that ACCEPT as call option overrides the ACCEPT definition
- ENG|050408 | 12| | in the form.
- ENG|050408 | 14| | If no ACCEPT option is set, then only ENTER will be accepted by the
- ENG|050408 | 15| | form.
- ENG|050408 | 17|S | An example is following:
- ENG|050408 | 19| | Form Definition:
- ENG|050408 | 20| | ----------------
- ENG|050408 | 21| E|
- ENG|050408 | 22| E| FORM test.acc_msk
- ENG|050408 | 23| E| LAYOUT
- ENG|050408 | 24| E| ...
- ENG|050408 | 25| E| ENDLAYOUT
- ENG|050408 | 26| E| ACCEPT ( ENTER, F3='END', F4='INSERT', F5='SEARCH', F6='UPDATE' );
- ENG|050408 | 28| E|
- ENG|050408 | 30| | Call:
- ENG|050408 | 31| | -----
- ENG|050408 | 32| | CALL FORM ... ( ACCEPT (ENTER, F3='RETURN', F5, F6));
- ENG|050408 | 35|S | Resultant Key Menu:
- ENG|050408 | 37| | -------------------
- ENG|050408 | 39| | 3=RETURN 5=SEARCH 6=UPDATE
- ENG|050408 | 41| | In addition to the keys described so far required by FORM independent
- ENG|050408 | 42| | of the type of hardware, there is the possibility of using further keys
- ENG|050408 | 43| | that depend on the installation.
- ENG|050408 | 45| | The following additional key literals can be used at the most: ENDKEY,
- ENG|050408 | 46| | CMDKEY, LEFTKEY, and RIGHTKEY.
- ENG|050408 | 48|RI| ##051117->^Syntax
- ENG|050409 | 1| | IGNORE : Suppressing Input Checking
- ENG|050409 | 2| E|
- ENG|050409 | 3| E| FORM test.ignore_form
- ENG|050409 | 4| E| LAYOUT
- ENG|050409 | 5| E| ... _cno... _cfname ... _cname
- ENG|050409 | 6| E| ENDLAYOUT
- ENG|050409 | 8| E| ACCEPT ( F1='INSERT', F3='RETURN' );
- ENG|050409 | 10| E| FIELD cno, cfname, cname INIT NULL
- ENG|050409 | 11| E| CHECK IS NOT NULL ELSE 'input is incomplete';
- ENG|050409 | 13| E| IGNORE cfname, cname WHEN ( $KEY = F3 )
- ENG|050409 | 15| E|
- ENG|050409 | 17|S | If the user strikes the F3 key after input, then input testing via the
- ENG|050409 | 19| | FIELD/CHECK option will be suppressed for the variables 'cfname' and
- ENG|050409 | 20| | 'cname'.
- ENG|050409 | 22| | If there is a great number of fields to be ignored, then the following
- ENG|050409 | 23| | IGNORE variants can be used:
- ENG|050409 | 25| | IGNORE ALL WHEN ( $KEY = F3 )
- ENG|050409 | 27| | Here none of the input fields will be checked if F3 is pressed.
- ENG|050409 | 29| | Or:
- ENG|050409 | 30| | IGNORE ALL EXCEPT cno, cname WHEN ( $KEY = F3 )
- ENG|050409 | 31| | Here only the fields 'cno' and 'cname' will be checked if F3 is
- ENG|050409 | 32| | pressed.
- ENG|050409 | 34|RI| ##051115->^Syntax
- ENG|050410 | 1| | KEYSWAP : Interchanging the Key Functions
- ENG|050410 | 3| | The KEYSWAP option can be used to interchange the functions of every
- ENG|050410 | 4| | two release keys.
- ENG|050410 | 6| | So it is possible to change the key setting without having to modify
- ENG|050410 | 7| | the routines and forms.
- ENG|050410 | 9| | The KEYSWAP option is valid up to the end of the program or up to the
- ENG|050410 | 10| | occurrence of the next KEYSWAP option.
- ENG|050410 | 12| | KEYSWAP may be specified either in the form definition after the layout
- ENG|050410 | 13|S | part or as a routine option after the routine header.
- ENG|050410 | 19| | Example 1:
- ENG|050410 | 21| | Without KEYSWAP:
- ENG|050410 | 22| | ----------------
- ENG|050410 | 23| | ACCEPT ( F10='HELP', F3='END', F4='INSERT', F5='SEARCH' );
- ENG|050410 | 25| | produces:
- ENG|050410 | 26| | 3=END 4=INSERT 5=SEARCH 10=HELP
- ENG|050410 | 28| | with KEYSWAP:
- ENG|050410 | 29| | -------------
- ENG|050410 | 30| | ACCEPT ( F10='HELP', F3='END', F4='INSERT', F5='SEARCH' );
- ENG|050410 | 31| | KEYSWAP ( F10<->F1 )
- ENG|050410 | 33| | produces:
- ENG|050410 | 34|S | 1=HELP 3=END 4=INSERT 5=SEARCH
- ENG|050410 | 37| | Example 2:
- ENG|050410 | 39| | with KEYSWAP:
- ENG|050410 | 40| | -------------
- ENG|050410 | 41| | ACCEPT ( F10='HELP', F3='END', F4='INSERT', F5='SEARCH' );
- ENG|050410 | 42| | KEYSWAP ( F10<->F1, F2<->F3, F3<->F4, F4<->F5 )
- ENG|050410 | 44| | produces:
- ENG|050410 | 45| | 1=HELP 2=END 3=INSERT 4=SEARCH
- ENG|050410 | 47|RI| ##051155->^Syntax
- ENG|050411 | 1| | CONTROL : The Form as Controlling Module
- ENG|050411 | 2| E|
- ENG|050411 | 3| E| FORM customer.mastercard
- ENG|050411 | 4| E| LAYOUT
- ENG|050411 | 5| E| ENDLAYOUT
- ENG|050411 | 7| E| ACCEPT ( F3='RETURN',F4='INSERT',F5='ALTER' );
- ENG|050411 | 8| E| CONTROL CASE $KEY OF
- ENG|050411 | 9| E| F3 : RETURN;
- ENG|050411 | 10| E| F4 : CALL PROC insert;
- ENG|050411 | 11| E| F5 : CALL PROC alter;
- ENG|050411 | 12| E| END;
- ENG|050411 | 14| E|
- ENG|050411 | 16| | If the user presses the F4 key after input, then the SQL-PL routine
- ENG|050411 | 17|S | 'customer.insert' will be called out of the form.
- ENG|050411 | 19| | RETURN, CALL, SWITCH, SWITCHCALL, PICK, PUT, and further CASE
- ENG|050411 | 20| | statements may be included within the CASE statement.
- ENG|050411 | 22| | The following equivalent SQL-PL routine shall illustrate the effect of
- ENG|050411 | 23| | the CONTROL statement:
- ENG|050411 | 25| | PROC customer.start
- ENG|050411 | 26| | ...
- ENG|050411 | 27| | REPEAT
- ENG|050411 | 28| | CALL FORM customer.mastercard;
- ENG|050411 | 29| | CASE $KEY OF
- ENG|050411 | 30| | F3 : RETURN;
- ENG|050411 | 31| | F4 : CALL PROC insert;
- ENG|050411 | 32| | F5 : CALL PROC alter;
- ENG|050411 | 33| | END
- ENG|050411 | 34|S | UNTIL $KEY = F3;
- ENG|050411 | 37|RI| ##051122->^Syntax
- ENG|050414 | 1| | GRAPHIC : Graphics Characters in Forms
- ENG|050414 | 3| | In FORM it can be determined whether or not a sequence of characters
- ENG|050414 | 4| | (vertical or horizontal) is to be displayed as a single line.
- ENG|050414 | 6| | Example:
- ENG|050414 | 7| E|
- ENG|050414 | 8| E| FORM box.test
- ENG|050414 | 9| E| LAYOUT GRAPHIC=*
- ENG|050414 | 10| E| **************
- ENG|050414 | 11| E| * *
- ENG|050414 | 12| E| * *
- ENG|050414 | 13| E| * *
- ENG|050414 | 14| E| * *
- ENG|050414 | 15| E| **************
- ENG|050414 | 16|SE| ENDLAYOUT
- ENG|050414 | 19| E|
- ENG|050414 | 21| | At graphics terminals the rectangle defined in the example will be
- ENG|050414 | 22| | displayed with traced lines. At terminals without graphics
- ENG|050414 | 23| | representation the horizontal line will be displayed as a sequence of
- ENG|050414 | 24| | '-' (dashes), the vertical line as a sequence of '|' (vertical bars),
- ENG|050414 | 25| | and the corners as '*'.
- ENG|050414 | 27|RI| ##051103->^Syntax
- ENG|050415 | 1| | MARK : Initialization of the Cursor Position
- ENG|050415 | 3| | When calling a form, the cursor is usually placed on the first input
- ENG|050415 | 4| | field of the form. If the form has no input fields, then FORM positions
- ENG|050415 | 5| | the cursor to the upper lefthand corner of the form. In addition to the
- ENG|050415 | 6| | call option MARK, the MARK statement can be used within the form, if
- ENG|050415 | 7| | the cursor shall be placed to an input field other than the first one.
- ENG|050415 | 9| | The MARK option specified for the call overrides the MARK statement
- ENG|050415 | 10| | defined within the form.
- ENG|050415 | 12| | Example: ENDLAYOUT
- ENG|050415 | 13| | ...
- ENG|050415 | 14| E|
- ENG|050415 | 15| E| MARK ( 3 );
- ENG|050415 | 17|SE|
- ENG|050415 | 19|RI| ##051116->^Syntax
- ENG|050416 | 1| | RETURNONLAST : Leaving the Form via the Return Key
- ENG|050416 | 3| | Usually a form is left via a function key.
- ENG|050416 | 5| | The statement (directive) RETURNONLAST as the effect that the form will
- ENG|050416 | 6| | be left, when the cursor is placed on the last field of the form and
- ENG|050416 | 7| | the TAB key (or the NEXTFIELD key, if available) is pressed. In this
- ENG|050416 | 8| | case the form produces ENTER as value of $KEY.
- ENG|050416 | 9|RI| ##051118->^Syntax
- ENG|050417 | 1| | HEADERLINES, BOTTOMLINES : Header and Bottomlines
- ENG|050417 | 3| | In forms that shall be scrolled it is possible to define the first and
- ENG|050417 | 4| | last lines of the layout as frame lines.
- ENG|050417 | 6| | The declarations HEADERLINES and BOTTOMLINES determine the amount of
- ENG|050417 | 7| | the header and bottom lines that shall belong to the constant frame.
- ENG|050417 | 8| | The remaining part of the form is used for scrolling.
- ENG|050417 | 10| | Example:
- ENG|050417 | 12| | ...
- ENG|050417 | 13| | ENDLAYOUT
- ENG|050417 | 14| E|
- ENG|050417 | 15| E| HEADERLINES (2);
- ENG|050417 | 16|SE| BOTTOMLINES (1);
- ENG|050417 | 19| E|
- ENG|050417 | 21|RI| ##051120->^Syntax
- ENG|050418 | 1| | SPECIALATTR : Situation-dependent Display Attributes
- ENG|050418 | 3| | With the aid of the form processing instruction SPECIALATTR, a field can also
- ENG|050418 | 4| | be displayed with a certain special display attribute depending on the
- ENG|050418 | 5| | situation.
- ENG|050418 | 7| | The instruction SPECIALATTR CHECK causes the field whose CHECK
- ENG|050418 | 8| | condition is not satisfied to be represented with the specified
- ENG|050418 | 9| | attribute.
- ENG|050418 | 11| | The instruction SPECIALATTR INPUT causes all currently active input
- ENG|050418 | 12| | fields to be displayed with the specified display attribute.
- ENG|050418 | 14| | The instruction SPECIALATTR MSG causes the automatically displayed
- ENG|050418 | 15| | message line to appear with the desired display attribute. If the
- ENG|050418 | 16| | instruction SPECIALATTR MSG is not specified, the message line is
- ENG|050418 | 17|S | displayed with the attribute preset by the system.
- ENG|050418 | 19| | The instruction SPECIALATTR CURSORLINE causes the form line in which
- ENG|050418 | 20| | the cursor is positioned to be displayed with the defined attribute.
- ENG|050418 | 21| | The form line appears as a bar when the selected logical attribute is
- ENG|050418 | 22| | defined as 'inverse' or distinguishes its background color from the
- ENG|050418 | 23| | background of the form.
- ENG|050418 | 25| | The start and end position of the bar is determined by the left and
- ENG|050418 | 26| | right margin of the form if not otherwise explicitly specified. If the
- ENG|050418 | 27| | form is output in a window, the bar is restricted by the forms window
- ENG|050418 | 28| | size.
- ENG|050418 | 30| | The SPECIALATTR instruction applies to all fields of the form and can
- ENG|050418 | 31| | only be specified once for each form. Thus the above examples can be
- ENG|050418 | 32| | defined in a SPECIALATTR instruction as follows.
- ENG|050418 | 34| E|
- ENG|050418 | 35|SE| FORM customer.mastercard
- ENG|050418 | 38| E| LAYOUT PROMPT = .
- ENG|050418 | 40| E| CUST-NO : _cno
- ENG|050418 | 41| E| ...
- ENG|050418 | 42| E| ENDLAYOUT
- ENG|050418 | 44| E| FIELD cno CHECK BETWEEN 1000 and 9999;
- ENG|050418 | 46| E| SPECIALATTR INPUT underl
- ENG|050418 | 47| E| CHECK inv
- ENG|050418 | 48| E| MSG ATTR12;
- ENG|050418 | 50| E|
- ENG|050418 | 52|RI| ##051121->^Syntax
- ENG|050419 | 1| | INSERTMODE : Display of the Input Mode
- ENG|050419 | 3| | With the instruction DISPLAY INSERTMODE it can be displayed in which
- ENG|050419 | 4| | input mode (overwrite or insert) the keyboard is in.
- ENG|050419 | 6| | If the input mode is set to insert by pressing the key, at the position
- ENG|050419 | 7| | specified by POS the expression defined by LABEL is output (default:
- ENG|050419 | 8| | 'INSERT') in the attribute ATTR (default: ATTR5). By switching back to
- ENG|050419 | 9| | overwrite mode, the label is extinguished.
- ENG|050419 | 11| | The position POS must be specified in the instruction DISPLAY
- ENG|050419 | 12| | INSERTMODE, the specification of LABEL and ATTR is optional. The INSERT
- ENG|050419 | 13| | label is output in the specified length up to a maximum of eight
- ENG|050419 | 14| | characters.
- ENG|050419 | 16| E|
- ENG|050419 | 17|SE| FORM customer.mastercard
- ENG|050419 | 20| E| LAYOUT PROMPT = .
- ENG|050419 | 22| E| CUST-NO : _cno
- ENG|050419 | 23| E| ...
- ENG|050419 | 24| E| ENDLAYOUT
- ENG|050419 | 26| E| DISPLAY INSERTMODE ( POS ( 20,3),
- ENG|050419 | 27| E| LABEL ( 'INSERT' ),
- ENG|050419 | 28| E| ATTR ( ATTR7 ) );
- ENG|050419 | 30| E|
- ENG|050419 | 32|RI| ##051156->^Syntax
- ENG|050422 | 1| | BEFORE/AFTER FIELD
- ENG|050422 | 3| | In addition to the statements INIT, HELP MSG, HELP FORM, CHECK, and
- ENG|050422 | 4| | DISPLAY already known the statements BEFORE and AFTER FIELD have been
- ENG|050422 | 5| | provided for the processing of fields in forms.
- ENG|050422 | 7| | BEFORE FIELD and AFTER FIELD precede a block of SQL-PL statements.
- ENG|050422 | 9| | Statements formulated after BEFORE FIELD are executed when the
- ENG|050422 | 10| | corresponding field has been activated and is therefore enabled for
- ENG|050422 | 11| | writing.
- ENG|050422 | 13| | In practice there will mainly be guidance texts which will be specified
- ENG|050422 | 14| | here for the particular field.
- ENG|050422 | 16|S | Example:
- ENG|050422 | 19| | FIELD firstname BEFORE FIELD message := 'firstname of customer';
- ENG|050422 | 21| | All the other statements which are allowed in SQL-PL may be used as
- ENG|050422 | 22| | well. The SQL-PL programmer may even use a REPORT or SQL statement.
- ENG|050422 | 24| | As for BEFORE FIELD all statements which are allowed in SQL-PL may be
- ENG|050422 | 25| | specified for AFTER FIELD. Statements formulated behind AFTER FIELD are
- ENG|050422 | 26| | executed when the corresponding field has to be left and the CHECK
- ENG|050422 | 27| | condition - if any - has been met.
- ENG|050422 | 29| | The AFTER FIELD statements are not executed when the field is skipped.
- ENG|050422 | 30| | A field can be skipped if it has not been filled by the user, but the
- ENG|050422 | 31| | NEXTFIELD key has been pressed instead.
- ENG|050422 | 33|RI| ##051140->^Syntax
- ENG|050423 | 1| | GROUP : Comprising Fields to Form Groups
- ENG|050423 | 3| | In forms fields may be comprised to form groups. This helps to assign
- ENG|050423 | 4| | fields of one form to various tables. A form without GROUP statement
- ENG|050423 | 5| | has the same effect as a form with just one GROUP statement specifying
- ENG|050423 | 6| | every field of the form.
- ENG|050423 | 8| | If a GROUP statement is formulated in a form, FORM expects that every
- ENG|050423 | 9| | field is assigned to a group. Fields which are not explicitly specified
- ENG|050423 | 10| | in a GROUP statement are implicitly assigned by FORM to a remainder
- ENG|050423 | 11| | group which will be executed first of all groups.
- ENG|050423 | 13| | A group of fields will be left when all fields of the group are
- ENG|050423 | 14| | processed. Of course, this depends on the individual field statements
- ENG|050423 | 15| | defined.
- ENG|050423 | 17|RI| ##051141->^Syntax
- ENG|050424 | 1| | BEFORE/AFTER GROUP
- ENG|050424 | 3| | In analogy to the statements BEFORE/AFTER FIELD, the statements BEFORE
- ENG|050424 | 4| | GROUP and AFTER GROUP can be formulated for the groups of fields.
- ENG|050424 | 6| | In this case there is the restriction that a group name may only occur
- ENG|050424 | 7| | in one BEFORE GROUP statement and in one AFTER GROUP statement.
- ENG|050424 | 9|RI| ##051141->^Syntax
- ENG|050425 | 1| | The NEXTFIELD Statement
- ENG|050425 | 3| | The order in which the fields are executed is defined either by the
- ENG|050425 | 4| | order of fields within the layout or by the field statements. The
- ENG|050425 | 5| | NEXTFIELD statement which may occur in forms in place of any SQL-PL
- ENG|050425 | 6| | statement allows the sequence of processing be modified dynamically.
- ENG|050425 | 9| | Example:
- ENG|050425 | 11| E|
- ENG|050425 | 12| E| FORM test.nxt_fld
- ENG|050425 | 13| E| LAYOUT
- ENG|050425 | 14| E| accountno : _cno
- ENG|050425 | 15| E| name : _name
- ENG|050425 | 16|SE| firstname : _f_name
- ENG|050425 | 19| E| bank balance : _account
- ENG|050425 | 20| E| ENDLAYOUT
- ENG|050425 | 21| E| GROUP a
- ENG|050425 | 22| E| FIELD cno
- ENG|050425 | 23| E| BEFORE FIELD
- ENG|050425 | 24| E| message := 'number of customer, if known'
- ENG|050425 | 25| E| AFTER FIELD
- ENG|050425 | 26| E| BEGIN
- ENG|050425 | 27| E| SQL ( SELECT DIRECT name, firstname INTO :name, :f_name
- ENG|050425 | 28| E| FROM customer
- ENG|050425 | 29| E| key cno = :cno );
- ENG|050425 | 30| E| NEXTFIELD account;
- ENG|050425 | 31| E| END;
- ENG|050425 | 32| E| FIELD name ...
- ENG|050425 | 33| E| FIELD f_name ...
- ENG|050425 | 34| E| FIELD account ...
- ENG|050425 | 35|SE| END;
- ENG|050425 | 38| E|
- ENG|050425 | 40| | The field name used in the NEXTFIELD statement must designate a field
- ENG|050425 | 41| | of the form.
- ENG|050425 | 43| | The statement NEXTFIELD has the effect that, when leaving the field, a
- ENG|050425 | 44| | branch is made to the specified field as continuation field,
- ENG|050425 | 45| | irrespective of a NEXTFIELD statement definition for BEFORE FIELD or
- ENG|050425 | 46| | AFTER FIELD.
- ENG|050425 | 48|RI| ##051144->^Syntax
- ENG|050426 | 1| | The NEXTGROUP Statement
- ENG|050426 | 3| | The order in which the groups will be executed is defined by the order
- ENG|050426 | 4| | of the GROUP statements. The NEXTGROUP statement may be used in case
- ENG|050426 | 5| | that the order has to be modified e.g. depending on a condition. The
- ENG|050426 | 6| | NEXTGROUP statement may occur at any place, like the NEXTFIELD
- ENG|050426 | 7| | statement.
- ENG|050426 | 9| | The group name which is used in the NEXTGROUP statement must be defined
- ENG|050426 | 10| | via the GROUP statement in the same form, otherwise FORM returns a
- ENG|050426 | 11| | translation error when storing.
- ENG|050426 | 13|RI| ##051145->^Syntax
- ENG|050427 | 1| | NOAUTONEXT Fields
- ENG|050427 | 3| | Example: FIELD name NOAUTONEXT
- ENG|050427 | 5| | This option specifies that the cursor is not automatically positioned
- ENG|050427 | 6| | to the next input field, when the field 'name' has been filled with
- ENG|050427 | 7| | writing.
- ENG|050427 | 9|RI| ##051146->^Syntax
- ENG|050428 | 1| | SCROLLFIELD : Move Vector Slices
- ENG|050428 | 3| | The SCROLLFIELD statement has to be defined within the AFTER FIELD
- ENG|050428 | 4| | statement for every vector slice with OFFSET option which is defined as
- ENG|050428 | 5| | input field in the layout and which is to be moved by pressing the
- ENG|050428 | 6| | cursor keys.
- ENG|050428 | 8| | The SCROLLFIELD statement acts according to the keys and modifies the
- ENG|050428 | 9| | value of the OFFSET variable to be specified as argument. Several
- ENG|050428 | 10| | adjacent vector slices can be moved with one SCROLLFIELD statement, if
- ENG|050428 | 11| | these vector slices depend on the same OFFSET variable.
- ENG|050428 | 13| | As first argument, the SCROLLFIELD statement expects the variable which
- ENG|050428 | 14| | was specified with the OFFSET option. Without OFFSET option the
- ENG|050428 | 15| | SCROLLFIELD statement has not effect.
- ENG|050428 | 17|S | As second - optional - argument of the SCROLLFIELD statement, the
- ENG|050428 | 19| | maximum number of values can be specified. If the second argument is
- ENG|050428 | 20| | not specified, the SCROLLFIELD statement assumes that the end of the
- ENG|050428 | 21| | list is reached with the 255th vector element.
- ENG|050428 | 23| | As third optional argument, the number of lines can be specified which
- ENG|050428 | 24| | are to be used as scrolling unit for the key.
- ENG|050428 | 26| | If a user wants to position directly to the end or to the beginning
- ENG|050428 | 27| | within the entries, the keys serving this purpose can be defined in the
- ENG|050428 | 28| | second parentheses of the SCROLLFIELD statement behind the keywords
- ENG|050428 | 29| | TOPKEY and BOTTOMKEY.
- ENG|050428 | 31| E|
- ENG|050428 | 32| E| FORM selection.list PARMS ( selection(), max_number, length )
- ENG|050428 | 33| E| LAYOUT
- ENG|050428 | 34| E| _selection (1..5)
- ENG|050428 | 35|SE| _
- ENG|050428 | 37| E| _
- ENG|050428 | 38| E| _
- ENG|050428 | 39| E| _
- ENG|050428 | 40| E| ENDLAYOUT
- ENG|050428 | 41| E| SPECIALATTR INPUT INV;
- ENG|050428 | 43| E| FIELD selection(1..5)
- ENG|050428 | 44| E| OFFSET x
- ENG|050428 | 45| E| AFTER FIELD SCROLLFIELD ( x, max_number, $screenlns
- ENG|050428 | 46| E| ( TOPKEY F7, BOTTOMKEY F8 );
- ENG|050428 | 47| E|
- ENG|050428 | 49|RI| ##051185->^Syntax
- ENG|050429 | 1| | KEYS : Assign Function to Keys
- ENG|050429 | 3| | In FORM particular functions are assigned to a series of keys. For
- ENG|050429 | 4| | example, the HELP key releases the execution of the FIELD/HELP
- ENG|050429 | 5| | statement. For the AUTOPAGE statement, too, the scrolling functions are
- ENG|050429 | 6| | assigned to definite keys.
- ENG|050429 | 8| | The KEYS statement allows one or more keys to be assigned as release
- ENG|050429 | 9| | keys to the functions HELP, MENU, UP, DOWN, LEFT, and RIGHT. The
- ENG|050429 | 10| | function MENU designates the key which releases switching between
- ENG|050429 | 11| | action bar and form.
- ENG|050429 | 13| E|
- ENG|050429 | 14| E| KEYS ( UP = F7 | UPKEY
- ENG|050429 | 15| E| DOWN = F8 | DOWNKEY
- ENG|050429 | 16| E| HELP = F1 | HELPKEY )
- ENG|050429 | 17|SE|
- ENG|050429 | 19|RI| ##051186->^Syntax
- ENG|0505 | 1| | Structure of a Form
- ENG|0505 | 3| | FORM customer.mastercard -> This is the form 'mastercard' belonging
- ENG|0505 | 4| | -> to the program 'customer'.
- ENG|0505 | 5| | LAYOUT -> Here starts the layout design.
- ENG|0505 | 6| | ... -> Here in/output fields and any desired
- ENG|0505 | 7| | ... -> text fields are defined here.
- ENG|0505 | 8| | ENDLAYOUT -> Here ends the layout design.
- ENG|0505 | 10| | GROUP ..
- ENG|0505 | 11| | FIELD -> With BEFORE/AFTER it is determined what
- ENG|0505 | 12| | BEFORE FIELD ... -> shall be done on entering and leaving a
- ENG|0505 | 13| | AFTER FIELD ... -> field or a group.
- ENG|0505 | 14| | FIELD ...; -> All the other form processing statements are
- ENG|0505 | 15| | END; -> usable as well ( IGNORE, ACCEPT or
- ENG|0505 | 16| | -> ACTION, HEADERLINES, BOTTOMLINES ...).
- ENG|0505 | 17|S | AFTER GROUP .. -> In BEFORE/AFTER statements any SQL-PL
- ENG|0505 | 19| | BEGIN ... END; -> statement can be used.
- ENG|0505 | 20|RI| ##051102->^Syntax
- ENG|0506 | 1| | Form Call Options
- ENG|0506 | 2| | -----------------
- ENG|0506 | 4| M| #01ACCEPT^^^^^: restricts the permitted release keys
- ENG|0506 | 5| M| #02ATTR^^^^^^^: overrides the attributes of fields
- ENG|0506 | 6| M| #10AUTOPUT^^^^: copies the PICK buffer contents
- ENG|0506 | 7| M| #08BACKGROUND^: keeps the form as background
- ENG|0506 | 8| M| #03CLEAR^^^^^^: clears the background
- ENG|0506 | 9| M| #03FORMPOS^^^^: left upper corner of the form section
- ENG|0506 | 10| M| #03FRAME^^^^^^: displays the form in a box
- ENG|0506 | 11| M| #04INPUT^^^^^^: activates particular input fields
- ENG|0506 | 12| M| #05MARK^^^^^^^: positions the cursor
- ENG|0506 | 13| M| #06NOINIT^^^^^: suppresses the FIELD/INIT option
- ENG|0506 | 14| M| #04NOINPUT^^^^: deactivates particular input fields
- ENG|0506 | 15| M| #07PRINT^^^^^^: prints the form
- ENG|0506 | 16| M| #03SCREENPOS^^: left upper corner of the form on the screen
- ENG|0506 | 17|SM| #03SCREENSIZE^: length and width of the screen section
- ENG|0506 | 19| M| #09RESTORE^^^^: restores the background of the form
- ENG|0506 | 20| M| #11ACTION^^^^^: activating the action bar
- ENG|0506 | 21|RI| ##051125->^Syntax
- ENG|050601 | 1| | ACCEPT(ENTER,F1=<label>,...) has the effect that only the specified
- ENG|050601 | 2| | keys with the pertinent labels are displayed.
- ENG|050601 | 4| | If an ACCEPT option is already defined in the form, then this set of
- ENG|050601 | 5| | valid release keys will be overridden (possible release keys: ENTER,
- ENG|050601 | 6| | F1..F12)
- ENG|050601 | 8| | Labels can be defined for all keys, except ENTER.
- ENG|050601 | 10| | ACCEPT() has the effect that the form is displayed without expecting
- ENG|050601 | 11| | any user interaction.
- ENG|050601 | 13| | Example :
- ENG|050601 | 14| E|
- ENG|050601 | 15| E| CALL FORM form1 OPTIONS (ACCEPT (F1,F3='STOP',ENTER) );
- ENG|050601 | 17|SE|
- ENG|050601 | 19|RI| ##051128->^Syntax
- ENG|050602 | 1| | Examples:
- ENG|050602 | 3| | CALL FORM customer ( ATTR ( name, INV ) );
- ENG|050602 | 5| | CALL FORM customer ( ATTR ( cno, ATTR16 ) );
- ENG|050602 | 7| | ATTR alters the display attributes of the specified form field for this
- ENG|050602 | 8| | form call.
- ENG|050602 | 10| | Possible attributes are ATTR1,...,ATTR16 (HIGH, HI, LOW, INV, BLK,
- ENG|050602 | 11| | UNDERL).
- ENG|050602 | 13|RI| ##051129->^Syntax
- ENG|050603 | 1| | FORMPOS(L,C) defines the start position of a section of the
- ENG|050603 | 2| | form, (l)ine, (c)olumn.
- ENG|050603 | 3| | This option should be used to display a form sectionwise.
- ENG|050603 | 5| I| ##051131->^Syntax
- ENG|050603 | 8| | SCREENSIZE (L,W) defines the size of a window on the screen,
- ENG|050603 | 9| | (l)ength, (w)idth.
- ENG|050603 | 11| | SCREENPOS (L,C) defines the position of the window on the
- ENG|050603 | 12| | screen, (l)ine, (c)olumn.
- ENG|050603 | 14| | CLEAR has the effect that the background of the form is
- ENG|050603 | 15| | erased.
- ENG|050603 | 17|SI| ##051130->^Syntax
- ENG|050603 | 19| | FRAME has the effect that the form is displayed in a box.
- ENG|050603 | 20| | FRAME ( title ) has the effect that the value of the variable
- ENG|050603 | 21| | title is displayed in the center of the box's top line.
- ENG|050603 | 23|RI| ##051132->^Syntax
- ENG|050604 | 1| | INPUT (running...) has the effect that input can be made
- ENG|050604 | 2| | only to the specified fields. Field sequence numbers,
- ENG|050604 | 3| | variables, and vector slices may be specified.
- ENG|050604 | 5| | INPUT() If an empty list is specified for input, then all
- ENG|050604 | 6| | the fields in the form appear as output fields.
- ENG|050604 | 8| | NOINPUT (running...) has the effect that N O input
- ENG|050604 | 9| | can be made to the specified fields. Field sequence numbers,
- ENG|050604 | 10| | variables, and vector slices may be specified.
- ENG|050604 | 12| | NOINPUT() is not convenient because all input fields remain active.
- ENG|050604 | 14| | Example:
- ENG|050604 | 15| | CALL FORM mastercard ( INPUT (cno, city(1..4), 10, 11 ));
- ENG|050604 | 17|RI| ##051136->^Syntax
- ENG|050605 | 1| | MARK (n) places the cursor on the n-th input field, when the
- ENG|050605 | 2| | form is displayed, counting the defined input fields
- ENG|050605 | 3| | from the top left to the bottom right.
- ENG|050605 | 5| | Example: CALL FORM input OPTIONS ( MARK(4), INPUT(3,4,5) );
- ENG|050605 | 8| | MARK(v) places the cursor in the field related to the
- ENG|050605 | 9| | variable v. In case the variable v does not exist in the form,
- ENG|050605 | 10| | the value of v is interpreted as field sequence number.
- ENG|050605 | 12| | Example: CALL FORM mastercard OPTIONS ( MARK(cno) );
- ENG|050605 | 14| | Once the form is called, $CURSOR displays the field sequence
- ENG|050605 | 15| | number of that input field, upon which the cursor was placed last.
- ENG|050605 | 17|RI| ##051127->^Syntax
- ENG|050606 | 1| | The option NOINIT suppresses the initializations of variables defined
- ENG|050606 | 2| | in the form. Thus, the current values of the variables appear in the
- ENG|050606 | 3| | fields.
- ENG|050606 | 5| | Example:
- ENG|050606 | 7| | CALL FORM mastercard OPTIONS ( NOINIT );
- ENG|050606 | 9| | or shorter
- ENG|050606 | 11| | CALL FORM mastercard ( NOINIT );
- ENG|050606 | 13|RI| ##051126->^Syntax
- ENG|050607 | 1| | PRINT transmits the called form into the printer's spool area. The
- ENG|050607 | 2| | print will be started at the program's end. With PRINT ( opt1 , opt2 ,
- ENG|050607 | 3| | ... ) the print output may be influenced :
- ENG|050607 | 5| | CLOSE causes the immediate output via printer,
- ENG|050607 | 6| | LINEFEED creates empty lines before printing,
- ENG|050607 | 7| | LINESPACE creates empty lines between print lines,
- ENG|050607 | 8| | NEWPAGE outputs a new page,
- ENG|050607 | 9| | CPAGE outputs a new page, depending to the number
- ENG|050607 | 10| | of free lines.
- ENG|050607 | 11| | 'X' sets Print Format 'X' for this print
- ENG|050607 | 13| | Example:
- ENG|050607 | 15| | CALL FORM form3 OPTIONS ( PRINT (LINEFEED 2, NEWPAGE));
- ENG|050607 | 16|S | CALL FORM form4 ( PRINT ('X',LINESPACE 2));
- ENG|050607 | 19|RI| ##051135->^Syntax
- ENG|050608 | 1| | The option BACKGROUND has the effect that a form is n o t output
- ENG|050608 | 2| | immediately to the display, but is stored as background.
- ENG|050608 | 4| | Any number of screens can be superimposed with the BACKGROUND option.
- ENG|050608 | 5| | They will only be displayed, when a form is called w i t h o u t
- ENG|050608 | 6| | BACKGROUND option or when READ or WRITE is executed.
- ENG|050608 | 8| | The output of the form can also be triggered by calling a REPORT. In
- ENG|050608 | 9| | this case the REPORT output should only use a part of the display (also
- ENG|050608 | 10| | see report command WINDOW).
- ENG|050608 | 12|RI| ##051133->^Syntax
- ENG|050609 | 1| | The RESTORE option implicitly saves the background of a form. This
- ENG|050609 | 2| | enables the form, when disappearing from the screen, to restore its
- ENG|050609 | 3| | background to the format it had before the call.
- ENG|050609 | 5| | In case of HELP forms specified in the FIELD statement FORM uses the
- ENG|050609 | 6| | RESTORE option implicitly.
- ENG|050609 | 8| | Example:
- ENG|050609 | 10| | CALL FORM form OPTIONS ( RESTORE );
- ENG|050609 | 13|RI| ##051134->^Syntax
- ENG|050610 | 1| | The AUTOPUT option has the effect that after leaving the form the
- ENG|050610 | 2| | picked value will be assigned automatically to the variable belonging
- ENG|050610 | 3| | to the field where the cursor was placed before calling the form. The
- ENG|050610 | 4| | PUT statement is therefore no longer required within the CONTROL
- ENG|050610 | 5| | statement and the end user does not need any more to press the PUT key.
- ENG|050610 | 6| | It is sufficient to choose the value with PICK.
- ENG|050610 | 8| | Example:
- ENG|050610 | 9| | FORM tpick.m1
- ENG|050610 | 10| | LAYOUT
- ENG|050610 | 11| | _1 _2
- ENG|050610 | 12| | _ _
- ENG|050610 | 13| | _ _
- ENG|050610 | 14| | ENDLAYOUT
- ENG|050610 | 15| | ACCEPT ( enter, f5='PICK' );
- ENG|050610 | 16| | FIELD 1:title(1..3) HELP FORM p_title ( FRAME, AUTOPUT );
- ENG|050610 | 17|S | FIELD 2:city(1..3) HELP FORM p_city ( FRAME, AUTOPUT );
- ENG|050610 | 19| | The AUTOPUT option can also be used with a variable as argument. This
- ENG|050610 | 20| | usage makes sense if the value taken by PICK is not meant for the
- ENG|050610 | 21| | calling form, but has to be passed as parameter from the calling form.
- ENG|050610 | 23| | Example:
- ENG|050610 | 24| | CALL FORM choice OPTION ( AUTOPUT(@choi) );
- ENG|050610 | 26|RI| ##051157->^Syntax
- ENG|050611 | 1| | Activating the ACTIONBAR
- ENG|050611 | 3| | The calling option ACTION determines that the given action of the
- ENG|050611 | 4| | action shall be activ when the form is displayed.
- ENG|050611 | 6| | Example:
- ENG|050611 | 7| | CALL FORM x OPTIONS ( ACTION ( 5 ));
- ENG|050611 | 9|RI| ##051137->^Syntax
- ENG|0507 | 1| | Parameters on Form Calls
- ENG|0507 | 3| | Current parameters may be specified for the transfer of data via
- ENG|0507 | 4| | SWITCH. The current parameters will be assigned to the formal
- ENG|0507 | 5| | parameters specified in the form definition.
- ENG|0507 | 7| | Definition : FORM customer.mastercard PARMS (@cno,@today)
- ENG|0507 | 9| | Call : SWITCH customer CALL FORM mastercard PARMS (cno, DATE (yymmdd))
- ENG|0507 | 11| | Variables as well as expressions may be used as current parameters.
- ENG|0507 | 12| | Since the parameters are positional parameters, current parameters may
- ENG|0507 | 13| | be omitted for the call; e.g.: PARMS ( , DATE(yymmdd)).
- ENG|0507 | 15| | If more parameters are specified for the call than are defined in the
- ENG|0507 | 16|S | module, then these will be simply ignored.
- ENG|0507 | 19| | Take into account that for a simple CALL the current parameters must be
- ENG|0507 | 20| | handled like input/output parameters.
- ENG|0507 | 22| | The definition :
- ENG|0507 | 23| | FORM customer.mastercard PARMS ( @cno, @today )
- ENG|0507 | 25| | and the call :
- ENG|0507 | 26| | CALL FORM mastercard PARMS ( cno, DATE(yymmdd) ).
- ENG|0507 | 28|R | After the call the variable 'cno' might have another value.
- ENG|0508 | 1| | Compiler Options
- ENG|0508 | 2| | ----------------
- ENG|0508 | 4| M| #01LIB^Option
- ENG|0508 | 5|RM| #01WRAP^Option
- ENG|050801 | 1| | The LIB Option
- ENG|050801 | 2| | displays the name of the function library from which the
- ENG|050801 | 3| | SQL-PL functions are called which are used in the form (see
- ENG|050801 | 4| | section 'User-defined SQL-PL Functions').
- ENG|050801 | 6| | Example : FORM ... OPTION ( LIB libname );
- ENG|050801 | 8| I| ##051153->^Syntax
- ENG|050801 | 10| | The WRAP Option
- ENG|050801 | 11| | has the effect that multiple-line fields of a form are used
- ENG|050801 | 12| | as a continuation field on those terminals which allow such
- ENG|050801 | 13| | usage.
- ENG|050801 | 15| | Example: FORM ... OPTION ( WRAP );
- ENG|050801 | 17|RI| ##051154->^Syntax
- ENG|0510 | 1| | Action bar with Pulldown Menus
- ENG|0510 | 2| | ------------------------------
- ENG|0510 | 4| M| #01Definition of a separate MENU Module
- ENG|0510 | 5| M| #02Defining the Action Bar within a Form
- ENG|0510 | 6| M| #05Definition of Action Bar and Pulldown Menus
- ENG|0510 | 7| M| #06Definition of Buttons
- ENG|0510 | 8| M| #04Examples of Action Bars with Pulldown Menus
- ENG|0510 | 9|RM| #03Operating an Action Bar with Pulldown Menus
- ENG|051001 | 1| | Definition of a separate MENU Module
- ENG|051001 | 3| | If the same action bar and the associated pulldown menus are to be used
- ENG|051001 | 4| | in various forms in a SQL-PL program, a separate MENU module can be
- ENG|051001 | 5| | defined that is linked to a form with the instruction INCLUDE MENU.
- ENG|051001 | 7| | In the MENU module, the action bar and the pulldown menus are defined
- ENG|051001 | 8| | one after the other.
- ENG|051001 | 10| E|
- ENG|051001 | 11| E| MENU general.pd_menu
- ENG|051001 | 13| E| ACTIONBAR ('LIST',
- ENG|051001 | 14| E| 'PROCESS' : PULLDOWN process,
- ENG|051001 | 15| E| 'DELETE' );
- ENG|051001 | 17|SE| PULLDOWN process ( 'START',
- ENG|051001 | 19| E| 'ENTER' : PULLDOWN entry );
- ENG|051001 | 21| E| PULLDOWN entry ( 'NEW',
- ENG|051001 | 22| E| 'OLD' );
- ENG|051001 | 24| E|
- ENG|051001 | 27| I| ##051147->^Syntax
- ENG|051001 | 30| | In a form the key-word ACTIONBAR must be entered with the instruction
- ENG|051001 | 31| | INCLUDE MENU in the layout part, as in the definition of the action bar
- ENG|051001 | 32| | within a form.
- ENG|051001 | 34| | Example:
- ENG|051001 | 35|S | LAYOUT
- ENG|051001 | 37| | ACTIONBAR
- ENG|051001 | 38| | ...
- ENG|051001 | 40| | ENDLAYOUT
- ENG|051001 | 42| | INCLUDE MENU general.pd_menu;
- ENG|051001 | 43| | ...
- ENG|051001 | 45|RI| ##051148->^Syntax
- ENG|051002 | 1| | Defining the Action Bar within a Form
- ENG|051002 | 3| | For smaller applications or for testing menus, it is sensible to define
- ENG|051002 | 4| | the menu directly in the form.
- ENG|051002 | 6| | For this purpose, the instructions for defining the menu (ACTIONBAR-,
- ENG|051002 | 7| | PULLDOWN instruction) are formulated in the processing part of the
- ENG|051002 | 8| | form.
- ENG|051002 | 11|RI| ##051149->^Syntax
- ENG|051003 | 1| | Operating an Action Bar with Pulldown Menus
- ENG|051003 | 3| | When calling up the form, the action bar is not activated and the form
- ENG|051003 | 4| | can be worked on in the usual way.
- ENG|051003 | 6| | The action bar can be activated in the following ways:
- ENG|051003 | 8| | - function key F12
- ENG|051003 | 10| | With the function key F12 the action bar is activated and the cursor is
- ENG|051003 | 11| | positioned on the first field.
- ENG|051003 | 13| | - CNTR / <char>
- ENG|051003 | 15| | By pressing the CNTR key and the letter highlighted as choice letter
- ENG|051003 | 16| | simultaneously, the corresponding action is selected directly. If there
- ENG|051003 | 17|S | is a pulldown menu for the action, it is pulled down; otherwise,
- ENG|051003 | 19| | $ACTION returns the action chosen.
- ENG|051003 | 21| | If the action bar is activated, the corresponding action can be started
- ENG|051003 | 22| | by the key for the first letter of the label, e.g. the pulldown menu of
- ENG|051003 | 23| | the field with the label 'PROCESS' is pulled down with the key p. The
- ENG|051003 | 24| | appropriate letter is determined automatically by the system and
- ENG|051003 | 25| | represented with the attribute 'choice character' (ATTR8) or 'choice
- ENG|051003 | 26| | character active' (ATTR9).
- ENG|051003 | 28| | In an active pulldown menu, the functions can be chosen and started
- ENG|051003 | 29| | analogously.
- ENG|051003 | 31| | If the action bar is activated, the cursor can be positioned on the
- ENG|051003 | 32| | fields to choose a field of the action bar with the cursor keys. If a
- ENG|051003 | 33| | pulldown menu is defined behind a field of the action bar, the menu can
- ENG|051003 | 34| | be pulled down by positioning on the field and then pressing the ENTER
- ENG|051003 | 35|S | key.
- ENG|051003 | 37| | If the program is positioned in a pulldown menu on the first level, the
- ENG|051003 | 38| | pulldown menus to the right or left can be chosen directly with the aid
- ENG|051003 | 39| | of the NEXTFIELD and PREVFIELD keys or CURSOR-RIGHT and CURSOR-LEFT.
- ENG|051003 | 41| | Fields of the action bar or the pulldown menus behind which a further
- ENG|051003 | 42| | pulldown menu is defined are identified by '..'.
- ENG|051003 | 44| | The action bar is displayed with the attribute 'menu items' (ATTR10),
- ENG|051003 | 45| | the active field with the attribute 'menu item active' (ATTR11) and the
- ENG|051003 | 46| | passive fields with the attribute 'menu item passive' (ATTR12).
- ENG|051003 | 48| | If an action of a field of the action bar or a pulldown menu is
- ENG|051003 | 49| | triggered, e.g. if the cursor is positioned on this field and the key
- ENG|051003 | 50| | ENTER is pressed, control is returned to the associated form and the
- ENG|051003 | 51| | dollar variables $ACTION, $FUNCTION or also $KEY are assigned the
- ENG|051003 | 52|S | labels of the chosen fields.
- ENG|051003 | 55| | If one wants to return to the form without starting an action, this is
- ENG|051003 | 56| | done with the key F12. Control is now returned to the associated form
- ENG|051003 | 57| | and the dollar variables $ACTION, $FUNCTION and $KEY have the NULL
- ENG|051003 | 58| | value.
- ENG|051003 | 60| | By pressing the key END, the pulldown menus are closed step by step.
- ENG|051003 | 61|R | The associated dollar variables are assigned NULL.
- ENG|051004 | 1| | Example:
- ENG|051004 | 2| E|
- ENG|051004 | 3| E| LAYOUT
- ENG|051004 | 4| E| ACTIONBAR
- ENG|051004 | 6| E| ...
- ENG|051004 | 8| E| ENDLAYOUT
- ENG|051004 | 10| E| ACTIONBAR ( 'process' : PULLDOWN proc,
- ENG|051004 | 11| E| ... );
- ENG|051004 | 13| E| PULLDOWN proc ( 'module' : PULLDOWN fctn,
- ENG|051004 | 14| E| ...
- ENG|051004 | 15| E| 'trigger' : PULLDOWN fctn );
- ENG|051004 | 17|SE| PULLDOWN fctn ( 'display',
- ENG|051004 | 19| E| ...
- ENG|051004 | 20| E| 'print' );
- ENG|051004 | 22| E| CONTROL CASE $ACTION OF
- ENG|051004 | 23| E| 'process' :
- ENG|051004 | 24| E| CASE $FUNCTION1 OF
- ENG|051004 | 25| E| 'module' :
- ENG|051004 | 26| E| CASE $FUNCTION OF
- ENG|051004 | 27| E| 'display' : CALL PROC mod_no.;
- ENG|051004 | 28| E| ...
- ENG|051004 | 29| E| 'print' : CALL PROC mod_print;
- ENG|051004 | 30| E| END;
- ENG|051004 | 31| E| ...
- ENG|051004 | 32| E| 'trigger' : ...
- ENG|051004 | 33| E| END;
- ENG|051004 | 34| E| ...
- ENG|051004 | 35|SE| END;
- ENG|051004 | 38| E|
- ENG|051004 | 40| | In the following example labels are specified that are not string
- ENG|051004 | 41| | constants. The above procedure is thus possible in the same way.
- ENG|051004 | 43| | Example:
- ENG|051004 | 45| | ACTIONBAR ( !ADM(s),
- ENG|051004 | 46| | !PROC(s): PULLDOWN proc );
- ENG|051004 | 48| | PULLDOWN proc ( 'START','ENTER' );
- ENG|051004 | 50| | CONTROL CASE $ACTION OF
- ENG|051004 | 51| | !ADM(s) : ...
- ENG|051004 | 52| | !PROC(s) : CASE $FUNCTION OF
- ENG|051004 | 53|S | 'START' : CALL FORM start;
- ENG|051004 | 55| | 'ENTER' : CALL FORM enter;
- ENG|051004 | 56| | END;
- ENG|051004 | 57| | END;
- ENG|051004 | 60| | Example:
- ENG|051004 | 63| | ACTIONBAR (!AUF(s) : RELEASEKEY F4,
- ENG|051004 | 64| | !AB(s) : RELEASEKEY F5 );
- ENG|051004 | 66| | CONTROL CASE $KEY OF
- ENG|051004 | 67| | F4 : ...
- ENG|051004 | 68| | F5 : ...
- ENG|051004 | 69|R | END;
- ENG|051005 | 1| | Definition of Action Bar and Pulldown Menus
- ENG|051005 | 2| | --------------------------------------------
- ENG|051005 | 4| M| #01Definition of the Action Bar (ACTIONBAR)
- ENG|051005 | 5| M| #02Definition of Pulldown Menus (PULLDOWN)
- ENG|051005 | 6| M| #03Definition of Guide Texts (COMMENT clause)
- ENG|051005 | 7| M| #04Making a Label Passive Dynamically (WHEN clause)
- ENG|051005 | 8|RM| #05Optical Grouping of Menu Items
- ENG|05100501 | 1| | ACTIONBAR : Definition of the Action Bar
- ENG|05100501 | 3| | An action bar consists of up to eleven fields that can be output in a
- ENG|05100501 | 4| | line of the form one after the other. When defining the action bar, the
- ENG|05100501 | 5| | labels of the fields are specified behind the key-word ACTIONBAR. Apart
- ENG|05100501 | 6| | from that, the position of the action bar in the form is defined by
- ENG|05100501 | 7| | specifying the key-word ACTIONBAR in the layout. The layout line in
- ENG|05100501 | 8| | which the action bar is to be output must not contain any other fields.
- ENG|05100501 | 10| | The dollar variable $ACTION, which returns the activated field of the
- ENG|05100501 | 11| | action bar, corresponds to the fields of the action bar .
- ENG|05100501 | 14| E|
- ENG|05100501 | 15| E| LAYOUT
- ENG|05100501 | 16|SE| ACTIONBAR
- ENG|05100501 | 19| E| ...
- ENG|05100501 | 21| E| ENDLAYOUT
- ENG|05100501 | 23| E| ACTIONBAR ( 'LIST','PROCESS','DELETE' );
- ENG|05100501 | 25| E|
- ENG|05100501 | 27| | String constants, language-dependent literals, variables and key
- ENG|05100501 | 28| | literals are admissible as labels.
- ENG|05100501 | 30| | The labels can be up to 16 characters long, If there is no subsequent
- ENG|05100501 | 31| | pulldown menu, the label may have 18 characters.
- ENG|05100501 | 33| | It must be noted that the dollar variables $ACTION, $FUNCTION1, ...
- ENG|05100501 | 34| | $FUNCTION4 and $FUNCTION return the value truncated to 16 (or 18)
- ENG|05100501 | 35|S | characters if longer labels are used.
- ENG|05100501 | 37| | If an action bar is defined in the form, the number of header lines is
- ENG|05100501 | 38| | implicitly set on the line in which the action bar is output, i.e. the
- ENG|05100501 | 39| | header lines comprise the area of the form from the first line to the
- ENG|05100501 | 40| | action bar.
- ENG|05100501 | 43| | ACTIONBAR WITH FRAME ( !LIST(s),
- ENG|05100501 | 44| | !PROC(s),
- ENG|05100501 | 45| | !DATA(s) );
- ENG|05100501 | 47| | The option WITH FRAME causes the action bar to be output in a form.
- ENG|05100501 | 48| | Care must be taken that the lines before and after the key-word
- ENG|05100501 | 49| | ACTIONBAR in the layout is left empty, since otherwise they will be
- ENG|05100501 | 50| | overwritten.
- ENG|05100501 | 52|RI| ##051150->^Syntax
- ENG|05100503 | 1| | COMMENT : Definition of Guide Texts
- ENG|05100503 | 3| | For each label of the menu line or a pulldown menu, a brief comment can
- ENG|05100503 | 4| | be defined behind the key-word COMMENT. The brief comment appears in
- ENG|05100503 | 5| | the message line as soon as the associated label is activated.
- ENG|05100503 | 8| E|
- ENG|05100503 | 9| E| LAYOUT
- ENG|05100503 | 10| E| ACTIONBAR
- ENG|05100503 | 11| E| ...
- ENG|05100503 | 13| E| ENDLAYOUT
- ENG|05100503 | 15| E| ACTIONBAR ('LIST': COMMENT 'Compile a list of all objects',
- ENG|05100503 | 16| E| 'PROCESS' :
- ENG|05100503 | 17|SE| COMMENT 'further processing functions',
- ENG|05100503 | 19| E| PULLDOWN proc,
- ENG|05100503 | 20| E| 'DELETE': COMMENT 'delete object);
- ENG|05100503 | 22| E| PULLDOWN proc ( 'START' : COMMENT !progstart,
- ENG|05100503 | 23| E| 'ENTER' : COMMENT !enter_object );
- ENG|05100503 | 24| E|
- ENG|05100503 | 26|RI| ##051152->^Syntax
- ENG|05100504 | 1| | WHEN : Making a Label Passive Dynamically
- ENG|05100504 | 3| | A pulldown menu represents the functions that can be chosen from the form.
- ENG|05100504 | 4| | Depending on various conditions, it may be desirable to make certain parts
- ENG|05100504 | 5| | of the functions passive, but to display them nevertheless.
- ENG|05100504 | 7| | This can be done with the WHEN condition that can be specified behind every
- ENG|05100504 | 8| | label of a pulldown menu. Depending on this condition, the corresponding
- ENG|05100504 | 9| | label is displayed with the display attribute 'menu item passive' (ATTR12),
- ENG|05100504 | 10| | and the associated function cannot be chosen.
- ENG|05100504 | 13| E|
- ENG|05100504 | 14| E| PULLDOWN enter
- ENG|05100504 | 15| E| ( 'back' : WHEN level > 1,
- ENG|05100504 | 16| E| 'trigger funct.' : WHEN modtype ='TRIGGER'
- ENG|05100504 | 17|SE| PULLDOWN trigger_funcs );
- ENG|05100504 | 20| E|
- ENG|05100504 | 22| | If in the example the variable 'level' has a value less than or equal
- ENG|05100504 | 23| | to 1, the label 'back' is set passive. If the variable 'modtype' does
- ENG|05100504 | 24| | not have the value 'TRIGGER', the label 'trigger functions' is made
- ENG|05100504 | 25| | passive and the following pulldown menu cannot be called up.
- ENG|05100504 | 28|RI| ##051152->^Syntax
- ENG|05100505 | 1| | Optical Grouping of Menu Items
- ENG|05100505 | 3| | To be able to group the menu items of a pulldown menu according to
- ENG|05100505 | 4| | logical criteria, a semi-colon can be specified in the list of menu
- ENG|05100505 | 5| | items instead of a comma. The semi-colon causes a separating line to be
- ENG|05100505 | 6| | output between the menu items separated in this way.
- ENG|05100505 | 9| E|
- ENG|05100505 | 10| E| PULLDOWN proc ( 'Insert',
- ENG|05100505 | 11| E| 'Delete';
- ENG|05100505 | 12| E| 'Import',
- ENG|05100505 | 13| E| 'Export' );
- ENG|05100505 | 15| E|
- ENG|05100505 | 17|R | In this example two groups of menu items are displayed.
- ENG|051006 | 1| | Definition of Buttons
- ENG|051006 | 3| | Alternatively to the action bar a series of release fields (BUTTON bar)
- ENG|051006 | 4| | can be defined at the bottom form margin. The BUTTON bar is defined in
- ENG|051006 | 5| | the same way as an action bar. A list of labels is specified behind the
- ENG|051006 | 6| | keyword BUTTON, and the position of the BUTTON bar is defined in the
- ENG|051006 | 7| | layout part of the form by means of the keyword BUTTON.
- ENG|051006 | 10| E|
- ENG|051006 | 11| E| LAYOUT
- ENG|051006 | 12| E| ...
- ENG|051006 | 13| E| BUTTON
- ENG|051006 | 14| E| ENDLAYOUT
- ENG|051006 | 15| E| ...
- ENG|051006 | 16| E| BUTTON ( 'Help', 'Start', 'Exit' );
- ENG|051006 | 17|SE|
- ENG|051006 | 19|RI| ##051187->^Syntax
- ENG|0511 | 1|R | FORM-Syntax
- ENG|051101 | 1| | <form block oriented> ::=
- ENG|051101 | 2| I| FORM ##0203040101<prog^name>.##0203040102<mod^name>
- ENG|051101 | 3| I| [OPTIONS ( ##051180<form^option> ,...)]
- ENG|051101 | 4| I| [PARMS ( ##0203040104<parm^decl> ,...)]
- ENG|051101 | 5| I| [ ##0203040156<var^section> ]
- ENG|051101 | 6| I| ##051159<form^layout>
- ENG|051101 | 7|RI| [ ##051104<processing^stmt> ,... ]
- ENG|051102 | 1| | <form field oriented> ::=
- ENG|051102 | 2| I| FORM ##0203040101<prog^name>.##0203040102<mod^name>
- ENG|051102 | 3| I| OPTIONS ( FIELD [, ##051180<form^option> ,...] )
- ENG|051102 | 4| I| [PARMS ( ##0203040104<parm^decl> ,...)]
- ENG|051102 | 5| I| [ ##0203040156<var^section> ]
- ENG|051102 | 6| I| ##051159<form^layout>
- ENG|051102 | 7|RI| [ ##051138<field^processing^stmt> ,... ]
- ENG|051103 | 1| | <begin layout line> ::=
- ENG|051103 | 2| | LAYOUT [ <layout char spec> ... ]
- ENG|051103 | 4| | <layout char spec> ::=
- ENG|051103 | 5| | <layout attr char spec>
- ENG|051103 | 6| | | <layout inout char spec>
- ENG|051103 | 7| | | <layout prompt char spec>
- ENG|051103 | 8| | | <layout graphic char spec>
- ENG|051103 | 10| | <layout attr char spec> ::=
- ENG|051103 | 11| I| ##051181<attr^name> = <spec char>
- ENG|051103 | 13| | <layout inout char spec> ::=
- ENG|051103 | 14| | IN = <spec char>
- ENG|051103 | 15| | | OUT = <spec char>
- ENG|051103 | 17|S | <layout prompt char spec> ::=
- ENG|051103 | 19| | PROMPT = <spec char>
- ENG|051103 | 21| | <layout graphic char spec> ::=
- ENG|051103 | 22|R | GRAPHIC = <spec char>
- ENG|051104 | 1| | <processing stmt> ::=
- ENG|051104 | 2| I| ##051116<mark^stmt>
- ENG|051104 | 3| I| | ##051105<field^stmt>
- ENG|051104 | 4| I| | ##051115<ignore^stmt>
- ENG|051104 | 5| I| | ##051117<accept^stmt>
- ENG|051104 | 6| I| | ##051155<keyswap^stmt>
- ENG|051104 | 7| I| | ##051118<returnonlast^stmt>
- ENG|051104 | 8| I| | ##051119<autopage^stmt>
- ENG|051104 | 9| I| | ##051120<bottomlines^stmt>
- ENG|051104 | 10| I| | ##051120<headerlines^stmt>
- ENG|051104 | 11| I| | ##051121<special^attr^stmt>
- ENG|051104 | 12| I| | ##051122<control^stmt>
- ENG|051104 | 13| I| | ##051150<actionbar^stmt>
- ENG|051104 | 14| I| | ##051151<pulldown^stmt>
- ENG|051104 | 15| I| | ##051148<include^stmt>
- ENG|051104 | 16|RI| | ##051156<insertmode^stmt>
- ENG|051105 | 1| | <field stmt> ::=
- ENG|051105 | 2| | FIELD <field name>,... [<field proc spec>...]
- ENG|051105 | 4| | <field name> ::=
- ENG|051105 | 5| I| ##0203040133<variable>
- ENG|051105 | 6| I| | ##0203040134<vector^slice>
- ENG|051105 | 7| | | <field number>:<field name>
- ENG|051105 | 9| | <field proc spec> ::=
- ENG|051105 | 10| I| ##051106<init^spec>
- ENG|051105 | 11| I| | ##051107<size^spec>
- ENG|051105 | 12| I| | ##051109<check^spec>
- ENG|051105 | 13| I| | ##051113<offset^spec>
- ENG|051105 | 14| I| | ##051112<display^spec>
- ENG|051105 | 15| I| | ##051111<help^spec>
- ENG|051105 | 16| I| | ##051110<domain^spec>
- ENG|051105 | 17|SI| | ##051114<attr^spec>
- ENG|051105 | 19|RI| | ##051184<noinp^spec>
- ENG|051106 | 1| | <init spec> ::=
- ENG|051106 | 2| | INIT <assign expr>
- ENG|051106 | 4| | <assign expr> ::=
- ENG|051106 | 5|RI| ##0203040136<expr> | NULL
- ENG|051107 | 1| | <size spec> ::=
- ENG|051107 | 2|RI| SIZE ##0203040120<numeric>
- ENG|051108 | 1| | <width spec> ::=
- ENG|051108 | 2|RI| WIDTH ##0203040120<numeric>
- ENG|051109 | 1| | <check spec> ::=
- ENG|051109 | 2| | CHECK <check pred> / ELSE <msg spec> /
- ENG|051109 | 4| | <check pred> ::=
- ENG|051109 | 5| | <simple var pred>
- ENG|051109 | 6| | | <vector var pred>
- ENG|051109 | 7| I| | ##0203040146<boolean^expr>
- ENG|051109 | 9| | <simple var pred> ::=
- ENG|051109 | 10| I| / ##0203040136<expr> / ##0203040148<check^cond>
- ENG|051109 | 12| | <vector var pred> ::=
- ENG|051109 | 13| I| <quant> ##0203040148<check^cond>
- ENG|051109 | 15| | <quant> ::=
- ENG|051109 | 16|R | ALL | ANY | ONE
- ENG|051110 | 1| | <domain spec> ::=
- ENG|051110 | 2| | DOMAIN <domain name> [ ( <domain spec>,... ) ]
- ENG|051110 | 4| | <domain spec> ::=
- ENG|051110 | 5|R | SIZE | WIDTH | INIT | CHECK
- ENG|051111 | 1| | <help spec> ::=
- ENG|051111 | 2| | HELP <help form>
- ENG|051111 | 3| | | HELP <help msg>
- ENG|051111 | 4| | | HELP <help form> <help msg>
- ENG|051111 | 6|RI| <help msg > ::= ##0203040142<str^expr>
- ENG|051112 | 1| | <display spec> ::=
- ENG|051112 | 2| | DISPLAY <display spec>,...
- ENG|051112 | 4| | <display spec> ::=
- ENG|051112 | 5| | FORMAT ( '<char>...' )
- ENG|051112 | 6| | | UPPER | LOWER
- ENG|051112 | 7|R | | RIGHT | LEFT
- ENG|051113 | 1| | <offset spec> ::=
- ENG|051113 | 2|RI| OFFSET ##0203040136<expr>
- ENG|051114 | 1| | <attr spec> ::=
- ENG|051114 | 2|RI| ATTR ##051181<attr^name>
- ENG|051115 | 1| | <ignore spec> ::=
- ENG|051115 | 2| I| IGNORE <ignore field spec> WHEN ##0203040146<boolean^expr>
- ENG|051115 | 4| | <ignore field spec> ::=
- ENG|051115 | 5| | <field name>,...
- ENG|051115 | 6| | | ALL
- ENG|051115 | 7|R | | ALL EXCEPT <field name>,...
- ENG|051116 | 1| | <mark stmt> ::=
- ENG|051116 | 2|RI| MARK ( ##0203040136<expr> ) | MARK ( ##0203040133<variable> )
- ENG|051117 | 1| | <accept stmt> ::=
- ENG|051117 | 2| | ACCEPT ( <key spec>,... )
- ENG|051117 | 4| | <key spec> ::=
- ENG|051117 | 5| | ENTER
- ENG|051117 | 6| I| | ##051183<basic^key> [ = <key label>]
- ENG|051117 | 7| I| | ##051183<additional^hardkey>
- ENG|051117 | 9| | <key label> ::=
- ENG|051117 | 10|R | <char sequence> maximal 8 Character
- ENG|051118 | 1| | <returnonlast stmt> ::=
- ENG|051118 | 2|R | RETURNONLAST
- ENG|051119 | 1| | <autopage stmt> ::=
- ENG|051119 | 2|R | AUTOPAGE
- ENG|051120 | 1| | <headerlines stmt> ::=
- ENG|051120 | 2| I| HEADERLINES ( ##0203040136<expr> )
- ENG|051120 | 3| I| | HEADERLINES ( ##0203040133<variable> )
- ENG|051120 | 5| | <bottomlines stmt> ::=
- ENG|051120 | 6| I| BOTTOMLINES ( ##0203040136<expr> )
- ENG|051120 | 7|RI| | BOTTOMLINES ( ##0203040133<variable> )
- ENG|051121 | 1| | <special attr stmt> ::=
- ENG|051121 | 2| I| SPECIALATTR [ INPUT ##051181<attr^name> ]
- ENG|051121 | 3| I| [ CHECK ##051181<attr^name> ]
- ENG|051121 | 4| I| [ MSG ##051181<attr^name> ]
- ENG|051121 | 5|RI| [ CURSORLINE [ (<first pos>,<last pos>) ] ##051181<attr^name> ]
- ENG|051122 | 1| | <control spec> ::=
- ENG|051122 | 2| | CONTROL <control case spec>
- ENG|051122 | 4| | <control case spec> ::=
- ENG|051122 | 5| I| CASE ##0203040136<expr> OF <control case> [ <else case> ] END
- ENG|051122 | 7| | <else case> ::=
- ENG|051122 | 8| | OTHERWISE <control action>
- ENG|051122 | 10| | <control case> ::=
- ENG|051122 | 11| | <value spec> : <control action> [ ; <control case> ]
- ENG|051122 | 13| | <control action> ::=
- ENG|051122 | 14| | <stmt>
- ENG|051122 | 15| I| | ##051123<pick^stmt>
- ENG|051122 | 16| I| | ##051123<put^stmt>
- ENG|051122 | 17|RI| | ##051124<page^stmt>
- ENG|051123 | 1| | <pick stmt> ::=
- ENG|051123 | 2| I| PICK [ ##0203040136<expr> ]
- ENG|051123 | 4| | <put stmt> ::=
- ENG|051123 | 5|R | PUT [<simple var>]
- ENG|051124 | 1| | <page stmt> ::=
- ENG|051124 | 2| I| PAGE UP [ ##0203040136<expr> ]
- ENG|051124 | 3| | | PAGE DOWN [<expr>]
- ENG|051124 | 4| | | PAGE LEFT [<expr>]
- ENG|051124 | 5|R | | PAGE RIGHT [<expr>]
- ENG|051125 | 1| | <form calling option> ::=
- ENG|051125 | 2| I| ##051126<noinit^option>
- ENG|051125 | 3| I| | ##051127<mark^option>
- ENG|051125 | 4| I| | ##051128<accept^option>
- ENG|051125 | 5| I| | ##051129<attr^option>
- ENG|051125 | 6| I| | ##051130<clear^option>
- ENG|051125 | 7| I| | ##051130<screensize^option>
- ENG|051125 | 8| I| | ##051130<screenpos^option>
- ENG|051125 | 9| I| | ##051131<formpos^option>
- ENG|051125 | 10| I| | ##051132<frame^option>
- ENG|051125 | 11| I| | ##051133<background^option>
- ENG|051125 | 12| I| | ##051134<restore^option>
- ENG|051125 | 13| I| | ##051136<input^option>
- ENG|051125 | 14| I| | ##051137<action^option>
- ENG|051125 | 15| I| | ##051135<print^option>
- ENG|051125 | 16|RI| | ##051157<autoput^option>
- ENG|051126 | 1|R | <noinit option> ::= NOINIT
- ENG|051127 | 1| | <mark option> ::=
- ENG|051127 | 2|RI| MARK ( ##0203040136<expr> ) | MARK ( ##0203040133<variable> )
- ENG|051128 | 1| | <accept option> ::=
- ENG|051128 | 2| | ACCEPT (<key spec>,...)
- ENG|051128 | 4| | <key spec> ::=
- ENG|051128 | 5| | ENTER
- ENG|051128 | 6| I| | ##051183<basic^key> [ = <key label>]
- ENG|051128 | 7|RI| | ##051183<additional^hardkey>
- ENG|051129 | 1| | <attr option> ::=
- ENG|051129 | 2|RI| ATTR ( <form var>, ##051181<attr^name> )
- ENG|051130 | 1| | <window option> ::=
- ENG|051130 | 2| I| SCREENPOS ( ##0203040136<expr> ,<expr>)
- ENG|051130 | 3| | | SCREENSIZE (<expr>,<expr>)
- ENG|051130 | 4|R | | CLEAR
- ENG|051131 | 1| | <formpos option> ::=
- ENG|051131 | 2|RI| FORMPOS ( ##0203040136<expr> ,<expr>)
- ENG|051132 | 1| | <frame option> ::=
- ENG|051132 | 2|R | FRAME [ (<frame title>) ]
- ENG|051133 | 1| | <background option> ::=
- ENG|051133 | 2|R | BACKGROUND
- ENG|051134 | 1| | <restore option> ::=
- ENG|051134 | 2|R | RESTORE
- ENG|051135 | 1| | <print option> ::=
- ENG|051135 | 2| | PRINT [(<print option>,...)]
- ENG|051135 | 4| | <print option> ::=
- ENG|051135 | 5| | | CLOSE
- ENG|051135 | 6| | | CPAGE <natural>
- ENG|051135 | 7| | | LINEFEED <natural>
- ENG|051135 | 8| | | LINESPACE <natural>
- ENG|051135 | 9| | | NEWPAGE
- ENG|051135 | 10|RI| | PRINTFORMAT ##0203040136<expr>
- ENG|051136 | 1| | <input option> ::=
- ENG|051136 | 2| | NOINPUT (<input field>,...)
- ENG|051136 | 3| | | INPUT (<input field>,...)
- ENG|051136 | 5| | <input field> ::=
- ENG|051136 | 6| | <natural>
- ENG|051136 | 7| I| | ##0203040133<variable>
- ENG|051136 | 8|RI| | ##0203040134<vector^slice>
- ENG|051137 | 1| | <action option> ::=
- ENG|051137 | 2|RI| ACTION ( ##0203040136<expr> )
- ENG|051138 | 1| | <field processing stmt> ::=
- ENG|051138 | 2| I| ##051104<processing^stmt>
- ENG|051138 | 3| | | <extended field stmt>
- ENG|051138 | 4| | | <before group stmt>
- ENG|051138 | 5| | | <after group stmt>
- ENG|051138 | 6| | | <extended control stmt>
- ENG|051138 | 8| | <extended field stmt> ::=
- ENG|051138 | 9| | FIELD <field name>,... [<extended field proc>...]
- ENG|051138 | 11| | <field name> ::=
- ENG|051138 | 12| I| ##0203040133<variable>
- ENG|051138 | 13| I| | ##0203040134<vector^slice>
- ENG|051138 | 14| | | <field number>:<field name>
- ENG|051138 | 16| | <extended field proc spec> ::=
- ENG|051138 | 17|SI| ##051105<field^proc^spec>
- ENG|051138 | 19| I| | ##051140<before^field^spec>
- ENG|051138 | 20| I| | ##051140<after^field^spec>
- ENG|051138 | 21|RI| | ##051146<autonext^spec>
- ENG|051140 | 1| | <before field spec> ::=
- ENG|051140 | 2| | BEFORE FIELD <extended compound>
- ENG|051140 | 4| | <after field spec> ::=
- ENG|051140 | 5|R | AFTER FIELD <extended compound>
- ENG|051141 | 1| | <group spec> ::=
- ENG|051141 | 2| | GROUP <group name>
- ENG|051141 | 3| | <extended field stmt>;...
- ENG|051141 | 4| | END;
- ENG|051141 | 6| | <before group spec> ::=
- ENG|051141 | 7| | BEFORE GROUP <extended compound>
- ENG|051141 | 9| | <after group spec> ::=
- ENG|051141 | 10|R | AFTER GROUP <extended compound>
- ENG|051142 | 1| | <extended compound> ::=
- ENG|051142 | 2|R | BEGIN <extended stmt>;... END | <extended stmt>
- ENG|051143 | 1| | <extended stmt> ::=
- ENG|051143 | 2| | <stmt>
- ENG|051143 | 3| I| | ##051124<page^stmt>
- ENG|051143 | 4| I| | ##051123<pick^stmt>
- ENG|051143 | 5| I| | ##051123<put^stmt>
- ENG|051143 | 6| I| | ##051144<nextfield^stmt>
- ENG|051143 | 7|RI| | ##051145<nextgroup^stmt>
- ENG|051144 | 1| | <nextfield stmt> ::=
- ENG|051144 | 2|R | NEXTFIELD <field name>
- ENG|051145 | 1| | <nextgroup stmt> ::=
- ENG|051145 | 2|R | NEXTGROUP <group name>
- ENG|051146 | 1| | <autonext spec> ::=
- ENG|051146 | 2|R | NOAUTONEXT
- ENG|051147 | 1| | <menu> ::=
- ENG|051147 | 2| I| MENU ##0203040101<prog^name>.##0203040102<mod^name> [PARMS ( ##0203040104<parm^decl> ,...)]
- ENG|051147 | 3| I| ##051150<actionbar^stmt>
- ENG|051147 | 4|RI| [ ##051151<pulldown^stmt> ]
- ENG|051148 | 1| | <include menu stmt> ::=
- ENG|051148 | 2| I| INCLUDE MENU ##0203040101<prog^name>.##0203040102<mod^name>
- ENG|051148 | 3|RI| | [PARMS ( ##0203040104<parm^decl> ,...)]
- ENG|051149 | 1| | <form> ::=
- ENG|051149 | 2| I| FORM ##0203040101<prog^name>.##0203040102<mod^name>
- ENG|051149 | 3| I| [OPTIONS ( ##051180<form^option> ,...)]
- ENG|051149 | 4| I| [PARMS ( ##0203040104<parm^decl> ,...)]
- ENG|051149 | 5| I| [ ##0203040156<var^section> ]
- ENG|051149 | 6| I| ##051159<form^layout>
- ENG|051149 | 7| | [ ...
- ENG|051149 | 8| I| ##051150<actionbar^stmt>
- ENG|051149 | 9| I| [ ##051151<pulldown^stmt> ]
- ENG|051149 | 10|R | ... ]
- ENG|051150 | 1| | <actionbar stmt> ::=
- ENG|051150 | 2| I| ACTIONBAR [WITH FRAME] ( ##051182<menupoint^def> ,... )
- ENG|051150 | 3|RI| | ACTIONBAR [WITH FRAME] ( ##051182<menupoint^group> ;... )
- ENG|051151 | 1| | <pulldown stmt> ::=
- ENG|051151 | 2| I| PULLDOWN ##0203040118<name> ( ##051182<menupoint^def> ,... )
- ENG|051151 | 3|RI| | PULLDOWN ##0203040118<name> ( ##051182<menupoint^group> ;... )
- ENG|051152 | 1| | <action clause> ::=
- ENG|051152 | 2| | [<comment>] [<activate cond>] [<action>]
- ENG|051152 | 4| | <comment> ::=
- ENG|051152 | 5| I| COMMENT ##0203040136<expr>
- ENG|051152 | 7| | <activate cond> ::=
- ENG|051152 | 8| I| WHEN ##0203040146<boolean^expr>
- ENG|051152 | 10| | <action> ::=
- ENG|051152 | 11| | <pulldown call>
- ENG|051152 | 12| | | <releasekey spec>
- ENG|051152 | 14| | <pulldown call> ::=
- ENG|051152 | 15| I| PULLDOWN ##0203040118<name>
- ENG|051152 | 17|S | <releasekey spec> ::=
- ENG|051152 | 19| | RELEASEKEY <key literal>
- ENG|051152 | 21| | <key literal> ::=
- ENG|051152 | 22| I| ##051183<basic^key>
- ENG|051152 | 23|RI| | ##051183<additional^hardkey>
- ENG|051153 | 1|R | <form lib option> ::= LIB [<username>.]<libname>
- ENG|051154 | 1|R | <form wrap option> ::= WRAP
- ENG|051155 | 1| | <keyswap stmt> ::=
- ENG|051155 | 2| | KEYSWAP ( <key pair>,... )
- ENG|051155 | 4| | <key pair> ::=
- ENG|051155 | 5| I| ##051183<basic^key> <swap sign> <basic key>
- ENG|051155 | 7| | <swap sign> ::=
- ENG|051155 | 8|R | '<->'
- ENG|051156 | 1| | <insertmode stmt> ::=
- ENG|051156 | 2| I| INSERTMODE ( POS ( ##0203040136<expr> , <expr> )
- ENG|051156 | 3| | [, LABEL ( <expr> ) ]
- ENG|051156 | 4|RM| [, ATTR ( #051181<attr^name> ) ] )
- ENG|051157 | 1|RI| <autoput option> ::= AUTOPUT ( ##0203040133<variable> )
- ENG|051158 | 1| | <langdep literal> ::= ##!0203040118<name> (<literal size>)
- ENG|051158 | 3| | <literal size> ::= S | M | L | XL
- ENG|051158 | 5| | <langdep literal> ::=
- ENG|051158 | 6| | ##!0203040118<name> <-- nur im Maskenlayout
- ENG|051158 | 7| | | ##!0203040118<name> (<literal size>)
- ENG|051158 | 9|R | <literal size> ::= S | M | L | XL
- ENG|051159 | 1| | <form layout> ::=
- ENG|051159 | 2| I| ##051103<begin^layout^line>
- ENG|051159 | 3| | +------------------------------------+
- ENG|051159 | 4| I| | any ##051160<layout^item> elements |
- ENG|051159 | 5| | | required may be placed between |
- ENG|051159 | 6| | | the lines, beginning with |
- ENG|051159 | 7| | | 'LAYOUT' and 'ENDLAYOUT' |
- ENG|051159 | 8| | +------------------------------------+
- ENG|051159 | 9|R | ENDLAYOUT
- ENG|051160 | 1| | <layout item> ::=
- ENG|051160 | 2| I| ##051161<text^item>
- ENG|051160 | 3| I| | ##051162<input^item>
- ENG|051160 | 4| I| | ##051163<output^item>
- ENG|051160 | 5| I| | ##051164<continuation^field>
- ENG|051160 | 6| I| | ##051165<next^vector^component>
- ENG|051160 | 7| | | <spec char>
- ENG|051160 | 8|RI| | ##051166<langdep^literal>
- ENG|051161 | 1| | <text item> ::=
- ENG|051161 | 2|R | beliebiger Text
- ENG|051162 | 1| | <input item> ::=
- ENG|051162 | 2| I| <infield symbol> ##051165<field^ref>
- ENG|051162 | 4| | <infield symbol> :=
- ENG|051162 | 5| | _
- ENG|051162 | 6|R | | <in char>
- ENG|051163 | 1| | <output item> ::=
- ENG|051163 | 2| I| <outfield symbol> ##051165<field^ref>
- ENG|051163 | 3| | /<varying length symbol>/
- ENG|051163 | 5| | <outfield symbol> :=
- ENG|051163 | 6| | <
- ENG|051163 | 7| | | <out char>
- ENG|051163 | 9| | <varying length symbol> :=
- ENG|051163 | 10|R | >>
- ENG|051164 | 1| | <continuation field> :=
- ENG|051164 | 2| | <infield symbol>"
- ENG|051164 | 3|R | | <outfield symbol>"
- ENG|051165 | 1| | <next vector component> :=
- ENG|051165 | 2| | <infield symbol><blank>
- ENG|051165 | 3| | | <outfield symbol><blank>
- ENG|051165 | 5| | <field ref> ::=
- ENG|051165 | 6| I| ##0203040133<variable>
- ENG|051165 | 7| | | <vector slice>
- ENG|051165 | 8| | | <field number>
- ENG|051165 | 9| | <vector slice> ::=
- ENG|051165 | 10| I| ##0203040118<name> (<lower bound> .. <upper bound>)
- ENG|051165 | 11| | +-------------------------------------------+
- ENG|051165 | 12| | | as many <next vector component> elements |
- ENG|051165 | 13| | | must be entered here, one below the other,|
- ENG|051165 | 14| | | as are determined by: |
- ENG|051165 | 15| | | <upper bound>-<lower bound>+1 |
- ENG|051165 | 16|S | +-------------------------------------------+
- ENG|051165 | 19| | <lower bound> ::=
- ENG|051165 | 20| I| ##0203040120<numeric>
- ENG|051165 | 22| | <upper bound> ::=
- ENG|051165 | 23| I| ##0203040120<numeric>
- ENG|051165 | 25| | <field number> ::=
- ENG|051165 | 26|RI| ##0203040120<numeric>
- ENG|051166 | 1|R | <langdep literal> ::= ##!0203040118<name>
- ENG|051180 | 1| | <form option> ::=
- ENG|051180 | 2| I| ##051154<form^wrap^option>
- ENG|051180 | 3|RI| | ##051153<form^lib^option>
- ENG|051181 | 1| | <attr name> ::=
- ENG|051181 | 2| | LOW | HIGH | INV | BLK | UNDERL
- ENG|051181 | 3|R | | ATTR1 | ... | ATTR16
- ENG|051182 | 1| | <menupoint group> ::=
- ENG|051182 | 2| | <menupoint def>,...
- ENG|051182 | 4| | <menupoint def> ::=
- ENG|051182 | 5| I| <function label> [ : ##051152<action^clause> ]
- ENG|051182 | 7| | <function label> ::=
- ENG|051182 | 8| I| ##0203040133<variable>
- ENG|051182 | 9| I| | ##0203040126<string^literal>
- ENG|051182 | 10|RI| | ##051158<langdep^literal>
- ENG|051183 | 1| | <basic key> ::=
- ENG|051183 | 2| | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9
- ENG|051183 | 3| | | F10 | F11 | F12 | HELP | UP | DOWN
- ENG|051183 | 5| | <additional hardkey> ::=
- ENG|051183 | 6|R | CMDKEY | ENDKEY | UPKEY | DOWNKEY | RIGHTKEY | LEFTKEY
- ENG|051184 | 1| | <noinp spec> ::=
- ENG|051184 | 2|R | NOINPUT
- ENG|051185 | 1| | <scrollfield stmt> ::=
- ENG|051185 | 2| | SCROLLFIELD ( <offset var> [, <max count>
- ENG|051185 | 3| | [, <page count> ] ] )
- ENG|051185 | 4| I| [ ( TOPKEY ##051183<basic^key> , BOTTOMKEY <basic key> ) ]
- ENG|051185 | 6| | <offset var> ::= <variable>
- ENG|051185 | 8| | <max count> ::= <expr>
- ENG|051185 | 10|R | <page count> ::= <expr>
- ENG|051186 | 1| | <keys stmt> ::=
- ENG|051186 | 2| | KEYS ( <function key spec>,... )
- ENG|051186 | 4| | <function key spec> ::=
- ENG|051186 | 5| | <key function> = <key> [ | <key> ... ]
- ENG|051186 | 7| | <key function> ::=
- ENG|051186 | 8| | HELP | MENU | UP | DOWN | LEFT | RIGHT
- ENG|051186 | 10| | <key> ::=
- ENG|051186 | 11| I| ##051183<basic^key>
- ENG|051186 | 12|R | | <additional hardkey>
- ENG|051187 | 1| | <button stmt> ::=
- ENG|051187 | 2| | BUTTON [WITH FRAME] (<buttonpoint def>,...)
- ENG|051187 | 4| | <buttonpoint def> ::=
- ENG|051187 | 5| I| ##051182<function label> [ : <button action> ]
- ENG|051187 | 7| | <button action> ::=
- ENG|051187 | 8|R | [ ##051152<comment> ] [<activate cond>] [<releasekey spec>]
-