Элемент управления "CommunicativeChooseBox"

Элемент управления CommunicativeChooseBox предоставляет функциональность выбора сотрудника из Справочника сотрудников. Соответствует элементу управления Сотрудник Конструктора разметок.

Элемент управления "CommunicativeChooseBox"
Рисунок 1. Элемент управления "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 Возвращаем данные сотрудника.