Макросы на VBScript & JScript в QlikView. Как написать и запустить (Run Macro)?

VBScript для QlikView – что это?

По своей сути, макрос – это программа на VBScript или JScript, с помощью которой можно получить доступ к любым объектам приложения QlikView (Ниже будет описана объектная модель QlikView) и выполнить над ними те или иные действия. Плюс, можно написать какие-то пользовательские функции (нестандартные) для расширения функционала, если такое потребуется.

Среди сообщества специалистов QlikView есть рекомендация избегать использования макросов в приложениях QlikView. Но в некоторых случаях требуется написать один-два макроса, поэтому эта статья должна быть среди остальных на случай острой необходимости 🙂 В этой статье я затрону только язык VBScript.


Что можно делать с помощью макросов

В статье https://luciancotea.wordpress.com/2013/07/18/qlikview-macros-useful-collection/ приведена коллекция полезных макросов, которые можно использовать в документе QlikView. Рассмотрим перечень действий, которые можно осуществить при помощи кода на VBScript:

  • Запуск внешней программы
  • Экспортировать объект в Excel
  • Экспортировать объект в JPG
  • Экспортировать объект из скрытого листа в JPG
  • Сохранить документ и выйти из QlikView
  • Создать клон группового измерения
  • Открыть документ с выбором текущего месяца
  • Прочитать и записать переменную
  • Открыть приложение QlikView, перезагрузить, нажать кнопку и закрыть его (поместите код в файл .vbs)
  • Удалить файл
  • Получение информации о отчетах
  • Отправить почту с помощью Google Mail
  • Autozoom – подогнать размер листа под окно
  • Импортировать и экспортировать все переменные из файла Excel
  • Добавить условное выражение в диаграмму
  • Изменить свойство layout для всего объекта за один шаг (AllowMoveSize = False)
  • Сбросить INPUT FIELD
  • Динамическое обновление (вставка значений из inputboxes в таблицу)

Объектная модель QlikView

Объектная модель QlikView состоит из классов с соответствующими методами. С помощью методов можно выполнять те или иные действия. Действия над объектами в QlikView выполняются в макросах, о которых будет подробно написано ниже.
Объектная модель QlikView для написания макросов на VBScript

Существует специальный API Guide QlikView, в котором подробно расписан каждый класс и метод. Я пройдусь кратко по концепции объектной модели. Суть объектной модели заключается в том, чтобы добраться до отдельного поля или диаграммы документа, необходимо знать в какой документ, на каком листе располагается объект.
Объектная модель QlikView для написания макросов на VBScript

Список объектов:
Объектная модель QlikView для написания макросов на VBScript

Как открыть редактор макросов в QlikView?

Как открыть редактор макросов в QlikView

Ссылки на документацию

QlikView APIs and SDKs – https://help.qlik.com/en-US/qlikview-developer/12.0/Content/APIsAndSDKs.htm

API Guide QlikView 10 (QlikView COM API) – zip файл с руководством

QlikView JavaScript API

Основы VBScript

Процедура Sub() и Функция Function()

VBScript является подмножеством языка Microsoft Visual Basic for Applications (сокращенно – VBA), поставляемого с Microsoft Office и Visual Basic.

В VBScript предусмотрено два типа процедур: подпроцедуры (subroutines) – ключевое слово Sub, и функции (functions) – обозначаются ключевым словом Function. В обоих случаях процедуры – это блок программного кода.

Рассмотрим подпроцедуру (она не возвращает значение, все действия выполняются в теле подпроцедуры). Подпроцедура может быть с параметром, а может быть без параметра. Описание подпроцедуры выглядит так:

Вызов процедуры в коде выглядит как

Функции объявляются очень похоже. Единственное отличие – они должны возвращать какое-либо значение. Функция может быть с параметром, а может быть без параметра. Приведем пример функции с параметром (параметр задается в скобках):

Обратить внимание на то, что определение процедуры или функции должно заканчиваться ключевыми словами End Sub или End Function.

SET и DIM

Dim используется для сохранения в переменную какого-то значения
Пример:

Set используется для сохранения объекта
Пример:

Переход от класса к классу и вызов метода

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

В указанном примере мы переходим от активного документа к полю с названием “Поле 1” и дальше вызываем метод GetPossibleValues. Везде используется точка. Метод вызывается без скобок.

Security

Для того, чтобы иметь возможность обращаться к свойствам листа, необходимо в Sheet Properties зайти на вкладку Security и выбрать пункт “Access Sheet Object Properties”.

Цикл For

Циклы используются в ситуациях, когда нам нужно выполнить какое-либо действие несколько раз. Первая ситуация – мы знаем, сколько раз нужно выполнить какое-либо действие, в этом случае используется конструкция For…Next. Для безусловного выхода из конструкции For…Next используется команда Exit For.

Комментарий VBScript

Для комментариев используется одиночная кавычка ‘ или rem.

Условие If … Then … Else … End If

Прерывание цикла

Вы можете прервать цикл, не дожидаясь выполнения условия завершения цикла. Для принудительного выхода из цикла используется оператор Exit Do.

WScript

Программа на языке VBScript сама по себе является объектом WScript сервера сценариев Windows Script Host, (т. е. после запуска программы этот объект уже существует, не нужно давать команду о его создании). Объект WScript – корневой в объектной иерархии Windows Script Host, в которую входят три COM-библиотеки (COM-Component Object Model): WshController, WshNetwork и WshShell.

Объект WScript имеет следующие методы:

  • Sleep
  • Quit
  • Echo
  • CreateObject
  • ConnectObject
  • DisconnectObject
  • GetObject

И свойства:

  • Arguments
  • BuildVersion
  • FullName
  • Interactive
  • Name
  • Path
  • ScriptFullName
  • ScriptName
  • Timeout
  • Version

Объект Wscript имеет подчиненный объект Shell, с методами:

  • AppActivate
  • CreateShortcut
  • Exec
  • ExpandEnvironmentStrings
  • LogEvent
  • Popup
  • Run и пр.

И свойствами:

  • CurrentDirectory
  • Environment
  • SpecialFolder

Что такое JScript и как его использовать в QlikView?

Язык JScript не требует дополнительной установки и входит в состав сервера Windows Script Host, который в свою очередь, является частью операционной системы Windows. Стоит обратить внимание, что хотя JS скрипты и являются разработкой компании Microsoft, но они практически идентичен сценариям языка JavaScript, так что те, кто уже знакомы с JavaScript, с легкостью освоят JScript.
С помощью JScript можно писать различные функции обработки данных (например можно написать функцию для использования рекурсии для обработки строки и использовать ее в скрипте загрузки QlikView), либо можно получать доступ к объектам документа QlikView, который использует объекты Windows (см. объектную модель QlikView).

Синтаксис JScript

Подробнее с языком JScript можно ознакомиться на сайте Программирование на JScript (уроки) >>>

Видео обучение по JScript для написания макросов в QlikView

Еще есть видео уроки по JScript, их можно использовать для обучения написания макросов для приложений QlikView:

Пример макроса на JScript в QlikView

Макрос на JScript:

Пример использования:

Видео-примеры написания макросов в QlikView

Макросы на VBScript & JScript в QlikView


Комментарии:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *