Vai al contenuto principale

Interprete interno di macro

IN QUESTA PAGINA

Interprete interno di macro

Gli oggetti QlikView sono accessibili mediante automazione dall'interno di QlikView tramite il motore di script incorporato.

Richiamo delle macro

Le macro scritte in VBScript o JScript all'interno di un documento QlikView possono essere richiamate nei seguenti modi:

Eventi di documento:

  • Una macro può essere eseguita dopo aver aperto un documento QlikView.
  • Una macro può essere eseguita dopo la riesecuzione dello script.
  • Una macro può essere eseguita dopo il comando Riduci i dati.
  • Una macro può essere eseguita dopo la selezione di un qualsiasi campo nel documento.
  • Una macro può essere eseguita quando il valore di una qualsiasi variabile del documento cambia.

Le macro richiamate dagli eventi di documento vengono create dalla pagina Proprietà documento: Eventi di avvio.

Eventi di foglio:

  • Una macro può essere eseguita dopo l'attivazione di un foglio.
  • Una macro può essere eseguita quando un foglio viene disattivato.

Le macro richiamate dagli eventi di documento vengono create dalla pagina Proprietà foglio: Eventi di avvio.

Eventi di oggetti di lavoro:

  • Una macro può essere eseguita dopo che un oggetto di lavoro viene attivato.
  • Una macro può essere eseguita quando viene disattivato un oggetto di lavoro.

Le macro richiamate dagli eventi di oggetti di lavoro vengono create dalla pagina Proprietà foglio: Eventi di avvio.

Eventi di pulsanti:

  • Un pulsante può essere definito come un pulsante macro.

Una macro richiamata da un evento del pulsante macro viene creata dalla pagina Azioni relativa al pulsante.

Eventi di campo:

  • Una macro può essere eseguita dopo che è stata effettuata una selezione in un campo specificato.
  • Una macro può essere eseguita quando si esegue una selezione in un qualsiasi campo logicamente associato a un campo specifico.
  • Una macro può essere eseguita quando si bloccano le selezioni in un campo specifico.
  • Una macro può essere eseguita quando vengono sbloccate le selezioni in un campo specifico.

Le macro richiamate dagli eventi di campo vengono create dalla pagina Proprietà documento: Eventi di avvio.

Eventi di variabili:

  • Una macro può essere eseguita quando nuovi valori vengono immessi direttamente dalle variabili di script specificate.
  • Una macro può essere eseguita quando il valore della variabile associata viene modificato dal cambiamento in altre variabili o nello stato logico del documento.

Le macro richiamate dagli eventi di variabile vengono create dalla pagina Proprietà documento: Eventi di avvio.

Editor di macro:

Le macro vengono create e modificate nella finestra di dialogo Modifica modulo indipendentemente dal loro metodo di attivazione.

Examples:  

In questa sezione viene fornito un utile esempio di una macro VBScript che può risultare utile.

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

Funzioni di librerie speciali per JScript

Mentre le funzioni VBScript standard e le funzioni InputBox e MsgBox possono essere utilizzate liberamente nelle macro VBScript, nessuna funzione direttamente corrispondente è disponibile quando si utilizza JScript. A questo scopo è stata aggiunta una libreria speciale qvlib che consente tali azioni. Le funzioni sono mostrate nell'esempio seguente.

// JScript

function Test()

{

personName = qvlib.InputBox("What is you name?")

msg = "Hello " + personName + " !"

qvlib.MsgBox(msg)

}

Le funzioni qvlib sono effettivamente utilizzabili anche nelle macro VBScript, come mostrato nel seguente esempio, ma in questo caso è possibile utilizzare anche le funzioni VBScript generiche InputBox eMsgBox.

rem VBScript

sub TestModule

name = qvlib.InputBox("What is your name?")

msg = "Hello "

msg = msg + name + " !"

qvlib.MsgBox(msg)

end sub