Bonjour,
J'ai un rapport Birt qui contient une requête assez compliquée.
Dans mon rapport je fait un group
Mais je souhaite limité le nombre de résultat dans détails.
Je n'ai pas encore trouvé comment faire.
Bonjour,
J'ai un rapport Birt qui contient une requête assez compliquée.
Dans mon rapport je fait un group
Mais je souhaite limité le nombre de résultat dans détails.
Je n'ai pas encore trouvé comment faire.
Il y a un filtre très simple à rajouter sur le Détail ( au niveau du Groupe ) : Top 100 meilleures valeurs par exemple.
Peux tu préciser stp
le cheminement surtout.
Car j'arrive à créer le filtre mais sur le groupe
J'ai eu le même problème, je ne suis pas non plus arrivé à appliquer des fonctions ou des tris sur le détail du groupe. Stefan donnera peut être une méthode plus simple, perso je l'ai réglé en reproduisant plus ou moins le top N avec un tout petit peu de scripts:
- créer un compteur en variable de rapport (par ex: 'groupCount')
- Réinitialiser le compteur au début de chaque groupe, sur l'évènement onCreate de l'entete groupe: var["groupCount"]=1;
- Incrémenter le compteur pour chaque ligne détail, sur l'évènement onCreate des lignes: var["groupCount"]++;
- Sur la propriété 'Visibility' de la ligné détail, on coche 'Hide' avec la condition var["groupCount"]>params["TopN"];
Dans l'exemple joint, "TopN" est un paramètre de rapport donnant le nombre de lignes détail à afficher.
On peut trier l'ensemble de la table par ordre décroissant sur la colonne choisie pour représenter le top N (dans l'exemple, c'est la colonne "quantité commandée").
Merci domino
c'est un peut de la triche parce qu'on ne s'arrete pas au 5 eme élément, on liste toutte les ligne sans toute les afficher.
Si la table est énorme le traitement sera très long
Tu as raison. Ceci dit si la table source est énorme je pense qu'il faut travailler au niveau du dataset, voire en amont tout dépend du "énorme" en question, mais c'est un tout autre débat![]()
Si la table est énorme , il faut faire un curseur dans le SQL avec un top 5 à ce niveau là. De cette façon on récupère seulement la donnée pertinente.
Faut pas oublier que BIRT est un outil de restitution, pas un outil de "bidouille dans les données"
Dans le volet commercial de BIRT , il y a du in-memory qui résout ce problème de "vitesse" car on passe à la mili-sec d'accès à la donnée.
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