Пользовательские команды

DevBookmark_UserCommands_ Пользовательские команды – это скрипты, реализующие интерфейс IUserCommand, которые могут быть добавлены в главное меню клиентского приложения и соответственно запущены оттуда пользователем. Список всех пользовательских команд можно найти в справочнике "User commands":

UserCommnads_scr_Dict

Окно справочника разделено на две части: слева отображается дерево групп команд, справа – список команд выбранной слева группы.

Записи справочника можно фильтровать по Отображаемому в экранных формах названию команды (Caption) и Тегам (Tag).

Открыть скрипт выбранной пользовательской команды в форме редактирования можно прямо из списковой формы справочника, выбрав пункт Edit script в контекстном меню.

Выбранную команду можно выполнить, выбрав в этом же контекстном меню пункт Tasks_EditFormButtonExecute:

UserCommnads_scr_Dict_Execute

Кнопка Tasks_EditFormButton в панели инструментов формы редактирования пользовательской команды выполняет ту же функцию, позволяя выполнить команду немедленно:

UserCommnads_scr_DictEditForm

Пользовательская команда обладает следующими свойствами:

Caption – отображаемое в экранных формах название команды;

Guid используется для идентификации пункта меню.

Guid генерируется автоматически случайным образом и при необходимости (при совпадении с Guid другого объекта) может быть изменен:

GuidControl_HowDoesItWork

Script – ссылка на скрипт. При создании новой пользовательской команды скрипт создается автоматически при ее сохранении. Нажатие на ссылку Click here to edit the script... при создании новой пользовательской команды приведет к сохранению команды и ее перезагрузке, затем откроется форма редактирования скрипта;

Folder – группа, которой принадлежит команда;

Parameters – применение дополнительных параметров перед выполнением пользовательской команды:

None – дополнительные параметры запрошены не будут;

Parameter list – выполнение команды будет предваряться открытием генерируется системой Ultima Businessware® формы, в которой пользователю будет предложено заполнить дополнительные параметры, описанные в списке Parameters в правой части формы редактирования команды;

Custom form – выполнение команды будет предваряться открытием специальной дополнительной формы (сконструированной прикладным разработчиком), в которой пользователю будет предложено заполнить ряд параметров.

Parameter form – специальная форма с дополнительными параметрами. Ее выбор доступен в случае, если в пункте Parameters выбрана опция Custom form. Данная форма должна быть предварительно сконструирована прикладным разработчиком, например, в Visual Studio, и помещена в общедоступный клиентский модуль (подробно процесс описан в разделе Формы запроса параметров интерактивных команд);

Icon – иконка команды (размером 16 на 16 пикселей).

Кнопки справа от области предпросмотра иконки позволяют:

Dict_EditForm1_But1 – загрузить иконку;

Dict_EditForm1_But2 – сохранить загруженную ранее иконку на компьютер;

Dict_EditForm1_But3 – удалить иконку;

Large icon – большая иконка (размером 32 на 32 пикселя);

Hot Key – сочетание клавиш, которым можно вызвать пользовательскую команду. Флагами выбирается одна или несколько функциональных клавиш (Ctrl, Alt и Shift), а в элементе управления справа от них выбирается символьная клавиша.

Кнопки элемента управления, которым осуществляется выбор символа, позволяют:

ComboBox_Open_But – выбрать символ;

ComboBox_ADV_Close – удалить выбранное значение;

ComboBox_ADV_Search – посмотреть встречается ли такое сочетание клавиш для какой-либо другой команды.

35_important

Важно помнить, что пользовательские команды вызываются из главного меню, то есть в том числе и при любой открытой в данной момент экранной форме, в которой также могут доступны какие-либо специфические команды. Поэтому важно проверять Dictionaries_Button_9 назначенное команде сочетание горячих клавиш на конфликты. Если в системе будет две команды, вызываемых одинаковой комбинацией горячих клавиш, по их нажатию выполнится только одна из них, причем заранее неизвестно какая.

User help – комментарий к команде, который конечный пользователь может видеть в виде подсказки (hint), выпадающей при наведении курсора мыши на команду. Комментарий вводится для каждого из языков системы в открывающейся по клику по ссылке форме;

Metadata tags – теги, используемые для описания функционала команды;

Developer's comments – комментарии прикладного разработчика;

Parameters дополнительные параметры, которые используются при выполнении команды. Все эти параметры используются (на стандартной форме) в случае, когда в пункте Parameters выбрана опция Parameter list. Параметры можно фильтровать по Названию в соответствии с введенным в поле "Name" текстом. Каждый параметр имеет:

Name – название параметра;

Caption – название, отображаемое в экранных формах;

Type Identity – тип параметра (подробнее см. раздел Типы данных);

Is Required – флаг, указывающий обязателен ли параметр для заполнения;

Save History – флаг, указывающий на необходимость помнить последнее введенное пользователем значение параметра;

String Size (доступен для типов данных Text и String) – ограничивает на указанную величину размер значения параметра;

Sort index – индекс, по которому будут отсортированы параметры в экранной форме. В качестве значений индекса можно использовать любые целые числа. Параметры будут упорядочены в форме сверху вниз в порядке увеличения индекса;

Default Value (доступен для всех типов данных кроме Binary) – значение параметра по умолчанию, которое используется в форме дополнительных параметров;

Referenced Dictionary ID (доступен для типа данных Long)– идентификатор справочника (объекта), ссылкой на который является параметр.

 

bookmark Закладка Permissions позволяет быстро настроить права на запуск команды или проверить, что хотя бы одна роль имеет к ней доступ:

 

UserCommnads_scr_DictEditForm1

DevBookmark_Scripts Скрипты пользовательских команд реализуют интерфейс IUserCommand (из пространства имен Ultima.Scripting).

input На вход скрипта передаются:

дополнительные параметры команды (если они были запрошены);

коллекция действий ClientActions, которые следует выполнить на стороне клиентского приложения по завершению работы скрипта.

Интерфейс IUserCommand реализует единственный метод Execute, выполняющий скрипт:

Execute(IDictionary<string, object> parameters, IList<ClientAction> clientActions);

parameters – параметры команды;

clientActions – коллекция действий ClientActions.