IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

BIRT Discussion :

Affichage du texte des éléments sélectionnés d'une List box


Sujet :

BIRT

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 23
    Points : 17
    Points
    17
    Par défaut Affichage du texte des éléments sélectionnés d'une List box
    Salut tout le monde,

    J'ai une List box comme paramètre dans mon rapport avec un 'ID' comme column value et 'NAME' comme display text.

    Je voudrais afficher le text (et non pas la column value) des éléments sélectionnés à l'entête de mon rapport. Avec des combo box par exemple, je fais 'reportContext.getParameterDisplayText()' et le tour est joué, mais avec les listes aucune idée.

    Veuillez m'éclairer sur ce point s'il vous plait. (je suis sur Birt 2.3.2)

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 80
    Points : 45
    Points
    45
    Par défaut
    bonjour,
    Je te propose de rajouter un DataSet avec comme requete :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT name
    FROM MaTable
    WHERE id = ?
    de faire coïncider ton paramètre avec celui de ton DataSet puis d'afficher la valeur name de ce même DataSet

  3. #3
    Membre expérimenté

    Profil pro
    Inscrit en
    Avril 2008
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 143
    Points : 1 353
    Points
    1 353
    Par défaut Statique / Dynamique
    Cette liste Box est statique ( tout saisi à la mano ) ou Dynamique ( SQL select de 2 champs de la base ) ?

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 23
    Points : 17
    Points
    17
    Par défaut
    Bonjour,

    Pour ta solution Temosare, quand j'essaye de lier le '?' de ma requete avec mon parametre listbox et bein l'éditeur eclipse me propose tous mes paramètre sauf la listeBox.

    Pour repondre a Stefan C , ma liste est dynamique.

    Merci a vous !

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 80
    Points : 45
    Points
    45
    Par défaut
    arf, je sais pas trop comment ça marche pour les combobox (je ne l'ai utilisé que pour les listbox) mais pour mettre en place ma solution, il doit falloir passer par le JavaScript.
    Je te conseille plutôt d'attendre des conseils plus avisés que de t'attaquer à ça pck ...

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 23
    Points : 17
    Points
    17
    Par défaut
    Mais Temosare sauve moi. C'est la listBox qui me pose problème, c'est pas le Combo. Le combo jai résolu son problème avec un 'reportContext.getParameterDisplayText()' que j'insère dans un dynamicText.

    C'est la liste des elements selectionnés à partir d'une listBox que je n'arrive pas afficher dans l'entete de mon rapport. Quand je fais un 'params["maListe"].value.join()' ça m'affiche les ID et moi je veux les NAME.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 80
    Points : 45
    Points
    45
    Par défaut
    Ah oki autant pour moi je suis fatigué ^^
    Bon alors un peu compliqué à expliquer je vais tenter d'être clair :

    tu créé un data set et tu mets comme requête
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT null FROM null
    et tu valides ensuites, tu cliques sur ton DataSet et tu vas dans l'onglet "script" dans le BeforeOpen tu mets le code suivant :
    Code JavaScript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    ParamName = "NomDeTonParamètre"
    paramLength = reportContext.getParameterValue(ParamName).length;
     
    this.queryText   = "SELECT id, name "
    this.queryText += "FROM NomDeTaTable "
     
    thisProject = reportContext.getParameterValue (ParamName)[0];
    this.queryText += "WHERE id in ( "
    for (i = 0; i < paramLength; i ++ ) {	
    	thisProject = reportContext.getParameterValue (ParamName)[i];
    	this.queryText += thisProject;
    	if ( i  != paramLength -1  ) {
    		this.queryText += ", "
    	}
    }
    this.queryText += ")"
    }

    Essaies ça, je ne suis pas sur que ça marche tel quel, tiens moi au courant

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 23
    Points : 17
    Points
    17
    Par défaut
    Bonjour Temosare,

    Je te remercie pour ton dévouement. J'avais trouvé hier tard une solution très similaire à la tienne mais avec un peu moins de code.

    Alors, tout d'abord mon DataSet de base qui alimente la lisBox est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select id, name from maTable
    Ensuite dans l'initialize de mon rapport, j'ai ajouté :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var selection = params["maListeMultiSelect"].value.join();
    reportContext.setPersistentGlobalVariable('selection', selection);
    Par ailleurs, j'ai créé un autre Data Set (On s'en fiche de la requête puisqu'on va la modifier dans le BeforeOpen) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select name from maTable
    Donc comme dit, il faut aller dans la methode BeforeOpen de ce DataSet et ajouter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    queryText="select name from maTable where id in ("+reportContext.getPersistentGlobalVariable('selection')+")"
    Ensuite on peut glisser une Table de la palette, et y insérer la colonne name de ce dernier DataSet.

    Je vous remercie infiniment.

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 80
    Points : 45
    Points
    45
    Par défaut
    Je ne sais pas si ça peut t'être utile mais javais fait un petit bidouillage pour avoir une ligne dans ma listBox qui s'apelle "Tous les rapports" et qui permet de prendre tous les id en sélectionnant uniquement cette ligne

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 23
    Points : 17
    Points
    17
    Par défaut
    On ne m'a pas demandé de faire ça pour le moment. Mais si tu veux, tu peux poster, ça peut toujours servir. J'y jetterai un coup d'oeil de toute façon.

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 80
    Points : 45
    Points
    45
    Par défaut
    tu rajoutes a ta requete de ton dataset de sélection du parametre ce bout de code :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    union
    select 0, 'Tous les rapports'

    et tu rajoutes une condition dans ton JavaScript qui dit que si id != 0 tu rajoutes la condition de sélection.

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 23
    Points : 17
    Points
    17
    Par défaut
    Waw, c'est osé ! Du Jamais vu !
    Merci quand même.

Discussions similaires

  1. Réponses: 4
    Dernier message: 05/07/2014, 13h19
  2. Réponses: 20
    Dernier message: 27/07/2010, 15h52
  3. Récupération des éléments sélectionner dans une liste
    Par Jasmine80 dans le forum Interfaces Graphiques
    Réponses: 13
    Dernier message: 17/09/2009, 12h52
  4. [script.aculo.us] [Tutoriel] Modifier l'opacité des éléments sélectionnés d'une liste avec Script.aculo.us
    Par Kerod dans le forum Bibliothèques & Frameworks
    Réponses: 0
    Dernier message: 13/01/2009, 21h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo