Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > Cognos
Cognos Forum d'entraide Cognos : Impromptu, Powerplay, transformer,...
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/06/2011, 16h42   #1
Futur Membre du Club
 
Inscription : mars 2008
Messages : 53
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 53
Points : 15
Points : 15
Par défaut [Report Studio 8.4] : masquer colonne utilisée dans un crosstab avec style conditionnel

Bonjour,

Situation : j'ai dû ajouter une colonne à un crosstab (3 dimensions en lignes et 2 dimensions en colonnes) afin de pouvoir appliquer un style conditionnel. Le style conditionnel nécessitant d'afficher dans le crosstab les données sur lesquelles il se base et n'ayant pas besoin d'afficher la colonne supplémentaire, je dois donc ne pas l'afficher.

Pour ne pas afficher cette donnée (colonne et son entête), j'ai tenté le box type=none mais cela fait foirer le crosstab.

Ultime solution apparemment : jouer avec des padding = 0 / font = 0 / largeur et hauteur de colonne = 0 (size and overflow).
Et je me retrouve quand même avec une colonne visible que je peux éventuellement "maquiller" pour ressembler à une grosse bordure (mais trop grosse pour affichage en pdf).

Quelqu'un a t'il une meilleure solution ?

Merci pour votre aide.
antoine_59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2011, 12h02   #2
Membre du Club
 
Inscription : mars 2010
Messages : 105
Détails du profil
Informations forums :
Inscription : mars 2010
Messages : 105
Points : 51
Points : 51
Citation:
Envoyé par antoine_59 Voir le message
Pour ne pas afficher cette donnée (colonne et son entête), j'ai tenté le box type=none mais cela fait foirer le crosstab.
Je parie que t'as juste modifié le box type de l'entête.
Il faudrait également modifier les box type de toute la colonne.

Dis-moi si si ça marche
hittony est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2011, 14h52   #3
Membre Expert
 
Avatar de Sunchaser
 
Homme Vincent
OPNI
Inscription : décembre 2004
Messages : 1 668
Détails du profil
Informations personnelles :
Nom : Homme Vincent
Âge : 41
Localisation : France, Manche (Basse Normandie)

Informations professionnelles :
Activité : OPNI
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : décembre 2004
Messages : 1 668
Points : 2 036
Points : 2 036
Salut,

Je me suis livré a une petite expérience...
Partant du principe que:
j'avais un champs <continent> pour les lignes de ma crosstab,
trois champs de résultats pour les colonnes ( <nombre_de_pays>, <nombre_de_ville>, <nombre_habitants> ),
que je voulais ne montrer que les 2 premières colonnes mais formater une ou 2 colonnes sur les résultats de la troisième,
. j'ai donc déposé en colonne uniquement la première et la troisième, puis dans la troisième - au niveau de "Crosstab intersection" - j'ai défini la propriété "Define Content" -> Yes
. la colonne était maintenant vide, j'ai déposé dedans le DataItem correspondant a la deuxième colonne dont je voudrais montrer les valeurs, <nombre_de_ville>
. pour les lignes de la crosstab, au niveau "Crosstab Node Member", j'ai édité la propriété "Properties" et coché la case correspondant a la deuxième colonne dont je voudrais montrer les valeurs, <nombre_de_ville>
. j'ai modifié l'entête de colonne de la seconde colonne afin de ne plus montrer quoi que ce soit en rapport avec <nombre_habitants>.

De ce fait, je peut appliquer un style conditionnel sur les valeurs montrées dans la crosstab, style conditionnel basé sur les valeurs de <nombre_habitants> mais sans que ce champs apparaisse.

Ceci n'étant qu'un petit test rapide, il se peut que tu sois dans une situation ou ta crosstab est plus complexe et peut être cette astuce ne fonctionnera pas, je ne garantie rien.

@hittony: j'ai l'impression que la propriété dont tu parles ("box type de toute la colonne") n'existe que dans les objets de type List et non Crosstab; au niveau Crosstab, la propriété Box Type n'existe qu'au niveau des "Crosstab intersection" ou "Crosstab Node Member". Sinon, au dessus dans la hierarchie, on masquerait plus de colonnes ou de lignes qu'on ne le voudrait je pense.

@+
__________________
Citation:
Aux persévérants aucune route n'est interdite
Question: un ver a pied, c'est un millepatte unijambiste ?

Mon dernier trip musical

Citation:
Quiconque construit un jardin devient un allié de la lumière, aucun jardin n'étant jamais surgi des ténèbres
A priori un proverbe Perse ...
Sunchaser est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2011, 17h20   #4
Membre du Club
 
Inscription : mars 2010
Messages : 105
Détails du profil
Informations forums :
Inscription : mars 2010
Messages : 105
Points : 51
Points : 51
@Sunchaser C'est pas tous les jours qu'on peut voir un tel exemple avec autant de précision.

J'ajoute:
"Crosstab intersection" et "Crosstab Node Member" ont tous les deux la propriété "Box Type". Effectivement, si tu masque "Crosstab Columns", tu masqueras toutes les entêtes de colonnes.

Quand j'ai dit "box type de toute la colonne", ça voulait dire tous les box type de chaque case de la colonne, techniquement dit, tous les "Crosstab intersection" de la colonne et aussi son "Crosstab Node Member".
hittony est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2011, 18h47   #5
Futur Membre du Club
 
Inscription : mars 2008
Messages : 53
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 53
Points : 15
Points : 15
Bonjour,

Merci pour votre réponse rapide :o)

@hittony : oui j'ai bien testé avec box type=none sur la colonne et son entête et ça ne marche pas. Le crosstab ne retourne pas toutes les données (en colonnes j'ai 2 dimensions : disons type et période...et je n'ai pas de données pour le 2ème type).

@Sunchaser : merci pour ton aide détaillée. J'ai tenté mais ça ne marche pas chez moi, je n'ai aucune données pour la mesure. D'après le descriptif de "Properties", ça me semble contradictoire par rapport à ton exemple. J'ai l'impression que "Properties" c'est pour définir les données auxquelles on fait référence mais qui ne sont pas affichées dans le crosstab (alors que toi tu fais référence à une donnée déjà présente dans le crosstab).
Donc j'ai tenté d'insérer la mesure que je souhaite afficher et définir sur chaque cross tab node member une référence au champ nécéssaire aux conditonal style et non nécéssaire à l'affichage...mais ça ne marche pas :o(

Je suis certain qu'il y a une solution mais il faut pas mal chercher pour y arriver j'ai l'impression :o(

Si vous avez d'autres idées, je suis preneur :o)

Merci pour votre aide.
antoine_59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2011, 19h15   #6
Membre Expert
 
Avatar de Sunchaser
 
Homme Vincent
OPNI
Inscription : décembre 2004
Messages : 1 668
Détails du profil
Informations personnelles :
Nom : Homme Vincent
Âge : 41
Localisation : France, Manche (Basse Normandie)

Informations professionnelles :
Activité : OPNI
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : décembre 2004
Messages : 1 668
Points : 2 036
Points : 2 036
Bonsoir,

Juste pour être sur , je poste un petit screenshot avec en surligné jaune l'élément ou j'ai édité "Properties", c'est bien le noeud qui donne les lignes; si tu essaies au niveau des colonnes, tu dois avoir une erreur normalement.

Sinon, quelle est la définition de l'agrégation pour les champs résultat que tu as mis dans la crosstab ?
Dans le test que j'ai fait, j'ai pour "Aggregate function" : Total et pour "Rollup Aggregate function" : Automatic.
Cela peut avoir une influence ...

@+
Images attachées
Type de fichier : png img_cognos_ct.PNG (2,3 Ko, 13 affichages)
__________________
Citation:
Aux persévérants aucune route n'est interdite
Question: un ver a pied, c'est un millepatte unijambiste ?

Mon dernier trip musical

Citation:
Quiconque construit un jardin devient un allié de la lumière, aucun jardin n'étant jamais surgi des ténèbres
A priori un proverbe Perse ...
Sunchaser est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2011, 10h19   #7
Futur Membre du Club
 
Inscription : mars 2008
Messages : 53
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 53
Points : 15
Points : 15
Bonjour,

La requête qui alimente le crosstab est issue d'une jointure entre 2 requêtes. La mesure à afficher et en "automatic" dans la requête et en aggregate function=average / roll up aggregate function=automatic dans la sous requête.
La mesure sur laquelle je me base pour le conditional style est en automatic dans la requête et dans la sous requête c'est aggregate function=total / roll up aggregate function=average.

J'ai donc fait reproduit ta procédure mais sans succès.

J'ai donc un crosstab avec :
- 3 dimensions en lignes : marque / numéro / libellé
- 2 dimensions en colonnes : type / période
- 1 mesure à afficher : "moyenne vente marque"
- 1 mesure à ne pas afficher et à utiliser pour le conditional style de "moyenne vente" : "moyenne nationale"

Ce que j'ai fait :

- création crosstab
- je dépose les dimensions en lignes et colonnes
- je dépose "moyenne nationale" en mesure
- define contents = yes sur "moyenne nationale" (colonne vide)
- je dépose "moyenne vente marque" à la place de "moyenne nationale" (colonne toujours vide et dans les propriétés de la mesure je vois Data Item / Expression = référence à la mesure au niveau de la sous requête et non la requête)
- sur les 3 dimensions en ligne je définis "Properties" sur "moyenne vente marque"

Résultat exécution : le crosstab s'affiche mais la mesure ne s'affiche pas.

J'ai fait comme il faut ?

Des idées ?

Merci pour votre aide.
antoine_59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2011, 15h18   #8
Membre Expert
 
Avatar de Sunchaser
 
Homme Vincent
OPNI
Inscription : décembre 2004
Messages : 1 668
Détails du profil
Informations personnelles :
Nom : Homme Vincent
Âge : 41
Localisation : France, Manche (Basse Normandie)

Informations professionnelles :
Activité : OPNI
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : décembre 2004
Messages : 1 668
Points : 2 036
Points : 2 036
Bonjour,

Désolé antoine_59, il faudrait que je prenne le temps de faire un autre test afin de me retrouver dans la même position que toi.
Mais je ne pense pas avoir le temps dans les 2 jours qui viennent, trop de taf.
Je pense malgré tout qu'on ne serait pas loin...

Je reviendrais plus tard la dessus, si ce n'est pas trop tard.

Bonne chance,
Désolé encore,
@+
__________________
Citation:
Aux persévérants aucune route n'est interdite
Question: un ver a pied, c'est un millepatte unijambiste ?

Mon dernier trip musical

Citation:
Quiconque construit un jardin devient un allié de la lumière, aucun jardin n'étant jamais surgi des ténèbres
A priori un proverbe Perse ...
Sunchaser est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2011, 16h59   #9
Futur Membre du Club
 
Inscription : mars 2008
Messages : 53
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 53
Points : 15
Points : 15
Ce n'est pas trop urgent.

J'ai également l'impression qu'il ne manque pas grand chose pour que ça fonctionne!

Merci pour ton aide.

A+
antoine_59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/07/2011, 19h32   #10
Futur Membre du Club
 
Inscription : mars 2008
Messages : 53
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 53
Points : 15
Points : 15
Hello,

J'ai trouvé une solution qui fonctionne, enfin presque...

La voici :
Au lieu d'utiliser un data item "Type" et une mesure "moyenne vente marque", j'ai supprimé le "Type" et j'ai créé une mesure par type : "moyenne vente marque - type 1" et "moyenne vente marque - type 2"

J'ai donc recréé le crosstab avec pareil en lignes, et en colonnes j'ai pu déposer les 2 mesures et Période pour avoir : "moyenne vente marque - type 1" avec les périodes en dessous (à gauche) et "moyenne vente marque - type 2" avec les périodes en dessous (à droite). J'ai donc en quelque sorte "dimensioné" les mesures par type.

Sur "Properties" des lignes, j'ai bien coché les données non affichées dans le crosstab auxquelles on fait référence.

Au niveau des chiffres c'est OK.

Par contre le Conditional Style n'est pas toujours correctement appliqué pour les comparaisons avec des valeurs très proches (du genre 75,2 >= 75,1 >> false). C'est pourtant OK avec une liste.

La requête qui alimente le crosstab est issue d'une jointure entre 2 requêtes.
Prenons l'exemple du Conditional Style pour "moyenne vente marque - type 1" : on va donc comparer les valeurs de "moyenne vente marque - type 1" (issue de sous requête 1 avec aggregate function=automatic et rollup aggregate=automatic) et "moyenne vente marque - type 1 All" (issue de sous requête 2 avec aggregate function=none et rollup aggregate=none).
Apparemment l'Automatic doit arrondire à l'unité mais je ne sais pas comment faire autrement !

J'ai donc joué avec aggregate function / roll up aggregate et j'ai aussi tenté un "round(cast (mesure as float),1)" sur les mesures comparées mais sans succès.

J'ai donc réussi à supprimer la colonne vide mais j'ai créé un nouveau problème : le style conditionnel n'est pas correctement appliqué

Je vous remercie d'avance pour vos idées !


Antoine
antoine_59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2011, 09h56   #11
Futur Membre du Club
 
Inscription : mars 2008
Messages : 53
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 53
Points : 15
Points : 15
Quelqu'un ?
Vous êtes en vacances ?

Merci.
antoine_59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/07/2011, 16h01   #12
Membre Expert
 
Avatar de Sunchaser
 
Homme Vincent
OPNI
Inscription : décembre 2004
Messages : 1 668
Détails du profil
Informations personnelles :
Nom : Homme Vincent
Âge : 41
Localisation : France, Manche (Basse Normandie)

Informations professionnelles :
Activité : OPNI
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : décembre 2004
Messages : 1 668
Points : 2 036
Points : 2 036
Bonjour,

Bon, je dois me résoudre a dire que je plante ... je déteste ça, mais de mon côté je ne pense pas arriver a trouver une solution viable.
Ce n'est pas la première fois que je plante sur ce problème, j’espérais cette fois pouvoir trouver une solution, mais non, toujours pas.
Dans une situation un peu plus compliquée que celle de mon premier test / exemple, pas moyen d'avoir en même temps les données affichées (et les bonnes) et le bon formatage.
De mon côté, j'abandonne, mais j'aimerais vraiment voir une solution un de ces jours.

En revanche, par rapport a ce que tu disais ici:
Citation:
Envoyé par antoine_59 Voir le message
Et je me retrouve quand même avec une colonne visible que je peux éventuellement "maquiller" pour ressembler à une grosse bordure (mais trop grosse pour affichage en pdf).
Je ne suis pas trop d'accord, surtout sachant que si tu fais "Define Content = yes" dans la colonne a cacher, tu peut virer le DataItem du niveau "Crosstab Intersection", tout en gardant le champs "valide" puisqu'il sera toujours dans la crosstab en tant que "Crosstab Node member" / colonne.
En jouant avec ceci et le formatage, on peut faire disparaitre la colonne (du moins je pense que c'est suffisant); je mets en pièce jointe une petite image d'un extrait PDF test zoomé a 800 % et je trouve que l'on ne voit pas beaucoup qu'il y a en fait une seconde colonne (ou plutôt 2 colonnes qui en font une).
Donc dans une beau rapport bien propre, visualisé normalement, ca doit passer...

@+
Images attachées
Type de fichier : png SNAG_Program-0135.PNG (1,8 Ko, 3 affichages)
__________________
Citation:
Aux persévérants aucune route n'est interdite
Question: un ver a pied, c'est un millepatte unijambiste ?

Mon dernier trip musical

Citation:
Quiconque construit un jardin devient un allié de la lumière, aucun jardin n'étant jamais surgi des ténèbres
A priori un proverbe Perse ...
Sunchaser est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2011, 12h23   #13
Futur Membre du Club
 
Inscription : mars 2008
Messages : 53
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 53
Points : 15
Points : 15
Salut Sunchaser,

J'ai également abandoné et je me contente d'une bonne solution de contournement avec donc une colonne vide affichée à droite de chaque valeur affichée.
C'est un peu frustrant techniquement mais je ne peux pas passer trop de temps là dessus

Donc pour réduire le plus possible la colonne dont je n'ai pas besoin, j'ai joué avec le define content=yes, padding = 0, font=0 et hauteur/largeur=0.

Résultat : colonne très discréte en html, un peu plus visible en pdf et facilement supprimable en Excel.

Je laisse donc le sujet non résolu si quelqu'un a une meilleure solution pour résoudre le souci !

Merci.
antoine_59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h00.


 
 
 
 
Partenaires

Hébergement Web