Уменьшает счетчик блокировки изменения серверного слоя другими пользователями на единицу, если ранее счетчик был увеличен вызовом метода LockForRead.
Visual Basic:
Function UnlockForRead() As Long
Метод возвращает текущее значение счетчика блокировки. Слой будет доступен для редактирования другими пользователями только тогда, когда метод вернет 0.
Метод вызывается столько же раз, сколько был вызван LockForRead: пока счетчик не дошел до нуля, блокировка держится.
На локальном слое (IsRemote = False) счетчик не ведется: LockForRead и первый, и второй раз возвращает 1, а UnlockForRead каждый раз возвращает 0. Лишний вызов, сделанный без блокировки, ошибки не вызывает и возвращает тот же 0.
Пример читает данные слоя под блокировкой и снимает ее.
Visual Basic:
Sub Layer_UnlockForRead 'Берем активный слой карты Set L = Zulu.ActiveMapDoc.Layers.Active 'Закрываем слой от изменений другими пользователями n = L.LockForRead(0, 0) 'Под блокировкой читаем данные слоя Cnt = L.ElementKeys.Count 'Снимаем блокировку столько раз, сколько ставили m = L.UnlockForRead S = "Счетчик после блокировки: " & n S = S & vbCrLf & "объектов в слое: " & Cnt S = S & vbCrLf & "счетчик после снятия: " & m MsgBox S End SubPython:
import zulu def Macro_Layer_UnlockForRead(): # Берем активный слой карты L = zulu.App.ActiveMapDoc.Layers.Active # Закрываем слой от изменений другими пользователями n = L.LockForRead(0, 0) # Под блокировкой читаем данные слоя cnt = L.ElementKeys.Count # Снимаем блокировку столько раз, сколько ставили m = L.UnlockForRead() print("Счетчик после блокировки:", n) print("объектов в слое:", cnt) print("счетчик после снятия:", m)