Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > BIRT
BIRT Forum d'entraide sur BIRT (Business Intelligence and Reporting Tools). Avant de poster --> FAQ BIRT,Tutoriels BIRT
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 26/04/2011, 17h06   #1
Futur Membre du Club
 
Homme
Étudiant
Inscription : avril 2011
Messages : 49
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2011
Messages : 49
Points : 18
Points : 18
Par défaut Afficher une page ou non !

Bonjour à tous,

Je souhaiterai savoir s'il est possible d'afficher une page d'un report en fonction d'un critères (paramètres, variables par exemple). Je m'explique.

Imaginons que j'ai une requête qui me renvoi une liste croissante de X entiers naturels allant de 1 à 3. Je peux donc avoir comme résultat de requete:
- 1 2 3
- 1 2
- 1
- [...] etc...

Ma page numéro 1 affiche le résultat de la requete.
Maintenant je voudrais fixer un critère pour afficher les pages suivantes. Pour illustrer ce que je veut grossièrement :

Code :
1
2
3
If(maPage1 contient le numéro 2) {
Affiche moi cette page
}
Et ce, pour chacune des pages suivantes. Mes pages sont prévus et déjà faites dans le report mais je ne veux pas en afficher certaines s'il n'y en a pas besoin. Si je prévois 3 pages et que ma liste ne renvoit qu'un entier, j'aurais 2 pages vides. Je me fais comprendre ?

Merci d'avance de votre réponse !
D4rkArthemis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2011, 18h07   #2
Membre confirmé
 
Nicolas Vives
Inscription : avril 2010
Messages : 178
Détails du profil
Informations personnelles :
Nom : Nicolas Vives

Informations forums :
Inscription : avril 2010
Messages : 178
Points : 212
Points : 212
Bonjour,

Si on considère que le critère de définition de la page n'est PAS le numéro de page, c'est très simple, ça se résume à définir le même critère de visibilité sur tous les éléments de la même page, puis contrôler ce critère via les paramètres.

Si tu dois le faire sur le numéro de page, ça risque d'être beaucoup plus compliqué. Ca va probablement être du javascrit dans les méthodes "after render", avec un compteur incrémenté à chaque page break, etc... Mais on verra plus tard.

A toi de voir ce dont tu as besoin.
nicolas.1.vives est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/04/2011, 09h25   #3
Futur Membre du Club
 
Homme
Étudiant
Inscription : avril 2011
Messages : 49
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2011
Messages : 49
Points : 18
Points : 18
Bonjour,

En fait je peux le faire de deux méthodes je pense. Le résultat sera le même.
En théorie, j'ai parlé de plusieurs combinaisons possibles de ma liste mais il se trouve qu'il n'y a que "l'apparition" du 3 qui va varier. Si la requete renvoi "1 2 3" alors j'affiche toutes les pages déjà faites, c'est à dire 2 pages par numéro (soit 6 pages). Si elle renvoi "1 2", j'affiche seulement les 2 pages du numéro 1 et 2 (soit 4 pages) et je passe directement à la suite des pages de mon report sans avoir 2 pages vides.

Du coup, tu me conseillerai quelle méthode ? Apparemment, plutot la première mais il se trouve que je n'ai aucune idée de comment procéder.

Merci d'avance du coup de main
D4rkArthemis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/04/2011, 10h02   #4
Membre confirmé
 
Nicolas Vives
Inscription : avril 2010
Messages : 178
Détails du profil
Informations personnelles :
Nom : Nicolas Vives

Informations forums :
Inscription : avril 2010
Messages : 178
Points : 212
Points : 212
Bonjour,

Il y a une limite à ce que j'ai dit : si tes pages 5 et 6 contiennent, disons, des lignes d'un tableau qui a commencé à la page 4, ça va être beaucoup plus compliqué.
Mais, si sur tes pages 5 et 6 tu n'as que des éléments indépendants (c'est à dire complètement contenus dans ces deux pages), alors tout ce que tu as à faire, c'est définir un paramètre ou une variable d'état, de type booléen, qui correspondra au critère d'affichage de tes pages ; et enfin, d'aller dans les propriétés de visibilité de tous les éléments constituant tes pages 5 et 6, et associer leur visibilité à ton paramètre booléen. Sachant que tu as une astuce pour te faciliter la tache : définir une grille contenant une ou deux cellules, qui contiendra l'ensemble de tes éléments de page 5 et 6, et sur laquelle tu définis le critère de visibilité (comme ça tu n'as pas à le faire pour tous tes éléments).

Techniquement, ça va dépendre de la nature de la "requête" dont tu as parlé avant. De quoi s'agit-il ? une requête SQL alimentant un data set ? Un paramètre valorisé par l'utilisateur au lancement de l'état ? Autre chose ?
nicolas.1.vives est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/04/2011, 10h14   #5
Futur Membre du Club
 
Homme
Étudiant
Inscription : avril 2011
Messages : 49
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2011
Messages : 49
Points : 18
Points : 18
Non je te rassure ta technique marche sans problème : je viens de réussir

J'ai tout simplement utilisé le critère visibility (que je connaissais pas). A chaque fois, ma requête renvoi soit 2 soit 3 résultats ("1 2 3" ou "1 2"). Je lui ai donc dit que si tu ne trouve rien à la ligne 3 de la requête (=null) alors tu cache la page.
Rien de bien compliqué, j'ai du réinitialiser mon paramètre à null au début de la troisième page sinon il m'affichait le titre de la page.

En tout cas merci à toi
D4rkArthemis 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 07h08.


 
 
 
 
Partenaires

Hébergement Web