IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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

Discussion :

Griser une ligne sur deux en tenant compte des enregistrements supprimés à l'affichage [CR 2008]

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 54
    Points : 55
    Points
    55
    Par défaut Griser une ligne sur deux en tenant compte des enregistrements supprimés à l'affichage
    Bonjour,

    Comment griser une ligne sur deux dans un tableau en tenant compte du fait que certains enregistrements sont supprimés de l'affichage ?

    Merci.

  2. #2
    Modérateur
    Avatar de luc_chivas
    Profil pro
    Consultant BO/Crystal Reports
    Inscrit en
    Avril 2004
    Messages
    1 943
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant BO/Crystal Reports

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 943
    Points : 2 720
    Points
    2 720
    Par défaut
    Bonjour,

    Il te faut créer un compteur de ligne en tenant compte de ta condition de suppression..
    dans mon exemple, je n'affiche pas {Command.FT_NUM}=59609.

    J'ain donc une formule dans la section detail qui fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    WhilePrintingRecords;
    if not ({Command.FT_NUM}=59609) then Numbervar line:=line+1
    et toujours dans la section detail dans l'onglet couleur /couleur de fond j'ai la formule

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    NumberVar line;
    if line mod 2 <> 0 then crsilver else DefaultAttribute

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 54
    Points : 55
    Points
    55
    Par défaut
    Merci !
    Nickel chrome.
    Je galèrais vraiment là dessus.

  4. #4
    Membre du Club
    Inscrit en
    Juin 2009
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 96
    Points : 63
    Points
    63
    Par défaut
    luc_chivas > Une question à propos de la solution que tu as donné.

    Dans mon cas j'ai un report avec des enregistrements classé par groupe. Ton compteur que tu le déclares bien dans un champs de formule ? Je me trompe pas ?
    Ce champs de formule tu "l'affiche" dans ta section détail non ? Moi il faudrait que je l'affiche dans mon en-tête de goupe c'est bien ça ?

    Jdébute et jdois dire que jusqu'à présent tes réponses m'ont été bien utile !

  5. #5
    Modérateur
    Avatar de luc_chivas
    Profil pro
    Consultant BO/Crystal Reports
    Inscrit en
    Avril 2004
    Messages
    1 943
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant BO/Crystal Reports

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 943
    Points : 2 720
    Points
    2 720
    Par défaut
    bonjour,

    si tu veux griser tes lignes de détails, ils faut mettre la formule dans les ligne de détails et jouer sur la couleur de fond des lignes de détails.
    tu peux cacher la formule, elle se calculera quand même
    si tu veux griser tout le groupe, il te faut effectivement ne mettre la formule qu'une fois par groupe.. dans l'entête de groupe.. mais appliquer quand même la couleur de fond sur le groupe et sur le detail

  6. #6
    Membre du Club
    Inscrit en
    Juin 2009
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 96
    Points : 63
    Points
    63
    Par défaut
    En fait je veux aussi griser qu'une ligne sur 2 mais y a un concept que j'arrive pas à assimiler c'est comment une variable est partagé sur toutes les lignes détails.

    Dans mon cas j'ai placé ma formule dans la section détail :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     LOCAL NumberVar line; 
    line := line + 1;
    et dans l'option de couleur c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    NumberVar line;
    IF line mod 2 <> 0 then crsilver else DefaultAttribute
    Je sais que c'est parce que je manque de connaissance que ça marche pas. :-/ Mais bon je te pose la question quand même.

  7. #7
    Modérateur
    Avatar de luc_chivas
    Profil pro
    Consultant BO/Crystal Reports
    Inscrit en
    Avril 2004
    Messages
    1 943
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant BO/Crystal Reports

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 943
    Points : 2 720
    Points
    2 720
    Par défaut
    bonjour,
    en fait tu repètes ta variables sur toutes les lignes de détails.. comme tu ne la reinitialise pas, elle est incrémentée à chaque fois que la formule est evaluée.
    donc en fait, la variable "line" va s'incrémenter de 1 à chaque ligne de detail.
    le fait de faire un "mod 2 " dessus va s'appliquer au contenu de cette variable et le resultat de cette opération sera différent 1 fois sur 2

    Mais dis nous ce qui ne fonctionne pas...

    ah si je vois.. il faut que tu rajoute un
    whileprintingrecords au début de la formule que tu mets dans la ligne...

  8. #8
    Membre du Club
    Inscrit en
    Juin 2009
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 96
    Points : 63
    Points
    63
    Par défaut
    Citation Envoyé par luc_chivas Voir le message
    ah si je vois.. il faut que tu rajoute un
    whileprintingrecords au début de la formule que tu mets dans la ligne...
    Bingo ! Maitenant mon compteur s'incrémente (indépendamment du groupe).
    Donc la mon objectif c'est de réinitialiser le compteur à chaque changement de groupe.
    Cela dit ça ne fonctionne toujours pas.
    Si j'utilise cette ligne là dans les options de couleurs, ça fait que du gris :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    LOCAL NumberVar line;
    IF line mod 2 <> 0 then crsilver else crNoColor
    Si j'enlève "LOCAL" ça fait que du blanc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    LOCAL NumberVar line;
    IF line mod 2 <> 0 then crsilver else crNoColor

    [EDIT] Ca fonctionne, je pense que je saisi mieux le sens du local !
    Dans la formule :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    WhilePrintingRecords;
    LOCAL NumberVar line := line + 1
    Dans mes options de couleurs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    NumberVar line;
    IF line mod 2 <> 0 then crsilver else crNoColor

    En somme je comprend que ma variable est déclaré dans ma section détail mais le mot clé "Local" dans ma formule me permet d'y accéder... Ou soit c'est l'inverse. Bon je pense que jvais aller vérifier ça xD

    Dans tous les cas MERCI Luc Chivas !!

  9. #9
    Modérateur
    Avatar de luc_chivas
    Profil pro
    Consultant BO/Crystal Reports
    Inscrit en
    Avril 2004
    Messages
    1 943
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant BO/Crystal Reports

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 943
    Points : 2 720
    Points
    2 720
    Par défaut
    il existe dans l'aide un tuto qui t'expliqueras l'étendue des variables dans un rapport.

    local s'adapte à une variable accessible dans la formule
    global s'adapte à une variable accessible dans le rapport principa
    shared s'adapte à une variable accessible pour le rapport principal et le/les sous rapport(s)

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 54
    Points : 55
    Points
    55
    Par défaut
    Pour réinitialiser le compteur, j'utilise la formule suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    whileprintingrecords;
    numbervar linecnt := 0;

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 13/12/2007, 16h56
  2. [Rave 5.0-Delphi 7] Griser une ligne sur deux
    Par Frank dans le forum Rave
    Réponses: 5
    Dernier message: 09/08/2006, 09h03
  3. [Formulaire continu] une ligne sur deux en gris
    Par genius99 dans le forum IHM
    Réponses: 7
    Dernier message: 30/10/2005, 18h52
  4. [Struts]logic:iterate - une ligne sur deux en couleur
    Par jeb001 dans le forum Struts 1
    Réponses: 24
    Dernier message: 17/10/2005, 15h07
  5. coloriser une ligne sur deux
    Par the0livier dans le forum Langage
    Réponses: 3
    Dernier message: 12/09/2005, 10h54

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