Interne Macro Interpreter
QlikView-objecten zijn toegankelijk via automatisering vanuit QlikView door middel van de ingebouwde script-engine.
Macro's uitvoeren
Macro's die in VBScript of JScript zijn geschreven, kunnen in een QlikView-document op verschillende manieren worden aangeroepen:
Documentgebeurtenissen:
- Een macro kan worden uitgevoerd na het openen van een QlikView-document.
- Een macro kan worden uitgevoerd na opnieuw uitvoeren van het script.
- Een macro kan worden uitgevoerd na de opdracht Gegevens reduceren.
- Een macro kan worden uitgevoerd na een selectie in een willekeurig veld in een document.
- Een macro kan worden uitgevoerd wanneer de waarde van een variabele in een document verandert.
Macro's die worden aangeroepen vanuit documentgebeurtenissen worden gemaakt op de pagina Documenteigenschappen: Reactieveroorzakers.
Werkbladgebeurtenissen:
- Een macro kan worden uitgevoerd na het activeren van een werkblad.
- Een macro kan worden uitgevoerd bij het deactiveren van een werkblad.
Macro's die worden aangeroepen vanuit werkbladgebeurtenissen worden gemaakt op de pagina Werkbladeigenschappen: Reactieveroorzakers.
Objectgebeurtenissen:
- Een macro kan worden uitgevoerd na het activeren van een werkbladobject.
- Een macro kan worden uitgevoerd bij het deactiveren van een werkbladobject.
Macro's die worden aangeroepen vanuit werkbladobjectgebeurtenissen worden gemaakt op de pagina Werkbladeigenschappen: Reactieveroorzakers.
Knopgebeurtenissen:
- Een knop kan worden gedefinieerd als een macroknop.
Een macro die wordt aangeroepen vanuit een macroknopgebeurtenis, wordt gemaakt op de pagina Acties van de knop.
Veldgebeurtenissen:
- Een macro kan worden uitgevoerd na selecteren in een opgegeven veld.
- Een macro kan worden uitgevoerd na een selectie in een veld dat logisch is verbonden met een opgegeven veld.
- Een macro kan worden uitgevoerd bij de vergrendeling van selecties in een opgegeven veld.
- Een macro kan worden uitgevoerd bij de ontgrendeling van selecties in een opgegeven veld.
Macro's die worden aangeroepen vanuit veldgebeurtenissen worden gemaakt op de pagina Documenteigenschappen: Reactieveroorzakers.
Variabele-gebeurtenissen:
- Een macro kan worden uitgevoerd bij het rechtstreeks invoeren van nieuwe waarden in opgegeven scriptvariabelen.
- Een macro kan worden uitgevoerd bij verandering van de waarde van de opgegeven variabele als gevolg van wijzigingen in andere variabelen of de logische status van het document.
Macro's die worden aangeroepen vanuit variabele-gebeurtenissen worden gemaakt op de pagina Documenteigenschappen: Reactieveroorzakers.
Macro-editor:
Ongeacht hoe ze worden geactiveerd, macro's worden gemaakt en bewerkt in het dialoogvenster Module bewerken.
Voorbeelden:
In deze sectie krijgt u een voorbeeld van een VBScript-macro dat erg nuttig kan zijn.
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
Speciale bibliotheekfuncties voor JScript
De standaard VBScript-functies InputBox en MsgBox kunnen zonder belemmeringen worden gebruikt in VBScript-macro's, maar in JScript zijn geen soortgelijke functies beschikbaar. Daarom is er een speciale bibliotheek, qvlib, voor dit soort functies toegevoegd. Een voorbeeld van deze functies ziet u hieronder.
// JScript
function Test()
{
personName = qvlib.InputBox("What is you name?")
msg = "Hello " + personName + " !"
qvlib.MsgBox(msg)
}
De qvlib-functies functioneren ook in VBScript-macro's, zoals weergegeven in het onderstaande voorbeeld, maar in die macro's kunt u net zo goed gebruikmaken van de algemene VBScript-functies InputBox en MsgBox.
rem VBScript
sub TestModule
name = qvlib.InputBox("What is your name?")
msg = "Hello "
msg = msg + name + " !"
qvlib.MsgBox(msg)
end sub