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 22/11/2011, 12h39   #1
Invité régulier
 
Homme
Inscription : novembre 2011
Messages : 36
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : novembre 2011
Messages : 36
Points : 8
Points : 8
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 !
NiarK-74 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2011, 16h17   #2
Membre confirmé
 
Homme
Consultant en Business Intelligence
Inscription : mai 2009
Messages : 186
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Consultant en Business Intelligence

Informations forums :
Inscription : mai 2009
Messages : 186
Points : 289
Points : 289
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+
donino est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 23/11/2011, 13h57   #3
Invité régulier
 
Homme
Inscription : novembre 2011
Messages : 36
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : novembre 2011
Messages : 36
Points : 8
Points : 8
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 ?
NiarK-74 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2011, 17h04   #4
Membre confirmé
 
Homme
Consultant en Business Intelligence
Inscription : mai 2009
Messages : 186
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Consultant en Business Intelligence

Informations forums :
Inscription : mai 2009
Messages : 186
Points : 289
Points : 289
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.
donino est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 23/11/2011, 21h53   #5
Invité régulier
 
Homme
Inscription : novembre 2011
Messages : 36
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : novembre 2011
Messages : 36
Points : 8
Points : 8
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
NiarK-74 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2011, 08h10   #6
Invité régulier
 
Inscription : février 2003
Messages : 10
Détails du profil
Informations forums :
Inscription : février 2003
Messages : 10
Points : 7
Points : 7
A priori c'est à côté de .rptdesign, donc thoériquement à la racine de ton birtviewer (qui dans ton cas semble le dossier "birt"
Pauloux est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 24/11/2011, 11h33   #7
Membre confirmé
 
Homme
Consultant en Business Intelligence
Inscription : mai 2009
Messages : 186
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Consultant en Business Intelligence

Informations forums :
Inscription : mai 2009
Messages : 186
Points : 289
Points : 289
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
donino est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 25/11/2011, 09h09   #8
Invité régulier
 
Homme
Inscription : novembre 2011
Messages : 36
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : novembre 2011
Messages : 36
Points : 8
Points : 8
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.
NiarK-74 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/11/2011, 15h06   #9
Membre confirmé
 
Homme
Consultant en Business Intelligence
Inscription : mai 2009
Messages : 186
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Consultant en Business Intelligence

Informations forums :
Inscription : mai 2009
Messages : 186
Points : 289
Points : 289
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+
donino est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 26/11/2011, 23h29   #10
Invité régulier
 
Homme
Inscription : novembre 2011
Messages : 36
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : novembre 2011
Messages : 36
Points : 8
Points : 8
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
NiarK-74 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2011, 11h00   #11
Membre confirmé
 
Homme
Consultant en Business Intelligence
Inscription : mai 2009
Messages : 186
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Consultant en Business Intelligence

Informations forums :
Inscription : mai 2009
Messages : 186
Points : 289
Points : 289
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 :
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 :
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+
donino est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 28/11/2011, 13h14   #12
Invité régulier
 
Homme
Inscription : novembre 2011
Messages : 36
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : novembre 2011
Messages : 36
Points : 8
Points : 8
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
NiarK-74 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2011, 14h04   #13
Membre confirmé
 
Homme
Consultant en Business Intelligence
Inscription : mai 2009
Messages : 186
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Consultant en Business Intelligence

Informations forums :
Inscription : mai 2009
Messages : 186
Points : 289
Points : 289
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+
donino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2011, 16h09   #14
Invité régulier
 
Homme
Inscription : novembre 2011
Messages : 36
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : novembre 2011
Messages : 36
Points : 8
Points : 8
J'ai vérifier et mon viewer est bien en 3.7
et ça ne marche toujours pas...
NiarK-74 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2011, 17h41   #15
Membre confirmé
 
Homme
Consultant en Business Intelligence
Inscription : mai 2009
Messages : 186
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Consultant en Business Intelligence

Informations forums :
Inscription : mai 2009
Messages : 186
Points : 289
Points : 289
ok pour 3.7 mais est il en 3.7.1 ?
donino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2011, 17h44   #16
Invité régulier
 
Homme
Inscription : novembre 2011
Messages : 36
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : novembre 2011
Messages : 36
Points : 8
Points : 8
Oui désolé de ne pas avoir précisé tout de suite.
NiarK-74 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2011, 18h55   #17
Membre confirmé
 
Homme
Consultant en Business Intelligence
Inscription : mai 2009
Messages : 186
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Consultant en Business Intelligence

Informations forums :
Inscription : mai 2009
Messages : 186
Points : 289
Points : 289
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+
donino est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 29/11/2011, 09h26   #18
Invité régulier
 
Homme
Inscription : novembre 2011
Messages : 36
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : novembre 2011
Messages : 36
Points : 8
Points : 8
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 !
NiarK-74 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 17h14.


 
 
 
 
Partenaires

Hébergement Web