Intern makrotolk
QlikView-objekt är åtkomliga via Automation inifrån QlikView genom den inbyggda skriptmotorn.
Anropa makron
Makron som skrivs i VBScript eller JScript inuti ett QlikView-dokument kan anropas på flera sätt:
Dokumenthändelser:
- Ett makro kan köras efter att ett QlikView-dokument öppnats.
- Ett makro kan köras när skriptet har laddats om.
- Ett makro kan köras efter kommandot Reducera data.
- Ett makro kan köras efter val i valfritt fält i dokumentet.
- Ett makro kan köras när ett variabelvärde ändras i dokumentet.
Makron som anropas från dokumenthändelser skapas från sidan Dokumentegenskaper: Triggers.
Arkhändelser:
- Ett makro kan köras efter att ett ark aktiverats.
- Ett makro kan köras när ett ark lämnas.
Makron som anropas från arkhändelser skapas från sidan Arkegenskaper: Triggers.
Arkobjekthändelser:
- Ett makro kan köras efter att ett arkobjekt aktiverats.
- Ett makro kan köras när ett arkobjekt lämnas.
Makron som anropas från arkobjekt skapas från sidan Arkegenskaper: Triggers.
Knapphändelser:
- En knapp kan definieras som en makroknapp.
Makron som anropas från makroknapphändelser skapas från knappens Aktiviteter-sida.
Fälthändelser:
- Ett makro kan köras när ett val gjorts i ett specifikt fält.
- Ett makro kan köras när ett val görs i fält som är logiskt kopplat till ett specifikt fält.
- Ett makro kan köras när val låses i ett specifikt fält.
- Ett makro kan köras när val låses upp i ett specifikt fält.
Makron som anropas från fälthändelser skapas från sidan Dokumentegenskaper: Triggers.
Variabelhändelser:
- Ett makro kan köras när nya värden anges i specifika variabler.
- Makrot kan köras när den valda variabelns värde ändras p.g.a. förändringar i andra variabler eller dokumentets logiska status.
Makron som anropas från variabelhändelser skapas från sidan Dokumentegenskaper: Triggers.
Makroredigerare:
Oberoende av hur de utlöses skapas och redigeras makron i dialogen Redigera makron.
Exempel:
I detta avsnitt ges ett exempel på ett VBScript-makro som kan vara användbart.
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
Speciella biblioteksfunktioner för JScript
Funktionerna InputBox och MsgBox i standard-VBScript kan användas fritt i VBScript-makron. Det finns inte någon direkt motsvarighet till dessa funktioner i JScript. Därför har ett särskilt qvlib-bibliotek skapats. Funktionerna visas i exemplet nedan.
// JScript
function Test()
{
personName = qvlib.InputBox("What is you name?")
msg = "Hello " + personName + " !"
qvlib.MsgBox(msg)
}
I exemplet nedan visas att qvlib-funktionerna fungerar även i VBScript-makron, men i detta fall går det lika bra att använda de generiska VBScript-funktionerna InputBox och MsgBox.
rem VBScript
sub TestModule
name = qvlib.InputBox("What is your name?")
msg = "Hello "
msg = msg + name + " !"
qvlib.MsgBox(msg)
end sub