Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MC-91(Зуйкова) / IBM_SPSS_Statistics_Core_System_Users_Guide.pdf
Скачиваний:
156
Добавлен:
08.02.2015
Размер:
6.76 Mб
Скачать

457

Скрипты

Для подключения работающего экземпляра клиента SPSS Statistics из внешнего клиента COM используйте следующее:

Dim objSpssApp As spsswinLib.Application16

Set objSpssApp=GetObject("","SPSS.Application16")

Если обнаружено несколько работающих клиентов, то GetObject установит соединение с последним запущенным клиентом.

Примечание: Для версий выше 16.0 все еще используется идентификатор Application16.

Объект scriptContext

Определение, когда скрипт выполняется как автоскрипт

С помощью метода GetScriptContext можно определить, когда скрипт выполняется как автоскрипт. Это позволяет так составить код скрипта, чтобы он работал в обоих контекстах (автоскрипт или нет). Этот простой скрипт иллюстрирует такой подход.

Sub Main

If scriptContext Is Nothing Then

MsgBox "I'm not an autoscript"

Else

MsgBox "I'm an autoscript"

End If

End Sub

Когда скрипт не выполняется как автоскрипт, метод GetScriptContext возвратит значение Нет.

Следуя логике if-else данного примера, можно включить код для собственного автоскрипта в предложение else. Любой код, который не нужно выполнять в контексте автоскрипта, следует включать в предложение if. Конечно, можно также включить код, который должен выполняться в обоих контекстах.

Получение значений, необходимых для автоскриптов

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

Метод scriptContext.GetOutputItem возвращает элемент вывода (объект ISpssItem), который запустил автоскрипт.

Метод scriptContext.GetOutputItem возвращает выходной документ (объект ISpssItem), связанный с текущим автоскриптом.

Метод scriptContext.GetOutputItemIndex возвращает индекс в связанном выходном документе элемента вывода, который запустил текущий автоскрипт.

Примечание: Объект, который возвратил scriptContext.GetOutputItem, не активирован. Если для скрипта необходим активированный объект, его нужно активировать, например, с помощью метода ActivateTable. По завершении каких-либо действий нужно вызвать метод Deactivate.