Trucs et astuces
Les éléments HTML
Les éléments HTML permettent d’aller plus loin dans la personnalisation et le dynamisme d’un rapport. Ils permettent d’utiliser du code JavaScript ou HTML dans le rapport, par exemple pour ajouter des infobulles, remplacer certaines options d’affichage par défaut de Report Studio ou encore inventer de nouvelles fonctionnalités. De nombreux exemples sont disponibles sur Internet et facilement reproductibles (des connaissances en JavaScript ou HTML sont recommandées, notamment pour la maintenance du code).
L’objectif ici n’est pas de fournir des solutions pratiques clé en main, mais bien d’illustrer l’utilisation de ces objets.
L’Élément HTML se trouve dans la section AVANCÉ de la boîte à outils au niveau de la page de rapport.
1. Ajout d’infobulle avec un élément HTML
Les infobulles permettent d’ajouter des informations dans le rapport sans le surcharger. Le texte (par exemple, une explication ou un rappel d’une règle de calcul) n’est visible que lorsque le pointeur de la souris passe sur l’objet ciblé (par exemple, le titre d’un graphique ou d’une liste).
On va créer un nouveau rapport et y ajouter une table formée d’une colonne et de deux lignes. La première intégrera le titre, et la deuxième une liste....
Modifications des infobulles dans les graphiques
Lorsque le pointeur de la souris passe sur une zone d’un graphique, par exemple une colonne, une infobulle résumant les différentes valeurs de la zone apparaît par défaut (valeur des axes et de la mesure). Il est possible de modifier le contenu de cette infobulle en y ajoutant du texte et même des calculs, par exemple le pourcentage que représente la zone de la colonne par rapport à la colonne entière. De cette manière, il est possible d’ajouter de l’information sans surcharger le graphique.
Il faut créer un nouveau rapport contenant un graphique, ici les ventes en fonction des types de commandes par ligne de produits.
Le libellé des infobulles est modifiable grâce à la propriété Libellé personnalisé pour chaque élément du graphique, que ce soit les mesures ou les éléments des différents axes.
Il faut sélectionner l’option Afficher de la propriété Libellé personnalisé. Un nouvel élément apparaît sous la donnée élémentaire concernée. Par défaut, c’est un élément de texte mais il est possible de modifier la source du texte en choisissant plutôt la valeur ou le libellé de la donnée élémentaire, une expression...
Utilisation d’une image et d’un accès au détail pour exporter un rapport dans un autre format
Dans le cadre de la conception d’un rapport, il peut être utile (et visuellement agréable) de disposer d’icônes ou d’images permettant d’ouvrir le rapport dans un certain format ou d’enregistrer la version du rapport en PDF depuis le rapport lui-même, et non en utilisant l’icône d’exécution de Cognos.
Comme vu précédemment, il est possible d’appeler un rapport depuis un autre grâce aux accès au détail. L’idée ici est donc de créer un accès au détail vers le rapport lui-même, en renseignant un autre format, par exemple Excel ou PDF, lors du passage de paramètres dans la définition de l’accès au détail. De cette manière, l’utilisateur peut rester sur le rapport HTML et faire d’autres analyses, tout en exportant une version du rapport dans un autre format. Cette manière de faire est très pratique, notamment pour des rapports n’ayant pas de page d’invite, les invites étant dans le rapport lui-même. Il sera donc possible de choisir certaines valeurs de paramètres, puis d’exporter le résultat, puis de continuer l’analyse et de modifier les valeurs des invites, et ce, sans sortir du...
Créer un rapport avec des invites intégrées à la page principale
Les rapports peuvent être conçus de différentes manières, notamment en fonction de l’information qu’ils présentent et de l’utilisation qui va en être faite. Le rapport classique contient en général une page d’invite grâce à laquelle l’utilisateur peut filtrer les données qu’il souhaite visualiser ou extraire. Ce type de rapport est utile et suffisant pour des extractions ponctuelles, par exemple l’extraction des ventes par pays durant le mois qui vient de s’écouler. L’utilisateur sait à l’avance ce dont il va avoir besoin et un rapport simple fait tout à fait l’affaire.
L’utilisation qui sera faite du rapport peut (et doit) influer sur sa conception, en particulier lorsque le rapport est utilisé pour faire de l’analyse de données. C’est-à-dire lorsque les utilisateurs exécuteront le rapport maintes et maintes fois, avec différentes valeurs pour les invites, afin de passer au crible les données, de trouver des discordances, ou encore d’accéder à certaines données en particulier.
Dans ce cas, il est très utile et confortable d’avoir les invites à disposition dans la page principale du rapport, au lieu d’une page d’invite classique. Grâce à cela, l’utilisateur n’a pas à relancer le rapport depuis le portail à chaque exécution : il peut rester dans le rapport et ne modifier par exemple qu’un seul paramètre sans avoir à refaire la même sélection à chaque exécution. Ce genre de rapport est très apprécié par les utilisateurs, car il offre un certain dynamisme au moment où ils naviguent dans les données, où ils exécutent différentes requêtes en ne changeant que certains paramètres. Le rapport ainsi conçu a tout simplement un aspect plus moderne que le classique rapport...
Présentation de quelques macros
Si les fonctions servent à transformer les données, les macros agissent, elles, à un niveau supérieur, permettant par exemple d’accéder à certains paramètres du rapport ou encore à des paramètres de session, comme le nom de l’utilisateur, sa langue, etc. Elles donnent également la possibilité de travailler sur la sortie du résultat, par exemple en ajoutant des guillemets ou des apostrophes autour de chaque valeur, ou encore d’organiser le résultat sous forme de tableau.
Les macros peuvent être utilisées de diverses manières. Elles peuvent être intégrées à un code SQL (également dans Framework Manager), à la définition d’une expression de donnée élémentaire, de filtres, etc.
L’utilisation de macros requiert des connaissances avancées, tant pour le codage que pour leur compréhension. L’objectif de cette section est de présenter quelques macros, leur syntaxe et quelques cas d’utilisation, sans prétention à l’exhaustivité.
Dans Report Studio, les macros sont disponibles dans les expressions de donnée élémentaire, sous l’onglet Macros, situé dans le cadre des objets insérables, sur la gauche.
Au niveau de la syntaxe...
Utilisation de code JavaScript grâce à un contrôle personnalisé
Comme il a été vu précédemment, il est possible grâce aux éléments HTML d’utiliser du code HTML et même JavaScript afin d’agir sur certains éléments. Il est également possible de créer des fonctionnalités grâce à JavaScript et de les utiliser dans divers rapports. Au lieu de recréer les mêmes fonctions dans différents rapports, il est recommandé de centraliser le code JavaScript de ces fonctions afin de faciliter sa maintenance. De cette manière, le code est stocké sur le serveur dans un répertoire dédié et le développeur n’a qu’à appeler ce code pour utiliser la fonctionnalité voulue.
Il existe un objet à cet effet dans la boîte à outils de Report Studio, sous la section AVANCÉ : le Contrôle personnalisé. Pour l’illustrer, prenons l’exemple de rapport de Cognos intitulé Ventes globales.
Le code JavaScript utilisé dans ce rapport sert à cacher ou à montrer la zone des sélections grâce au bouton avec une petite flèche. Cet exemple convient parfaitement à l’utilisation d’un contrôle personnalisé et au stockage du code sur le serveur puisque...
Organisation du travail dans un rapport
L’organisation du travail est subjective et il n’existe pas de recette miracle. Néanmoins, certaines bonnes pratiques sont utiles, surtout en cas de rapports complexes et/ou de développements à plusieurs développeurs. Par ailleurs, les développeurs quittant parfois leur entreprise, une certaine organisation est utile pour faciliter le passage de connaissances.
1. Nommage des éléments
Le nommage des éléments n’est pas un sujet propre à Report Studio, loin de là. L’important est de respecter quelques règles en la matière. Les développeurs doivent les établir de concert ou l’entreprise doit fournir une charte à respecter.
En ce qui concerne le nommage des éléments, rien de bien sorcier : il s’agit surtout de pouvoir identifier facilement et rapidement les différents éléments. Il est possible, entre autres, d’ajouter un préfixe aux noms des éléments : par exemple, Var_ s’il s’agit d’une variable, RI_ s’il s’agit d’une requête d’invite, ou RQ_ si c’est une requête de données.
Ce genre de règles permet d’avoir un rapport organisé et compréhensible. Bien évidemment, pour un rapport contenant peu de requêtes, l’application de ces règles ne fait pas une grande différence. Mais dans un rapport complexe contenant des dizaines de requêtes, il est facile de vite s’y perdre. Un minimum d’organisation est donc toujours souhaitable.
Par ailleurs, lors du débogage de rapports (et lorsque les messages d’erreur sont lisibles), le fait de savoir si l’élément en cause est une variable, par exemple, peut accélérer le processus de recherche.
Concernant les éléments de données élémentaires dans les requêtes, il est plus simple pour...
Accès au détail d’un rapport en dimensionnel vers un rapport en relationnel
Comme il a été vu antérieurement, un modèle dimensionnel est mieux adapté à des valeurs agrégées, celles-ci ayant moins de lignes. Mais surtout, les dimensions, et donc les axes d’analyse, ont un nombre de membres limités, ce qui est plus que recommandé dans la conception d’un modèle dimensionnel.
Dans l’idéal, il faudrait disposer de deux modèles (ou de deux espaces de noms dans le même modèle) dans Framework Manager : un premier modèle en étoile ayant des tables sources agrégées qui correspondent au modèle dimensionnel, et un modèle relationnel, basé sur des tables détaillées.
Dans ce cas, le rapport dit principal et composé de graphiques, tableaux croisés, etc. présentant des données agrégées serait basé sur le modèle dimensionnel et permettrait à l’utilisateur de réaliser des analyses de haut niveau et de naviguer dans les données grâce aux fonctionnalités du modèle dimensionnel. Le ou les rapports détaillés (généralement des listes ou des tableaux croisés) seraient basés sur le modèle relationnel et permettraient d’extraire...