Внутренний преобразователь макросов
Объекты 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