Interpréteur de macros interne
Les objets QlikView sont accessibles par automatisation dans QlikView au moyen d'un moteur de script incorporé.
Appeler des macros
Il est possible d'appeler les macros écrites en VBScript ou en JScript dans un document QlikView de différentes façons :
Événements de document :
- Une macro peut être exécutée après l'ouverture d'un document QlikView.
- Une macro peut être exécutée après une réexécution du script.
- Une macro peut être exécutée après la commande Réduire les données.
- Une macro peut être exécutée après une sélection dans n'importe quel champ d'un document.
- Une macro peut être exécutée quand la valeur d'une variable change dans un document.
Les macros appelées à partir d'événements de document sont créées à la page Propriétés du document : Déclencheurs.
Événements de la feuille :
- Une macro peut être exécutée après l'activation d'une feuille.
- Une macro peut être exécutée après la désactivation d'une feuille.
Les macros appelées à partir d'événements de feuille sont créées à la page Propriétés de la feuille : Déclencheurs.
Événements d'objet de la feuille :
- Une macro peut être exécutée après l'activation d'un objet de la feuille.
- Une macro peut être exécutée après la désactivation d'un objet de la feuille.
Les macros appelées à partir d'événements d'objet de feuille sont créées à la page Propriétés de la feuille : Déclencheurs.
Événements de bouton :
- Vous pouvez définir un bouton comme bouton de macro.
Les macros appelées à partir d'événements de bouton de macro sont créées à la page Actions.
Événements de champ :
- Une macro peut être exécutée lorsqu'une sélection a été effectuée dans un champ donné.
- Une macro peut être exécutée quand une sélection est effectuée dans tout champ associé logiquement au champ spécifié.
- Une macro peut être exécutée quand des sélections sont verrouillées dans un champ donné.
- Une macro peut être exécutée quand des sélections sont déverrouillées dans un champ donné.
Les macros appelées à partir d'événements de champ sont créées à la page Propriétés du document : Déclencheurs.
Événements de variable :
- Une macro peut être exécutée quand de nouvelles valeurs sont directement saisies dans des variables de script données.
- Une macro peut être exécutée quand la valeur de la variable spécifiée change du fait de la modification d'autres variables ou de l'état logique du document.
Les macros appelées à partir d'événements de variable sont créées à la page Propriétés du document : Déclencheurs.
Éditeur de macro :
Quelle que soit la façon dont elles sont déclenchées, les macros sont créées et modifiées dans la boîte de dialogue Éditer le module.
Cette section fournit un exemple de macro VBScript qui peut être très 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
Fonctions de bibliothèque spéciales pour JScript
Alors qu'on peut utiliser librement les fonctions VBScript standard InputBox et MsgBox dans les macros VBScript, aucun équivalent direct n'est disponible lorsqu'on utilise JScript. Une bibliothèque spéciale, qvlib, a donc été ajoutée pour ces opérations. Les fonctions sont illustrées dans l'exemple ci-dessous.
// JScript
function Test()
{
personName = qvlib.InputBox("What is you name?")
msg = "Hello " + personName + " !"
qvlib.MsgBox(msg)
}
Les fonctions qvlib marchent aussi dans les macros VBScript comme le montre l'exemple ci-dessous, mais on peut alors utiliser les fonctions VBScript génériques InputBox et MsgBox.
rem VBScript
sub TestModule
name = qvlib.InputBox("What is your name?")
msg = "Hello "
msg = msg + name + " !"
qvlib.MsgBox(msg)
end sub