The
Mask Data form is used to create and manage an application's masks (lists and
forms). It contains the default masks, which you can use as templates for your
own masks. You can also create masks from scratch, for example to accept user
data, to display data in linked tables or to display data which is calculated
at runtime. The sublist are used to select specific mask attributes and predefined
fields for your mask.
Additional Attributes |
Field Assignment |
Field Defaults |
Mask Name | a mask's name |
Mask Title | a masks's title |
Row | a mask's vertical position on the screen |
Column | a mask's horizontal position on the screen |
Length | number of rows occupied by a mask |
Width | number of columns occupied by a mask 7 |
Vert. Scroll | flag for vertical scrollbars |
Horiz. Scroll | flag for horizontal scrollbars |
Sig. Fields | number of significant fields |
Max. Records | maximum number of records in a mask |
Sel. Menu | name of a Select menu |
NoSel. Menu | name of a NoSelect menu |
Edit Menu | name of an Edit menu |
Sel. Buttons | name of a Select button area |
NoSel. Buttons | name of a NoSelect button area |
Edit Buttons | name of an Edit button area |
Reconfigure | updates the copy of the mask in main memory |
Delete | deletes a mask's definition from the database |
attribute | master attribute for mask (T_MASK) |
type, entry | string, entry required |
max. no. of characters | 20 |
selection tool | no |
multilingual field | no |
The masks's name identifies it uniquely. You'll want to use consistent naming conventions, to differentiate between lists and forms.
Attention!
Any default masks created when the model is defined are required internally by DataView, and cannot therefore be modified. If you want to use a default mask as a template, you need to copy the mask record and save it under a different name.
Mask Title (multilingual)
attribute
master attribute for mask (T_MASK)
type, entry
string, entry optional
max. no. of characters
40
selection tool
no
multilingual field
yes
The masks's title appears on the left of its title bar.
Note! Default masks automatically use the mask's name as title. You can modify this in a copy of the mask record, but not the original.
More information:
-> Mask titles
Row
attribute
master attribute for mask (T_MASK)
type, entry
Integer, entry required
max. no. of characters
5
selection tool
no
multilingual field
no
More information: -> Position and size of masks
Mask components are positioned like fields in the parent mask. If the mask is used only as a component, you should set the row = 0, so that you can define its position relative to the parent mask in the mask-field relation alone.
More information:
-> Mask components
Column
attribute
master attribute for mask (T_MASK)
type, entry
Integer, entry required
max. no. of characters
5
selection tool
no
multilingual field
no
More information: -> Position and size of masks
Mask components are positioned like fields in the parent mask. If the mask is used only as a component, you should set the column = 0, so that you can define its position relative to the parent mask in the mask-field relation alone.
More information:
-> Mask components
Length
attribute
master attribute for mask (T_MASK)
type, entry
Integer, entry required
max. no. of characters
5
selection tool
no
multilingual field
no
You should try to set the length and width of masks so that all of its fields and records are visible. If this is not possible or desirable, you can set flags to cause scrollbars to appear automatically.
Using Autoresize (see below) for the mask, you can control the index card's behavior when the header form is resized.
More information:
-> Appearance, size and behavior of index card groups
Width
attribute
master attribute for mask (T_MASK)
type, entry
Integer, entry required
max. no. of characters
5
selection tool
no
multilingual field
no
You should try to set the length and width of masks so that all of its fields and records are visible. If this is not possible or desirable, you can set flags to cause scrollbars to appear automatically.
Using Autoresize (see below) for the mask, you can control the index card's behavior when the header form is resized.
More information:
-> Appearance, size and behavior of index card groups
Vert. Scroll
attribute
master attribute for mask (T_MASK)
type, entry
logical, check button
More information:
-> Scrollbars
Horiz. Scroll
attribute
master attribute for mask (T_MASK)
type, entry
logical, check button
More information:
-> Scrollbars
Sig. Fields
attribute
master attribute for mask (T_MASK)
type, entry
Integer, entry optional
max. no. of characters
5
selection tool
no
multilingual field
no
Significant fields uniquely identify records when they appear in masks. You can only label a number of consecutive fields - starting with the first - as significant. The sequence in which they are defined is crucial.
More information:
-> Significant fields
Max. Records
attribute
master attribute for mask (T_MASK)
type, entry
Integer, entry optional
max. no. of characters
5
selection tool
no
multilingual field
no
Limiting the number of records in a mask ensures that a poorly formulated query, for example, does not overflow local memory. You should not try to display more than 0 records in a mask.
If a query returns more than the given maximum records, DataView displays only that number of records, aborts the query and puts up an alert. The user can then either start a new more restrictive query or call up the remaining records via Record Scan.
Sel. Menu
The Select menu provides a contextual menu which is available whenever the user selects a record in the list (Select state). It should only contain functions appropriate to records (e.g. edit, copy, open a list of dependent elements...).
All the items of the Select menu are automatically available in the top menu bar's dynamic Edit menu as well, so long as the mask is active and in selection mode. This feature requires an Edit menu with the name TOP@MAS to be installed as a pull-down menu for the top menu bar.
More information:
-> Mask menus
NoSel. Menu
The NoSelect menu provides a contextual menu which is available in forms and lists when no element is selected (Widget state). It should only contain functions appropriate to the data as a whole (e.g. Search, Insert...). In forms, the NoSelect menu can also contain functions which act on the currently displayed record (e.g. edit, copy, open a list of dependent elements...), as the current record is considered a selection.
All the items of the NoSelect menu are automatically available in the top menu bar's dynamic Edit menu as well, so long as the mask is active and nothing is selected. This feature requires an Edit menu with the name TOP@MAS to be installed as a pull-down menu for the top menu bar.
More information:
-> Mask menus
Edit Menu
The Edit menu provides a contextual menu which is available in forms and lists when they are in the Edit state.
It should contain appropriate functions for exiting the current edit mode (e.g. Close or Abort for Update mode, Fetch or Count for Query mode, etc.).
The availability of items in the Edit menu can be determined according to the current task.
All the items of the Edit menu are automatically available in the top menu bar's dynamic Edit menu as well, so long as the mask is active and nothing is selected. This feature requires an Edit menu with the name TOP@MAS to be installed as a pull-down menu for the top menu bar.
More information:
-> Mask menus
Sel. Buttons
A button area is an invisible object, the same size as its mask. The user sees only its child objects (pushbuttons and also, in forms, index cards). The child objects of the Select button area become active when the user selects at least one record in the mask (Select state).
Attention! If you define a Select button area for a list, you must also define a NoSelect button area.
More information:
-> Pushbuttons in masks,
-> Index card groups in forms
NoSel. Buttons
A button area is an invisible object, the same size as its mask. The user sees only its child objects (pushbuttons and also, in forms, index cards). The child objects of the NoSelect button area are active when the user has made no selection in the mask (Widget state).
Attention! If you define a NoSelect button area for a list, you must also define a Select button area.
More information:
-> Pushbuttons in masks,
-> Index card groups in forms
Edit Buttons
A button area is an invisible object, the same size as its mask. The user sees only its child objects (pushbuttons and also, in forms, index cards). The child objects of the Edit button area are active when the button area is in an Edit state.
You can make functions available as they become appropriate to the current task.
More information:
-> Pushbuttons in masks,
-> Index card groups in forms
Reconfigure
A new or modified mask (its mask attributes, field assignments) must first be copied into main memory, before changes are visible in the user interface.
When you create a mask component in local memory, DataView automatically updates all the masks in main memory to which the component belongs (even indirectly). Parent objects which are already in main memory need not be updated.
Delete
The mask can only be deleted from the database under these conditions:
Attention! The mask definition is immediately and permanently deleted from the database. It cannot be recovered from the trash.