Элемент управления "CommunicativeChooseBox"
Элемент управления CommunicativeChooseBox предоставляет функциональность выбора сотрудника из Справочника сотрудников. Соответствует элементу управления Сотрудник Конструктора разметок.
CommunicativeChooseBox
содержит следующие функциональные кнопки:-
— флаг состояния выбранного сотрудника в Microsoft Lynс Server. Открывает окно отправки сообщения сотруднику.
-
… — открывает окно выбора сотрудника.
-
X — очищает результат выбора сотрудника.
Связь с сотрудником возможна только при наличии на компьютере пользователя установленного Microsoft Lynс. |
Свойства
-
AccountName
— учетная запись выбранного сотрудника. -
ActiveControl.Text
— позволяет получить имя сотрудника, отображенное на элементе управления. -
ContactLoaded
— признак доступности сотрудника в сети Lynс. -
HideNotAvailable
— при значенииtrue
(значение по умолчанию) из быстрого поиска будут скрыты сотрудники с флагомНе показывать при выборе
, установленным в Справочнике сотрудников. -
ObjectContext
— контекст объектов. Элемент управленияCommunicativeChooseBox
требует ручной передачи контекста объектов, к примеру, при инициализации карточкиprotected override void OnCardInitialized(EventArgs e) { base.OnCardInitialized(e); InitializeComponent(); this.communicativeChooseBox.ObjectContext = this.ObjectContext; (1) }
1 Передача контекста объектов. -
SearchIndex
— определяет минимальное количество символов в строке поиска, при котором будет выполнен быстрый поиск с отображением результатов. -
Value
— идентификатор выбранного сотрудника. -
ValueResolved
— значениеtrue
символизирует завершение выбора сотрудника.
Методы
-
ChooseValue()
— вызывает окно выбора сотрудника. -
GetValue<T>()
— возвращает объект с идентификаторомValue
, приведенный к указанному типуt
. Например, после выбора сотрудника (из списка или окна поиска), его объектная модель может быть получена следующим образом:private void GetSelectedEmployee_Click(object sender, EventArgs e) { var employee = this.communicativeChooseBox.GetValue<DocsVision.BackOffice.ObjectModel.StaffEmployee>(); }
-
SetValue(ObjectBase)
— переданный объект будет записан в результат выбора сотрудника. Данный метод может быть использован, если необходимо программно задать значение выбора сотрудника. В текстовое поле поиска будет записано отображаемое имя сотрудника.
События
-
CustomChoosingValue
— событие срабатывает при нажатии кнопки выбора сотрудника. -
EmployeeChanged
— событие срабатывает после выбора сотрудника. -
ButtonClick
— нажатие кнопки очистки строки поиска. -
CustomizeSearchQuery
— событие срабатывает при выполнении быстрого поиска. Обработка события позволяет изменить поисковый запрос, результаты которого отображаются при вводе текста.Событие
CustomizeSearchQuery
вызывается не каждый раз при вводе символов, а только при обращении к серверу Docsvision. При первом обращении результаты помещаются в локальный кэш, время жизни которого — 5 секунд. Если следующий поисковый запрос основан на текущем и кэш не старше 5 секунд, то обращений к серверу не будет и событиеCustomizeSearchQuery
не сработает (результаты будут выбраны из кэша).
ICustomizableControl customizable = CardControl;
CommunicativeChooseBox regControl = customizable.FindPropertyItem<CommunicativeChooseBox>("Registrar"); (1)
if (regControl != null && regControl.Value != Guid.Empty)
{
StaffEmployee employee = CardControl.ObjectContext.GetObject<StaffEmployee>(regControl.Value); (2)
MessageBox.Show(string.Format("Фамилия: {0}, имя: {1}", employee.LastName, employee.FirstName));
}
1 | Получение элемента управления "Подготовил". |
2 | Возвращаем данные сотрудника. |