|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Candidat au titre de Membre du Club
![]() Inscription : février 2003 Messages : 33 ![]() |
Bonjour, 8)
Je voudrais savoir comment créer faire un "grouping" avec plusieurs champs en paramètres. Je pense qu'il faut utiliser le "formula editor" mais je ne connais pas du tout la syntaxe pour grouper les données de cette façon... Si quelqu'un peut m'aider ... |
|
|
00
|
|
|
#2 |
![]() ![]() Nicolas LAURETChef de projet en SSII Inscription : novembre 2003 Messages : 1 024 ![]() |
Pourquoi ne pas utiliser un champ formule qui contient les différents paramètres et l'utiliser en tant que groupe ...
Formula = PAR1+PAR2+PAR3 Je ne l'ai pas essayé mais je pense que ca devrait marcher. Si ca ne marche pas on doit pouvoir trouver autre chose .... |
|
|
00
|
|
|
#3 |
|
Invité régulier
![]() Inscription : avril 2003 Messages : 6 ![]() |
Bonjour,
Je veux faire exactement la même chose, mais la solution "Formula = PAR1+PAR2+PAR3" comme tu le suggère ne fonctionne pas avec les dates, car on ne peut pas coller une date avec une chaine. Et lorsqu'on fait un "totext(la_date)" le tri que tu applique sur le groupement ne les fait plus apparaitre par ordre chronologique mais alphabétique (a cause du totext() qui transforme la date en chaine), or c'est l'ordre chronologique qui est plus intéressant ! Si quelqu'un a une suggestion je suis preneur ! (notamment par exemple avec la fonction GroupName...?) |
|
|
00
|
|
|
#4 |
![]() ![]() Nicolas LAURETChef de projet en SSII Inscription : novembre 2003 Messages : 1 024 ![]() |
Pourquoi dans ce cas ne pas faire 1 groupe pour chaque champ ?
Ce cas là garantit l'Order By et ne pose pas le problème de la concaténation ...
__________________
Modérateur Business Intelligence / Windev A lire avant de poster Si vous avez obtenu la réponse à votre question alors cliquez sur le bouton
|
|
|
00
|
|
|
#5 |
|
Invité régulier
![]() Inscription : avril 2003 Messages : 6 ![]() |
En fait je ne veux pas passer par Crystal Report Designer pour créer ce champ, mais passer par l'API PCRE Java... et donc pouvoir construire dynamiquement cet ordre de groupement.
Etant donné qu'on ne sait pas à la base combien de champs seront nécessaires (le choix est donné à l'utilisateur), j'essaye de construire ce groupement multiple uniquement grâce à la concaténation de plusieurs champs... et je me retrouve au problème initial. |
|
|
00
|
|
|
#6 |
![]() ![]() Nicolas LAURETChef de projet en SSII Inscription : novembre 2003 Messages : 1 024 ![]() |
Alors on revient à la solution 1 ...
Sauf que pour une Date Tu Fais un formatage différent par exemple : ToText({Commande.Date},"yyyy/MM/dd") Ce qui Fait que Tu as année, mois, jour et donc le tri fonctionne ....
__________________
Modérateur Business Intelligence / Windev A lire avant de poster Si vous avez obtenu la réponse à votre question alors cliquez sur le bouton
|
|
|
00
|
|
|
#7 |
|
Invité régulier
![]() Inscription : avril 2003 Messages : 6 ![]() |
C'est une solution que j'ai envisagé en effet, mais du coup l'affichage de la date n'est pas au format français (eh oui, c'est le client qui décide...). En fait voilà la solution que j'avais envisagé :
- faire un formula invisble sur lequel je fais mon tri totext("...",yyyy,MM,dd) s'il s'agit d'une date, + autres champs éventuels - afficher les données dans un autre formula visible au champ français Mais voici le problème : - lourd à mettre en place car besoin de deux formulas (d'ou ma recherche d'une autre solution) - En faisant ainsi, les options de Sort sur les champs choisis pour le groupement en fonctionnent plus : le tri appliqué est celui du groupement et non pas celui des champs, il n'est donc pas possible de faire CHAMP1 ASC + CHAMP2 DESC Même en utilisant les options de Sort Record, les données sont affichées dans l'ordre récupéré en base et non pas dans l'ordre du Sort voulu. En tout cas merci pour ton aide L.nico c'est sympa. |
|
|
00
|
|
|
#8 |
![]() ![]() Nicolas LAURETChef de projet en SSII Inscription : novembre 2003 Messages : 1 024 ![]() |
Mais de rien ...
Dernière Solution ... : Nous utilisons dans notre société un classe dédiée (VB6) à l'edition qui pointe sur le modele objet de crystal (craxdrt.dll). Et nous pouvons donc découper la requête dans le code avant l'execution de l'edition ce qui nous permet de changer la clause Order By à la volée juste avant l'edition si c'est nécessaire. Je ne sais pas comment ça marche en delphi ... mais c'est juste une idée que tu pourrais creuser ...
__________________
Modérateur Business Intelligence / Windev A lire avant de poster Si vous avez obtenu la réponse à votre question alors cliquez sur le bouton
|
|
|
00
|
|
|
#9 |
|
Invité régulier
![]() Inscription : avril 2003 Messages : 6 ![]() |
Whoa ca me parait pas mal comme solution, mais je pensais à une solution plus simple, du genre Groupement selon un Formula, et dans le Formula construire la concaténation des champs... mais quand je fais comme ça, y'a toujours ce problème de sort.
Je vais continuer à chercher... si ca se trouve c'est pas faisable, tout simplement. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com