Interner Makro-Interpreter
Sie können einzelne QlikView-Objekte in QlikView auch über die integrierte Makrosprache steuern.
Makros starten
Makros, die als VBScript oder JScript innerhalb eines QlikView-Dokuments erstellt wurden, können durch verschiedene Auslöser gestartet werden:
Auslöser auf Dokumentebene:
- Makros können beim Öffnen eines QlikView-Dokuments gestartet werden.
- Makros können bei der Ausführung des Skripts gestartet werden.
- Makros können nach dem Befehl Daten eingrenzen gestartet werden.
- Makros können bei jeder Auswahlaktion in einem Dokumentfeld gestartet werden.
- Makros können gestartet werden, wenn der Wert einer Variablen im Dokument geändert wird.
Durch Auslöser auf Dokumentebene gestartete Makros werden auf der Seite Dokumenteigenschaften: Auslöser erstellt.
Auslöser auf Arbeitsblattebene:
- Makros können beim Aktivieren eines Arbeitsblatts gestartet werden.
- Makros können beim Deaktivieren eines Arbeitsblatts gestartet werden.
Durch Auslöser auf Arbeitsblattebene gestartete Makros werden auf der Seite Eigenschaften des Arbeitsblatts: Auslöser erstellt.
Auslöser auf Objektebene:
- Makros können beim Aktivieren eines Objekts gestartet werden.
- Makros können beim Deaktivieren eines Objekts gestartet werden.
Durch Auslöser auf Arbeitsblatt-Objektebene gestartete Makros werden auf der Seite Eigenschaften des Arbeitsblatts: Auslöser erstellt.
Makro-Start per Schaltfläche:
- Schaltflächen können als Makro-Schaltfläche definiert werden.
Ein über eine Schaltfläche gestarteter Makro wird auf der Seite Aktionen der Schaltfläche erstellt.
Auslöser auf Feldebene:
- Makros können bei Auswahl von Werten in einem bestimmten Feld gestartet werden.
- Makros können bei Aktualisierungen der Auswahl in einem bestimmten Feld gestartet werden.
- Makros können bei Sperrung der Auswahl in einem bestimmten Feld gestartet werden.
- Makros können bei Freigabe einer gesperrten Auswahl in einem bestimmten Feld gestartet werden.
Durch Auslöser auf Feldebene gestartete Makros werden auf der Seite Dokumenteigenschaften: Auslöser erstellt.
Auslöser auf Variablenebene:
- Makros können bei Eingabe eines neuen Werts für bestimmte Skriptvariablen gestartet werden.
- Der Makro wird gestartet, wenn sich der Wert der markierten Variablen aufgrund von Änderungen anderer Variablen oder des logischen Status des Dokuments ändert.
Durch Auslöser auf Variablenereignisebene gestartete Makros werden auf der Seite Dokumenteigenschaften: Auslöser erstellt.
Makro-Editor
Unabhängig davon, wie sie ausgelöst werden, werden Makros im Dialog Modul bearbeiten erstellt und bearbeitet.
Beispiele:
Wir stellen Ihnen hier ein Beispiel für VBScript-Makros vor.
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
Library-Funktionen für JScript
Die VBScript-Standardfunktionen InputBox und MsgBox können direkt in VBScript-Makros verwendet werden. Für JScript gibt es allerdings kein passendes Pendant. Für diesen Zweck wurden die Library-Funktionen qvlib entwickelt. Das nachfolgende Beispiel soll Ihnen die Funktionsweise verdeutlichen:
// JScript
function Test()
{
personName = qvlib.InputBox("What is you name?")
msg = "Hello " + personName + " !"
qvlib.MsgBox(msg)
}
Die qvlib-Funktionen können auch in VBScript-Makros verwendet werden, wie das nachfolgende Beispiel zeigt. In diesem Fall können Sie aber auch die generischen VBScript-Funktionen InputBox und MsgBox verwenden.
rem VBScript
sub TestModule
name = qvlib.InputBox("What is your name?")
msg = "Hello "
msg = msg + name + " !"
qvlib.MsgBox(msg)
end sub