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 03/05/2011, 15h08   #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 Utiliser une variable dans une MasterPage

Bonjour à tous,

Je souhaiterai utiliser une variable dans le footer d'une MasterPage.
En fait, j'ai une requête qui me renvoi le nom de l'application sur la première page. Je voudrais stocke ce nom dans une variable et le mettre dans la Master Page pour qu'il s'affiche en bas (centré) à chaque fin de page avec le nombre de pages (déjà fait).

J'ai déjà essayé de créer la variable et de lui affecter la valeur dans le script de la table. La variable contient bien ce qu'il faut à l'intérieur du report mais lorsque je veux afficher cette valeur dans la master page, je n'ai rien.

Merci d'avance !
D4rkArthemis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2011, 16h09   #2
Membre Expert
 
Inscription : avril 2008
Messages : 1 053
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 1 053
Points : 1 156
Points : 1 156
Par défaut type de variable

Quel genre de variable avez vous créé?

Merci de mettre le code que vous avez utilisé svp.
__________________
BIRT / Actuate

Nouveau ! : Actuate v11 LIVE avec cubes en mémoire, dashboard analythique, accès mobile et exports Office intélligents! Télécharger Evaluation ici : http://www.birt-exchange.com/be/downloads/

Nouveau ! : Tutoriel/Formation sur comment installer et utiliser la version d'évaluation Actuate v11 Vous former ici : http://www.birt-exchange.org/org/wik...h_BIRT_iServer
Stefan C est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2011, 16h18   #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
J'ai crée une variable "report variable" (j'ai tenté avec page variable, ça ne marche pas non plus) et j'ai affecté ma valeur dans la partie script de la table comme ceci (onCreate) :

Code :
vars["footer"]= this.getRowData().getColumnValue("OBJECT_NAME");

Cela dit, le contenu de ma variable est accessible n'importe où dans le report sauf dans la masterpage...
D4rkArthemis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2011, 16h20   #4
Membre Expert
 
Inscription : avril 2008
Messages : 1 053
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 1 053
Points : 1 156
Points : 1 156
Par défaut Persistent

La variable faut la passer coté affichage ( Render )

Essayer avec un setPersistentGlobalVariable
__________________
BIRT / Actuate

Nouveau ! : Actuate v11 LIVE avec cubes en mémoire, dashboard analythique, accès mobile et exports Office intélligents! Télécharger Evaluation ici : http://www.birt-exchange.com/be/downloads/

Nouveau ! : Tutoriel/Formation sur comment installer et utiliser la version d'évaluation Actuate v11 Vous former ici : http://www.birt-exchange.org/org/wik...h_BIRT_iServer
Stefan C est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2011, 16h30   #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
Comment dois-je utiliser cette nouvelle fonction ?

J'ai voulu faire un test d'essai pour voir si la fonction marchait en écrivant ce code :

Code :
reportContext.setPersistentGlobalVariable("footer","salut");
Ensuite j'affiche la variable mais elle ne contient rien !
Ma variable s'appelle footer et j'ai tenté de lui insérer la chaine de caractères salut. Je procède mal ?
D4rkArthemis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/05/2011, 10h22   #6
Membre Expert
 
Inscription : avril 2008
Messages : 1 053
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 1 053
Points : 1 156
Points : 1 156
Par défaut oui :)

il y a un get aussi pour la variable , vous pouvez pas écrire la variable telle quelle.

reportContext.getPersistentGlobalVariable("salut");
__________________
BIRT / Actuate

Nouveau ! : Actuate v11 LIVE avec cubes en mémoire, dashboard analythique, accès mobile et exports Office intélligents! Télécharger Evaluation ici : http://www.birt-exchange.com/be/downloads/

Nouveau ! : Tutoriel/Formation sur comment installer et utiliser la version d'évaluation Actuate v11 Vous former ici : http://www.birt-exchange.org/org/wik...h_BIRT_iServer
Stefan C est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/05/2011, 10h36   #7
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
Vous vouliez dire :
reportContext.getPersistentGlobalVariable("footer"); ?

Le nom de ma variable étant footer.

De toute façon, çà ne fonctionne pas
Voilà ce que j'ai fait, j'espère que tu pourras détecter l'erreur

Citation:
- Création d'une variable nommée footer (Report Variable)
- OnRender de la table Résultat renvoyant un string
Code :
reportContext.setPersistentGlobalVariable("footer","salut");
- Insertion de la variable plus loin dans le rapport. (zone de texte)
- OnCreate de cet élément
Code :
reportContext.getPersistentGlobalVariable("footer");
D4rkArthemis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/05/2011, 11h43   #8
Membre Expert
 
Inscription : avril 2008
Messages : 1 053
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 1 053
Points : 1 156
Points : 1 156
Par défaut OnCreate

mettre votre code sur le OnCreate.

OnRender c'est "trop tard" , le rapport est déjà généré.
__________________
BIRT / Actuate

Nouveau ! : Actuate v11 LIVE avec cubes en mémoire, dashboard analythique, accès mobile et exports Office intélligents! Télécharger Evaluation ici : http://www.birt-exchange.com/be/downloads/

Nouveau ! : Tutoriel/Formation sur comment installer et utiliser la version d'évaluation Actuate v11 Vous former ici : http://www.birt-exchange.org/org/wik...h_BIRT_iServer
Stefan C est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/05/2011, 11h47   #9
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
Toujours aucun résultat
D4rkArthemis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/05/2011, 13h04   #10
Rédacteur/Modérateur
 
Avatar de David55
 
Homme David S.
Etudiant en alternance
Inscription : août 2010
Messages : 1 167
Détails du profil
Informations personnelles :
Nom : Homme David S.
Âge : 22
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Etudiant en alternance
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : août 2010
Messages : 1 167
Points : 2 304
Points : 2 304
Que met tu as la place de "salut"?
Car si c'est le résultat d'une requête c'est normale que tu n'obtiennes rien!

En effet, la requête est executé lorsque le tableau est généré. Donc si tu essaye d'enregistrer le résultat de la requête avant la génération (dans le onCreate par exemple) alors tu n'obtiendra aucun résultat!!!
__________________
Vous trouverez ma page perso avec des tutoriels sur Android et BIRT au lien suivant : http://dsilvera.developpez.com
N'oubliez pas de voter pour les messages dont la réponse est pertinente (en bas à droite du cadrant)
Vous voulez afficher du code :
Votre problème est résolu :
Pas de question technique par MP !
David55
David55 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/05/2011, 13h28   #11
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
Justement, je travaille avec la chaine de caractères salut pour me familiariser avec les deux fonctions set et get. Le problème c'est que ça ne marche même pas avec une String alors j'ose même pas essayer avec le résultat d'une dataset.
D4rkArthemis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/05/2011, 14h09   #12
Rédacteur/Modérateur
 
Avatar de David55
 
Homme David S.
Etudiant en alternance
Inscription : août 2010
Messages : 1 167
Détails du profil
Informations personnelles :
Nom : Homme David S.
Âge : 22
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Etudiant en alternance
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : août 2010
Messages : 1 167
Points : 2 304
Points : 2 304
Moi j'y arrive

Dans ton script tu ecrit dans initialize:
Code :
1
2
3
 
 
reportContext.setGlobalVariable('footer', "salut")
et dans ton masterPage tu insére un dynamic Text avec:

Code :
reportContext.getGlobalVariable('footer')
Fichiers attachés
Type de fichier : zip example.zip (770 octets, 4 affichages)
__________________
Vous trouverez ma page perso avec des tutoriels sur Android et BIRT au lien suivant : http://dsilvera.developpez.com
N'oubliez pas de voter pour les messages dont la réponse est pertinente (en bas à droite du cadrant)
Vous voulez afficher du code :
Votre problème est résolu :
Pas de question technique par MP !
David55
David55 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/05/2011, 14h32   #13
Rédacteur/Modérateur
 
Avatar de David55
 
Homme David S.
Etudiant en alternance
Inscription : août 2010
Messages : 1 167
Détails du profil
Informations personnelles :
Nom : Homme David S.
Âge : 22
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Etudiant en alternance
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : août 2010
Messages : 1 167
Points : 2 304
Points : 2 304
Attention, il y a une différence entre la solution de Stefan C et la mienne.
Il utilise setPersistentGlobalVariable et j'utilise setGlobalVariable!

La différence entre les 2 je ne la connais pas! Je laisse les pro y répondre
__________________
Vous trouverez ma page perso avec des tutoriels sur Android et BIRT au lien suivant : http://dsilvera.developpez.com
N'oubliez pas de voter pour les messages dont la réponse est pertinente (en bas à droite du cadrant)
Vous voulez afficher du code :
Votre problème est résolu :
Pas de question technique par MP !
David55
David55 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/05/2011, 14h34   #14
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
Merci à toi pour ton exemple !

Déjà première découverte : setGlobalVariable (pas de Persistent).
Ensuite ton exemple marche bien sur mon report aussi mais le problème c'est qu'après je ne peux pas modifier ma global variable. Tout ce que je fais dans la partie initialise du report fonctionne mais ensuite je veux modifier la valeur dans n'importe quel élément du report (en l'occurence une dataset pour mon cas).

Lorsque je fais dans le OnCreate de ma table résultat :
Code :
reportContext.setGlobalVariable('res', "sgfgfgfgfgfgf")
La variable ne change pas de valeur !
D4rkArthemis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/05/2011, 14h45   #15
Rédacteur/Modérateur
 
Avatar de David55
 
Homme David S.
Etudiant en alternance
Inscription : août 2010
Messages : 1 167
Détails du profil
Informations personnelles :
Nom : Homme David S.
Âge : 22
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Etudiant en alternance
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : août 2010
Messages : 1 167
Points : 2 304
Points : 2 304
Tu modifie ta variable trop tard je pense!

Si tu modifie ta valeur dans le onPrepare de ton Dynamic Text dans le master page ceci devrait fonctionner.

Le master Page est générer avant ton tableau apparemment!
__________________
Vous trouverez ma page perso avec des tutoriels sur Android et BIRT au lien suivant : http://dsilvera.developpez.com
N'oubliez pas de voter pour les messages dont la réponse est pertinente (en bas à droite du cadrant)
Vous voulez afficher du code :
Votre problème est résolu :
Pas de question technique par MP !
David55
David55 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/05/2011, 14h48   #16
Rédacteur/Modérateur
 
Avatar de David55
 
Homme David S.
Etudiant en alternance
Inscription : août 2010
Messages : 1 167
Détails du profil
Informations personnelles :
Nom : Homme David S.
Âge : 22
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Etudiant en alternance
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : août 2010
Messages : 1 167
Points : 2 304
Points : 2 304
Si tu veux juste afficher le résultat d'un DataSet pourquoi ne pas afficher directement dans ton Dynamic Text:
__________________
Vous trouverez ma page perso avec des tutoriels sur Android et BIRT au lien suivant : http://dsilvera.developpez.com
N'oubliez pas de voter pour les messages dont la réponse est pertinente (en bas à droite du cadrant)
Vous voulez afficher du code :
Votre problème est résolu :
Pas de question technique par MP !
David55
David55 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/05/2011, 15h16   #17
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
Oui dans le onPrepare, je peux modifier ma variable mais maintenant j'ai un autre problème c'est pour affecter la valeur du dataset et le transmettre dans le onPrepare. Je m'explique.

Dans la partie onCreate de ma table, je stocke la valeur résultat dans une variable :
Code :
vars["footer"]= this.getRowData().getColumnValue("OBJECT_NAME");
Cela fonctionne bien car je peux ensuite afficher footer dans le report sans soucis.
Maintenant le problème c'est que je n'arrive pas à transmettre cette variable dans le onPrepare d'un autre élément. J'ai tenté plusieurs choses comme ceci :
Code :
1
2
var xxx = vars["footer"];
reportContext.setGlobalVariable('test', xxx)
Mais ça ne marche pas. Je pense que c'est du au fait que ma variable n'a toujours pas la valeur de la dataset. Pourtant je fais ça dans le onPrepare d'une table situé APRES la table qui renvoi la donnée dans la variable...

Pour ta deuxième solution, comment référencer ma dataset et le champ de ma requête dans le auto dynamic text ?? Avec l'ID de l'élément ?
D4rkArthemis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/05/2011, 15h22   #18
Rédacteur/Modérateur
 
Avatar de David55
 
Homme David S.
Etudiant en alternance
Inscription : août 2010
Messages : 1 167
Détails du profil
Informations personnelles :
Nom : Homme David S.
Âge : 22
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Etudiant en alternance
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : août 2010
Messages : 1 167
Points : 2 304
Points : 2 304
Je pense que BIRT execute d'abord tous les onPrepare puis tous les onCreate. Si c'est le cas tu n'y arrivera jamais de cette manière malheureusement!

Pour la deuxième solution rien de plus simple! Il te suffit d'insérer un dynamic Text et dans les propriétés tu va sur binding et dans Data Set tu sélectionnes ton dataSet. pour afficher le champ que tu veux il te suffit d'afficher dataSetRow["NomChamp"]. Si ta requête te renvoie plusieurs lignes ceci va t'afficher le 1er résultat
__________________
Vous trouverez ma page perso avec des tutoriels sur Android et BIRT au lien suivant : http://dsilvera.developpez.com
N'oubliez pas de voter pour les messages dont la réponse est pertinente (en bas à droite du cadrant)
Vous voulez afficher du code :
Votre problème est résolu :
Pas de question technique par MP !
David55
David55 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 04/05/2011, 15h30   #19
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
Comment faire aussi compliqué quand on peut faire aussi simple !!

Je te remercie, ta deuxième solution fonctionne parfaitement
D4rkArthemis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/05/2011, 15h57   #20
Rédacteur/Modérateur
 
Avatar de David55
 
Homme David S.
Etudiant en alternance
Inscription : août 2010
Messages : 1 167
Détails du profil
Informations personnelles :
Nom : Homme David S.
Âge : 22
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Etudiant en alternance
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : août 2010
Messages : 1 167
Points : 2 304
Points : 2 304
De rien

D'ailleurs pour aller encore plus vite tu as juste à faire glisser ton champ du Data Explorer (à gauche dans la liste des champs de ton dataSet) vers la où tu veux l'afficher (ici dans le footer du master Page). Et tous les paramètres et propriétés se mettrons automatiquement
__________________
Vous trouverez ma page perso avec des tutoriels sur Android et BIRT au lien suivant : http://dsilvera.developpez.com
N'oubliez pas de voter pour les messages dont la réponse est pertinente (en bas à droite du cadrant)
Vous voulez afficher du code :
Votre problème est résolu :
Pas de question technique par MP !
David55
David55 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 10h34.


 
 
 
 
Partenaires

Hébergement Web