Взаимодействие с контейнером карточек

При разработке визуального интерфейса карточек или приложений, работающих с Docsvision, часто возникает необходимость взаимодействия с контейнером карточек (Windows-клиентом) для решения одной из следующих задач:

  • Выбор карточки.

  • Выбор папки.

  • Отображение конкретной карточки.

  • Навигация по дереву папок.

  • Другие задачи.

Для решения этих задач можно использовать методы объекта — контейнера карточек (объект должен реализовывать интерфейс DocsVision.Platform.CardHost.ICardHost).

Ссылку на этот объект все карточки получают в момент инициализации, и впоследствии она доступна в любой момент жизненного цикла карточки через соответствующее свойство базового класса — CardControl.CardHost.

В случае разработки внешних приложений и утилит, которые работают вне контекста Windows-клиента, этот объект необходимо создавать явно. Для этого предназначен метод CreateInstance. На вход метода достаточно передать ссылку на текущую сессию.

Пример создания объекта-контейнера карточек:
SessionManager manager = SessionManager.CreateInstance();
manager.Connect("http://localhost/DocsVision/StorageServer/StorageServerService.asmx", string.Empty);
UserSession session = manager.CreateSession();
ICardHost host = CardHost.CreateInstance(session);

Помимо контейнера, в карточку также передается ссылка на другой объект — текущее окно, в котором открыта карточка (CardControl.CardFrame).

Этот объект позволяет выполнять действия с окном:
  • Закрыть окно.

  • Задать заголовок окна.

  • Открыть карточку в новом окне.

  • Прочие действия.

При разработке внешних приложений и утилит получить ссылку на объект CardFrame невозможно, т.к. они работают вне контекста контейнера (Windows-клиента).

Пример кода работы с окном, где заголовок окна изменяется по мере ввода текста в некую форму:
private void txtName_TextChanged(object sender, EventArgs e)
{
 CardFrame.Caption = txtName.Text;
 isChanged = true;
}

Справочники платформы Docsvision поддерживают возможность программного открытия и позиционирования на конкретной записи, для чего предусмотрено использование метода ShowCard с передачей в качестве параметра activateParams массива управляющих объектов (см. Параметры активации справочников).

В зависимости от типа справочника передаваемый массив может содержать различное число объектов. При открытии возможно осуществлять позиционирование курсора на конкретной записи, открытие записи на просмотр, либо на редактирование. Примеры смотрите по ссылке Программное открытие справочников.