Tab.Column.Mask

From SunFlurry wiki
Revision as of 08:53, 7 February 2021 by Admin (talk | contribs) (1 revision imported)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
  Mask (Шаблон редактирования столбца)
Объект:Таблица
Статус разработки: Реализована
Тип:Атрибут
Обращение к БД:Нет
Доступность:Чтение и запись
Визуальность:Да

Атрибут позволяет получать или изменять шаблон маски редактирования ячеек столбца таблицы. Пустая строка означает отсутствие шаблона. Шаблон представляет собой набор специальных символов, которые задают способ редактирования строки, путем ограничения возможных символов в определенных позициях строки и т.д. Шаблоны используются в основном при редактировании строк с заранее заданной длиной и структурой (к примеру, для редактирования дат в виде XX.XX.XXXX, где X является цифрой), либо цифровых значений с известной длиной целой части и мантиссы. Формат шаблона выглядит одним следующих образов:

  • !<Строка шаблона>;1;<Пустой символ> -- шаблон для редактирования строки. <Пустой символ> -- символ, который будет использоваться вместо незаполненного в данный момент символа, задача пользователя заполнить все такие символы, чтобы шаблон считался корректно заполненным. По умолчанию, этот символ пробел, удобно использовать также символы "-", "_" и пр. <Строка шаблона> содержит набор определенных заранее символов, идущих последовательно и разделителей (символов, которые не подвергаются редактированию, для шаблона даты XX.XX.XXXX, . является таким символом). Специальные символы включают:
    • > -- Следующие символы в тексте должны быть прописными. К примеру !>LLLL;1; будет задавать шаблон из 4 прописных символов.
    • < -- Следующие символы в тексте должны быть строчными
    • <> -- Отключает любой из заданных ранее режимов символов
    • \ -- Следующий символ является разделителем (нередактируемый символ шаблона). К примеру !00\.00\.0000;1; будет задавать шаблон ввода даты.
    • _ -- Задает символ-разделитель пробел (не требуется использование \)
    • L -- Задает буквенный символ шаблона
    • l -- Задает буквенный символ шаблона, который пользователь может пропустить (не заполнять)
    • A -- Задает буквенный символ или цифру шаблона
    • а -- Задает буквенный символ шаблона или цифру шаблона, которую пользователь может пропустить (не заполнять)
    • 0 -- Задает цифру в шаблоне
    • 9 -- Задает цифру в шаблоне, которую пользователь может пропустить (не заполнять)
    • # -- Задает цифру в шаблоне или знаки -, +, при этом пользователь может пропустить данную позицию (не заполнять)
    • С -- Задает любой символ в шаблоне (знаки, цифры, буквы и пр.)
    • c -- Задает любой символ в шаблоне (знаки, цифры, буквы и пр.), при этом пользователь может пропустить данную позицию (не заполнять)
    • любой другой символ -- Задает символ-разделитель, однако рекомендуется использовать знак \ перед символами-разделителями.
  • !<Количество цифр в числе>.<Длина мантиссы числа> -- шаблон для редактирования числовых значений. К примеру: !10.2.

Синтаксис

Tab.Column.Mask:<Шаблон редактирования столбца (STRING)>

Возвращаемое значение

Возвращает шаблон редактирования текущего столбца таблицы.

Примеры

//Пример текста обработки визуального события OnBeforeEditCell
//MainTab -- визуальная таблица, с которой работает пользователь
MainTab:=Form.MainTab.Value;

//Если не выбрана строка или столбец в визуальной таблице, не выполнять действия
If (MainTab.SelectedLine=0)Or(MainTab.SelectedColumn=0) Then
  Exit;
EndIf;

//Получим текущий столбец
аСтл:=MainTab.Column(MainTab.SelectedColumn);

If аСтл.Name=Uppercase("ИНН") Then
  If aEl.ВидКонтрагента<>Enum.ВидыКонтрагентов.ФизЛицо Then
    //Создадим шаблон для редактирования ИНН/КПП в ячейке таблицы
    аСтл.Mask:="0000000000/000000000;1;_";
  Else
    //Или для редактирования только ИНН
    аСтл.Mask:="000000000000;1;_";
  EndIf;
EndIf;