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.
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.
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 :
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 WhilePrintingRecords; if not ({Command.FT_NUM}=59609) then Numbervar line:=line+1
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 NumberVar line; if line mod 2 <> 0 then crsilver else DefaultAttribute
Merci !
Nickel chrome.
Je galèrais vraiment là dessus.
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 !
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
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 :
et dans l'option de couleur c'est :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 LOCAL NumberVar line; line := line + 1;
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 NumberVar line; IF line mod 2 <> 0 then crsilver else DefaultAttribute
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...
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 :
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
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 :
Dans mes options de couleurs :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 WhilePrintingRecords; LOCAL NumberVar line := line + 1
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 !!
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)
Pour réinitialiser le compteur, j'utilise la formule suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2whileprintingrecords; numbervar linecnt := 0;
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager