Accéder au contenu principal Passer au contenu complémentaire

CalcDim - fonction de graphique

Lorsqu'elle est utilisée dans une expression dimension, la fonction CalcDim() remplace l'interprétation automatique du moteur quant au mode gestion en interne de l'expression. Spécifiquement, la fonction empêche la création d'un nouveau champ interne dans le modèle de données. Au lieu de cela, les sélections effectuées dans l'application sont traitées comme des sélections dans les champs applicables du modèle de données d'origine.

Cette fonction ne peut pas être utilisée dans lescript de chargement. En outre, une bonne pratique, pour préserver les performances du système, consiste à charger les champs utilisés dans la dimension calculée sous forme de champs logiques via le script de chargement lorsque cela est possible. CalcDim() offre un moyen de contrôler le comportement du moteur dans les scénarios dans lesquels il n'est pas possible de charger le champ calculé à partir du script.

Dans Qlik Sense, l'expression de dimension est réalisée par défaut comme un champ à la volée, c'est-à-dire comme un champ réel, apparent dans la barre de sélection actuelle, avec une création à la demande. Les sélections sont appliquées et déduites de ce champ, comme pour tout champ logique du script.

Une expression encapsulée dans CalcDim() se comportera de la même manière que toutes les expressions de dimension calculée dans QlikView, c'est-à-dire en mappant de manière ad hoc les valeurs calculées aux valeurs de champ sources sous-jacentes. Tous les calculs de champ à la volée peuvent être transférés dans des dimensions calculées à l'aide de la fonction CalcDim(). En effet, la dimension calculée doit remplir moins de conditions basées sur le modèle de données que le calcul de champ à la volée correspondant. Cette transformation peut être souhaitable afin de garantir un comportement similaire pour toutes les dimensions calculées lorsque le modèle de données peut empêcher l'utilisation d'un calcul de champ à la volée dans certains cas, mais pas dans d'autres.

 

CalcDim(expr)

double

Arguments
Argument Description
expr

Expression utilisée comme dimension ou comme segment dans une expression de dimension.

Cas d'utilisation de CalcDim

CalcDim() s'avère utile lorsque vous avez besoin de plus de contrôle sur la façon dont le moteur Qlik traite les champs que vous invoquez dans une expression de dimension.

Par défaut, Qlik Sense décide automatiquement de créer et de référencer des champs internes dans le modèle de données lorsque vous utilisez une expression de dimension personnalisée. Qlik Sense crée et utilise ces champs internes chaque fois que cela est possible. Lorsque cela n'est pas possible, l'expression est traitée en référence aux champs du modèle de données existant sur lesquels elle s'appuie.

Selon votre cas d'utilisation, ce traitement automatique n'est pas toujours souhaitable. Par exemple, si vous utilisez une variable dans une expression de dimension, la création automatique de nouveaux champs peut devenir problématique. Dans ce cas, utilisez CalcDim() pour forcer le traitement de l'expression sans cette méthode.

Voici quelques cas d'utilisation courants :

  • Vous avez migré le contenu de QlikView vers Qlik Sense et vous souhaitez conserver la méthode de traitement de QlikView pour les dimensions calculées.

  • Vous souhaitez simplifier le comportement de sélection dans votre application. Par exemple, vous préférez afficher les sélections des champs sous forme de sélections dans des champs du modèle de données d'origine, plutôt que sous forme de sélections dans de nouveaux champs.

  • Votre cas d'utilisation nécessite une expression ad hoc pour des raisons de cohérence et de performances. Par exemple, si votre expression de dimension contient des paramètres de visualisation dynamique contrôlables par l'utilisateur tels qu'un formatage contrôlable, des valeurs limites ou des périodes.

Exemples de fonction
Exemple Résultat
=CalcDim(if(Year < 2023, 'Older', Year))

Une sélection dans une visualisation qui utilise cette dimension sera traitée et affichée comme une sélection dans la valeur du champ Year associée provenant du modèle de données.

Inversement, supposons que vous n'encapsuliez pas l'expression dans CalcDim(). Dans ce cas, elle se présentera comme suit :

=if(Year < 2023, 'Older', Year)

Une sélection dans l'expression ci-dessus sera traitée et affichée comme une sélection dans le champ interne =if(Year < 2023, 'Older', Year), qui ne figure pas dans le modèle de données.

Exemple 1 – Comparaison simple

Exemple 2 – Cas d'utilisation pratique pour modifier le comportement par défaut

Cette page vous a-t-elle aidé ?

Si vous rencontrez des problèmes sur cette page ou dans son contenu – une faute de frappe, une étape manquante ou une erreur technique – faites-le-nous savoir.