Список всех скриптов можно найти в справочнике "Scripts":
Окно справочника разделено на две части: слева отображается дерево групп скриптов (которые в данной форме можно только редактировать, но не удалять или создавать), справа – список скриптов выбранной слева группы. Нажатием кнопки панели инструментов можно включить и отключить предпросмотр выбранного в списке скрипта.
Скрипты, в коде которых обнаружены ошибками, выделены в списке оранжевым.
Записи справочника можно фильтровать по Названию скрипта (Name) и по его тексту и параметрам с помощью расширенного фильтра (Advanced filter):
•Full text search – скрипт содержит полное соответствие искомому тексту; •Full of the words – скрипт содержит все искомые слова; •At least one word – скрипт содержит хотя бы одно из искомых слов; •Does not contain words – скрипт не содержит ни одно из искомых слов; |
•Tag – скрипт помечен тегом.
•In scripts text – с установленным флагом осуществляется поиск по тексту скриптов;
•In descriptions – с установленным флагом осуществляется поиск в описаниях скриптов;
•In resources – с установленным флагом осуществляется поиск в ресурсах скриптов.
Фильтр применяется по нажатию кнопки "Apply filter". Строки с найденным текстом (только для варианта Full text search) выделяются в форме предпросмотра скрипта:
Помимо справочника скриптов скрипт можно открыть:
•из формы редактирования его основной части;
•из списковой формы его основной части, выбрав пункт Edit script в контекстном меню, доступным по клику правой кнопкой мыши по выбранной записи списковой формы:
В заголовке формы редактирования скрипта отображается название его класса и идентификатор. Все свойства скрипта сгруппированы в форме редактирования по закладкам:
В заголовке формы редактирования скрипта помимо идентификатора открытого скрипта расположены элементы управления, ориентированные на работу с данными закладки "Script text":
•кнопка – открывает открывает форму редактирования основной части скрипта, соответствующую типу (Type) скрипта:
▪Custom report – пользовательский отчет по итогу;
▪Dictionary command – команду над записью справочника;
▪Dictionary event handler – форму редактирования справочника;
▪Dictionary list command – команду над записями справочника;
▪Document command – команду над документом;
▪Document event handler – форму редактирования типа документа;
▪Document list command – команду над документами;
▪Interface – интерфейс;
▪Print form – печатную форму;
▪Report column provider – форму редактирования справочника;
▪Service – сервис;
▪Task – задачу;
▪Total driver – драйвер итогов;
▪Total event handler – форму редактирования итога;
▪Transactions – форму редактирования типа документа;
▪Transactions validators – форму редактирования итога;
▪User command – пользовательскую команду;
▪Web service – web сервис.
По нажатию на стрелку справа от кнопки |
Для интерактивных команд и печатных форм отображается список параметров скрипта. По двойному клику левой кнопкой мыши на строке списка название параметра (в кавычках) копируется в буфер обмена; |
•кнопка "Check source" – проверяет код скрипта на наличие ошибок:
▪об отсутствии найденных в ходе проверки в коде скрипта ошибок будет сообщать пиктограмма |
▪о наличии внесенных в код скрипта и еще не проверенных изменений будет сообщать следующая пиктограмма |
Нажатие на кнопку "Check source" с такой пиктограммой сохраняет и компилирует скрипт. При этом редактирование текста скрипта и его ресурсов недоступно;
▪наконец, о найденных в ходе проверки в коде скрипта ошибках будет сообщать пиктограмма |
Двойной клик левой кнопкой мыши по ошибке приводит к позиционированию курсора на строке скрипта с этой ошибкой.
Текст выбранной ошибки можно скопировать через контекстное меню, доступное по клику правой кнопкой мыши, либо по нажатию сочетания клавиш +
:
Окно ошибок можно открыть в любой момент, кликнув левой кнопкой мыши по кнопке "Errors" в левом нижнем углу формы редактирования скрипта. При этом окно ошибок автоматически скроется, при клике мышью в любой области вне его. Чтобы окно ошибок не скрывалось, его можно закрепить .
При наведении курсор мыши на кнопку "Errors" (без клика) окно ошибок откроется, но автоматически скроется, как только курсор мыши покинет кнопку "Errors" или область окна ошибок;
•кнопки и
– позволяют перемещаться назад и вперед соответственно по тексту скрипта по истории позиций курсора;
•элемент управления "Go to line" позволяет перейти на заданную строку кода скрипта. Для перехода следует ввести номер строки в текстовое поле и нажать клавишу ;
•элемент управления "Current element" выполняет две функции:
▪отображает на каком элементе кода скрипта установлен в данный момент курсор;
▪позволяет перейти к выбранному элементу кода:
На закладке "Script text" находится редактор кода скрипта. В правой области редактора расположена область навигации, показывающая какая часть скрипта отображается на экране:
•кнопка "Properties" в левом нижнем углу формы редактирования – открывает всплывающее снизу окно свойств скрипта:
▪Name – название скрипта, присваивается автоматически и совпадает с названием класса скрипта;
▪Type – тип скрипта, присваивается автоматически при создании скрипта;
▪Group – группа, к которой относится скрипт, задается в основной части скрипта;
▪Generator data – дополнительный параметр скрипта, используемый в его генерируемой части;
▪Reference – дополнительные сборки (внешние библиотеки), используемые скриптом:
Перечисленные библиотеки должны быть либо в GAC (информацию о Global Assembly Cache можно найти на сайте MSDN eng/rus), либо указанной директории ServerFolderName сервера приложений;
▪Auto align assignments – с установленным флагом происходит автоматическое выравнивание инициализируемых в коде скрипта переменных;
▪Highlight current line – с установленным флагом текущая строка в редакторе подсвечивается;
Окно свойств автоматически скроется, при клике мышью в любой области вне его. Чтобы окно свойств не скрывалось, его можно закрепить .
При наведении курсор мыши на кнопку "Properties" (без клика) окно свойств откроется, но автоматически скроется, как только курсор мыши покинет кнопку "Properties" или область окна свойств;
•кнопка "Find all" в левом нижнем углу формы редактирования – открывает всплывающее снизу окно поиска по тексту скрипта:
Опции поиска, устанавливаемые флагами справа от кнопки "Find all", позволяют искать:
•Match case – с учетом регистра;
•Match whole word – только слово целиком;
•Use Regular Expressions – используя регулярные выражения.
Двойной клик левой кнопкой мыши по результату поиска приводит к позиционированию курсора на строке скрипта с найденным фрагментом.
Окно поиска автоматически скроется, при клике мышью в любой области вне его. Чтобы окно поиска не скрывалось, его можно закрепить .
При наведении курсор мыши на кнопку "Find all" (без клика) окно поиска откроется, но автоматически скроется, как только курсор мыши покинет кнопку "Find all" или область окна поиска;
•кнопка "Versions history" в левом нижнем углу формы редактирования – открывает всплывающее снизу окно с историей изменения скрипта от версии к версии в ветви конфигурации, отмеченной выбранным в поле Branch or tag тегом (branch или обычным):
s
История изменений по версиям загружается по клику левой кнопкой мыши на кнопку "Load". Последняя версия скрипта в текущей версии конфигурации, открытая на закладке "Script", также присутствует в истории изменений.
Двойной клик левой кнопкой мыши по версии скрипта приводит к его открытию в новой закладке с соответствующим заголовком.
Если выделить, удерживая нажатой клавишу Shift или Ctrl, две версии скрипта и нажать кнопку "Diff", можно посмотреть в деталях историю изменений, которая откроется в новой закладке с соответствующим заголовком:
В нижней части закладки истории изменений по версиям приведены для сравнения обе версии строки, на которой установлен курсор:
▪салатовым выделены измененные строки;
▪фиолетовым выделен удаленный текст;
▪голубым выделен добавленный текст.
Если выделить, удерживая нажатой клавишу Shift или Ctrl, две и более версии скрипта и нажать кнопку "Blame", можно посмотреть в новой закладке с соответствующим заголовком в какой версии конфигурации были внесены изменения в скрипт:
Для каждой строки скрипта указан номер конфигурации, при работе в которой в нее были внесены изменения.
Всплывающее окно истории изменений по версиям автоматически скроется, при клике мышью в любой области вне его. Чтобы окно истории изменений не скрывалось, его можно закрепить .
При наведении курсор мыши на кнопку "Versions history" (без клика) окно истории изменений по версиям откроется, но автоматически скроется, как только курсор мыши покинет кнопку "Versions history" или область окна истории изменений по версиям.
•кнопка "Changes history" в левом нижнем углу формы редактирования – открывает всплывающее снизу окно с историей изменения скрипта в текущей версии конфигурации (с которой работает клиентское приложение):
s
История изменений загружается по клику левой кнопкой мыши на кнопку "Load". Последняя сохраненная версия скрипта, открытая на закладке "Script", также присутствует в истории изменений.
Двойной клик левой кнопкой мыши по версии скрипта приводит к его открытию в новой закладке с соответствующим заголовком.
Если выделить, удерживая нажатой клавишу Shift или Ctrl, две версии скрипта и нажать кнопку "Diff", можно посмотреть в деталях историю изменений, которая откроется в новой закладке с соответствующим заголовком:
В нижней части закладки истории изменений приведены для сравнения обе версии строки, на которой установлен курсор:
▪салатовым выделены измененные строки;
▪фиолетовым выделен удаленный текст;
▪голубым выделен добавленный текст.
Если выделить, удерживая нажатой клавишу Shift или Ctrl, две и более версии скрипта и нажать кнопку "Blame", можно посмотреть в новой закладке с соответствующим заголовком кто и когда вносил изменения в скрипт:
Для каждой строки скрипта указана дата внесения в нее изменений и под каким пользователем они были совершены.
Всплывающее окно истории изменений автоматически скроется, при клике мышью в любой области вне его. Чтобы окно истории изменений не скрывалось, его можно закрепить .
При наведении курсор мыши на кнопку "Changes history" (без клика) окно истории изменений откроется, но автоматически скроется, как только курсор мыши покинет кнопку "Changes history" или область окна истории изменений.
Редактор скрипта реализован следующий функционал и поддерживаются следующие горячие клавиши:
• +
– диалог поиска;
• – найти следующее вхождение искомого фрагмента (при закрытом окне диалога поиска);
• +
– вернуть стандартный размер шрифта (размер шрифта меняется вращением колеса мыши при удерживаемой клавише
);
• +
– установить контрольную точку (breakpoint);
• +
– перейти к следующей строке с установленной контрольной точкой;
• +
+
– перейти к предыдущей линии с установленной контрольной точкой;
• +
+
– снять контрольную точку;
• +
– перейти на указанную линию;
• +
– открыть диалог поиска и замены;
• +
– автоматический отступ:
• +
или
+
– использование технологии IntelliSense:
• +
– перевести все символы выделенного фрагмента скрипта в верхний регистр;
• +
+
– перевести все символы выделенного фрагмента скрипта в нижний регистр;
• +
+
– закомментировать текущую строку / выделенные строки;
• +
+
– свернуть все блоки кода.
На закладке "Resources" расположены ресурсы скрипта и их локализованные для всех языков системы значения:
Ресурсы используются в случае необходимости локализации используемых в скрипте элементов. Например, если необходимо выдать пользователю сообщение на его языке.
Для каждого из ресурсов будет сгенерировано свойство (найти которые можно на закладке "Generated Text"), значением которого будет текст на языке пользователя.
Закладка ресурсов имеет собственную панель инструментов, которая помимо создания и удаления ресурсов позволяет осуществлять их фильтрацию по Названию в соответствии с введенным в поле "Resource Name" текстом. Для фильтрации следует ввести значение в текстовое поле и нажать кнопку . Сбросить фильтр можно очисткой текстового поля и повторным поиском.
Пример использования ресурсов для локализации генерируемой скриптом формы с таблицей, в которой выводятся результаты его выполнения:
var table = new SlimTable("RecentRequests") { query.ToArray() }; table.TableName = TableName; table.Columns["ID"].Name = IDColumn; table.Columns["Description"].Name = DescriptionColumn; table.Columns["Comments"].Name = CommentsColumn; table.Columns["Amount"].Name = AmountColumn; table.Columns["OfficeName"].Name = OfficeNameColumn; table.Columns["FrcName"].Name = FrcNameColumn; table.Columns["CostItemName"].Name = CostItemNameColumn; |
Ресурсы скрипта можно использовать как в главном, так и во вспомогательных классах:
class MyUserCommand { // локализованное сообщение из ресурсов (в сгенерированной части скрипта) internal static string Message { get { return ResourceManager.GetString("Message"); } }
public void Execute() { // берем сообщение-ресурс из текущего класса throw new UltimaException(Message); } }
class HelperClass { void MyMethod() { // берем ресурс из главного класса, в котором они объявлены throw new UltimaException(MyUserCommand.Message); } } |
На закладке "Generated Text" расположена часть скрипта, генерируемая автоматически.
На закладке "Generated Resx" расположен сгенерированный код файла ресурсов в формате resx – в том виде, в каком его получит компилятор.
На закладке "MEF cache" расположен кэш библиотеки MEF (Managed Extensibility Framework), подробное описание которой можно найти на сайте MSDN
eng/rus.