GetSelection method (Layer)

Возвращает ключи выделенных объектов слоя, записанных в файл.

Применяется к:

Layer

Синтаксис:

Visual Basic:

Function GetSelection() As String

Описание:

Ключи выделенных объектов могут быть использованы для выполнения пользователем запроса к базе данных.

Метод создает временный ASCII файл, содержащий ключи объектов данного слоя (каждый ключ на своей строке), которые входят в группу выделенных объектов, и возвращает имя этого файла.

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

В случае неудачи возникает исключение с одним из следующих кодов:

Код

Описание

262

Ошибка создания/записи файла.

Пример:

Visual Basic:

Sub Layer_GetSelection
'Берем активный слой карты
Set L = Zulu.ActiveMapDoc.Layers.Active
'Выделяем три объекта
L.Selection.Clear
L.Selection.AddElem 2
L.Selection.AddElem 20
L.Selection.AddElem 26
'Получаем файл с ключами и читаем его
Name = L.GetSelection
Set FSO = CreateObject("Scripting.FileSystemObject")
Set F = FSO.OpenTextFile(Name, 1)
S = "Файл: " & Name
Do While Not F.AtEndOfStream
  S = S & vbCrLf & "ключ " & F.ReadLine
Loop
F.Close
'Файл удаляем сами
FSO.DeleteFile Name
MsgBox S
End Sub

Python:

import zulu, io, os

def Macro_Layer_GetSelection():
    # Берем активный слой карты
    L = zulu.App.ActiveMapDoc.Layers.Active
    # Выделяем три объекта
    L.Selection.Clear()
    for key in (2, 20, 26):
        L.Selection.AddElem(key)
    # Получаем файл с ключами и читаем его
    name = L.GetSelection()
    print("Файл:", name)
    for line in io.open(name, encoding="cp1251"):
        print("ключ", line.strip())
    # Файл удаляем сами
    os.remove(name)