|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Futur Membre du Club
![]() Inscription : mars 2008 Messages : 53 ![]() |
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. |
|
|
00
|
|
|
#2 |
|
Membre du Club
![]() Inscription : mars 2010 Messages : 105 ![]() |
|
|
|
00
|
|
|
#3 | ||
|
Membre Expert
![]() Vincent OPNI Inscription : décembre 2004 Messages : 1 668 ![]() |
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:
Mon dernier trip musical Citation:
|
||
|
|
00
|
|
|
#4 |
|
Membre du Club
![]() Inscription : mars 2010 Messages : 105 ![]() |
@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". |
|
|
00
|
|
|
#5 |
|
Futur Membre du Club
![]() Inscription : mars 2008 Messages : 53 ![]() |
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. |
|
|
00
|
|
|
#6 | ||
|
Membre Expert
![]() Vincent OPNI Inscription : décembre 2004 Messages : 1 668 ![]() |
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 ... @+
__________________
Citation:
Mon dernier trip musical Citation:
|
||
|
|
00
|
|
|
#7 |
|
Futur Membre du Club
![]() Inscription : mars 2008 Messages : 53 ![]() |
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. |
|
|
00
|
|
|
#8 | ||
|
Membre Expert
![]() Vincent OPNI Inscription : décembre 2004 Messages : 1 668 ![]() |
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:
Mon dernier trip musical Citation:
|
||
|
|
00
|
|
|
#9 |
|
Futur Membre du Club
![]() Inscription : mars 2008 Messages : 53 ![]() |
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+ |
|
|
00
|
|
|
#10 |
|
Futur Membre du Club
![]() Inscription : mars 2008 Messages : 53 ![]() |
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 |
|
|
00
|
|
|
#11 |
|
Futur Membre du Club
![]() Inscription : mars 2008 Messages : 53 ![]() |
Quelqu'un ?
Vous êtes en vacances ? Merci. |
|
|
00
|
|
|
#12 | |||
|
Membre Expert
![]() Vincent OPNI Inscription : décembre 2004 Messages : 1 668 ![]() |
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:
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... @+
__________________
Citation:
Mon dernier trip musical Citation:
|
|||
|
|
00
|
|
|
#13 |
|
Futur Membre du Club
![]() Inscription : mars 2008 Messages : 53 ![]() |
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. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com