QlikWorld 2020 Global Conference. Join us to discover how to get the most from your data. Act fast. Register now and save.

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.

Examples:  

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