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 :

[Birt designer] Inclure un fichier JavaScript


Sujet :

BIRT

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 36
    Points : 19
    Points
    19
    Par défaut [Birt designer] Inclure un fichier JavaScript
    Bonjour,

    J'ai fait plusieurs rapports dans lequel j'utilise les mêmes fonctions javascript.
    Donc j'aimerais pouvoir l'écrire une fois dans un fichier js et l'inclure la ou j'en est besoin dans mon rapport, que je n'ai pas à faire un milliers de modifications pour changer une ligne de ma fonction.

    Est-ce possible d'inclure un fichier js ou de faire quelque chose dans le même genre ?

    Merci d'avance !

  2. #2
    Membre éclairé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2009
    Messages
    529
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2009
    Messages : 529
    Points : 836
    Points
    836
    Par défaut
    Salut,

    oui dans le designer il faut cliquer sur la racine du rapport puis:
    propriétés->Resources->Javascript files->Add file
    Le fichier js doit se trouver dans le resource path, c'est à dire par défaut sous le workspace eclipse pour le designer, et sous l'appli web Birt pour le web viewer.

    A+

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 36
    Points : 19
    Points
    19
    Par défaut
    Merci ça marche parfaitement

    Cependant, imaginons que j'ai un scripted dataset, j'aimerais inclure le code d'un .js dans fetch et dans open, est ce possible ?

  4. #4
    Membre éclairé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2009
    Messages
    529
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2009
    Messages : 529
    Points : 836
    Points
    836
    Par défaut
    Oui c'est tout à fait possible d'utiliser des fonctions issues de ton fichier .js dans le fetch/open d'un dataset, maintenant si tu poses la question je suppose que tu as rencontré quelques soucis? Les erreurs javascript coté serveur peuvent être très pénibles à détecter et corriger, perso j'utilise la fonction "logToDebugWindow(strMessage)", qui permet d'afficher en temps réel des messages, par exemple les valeurs des variables, un vrai must. Tu trouveras les infos sur cette fonction miraculeuse ici. En gros, il suffit ajouter un petit fichier .js d'environ 30 lignes aux ressources de ton rapport comme expliqué plus haut, et on peut ensuite appeler cette fonction depuis n'importe quel évènement du rapport.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 36
    Points : 19
    Points
    19
    Par défaut
    logToDebugWindow

    ahem... bref
    Enfaite le problème que j'ai ce que lorsque je passe mes rapports sous le BIRT viewer, je ne sait absolument pas ou je doit mettre mon fichier .js...
    /var/lib/tomcat6/webapp/birt ??
    /var/lib/tomcat6/webapp/birt/report ??
    /var/lib/tomcat6/webapp/birt/scriptlib ??
    a coter de mes .rptdesign ??

    Enfaite j'ai essayer a peu près partout mais a chaque fois j'obtiens des erreurs alors que ça marchait bien sous BIRT Designer

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2003
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 10
    Points : 11
    Points
    11
    Par défaut
    A priori c'est à côté de .rptdesign, donc thoériquement à la racine de ton birtviewer (qui dans ton cas semble le dossier "birt"

  7. #7
    Membre éclairé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2009
    Messages
    529
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2009
    Messages : 529
    Points : 836
    Points
    836
    Par défaut
    Salut,

    Si tu as mis ton fichier js à la racine de ton "workspace" eclipse (càd là où le designer crée tes rapports par défaut), Pauloux a raison il faut le mettre sous /var/lib/tomcat6/webapp/birt

    Le moteur birt utilise une variable, le RESOURCE_PATH pour rechercher les ressources d'un rapport. Par défaut c'est la racine de l'appli web pour le viewer, et la racine du workspace pour le designer, mais il faut ensuite que les chemins relatifs soient les mêmes entre le designer et le viewer.

    Ce sera plus clair avec un exemple: si tu as créé un répertoire /js dans ton workspace designer pour y stocker les fichiers javascripts, le viewer va les chercher dans /var/lib/tomcat6/webapp/birt/js, si tu les as directement mis à la racine il va les chercher dans /var/lib/tomcat6/webapp/birt

  8. #8
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 36
    Points : 19
    Points
    19
    Par défaut
    Merci pour vos réponse, je regarderais ça plus tard, la j'ai des contraintes de temps

    Par contre si quelqu'un pouvait me dire comment on passe en paramètre dans une URL un dateTime ça m’arrangerait grandement.
    A chaque fois que j’essaie le viewer me renvoi une exception du genre "12/01/2011" est incompatible avec le type DateTime.

    Merci d'avance.

  9. #9
    Membre éclairé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2009
    Messages
    529
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2009
    Messages : 529
    Points : 836
    Points
    836
    Par défaut
    Le Datetime fonctionne avec ça: yyyy-MM-dd HH:mm:ss
    Donc par exemple le 22 novembre à 15h29 0 secondes: 2011-11-22 15:29:00


    Si on n'a pas besoin de l'heure on s'évite bien des soucis en utilisant le type Date classique, et non pas le Datetime:yyyy-MM-dd

    A+

  10. #10
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 36
    Points : 19
    Points
    19
    Par défaut
    Pour le DateTime, si je passe quelquechose du type yyyy-MM-dd HH:mm:ss dans l'URL pour le birt viewer, il m'indique toujours que c'est incompatible avec le type DateTime...

    Par contre, 'ai un autre petit problème qui est plus important pour moi pour l'instant. Les fonction de birt commençant par BirtDateTime.firstDayOf ne marche pas dans le viewer
    J'ai fait des tests avec un rapport vierge et en appelant juste la fonction BirtDateTime.firstDayOfYear() avec plusieurs type de date possible, mais le viewer me renvoie toujours une erreur comme quoi il ne peut pas exécuter l'objet en question...

    Si quelqu'un à une idée ça serai génial

  11. #11
    Membre éclairé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2009
    Messages
    529
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2009
    Messages : 529
    Points : 836
    Points
    836
    Par défaut
    Salut,

    effectivement le format que je t'ai donné est celui préconisé pour les valeurs par défaut Datetime et la fenêtre des paramètres, mais curieusement il ne fonctionne pas en URL viewer.
    Il faut apparemment utiliser "MM/dd/yyyy hh:mm:ss a"
    Par exemple pour le 22 novembre 2011 22 heures 10mn 10sec j'obtiens l'URL suivante(les espaces sont remplacés par des "%20"), et ça fonctionne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://localhost:8080/birt/frameset?__report=report/welcome.rptdesign&Datetime=11/22/2011%2010:10:10%20PM
    Pour le 2em point, je ne connais pas la fonction BirtDateTime.firstDayOfYear(), elle n'apparait pas dans les fonctions disponibles de mon designer 3.7

    Mais le premier jour de l'année peut s'extraire d'autres manières, par exemple pour obtenir le premier jour de l'année en cours au format "valeur par défaut" Datetime:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    BirtDateTime.year(BirtDateTime.today())+"-01-01 00:00:00"
    Pour le forum je pense que c'est mieux de créer un topic par problème, car là on ne sait plus trop où on en est dans les résolutions

    A+

  12. #12
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 36
    Points : 19
    Points
    19
    Par défaut
    Je suis d'accord pour le forum mais j'ai hésiter car j'avais beaucoup de problème en même temps et j'ai des contraintes de temps
    Je rajouterais pas de problèmes sur ce topic

    Donc, pour l'URL, je regarderais probablement dans la semaine, mais comme tu l'as justement justifié, je n'ai nul besoin du temps, du coup un parametre de type Date est suffisant.

    Pour les fonctions, chez moi j'ai télécharger le RCP designer sur le site d'éclipse et j'ai donc ces fonctions.
    Donc, saurais tu comment je peut faire pour que mon rapport y est accès dans le viewer ?
    Quel fichier je dois mettre et à quel endroit ?
    Certes je pourrait les réécrire mais c'est long et j'ai besoin de toute les fonctions (années, trimestre, mois, semaine et jour) et pour créer la fonction firstDayOfWeek ça m'a pas l'air évident

  13. #13
    Membre éclairé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2009
    Messages
    529
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2009
    Messages : 529
    Points : 836
    Points
    836
    Par défaut
    Ah je n'avais pas vu que ces fonctions étaient arrivées en 3.7.1, en effet. Chez moi du coup ça fonctionne très bien

    cela ne marche pas pour toi car tu es bien en 3.7.1 pour le designer, mais sans doute pas pour le webViewer, tu dois être en 3.7 ou 2.6x. Télécharge sur eclipse la version 3.7.1 du Runtime, remplace ta version du viewer et ce problème sera résolu!

    A+

  14. #14
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 36
    Points : 19
    Points
    19
    Par défaut
    J'ai vérifier et mon viewer est bien en 3.7
    et ça ne marche toujours pas...

  15. #15
    Membre éclairé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2009
    Messages
    529
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2009
    Messages : 529
    Points : 836
    Points
    836
    Par défaut
    ok pour 3.7 mais est il en 3.7.1 ?

  16. #16
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 36
    Points : 19
    Points
    19
    Par défaut
    Oui désolé de ne pas avoir précisé tout de suite.

  17. #17
    Membre éclairé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2009
    Messages
    529
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2009
    Messages : 529
    Points : 836
    Points
    836
    Par défaut
    Bizarre. Je suppose que les seules fonctions qui ne marchent pas sont les nouvelles, du type BirtDateTime.first* ? Si par exemple tu fais BirtDateTime.today() le viewer le reconnait? Si c'est le cas il y a fort à parier qu'il s'agit d'un conflit de version de la classe BirtDateTime, ton viewer doit charger une ancienne version en plus de la nouvelle . Un souci de classpath ou de classloader, y aurait pas par hasard plusieurs versions de BIRT installées sur le serveur (dans la même JVM)?

    A part te dire qu'à mon avis en refaisant une install de zéro sur un environnement clean ça devrait marcher je peux pas t'aider plus sur ce problème car je n'arrive pas à le reproduire. Espérons que quelqun qui l'a déjà rencontré pourra te donner une meilleure option.

    A+

  18. #18
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 36
    Points : 19
    Points
    19
    Par défaut
    Effectivement c’était un problème de version, j'ai du installer la 2.6 au debut et j'ai du mal la changer en 3.7.1 peu après.
    Du coup ça marche !

    Pour résumer, je crois que tout mes problèmes sont résolu
    Un grand merci en tout cas !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [birt designer] Graphique, date et JavaScript
    Par NiarK-74 dans le forum BIRT
    Réponses: 7
    Dernier message: 18/11/2011, 10h09
  2. Réponses: 5
    Dernier message: 11/08/2010, 13h06
  3. Réponses: 1
    Dernier message: 03/08/2007, 14h25
  4. [DOM] inclure fichier javascript en javascript
    Par italiasky dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 21/05/2007, 14h29
  5. Réponses: 5
    Dernier message: 03/04/2007, 15h30

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