Business & Management Consulting FORMATION QLIKVIEW DESIGNER - STANDARD 1 SOMMAIRE 00 Objectif de la formation 3 01 Architecture QlikView 6 1. 2. 3. 02 Description Générale de QlikView Définitions et Terminologies Composants majeurs de QlikView Présentation de l’interface QlikView 1. 2. 3. 4. 04 1. 2. 05 13 Principes et description Méthodologie : les étapes à suivre Utilisation Mettre en œuvre une feuille Créer des Objets 1. 2. 3. Utiliser des objets Charger et exploiter les données Créer et utiliser des onglets 49 3. 4. 85 Les jauges Les boutons Liste de sélection Zone statistiques Les objets glissières / calendrier Gérer les rapports QlikView 1. 2. 77 Mettre en œuvre des tableaux pivots Implémenter des tableaux simples avec des expressions multiples Objets Complémentaires 1. 2. 3. 4. 5. 06 03 Objets Multidimentionnels Mettre en œuvre des calculs Mettre en œuvre la recherche associative Intégrer et gérer les information internes Propriétés du Document 101 Objectifs de la formation Notre Objectif lors de cette formation est de vous apprendre à manipuler différentes les Dashboards fonctionnalités QlikView en proposées : exploitant Filtres, les travail collaboratif, etc. et à créer des applications QlikView 3 Premiers Pas avec QlikView - Designer 1. Architecture QlikView 2. Présentation de l’interface QlikView 3. Créer des Objets 4. Exploiter les Objets multidimensionnels 5. Les Objets complémentaires 6. Créer/Gérer les rapports QlikView 4 Créer avec QlikView Desktop Pour la partie développement et création des Dashboards, nous allons utiliser QlikView Desktop. Dans ce qui suit, nous verrons brièvement, son architecture et ses spécificités, ensuite nous découvrirons les fonctionnalités qu’il propose. 5 Architecture 1. Description Générale de QlikView 2. Définitions et terminologies 3. Composants majeurs de QlikView 6 A propos de Qliktech Historique • Fondée en 1993 en Suède • R&D basée à Lund, Suède • Brevets détenus pour la technologie associative in-memory • La premiére version de Qlik Sense est sortie fin 2013 • Le produit Qlik Sense a connu 5 versions majeures • La dernière version étant Septembre 2017 Board • Paul Wahl, ancien COO Siebel et CEO SAP America • Alex Ott, JVP, ancien Président Siebel North America • Bruce Golden, Accel, ancien Dirigeant de Sun, Illustra et Informix • Claes Bjork, ancien CEO Skanska • Måns Hultman, Chairman de QlikTech • Conduit par des investisseurs – Accel Partners and JVP Organisation • Equipe Dirigeante : – Anciens Dirigeants venus de SAP, Siebel, Oracle, PA Consulting, Mactive, Intentia • 463 employés répartis dans 20 bureaux dans 12 pays • Près de 500 partenaires • Siège aux Etats-Unis (Radnor, Pennsylvanie) Résultats • Leader des solutions de BI de nouvelle génération • Editeur de logiciel de BI connaissant la plus forte croissance au monde pour deux années consécutives (2005 – 2006) selon IDC • Profitable, croissance annuelle du CA d‟environ 80% • 45,000 clients dans 90 pays • 14.3 nouveaux clients chaque jour • 449 000 utilisateurs actifs 7 Architecture Description Générale Analyses Visuelles : QlikView est une application de visualisation de données et d’analyses en libre- service de nouvelle génération, qui permet aux utilisateurs métier de créer facilement et d’une manière intuitive un vaste choix de visualisations flexibles et interactives, qui stimulent l'exploration et la découverte. 8 Architecture Description Générale Création en mode libre-service • Business Users - Cliquer et rechercher - Modifier et éditer • Business Analysts - Commencer à partir de zéro Des analyses guidées • Applications opérationnelles, Applications exécutives, KPIs critiques pour l’entreprise • Données actualisées chaque heure, jour, semaine, mois • "Un à plusieurs": Créateur Consommateur Intégrer les analyses • Créez des applications d'analyse guidées, entièrement intégrées à des pages Web, CRM,ERP grâce à l'emploi des mashups, des extensions et des API. Applications analytiques customisées • Créez des applications Web très modernes et attrayantes en se basant sur le moteur QIX • S’adaptent à tous types de terminal (PC, Tablette, Téléphone mobile..) • Conçues et crées par des développeurs Web Reporting et collaboration • Des rapports PixelPerfect centralisés - PDF, Excel, PPT formats • Data Storytelling fournit des rapports PowerPoint dynamique 9 Architecture Description Générale QlikView Desktop permet aux développeurs de créer des applications dont l'extension est .qvw. Ces QVW seront par la suite publiés sur le serveur afin de : • Planifier leurs tâches de rafraichissement . • Attribuer les droits d'accès nécessaires, pour pouvoir les consulter en mode Web. 10 Architecture Terminologie QlikView Desktop .QVD: données QlikView. Utilisé comme un fichier intermédiaire optimisé entre QlikView et des sources de données externes. .QVW: application QlikView. N'inclut que les données frontales (objets de feuille, rapports, etc.) .QVX: échange de données QlikView. Format de fichier / flux pour la saisie de données hautes performances dans QlikView. Feuille: page d'une application QlikView contenant des objets de feuille, etc. Onglet: Utilisé pour naviguer entre les feuilles. Tableau de bord: une feuille spécifique au sein d'une application QlikView affiche des informations détaillées relatives à cette application QlikView. 11 Architecture Les Composants QlikView Desktop Pagededémarrage Aperçu de l’application Il s'agit de l'endroit où se trouvent toutes vos documents récents. Vous pouvez y ajouter des raccourcis. Lorsque vous ouvrez un document .qvw, vous accédez à l'aperçu de l'application. Vous pouvez visualiser et gérer tout le contenu de l'application (les différentes feuilles) depuis l'aperçu. Éditeur de script L'éditeur de script permet de créer, d'éditer et d'exécuter le script qui charge les données dans votre application. Visionneur de tables Le visionneur de tables permet d'obtenir une vue d'ensemble des données que vous avez chargées dans votre application. Grille de conception Vous accédez au mode grille pour développez et analysez vos applications. 12 Interface 1. Principes et description 2. Méthodologie : les étapes à suivre 3. Utilisation 4. Mettre en œuvre une feuille 13 Interface Principes et Description C B D A E 14 Interface Principes et Description • La :barre d'outils contient le menu de navigation, le menu global et le menu conception. Menu de navigation comprenant les options Effacer, Précédent, Suivant. A Menu global comprenant les options Ajouter une feuille, Enregistrer, Chargement, Aide et À propos. Menu Conception comprenant l’ajout des objets, pour éditer les informations sur l'application ou ouvrir les options afin de redéfinir le style de cette dernière. 15 Interface Principes et Description B C D E Basculez l'aperçu de l'application entre le mode grille de conception et le mode standard, selon vos préférences. Permet d'accéder au script de chargement des données. Permet d’accéder au modèles de tables des données. La feuille comprend des visualisations de données, par exemple des graphiques et des tables pour présenter des données dans des états de sélection précis.. 16 Interface Utilisation Structure d’une application Vue d’ensemble Une application QlikView est un ensemble de: • Structure et Eléments visuels (Onglets Feuilles) • Base (Script Modèle de données mesures+ dimensions ) 17 Interface Utilisation • Structure et Eléments visuels / Base: Feuilles Les feuilles comprennent des visualisations de données, par exemple des graphiques et des tables Script de chargement de données Un script de chargement de données vous permet de charger des données dans l'application. Le script se connecte à une source de données (base de données, feuille Excel, etc.) et récupère les données. Modèle de données Les données chargées sont structurées dans un modèle de données. Vous éditez le script de chargement de données puis rechargez les données afin de créer le modèle de données que vous estimez être le plus adapté à votre application. 18 Interface Mettre en œuvre une feuille A C D B 19 Interface Mettre en œuvre une feuille Création d’une nouvelle feuille A Créer une feuille Vous pouvez créer une nouvelle feuille dans l'application à partir de l'aperçu de l'application ou du navigateur de feuilles. B Ouvrir et éditer Accéder à une feuille Enregistrer la feuille C Enregistrer Vous pouvez enregistrer une nouvelle feuille dans l'application à partir de l'aperçu de l'application ou du navigateur de feuilles, avec un simple clic droit ensuite Supprimer Favoriser la feuille Favoris D Favoriser une feuille a pour objectif de vous faire gagner du temps en réutilisant un contenu existant. Elle vous permet également de modifier la feuille afin de l'adapter à des besoins spécifiques. 20 Interface Mettre en œuvre une feuille Sélection de Données ▫ Émettre des requêtes = sélectionner des valeurs ▫ Il suffit de cliquer sur un élément ≪ valeur ≫ ▫ QV affiche alors toutes les valeurs du document liées a la valeur sélectionnée en VERT ▫ Cellule VERTE= valeur sélectionnée ▫ Les cellules des valeurs de champ associées sont BLANCHES ▫ Une cellule dont le contenu n'est pas associe (dont les valeurs ne sont pas combinées avec celle de l’élément sélectionnée) est dite exclue. ▫ Les cellules de valeurs exclues sont GRISES 21 Interface Mettre en œuvre une feuille Sélection multiple ▫ Dans la même liste maintenir la touche CTRL et sélectionner d’autres valeurs ▫ Si les éléments à sélectionner sont adjacents: utiliser souris / bouton gauche ▫ Il est possible d’inverser la sélection en sélectionnant les valeurs exclues *Clic droit / Sélectionner les valeurs exclues Annuler la(les) sélection(s) ▫ Cliquer a nouveau sur la cellule sélectionnée ▫ Ou cliquer sur le bouton Effacer 22 Interface Mettre en œuvre une feuille Combinaison de sélections ▫ Permet de sélectionner une valeur facultative d’une autre liste de sélection, en plus de la valeur sélectionnée 23 Interface Mettre en œuvre une feuille Suivi des sélections ▫ Comment suivre de multiples sélections ? *La zone ≪ Sélection Active ≫ (si implémentée dans le document) *La fenêtre ≪ Sélections actives ≫, via le bouton 24 Interface Mettre en œuvre une feuille Retour aux sélections précédentes ou suivantes ▫ QVW mémorise les 100 dernières sélections ▫ Il est possible de naviguer dans cette liste: *Afficher (et recalculer) la précédente sélection: *Afficher (et recalculer) la sélection suivante: ▫ Ces boutons s’appliquent uniquement aux sélections, les modifications apportées aux objets ou aux feuilles n’étant pas concernées 25 Interface Mettre en œuvre une feuille Verrouillage de sélections ▫ Par défaut, QVW remplace la sélection précédente par la nouvelle sélection si elles sont incompatibles ▫ Les sélections peuvent être verrouillées *Verrouiller une sélection: ▫ Les cellules verrouillées apparaissent en BLEU: 26 Interface Mettre en œuvre une feuille Déverrouillage de sélections ▫ Les sélections restent verrouillées dans que l’ordre inverse n’est pas donne ▫ Toutes les sélections verrouillées peuvent être Déverrouillées *Déverrouiller une sélection: 27 Interface Mettre en œuvre une feuille Recherche de valeurs La recherche textuelle permet de chercher des valeurs dans les listes de sélection ▫ Activer une liste de sélection (par clic) et entrer une suite de caractères permet de d’ouvrir une zone de recherche sur cet motif ▫ QVW affiche alors les valeurs éligibles: ▫ Menus équivalents: Edition/rechercher ou Clic Droit/ Rechercher 28 Interface Mettre en œuvre une feuille Recherche de valeurs L’utilisation de caractères génériques permet d’étendre les résultats: ▫ Le caractère générique * représente un ou plusieurs caractères arbitraires ▫ Ex: utilise en début, au milieu ou en fin de chaine de recherche : 29 Interface Mettre en œuvre une feuille Recherche de valeurs De la même manière, la recherche sur un champ numérique accepte les caractères > et < : ▫ Ci-dessous, une recherche sur le champ ≪ Year ≫ permet de sélectionner les années antérieures a 2010: 30 Interface Mettre en œuvre une feuille Recherche de valeurs Un objet QVW spécifique appelé ≪ objet de recherche ≫ permet de parcourir simultanément tous les champs du document ▫ L’entrée d’une chaine de caractères dans ce type d’objet permet l’affichage de toutes les valeurs éligibles contenues dans tous les champs du document: ▫ Il est ensuite possible d’activer la sélection en cliquant sur une ou plusieurs valeurs proposées 31 Interface Mettre en œuvre une feuille Favoris de sélection ▫ Il est possible d’enregistrer un ensemble de sélections (10 maximum) pour le réutiliser ultérieurement * Effectuer un ensemble de sélections puis utiliser le bouton ≪ Ajouter un favori ≫ * La boite de dialogue permet de configurer le favori ainsi enregistre * La sélection peut être appelée via le menu Favoris 32 Interface Mettre en œuvre une feuille Enregistrement L’application QVW peut être sauvegardée en l’état ▫ L’enregistrement sauvegarde les données stockées, les sélections courantes et les favoris. ▫ Utiliser le menu ≪ Fichier / Enregistrer Sous ≫ afin d’afficher la boite de dialogue correspondante ▫ Les applications sont stockées sous forme de fichiers d’extension .QVW 33 Interface Méthodologie 1. Création d’une application simple La première étape de la création d'une application consiste à définir un espace réservé vide à son intention. Pour créer cet espace réservé à l'application. Procédez comme suit : 1.Dans la page de démarrage, cliquez sur Nouveau document. 2.Un assistant de mise en route vous accompagnera. 3.Cliquez sur Créer. L'application a été créée. 4.Cliquez sur Ouvrir l'application. L'application s'ouvre en mode Aperçu de l'application. L'étape suivante consiste à ajouter des données à la nouvelle application. 34 Interface Méthodologie 2. Ajout de donnée 1. Établir la connexion Connexion OLE DB Connexion ODBC 35 Interface Méthodologie Établir une connexion OLE DB 36 Interface Méthodologie Établir une connexion ODBC Choisir le chemin de votre fichier local (QVD, ACCESS, EXCEL …) 37 Interface Méthodologie Contenu d’une feuille Lorsqu’on est en mode Edition d’une feuille, on procède comme suit : 1. Clique droite 2. <Nouvel objet de feuille> 3. Une librairie de graphiques s’affiche qu’on peut utiliser dans la conception d’un rapport. . 38 Interface Méthodologie Création de documents et de graphiques Lorsque vous ajoutez des tables et des graphiques sur des feuilles, tenez compte des recommandations suivantes : *L'emploi homogène de couleurs, de noms et de styles aide l'utilisateur à parcourir et à comprendre le document. *Structurez la feuille de façon ordonnée autour des tables et des graphiques. *Focalisez-vous sur quelques mesures significatives (indicateurs KPI) par feuille et organisez-les par ordre de priorité. *Assurez-vous que l'utilisateur peut descendre dans la hiérarchie des données. Créez, par exemple, des dimensions pour la date et l'heure afin de faciliter la descente dans les groupes hiérarchiques année, mois, semaine et jour. 39 Interface Méthodologie Éditeur de script L’éditeur de script vous permet d'ajouter et de gérer des données provenant de vos propres sources de données , en vue de les utiliser dans votre application. 40 Interface Méthodologie En général, la manière dont vous chargez des données dans le document peut être expliquée par les processus d’extraction, de transformation et de chargement: Extraction La première étape consiste à extraire des données du système de source de données. Dans le script, vous utilisez les instructions SELECT ou LOAD pour définir cela. Les différences entre ces déclarations sont les suivantes: o SELECT est utilisé pour sélectionner les données d'une source de données ODBC ou d'un fournisseur OLE DB. L'instruction SELECT SQL est évaluée par le fournisseur de données et non par QlikView. o LOAD est utilisé pour charger des données depuis un fichier, des données définies dans le script, d'une table précédemment chargée, d'une page Web, du résultat d'une instruction SELECT ultérieure ou en générant automatiquement des données. 41 Interface Méthodologie Transformer L'étape de transformation implique la manipulation des données à l'aide de fonctions de script et de règles pour dériver la structure de modèle de données souhaitée. Les opérations typiques sont: o Calcul de nouvelles valeurs o Traduire des valeurs codées o Renommer des champs o Tables de jonction o Valeurs d'agrégation o Pivotant o La validation des données 42 Interface Méthodologie Charger Dans la dernière étape, vous exécutez le script pour charger le modèle de données que vous avez défini dans le document. Votre objectif doit être de créer un modèle de données permettant une gestion efficace des données dans QlikView. Cela signifie généralement que vous devez viser un schéma en étoile ou un flocon de neige raisonnablement normalisé, sans aucune référence circulaire, c'est-à-dire un modèle dans lequel chaque entité est conservée dans un tableau séparé. En d'autres termes, un modèle de données typique ressemblerait à ceci: o Une table de faits centrale contenant les clés des dimensions et des nombres utilisés pour calculer les mesures (telles que le nombre d'unités, les montants des ventes et les montants du budget). o Des tables environnantes contenant les dimensions avec tous leurs attributs (tels que produits, clients, catégories, calendrier et fournisseurs). 43 Interface Méthodologie Visionneur de modèle de données Le visionneur de modèle de données offre une vue d'ensemble de la structure des données de l'application . Vous pouvez afficher un aperçu des données contenues dans les tables et les champs dans le visionneur de modèle de données. 44 Interface Méthodologie Dans de nombreux cas, il est possible de résoudre une tâche, par exemple des agrégations; * Soit en créant un modèle de données plus riche dans le script de chargement, * Soit en effectuant les agrégations dans les expressions de graphique. En règle générale, vous obtiendrez de meilleures performances si vous conservez les transformations de données dans le script de chargement. Conseil: Il est recommandé d’esquisser votre modèle de données avant le déployer. Cela vous aidera en fournissant une structure pour quelles données à extraire et quelles transformations à effectuer. 45 Interface Méthodologie Mises en production de l’application Vous avez plusieurs méthodes de mise en production. - En local - Sur un Serveur o A distance o Web La méthode la moins bonne est en mode local, c’est-à-dire installer directement l’application sur l’ordinateur de l’utilisateur concerné. Cela implique un maintien de l’application plus complexe, car à chaque modification ou problème il faudra intervenir sur son poste. De plus un rechargement des données devra être fait manuellement par l’utilisateur. 46 Interface Méthodologie Mises en production de l’application Avec QlikView Professionnel, nous avons la possibilité d’installer le centre de management sur un serveur. Ce centre de maintenance permet de gérer les applications mais aussi les utilisateurs. - Les applications : pour chacune installé sur le serveur, il est possible de régler leur rechargement automatique selon ce qu’on désire (chaque heure, une fois par jour, ou encore une fois par mois). De plus nous pouvons régler les droits d’utilisations. - Les utilisateurs : pour chacun, nous les affectons sur les applications que nous voulons. Pour cela il nous faut des licences. 2 types de licences : - Licence Simple : 1 utilisateur = accès à 1 application désignée - Licence Multiple : 1 utilisateur = accès à toutes les applications possibles 47 Interface Méthodologie Mises en production de l’application De plus, lorsque que vous installé vos applications sur le serveur, il est conseillé de les classer dans des dossiers car vous aurez la possibilité de mettre des droits d’accès sur ces dossiers. Cela permettant aux utilisateurs non concernés de ne pas voir les autres applications QlikView. Lorsque l’application est sur le serveur, nous avons donc 2 méthodes d’accès. Les 2 ayant des avantages et inconvénients. Il reste donc à la charge du service et des utilisateurs de choisir la meilleure méthode pour eux. - Connexion via le client lourd de QlikView installé en local sur son ordinateur. On se connectera à partir de là au serveur. - Connexion via le web. L’explorateur recommandé est Internet explorer qui permet d’avoir les mêmes fonctionnalités et design que sur le client lourd. Mais toute autre marche aussi bien. Pour se connecter à l’application, il faudra rentrer ses identifiants et mot de passe pour les 2 méthodes d’accès. Vous avez la aussi plusieurs méthodes. - Soit vous configurer la connexion via leur authentification de session. Cela permet une plus grande rapidité d’utilisation et une non perte d’identifiant. - Soit vous configurer de nouvelle authentification. Cela permet un meilleur niveau de sécurité. 48 Objets 1. Utiliser des objets 2. Charger et exploiter les données 3. Créer et utiliser des onglets 49 Objets Utiliser des objets 1. Objectif L'intérêt d’un objet est de transmettre des données de manière rapide et convaincante tout en restant précise à 100 %. Un objet doit normalement servir un objectif clair et ne pas noyer les utilisateurs sous un flot de détails inutiles. Dans la mesure du possible, une visualisation doit être conçue de manière à encourager les utilisateurs à comparer ses divers éléments pour dégager des réflexions à partir des données brutes. 2. Compréhension des données Pour concevoir une visualisation efficace dont l'objectif est clair, assurez-vous de bien comprendre les données elles-mêmes. Référez-vous aux points suivants pour identifier plus facilement les informations à transmettre au travers de vos données : • • De quel type de données s'agit-il ? Des données nominales, ordinales, d'intervalle ou de taux ? Quel message souhaitez-vous transmettre à l'aide de ces données ? 50 Objets Utiliser des objets Ajout d’un objet: Pour ajouter un graphique il suffit de glisser un élément du panneau de ressources et le déposer sur la zone indiquée Graphiques disponibles Déposez le dans la zone souhaité 51 Objets Utiliser des objets 3. Les types d‘objets QlikView inclut des objets dont vous pouvez vous servir pour créer des visualisations. Vous pouvez passer d'un type de visualisation à un autre en faisant glisser un nouveau objet sur une visualisation d'une feuille. 52 Objets Utiliser des objets 3.1. Graphe : Histogramme L'histogramme convient parfaitement pour établir des comparaisons entre plusieurs valeurs. L'axe des dimensions affiche les éléments de catégorie faisant l'objet d'une comparaison tandis que l'axe des mesures indique la valeur associée à chaque élément de catégorie. Sur l'image, les valeurs de dimension correspondent à différentes régions : Nordic, USA, Japan, UK, Spain et Germany. Chaque région représente une valeur de dimension et se voit attribuer une barre. La hauteur de chaque barre correspond à la valeur de mesure (sales) associée aux différentes régions. Vous pouvez effectuer des comparaisons de données plus complexes en groupant ou en empilant les barres. Les barres groupées vous permettent de comparer facilement deux éléments ou plus d'une même catégorie. Les barres empilées combinent les barres de différents groupes les unes sur les autres ; la hauteur totale de la barre obtenue représente le résultat combiné. 53 Objets Utiliser des objets 3.1. Graphe : Histogramme Sélections dans un graphique ▫ Il est possible de sélectionner des données dans un objet graphique ▫ La sélection d’une zone sur un objet graphique (sur les étiquettes ou dans la zone de trace) rend effective la sélection sur les valeurs de la zone 54 Objets Utiliser des objets 3.1. Graphe : Histogramme Changement rapide de type de graphique ▫ Certains graphiques peuvent être conçus pour pouvoir être affiches sous plusieurs formes ▫ Une petite icone le signale * soit dans la barre de titre du graphique * soit dans le graphique lui-même. 55 Objets Utiliser des objets 3.2. Graphe : Graphique en courbe Le graphique en courbes permet d'afficher les tendances au fil du temps. La dimension se trouve toujours sur l'axe des abscisses tandis que les mesures sont situées sur l'axe des ordonnées. Il ne peut pas être orienté à la verticale. Un graphique en courbes nécessite au moins une dimension et une mesure. Le tableau suivant illustre les limites maximales. Si vous utilisez plus de trois mesures, le graphique risque d'être difficile à interpréter. 56 Objets Utiliser des objets 3.3. Graphe : Graphique combiné Il convient d'utiliser un graphique combiné dans le cas d'une comparaison entre deux ensembles de valeurs de mesure généralement difficiles à comparer en raison des différences d'échelle employées. Comme exemple type, prenons le cas d'un histogramme comprenant des chiffres de vente que vous souhaitez associer aux valeurs de marge (en pourcentage). Dans un histogramme classique, les barres correspondant aux ventes seraient affichées de la façon habituelle, mais les valeurs de marge seraient presque invisibles en raison de la différence très importante entre les valeurs numériques des ventes et de la marge. Un graphique combiné vous permet d'associer ces valeurs, par exemple au moyen de barres pour les valeurs des ventes et d'une courbe pour les valeurs de marge. Par défaut, les barres disposent d'un axe des mesures à gauche tandis que les valeurs de marge sont dotées d'un axe distinct à droite. Les deux mesures utilisent la même dimension (YearMonth). 57 Objets Utiliser des objets 3.4. Graphe : Blocks: Les Blocks affichent des données sous forme hiérarchique en recourant à des rectangles imbriqués, c.- àd. de petits rectangles insérés au sein d'un rectangle plus grand. Sur cette image, vous observez plusieurs groupes de produits, tels que Produce, Canned Products,et Frozen Foods. Chaque groupe de produits constitue un grand rectangle. Les groupes de Produits Peuvent être considérés comme les branches de l'arbre. Lorsque vous sélectionnez un groupe de produits, vous descendez dans la hiérarchie pour atteindre le niveau inférieur suivant, le type de produit. 58 Objets Utiliser des objets 3.5. Graphe : Nuage des points: Le nuage de points présente des valeurs issues de deux ou trois mesures. Ce type de graphique s'avère utile pour afficher des données où chaque instance comporte deux nombres , par exemple la relation entre les ventes (Sales) et la quantité (Quantity) par Client (Customer). Dans le nuage de points suivant, une troisième mesure, le coût (Cost) est utilisée pour générer la taille des bulles. • Nombre de dimensions et de mesures Dans un nuage de points, vous devez spécifier une dimension et au moins deux mesures. Vous pouvez spécifier une dimension et trois mesures au maximum, où la troisième mesure est visualisée sous forme de taille de bulles. 59 Objets Utiliser des objets 3.6. Objet texte: La visualisation avec texte et image vient compléter les autres types de visualisation en proposant des options d'ajout de texte, d'images, de liens hypertexte et de mesures. Vous pouvez formater et mettre en couleur le texte, ainsi qu'aligner les paragraphes. L'image d'arrière-plan est assortie d'options de dimensionnement et de positionnement. Vous pouvez également définir le comportement réactif pour le texte et les images. . 60 Objets Utiliser des objets 3.6. Objet texte: Propriétés générales. 61 Objets Charger et exploiter les données ▫ Les données d’un document QWV proviennent d’une ou plusieurs sources ▫ Ces sources sont des bases de données relationnelle ou des fichiers (.txt, .xls, .xml,…) contenant des tables de données. ▫ Cette extraction repose sur l‘écriture et l‘éxécution d'un script, dans lequel sont spécifies: *La base de données, *Les tables et les champs a récupérer. ▫ Le script peut être génère automatiquement a l'aide des outils inclus dans QlikView.. 62 Objets Charger et exploiter les données ▫ L’accès au module se fait via le menu ≪ Fichier / Éditer le script ≫ ou par le bouton spécifique ▫ Par défaut, l’éditeur contient les variables d’environnement (format de date, séparateur de milliers,…) 63 Objets Charger et exploiter les données Raccourcis utiles ▫ CTRL + E: ouvrir l’éditeur de script ▫ CTRL + R: recharger le script ▫ CTRL + T: éditer le visionneur de tables 64 Objets Charger et exploiter les données Utilisation d’onglets ▫ La création d’onglets permet de structurer le code ▫ Qlikview exécutera le script par les onglets de gauche a droite 65 Objets Charger et exploiter les données Utilisation de l’assistant ▫ L’assistant permet de générer du code de façon automatique ▫ En particulier, il permet l’écriture de scripts de chargement ≪ simples ≫ ▫ Il est ensuite nécessaire d’enrichir le code ≪ manuellement ≫ pour traiter les fonctionnalités avancées ▫ L’assistant se situe dans la zone inferieure du script: 66 Objets Charger et exploiter les données Utilisation de l’assistant 67 Objets Charger et exploiter les données Utilisation de l’assistant : Interprétation d’un fichier 68 Objets Charger et exploiter les données Utilisation de l’assistant : Étapes de transformation 69 Objets Charger et exploiter les données Utilisation de l’assistant : Production du script 70 Objets Charger et exploiter les données Quelques instructions ▫ LOAD Cette instruction permet de charger les champs a partir d’un fichier ou a partir du résultat d’une instruction SELECT ▫ FROM • Cette instruction permet d’identifier les tables ou les fichiers a partir desquelles les champs sont extraits ▫ CONNECT • Permet d’établir la connexion a une base de données. • Des que la connexion est établie, elle est utilisée jusqu’a ce qu’une nouvelle instruction CONNECT soit définie ▫ DIRECTORY • Une instruction qui utilise un chemin relatif est précédée de cette instruction 71 Objets Charger et exploiter les données Exploiter les données ▫ Il est nécessaire de lancer explicitement le chargement des données ▫ L’ensemble des champs extraits est alors exploitable ▫ Ces champs sont accessibles dans la rubrique ≪ champs ≫ des diffèrent objets graphiques 72 Objets Crée et utiliser des onglets • Les feuilles: composant de base de QVW ▫ Une feuille contient les objets graphiques ▫ Un document contient de 1 a n feuilles Toute feuille comporte un onglet permettant d’activer la feuille associée ▫ Les feuilles restent connectées logiquement: une sélection affecte toutes les feuilles * Un indicateur vert signale une feuille sur laquelle une sélection a été posée. 73 Objets Crée et utiliser des onglets • Ajout d’une feuille ▫ Par défaut, une nouvelle application contient une feuille nommée ≪ Principal ≫ ▫ Choisir le menu ≪ Disposition / Ajouter une feuille ≫ ▫ La boite de dialogue s’affiche et permet le paramétrage de l’objet Feuille *Paramètres d’affichage (≪ General ≫) *Liste des champs disponibles et affiches (≪ Champs ≫) *Liste des objets contenus dans la feuille (≪ Objets ≫) *Paramètres de sécurité sur la feuille (≪ Sécurité) *Évènements déchenchables en entrée et sortie de la feuille (≪ Déclencheurs ≫) 74 Objets Crée et utiliser des onglets • Paramètres généraux d’une feuille 75 Objets Crée et utiliser des onglets • Gestion d’une feuille ▫ L’ordonnancement des feuille (déplacement des onglets) se fait par le menu ≪ Disposition / Promouvoir ou Abaisser la feuille ≫ depuis la feuille active ▫ Suppression de feuille active: utiliser le menu ≪ Disposition / Supprimer la feuille ≫ ▫ Copie (duplication) de feuille active: ≪ Clic droit / Copier la feuille ≫ ▫ Annulation/rétablissement de modification sur une feuille: * utiliser les boutons dédies: 76 Objets Multidimensionnels 1. Mettre en œuvre des tableaux pivots 2. Implémenter des tableaux simples avec des expressions multiples 77 Objets Multidimensionnels Mettre en œuvre des tableaux Pivots Tableau croisé dynamique: Le tableau croisé dynamique présente les dimensions et les mesures sous forme de lignes et de colonnes dans un tableau. Dans un tableau croisé dynamique, vous pouvez analyser les données par plusieurs mesures et dans plusieurs dimensions à la fois. Vous avez la possibilité de réorganiser les mesures et les dimensions pour obtenir différentes vues des données. L'activité consistant à déplacer des mesures et des dimensions de manière interchangeable entre les lignes et les colonnes est appelée « pivotement ». . 78 Objets Multidimensionnels Mettre en œuvre des tableaux Pivots Spécificités du tableau croise dynamique ▫ Fonction de plier/déplier ▫ Déplacement des dimensions * Par glisser / déposer depuis l’entête de champ * Une ligne bleue signale la position cible * Déplacement vertical ou croise. 79 Objets Multidimensionnels Mettre en œuvre des tableaux Pivots Fonctionnalités ▫ Les colonnes peuvent être dimensionnées en plaçant le curseur sur la ligne de séparation: ▫ Des sommes partielles peuvent être affichées sur la dimension souhaitée * Onglet Présentation / Afficher des sommes partielles 80 Objets Multidimensionnels Implémenter des tableaux simples Table: La table affiche simultanément plusieurs champs où le contenu de chaque ligne est connecté de façon logique. Généralement, une table se compose d'une dimension et de plusieurs mesures. Les tables sont utiles lorsque vous avez besoin d'afficher des valeurs précises (au lieu des visualisations de valeurs) et lorsque vous voulez comparer des valeurs entre elles. Les tables sont particulièrement utiles lorsque des groupes hiérarchiques sont utilisés comme dimensions. 81 Objets Multidimensionnels Implémenter des tableaux simples Spécificités du tableau simple ▫ Il ne peut pas afficher de sous-totaux ▫ Chacune de ses lignes contient une combinaison de dimension(s) + expression(s) ▫ Les possibilités de tri sont supérieures: * Sur une colonne: clic droit / trier * Ou double-clic sur l’entête de colonne 82 Objets Multidimensionnels Implémenter des tableaux simples Indicateurs visuels ▫ Permettent de faire ressortir des valeurs d’expression dans les tableaux ▫ Accessible par le menu ≪ indicateurs visuels ≫ des propriétés ▫ 3 critères différents accessibles ▫ Options d'Edition possibles pour une expression: * Colorimétrie de la Police * Colorimétrie de l’arrière-plan * Gras ,souligne et italique 83 Objets Multidimensionnels Implémenter des tableaux simples Sélection par menu déroulant ▫ Permet de sélectionner une valeur depuis une liste activable dans l’entête de colonne: ▫ Activer l’option depuis le menu ≪ Présentation / Sélection par menu déroulant ≫ 84 Objets Complémentaire 1. Les jauges 2. Les boutons 3. Liste de sélection 4. Zone statistiques 5. Les objets glissières / calendrier 85 Objets Complémentaire Jauges 1. Jauge : La jauge est conçue pour afficher une seule valeur de mesure et visualiser la manière dont celle-ci doit être interprétée. • Paramètres par défaut d'une jauge • • • • • une jauge radiale ; une seule couleur (le bleu) ; les limites de la plage : valeur min. (0) et max. (100) ; pas de segments ; étiquette et titre visibles. Vous pouvez convertir la jauge radiale en barre. Si vous utilisez des segments, une autre couleur est introduite. Vous avez la possibilité de définir la couleur de chaque segment. 86 Objets Complémentaire Boutons 2. Bouton : ▫ Cet objet permet d’exécuter des commandes ou des actions: • Export de données vers des fichiers • Lancement d'autres documents • Suppression de sélections dans un document • Lancement d’une application externe (ex: lien web,…) … 87 Objets Complémentaire Boutons 2. Bouton : Paramétrage des actions 88 Objets Complémentaire Liste de sélection 3. Liste de sélection : Vous pouvez ajouter une liste de sélection pour contrôler les données affichées dans les visualisations d'une feuille. Une liste de sélection permet de filtrer simultanément les données de plusieurs dimensions. Par exemple, lorsque vous disposez d'un graphique des ventes dans le temps, vous pouvez utiliser la liste de sélection pour limiter les données affichées dans le graphique aux seules données correspondant à une période sélectionnée, à des catégories de produits et à une certaine région. List Box 89 Objets Complémentaire Liste de sélection 3. Liste de sélection : ▫ L'objet le plus basique a l‘écran ▫ Contient une liste de toutes les valeurs d'un champ donne (une colonne) de la base de données ▫ Toutes les valeurs que contient le champ de base de données s'affichent dans la liste de sélection ▫ S'il n'y a pas assez de place pour qu'elles tiennent toutes dans la partie visible de la liste de sélection, des barres de défilement s'affichent a droite et au bas de la fenêtre ▫ Les valeurs sont dédoublonnées 90 Objets Complémentaire Liste de sélection 3. Liste de sélection : Exemples de paramétrage ▫ ListBox par défaut: ▫ ListBox avec icones spéciales: ▫ Affichage multi-colonnes: ▫ Styles de sélection alternatifs: ▫ Objet en mode réduit: 91 Objets Complémentaire Liste de sélection 3. Liste de sélection : Gestion des Expressions affichées 92 Objets Complémentaire Liste de sélection 3. Liste de sélection : Options de présentation des données 93 Objets Complémentaire Liste de sélection 3. Liste de sélection : Formatage spécifique des valeurs numériques 94 Objets Complémentaire Liste de sélection 3. Liste de sélection : Paramétrage typographique 95 Objets Complémentaire Liste de sélection 3. Liste de sélection : Options de mise en forme de l’objet 96 Objets Complémentaire Liste de sélection 3. Liste de sélection : Mise en forme de la barre de titre 97 Objets Complémentaire Liste de sélection 4. Zone statistique: ▫ Moyen d’afficher de façon synthétique un champ numérique dans lequel les enregistrements sont pertinents par leur somme ou leur moyenne ▫ Le contenu de l’objet est en lien avec les sélections courantes 98 Objets Complémentaire Liste de sélection 4. Zone statistique: Paramétrage 99 Objets Complémentaire Curseur 5. Curseur / Calendrier 100 Gérer les rapports QlikView 1. Mettre en œuvre des calculs 2. Mettre en œuvre la recherche associative 3. Intégrer et gérer les information internes 4. Propriétés du Document 101 Gérer les rapports Mettre en œuvre des calculs Si vous voulez obtenir la dernière année de l'application, utilisez la fonction max ([{set}] FieldName) <Année = {"$ (= max ({1} Année))"}> Notez que: - La fonction max, comme toute fonction d'agrégation, prend en compte la sélection en cours - Nous avons utilisé un ensemble intérieur. {1} à l'intérieur de la fonction max désigne l'ensemble de l'application. Si nous n’utilisez-le, la fonction max renverra la dernière année parmi celles choisies par l'utilisateur - Nous utilisons deux signes égaux, 1 avant les accolades, 1 entre les guillemets Si vous recherchez l’année précédente de la dernière année de la sélection, vous pouvez écrire l’un des deux syntaxes équivalentes: - <Année = {"$ (= max ({$} Année) -1)"}> - <Année = {"$ (= max (Année) -1)"}>, {$} = sélection en cours, il s'agit de la valeur par défaut 102 Gérer les rapports Mettre en œuvre des calculs Exemple 103 Gérer les rapports Mettre en œuvre des calculs Si vous voulez obtenir les périodes de l’année: (YTD) CUMUL À CE JOUR: Sum ({<MONTH =, YTD = {1}, YEAR =>} VALEUR) (YTD from Year Ago) Depuis le début de l'année: Sum ({<MONTH =, YTD = {1}, YEAR = {$ (= YEAR-1)}>} VALEUR) TOTAL MOBILE 12 périodes: (MOVING TOTAL 12 periods) Sum ({<MOIS =, ANNÉE =, TIME_KEY = {"> $ (= Max (TIME_KEY) -12) <= $ (= Max (TIME_KEY))"}}}} VALEUR) (MOVING TOTAL 12 periods, Year Ago) TOTAL MOBILE 12 périodes, année auparavant: Sum ({<MONTH =, YEAR =, TIME_KEY = {"> $ (= Max (TIME_KEY) -24) <= $ (= Max (TIME_KEY) -12)"}>} VALEUR) 104 Gérer les rapports Mettre en œuvre des calculs Par conséquent, vous pouvez également modifier le modèle plus en profondeur de sorte que l’analyse des ensembles pour l’année, le total mobile et l’année précédente et leurs comparaisons deviennent très simples. Certaines personnes remplissent des Flags (avec 1 et 0) pour pouvoir écrire: Sum (VALUE * Flag) Ceci est simple et fonctionne bien. Mais cela prend beaucoup de temps, bien plus que : Sum({<Flag = {1}> VALUE) Parce que QlikView dans le second cas réduit la portée avant le calcul. Avec Sum(VALUE * Flag), QlikView n’étend pas les données et calcule tout. 105 Gérer les rapports Mettre en œuvre des calculs Nous voulons agréger le volume des ventes pour les FABRICANTS dont la valeur des ventes est supérieure à 100 000 dollars en fonction de la sélection actuelle: sum ({$ <MANUFACTURER_LDESC = {"= sum ([Valeur de vente])> 100000"}>} [Volume de ventes]) Mais nous pouvons également décider de rechercher les FABRICANTS sur une période ou des produits spécifiques. Nous créera un Set intérieur: sum ({$ <MANUFACTURER_LDESC = {"= sum ({1 <TIME_SDESC = {'P 01/13'}), CATEGORY_LDESC = {'ACC', 'CHEESE CAKE'}>} [Volume de ventes])> 100000 "}>} [Volume de ventes]) Rappelez-vous que les membres peuvent être placés entre guillemets simples ou doubles. 106 Gérer les rapports Mettre en œuvre des calculs Je veux trouver les fabricants dont les ventes dépassent 100 000 pour les 2 catégories GATEAU AU FROMAGE et ACC en janvier 2013 (période P01 / 13). Mais je veux supprimer de cette liste ceux dont les ventes sont inférieures à 50 000 pour toutes les catégories en janvier 2012: J'ai besoin de deux ensembles: {<set 1> - <set 2>}, chacun d'entre eux utilisera la fonction sum (): Set 1 = 1 <MANUFACTURER_LDESC = {"= sum ({1 <TIME_SDESC = {'P01/13 '}, CATEGORY_LDESC = {' ACC ',' GATEAU AU FROMAGE '}>} [Valeur de vente])> 50000 "}> Set 2 = <MANUFACTURER_LDESC = {"= sum ({1 <TIME_SDESC = {'P 01/12'}, CATEGORY_LDESC = {'*'}>} [Valeur de vente])> 100000 "}>} 107 Gérer les rapports Mettre en œuvre des calculs Dans une syntaxe globale: sum ({1 <MANUFACTURER_LDESC = {"= sum ({1 <TIME_SDESC = {'P01/13 '}, CATEGORY_LDESC = {' ACC ',' GATEAU AU FROMAGE '}>} [Valeur de vente])> 50000 "}> - <MANUFACTURER_LDESC = {"= somme ({1 <TIME_SDESC = {'P 01/12'}, CATEGORY_LDESC = {'*'}>} [Valeur Ventes]) <50000 "}>}[Ventes de valeur]) cela pourrait être réduit un peu: sum ({1 <MANUFACTURER_LDESC = {"= somme ({1 <TIME_SDESC = {'P 01/13'}, CATEGORY_LDESC = {'ACC',}),'CHEESE CAKE'}>} [Valeur de vente])> 50000 "} - {" = somme ({1 <TIME_SDESC = {'P01 / 12'}, CATEGORY_LDESC = {'*'}>} [Valeur de vente]) < 50000 "}>}[Ventes de valeur]) 108 Gérer les rapports Mettre en œuvre des calculs Si vous souhaitez obtenir le Top 20 des produits: Sum ({<Produit = {"= rang (Sum(Ventes), 4) <= 20"}>} Ventes) Et maintenant, le Top 20 des produits de la marque 10 (nous devons utiliser un Set interne): Sum ({<Produit = {"= rang (Sum ({<Marque = {10}>} Ventes), 4) <= 20"}>} Ventes) Prenez soin de ne pas écrire: Sum({<Marque = {10}, Produit = {"= rang (Sum(Ventes), 4) <= 20"}>} Ventes) Vous obtiendrez l'intersection de la marque 10 et du top 20 des produits. Et peut-être que vous n'obtiendrez rien car il n’existe pas de produit de la marque parmi les 20 premiers produits. Gardez également à l'esprit que l'analyse des ensembles est «calculée» une fois, avant que le graphique ne soit calculé. Non pas une fois par ligne: vous n'obtiendrez pas de produits différents par région si vous avez une dimension de région dans votre graphique. 109 Gérer les rapports Mettre en œuvre des calculs Utiliser p () et e () Ces fonctions renvoient les membres qui ont (ou n'ont pas) de données. Ils sont basés sur le modèle associatif Syntaxe: {<Dimension1 = P ({<{Dimension to select} Dimension1}>) [, Other dimensions of the Set]>} Veuillez noter que: - Les deux fonctions p () et e () ont la même syntaxe: p () renvoie les valeurs possibles, e () renvoie les valeurs exclues - Ils seront insérés dans un plus grand Set - Ces fonctions vous permettent de rechercher les produits Top N ou ceux dont les ventes sont supérieures à X: ils renvoient simplement les membres (produits) qui ont des données ou ceux qui n'en ont pas. 110 Gérer les rapports Mettre en œuvre des calculs Utiliser p () et e () Exemple: Nous recherchons les fabricants qui vendent CROISSANT au cours de la première période de 2013. Mais nous voulons afficher toutes les catégories: sum({$<CATEGORY_LDESC={"*"},MANUFACTURER_LDESC=p({1<CATEGORY_LDESC={"CROISSANT" },TIME_SDESC= "P 01/13">} MANUFACTURER_LDESC) >} [Sales Value]) p () peut également être utilisé lorsque vous avez deux dimensions, avec les mêmes valeurs, non liées, et vous voulez qu'une sélection faite sur la première dimension soit également propagée à la seconde. Par exemple, j'ai 2 dimensions ClientID et BClientID qui ont les mêmes valeurs, mais ne sont pas liées. L'utilisateur a sélectionné le ClientID via un ListBox et nous devons afficher le budget associé à BClientID. Sum({<BClientID = p (ID Client)>} Budget) 111 Gérer les rapports Mettre en œuvre des calculs Utiliser deux champs Si nous voulons sélectionner une dimension à travers deux champs, par exemple: - Client facturé = client livré - Date de commande = Date de livraison -… Syntaxe: {<Dimension = {"= condition booléenne"}>} La condition booléenne sera créée en comparant les deux champs. Attention: la dimension recherchée ne peut pas être aussi à l'état booléen. Si nécessaire, créez un clé numeric avec Autonumber (). Sum ({<KeyAutoNumber = {"= (DayDelivery = DayOrder)"}>} Sales) 112 Gérer les rapports Mettre en œuvre des calculs Utiliser deux champs Et nous pouvons facilement obtenir les ventes avec une livraison tardive, par exemple 7 jours ou quoi que ce soit stocké dans une variable: Sum ({<KeyAutoNumber = {"= (DayDelivery <DayOrder -7)"}>} Sales) Sum ({<KeyAutoNumber = {"= (DayDelivery <DayOrder - $ (vDelay))"}}} Sales Vous pouvez obtenir un équivalent de la syntaxe ci-dessus, mais ceci est plus lent car QlikView doit calculer tout les lignes de la portée: Sum (if (DayDelivery = DayOrder, Sales)) if () renvoie Null () si le troisième paramètre a été omis et que la condition booléenne est false. Cette syntaxe n'a pas besoin d'une clé supplémentaire (ni d'un champ). 113 Gérer les rapports Mettre en œuvre des calculs Utilisation de l'instruction IF Il peut arriver que nous ayons besoin d'analyses d'ensembles différentes en fonction de la sélection de l'utilisateur. Par exemple, si l'utilisateur choisit un seul produit, nous voulons tous les calculer / afficher. S'il en choisit plusieurs, nous voulons affichez / calculez-les au fur et à mesure de leur sélection. L'instruction IF ne peut pas être utilisée dans le Set Analysis elle-même. Mais on peut utiliser une variable qui peut contenir une instruction IF. On crée une variable vSet qui sera une formule: = if (GetSelectedCount (Product) = 1, 'Product =', '$') Et nous avons juste besoin d’utiliser cette variable dans le Set lui-même: sum ({<$ (vSet)>} Sales) 114 Gérer les rapports Mettre en œuvre des calculs Utilisation de l'instruction IF Si l'utilisateur choisit plusieurs produits: Mais si l'utilisateur choisit un seul produit: 115 Gérer les rapports Mettre en œuvre des calculs Utilisation de l'instruction IF N'oubliez pas que le Set analysis est calculée une fois par graphique. Il est donc inutile d'obtenir une instruction IF qui renverrait une portée différente dans les cellules (lignes, colonnes) du graphique. En d'autres termes, l’instruction IF ne peut pas renvoyer une valeur différente en fonction de la ligne affiché dans le tableau. 116 Gérer les rapports La recherche associative Modèle de sélection associatif L'utilisation de sélections constitue la principale méthode d'interaction dans Qlik Sense. Les sélections permettent de filtrer un sous-ensemble des données chargées dans Qlik Sense. Grâce aux sélections, vous pouvez focaliser votre attention sur un élément sur lequel vous souhaitez en savoir plus. Qlik Sense réagit en codant les valeurs dans des couleurs différentes selon leur état. Vous pouvez considérer vos sélections (interactions) comme des données d'entrée pour Qlik Sense, et les données de sortie comme le résultat de l'évaluation des sélections et de l'affichage des codes couleur sur les valeurs de données par Qlik Sense. o État d'entrée : la sélection que vous avez effectuée, que la valeur du champ soit sélectionnée ou pas. o État de sortie : indique si la valeur du champ est possible ou pas, étant donné l'inférence logique de la sélection. 117 Gérer les rapports La recherche associative Modèle traditionnel Modèle Associatif Qlik vs. • Expérience conduite par la structure des données • Expérience conduite par l'utilisateur et axée sur les perspectives • Démarche linéaire et prédéfinie • Choix du point de départ par l'utilisateur • Hiérarchies pré-calculés • Données complètes et toujours visibles • Perspectives non découvertes dans les données masquées • Modifications nécessitant quelques minutes • Modifications lourdes du modèle • Toutes les vérités • Expérience axée sur les données • Une partie de la vérité 118 Gérer les rapports La recherche associative Associations ▫ Un fichier QVW charge et associe généralement un grand nombre de tables (SGBD et/ou fichiers) ▫ Les relations entre tables se font sur les champs communs ▫ Un champ liant 2 tables (ou plus) est une clé ▫ Les associations sont faite selon 2 règles élémentaires * Qlikview associe les champs ayant exactement le même nom (homonymie) Ex: ≪ Name ≫ et ≪ name ≫ ne seront pas associes * Pour 2 champs associes, Qlikview associe les valeurs identiques de chaque champ, et considère que les enregistrements (lignes) contenant cette valeur doivent être associes également Les valeurs texte ≪ Name ≫ et ≪ name ≫ ne seront pas associées Les valeurs numériques ≪ 123 ≫ et ≪ 00123 ≫ seront associées 119 Gérer les rapports La recherche associative Exemple d’associations ▫ Les champs appelés ≪ Nombre ≫ sont homonymes *T1 et T2 sont donc associées par ce champ *T1 et T3 sont associées également par le champ Name ▫ Le champ Nombre a la valeur ≪ 2 ≫ dans T1 et dans T2 * Phil est associe a l'âge de 42. ▫ La valeur 2 dans T1 est associée a la valeur ab dans le champ ID de T3 ▫ La valeur John dans T1 est différente de ≪ john ≫ dans T3 * il n'y aura donc pas association 120 Gérer les rapports La recherche associative Exemple d’associations ▫ Les associations produites dans notre exemple seront les suivantes: 121 Gérer les rapports La recherche associative Renommage de champs ▫ La logique Qlikview associe les champs par homonymie ▫ Le renommage des noms de champs revêt donc une importance fondamentale: * Des lors que 2 champs sont a associer mais ne portent pas le même nom * Des lors que 2 champs sont homonymes mais ne sont pas a associer ▫ Le risque est de provoquer des associations qui produiront des réponses non pertinentes ▫ Le renommage des champs est base sur la syntaxe ≪ AS ≫ Exemple: 122 Gérer les rapports La recherche associative Modélisation ▫ Le modèle de données génère dans QVW est ainsi uniquement contrôle par les tables définies, et les champs homonymes ▫ Le modèle est accessible depuis le ≪ visionneur de tables ≫: 123 Gérer les rapports La recherche associative Modélisation ▫ En plus de la règle d’homonymie, il faut retenir que: • 1 seule relation est autorisée entre 2 tables • les boucles de relations ne sont pas permises ▫ Que se passe-t-il si une de ces conditions n’est pas respectée ? 124 Gérer les rapports La recherche associative Modélisation ▫ Afin de faire disparaitre la boucle, QV va supprimer les jointures en surplus et va créer une table synthétique ($Syn1). ▫ Cette table synthétique sera composée des combinaisons des clés des autres tables ▫ Les tables synthétiques sont généralement à éviter, car: * Volumineuses * Consomment beaucoup de ressources * Ne sont pas maitrisables 125 Gérer les rapports Intégrer et gérer les informations Intégration d’informations internes ▫ Il est possible d’ajouter des données en les saisissant directement dans QlikView ▫ L’instruction LOAD INLINE permet d’ajouter des données dans les tables existantes ou de créer une nouvelle table Syntaxe ▫ L’instruction LOAD INLINE permet d’ajouter des données dans les tables existantes ou de créer une nouvelle table ▫ Syntaxe: LOAD * INLINE [ COL1, COL2, COL3… C1VAL1, C2VAL1, C3VAL1 C1VAL2, C2VAL2, C3VAL2 C1VAL3, C2VAL3, C3VAL3 … ]; 126 Gérer les rapports Intégrer et gérer les informations Débogage de script ▫ Le menu ≪ déboguer ≫ du script permet 3 modes d’exécution * EXECUTER: le script est exécute jusque la fin ou jusqu’a ce qu’il rencontre un point d’arrêt * ANIMER: idem que le mode exécuter, avec une courte pause après chaque instruction. Cela permet de suivre l’exécution de plus près * PAS SUIVANT: le script est exécute étape par étape ▫ Point d’arrêt: * On pose un point d’arrêt (point rouge) en cliquant dans la marge du script * Ou manuellement, en utilisant la syntaxe EXIT SCRIPT; dans le script 127 Gérer les rapports Intégrer et gérer les informations Commenter le script ▫ Il est possible de commenter des parties de script ▫ Le commentaire se fait a la ligne, en utilisant la syntaxe // ▫ Les zones commentées se colorent alors en vert 128 Gérer les rapports Intégrer et gérer les informations Mise en œuvre de transformations ▫ Qlikview fournit de nombreuses fonctions de transformation pouvant être appliquées au chargement des données ou dans des expressions au niveau graphique * If(Condition, Alors, Sinon) * Manipulation de chaines de caractère * Num(Champ1) * Aide Qlikview… ▫ Il convient toujours de s’interroger sur la localisation la plus pertinente d’une transformation: script ou couche graphique 129 Gérer les rapports Propriétés du Documents Propriétés générales du document 130 Gérer les rapports Propriétés du Documents • Propriétés du document / onglet ≪ Feuilles ≫ ▫ Liste des feuilles et objets ▫ Temps de calcul de chaque objet • Propriétés du document / onglet ≪ Variables ≫ ▫ Liste des variables du document ▫ Paramètres, valeurs et contraintes prédéfinies de chaque variable • Propriétés du document / onglet ≪ Sécurité ≫ ▫ Activation /désactivation de fonctionnalités * Export de données * Enregistrement du document * Rafraichissement * Création de feuilles… 131 Gérer les rapports Propriétés du Documents • Propriétés du document / onglet ≪ Tables ≫ ▫ Liste des tables et champs de la base de données ▫ Nombre d’enregistrements et de valeurs • Propriétés du document / autres onglets ▫ Définir le comportement par défaut pour les tris, les formats de nombre, police, disposition des objets, … • Généralités: Ces propriétés sont vraies pour le document, quelque soit l’utilisateur • Les propriétés Utilisateur sont vraies pour l’utilisateur, quelque soit le document 132 Gérer les rapports Propriétés du Documents Propriétés générales de l’utilisateur 133 FORMATION QLIKVIEW DESIGNER - Avancée 134 SOMMAIRE 00 Objectif de la formation 130 01 Options avancés des objets 132 1. 2. 3. 4. 5. 6. Dimensions groupés Schémas croisés Couleurs personnalisées Condition d’affichage et de calcul Mini charts Objets avancés 03 Variables 1. 2. 3. 04 2. 02 Set Analysis 1. 2. 3. Introduction au concept de Set Analysis Comment utiliser les Set Analysis Viser les bonnes expressions du Set Analysis 49 A quoi sert ? Quand les utiliser ? Comment les mettre en œuvre ? Alternate State 1. 77 85 Introduction au concept d’Alternate State Mise en œuvre des Alternate State Objectifs de la formation L’objectif de cette formation est de vous apprendre à profiter de la flexibilité de QlikView Designer pur créer des analyses approfondies des données et de créer des interfaces utilisateurs avancées. 136 QlikView – Designer Avancée 1. Options avancés des objets 2. Set Analysis 3. Variables 4. Alternate State 137 Options avancés des Objets 1. Dimensions groupés 2. Schémas croisés 3. Couleurs personnalisées 4. Condition d’affichage et de calcul 5. Mini charts 6. Objets avancés 138 Set Analysis 1. Introduction au concept de Set Analysis 2. Comment utiliser les Set Analysis 3. Viser les bonnes expressions du Set Analysis 139 Set Analysis Concept du Set Analysis Analyse d’ensemble « Set Analysis » Les Sets vous permettent de créer une sélection différente de celle active utilisée dans le graphique ou le tableau. Le groupe créé vous permet de comparer les agrégations de ce groupe et celles de la sélection actuelle. Ces différentes agrégations vous permettent de comparer par exemple les ventes du mois en cours et celles du mois précédent, année précédente ou créez des totaux cumulatifs . Vous pouvez également créer des parts de marché ou un pourcentage du produits de l'année…. Un Set modifie le contexte uniquement pendant l'expression qui l'utilise. Une autre expression sans aucune set obtiendra le contexte par défaut, la sélection standard ou le groupe de l'état alternatif. 140 Set Analysis Concept du Set Analysis Analyse d’ensemble « Set Analysis » Un Set est toujours écrit entre accolades {…}. Un Set peut modifier la sélection d'un ou plusieurs dimensions. Il peut être composé d'un seul Set mais peut également inclure un Set interne (Imbriqué). Un Set peut être composé de: - un identifiant un opérateur un modificateur Ces 3 champs sont optionnels. Bien sûr, pour écrire un Set, vous devrez incorporer un ou plusieurs de ces champs. 141 Set Analysis Concept du Set Analysis L’identifiant 0 - ensemble vide 1 - demande complète $ - sélection actuelle (veillez à ce que parfois votre graphique ou tableau n’utilise pas la sélection actuelle, mais un Alternate State) $1 - sélection précédente ( $2: la deuxième sélection précédente, etc.) $ _1 - sélection suivante Bookmark01 - nom ou identifiant d'un signet Groupe - nom du groupe (autre État) 142 Set Analysis Concept du Set Analysis L’identifiant Sum ({Book1} [Sales]): vente de la sélection de Book1 Somme ({Groupe1} [Ventes]): ventes du groupe1 de l’Alternate State (la syntaxe est identique) Somme ({1} [Ventes]): somme de tout (toutes les dimensions sont réinitialisées à toutes) Sum ({$} [Sales]): somme de la sélection en cours (= sum ([Ventes]) 143 Set Analysis Concept du Set Analysis L’opérateur +: union des ensembles *: intersection d'ensembles -: Exclusion de deux ensembles /: membres appartenant à un seul des deux ensembles Si vous utilisez les opérateurs avec le signe égal: <Dimension + = un autre jeu>: ajoute le jeu à la sélection en cours <Dimension - = autre jeu>: supprime le jeu de la sélection actuelle 144 Set Analysis Concept du Set Analysis L’opérateur Somme ({1- $} [Ventes]): somme des ventes de la «base de données» sauf la sélection en cours Sum ({GROUP1 * Book1} [Sales]): somme si les ventes pour l'intersection de Group1 et Book1 (le membres appartenant aux deux) Les Sets que nous étudierons sont entre crochets: <>. Ils sont aussi beaucoup plus complexes. Mais Vous pouvez également utiliser les opérateurs: {<set 1> - <set 2>} ou {set 1} - {set 2}: les membres du Set1 qui ne figurent pas dans le Set2 (car nous les supprimons ) 145 Set Analysis Concept du Set Analysis Le modificateur C’est la partie la plus délicate de l'analyse des Sets, avec lui, vous pouvez réduire ou élargir la portée de la sélection utilisée dans une agrégation. Vous pouvez modifier la sélection pour une ou plusieurs dimensions. Une set analysis ne ressemble pas à un clic dans les ListBox. Si vous décidez de définir une dimension sur une valeur spécifique actuellement non sélectionné: - Dans les ListBox, vous obtiendrez une nouvelle sélection - Dans l’analyse des ensembles, vous n’allez PAS: vous allez simplement définir cette dimension sur ce membre (et le l'intersection avec la sélection actuelle peut être vide) 146 Set Analysis Concept du Set Analysis Le modificateur Une Set analysis est calculée avant que le graphique ne soit calculé et redessiné. Comme vous pouvez le constater, ce n'est pas calculé pour chaque ligne / colonne du graphique. Donc, vous ne pouvez pas deviner une gamme de produit en fonction des lignes qui sont des produits. Vous ne pouvez pas deviner une autre série de périodes en fonction des colonnes si la période dimension est en colonne: les totaux cumulatifs que vous pouvez rencontrer ne sont souvent valables que si la période est pas une dimension du graphique. 147 Set Analysis Concept du Set Analysis « Set Analysis » Avantages et Inconvénients • Avantages : – Responsabilise les utilisateurs professionels. – Solution dynamique sans recharger les données. – Plus facile pour comparer une année sur l’autre. • Inconvénients : – Expressions plus complexes. Difficile à suivre. – Fonctionnalités QlikView hors normes. – Exigences plus importantes pour le développeur . 148 Set Analysis Comment utiliser ? Set Analysis – Simple ▫ Sum({$} Sales) ou Sum (Sales) Somme des ventes en fonction de la sélection active ▫ Sum({1-$} Sales) Somme des ventes en fonction de l’inverse de la sélection active ▫ Sum({1} Total Sales) Somme des ventes de toute la base, sans tenir compte de la sélection active ▫ Sum({1} Sales) Somme des ventes par dimension, sans tenir compte de la sélection active ▫ Syntaxe {1} Tous les enregistrements {$} Sélection active uniquement {1-$} L’inverse de la sélection active 149 Set Analysis Comment utiliser ? Set Analysis – Fonctions de recherche ▫ Sum({$ <Année= {2003}>} Sales) Somme des ventes de l’année 2003 uniquement ▫ Sum({$ <Année= {">= 2003"}> } Sales) Somme des ventes des années supérieures ou égales a 2003 ▫ Sum({$ <Année= {">= 2003"}, Pays = {"France"}> } Sales) Somme des ventes des années supérieures ou égales a 2003, uniquement en France ▫ Sum({$ <Année= {"20*"} > } Sales) Somme des ventes pour les années 2000 ▫ Sum({$ <Région= {*} > } Sales) Somme des ventes pour toutes les régions 150 Set Analysis Comment utiliser ? Set Analysis – Variables ▫ Sum({$ <Année= {$(vLastAnnee)}>} Sales) Somme des ventes de l’année précédente (année précédente stockée dans la variable vLastAnnee) ▫ Sum({$ <Année= {$(=vAnnee)}>} Sales) Somme des ventes de l’année (année définie dans la variable vAnnee) ▫ Sum({$ <Année= {≪ <=$(=vAnnee) ≫}>} Sales) Somme des ventes inferieures ou égales a l’année (année définie dans la variable vAnnee) 151 Set Analysis Comment utiliser ? Set Analysis – Evaluation (1) ▫ Sum({$ <Annee= {$(=Only(Annee))}>} Sales) Somme des ventes de l’année sélectionnée ▫ Sum({$ <Annee= {$(=Only(Annee)-1)}>} Sales) Somme des ventes de l’année précédente ▫ Sum({$ <Annee= Annee , Mois={" <=$(=max(Mois)) "}>} Sales) Somme des ventes de toute l’année jusqu’au mois sélectionné Set Analysis – Evaluation (2) ▫ Sum({$ <Annee= {$(=Only(Annee)-1)} , Mois={" <=$(=max(Mois)) "}>} Sales) Somme des ventes de l’année précédente jusqu’au mois sélectionné Set Analysis – Expression imbriquee ▫ Sum({$ <Client= {"=sum({1<Annee = {2007}>}, Sales) > 1000000 " } >} Sales) Chiffre d’affaires des clients qui ont fait plus d’un million de chiffre d’affaire sur l’année 2007 152 Set Analysis Comment utiliser ? Set Analysis – Union ▫ Sum({$ < Annee ={"2003"}+{">2005"}>} Sales) Somme des ventes de l’année 2003 et des ventes supérieures à 2005 ▫ Sum({$ < Annee ={2002,2003}>} Sales) Somme des ventes de l’année 2002 et 2003 ▫ Sum({$ <Annee= {"200*"}>} Sales) Somme des ventes des années 2000 à 2009 Set Analysis – Exclusion ▫ Sum({1-$} Sales) Somme des ventes des années différentes de la sélection active ▫ Sum({$ < Annee ={">2003"}-{"2005"}>} Sales) Somme des ventes des années supérieures à 2003 à l’exclusion de 2005 153 Set Analysis Comment utiliser ? Set Analysis – Intersection ▫ Sum({$ < Annee ={">2003"}*{"<2006"}>} Sales) Somme des ventes des années supérieures à 2003 et inferieures à 2006 Set Analysis – Différence symétrique ▫ Sum({$ < Annee ={">2003"}/{"<2006"}>} Sales) Somme des ventes à l’exception de 2004 et 2006 154 Set Analysis Comment utiliser ? Set Analysis – Modificateurs d’ensembles ▫ Modificateurs d’ensemble [+][-][*][/]= + permet de rajouter une valeur a la sélection active. - permet d’exclure une valeur de la sélection active. * permet de prendre l’intersection avec la sélection active. / permet de prendre la différence symétrique ▫ Sum({$ < Annee +={2003}>} Sales) Ajout systématiquement l’année 2003 à la sélection active ▫ Sum({$ < Annee -={2003}>} Sales) Retire systématiquement l’année 2003 à la sélection active ▫ Sum({$ < Annee *={2003}>} Sales) Affiche uniquement l’année 2003 si elle est sélectionnée dans la sélection active ▫ Sum({$ < Annee /={2003}>} Sales) Exclut l’année 2003 lorsqu’on la sélectionne dans la sélection active 155 Set Analysis Comment utiliser ? Set Analysis – Étapes de création ▫ Etape 1: faire le calcul simple Sum(Sales) ▫ Etape 2: choix du type de selection Sum({ } Sales) $ : Selection active 1 : Toute la base 1-$ : Tout ce qui n’est pas sélectionnée ▫ Etape 3: choix du filtre (valeur, variable, ou expression) Sum({$ <Annee={ }> } Sales) Valeur : 2005 | {2005,2006,2007} Variable : $(=vAnnee) | $(=Only(Annee)-1) Expression : ">= 2003" | "*5" | "<= $(=vAnnee)" ▫ Etape 4: choix de l’operateur d’ensemble Sum({$ <Annee = { 2005 } > } Sales) += : union -= : exclusion *= : intersection /= : xor 156 Set Analysis Utiliser la bonne expression Les données connues Syntaxe: {Sélection <Dimension1 = {membre 1, membre 2,…} [, Dimension2 = {membre 1, membre 2,…}]>} Ex: {<MANUFACTURER_LDESC = {AMBOISE, BELLE, AUTREMENT}>} Ex: {<MANUFACTURER_LDESC = {AMBOISE, BELLE, AUTREMENT}, CATEGORY_LDESC = {ACC}>} Dans la syntaxe globale: Sum ({<MANUFACTURER_LDESC = {AMBOISE, BELLE, AUTREMENT}>} [Valeur Ventes]) 157 Set Analysis Utiliser la bonne expression A vérifier que : - La sélection peut être actuelle (signe $), la base de données (1), un signet ou un groupe (Alternate State). La sélection courante est la sélection par défaut, le $ peut être omis. - Il n'y a pas de virgule (,) entre le jeu et le nom de la mesure - La dimension ou le nom de la mesure doit être placé entre crochets [] si le nom contient des caractères spécifiques comme un espace, un trait d'union (-)… - Les membres sont toujours placés entre accolades {}: quel que soit le moyen de les trouver (par leur nom, par chaîne de recherche, par une fonction) - Les membres nommés sont séparés par une virgule (,) - Les noms de membres numériques ne sont pas entre guillemets simples ou doubles - Les membres du texte sont mis entre guillemets simples ou doubles, mais pas nécessairement s'ils ne contiennent pas des caractères spécifiques comme des espaces 158 Set Analysis Utiliser la bonne expression Des exemples Ex: {<MANUFACTURER_LDESC = {"AMBOISE", "BELLE"}, CATEGORY_LDESC = {"ACC", "PLAQUES FROIDES”}>} Ex: {<MANUFACTURER_KEY = {253, 2789, 1200}, CATEGORY_LDESC = {"ACC", "PLAQUES FROIDES"}>} Si nous n'écrivons rien entre les accolades, le Set est vide: Ex: {<MANUFACTURER_LDESC = {}, CATEGORY_LDESC = {ACC}>} Si nous calculons quelques flags (1 ou 0 selon un test) dans le script, nous pouvons les utiliser facilement dans le set analysis : Sum({<Flag = {1}, Année = {2014}, Mois =>} Ventes) 159 Set Analysis Utiliser la bonne expression Guillemets simples ou doubles, crochets ; QlikView accepte les trois syntaxes pour le texte. Vous pouvez écrire: {<MANUFACTURER_LDESC = {"AMBOISE"}>} {<MANUFACTURER_LDESC = {'AMBOISE'}>} {<MANUFACTURER_LDESC = {[AMBOISE]}>} Et comme il n'y a pas de caractère spécifique dans ce nom de membre, je peux l'écrire d'une 4ème manière: {<MANUFACTURER_LDESC = {AMBOISE}>} Cette technique est très utile lorsque nous incluons une fonction comprenant un Set dans un Set plus global. 160 Set Analysis Utiliser la bonne expression Chaîne de recherche; Parfois, nous voulons obtenir tous les FABRICANTS avec un nom spécifique ou qui contiennent des lettres spécifiques : Syntaxe: {<Dimension = {"* chaîne de recherche *"}>} • * = 0 à plusieurs caractères (P1 * retournera P1, P10, P11…) • ? = 1 caractère (P1? Retournera P10, P11… mais pas P1) Nous pouvons faire plusieurs chaînes de recherche dans le même ensemble: Syntaxe: {<Dimension = {"* search1 *", "texte fixe", "? Earch2 *"}> Ex: {<MANUFACTURER_LDESC = {"ENT *", "? LIS *"}, CATEGORY_LDESC = {"A ??"}>} 161 Set Analysis Utiliser la bonne expression Chaîne de recherche; C’est pourquoi nous obtenons tous les membres (sauf la valeur NULL car les valeurs NULL n’ont aucun caractère) d’une dimension avec l'étoile: <Dimension = {"*"}> ou comme expliqué précédemment en ne plaçant rien à la droite du signe égal <Dimension =>. Les deux Sets suivants sont identiques si vous n’avez aucune valeur NULL dans votre champ. Si vous avez une valeur NULL dans votre champ et souhaitez également la sélectionner, choisissez <Dimension =>. 162 Set Analysis Utiliser la bonne expression Chaîne de recherche - exemples; Ex: TOUS les fabricants, UNE seule catégorie {<MANUFACTURER_LDESC = {"*"}, CATEGORY_LDESC = {"ACC"}>} {<MANUFACTURER_LDESC =, CATEGORY_LDESC = {"ACC"}>} Ex: Tous les FABRICANTS sauf ceux dont le nom commence par ENT {<MANUFACTURER_LDESC = {"*"} - {"ENT *"}>} {<MANUFACTURER_LDESC = - {"ENT *"}>} Ex: Tous les FABRICANTS de la sélection + ceux dont le nom commence par ENT {<MANUFACTURER_LDESC + = {"ENT *"}>} Ex: Tous les FABRICANTS de la sélection sauf ceux dont le nom commence par ENT {<MANUFACTURER_LDESC - = {"ENT *"}>} 163 Set Analysis Utiliser la bonne expression A vérifier que {<MANUFACTURER_LDESC - = {"ENT *"}>} et {<MANUFACTURER_LDESC = {"ENT *"}>} sont très différents. Le premier jeu supprime de la sélection actuelle tous les FABRICANTS dont le nom commence par ENT, tandis que le second ensemble sélectionne tous les FABRICANTS, à l'exception de ceux commençant par ENT Ex: Tous les FABRICANTS, Toutes les catégories quelles que soient les sélections {<MANUFACTURER_LDESC = {"*"}, CATEGORY_LDESC = {"*"}>} Ex: Toutes les années (parce que c'est numérique, sans citation), toutes les catégories {<Année = {*}, CATEGORY_LDESC = {"*"}>} 164 Set Analysis Utiliser la bonne expression A vérifier que QlikView accepte les guillemets simples ou doubles, les crochets également pour la chaîne de recherche: Ex: {<MANUFACTURER_LDESC = {"E *"}, CATEGORY_LDESC = {"A ??"}>} {<MANUFACTURER_LDESC = {‘E *’}, CATEGORY_LDESC = {‘A ??’}}} {<MANUFACTURER_LDESC = {[E *]}, CATEGORY_LDESC = {[A ??]}>} 165 Set Analysis Utiliser la bonne expression Utiliser une limite pour une dimension numérique La plupart du temps, les années sont numériques. C’est également le cas pour de nombreuses clés car QlikView (en tant que SQL) est plus rapide en joignant des clés numériques que des clés de chaîne. La syntaxe est assez étrange car vous devez insérer le code entre guillemets: {<TIME_KEY = {"<12"}>}: tous les membres TIME_KEY de moins de 12 {<TIME_KEY = {"> = 12 <= 18"}>}: membres clés entre 12 et 18 ans, les deux inclus Ex: clés 4, 5, 6 et celles comprises entre 12 et 20 (20 exclues) {<TIME_KEY = {4, 5, 6} + {"> = 12 <20"}>} 166 Set Analysis Utiliser la bonne expression Analyse d’ensemble « Set Analysis » ▫ L’outil Qlikview permettant en une instruction « simple », d’inclure ou d’exclure des données d’une expression ▫ Offre beaucoup plus de flexibilité dans l'analyse que vous pouvez créer des expressions peuvent être ajoutées pour les données en dehors de votre sélection actuelle Critères ▫ Remplace très efficacement une instruction « if » ou un flag ▫ Élimine le besoin de codage de script complexe supplémentaire ▫ Bonnes Pratiques: • Attention lors de l’utilisation d’un set analysis: fonctionnalité « hors normes » • Utiliser des commentaires pour décrire les expressions. 167 Variables 1. A quoi sert ? 2. Quand les utiliser ? 3. Comment les mettre en œuvre ? 168 Variables A quoi sert ? Quand ? A quoi sert ? Une variable dans QlikView est un conteneur stockant une valeur statique ou un calcul, par exemple une valeur numérique ou alphanumérique. Quand ? Lorsque vous utilisez la variable dans le document, toute modification apportée à la variable est appliquée partout où la variable est utilisée. Les variables sont définies dans le script à l'aide de l'éditeur de script, où la variable acquiert sa valeur à partir d'une instruction Let, Set ou d'une autre instruction de contrôle du script de chargement. 169 Variables A quoi sert ? Quand ? Si le premier caractère d'une valeur de variable est un signe égal '=', QlikView tente d'évaluer la valeur sous forme de formule (expression QlikView), puis affiche ou renvoie le résultat plutôt que le texte de la formule. Lorsqu'elle est utilisée, la variable est remplacée par sa valeur. Les variables peuvent être utilisées dans le script pour l’extension du signe dollar et dans diverses instructions de contrôle. Ceci est très utile si la même chaîne est répétée plusieurs fois dans le script, par exemple un chemin. Certaines variables système spéciales seront définies par QlikView au début de l'exécution du script, quelles que soient leurs valeurs précédentes. 170 Variables A quoi sert ? Quand ? Lors de la définition d'une variable, la syntaxe: set variable_name = chaîne ou let variable = expression La commande Set affecte le texte situé à droite du signe égal à la variable, tandis que la commande Let évalue l'expression. Les variables sont sensibles à la casse. 171 Variables Mise en œuvre Utiliser une variable stockant un ou plusieurs membres Syntaxe: <Dimension = {$ (NameVariable)}> Ou <Dimension = {$ (= NameVariable)}> (avec ou sans le signe = devant la variable) Veuillez noter que $ (= NameVariable) interprétera la variable et donc QlikView réécrit la commande avant de l'exécuter. Le contenu de la variable peut contenir plusieurs membres, comme s'ils étaient dans la syntaxe réelle. Les enfermer entre guillemets ou entre parenthèses selon leur nom. Ex: <MANUFACTURER_LDESC = {$ (vChoiceMANUFACTURER)}, CATEGORY_LDESC = {$ (= ChoiceCategory)}> 172 Variables Mise en œuvre Utiliser une variable stockant un ou plusieurs membres $ (NameVariable): il peut être placé entre guillemets ou non, comme dans l'exemple ci-dessous. S'il y a spas des guillemets, vous pouvez en ajouter dans le texte de la variable car les noms des membres contiennent des espaces. 173 Variables Mise en œuvre Utiliser une variable stockant une chaîne de recherche Un ensemble normal: {<MANUFACTURER_LDESC = {"E *"}, CATEGORY_LDESC = {"A ??"}>} La variable vChoiceProduit stocke une chaîne de recherche ainsi que les guillemets "E *": {<MANUFACTURER_LDESC = {$ (vChoixProduit)}, CATEGORY_LDESC = {[A ??]}>} 174 Variables Mise en œuvre Utiliser une variable stockant des membres numérique Avec les clés entières, vous devez inclure le nom de la variable entre guillemets: {<TIME_KEY = {"<$ (vFirstPeriod)"}>} Ou {<TIME_KEY = {"<$ (= vFirstPeriod)"}>} Les périodes entre deux dates: {<TIME_KEY = {"> $ (vFirstPeriod) <$ (= vLastPeriod)"}>} 175 Variables Mise en œuvre Utiliser une variable stockant une dimension Nous avons déjà vu que nous pouvons utiliser des variables avec le signe $. Cette variable peut contenir des membres mais aussi une dimension: Ex: sum ({$ <$ (vDim) = {"*"}>} [Ventes en volume]) Comme la dimension peut contenir des espaces ou des caractères spécifiques, il serait plus prudent d’utiliser le double crochets (rappelez-vous que QV réécrit la syntaxe, donc une fois que votre nom de dimension par un espace remplace le variable, vous ajouteriez des crochets): sum ({$ <[$ (vDim)] = {"*"}>} [Ventes en volume]) 176 Variables Mise en œuvre Utiliser une variable stockant l'ensemble du Set Nous pouvons stocker des membres ou une dimension dans une variable. Pourquoi ne pas mettre toute la syntaxe? Ex: sum ({$ <$ (vSet)>} [Ventes en volume]) Ex: sum ({$ <$ (vSet), CATEGORY_LDESC = "ACC">} [Volume de ventes]) Comme vous le voyez, nous pouvons stocker la syntaxe complète ou une partie de celle-ci! La variable vSet doit contenir une syntaxe valide sauf <> Ceci ressemble à ça: - MANUFACTURER_LDESC = {"*"}, TIME_SDESC = {"P 01/13"} - Année = {$ (= max ({1} Année))}, TIME_LDESC = -… 177 Variables Mise en œuvre Valeurs extrême - Les ensembles vides Il peut arriver que l'ensemble soit vide. Le résultat sera 0. C'est soit quelque chose de désiré, soit quelque chose d’indésirable: - Vous utilisez les accolades sans rien dedans: {} - Vous avez mal saisi les champs ou les membres: Qlikview est sensible à la casse. - Vous avez tapé une mauvaise expression - Vous avez saisi une mauvaise intersection: un produit, un client, mais ce client n’achète pas le produit (0 est donc la bonne réponse) - Vous avez oublié de réinitialiser un champ limité via un contrôle ListBox. 178 Variables Mise en œuvre Valeurs extrême - Les ensembles vides Par exemple, vous avez des marques et produits dans Listbox et l’utilisateur sélectionne un produit. En définissant une marque dans l'ensemble d'analyse, vous pouvez rencontrer un vide parce que le produit choisi n'appartient pas à la marque. Tu dois réinitialiser tous les produits: {<Product =, Brand = {1, 2}>} Pour les périodes, quand on veut une année totale, il serait plus sûr d'écrire dans le set analysis toutes les dimensions qui pourrait être défini via ListBoxes: somme ({$ <Année = {2012}, QUARTIER =, MOIS =, JOUR => [Volume]) Cette fois, nous avons toute l’année, quel que soit le choix effectué par l’utilisateur. 179 Variables Mise en œuvre Valeurs extrême - Les ensembles entières {A partir de la sélection <Dimension1 = {*}>} /////////({*} pour numérique, {"*"} pour texte) Ou: {Sélection de départ <Dimension1 =>} La sélection de départ peut être la sélection actuelle ($ par défaut), l'application complète 1 ou le nom d'un un groupe ou un signet . Si vous voulez que tous les membres d’une même dimension, vous pouvez écrire à la droite du signe égal: - {*} ou {"*"} si la dimension est du texte: sélectionne tous les membres sauf NULL - Rien Comme vous pouvez le voir ci-dessous, le {*} peut être omis. Ex: Tous les FABRICANTS sauf une CATÉGORIE {<MANUFACTURER_LDESC = {"*"}, CATEGORY_LDESC = {"ACC"}>} {<MANUFACTURER_LDESC =, CATEGORY_LDESC = {"ACC"}>} 180 Alternate State 1. Introduction au concept d’Alternate State 2. Mise en œuvre des Alternate State 181 Alternate state Concept d’Alternate state Mixer les alternates states Un alternate state est un moyen de créer plusieurs groupes de données pour comparer les deux en tant que groupe. Par exemple: vous souhaiterez peut-être comparer deux groupes de clients (ou de produits….): ces groupes seront choisis par l’utilisateur via un ListBox pointant sur un champ unique 182 Alternate state Mise en œuvre Mixer les alternates states Comme vous pouvez le constater, nous obtenons 2 sélections différentes pour le champ Société. Ils ne sont plus liés. Ces deux champs peuvent être affichés en 2 ou plusieurs feuilles si vous souhaitez proposer des sélections non liées des différentes feuilles. Comment créer les alternates states 1) Paramètres / Propriétés du document / bouton Alternate states (puis créez les différents groupes que vous peut vouloir offrir à l'utilisateur) 2) Pour un objet: éditer l'objet / choisir Alternate states Attention, cette boîte à options Alternate states ne s'affiche pas si vous n'avez pas effectué la première étape. 3) Pour la feuille, même façon de faire. Mais pour les autres objets de la feuille, si vous voulez qu'ils obtiennent ce Alternate states , choisissez <hérité>. C'est un moyen facile de changer l'État en un seul endroit. 183 Alternate state Mise en œuvre Utilisation d'un seul Alternate States Syntaxe: {[NameOfTheAlternateState] <Dimension1 = {sth} [, reste du Set]>} Si je veux tout de l’alternate state A: Ex: somme ({A}, Ventes) Ci-dessous, je souhaite obtenir l’alternate state A, mais toutes les années. Comme toujours, les crochets sont nécessaire uniquement dans le cas de caractères spécifiques: je peux écrire A ou [A] Ex: somme ({A <Année = {*}>}, Ventes) 184x Alternate state Mise en œuvre Utilisation de plusieurs Alternate state Si vous souhaitez comparer plusieurs groupes de sociétés, vous devez afficher au moins 2 ListBox pour la société utilisant plusieurs alternate states. Mais qu'en est-il des autres dimensions telles que l'année, le mois, les produits… besoin de les afficher aussi en double? La réponse est NON, mais encore une fois, la syntaxe est assez étrange: {[Nom de l'état alternatif] <Dimension1 = [Nom de l'état alternatif] :: [Dimension1]>} Ex: {B <[Année] = [A] :: [Année]>} Ci-dessus, je souhaite obtenir l’alternate staet B, sauf l’année où je souhaite appliquer l’État remplaçant A. 185x Alternate state Mise en œuvre Utilisation de plusieurs Alternate state Noter que : - Si vous voulez comparer à la sélection standard, vous aurez le $ (c’est en fait un état spécifique du Sélection) - Vous ne placez l’alternate state entre [] que si le nom contient des caractères spécifiques - La cote après les deux points-virgules (:) est également comprise entre crochets [] ou rien dépendant de son nom (ici, nous aurions pu écrire <Year = A :: Year> - Vous devez répéter cette syntaxe pour chaque dimension que vous souhaitez partager avec l'autre alternate state (Mois, Semaine, Jour, Produit…) 186x