База знаний

Номер статьи: 1332 | Категория: Настройка проекта | Тип: Вопрос/Ответ | Последнее обновление: 27.08.2015

Скрипты для обработки событий интерфейса

Файлы для скачивания

Описание

Для каких событий оболочки доступно скриптование? Чем отличаются скрипты, обрабатывающие события оболочки, от обработчиков событий пакета/документа/страницы, которые используются для настройки стадий обработки? Когда могут быть полезны обработчики событий оболочки?

Решение

В ABBYY FlexiCapture существуют следующие средства для кастомизации интерфейса станций:

  1. настройка меню и панелей инструментов;
  2. настройка пользовательских горячих клавиш;
  3. настройка цветов подсветки символов и выделения на изображении для этапа верификации;
  4. скрипты для обработки событий оболочки

Скрипты оболочки дают наиболее широкий простор для настройки интерфейса ABBYY FlexiCapture 10. С их помощью можно добавить пользовательские команды на станциях, настроить поведение станции в зависимости от определенных условий, кастомизировать интерфейс и пр. Например, скрипт оболочки позволяет запретить оператору верификации закрывать документ, в котором не заполнено какое-либо обязательное поле.

Данные скрипты представляют собой обработчики событий оболочки (interface events). Как и обработчики событий для настройки стадий обработки, они будут вызываться для какого-либо элемента после того, как с этим элементом произойдет определенное событие.

Скрипты позволяют обрабатывать следующие события:

Скрипты оболочки настраиваются для каждого типа этапа (stage tool) отдельно. Например, если для стадии верификации добавлен скрипт для события При открытии документа, то он будет выполняться только при открытии документов на этапе верификации; если документ будет открыт на этапе исключений, то данный скрипт запущен не будет.
В этом заключается основное отличие скриптов оболочки от обработчиков событий для настройки стадий обработки: последние не привязаны к какой-либо конкретной стадии обработки и будут выполняться всегда, когда происходит соответствующее событие. Так, если скрипт добавлен для события Перед удалением страницы, он выполнится и в случае, если какую-либо страницу удалит оператор на этапе Верификации, и в случае, если страница будет удалена на стадии Исключений. Подробнее об обработчиках событий можно прочитать в статье.

Список объектов, доступных из скриптов оболочки, можно увидеть в справке: Приложение >> Использование скриптов в ABBYY FlexiCapture >> Использование скриптов для обработки событий интерфейса >> Объекты. Все эти объекты доступны на чтение и запись и не кешируются.

Скрипты оболочки имеют доступ к объектам ControllerInterop, но уровень этого доступа определяется состоянием документа. Если документ, с которым сейчас идет работа на станции, имеет состояние DS_Opened, то объекты ControllerInterop для этого документа доступны для чтения и записи. В  ином случае объекты контроллера для этого документа доступны только для чтения. Таким образом, из скрипта, обрабатывающего событие «После закрытия документа», нельзя менять регистрационные параметры. Узнать состояние документа из скрипта оболочки можно с помощью метода DocumentState() интерфейса ITaskWindow.

Из скриптов оболочки есть доступ к элементам интерфейса: панелям задач, меню, окнам. То есть, с помощью этих скриптов можно настроить интерфейс станции. Например, для станции верификации в скрипте, обрабатывающем событие При открытии документа, можно выполнить следующие действия:

Также скрипты оболочки позволяют настраивать панели задач (добавлять/удалять кнопки).

Важно отметить, что при закрытии станции все изменения в интерфейсе, сделанные с помощью скриптов, не сохраняются. Все настройки, которые были заданы через скрипт, сбрасываются на первоначальные. Например, для типа пакета 1 для станции верификации Вы настроили скрипт, обрабатывающий событие При открытии документа, в котором указали, что в окне ошибок нужно показывать только rule errors, и при этом ни для каких других типов пакета никаких обработчиков событий интерфейса Вы не настраивали. Тогда после того, как верификатор, обрабатывавщий в предыдущую сессию пакет с типом 1, снова откроет станцию и приступит к обработке пакета какого-то другого типа (2), в соответствующем окне будут отображаться все типы возможных ошибок.  

Как добавить скрипт для обработки событий оболочки

Как уже было сказано выше, скрипты оболочки настраиваются отдельно для каждого типа этапа. Чтобы добавить обработчик события оболочки, на закладке Инструменты типа пакета диалога свойств проекта нужно выбрать этап, для которого следует добавить скрипт для обработки того или иного события, и открыть его настройки (двойной щелчок по названию в списке либо кнопка Редактировать).

 

  

После нажатия кнопки Добавить событие откроется новый диалог, где можно будет выбрать из выпадающего списка нужное событие и добавить скрипт для его обработки:

 

В архиве InterfaceEvents.rar находятся примеры проектов, в которых используются обработчики событий оболочки:

515 считают это полезным.
Была ли эта информация вам полезна?