Gå till huvudinnehåll

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å följande 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.

Examples:  

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