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 :

Changement d'image dynamiquement


Sujet :

BIRT

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 31
    Points : 13
    Points
    13
    Par défaut Changement d'image dynamiquement
    Bonjour

    tout d'abord merci pour la faq qui m'a sauvé la vie depuis quelques jours.

    je développe en ce moment une application de gestion de personnel.
    Lors de l'exécution un rapport pdf est créé.

    Sur ce rapport doit figuré en bas une image expliquant une méthode de calcul qui doit varié en fonction du statut de la personne.

    Exemple :
    un comptable aura l'image 1
    un chef de service aura l'image 2

    mon problème vient du fait que cette image doit donc changer en fonction d'un paramètre (qui est bien récupéré de la base de données).
    J'ai bien vu le tuto permettant de faire une requête en fonction d'un paramètre mais je n'ai pas réussi à l'appliquer.

    Je ne suis pas emballé par l'idée de faire un rapport par type de personne vue que à par ce détail ils sont identique.

    Si quelqu'un a une solution à mon problème merci d'avance.

  2. #2
    Membre éprouvé
    Avatar de lazarel
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2007
    Messages
    893
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2007
    Messages : 893
    Points : 1 164
    Points
    1 164
    Par défaut
    Le plus simple tu mets les deux images et tu utilise la propriété visibility pour rendre visible ou non l'image selon le type d'utilisateur

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 31
    Points : 13
    Points
    13
    Par défaut
    Hmmm je connais l'option visibility mais je ne vois pas trop comment la mettre en place pour ici. Dans l'onglet script je pense mais après...

    si quelqu'un a un exemple ou autre :/

  4. #4
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Bonjour,

    Perso, je ne ferais pas comme lazarel

    Tu connais le chemin vers l'image ?
    Est-ce que tu peux construire le chemin à partir du fameux paramètre ?
    Est-ce que l'image se trouve dans les "ressources" (dossier de ressources ) du rapport ?
    Est-elle embarquée dans le rapport ?
    Dans quelle version de BIRT es-tu ?

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 31
    Points : 13
    Points
    13
    Par défaut
    beaucoup de questions :o

    alors alors :

    Tu connais le chemin vers l'image ?
    Oui je vais les mettre dans un dossier images dans web-content.

    Est-ce que tu peux construire le chemin à partir du fameux paramètre ?
    si je comprend bien en gros si l'utilisateur = chef alors img = c:/....image.jpg ?
    si c'est ça oui ce doit être possible.

    Est-ce que l'image se trouve dans les "ressources" (dossier de ressources ) du rapport ?
    Comme dit plus haut je pensais les mettre dans le dossier images mais rien n'empêche un changement de place.

    Est-elle embarquée dans le rapport ?
    qu'entend tu pas embarquée ? pour le moment j'ai une image (pour voir) avec design report (le truc pour mettre les images quoi)

    Dans quelle version de BIRT es-tu ?
    2.5 j'ai pris la dernière sur le site.

  6. #6
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Ok très bien.

    Tu ajoutes ton image au rapport.
    Tu doubles cliques sur ton image pour l'éditer.
    Tu sélectionnes URI pour dire que tu vas indiquer un chemin.
    Tu sélectionnes dans la liste déroulante ab/fx, le symbole fx pour dire que l'on va construire une expression.
    Là, ça se corse...
    On va y mettre quelque chose comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (params["Poste"].value.equals("Chef"))
      "Chemin de l'image 1";
    else
      "Chemin de l'image 2";
    Seulement, vu que c'est un chemin qui sera relatif, il faut soit récupérer le contexte, soit récupérer le chemin en fonction du dossier de ressources.

    Alors pour ça, je vais encore te poser des questions :
    Lances-tu ton rapport via l'API par défaut ou tu as une servlet (comme celle de la FAQ) ?
    As-tu un moyen simple de passer le contexte de ton application en paramètre ? (J'appelle contexte l'adresse de l'application de type http://serveur:10200/monappli par exemple)

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 31
    Points : 13
    Points
    13
    Par défaut
    Merci je vais tester

    pour répondre à t'es question.

    J'ai modifié le servlet pour en faire une classe je trouvais ça plus pratique pour mon utilisation actuel.

    Je peux lui passer des paramètres après de là à lui passer le contexte ... enfin je ne dirais pas que c'est impossible car rien ne l'est, avec un peut de recherche je trouverai bien je pense.

    merci beaucoup du coup de main et la réactivité ^^

    edit : juste en envoyant j'ai eu une idée ... si je connais la future adresse du serveur c'est possible

    pour l'heure actuel si je lui colle localhost:8080.... ça passe ?

  8. #8
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Je pense que le jour où le serveur change de nom, ça ne va pas plaire à tes clients. De la même façon que ça ne leur plaira pas s'ils ont un environnement de recette également qui ne portera pas non plus le même nom.

    L'autre solution est de définir un dossier de ressources. Si tu as une classe de génération comme indiquée dans la FAQ, il faut juste changer ceci : config.setResourcePath(...); ou faire un chemin dynamique à partir de cette adresse. Dans ce cas, je te conseille non pas de prendre URI mais Image into ressource ou un truc comme ça.

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 31
    Points : 13
    Points
    13
    Par défaut
    image file in shared ressources ? (je vois pas d'autre solutions de toutes façons ^^)


    Je vais voir ce que j'arrive à faire je te tiens au courant.

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 31
    Points : 13
    Points
    13
    Par défaut
    Je créé un nouveau message pour bien voir au cas ou tu sois déjà passée


    je n'ai pas réussi à placer le config.setResourcePath(...);

    j'ai essayé avec
    options.setBaseURL(req.getContextPath()+"/Images");
    et
    options.setFontDirectory(sc.getRealPath("/Images"));

    sans résultat, l'application me renvois une erreur "Error happened while running the report"


    edit : dans ton exemple de code tu a mis Comme le paramètre provient de la base de données j'ai mis un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dataSetRow["..."].value
    est ce valide ? :/

  11. #11
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Ah oui, tiens ça me fait penser...

    En fait, en contexte tu peux passer soit http://serveur:port/appli, soit le chemin dans un dossier comme C:/monappli/mesimages.

    Autant passer req.getContextPath() directement en paramètre et tu peux récupérer proprement la valeur dans tno rapport et t'en servir

  12. #12
    Membre éprouvé
    Avatar de lazarel
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2007
    Messages
    893
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2007
    Messages : 893
    Points : 1 164
    Points
    1 164
    Par défaut
    Dis moi ,tu dois afficher des rapports en PDF et/ou HTML ?

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 31
    Points : 13
    Points
    13
    Par défaut
    Oui j'y avais penser je vais essayer merci

    tu n'a pas répondu à ma deuxième questions (désolé d'être chiant :/)

    pour être plus clair voici ma syntaxe actuel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    if (dataSetRow["..."].value.equals("..."))
      params["chemin"].value+"etat1.JPG";
    if (dataSetRow["..."].value.equals("..."))
       params["chemin"].value+"etat2.JPG";
    if (dataSetRow["..."].value.equals("..."))
    ...etc


    edit j'avais pas vu : ce sont des pdf appelés à partir d'une action java dans un site internet (donc jsp)

  14. #14
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Bonjour,

    Au lieu de dataSetRow["..."].value, je te conseille row["...] tout court

  15. #15
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 31
    Points : 13
    Points
    13
    Par défaut
    d'accord je vous dirais ce qu'il en est car depuis 30mins je ne peux plus rien tester serveur de base de données qui un petit soucis :/

    en cas de problème je ferais remonter le sujet quand ce sera bon

    merci beaucoup de votre aide

  16. #16
    Membre éprouvé
    Avatar de lazarel
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2007
    Messages
    893
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2007
    Messages : 893
    Points : 1 164
    Points
    1 164
    Par défaut
    Autre chose fait plutôt
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    "...".equals(row["..."].value)
    au lieu de
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    row["..."].value.equals("...")
    ça t'évitera de te prendre un NullPointerException

  17. #17
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 31
    Points : 13
    Points
    13
    Par défaut
    bonjour bonjour

    le serveur ayant été rétabli j'ai pu tester le tout et j'ai une petite erreur

    mon pdf est généré sauf qu'au lieu d'avoir l'image j'ai ceci : The resource of this report item is not reachable.

    si je comprend bien l'image n'est pas trouvé.

    Si vous avez une idée :/

    edit : en modifiant le code (j'avais quelques fautes) j'obtiens maintenant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    javax.servlet.ServletException: Error happened while running the report
    ça c'est du message d'erreur qui aide :/

  18. #18
    Membre éprouvé
    Avatar de lazarel
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2007
    Messages
    893
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2007
    Messages : 893
    Points : 1 164
    Points
    1 164
    Par défaut
    Tu as utilisé quel composant pour ton image ?

  19. #19
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 31
    Points : 13
    Points
    13
    Par défaut
    qu'entend tu pas composant ?

  20. #20
    Membre éprouvé
    Avatar de lazarel
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2007
    Messages
    893
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2007
    Messages : 893
    Points : 1 164
    Points
    1 164
    Par défaut
    Objet de type Text, Dynamic Text ou tout simplement image etc

Discussions similaires

  1. [2008R2] Changement d'image dynamique dans le rapport
    Par enamorada dans le forum SSRS
    Réponses: 1
    Dernier message: 05/09/2012, 09h30
  2. [RichFaces] Changement d'image dynamique
    Par FrenchFrogger dans le forum JSF
    Réponses: 2
    Dernier message: 17/07/2009, 09h22
  3. [C#] ajouter une image dynamiquement
    Par h_imane dans le forum ASP.NET
    Réponses: 4
    Dernier message: 21/04/2004, 11h27
  4. [CR7] Insérer une image dynamiquement
    Par yoloosis dans le forum SAP Crystal Reports
    Réponses: 12
    Dernier message: 28/07/2003, 09h54
  5. Changement de langue dynamique (D6 et outils de traduction)
    Par agon dans le forum Composants VCL
    Réponses: 4
    Dernier message: 17/09/2002, 16h15

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