# Data Classes

Multi-Line Data Class |

When creating or editing a data class for a Multi-Line control type, Data Class Definitions maintenance displays the following:

#### Note:
Properties marked with an * (asterisk) can be dynamic. Expressions that come from a data class must be global variables. See Dynamic Control Properties.

The following tabbed panels are available: Display, Attributes, User Aids, Validation and Query.

Class Name | Key to the data classes file (providex.dcl). When entering a new data class name, spaces are not allowed. Maximum length is 30 characters. Click the Query button (binoculars) for a list of defined data classes (if any). Click the Browse buttons to browse to existing data classes. Click the Copy Class button to copy an existing data class to a new data class. If unsaved changes are detected when selecting these buttons, a message will display to save the changes. If a data class with the Class Name "Email" or "URL" (case insensitive) is assigned to a data dictionary field, the input entered for the field will be validated as either an email address or URL on a generated Webster+ HTML page. See File Maintenance Generator. (First/Last Class browse buttons were added in PxPlus 2019.) (Email and URL input validation for generated Webster+ HTML pages was added in PxPlus 2021 Update 1.)
(Add/Edit Notes) | (Available when a new or existing data Class Name is entered or selected) Button used to add (or edit) notes for a new or existing data class. Maximum 1024 characters. The button's appearance and tooltip change to indicate that a note was added for the data class. (The Add/Edit Notes button was added in PxPlus 2022.)
(Copy Class) | (Available when an existing data Class Name is selected) Button used to create a new data class by copying the settings from an existing data class. Once it is created, the new data class must be saved, as the Copy process does not do this. (The Copy Class button was added in PxPlus 2019.)
Last Class Change | This information is updated automatically whenever a change is made to the data class definition. (Last Class Change was added in PxPlus 2023.)
Control Type | Default control type used to represent the data that belongs to your defined data class. Click the drop-down arrow for a list of selections: Multi Line, Drop Box, List Box, Radio Buttons, Check Box. (Default is Multi Line.) The control type lets the NOMADS Panel Designer and File Maintenance Generator know which type of control to use for representing the data element.
Description | Generic description of the data class (Fixed value, Expression or Message Library Reference). This will be copied to the data dictionary when the data class is applied to an element. See Element Description.
*Dynamic | For new data classes created in PxPlus 2018, this check box is selected by default. For data classes created prior to PxPlus 2018, this check box is not selected by default. Select this check box to set dynamic control properties to Dynamic automatically when the data class is entered for a control in the Panel Designer. If Dynamic is not selected, dynamic control properties must be set to Dynamic manually after entering the data class for a control. See Dynamic Control Properties. (The Dynamic check box was added in PxPlus 2018.)
Internal Data Type | Internal format of the data when manipulated by a program, either String or Numeric. (Default is String.)
Internal Size | Maximum size of the stored data element: • If the Internal Data Type is for a String variable, the Internal Size value will define the maximum string length. • If the Internal Data Type is for a Numeric variable, enter nnn.dd where nnn is the total number of digits (not including the decimal) and dd is the number of digits after the decimal (i.e. the PRECISION of the number). Example: 6.2: 6 represents the total length of the field (excluding explicit signs and decimals, where applicable), and 2 represents scaling factor or number of decimal places.
Display ( * indicates a Dynamic property)
Properties |
Multi-Line Width | Width of the control in number of columns - numeric expression. Format mask is ##0.00 and valid entries are 0 to 255.
Multi-Line Height | Height of the control in number of lines - numeric expression. Format mask is ##0.00 and valid entries are 0 to 240.
(Multi-Line Width and Height were added in PxPlus 2021.)
*Initial Value | Value to be loaded when the Multi-Line is drawn (Fixed value, string Expression or Message Library Reference).
*Input Length | Maximum input characters (Fixed or numeric Expression). If no Input Length is entered and the Input Format field is blank, the Input Length will be set automatically when saving a new data class: • If the Internal Data Type is for a String variable, the Input Length will be equal to the Internal Size value. • If the Internal Data Type is for a Numeric variable, the Input Length will be set to the integer value of the Internal Size field. If the Internal Size value includes a decimal (e.g. 6.2), the Input Length value will increase by 2 (e.g. 8) to allow for the decimal and the negative sign. (The automatic setting of the Input Length value was added in PxPlus 2023 Update 1.)
Implied Decimal Point | Determines implied decimal support for numeric Multi-Lines. Click the drop-down arrow for a list of selections:
Default | NOMADS uses the PxPlus setting for the '+I' or '-I' mnemonic to enable/disable implied decimals for all Multi-Lines, system wide.
Never | Disable implied decimals. NOMADS displays the value starting at the far left of the decimal point (i.e. 100.00).
Always | Enable implied decimals. NOMADS displays the value starting from the far right of the decimal (i.e. 1.00).
*Empty Value | Text to display if null input (Fixed value or an Expression). (Support for Empty Value to be an expression was added in PxPlus 2018.)
*Input Format | Format mask for the Multi-Line (Fixed or string Expression).
Separator | Delimiter character. Click the drop-down arrow for a list of selections.
#### Note: When defining a Multi-Line with a height greater than one, it is strongly advised to use a different Separator character, rather than the <Std> default, as the <Std> default can also be translated as a field separator when the user presses Enter to add another line during data entry. (Separator was added in PxPlus 2018.)
Numeric | Value for the control is returned in a numeric variable.
*Visual Class | Assign visual class to the control. See Visual Class Assignment. #### Note: Visual class names that begin with an *(asterisk) are pre-defined visual classes used by PVX Plus and may be subject to change without notice. (added in PxPlus 2018)
*iNomads Class | The iNomads class contains class attribute references used when defining the control in the HTML code generated in iNomads. An iNomads class reference must start with an alpha character (A-Z or a-z), followed by any combination of A-Z, a-z, 0-9, underscore or dash. Multiple references may be entered, separated by a space. For a list of pre-defined iNomads classes, see iNomads Classes. (added in PxPlus 2018)
Attributes ( * indicates a Dynamic property)
Attributes |
Auto Tab Skip | Control is skipped when tabbing forward but is still accessible via Shift - Tab or the mouse.
Initially Disabled | Multi-Line is displayed but is grayed out. It is not accessible to the user for input.
Initially Hidden | Multi-Line is not displayed when the panel is drawn.
Locked | User cannot change the Multi-Line's data. Associated query button is disabled. Users can still tab into the Multi-Line and highlight existing text (unlike when the Multi-Line is disabled). This is useful when users need to copy and paste (e.g. copy an address or name into a Word document).
PermaLock/Query Input | Multi-Line is permanently locked. Associated query button is enabled. Forces input through the query only. (added in PxPlus 2018)
Signal On Exit | A signal is generated when focus leaves the control whether the selection or value has changed or not. NOMADS will execute the On Change logic.
Signal All Chg (Auto) | A signal is returned on any changes in the control.
Signal When Full | Generates a signal upon maximum input length. NOMADS will execute the On Change logic for the control. (added in PxPlus 2018)
Signal To/From Null | Generates a signal when the Multi-Line value changes from null to non-null or vice versa. Triggers On Change logic without focus leaving the control. (added in PxPlus 2018)
Center Text | Centers the input.
Right Justify Text | Text is right-aligned in the Multi-Line input field.
Numeric | Value for the control is returned in a numeric variable.
Password | Password entry displays a $ (dollar sign) as substitute for each character entered.
Strip Trailing Spaces | Strips trailing spaces when reading/writing data for the control.
Uppercase | Converts text from lowercase to uppercase automatically
Borderless | Multi-Line is drawn with no border or frame.
Tab Support | Supports the use of the Tab key in the Multi-Line input region. (added in PxPlus 2018)
Append Text | Edit mode. Append to the end of existing text.
Ignore Change Flag | Select this check box when you do not want the NOMADS CHANGE_FLG variable to be updated when the control value is changed (added in PxPlus 2017)
Enable Scrolling | Allows the control to scroll in a resizable/scrollable dialogue box.
Reverse Input | Support for Arabic characters (right to left entry).
Auto Fill | Select this check box if you want to set up the Auto Fill feature, which completes the entry of a Multi-Line control based on the matches available from a pre-defined query. (added in PxPlus 2018) Additional check box options are:
Must Match | (Available when Auto Fill check box is selected) When selected, forces the entry to match an entry from the pre-defined query.
Not Empty | (Available when Must Match check box is selected) When selected, the Auto Fill input cannot be left empty. A value must be specified.
Rich Text Input | Use Rich text control to enable RTF data and user formatting. (added in PxPlus 2018)
Transparent | Multi-Line background and border are transparent; i.e. the window contents behind the Multi-Line show through. (added in PxPlus 2018)
Spell Check | Select this check box to enable spell checker for the Multi-Line. If not set, the system-wide AutoSpellCheck setting will be in effect. The spell checker uses a wavy red underline to flag words that appear misspelled or duplicated. Words that are all uppercase are not spell checked. This option is ignored for Multi-Lines that are defined as Uppercase or are used for Arabic (right to left) input when the Reverse Input check box is selected. (added in PxPlus 2019)
Scrollbars (if required) | Scrollbar(s) to display when the height of the Multi-Line is greater than one line. Selection options are Vertical (default), No scrollbar, Horizontal, Both scrollbars. (added in PxPlus 2018)
Other |
Object Persistence | Sets Object Persistence. (added in PxPlus 2018) Click the drop-down arrow for a list of selections:
Default | Set via global variable
Always | On, overriding global activation
Never | Off, overriding global activation
*User Tag Field | For controls, data/tag field that can be used to pass information on such things as formatting, error messages or validation rules. Field contents are placed in a variable using the control name with a .TAG$ extension.
Alt-Key | Hot key for the control. Click the drop-down arrow for a list of selections. (added in PxPlus 2018)
User Aids ( * indicates a Dynamic property)
*Help Reference |
Type | Click the drop-down arrow to select either Internal or External help reference:
Internal | Application supplied message text (Fixed value, string Expression or Message Library Reference).
External | Standard Windows help system consisting of a help file name and an optional keyword or reference number (Fixed or Expression).
*Floating Tip | Mouse pointer message for the control (Fixed value, string Expression or Message Library Reference). You can customize the floating tip by adding a tip title, descriptive tip text and a hyperlink. These features enhance the visual display and functionality of the tip by providing users with much needed information at their fingertips. You can define either a Standard tip or an HTML tip that provides a simplified HTML Editor for customizing the tip text. To do this, click the button to the right of the Floating Tip Multi-Line input to invoke the Define Info Tip dialogue. See Defining an Info Tip. #### Note: The Floating Tip drop box and Multi-Line input cannot be changed once an HTML tip has been defined.
*Message Bar | Text to be displayed in the panel's status bar when focus is on the control (Fixed value, string Expression or Message Library Reference).
Validation ( * indicates a Dynamic property)
*Data Validation/Display Logic | (Available when Use Extended Validation check box is not selected)
Validator | Name of validation program with an optional entry point label. See Format and Validation Logic.
Formatter | Name of formatter program with an optional entry point label. See Format and Validation Logic.
Rules | Input validation range and/or values (comma-separated); e.g. A, C, R-T. Fixed value or string Expression.
Extended Validation | (Available when Dynamic check box is selected) Extended Validation is used to provide additional table validation and allow access to data elements for creating display-only Multi-Line controls when designing NOMADS panels. See Extended Class Validation.
Use Extended Validation | Select this check box to set up Extended Validation for the data class. This starts with specifying a Table, which will then enable other Extended Validation properties. #### Note: When using Extended Validation, the Validator, Formatter and Rules properties are disabled.
Table | (Available when Use Extended Validation check box is selected) Name of the data table/file to use for the validation. When a valid table/file is entered, the Key field is populated. Click the Query Table View button (magnifying glass) for a tree view of table names by Group. For information on creating a filter to locate a specific table name, see Filtering the Table Names Lookup. Click the Query button (binoculars) for a query view of tables by table name. For information on using the query features (i.e. search, sort, filter, etc.), see Run-Time Query. #### Note: If the Table is changed or removed for the data class, the data class must be reapplied for associated Multi-Line controls. See Reapply Data Class.
Key | (Available when a Table is selected) Key definition to use to verify the value entered. Click the drop-down arrow for a list of Keys defined for the table. Defaults to the Primary key when a Table is entered. #### Note: If the Key is changed or removed for the data class, the data class must be reapplied for associated Multi-Line controls. See Reapply Data Class.
Descriptive Field | (Available when a Table is selected) Specify a descriptive field (either Fixed or Expression) to allow it to be available when creating display-only Multi-Line controls in the NOMADS Panel Designer. See Extended Class Browse.
Fixed | Click the drop-down arrow to select from a list of string elements in the selected Table. This list includes numeric elements (if defined), which display either as =STR(value:"format") or =STR(value), depending on whether a Display format mask was defined for the numeric element in the Data Dictionary. Examples:
=STR(ytdSales:"##,###,##0.00") | With Display format mask ##,###,##0.00
=STR(QtyOnHand) | Without a Display format mask
If a numeric element is selected when the data class is saved, the Descriptive Field drop box will show Expression the next time this data class is accessed.
Expression | Enter an expression that will be available when creating display-only Multi-Line controls. The expression will be evaluated while validating the data. Only variables available to the %nomads'class object may be used, which includes any columns from the Extended Validation Table or global variables or any system wide variables. Constant string values may also be used. Examples: ClientCode$+': '+ClientName$ 'Date = '+DTE(InvoiceDate$:%Dl %Ml %D/%Y) SalespersonCode$+SEP+SalespersonName$ (see Note) #### Note: If a SEP is included in an expression, it will insert another line in the display-only Multi-Line control, which will require a Height setting greater than 1. If entering an expression that includes columns from the selected Table, the Populate All Fields check box must be selected.
(The ability to use numeric elements and specify an Expression was added in PxPlus 2020.)
Populate All Fields | (Available when a Descriptive Field is entered or selected) Select this check box to allow all data elements in the selected Table to be available when creating display-only Multi-Line controls in the NOMADS Panel Designer.
Error if Invalid | (Available when a Table is selected) (Optional) Enter an error message to display if the value entered fails validation (i.e. not found in the table). Click the Query button (binoculars) to select an existing message from the *MSGLIB message library. If no error message is specified (default), the error code FW_NOTFOUND will be used, which displays the following message: "value$ is not a valid entry. No corresponding record was found in the system."
Logic if not found | (Available when a Table is selected) (Optional) Enter the logic to execute (using the EXECUTE directive) if the value entered is not found instead of displaying an error message (e.g. logic to allow a new value to be defined if it cannot be found).
(Extended Validation was added in PxPlus 2019.)
Query ( * indicates a Dynamic property)
*Query Type | Type of query to associate to the control: Panel, Query Program, Non-Query Logic, Spinner Controls or Calendar. Valid formats include a NOMADS query object or query list, a custom query panel, or user-supplied query program. (The Calendar Query Type for Multi-Line data classes was added in PxPlus 2025 Update 1.) Depending on the Query Type selected, different information is entered. For an explanation of each type and the information to enter, see Query Type. #### Important Note: Query buttons are only drawn if the associated Multi-Line is one line high.
*Panel Information | (Applicable when Query Type is Panel) For an explanation of the information to enter, see Query Type: Panel. The Define button uses the Panel name to either create a new or edit an existing query definition. (The Define button was added to Data Class Definitions maintenance in PxPlus 2023 Update 1.)
*Query Program | (Applicable when Query Type is Query Program) For an explanation of the information to enter, see Query Type: Query Program.
*Non-Query Logic | (Applicable when Query Type is Non-Query Logic) For an explanation of the information to enter, see Query Type: Non-Query Logic.
*Spinner Controls | (Applicable when Query Type is Spinner Controls) For an explanation of the information to enter, see Query Type: Spinner Controls.
*Calendar | (Applicable when Query Type is Calendar) For an explanation of the information to enter, see Query Type: Calendar (The Calendar Query Type for Multi-Line data classes was added in PxPlus 2025 Update 1.)
*Query Button Options | (Available when Query Type is Panel, Query Program or Non-Query Logic) Options that can be set to refine the appearance of the query button for the Multi-Line. For an explanation of these options, see Query Button Options.
Popup Menu | Button that is used to assign a popup menu to a data class (Fixed value or Expression, to be evaluated at run time when the popup signal occurs). A check mark displayed on the button indicates that a popup menu is currently assigned to the data class. This button invokes the Assign Popup Menu window for assigning Prior Popup logic, a pre-defined popup object or user-defined program. If selected, Prior Popup logic will be executed before the popup menu is displayed. If On Select logic exists for the control with the popup menu, this will be triggered before the popup event. Select the Panel option in the Assign Popup Menu window to display a pre-set list of popup objects available for the highlighted library. The Program option is used to add a user-defined program. This can be either a Fixed value or an Expression to be evaluated at run time when the popup signal occurs.
Write | Adds a new data class definition or updates an existing definition.
Delete | (Available when an existing data class is selected) Removes the selected data class definition. Before proceeding, a message asks to confirm the deletion, as deleting a data class in use may cause issues.
Clear | Clears the current data class definition to allow you to define a new data class or select an existing definition.
Exit | Closes Data Class Definitions maintenance without saving any changes.

(The User Aids tab was added in PxPlus 2018.)