Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > Crystal Reports > Débuter
Débuter Forum d'entraide pour débuter avec Crystal Reports
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 14/02/2011, 16h01   #1
Nouveau Membre du Club
 
Inscription : décembre 2010
Messages : 35
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : décembre 2010
Messages : 35
Points : 25
Points : 25
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.
bens67 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 15/02/2011, 18h00   #2
Membre Expert
 
Avatar de luc_chivas
 
Inscription : avril 2004
Messages : 894
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : avril 2004
Messages : 894
Points : 1 049
Points : 1 049
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 :
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 :
1
2
NumberVar line;
IF line mod 2 <> 0 then crsilver else DefaultAttribute
__________________
Luc
luc_chivas est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 16/02/2011, 08h59   #3
Nouveau Membre du Club
 
Inscription : décembre 2010
Messages : 35
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : décembre 2010
Messages : 35
Points : 25
Points : 25
Merci !
Nickel chrome.
Je galèrais vraiment là dessus.
bens67 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 17/02/2011, 10h25   #4
Nouveau Membre du Club
 
Inscription : juin 2009
Messages : 90
Détails du profil
Informations forums :
Inscription : juin 2009
Messages : 90
Points : 32
Points : 32
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 !
Cryos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/02/2011, 10h58   #5
Membre Expert
 
Avatar de luc_chivas
 
Inscription : avril 2004
Messages : 894
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : avril 2004
Messages : 894
Points : 1 049
Points : 1 049
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
__________________
Luc
luc_chivas est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 17/02/2011, 11h08   #6
Nouveau Membre du Club
 
Inscription : juin 2009
Messages : 90
Détails du profil
Informations forums :
Inscription : juin 2009
Messages : 90
Points : 32
Points : 32
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 :
1
2
 LOCAL NumberVar line; 
line := line + 1;
et dans l'option de couleur c'est :
Code :
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.
Cryos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/02/2011, 11h17   #7
Membre Expert
 
Avatar de luc_chivas
 
Inscription : avril 2004
Messages : 894
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : avril 2004
Messages : 894
Points : 1 049
Points : 1 049
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...
__________________
Luc
luc_chivas est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 17/02/2011, 11h22   #8
Nouveau Membre du Club
 
Inscription : juin 2009
Messages : 90
Détails du profil
Informations forums :
Inscription : juin 2009
Messages : 90
Points : 32
Points : 32
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 :
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 :
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 :
1
2
WhilePrintingRecords;
LOCAL NumberVar line := line + 1
Dans mes options de couleurs :
Code :
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 !!
Cryos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/02/2011, 11h44   #9
Membre Expert
 
Avatar de luc_chivas
 
Inscription : avril 2004
Messages : 894
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : avril 2004
Messages : 894
Points : 1 049
Points : 1 049
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)
__________________
Luc
luc_chivas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/02/2011, 17h14   #10
Nouveau Membre du Club
 
Inscription : décembre 2010
Messages : 35
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : décembre 2010
Messages : 35
Points : 25
Points : 25
Pour réinitialiser le compteur, j'utilise la formule suivante :
Code :
1
2
whileprintingrecords;
numbervar linecnt := 0;
bens67 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h38.


 
 
 
 
Partenaires

Hébergement Web