Международная конференция QlikWorld 2020. Присоединяйтесь к нам, чтобы узнать, как получить максимальную пользу от ваших данных. Действуйте быстро. Зарегистрируйтесь сейчас и сэкономьте.

Внутренний преобразователь макросов

Объекты QlikView доступны из QlikView с помощью автоматизации посредством встроенного обработчика скриптов.

Вызов макросов

Макросы, написанные в VBScript или JScript, в документе QlikView могут вызываться несколькими различными способами:

События документа:

  • Макрос можно запустить после открытия документа QlikView.
  • Макрос можно запустить после повторного выполнения скрипта.
  • Макрос можно запустить после команды Сокращение данных.
  • Макрос можно запустить после выбора в поле документа.
  • Макрос можно запустить после изменения значения переменной в документе.

Макросы, которые вызываются из событий документа, создаются на странице Свойства документа: Триггеры.

События листа:

  • Макрос можно запустить после включения листа.
  • Макрос можно запустить после выключения листа.

Макросы, которые вызываются из событий листа, создаются на странице Свойства листа: Триггеры.

События объекта листа:

  • Макрос можно запустить после включения объекта листа.
  • Макрос можно запустить после выключения объекта листа.

Макросы, которые вызываются из событий объекта листа, создаются на странице Свойства листа: Триггеры.

События кнопки:

  • Кнопку можно определить в виде кнопки макроса.

Макрос, который вызывается из события кнопки макроса, создается на странице кнопки Действия.

События поля:

  • Макрос можно запустить при выборе в указанном поле.
  • Макрос можно запустить после совершения выбора в любом поле, которое логически ассоциируется с указанным полем.
  • Макрос можно запустить после блокирования выборок в указанном поле.
  • Макрос можно запустить после разблокирования выборок в указанном поле.

Макросы, которые вызываются из событий поля, создаются на странице Свойства документа: Триггеры.

События переменной:

  • Макрос можно запустить после ввода нового значения в указанную переменную скрипта.
  • Макрос можно запустить, если значение указанной переменной изменяется в результате изменений в других переменных или в логическом состоянии документа.

Макросы, которые вызываются из событий переменной, создаются на странице Свойства документа: Триггеры.

Редактор макросов:

Вне зависимости от способа запуска макросы создаются и редактируются в диалоговом окне Редактор макросов.

Примеры:  

В этом разделе приводятся примеры макроса VBScript, которые могут оказаться полезными.

Using VBScript Input Boxes for User Interaction

rem ** Clear selections, ask for product, **

rem ** select that product, **

rem ** go to sheet "Market", **

rem ** show pivot table "Sales" **

Sub ChooseValue

Set q = ActiveDocument

q.ClearAll (false)

Set f = q.Fields("Model Name")

x = inputbox ("Enter product")

f.Select(x)

set s = q.Sheets("Market")

s.Activate

s.SheetObjects("Sales").Activate

end sub

Особые библиотечные функции для JScript

Там, где стандартные функции VBScript InputBox и MsgBox могут использоваться свободно в макросе VBScript, при использовании JScript прямой эквивалент недоступен. Для этих целей добавлена особая библиотека qvlib. Функции показаны в нижеприведенных примерах.

// JScript

function Test()

{

personName = qvlib.InputBox("What is you name?")

msg = "Hello " + personName + " !"

qvlib.MsgBox(msg)

}

Функции qvlib на самом деле работают и в макросах VBScript, как показано в следующих примерах, но в этом случае можно также использовать универсальные функции VBScript InputBox и MsgBox.

rem VBScript

sub TestModule

name = qvlib.InputBox("What is your name?")

msg = "Hello "

msg = msg + name + " !"

qvlib.MsgBox(msg)

end sub