Свойство Маска ввода

<< Click to Display Table of Contents >>

Navigation:  Создание окон для клиента визуализации > HMI. Свойства >

Свойство Маска ввода

Данное свойство имеет тип STRING и указывает допустимые символы, вводимые в клиенте визуализации, например, при работе с элементом Текстовый ввод.

Маска ввода с обязательным числом символов

Общий вид маски: (999)(аа)(**), где цифра 9 обозначает, что на это место можно ввести только цифру, латинская буква a – только букву, символ * – букву или цифру.

Пример применения – поле для ввода телефона. Следующая маска позволит ввести только 7 цифр: (999)(99)(99):

Маска ввода с необязательным числом чисел

Для ввода значений с неопределенным заранее количеством цифр используется символ 0.

Если часть маски ввода содержит 0, то применяется следующий алгоритм подстановки -

В случае, если между необязательными символами оказываются не введенные,  при обработке введенного значения пробелы будут удаляться.

Задача

Значения свойства

Вид поля ввода

Ввод в режиме исполнения

Результат

Допустим, требуется ограничить ввод чисел диапазоном от 0.0 до 999.99.

009.90

_ _ _._ _

_ _0.0_

0.0

_10.1_

10.1

_10.99

10.99

1_1.1_

11.1

1_ _.1_

т.к. не хватает обязательной цифры перед точкой, то введенное значение будет сброшено

Пусть можно вводить любое число от 0.001 до 99999.999

00000.000

_ _ _ _ _._ _ _

1_ _ _._ _ _1

1.1

_ _ _ _._ _ _ _

Не будет являться числом (будут возникать ошибки при передаче значения в числовые параметры)

_ _ _ _._1_

0.1

_ _ _1._ _ _

1.0

1_2_3._4_

123.4

Пусть необходимо вводить и цифры и буквы и символы

9a90/90

_ _ _ _ /_ _

0x_1/11

Значение будет сброшено, т.к. не хватает обязательной цифры после буквы

0x1_/_2

Значение будет сброшено, не хватает обязательной цифры после символа /

0d23/23

0d23/23

0k2_/1_

0k2/1

Пусть необходимо вводить цифры со знаками

+999

+_ _ _

125

т.к. не хватает обязательной цифры перед точкой, то введенное значение будет сброшено

-990

-_ _ _

15_

-15

=999

=_ _ _

987

=987

Сложная маска ввода

Если разбить маску на отдельные фрагменты на серии из 09a*, то в рамках одного фрагмента нельзя задать 0 и * одновременно, так как это приводит к неоднозначному разбору. В этом случае выдается ошибка режиме исполнения.

Если фрагмент содержит 0, то применяется следующий алгоритм подстановки -

Идет подстановка букв/цифр слева направо. На каждой позиции -

если в маске a, подставляется буква

если в маске 9, подставляется цифра

если в маске 0, то цифра подставляется при соблюдении одного из условий -

оставшееся число цифр в маске меньше или равно чем оставшееся число цифр в тексте

на предыдущей позиции была заполнена цифра и оставшееся число 9 в маске меньше чем оставшееся число цифр в тексте

Например, если маска 090, то при вводе принимаются оба значения _45 и 45_, но при получении 45 по входящей связи будет выдано _45

В случае маски 9009 значение 456 будет отображено как 45_6