Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Membre éclairé
    Avatar de Reskibil
    Profil pro
    Inscrit en
    mai 2007
    Messages
    561
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : mai 2007
    Messages : 561
    Points : 815
    Points
    815
    Par défaut [SSRS][2k5]Coloration des lignes alternativement
    Bonjour,

    Je voudrais colorer mes lignes alternativement, histoire de faciliter la lecteur du rapport (qui fait quand meme 70 cm de large donc ca peut aider).

    J'ai donc mis dans le background de ma ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =iif(RowNumber(Nothing) Mod 2,"LightSteelBlue","White")
    Mais voila, mes utilisateurs arrivent sur le rapport avec déjà un pays de sélectionner dans une liste. Ce parametre influe sur le dataset. Je me suis rendu compte que le RowNumber numérotait toutes les lignes du dataset, tout pays confondus donc ca donne un résultat pas terrible.
    J'ai essayé de varier les scopes (nothing, dataset, tableau, groupe du tableau) mais ca donne toujours un truc irregulier. Donc si vous avez des idées.

    2nd probleme du meme ordre, mon tableau comporte aussi des filtres sur le tableau lui-meme, donc meme problematique dans le cas d'un tableau filtré.

    Et un dernier pour la route, meme problématique pour colorer les lignes d'un meme projet. Un projet peut avec 1 à x lignes qui se suivent et ce serait pas mal que les lignes d'un meme projet soient de la meme couleur. Les projets sont identifiés par une clé unique ou un numéro de projet unique (en théorie celui-la car venant d'un autre systeme).

    J'ai passé pas mal de temps a regarder et pour le moment, tout ce que je vois c'est une succession de iif mod 2, 3, 4... pour mettre plein de couleurs qu'au moins 2 lignes successives n'aient pas la meme couleur.

    Donc merci d'avance pour vos idées et suggestions.

  2. #2
    Modérateur
    Avatar de elsuket
    Homme Profil pro
    Founder
    Inscrit en
    janvier 2005
    Messages
    5 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Founder
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : janvier 2005
    Messages : 5 820
    Points : 12 316
    Points
    12 316
    Par défaut
    Bonjour,

    Je ne suis pas très vieux sur SSRS et j'ai eu ce petit problème hier. J'ai "triché" en ajoutant à mon DataSet les ID de la table, et j'ai utilisé comme toi le Mod2 pour colorer les lignes.
    Par contre pour gérer l'alternance de la couleur dans les sous-ensembles, là ...
    Je regarderai ça Lundi et je te tiens au courant si j'ai trouvé quelque chose

  3. #3
    Membre éclairé
    Avatar de Reskibil
    Profil pro
    Inscrit en
    mai 2007
    Messages
    561
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : mai 2007
    Messages : 561
    Points : 815
    Points
    815
    Par défaut
    Un petit up car j'ai trouvé des infos pas mal pour la coloration des lignes :
    http://www.microsoft.com/technet/pro...rnrecipes.mspx

    Ca passe par du code et ca marche. Maintenant, ne serait-il pas possible de modifier le code pour qu'il colore les lignes par groupe.

    Exemple :
    J'ai 5 lignes :
    1
    2
    3
    3
    4

    "1" et les 2 "3" devraient avoir la meme couleurs et "2" et "4" en blanc par exemple (les couleurs importent peu).

    Je met le code à ajouter dans le rapport des fois que quelqu'un à qui c aparle passe par là (j'ai essayé, ca a pas l'air compliqué mais j'y connais vraiment rien):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Private bOddRow As Boolean
    '*************************************************************************
    ' -- Display green-bar type color banding in detail rows
    ' -- Call from BackGroundColor property of all detail row textboxes
    ' -- Set Toggle True for first item, False for others.
    '*************************************************************************
    Function AlternateColor(ByVal OddColor As String, _
             ByVal EvenColor As String, ByVal Toggle As Boolean) As String
        If Toggle Then bOddRow = Not bOddRow
        If bOddRow Then
            Return OddColor
        Else
            Return EvenColor
        End If
    End Function
    Et dans le background des lignes :
    =Code.AlternateColor("AliceBlue", "White", True) pour la 1ere colonne

    et
    =Code.AlternateColor("AliceBlue", "White", False) pour toutes les autres

  4. #4
    Membre éclairé
    Avatar de Reskibil
    Profil pro
    Inscrit en
    mai 2007
    Messages
    561
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : mai 2007
    Messages : 561
    Points : 815
    Points
    815
    Par défaut
    Bon bah trouvé héhé (non sans mal)

    Alors le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    Private bOddRow As Boolean, n As Integer
     
    Function AlternateColor(ByVal OddColor As String, _
             ByVal EvenColor As String, ByVal Toggle As Boolean, ByVal projno As String) As String
    'on inverse la couleur de base a chaque ligne
    bOddRow = Not bOddRow 
     
    'si le n° de projet est le meme qu'a la ligne précédente, on réinverse la couleur
    If projno = n then bOddRow = Not bOddRow
     
    'n prend la valeur du n° de projet de la ligne
    n = projno
     
    'En fonction de bOddRow, on renvoie la couleur
    If bOddRow Then
            Return OddColor
        Else
            Return EvenColor
        End If
    End Function
    A mettre dans le code du rapport (click droit, propriétés puis code).

    Ensuite, l'appel de la fonction :
    =Code.AlternateColor("LightGrey", "White", True, Fields!Project_Number.Value) pour la 1ere colonne
    et
    =Code.AlternateColor("LightGrey", "White", False, Fields!Project_Number.Value) pour les autres

    Dans mon cas, le tri est fait sur le Project_number et c'est la valeur qui sert pour regrouper les lignes et donc les couleurs. Après on peut modifier à volonté. Par exemple, en inversant les True et False des appel de fonction, ca va colorer une colonne sur deux et non les lignes, on peut aussi faire un damier etc...

  5. #5
    Membre actif
    Homme Profil pro
    Consultant communication & réseaux
    Inscrit en
    octobre 2013
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant communication & réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : octobre 2013
    Messages : 86
    Points : 206
    Points
    206
    Par défaut
    Salut,

    merci c'est justement ce que je cherchais !

    @+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [JTable] coloration des lignes d'une JTable
    Par MathiasM dans le forum Composants
    Réponses: 3
    Dernier message: 22/06/2009, 10h19
  2. [SSRS][2k5]Coloration des lignes d'un rapport
    Par gassisprog dans le forum SSRS
    Réponses: 2
    Dernier message: 13/11/2008, 17h09
  3. [SSRS][2k5] Personnalisation des messages d'erreur
    Par Reskibil dans le forum SSRS
    Réponses: 0
    Dernier message: 18/03/2008, 17h19
  4. Coloration des lignes d'un tableau OnClick
    Par Camomille dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 01/01/2008, 18h02
  5. Coloration des lignes une sur deux
    Par ESVBA dans le forum Word
    Réponses: 2
    Dernier message: 06/07/2007, 14h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo