Атрибут Строка
Атрибут типа Строка содержит значения в виде произвольных последовательностей символов.
Настройка дополнительных параметров позволяет:
- заполнять поля карточки значениями из предопределённого списка;
- заполнять поля значениями справочников;
- создать автозаполняемый атрибут;
- включить перенос строки.
Заполнение поля значением из предопределённого списка
В Pilot-myAdmin можно создать атрибут, при заполнении которого в клиентском приложении будет предложен простой предопределенный список.
Чтобы задать в атрибуте предопределенный список:
- При создании или редактировании атрибута в раскрывающемся списке Тип атрибута выберите Строка.
- Скопируйте следующий текст:
<Attr Kind="Enum" IsEditable="True" DefaultItemIndex="1">
<Item>Значение 1</Item>
<Item>Значение 2</Item>
<Item>Значение 3</Item>
</Attr>
- Вставьте его в поле Дополнительные параметры.
- Замените Значения на нужные. Количество значений может быть любым. Параметр DefaultItemIndex устанавливает значение атрибута по умолчанию.
Заполнение поля значением справочника
Справочником может быть любой элемент обозревателя, состоящий из других элементов, и подключённый к карточке с целью заполнения её полей.
Чтобы справочник можно было использовать для заполнения поля атрибута в Pilot-ICE, его необходимо подключить к этому атрибуту в Pilot-myAdmin. Существует несколько видов таких справочников:
Значение Attr Kind | Вид справочника | Значение для заполнения полей |
---|---|---|
Object | Объектный справочник | Наименования всех элементов подключённого к атрибуту справочника |
OrgUnit | Cправочник из оргструктуры | Список пользователей базы данных с сортировкой по подразделениям |
Type | Cправочник из типов | Список всех пользовательских типов базы данных |
Enum | Cправочник перечисления | Простой список значений, предопределённый при создании атрибута |
При редактировании поля, заполненного значениями атрибута Строка, подключенными к справочнику, все элементы нужно выбирать заново. Добавлять к ранее выбранным нельзя.
Подробнее... ▼Способы сохранения ранее выбранных элементов:
- Использовать атрибут типа Справочник элементов вместо строкового.
- Настроить заполнение атрибута типа Строка при повторном показе диалога справочника с помощью модуля расширения.
[Export(typeof(IObjectCardHandler))]
public class ObjectCardHandler : IObjectCardHandler
{
public bool Handle(IAttributeModifier modifier, ObjectCardContext context)
{
return true;
}
public bool OnValueChanged(IAttribute sender, AttributeValueChangedEventArgs args, IAttributeModifier modifier)
{
if (sender.Name == "name" && args.Context.Type.Name == "section" && (Keyboard.IsKeyDown(Key.LeftShift) || Keyboard.IsKeyDown(Key.RightShift)))
{
var oldValue = args.OldValue as string;
var newValue = args.NewValue as string;
if(!string.IsNullOrEmpty(oldValue) && !string.IsNullOrEmpty(newValue))
modifier.SetValue("name", $"{oldValue}; {newValue}");
}
return true;
}
}
Подключение справочника к атрибуту
Перед созданием справочников рекомендуем ознакомиться с примером их реализации в Демонстрационных базах . |
Чтобы справочник можно было использовать для заполнения поля атрибута в Pilot-ICE, его необходимо подключить к этому атрибуту. Справочник подключается в Pilot-myAdmin. Ниже приведён пример подключения Объектного справочника:
- Создайте новый атрибут или перейдите к редактированию существующего.
- В раскрывающемся списке Тип атрибута выберите Строка.
- Скопируйте следующий текст:
<Attr Kind="Object"
Source="IDENTIFICATOR"
IsEditable="True"
StringFormat="{ATRNAME}"
EditorType="Combobox"/>
- Вставьте его в поле Дополнительные параметры.
- Замените слово IDENTIFICATOR на идентификатор справочника:
- Перейдите в Pilot-ICE. Выберите в списке элемент, который будет использоваться, как справочник при заполнении атрибутов. Например, Контрагенты для атрибута Заказчик.
- Вызовите контекстное меню и нажмите Копировать идентификатор.
- Перейдите обратно в Pilot-myAdmin. Выделите во вставленном тексте IDENTIFICATOR и замените его на скопированный идентификатор, нажав CTRL+V или команду Вставить в контекстном меню.
- Замените слово ATRNAME на имя атрибута, значение которого будет использовано для заполнения атрибута
Команда Копировать идентификатор доступна пользователям, которые являются администраторами. |
Параметры атрибутов
Параметр | Описание параметра | Значения | Комментарий |
---|---|---|---|
IsEditable | определяет возможность редактирования выбранного значения. | "True" | редактируется |
"False" | не редактируется | ||
StringFormat | Определяет, какой из атрибутов элемента выбран для заполнения поля. | “{имя атрибута}“ | |
EditorType | Определяет, в каком виде будет представлен выбор значений: - как список; - как диалоговое окно. |
"ComboBox" | Выбор представлен в виде раскрывающегося списка. Элементами справочника могут быть только элементы типа без связей. |
"Dialog" | Выбор представлен в виде диалогового окна. Используются элементы заданных типов в т.ч. со связями. Возможен выбор нескольких значений. | ||
AllowMultiSelect | Разрешает выбор нескольких значений в диалоговом окне (EditorType="Dialog"). | "True" | Выбор нескольких значений возможен (по умолчанию). |
"False" | Выбор ограничен одним значением. | ||
ElementsTypes | Позволяет ограничить выбор элементов, указав только нужные имена. | “имя_типа_1, имя_типа_2, …” | Если атрибут не указан, то в справочник можно выбрать только элементы тех типов, для которых не указаны связи. |
CreateLink | При выборе значения для заполнения поля может быть создана связь с элементом справочника (см. пример 1) | "True" | Связь создаётся |
"False" | Связь не создаётся (по умолчанию) | ||
AutoFill | Запрещает автозаполнение поля атрибута | "True" | Автозаполнение включено (по умолчанию). |
"False" | Автозаполнение выключено. |
Связь будет создана (CreateLink="True"), если выбор значений для поля представлен в виде диалогового окна (EditorType="Dialog"). |
Примеры заполнения поля Дополнительные параметры
Пример 1. Объектный справочник
<Attr Kind="Object"
Source="75ffcf6a-e37d-4328-b7b7-f62fd44729f3"
IsEditable="True"
StringFormat="{name}"
EditorType="Dialog"
ElementsTypes="contractor,reference_contractors"
CreateLink="True"/>
Для заполнения поля карточки подключённый справочник будет использовать атрибут name элементов типов contractor и reference_contractors из справочника с идентификатором 75ffcf6a-e37d-4328-b7b7-f62fd44729f3. Выбор значений будет представлен в виде диалогового окна. При выборе значения будет установлена связь элемента, карточка которого заполняется, и элемента из справочника, имя которого было выбрано.
Пример 2. Справочник из оргструктуры
<Attr Kind="OrgUnit"
IsEditable="True"
EditorType="ComboBox"/>
В качестве справочника будет использоваться вся Организационная структура. Раскрывающийся список позволит выбрать одного из пользователей базы данных.
Пример 3. Справочник из типов
<Attr Kind="Type" IsEditable="True"/>
В качестве справочника будет использоваться список всех пользовательских типов базы данных.
Пример 4. Справочник перечисления
В качестве справочника будет использоваться предопределённый список. См. Заполнение поля значением из предопределённого списка.
Автозаполняемый атрибут
Чтобы при создании элемента в клиентском приложении вручную не заполнять в карточке все данные, которые есть в справочниках, в Pilot-myAdmin можно настроить атрибуты, которые будут заполняться автоматически при выборе основного значения из справочника.
Чтобы атрибут заполнялся автоматически нужно выполнить следующие условия:
- Создать атрибут и подключить к нему справочник.
- Создать еще один атрибут с именем, которое совпадает с именем атрибута, использованного в элементе справочника.
В ситуации, когда имена атрибутов совпадают с именами атрибутов справочника непреднамеренно и автозаполнение полей нежелательно, его можно отключить, установив в конфигурации параметру AutoFill значение False.
Пример создания автозаполняемого атрибута
В демонстрационной базе pilot-ice_ru для типа Основной комплект (main_set) создано два атрибута:
- Наименование основного комплекта (name), который заполняется выбором значений из подключенного Справочника основных комплектов (reference_sets).
- Марка основного комплекта (code), который заполняется автоматически, в зависимости от выбранного значения атрибута name.
Имя второго атрибута совпадает с именем атрибута (code), использованного в элементе Основной комплект (item_reference_sets) подключенного справочника. При создании элемента в Pilot-ICE, поле карточки Марка основного комплекта будет заполняться автоматически в соответствии с выбранным Наименованием основного комплекта.
Для запрета автозаполнения поля карточки Марка основного комплекта нужно в конфигурацию атрибута name типа Основной комплект, к которому подключен справочник, добавить аргумент AutoFill="False".
Перенос для атрибутов типа строка
Атрибут AllowLineBreaks позволяет включать перенос строки. Это может быть полезно, например, для поля Описание карточки Задания. AllowLineBreaks работает только для атрибутов типа Строка.
Чтобы включить перенос строки:
- При создании или редактировании атрибута в раскрывающемся списке Тип атрибута выберите Строка.
- Скопируйте следующий текст:
- Вставьте его в поле Дополнительные параметры.
- Нажмите ОК.
<Configuration AllowLineBreaks="True"/>