|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Futur Membre du Club
![]() Étudiant Inscription : avril 2011 Messages : 49 ![]() |
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 ! |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() ![]() Inscription : avril 2008 Messages : 1 053 ![]() |
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 |
|
|
00
|
|
|
#3 |
|
Futur Membre du Club
![]() Étudiant Inscription : avril 2011 Messages : 49 ![]() |
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... |
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() ![]() Inscription : avril 2008 Messages : 1 053 ![]() |
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 |
|
|
00
|
|
|
#5 |
|
Futur Membre du Club
![]() Étudiant Inscription : avril 2011 Messages : 49 ![]() |
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"); Ma variable s'appelle footer et j'ai tenté de lui insérer la chaine de caractères salut. Je procède mal ? |
|
|
00
|
|
|
#6 |
|
Membre Expert
![]() ![]() Inscription : avril 2008 Messages : 1 053 ![]() |
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 |
|
|
00
|
|
|
#7 | |
|
Futur Membre du Club
![]() Étudiant Inscription : avril 2011 Messages : 49 ![]() |
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:
|
|
|
|
00
|
|
|
#8 |
|
Membre Expert
![]() ![]() Inscription : avril 2008 Messages : 1 053 ![]() |
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 |
|
|
00
|
|
|
#9 |
|
Futur Membre du Club
![]() Étudiant Inscription : avril 2011 Messages : 49 ![]() |
Toujours aucun résultat
|
|
|
00
|
|
|
#10 |
![]() ![]() David S.Etudiant en alternance Inscription : août 2010 Messages : 1 167 ![]() |
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!!!
__________________
![]() ![]() ![]() David55 |
|
|
00
|
|
|
#11 |
|
Futur Membre du Club
![]() Étudiant Inscription : avril 2011 Messages : 49 ![]() |
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.
|
|
|
00
|
|
|
#12 | ||
![]() ![]() David S.Etudiant en alternance Inscription : août 2010 Messages : 1 167 ![]() |
Moi j'y arrive
Dans ton script tu ecrit dans initialize: Code :
Code :
reportContext.getGlobalVariable('footer')
__________________
![]() ![]() ![]() David55 |
||
|
|
00
|
|
|
#13 |
![]() ![]() David S.Etudiant en alternance Inscription : août 2010 Messages : 1 167 ![]() |
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
__________________
![]() ![]() ![]() David55 |
|
|
00
|
|
|
#14 |
|
Futur Membre du Club
![]() Étudiant Inscription : avril 2011 Messages : 49 ![]() |
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") |
|
|
00
|
|
|
#15 |
![]() ![]() David S.Etudiant en alternance Inscription : août 2010 Messages : 1 167 ![]() |
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!
__________________
![]() ![]() ![]() David55 |
|
|
00
|
|
|
#16 |
![]() ![]() David S.Etudiant en alternance Inscription : août 2010 Messages : 1 167 ![]() |
Si tu veux juste afficher le résultat d'un DataSet pourquoi ne pas afficher directement dans ton Dynamic Text:
__________________
![]() ![]() ![]() David55 |
|
|
00
|
|
|
#17 | ||
|
Futur Membre du Club
![]() Étudiant Inscription : avril 2011 Messages : 49 ![]() |
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"); 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 :
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 ? |
||
|
|
00
|
|
|
#18 |
![]() ![]() David S.Etudiant en alternance Inscription : août 2010 Messages : 1 167 ![]() |
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
__________________
![]() ![]() ![]() David55 |
|
|
10
|
|
|
#19 |
|
Futur Membre du Club
![]() Étudiant Inscription : avril 2011 Messages : 49 ![]() |
Comment faire aussi compliqué quand on peut faire aussi simple !!
![]() Je te remercie, ta deuxième solution fonctionne parfaitement |
|
|
00
|
|
|
#20 |
![]() ![]() David S.Etudiant en alternance Inscription : août 2010 Messages : 1 167 ![]() |
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
__________________
![]() ![]() ![]() David55 |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com