Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
278
Добавлен:
07.06.2015
Размер:
34.97 Mб
Скачать

Вопрос 18 Маски ввода данных

Маска ввода поддерживает декларативный синтаксис для принятия и отклонения введённых пользователем данных. Настроив свойства маски, можно указать, какие данные допустимы для ввода пользователем. С помощью маски ввода можно задать следующие типы входных данных:

Необходимые входные символы;

Необязательные входные символы;

Тип входных данных, ожидаемых в заданной позиции маски, например цифра или буква;

Литералы маски, или символы, которые должны непосредственно отображаться в поле ввода, например дефисы (-) в номере телефона или знак денежной единицы в цене.

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

 

Маски ввода зависят от региональных установок, которые можно настроить в панели управления.

 

Можно использовать следующие виды масок:

Тип маски

Когда использовать

Описание

Пример

Не использовать

 

Режим ввода по маске отключён.

 

Дата и время

Редактор должен принимать значения даты/времени в определенном формате

Этот тип маски может существенно упростить ввод значений даты и времени.

Можно использовать предопределённые маски для ввода значений даты и времени. Кроме того, можно создавать собственные маски, которые определяют, какие части (год, месяц, день, час, минуту и т.д.) даты и времени можно изменить.

Маска: D

 

Маска: d-MMM-yyyy

Дата и время с переходом

Редактор должен принимать значения даты/времени в определенном формате

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

Числа

Редактор должен принимать числовые значения в определенном формате

Этот тип маски позволит упростить ввод числовых значений.

Маски в этом режиме позволяют вводить числовые значения с использованием общих и пользовательских шаблонов. Можно указать количество обязательных цифр слева и справа от десятичного разделителя, следует ли отображать разделители тысяч и т.д.

Маска: c

 

Маска: ## #0

Простой формат

Строка, которую пользователь может ввести имеет фиксированный формат (без альтернативы) и фиксированной длины (например, номера телефонов).

Этот тип маски поддерживает необязательные символы (например, можно указать, что код номера телефона должен содержать от 0 до 3 цифр). Любые вспомогательные символы могут быть включены в эти маски, и они будут отображаться в окне редактирования "как есть" и будут пропущены в процессе редактирования (например, тире в телефонных номерах).

Маска: (999)000-00-00

Регулярное выражение

Длина строки, которую пользователь может ввести, не фиксирована;

или

Значение может быть введено, используя один из нескольких альтернативных способов;

или

Символы только из определенного диапазона могут быть введены на определенную позицию;

или

Должна быть доступна функция автозаполнения  (пользователь вводит текст, и редактор завершает этот вариант, если нет других альтернатив)

В этом режиме можно построить шаблон с использованием регулярных выражений. Это дает большую гибкость для контроля ввода данных. Например, можно создать одну маску, которая позволит пользователю ввести значение времени, используя 12 или 24-часовой формат.

 

Регуля́рные выраже́ния - это формальный язык поиска и осуществления манипуляций с подстроками в тексте, основанный на использовании метасимволов. По сути это строка-образец (англ. pattern, по-русски её часто называют "шаблоном", "маской"), состоящая из символов и метасимволов и задающая правило поиска.

Маска: ((\+\d)?\(\d{3}\))?\d{3}-\d\d-\d\d (несколько вариантов для ввода номера телефона)

 

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

Параметр

Дата и время

Числа

Простой формат

Регулярное выражение

Использовать для отображения

Сохранять разделители

 

 

 

Символ заместитель

 

 

Показывать заместитель

 

 

 

Автозаполнение

 

 

 

 

Использовать для отображения

Если выбрана эта возможность, то редактор отображает данные в режимах редактирования и отображения одинаково.

Внимание: Формат отображения в настройках объекта интерфейса не используется.

 

Сохранять разделители

Для "Простого" типа маски можно указать, будут ли отображаемые символы маски (литералы) включены в значение, передаваемое в MapInfo. Например, если параметр установлен в "Нет", то для вводимого с помощью маски номера телефона (555)123-45-67, в MapInfo будет передано значение 5551234567.

 

Символ заместитель и показывать заместитель

Для "простого формата" и "регулярных выражений" в поле ввода может использоваться символ заместитель, показывающий необходимость ввода символов. Вы можете использовать параметр "Символ заместитель" для изменения установки по умолчанию "_".

 

Заместители в регулярных выражениях можно скрыть, с помощью параметра "Показывать заместитель".

Следующие изображения показывают пустой текстовый редактор, маска которого: CODE-\d{3}-NO-\d{3} (регулярное выражение):

"Показывать заместитель" установлен и символ '_' используется в качестве заместителя.

"Показывать заместитель" не установлен.

 

Автозаполнение

Для маски "Регулярные выражения" можно включить режим автоматического завершения ввода. В этом режиме редактора попытается завершить значение, которое было частично введено пользователем. Используя этот параметр можно указать режим автозаполнения:

Строгое

Каждый раз, когда конечный пользователь вводит символ, редактор определяет, могут ли следующее заместители быть заполнены автоматически. Если только определённые символы можно вставить в эту позицию, то редактор автоматически отображает эти символы и перемещает курсор справа от него.

Предположим, что маска \R{MonthNames} (редактор будет принимать названия месяцев). Когда пользователь вводит символ "M" второй символ заполняется автоматически "а" , поскольку есть два месяца, начинающиеся с "M" (март и май), и оба содержат "а" во второй позиции. Если затем ввести "р", то редактор автоматически отобразит "Март".

Оптимистическое

Когда пользователь вводит символ в окне редактирования, редактор автоматически заполняет все следующие заместители со значениями по умолчанию. Для заместителей, которые принимают только числовые значения - символ "0" по умолчанию. Для заместителей, которые принимают символы слова - по умолчанию "а".

Предположим, что маска \R{MonthNames}. После ввода "М" редактор сразу вставляет автоматически "Май" (это самый короткий вариант между "март" и "май"):.

 

Если маска: \d{3}-\d{2}-\d{2}  (шаблон номера телефона) и первым введён символ "1", например, заместители автоматически заполняются значениями по умолчанию (символом "0") и выбираются: .

Автоматически

Тоже что и строгое.

Соседние файлы в папке ответы на экзамен