Utilisation de zones de liste déroulante à des fins de filtrage

Dans les tableaux de bord, il est courant d'utiliser des zones de liste déroulante dans un rapport pour contrôler les valeurs affichées dans un ou plusieurs autres rapports. Les valeurs sélectionnées dans les zones de liste déroulante sont transmises aux variables, qui sont utilisées en tant que paramètres de rapport. Le rapport est placé dans un widget du tableau de bord. Les autres rapports qui ont les mêmes paramètres ou bien qui renvoient aux mêmes recherches sont automatiquement liés. Par exemple, la sélection d'une date depuis une zone de liste déroulante met à jour tous les widgets qui contiennent un paramètre de date.

Si les zones de liste déroulante sont utilisées de cette manière, il est important de veiller à ce que les zones de liste déroulante et les valeurs soient synchronisées. Par exemple, les utilisateurs ne doivent pas avoir la possibilité de sélectionner une date dans une zone de liste déroulante et consulter les valeurs d'une date différente dans les rapports liés.

Pour assurer la synchronisation des zones de liste déroulante et des valeurs, utiliser les variables transmises par les zones de liste déroulante comme variables d'entrée et de sortie.

L'utilisation de zones de liste déroulante à des fins de filtrage n'est pas adaptée à la création de rapports dynamiques, qui ne dépendent pas d'une source de données spécifique. Préférer l'utilisation de variables XML.

Exemple

Cet exemple illustre la façon dont les zones de liste déroulante et les valeurs peuvent se désynchroniser :

Un rapport contient une zone de liste déroulante comportant plusieurs dates. Par défaut, la date est Toutes les années.

La zone de liste déroulante alimente une variable, mais ne comporte aucune variable d'entrée. La variable est utilisée en tant que paramètre du rapport.

Le rapport est placé sur le tableau de bord avec les autres rapports qui lui sont liés.

L'utilisateur sélectionne 2004 dans la zone de liste déroulante. Cette opération transmet 2004 à la variable.

Les widgets liés au tableau de bord se mettent automatiquement à jour pour répercuter 2004.

L'utilisateur enregistre le tableau de bord.

Par défaut, les valeurs des paramètres sont enregistrées avec le tableau de bord. La valeur actuelle du paramètre (2004) est donc enregistrée.

L'utilisateur ferme sa session puis actualise le tableau de bord.

La date attendue est 2004 ; or, la zone de liste déroulante est revenue à Toutes les années.

Ce problème survient parce que, même si la valeur de la variable et du paramètre est enregistrée, le tableau de bord ne peut pas la transmettre à la zone de liste déroulante car cette dernière ne possède aucune variable d'entrée.

En revanche, les valeurs des autres widgets sont également stockées avec le tableau de bord et s'affichent lors de l'actualisation du tableau de bord. Ainsi, lorsque l'utilisateur rouvre le tableau de bord, la zone de liste déroulante revient à Toutes les années, mais les autres widgets continuent d'afficher 2004.

Il existe deux solutions à ce problème. La première peut être mise en œuvre dans Application Studio ; la seconde, dans le tableau de bord. Dans Application Studio, la solution consiste à utiliser la même variable en sortie et en entrée.

Dans un tableau de bord, la seule solution consiste à désactiver le stockage de paramètres et de faire de la zone de liste déroulante le « widget principal ». Une fois le tableau de bord actualisé, la zone de liste déroulante pilote les autres widgets. Cette solution n'empêche pas la zone de liste déroulante de revenir à Toutes les années, mais elle garantit que les valeurs des rapports liés sont également conformes à Toutes les années.