|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Inscription : novembre 2011 Messages : 36 ![]() |
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 ! |
|
|
00
|
|
|
#2 |
|
Membre confirmé
![]() Consultant en Business Intelligence Inscription : mai 2009 Messages : 186 ![]() |
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+ |
|
|
10
|
|
|
#3 |
|
Invité régulier
![]() Inscription : novembre 2011 Messages : 36 ![]() |
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 ? |
|
|
00
|
|
|
#4 |
|
Membre confirmé
![]() Consultant en Business Intelligence Inscription : mai 2009 Messages : 186 ![]() |
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.
|
|
|
10
|
|
|
#5 |
|
Invité régulier
![]() Inscription : novembre 2011 Messages : 36 ![]() |
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 |
|
|
00
|
|
|
#6 |
|
Invité régulier
![]() Inscription : février 2003 Messages : 10 ![]() |
A priori c'est à côté de .rptdesign, donc thoériquement à la racine de ton birtviewer (qui dans ton cas semble le dossier "birt"
|
|
|
10
|
|
|
#7 |
|
Membre confirmé
![]() Consultant en Business Intelligence Inscription : mai 2009 Messages : 186 ![]() |
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 |
|
|
10
|
|
|
#8 |
|
Invité régulier
![]() Inscription : novembre 2011 Messages : 36 ![]() |
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. |
|
|
00
|
|
|
#9 |
|
Membre confirmé
![]() Consultant en Business Intelligence Inscription : mai 2009 Messages : 186 ![]() |
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 |
|
Invité régulier
![]() Inscription : novembre 2011 Messages : 36 ![]() |
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 |
|
|
00
|
|
|
#11 |
|
Membre confirmé
![]() Consultant en Business Intelligence Inscription : mai 2009 Messages : 186 ![]() |
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
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" A+ |
|
|
10
|
|
|
#12 |
|
Invité régulier
![]() Inscription : novembre 2011 Messages : 36 ![]() |
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 |
|
|
00
|
|
|
#13 |
|
Membre confirmé
![]() Consultant en Business Intelligence Inscription : mai 2009 Messages : 186 ![]() |
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+ |
|
|
00
|
|
|
#14 |
|
Invité régulier
![]() Inscription : novembre 2011 Messages : 36 ![]() |
J'ai vérifier et mon viewer est bien en 3.7
et ça ne marche toujours pas... |
|
|
00
|
|
|
#15 |
|
Membre confirmé
![]() Consultant en Business Intelligence Inscription : mai 2009 Messages : 186 ![]() |
ok pour 3.7 mais est il en 3.7.1 ?
|
|
|
00
|
|
|
#16 |
|
Invité régulier
![]() Inscription : novembre 2011 Messages : 36 ![]() |
Oui désolé de ne pas avoir précisé tout de suite.
|
|
|
00
|
|
|
#17 |
|
Membre confirmé
![]() Consultant en Business Intelligence Inscription : mai 2009 Messages : 186 ![]() |
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
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+ |
|
|
10
|
|
|
#18 |
|
Invité régulier
![]() Inscription : novembre 2011 Messages : 36 ![]() |
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 ! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com