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 02/07/2008, 14h31   #1
Futur Membre du Club
 
Inscription : mai 2007
Messages : 66
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 66
Points : 15
Points : 15
Par défaut Scripted dataset

bonjour, j'ai suivi la faq sur ce sujet :

Citation:
Envoyé par BiM Voir le message
Comment remplir un DataSet avec un objet Java ?

Nous avons un DataSet Personne avec id, nom, prenom, age.

Dans le paramètre personnes, nous passons une List remplie d'objets de type Personne.

Dans le open du DataSet Personne, il faut d'abord récupérer l'objet et initialiser les variables :
Code JavaScript :
1
2
3
4
5
personnes = params["personnes"].value;
nbLignes = 0;
if (personnes != null)
	nbLignes = personnes.size();
ligneEnCours = 0;

Dans le fetch, nous parcourons chaque ligne de la liste :
Code JavaScript :
1
2
3
4
5
6
7
8
9
10
if (ligneEnCours >= nbLignes)
	return false;
 
var personne = personnes.get(ligneEnCours);
row["Id"] = personne.getId();
row["Nom"] = personne.getNom();
row["Prenom"] = personne.getPrenom();
row["Age"] = personne.getAge();
ligneEnCours++;
return true;

Et voilà le DataSet est rempli !
mais j'ai un probleme
voici un ectrait de mes logs
Citation:

var points = params["points"].value;
var nbLignes = 0;
if (points != null){
nbLignes = points.size();
}
var ligneEnCours = 0;
} , source=DataSet[Point].__bm_OPEN, lineNo=1
2 juil. 2008 14:25:30 org.eclipse.birt.data.engine.script.ScriptEvalUtil evaluateJSExpr
PLUS FIN: ENTRY evaluateJSExpr() scriptText=__bm_OPEN(), source=DataSet[Point].__bm_OPEN, lineNo=1
2 juil. 2008 14:25:30 org.eclipse.birt.core.script.JavascriptEvalUtil wrapRhinoException
FIN: Unexpected RhinoException. Source=DataSet[Point].__bm_OPEN, line=1, Script=
__bm_OPEN()

org.mozilla.javascript.JavaScriptException: not exits paramters:points
je ne comprend pas je passe par java et j'utilise une liste "points" contenant un objet "point" avec les bon attributs et les méthodes get et set qu'il faut
si qq un a une idée.
Merci
ruby_robber est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2008, 14h48   #2
BiM
Modératrice
 
Avatar de BiM
 
Femme
Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
Inscription : janvier 2005
Messages : 7 299
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 26
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 299
Points : 8 650
Points : 8 650
Bonjour,

Oui, tu passes ton paramètre au run ou au render ?

La partie run permet de créer l'état (donc on a besoin des paramètres) et la partie render de faire le rendu (PDF, XLS ou autre format).
__________________
__~{@ BiM - Modératrice "Business Intelligence" @}~
Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
___________.~{@ Lapine crétine @}~
BiM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2008, 15h22   #3
Futur Membre du Club
 
Inscription : mai 2007
Messages : 66
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 66
Points : 15
Points : 15
je passe par le birt engine 2_2_0 donc je pense que c'est le run. c'est un appel via les api java pour créer un document pdf.
je passe mon objet points dans la grappe des paramètres une hashMap avec pour clé points et comme valeur un list de points par exemples j'ai des parametres qui sont des clé primaires pour un autre data set

ma hashmap contient
clé: toto valeur: toto
clé: points valeur: list(point).

j'arrive a utiliser la clé toto pour faires des acces en bases aurais je fais qq chose de mal?
y'a til un moyen d'utiliser un objet java dans eclipse pour tester le rendu via l' interface graphique?
ruby_robber est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2008, 16h37   #4
BiM
Modératrice
 
Avatar de BiM
 
Femme
Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
Inscription : janvier 2005
Messages : 7 299
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 26
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 299
Points : 8 650
Points : 8 650
Citation:
Envoyé par ruby_robber Voir le message
je passe par le birt engine 2_2_0 donc je pense que c'est le run. c'est un appel via les api java pour créer un document pdf.
Y dit qu'il voit pas le rapport...
Citation:
Envoyé par ruby_robber Voir le message
je passe mon objet points dans la grappe des paramètres une hashMap avec pour clé points et comme valeur un list de points par exemples j'ai des parametres qui sont des clé primaires pour un autre data set
On peut voir le code qui fait ceci puis qui lance la génération stp ? (Je pense que tu as partiellement repris l'exemple de la FAQ mais j'ai quelques trucs à vérifier.

Citation:
Envoyé par ruby_robber Voir le message
y'a til un moyen d'utiliser un objet java dans eclipse pour tester le rendu via l' interface graphique?
Hum, c'est pas ce que tu fais ? Ou alors tu veux dire sans faire tourner ton appli J2EE ? Oui mais je ne sais plus comment
__________________
__~{@ BiM - Modératrice "Business Intelligence" @}~
Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
___________.~{@ Lapine crétine @}~
BiM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2008, 18h21   #5
Futur Membre du Club
 
Inscription : mai 2007
Messages : 66
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 66
Points : 15
Points : 15
Citation:
Envoyé par BiM Voir le message
On peut voir le code qui fait ceci puis qui lance la génération stp ? (Je pense que tu as partiellement repris l'exemple de la FAQ mais j'ai quelques trucs à vérifier.
dans le open

Code :
1
2
3
4
5
6
7
 
var points = params["points"].value;
var nbLignes = 0;
if (points != null){
	nbLignes = points.size();
	}
var ligneEnCours = 0;
dans le fecth
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
if (ligneEnCours >= nbLignes){
	return false;
 }
var point = points.get(ligneEnCours);
row["code"] = point.getCode();
row["question"] = point.getCommentaire2();
row["reponse"]= point.getCommentaire3();
row["sujet"]= point.getCommentaire1();
row["type"] = point.getType();
row["importance"] = point.getimportance();
row["responsable"] = point.getResponsable();
ligneEnCours++;
return true;
a noter que ma liste point est une arraylist java.

Citation:
Envoyé par BiM Voir le message
Hum, c'est pas ce que tu fais ? Ou alors tu veux dire sans faire tourner ton appli J2EE ? Oui mais je ne sais plus comment
je voulais dire tester avec eclipse en rentrant des parametres bidon. un prévisualisation en qq sorte. car visualiser via l'application c'est long il faut rentrer beaucoup de parametres.
ruby_robber est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2008, 19h57   #6
BiM
Modératrice
 
Avatar de BiM
 
Femme
Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
Inscription : janvier 2005
Messages : 7 299
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 26
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 299
Points : 8 650
Points : 8 650
Je la refais...

Citation:
Envoyé par BiM Voir le message
On peut voir le code qui fait ceci puis qui lance la génération stp ? (Je pense que tu as partiellement repris l'exemple de la FAQ mais j'ai quelques trucs à vérifier.
__________________
__~{@ BiM - Modératrice "Business Intelligence" @}~
Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
___________.~{@ Lapine crétine @}~
BiM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/07/2008, 09h49   #7
Futur Membre du Club
 
Inscription : mai 2007
Messages : 66
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 66
Points : 15
Points : 15
Citation:
Envoyé par BiM Voir le message
Je la refais...
désolé j'ai mal compris par contre pour te montrer mon code appel birt ca va pas etre trop top car des librairies en internes on ete dévellops pour faciliter l'appel birt


Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
List<Point> points = new ArrayList<Point>();
       Point point= new Point();
       point.setCode("toto");
       point.setCommentaire1("commentaire1");
       point.setCommentaire2("commentaire1");
       point.setCommentaire3("commentaire1");
       point.setimportance("portant");
       point.setResponsable("pas moi");
       point.setType("top");
       points.add(point);
       printData.put("points", points);
apres je ne peux pas te montrer le code pour clause de confidentialité
mais print data est la liste des parametre que l'on passe au rapport
ruby_robber est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/07/2008, 09h54   #8
BiM
Modératrice
 
Avatar de BiM
 
Femme
Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
Inscription : janvier 2005
Messages : 7 299
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 26
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 299
Points : 8 650
Points : 8 650
Dans ce cas, je ne peux pas t'aider.

Je ne vois pas ce qu'il y a de confidentiel à montrer le code équivalent à ça :
Code Java :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
IReportRunnable design = engine.openReportDesign(new File(realPath, "WEB-INF/etats/" + etat + ".rptdesign").getAbsolutePath());
IRunAndRenderTask task = engine.createRunAndRenderTask(design);		//Crée une tâche afin d'éxécuter le rapport
task.setParameterValue("chemin",realPath);
for (int i=0;i<parametres.size();i++) {
	ParametreEdition param = (ParametreEdition)parametres.get(i);
	task.setParameterValue(param.getCle(),param.getValeur());
}
task.setParameterValue("realPath", realPath);
/* Création */
option.setOutputFileName(chemin);	//Nom du fichier de sortie
option.setOutputFormat(format);		//Format du fichier de sortie
task.setLocale(langue);
task.setRenderOption(option);		//Chargement du fichier
/* Fin création */
task.run();

Comme certains de mes collègues le disent : "Le plugin boule-de-cristal-1.0 n'a pas encore été développé..."
__________________
__~{@ BiM - Modératrice "Business Intelligence" @}~
Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
___________.~{@ Lapine crétine @}~
BiM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/07/2008, 10h16   #9
Futur Membre du Club
 
Inscription : mai 2007
Messages : 66
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 66
Points : 15
Points : 15
Citation:
Envoyé par BiM Voir le message
Code :
1
2
3
4
5
6
7
8
 
 
task.setParameterValue("chemin",realPath);
for (int i=0;i<parametres.size();i++) {
	ParametreEdition param = (ParametreEdition)parametres.get(i);
	task.setParameterValue(param.getCle(),param.getValeur());
}
task.setParameterValue("realPath", realPath);

peux tu m'expliquer cette partie de code.
je ne vois pas l'intéret du

Code :
1
2
3
 
task.setParameterValue("realPath", realPath);
task.setParameterValue("chemin", realPath);
sinon ta boucle sert juste a passer les parametres au rapports

pour ce que je ne peux pas te montrer ce que nous faison appel ux apis birt d'une maniere tres specifique. je n'ai pas vu cette partie de code dans nos librairies (pas encore) en gros nous avons une interface ou nous passons les parametres et nos librairies font le reste.
ruby_robber est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/07/2008, 10h27   #10
BiM
Modératrice
 
Avatar de BiM
 
Femme
Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
Inscription : janvier 2005
Messages : 7 299
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 26
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 299
Points : 8 650
Points : 8 650
Essaye de trouver un objet de type IRunTask ou IRenderTask ou IRunAndRenderTask. (Précise nous le type).

Sur celui (ou ceux) ci, est ce que la méthode setParameterValue(...) est appliquée ? (Et si oui, sur le(s)quel(s) ?)
__________________
__~{@ BiM - Modératrice "Business Intelligence" @}~
Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
___________.~{@ Lapine crétine @}~
BiM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/07/2008, 10h27   #11
Futur Membre du Club
 
Inscription : mai 2007
Messages : 66
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 66
Points : 15
Points : 15
bonjour je n'ai pas encore trouvé de

IRunTask, IRenderTask, IRunAndRenderTask. mais,quelles sont les différences entre ces 3 classes?
et a quoi sert cette operation
task.setParameterValue("chemin", realPath);
ruby_robber est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/07/2008, 14h52   #12
Membre éclairé
 
Inscription : novembre 2005
Messages : 385
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 385
Points : 362
Points : 362
Il s'agit juste d'un exemple montrant comment définir la valeur d'un paramètre de rapport via l'API BIRT
erwan.bodere est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/07/2008, 11h26   #13
Futur Membre du Club
 
Inscription : mai 2007
Messages : 66
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 66
Points : 15
Points : 15
Par défaut avancement

j'ai un autre erreur dans mon javavscript enfin qq chose de visible!:

si je fais un
Code :
row["code"] = ligne.get["code"];
il me sort l'erreur suivante

Code :
1
2
3
4
5
6
org.eclipse.birt.data.engine.core.DataException: A BIRT exception occurred: Error evaluating Javascript expression. Script engine error: TypeError: Cannot read property "get" from undefined (DataSet[Point].__bm_FETCH#9)
 Script source: DataSet[Point].__bm_FETCH, line: 1, text:
__bm_FETCH(). See next exception for more information.
Error evaluating Javascript expression. Script engine error: TypeError: Cannot read property "get" from undefined (DataSet[Point].__bm_FETCH#9)
 Script source: DataSet[Point].__bm_FETCH, line: 1, text:
__bm_FETCH()
sinon si je fais un

Code :
row["code"] = ligne.getCode();
il me sort une erreur du meme genre en disant que la methode getCode est inconnue pour l'objet etc
ruby_robber est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/07/2008, 11h31   #14
BiM
Modératrice
 
Avatar de BiM
 
Femme
Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
Inscription : janvier 2005
Messages : 7 299
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 26
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 299
Points : 8 650
Points : 8 650
Bonjour,

ligne est de quel type ?
__________________
__~{@ BiM - Modératrice "Business Intelligence" @}~
Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
___________.~{@ Lapine crétine @}~
BiM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/07/2008, 11h43   #15
Futur Membre du Club
 
Inscription : mai 2007
Messages : 66
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 66
Points : 15
Points : 15
bonjour,

ma ligne est de type string si je ne m'abuse. mon attribute code de mon objet est une String
ruby_robber est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/07/2008, 11h49   #16
BiM
Modératrice
 
Avatar de BiM
 
Femme
Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
Inscription : janvier 2005
Messages : 7 299
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 26
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 299
Points : 8 650
Points : 8 650


Le type String n'a pas d'attribut Code...
__________________
__~{@ BiM - Modératrice "Business Intelligence" @}~
Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
___________.~{@ Lapine crétine @}~
BiM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/07/2008, 12h08   #17
Futur Membre du Club
 
Inscription : mai 2007
Messages : 66
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 66
Points : 15
Points : 15
il y a une incompréhension. l'attribut code de mon objet point est une string.

Citation:
point.setCode("toto");
dans mon code java

Citation:
row["code"] = ligne.getCode();
tu parlais du row["code"] peut etre?
ruby_robber est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/07/2008, 12h10   #18
BiM
Modératrice
 
Avatar de BiM
 
Femme
Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
Inscription : janvier 2005
Messages : 7 299
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 26
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 299
Points : 8 650
Points : 8 650
Code :
row["code"] = ligne.getCode();
Nonon, tu avais mis ligne...

"point" as-t'il une méthode publique getCode() au moins ?
__________________
__~{@ BiM - Modératrice "Business Intelligence" @}~
Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
___________.~{@ Lapine crétine @}~
BiM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/07/2008, 12h16   #19
Futur Membre du Club
 
Inscription : mai 2007
Messages : 66
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 66
Points : 15
Points : 15
j'ai modifié pour plus de lisibilité.
point et ligne sont toujours des instances de mon objet point
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
 
 
public class Point
 
 
  private String code;
  private String commentaire1;
  private String commentaire2;
  private String commentaire3;
  private String type;
  private String importance;
  private String responsable;
 
  public Point(){
    super();
  }
 
  public String getCode() {
    return code;
  }
  public void setCode(String code) {
    this.code = code;
  }
  public String getCommentaire1() {
    return commentaire1;
  }
  public void setCommentaire1(String commentaire1) {
    this.commentaire1 = commentaire1;
  }
  public String getCommentaire2() {
    return commentaire2;
  }
  public void setCommentaire2(String commentaire2) {
    this.commentaire2 = commentaire2;
  }
  public String getCommentaire3() {
    return commentaire3;
  }
  public void setCommentaire3(String commentaire3) {
    this.commentaire3 = commentaire3;
  }
  public String getType() {
    return type;
  }
  public void setType(String type) {
    this.type = type;
  }
  public String getimportance() {
    return importance;
  }
  public void setimportance(String importance) {
    this.importance = importance;
  }
  public String getResponsable() {
    return responsable;
  }
  public void setResponsable(String responsable) {
    this.responsable = responsable;
  }
voila l'instance de l'objet passé en paramètre je ne pourrais pas être plus précis concernant ce point..
ruby_robber est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/07/2008, 12h18   #20
BiM
Modératrice
 
Avatar de BiM
 
Femme
Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
Inscription : janvier 2005
Messages : 7 299
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 26
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 299
Points : 8 650
Points : 8 650
Pourquoi faire ligne.getCode() quand ligne ne correspond à rien visiblement ?

point.getCode() c'est pas mieux ?
__________________
__~{@ BiM - Modératrice "Business Intelligence" @}~
Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
___________.~{@ Lapine crétine @}~
BiM 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 03h48.


 
 
 
 
Partenaires

Hébergement Web