RUS  ENG 

Вопрос по макросу

Страницы: 1
RSS
Вопрос по макросу, пользовательское имя слоя на сервере
 
ZuluTools.GetLayerUserName(LayerPath) возвращает пустую строку, если в LayerPath строка типа "zulu://MyServer:6473/Termo/teplosam.zl"

А можно ли в макросе на VBScript узнать пользовательское название слоя на сервере с помощью какого-либо иного кода?

Макрос абсолютно бесполезен, если неизвестно пользовательское название слоя.

Задача: копирование слоя из одного каталога на сервере, в другой каталог на сервере. Пользовательское название слоя не должно изменяться.
 
А. Ну. Извиняюсь. Это самое:

Версия 8.0.0.6912u
Дата сборки 03.12.2018
 
Уточняю:

Метод GetLayerUserName для локально размещенного слоя *.b00 возвращает строку с пользовательским названием слоя.
Для опубликованного на сервере слоя *.zl - пустую строку.

Проверял только на одном сервере, других не знаю. Предположил, что он везде так работает.
 
Цитата
Take-oFF написал:
ZuluTools.GetLayerUserName(LayerPath) возвращает пустую строку, если в LayerPath строка типа "zulu://MyServer:6473/Termo/teplosam.zl"
Поправили. Обновите версию. Должно заработать
 
Спасибо, обновил, заработало!
Изменено: Take-oFF - 07.12.2018 10:58:36
 
Можно еще вопрос?


1) Если явно не задавать источник БД методом SetDataSource, какой источник данных будет у вновь скопированного слоя?

(предполагаю, такой же, как у исходного слоя)

2) Если явно задать источник через SetDataSource, будет ли этот источник применяться в операции копирования при следующем запуске макроса?

(предполагаю, что не будет, до тех пор, пока не выполнится метод SetDataSource)
 
SetDataSource это свойство конкретного экземпляра объекта ZuluTools. Пока он жив, то что задано для SetDataSource, тоже сохраняется.
По умолчанию при создании объекта берет то, что задано в Сервис\Параметры\База данных\Использовать СУБД по умолчанию.
 
Спасибо, понятно!

Есть у меня еще ощущение, что метод ZuluTools.GetFileName(nIndex) не совсем корректно работает, в случае, если

при вызове ZuluTools.ShowOpen() с множественным выбором слоев пользователем было выбрано несколько слоев.
И
выбор слоев происходит на сервере

А сама некорректность заключается в том, что возвращаемая GetFileName() строка содержит обратный слэш "\" перед именем файла, например:
"zulu://MyServer:6473/Termo\teplosam.zl"
Это обстоятельство вызывает удивление у следующего метода LayerCopyEx() который не может найти слой по такой строке и стыдливо возвращает висючее False вместо гордо стоячего True.
 
Поправили. Обновите версию. Должно заработать
 
Спасибо. Та я добавил в свой макрос инструкцию, которая меняет неправильный символ, если он есть в строке и если он неправильный. Обновление централизованное, будет позже, но код макроса менять необязательно.
Изменено: Take-oFF - 10.12.2018 09:17:14
 
Версия обновилась до 8.0.0.6928. Убрал из макроса инструкцию замены символа - всё работает, спасибо.
Страницы: 1