Функциональность инструментальных панелей (Окно|Создать панель инструментов) была существенно расширена. В новой версии языка скриптов можно использовать переменные и формулы. Организация условных переходов и циклов позволяет создавать программы скриптов, выполняющих групповую обработку, как на уровне объектов, так и всех открытых карт. Добавлены функции вызова диалогов для создания интерактивных скриптов.
На сегодняшний день, расширение функциональности дигитала возможно тремя способами:
создание панелей инструментов с пользовательскими кнопками
В одну кнопку можно “зашить” группу команд дигитала, как команд меню, так и внутренних (начинаются на @). Также появились средства управления течением програмы: метки, переходы, запросы - смотрите первый пост в данной теме
программирование с использованием внешнего языка (предпочтительно Делфи), команды отправляются через TCP/IP. Команды, по большей части совпадают с внутренними из способа выше. Этот путь, естественно, позволяет более сложную обработку карты.
вызов внешнего модуля, после помещения неких данных дигиталом в буфер обмена.
Все способы так или иначе описывались на форуме, попробуйте поискать по ключевым словам “TCP”, “программирование”, “скрипт”. Перечитайте разделы FAQ, Новые возможности, Запрос на функцию.
Список внутрішніх команд ( @)у вікні Виберіть команди - це вичерпний список, чи є ще якісь “секретні”?
Де можна знайти їхній опис? Догадуватись можна, але хотілося б якусь легальну інструкцію.
Ок. Я понял, поиском по форуму пользоваться вы не хотите. Структурирование форума оставляет желать лучшего, но хотя бы попробовать поискать можно? Тем более, что вам дают наводку авторитетные старожилы форума.
А для тех, кому формат не столь очевиден мы как раз доделываем краткое описание каждой функции
Оно будет выводиться прямо в окне редактирования скрипта, при наведении на соответствующую функцию в списке. Через пару дней собираемся закончить.
По ходу что происходит врнутри - не видно и неизвестно ни по ходу, ни даже в конце (иногда).
Если ничего не происходит того, чего хотелось бы добиться данным скриптом - что делать
[по сути]
Предлагаю - есть статусная строка - кидать туда сообщения в процессе выполнения скрипта. А потом сделать так, чтобы можно было её (статусную строку) просмотреть в виде выпадающего окошка - окна сообщений, как тут :
Потому что тогда, можно, например, вкинуть туда номера объектов - с которыми происходили какие-то действия и тогда можно их проследить - сделал ли скрипт с ними что-нибудь - или это просто была продолжительная имитация деятельности и я просто сглупила в скрипте
Скрипт позволяет включить лог, в который будет записываться весь ход его выполнения.
Для этого нужно просто добавить в начале скрипта команду OpenLog, а в конце CloseLog.
OpenLog
Начинает протоколирование поступающих команд и их результатов.
CloseLog [Filename]
Завершает протоколирование и записывает протокол в текстовый файл.
(eсли имя не задано, то протокол будет сохранен в файл \Digitals\Digitals Server Log.txt)
При выборе / начале написания команды в редакторе скриптов - справой стороны Диджиталс находит совпадения того, что набрано справа - и если потом кликнуть в левой стороне на эту команду, она должна появиться справа - вместо того, что начинала набирать. Если это была команда меню (Правка | Вставить) - тогда всё ОК, если это внутрення команда (начинается с символа @) - то при выборе её из списка команд слева (щелчок мышью) - она вставляется как новая строка - а старый недобранный кусок команды остаётся в предыдущей строке
Если слева на панели выбрать двойным щелчком мыши команду и вызывается доп. диалог для ввода доп параметров команды (Например, @Run ExeFilename). То если нажать кнопку “отмена” в этом диалоге - диалог закрывается, а сама команда всё равно добавляется в строку скрипта.
Подскажите, пожалуйста - что делать - тулбар сохраняеится только после его закрытия и открытия - а если вдруг произошла перезагрузка программы - то все скрипты/ кнопки (читай - все написанные внутри скрипты) вылетают. Может можно сохранять после каждого изменения в каждой кнопочке - нажал ОК - и сохранилось
@If NOT условие then @Goto %Next
Команда1
Команда2
%Next:
(при выполнении условия выполнятся команды 1 и 2)
@If NOT условие then @Goto %Next
Команда1
Команда2 @Goto %NextBlock
%Next:
Команда 3
Команда 4
%NextBlock
(при выполнении условия выполнятся команды 1 и 2, а иначе команды 3 и 4)
@if $BID1<>$BID11 then @Goto %Skip @if $BID2<>$BID12 then @Goto %Skip @if $BID3<>$BID13 then @Goto %Skip @Map.SelectObject $J @Map.SelectObject $I @Map.Selected.AddToGroup Дубликаты %Skip:
Цепочка команд будет выполнена только при соблюдении всех трех условий. Если хоть одно из условий не выполняется, то исполнение перескочит на метку Skip и обойдет команды.
А еще можно заранее просуммировать для обоих объектов все три параметра и тогда понадобится всего одно сравнение:
$S1=$BID1$BID2$BID3
$S2=$BID11$BID12$BID13 @if $S1<>$S2 then @Goto %Skip