Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Pages: 1
Bonjour à tous,
Quelqu'un aurait t'il une idée afin de numéroter les lignes d'une rupture.
Je m'explique :
Lors d'une rupture dans une édition, j'ai besoin de numéroter les lignes de la rupture, par exemple si il y a trois lignes associées à la rupture je dois donc associer 1 à la première ligne, 2 à la seconde ligne, etc...
Et bien sur à chaque nouvelle rupture le compteur revient à 1.
Merci pour vos réponses
Dernière modification par Dadone (05-12-2012 08:51:49)
Hors ligne
Salut,
Tu devrais regardé la fonction suivant que tu mets dans un champs calculé :
cumulativeSum( 1 for group 2 )
Cdt
yanis
Hors ligne
En fait j'ai trouvé.
Il faut créer une expression calculée comme suit :
Soit une première computed field qui vaut : getrow() que l'on nomme cf_getrow
Soit une seconde computed (nommée cf_rowfirst) qui est égal à : first(cf_row for Numerogroupe ) ou NumeroGroupe représente le groupe que l'on souhaite numéroté
Enfin une troisième computed field = cf_row - cf_rowfirst +1
Et le tour est joué !
Merci pour vos réponses
Dernière modification par Dadone (05-12-2012 08:52:55)
Hors ligne
Yanis a écrit:
Salut,
Tu devrais regardé la fonction suivant que tu mets dans un champs calculé :
Code: pb
cumulativeSum( 1 for group 2 )
Cdt
yanis
Incontestablement supérieur à ma solution.
Nos post se sont croisés.
C'est doublement résolu !
Merci
Dernière modification par Dadone (05-12-2012 09:00:32)
Hors ligne
Je reviens pour compléter car la solution
cumulativeSum( 1 for group 2 )
est en réalité pas suffisante dès lors que l'on a un autre sous niveau de rupture.
Dans ce cas, le code précédent ne compte pas uniquement les lignes d'un niveau mais également les lignes du sous niveau, ce qui n'est pas le but initial.
Par conséquent, c'est un mélange des deux solutions qu'il faut adopter.
Soit un computed field cf_numeroligneforgroup = cumulativeSum( 1 for group 1 )
qui numérote toutes lignes du groupe y compris celle du groupe 2
Soit un second computed field cf_firstrowforgroup2 = first( cf_numeroligneforgroup for group 2 )
qui prend la première ligne du groupe 2
Comme cf_firstrowforgroup2 ne varie pas quelque soit le nombre de lignes de la sous rupture, cette variable retourne bien le nombre de ligne de la première rupture.
Et cette c'est bon !
Je précise que le but final était d'avoir un couleur de fond alternative entre les ruptures mais la même couleur pour la sous rupture.
Dernière modification par Dadone (07-12-2012 10:43:23)
Hors ligne
Pages: 1