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 20/02/2011, 13h37   #1
Invité de passage
 
Inscription : février 2009
Messages : 136
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 136
Points : 0
Points : 0
Par défaut lancer un etat birt a partir d'un boutton dans jsf

Bonjour,
Dans une application J2EE avec le framework JSF, il y a un formulaire Entreprise.jsp qui contient un bouton permettant de lancer l'etat birt, le code de ce bouton est:
Code :
1
2
3
4
5
6
7
  <a4j:commandLink  id="i2"  accesskey="p"  type="submit"
 
							oncomplete="window.showModalDialog('../../frameset?__report=#{EBEntreprise.dos}/Entreprise.rptdesign&code=#{EBEntreprise.selectedEntreprise.code}',
							'Entreprise','dialogWidth:800px;dialogHeight:700px');"
							style="color:black;font-family: candara, Arial, sans-serif;font-size: 14px;">
							<h:graphicImage value="/Images/printer.png" 	style="border:0; height : 17px;" />
						</a4j:commandLink>
dans ce code on trouve le nom de l'etat qui est entreprise et comment le trouver on se derige vers le managed bean EBEntreprise puis allant à la classe dos ou on trouve le code:
Code :
1
2
3
4
5
6
7
public String getDos() throws ParserConfigurationException, SAXException, IOException, JDOMException, BirtException {
 
 
 
		dos = appelEtat("Entreprise");
		return dos;
	}
cette classe appel la classe appelEtat avec ce code:
Code :
1
2
3
4
5
6
public String appelEtat(String Vetat) throws ParserConfigurationException, SAXException, IOException, JDOMException, BirtException{
		 Parametrage par = new Parametrage();
 
		 String dosss = par.getDossier("Reports", Vetat);
		 return dosss;
		}
ce code permet de chercher l'etat d'une facon parametré, dans le fichier param il parcourt le fichier xml et cherche l'etat demander.
ma question est ou je peux ajouter la classe Edition pour initialiser le moteur, ce qui m'interesse surtout si la partie necessaire pour l'internationalisation, voici ou se trouve la classe Edition dont je parle:
http://business-intelligence.develop...age=generation
Merci.
amiraprincesse est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2011, 17h51   #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,

C'est bien joli tout ça, mais ton code parle de classes et de méthodes qui te sont propres... L'intéressant serait de connaître le contenu de la méthode getDossier(..) qui fait probablement appel à une autre méthode qui génère l'état. Et là, il n'est pas forcément nécessaire de faire appel à une classe Java tel que celle que tu nous montres dans la FAQ. Parfois, un simple appel URL suffit...

En gros, si tu trouves à un endroit une classe nommé RunTask ou RunAndRenderTask quelque part, tu y ajoutes l'internationalisation avec task.setLocale(maLocale). Si c'est un simple appel par URL, tu y rajoutes le paramètre __locale=maLocale (fr par exemple).
__________________
__~{@ 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 21/02/2011, 08h31   #3
Invité de passage
 
Inscription : février 2009
Messages : 136
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 136
Points : 0
Points : 0
Bonjour,
Voici le code de getDossier:
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
60
61
62
63
64
65
66
67
public  String getDossier (String type,String nom) throws ParserConfigurationException, SAXException, IOException, JDOMException {
 
	// Création d'un nouveau DOM
	//On crée une instance de SAXBuilder
    SAXBuilder sxb = new SAXBuilder();
     //On crée un nouveau document JDOM avec en argument le fichier XML
       //Le parsing est terminé ;)
 
    Document document = sxb.build(new File(getChemin()+"/WEB-INF/Arborescence.xml"));
 
 
 
    //On initialise un nouvel élément racine avec l'élément racine du document.
    Element racine = document.getRootElement();
 
	//On crée une List contenant tous les noeuds "etudiant" de l'Element racine
	if (type.compareTo("Pages")==0) {
	List listpage = racine.getChildren("Pages");
 
	//On crée un Iterator sur notre liste
	   Iterator<Element> i = listpage.iterator();
	   while(i.hasNext())
	   {
	      //On recrée l'Element courant à chaque tour de boucle afin de
	      //pouvoir utiliser les méthodes propres aux Element comme :
	      //selectionner un noeud fils, modifier du texte, etc...
	      Element courant = (Element)i.next();
	      List<Element> listdos = courant.getChildren();
	  	//On crée un Iterator sur notre liste
	  	   Iterator<Element> g = listdos.iterator();
	  	   while(g.hasNext())
	  	   {
	  		 Element actuel = (Element)g.next();
	      if (actuel.getChild(nom)!=null)
		      return actuel.getName();
	  	   }
	   }
 
 }
	else {
 
		List listpage = racine.getChildren("Reports");
 
		//On crée un Iterator sur notre liste
		   Iterator<Element> i = listpage.iterator();
		   while(i.hasNext())
		   {
		      //On recrée l'Element courant à chaque tour de boucle afin de
		      //pouvoir utiliser les méthodes propres aux Element comme :
		      //selectionner un noeud fils, modifier du texte, etc...
		      Element courant = (Element)i.next();
		      List<Element> listdos = courant.getChildren();
		  	//On crée un Iterator sur notre liste
		  	   Iterator<Element> g = listdos.iterator();
		  	   while(g.hasNext())
		  	   {
		  		 Element actuel = (Element)g.next();
		      if (actuel.getChild(nom)!=null){
		    	  System.out.print("get dos "+nom+" "+actuel.getName());
			      return actuel.getName();
		      }
		  	   }
		   }
 
	 }
	return "";
}
D'une facon générale il parcourt le fichier XML ou on trouve l'arborecence des pages du projet que sa soit des pages (on trouve dedans les formulaire ecris en jsp) ou des report qui sont les rapport d'états réalisés avec birt. Les rapports et les pages sont eux meme decouper en groupe par domaine.
Voila le probleme la classe nommé RunTask ou RunAndRenderTask n'est pas dutout utilisé.
aprés cela on a le rapport Entreprise.rptdesign ou on trouve le design de la fiche et dans le jeux de données est definit les champs qu'on trouve dans la grille de la fiche, apres on ecris le script dans open
Code :
1
2
3
4
5
6
7
8
9
10
11
importPackage(Packages.java.lang);
 
 
count=0;
 
 
Fic= new Packages.com.marinesoft.gmao.Gestion_Entreprise.EBEntreprise();
 
codeEntreprise = params["codeEntr"]
 
LEntreprise=Fic.getLentreprise(codeEntr);
Ce code definie le parametre de l'état et le package ou on trouve la fonction qui nous donne la liste des données a réccuperer de la base.
et dans le fetch on associé chaque champ de la grille à une donnée réccupéré de la base de cette facon:
Code :
1
2
3
4
5
6
7
8
9
10
if(count<LEntreprise.size()){
row["Principal"]=LEntreprise.get(count).getPrincipal();
row["CodeFonc"]=LEntreprise.get(count).getCodeFonc().getCode();
row["LibFonc"]=LEntreprise.get(count).getCodeFonc().getLibelle();
 
count++;
return true;
}
 
return false;
Voila en aucun cas on a eu besoin des fonctions de la langue jusqu'a vouloir internationaliser.
amiraprincesse est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2011, 09h32   #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
Heu, et tu veux internationaliser quoi ?
__________________
__~{@ 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 21/02/2011, 09h54   #5
Invité de passage
 
Inscription : février 2009
Messages : 136
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 136
Points : 0
Points : 0
Je veux internationaliser les label de l'etat de birt. pour que sa apparait en francais ou en anglais.
amiraprincesse est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2011, 10h01   #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
Oui et donner ce qu'il y a dans ta JSF ou dans ton rapport, ça n'avance à rien. Comment lances-tu ton rapport ?
__________________
__~{@ 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 21/02/2011, 10h14   #7
Invité de passage
 
Inscription : février 2009
Messages : 136
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 136
Points : 0
Points : 0
les labels sont ecris en utilisant une etiquette dans birt et donc il affiche ce qu'il y a été ecris à la main dans l'etiquette.
Le rapport est lancer a partir du bouton print qui est dans le fichier jsp que j'ai decris dans le premier message.
En faite on imprime pas le formulaire directement qui est dans jsp mais on decris ce qu'on veut imprimer dans l'etat birt car généralement c'est une partie du formulaire.
amiraprincesse est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2011, 10h19   #8
Membre Expert
 
Avatar de lazarel
 
Homme
Consultant informatique
Inscription : mai 2007
Messages : 893
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 30
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 360
Points : 1 360
Tu utilise donc le Viewer BIRT ou tu implémente l'API de BIRT pour la génération des rapports ?
lazarel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2011, 10h26   #9
Invité de passage
 
Inscription : février 2009
Messages : 136
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 136
Points : 0
Points : 0
oui c'est sa.
amiraprincesse est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2011, 10h35   #10
Membre Expert
 
Avatar de lazarel
 
Homme
Consultant informatique
Inscription : mai 2007
Messages : 893
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 30
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 360
Points : 1 360
Dans ce cas tu devrais regarder ce lien
lazarel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2011, 11h09   #11
Invité de passage
 
Inscription : février 2009
Messages : 136
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 136
Points : 0
Points : 0
Enfaite si tu parles de Frameset c'est ce que j'utilise, regarde le code du bouton print:
Code :
1
2
3
4
5
6
7
<a4j:commandLink  id="i5"  accesskey="p" target="#" type="submit"
 
							oncomplete="window.showModalDialog('../../frameset?__report=#{EBEntreprise.dos}/Entreprise.rptdesign&code=#{EBEntreprise.selectedEntreprise.code}',
							'Entreprise','dialogWidth:800px;dialogHeight:700px');"
							style="color:black;font-family: candara, Arial, sans-serif;font-size: 14px;">
							<h:graphicImage value="/Images/printer.png" 	style="border:0; height : 17px;" />
						</a4j:commandLink>
et on a des cas ou on passe dabord d'une page qui nous permet de choisir si on veut imprimer juste une ligne de données ou toute la liste.
je croie qu'il faut utiliser une autre méthode que l'internationalisation avec birt connu. j'utilise l'internationalisation dans le projet, je ne voie pas jusqu'a maintenant comment inclure les rapport d'etat mais sa dois surement se faire de cette methode
amiraprincesse est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2011, 11h16   #12
Membre Expert
 
Avatar de lazarel
 
Homme
Consultant informatique
Inscription : mai 2007
Messages : 893
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 30
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 360
Points : 1 360
Que veux-tu faire ... internationaliser les rapports ou pas ?
lazarel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2011, 11h26   #13
Invité de passage
 
Inscription : février 2009
Messages : 136
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 136
Points : 0
Points : 0
oui c'est sure c'est ce que je veux, je dis simplement que je ne pense pas qu'il ya une methode propre a birt qui fais sa(biensure ma facon d'ou je programme)
amiraprincesse est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2011, 11h27   #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
Hum, en gros, ce qu'essaye de te dire lazarel, c'est qu'il faut mettre ceci :
Citation:
../../frameset?__report=#{EBEntreprise.dos}/Entreprise.rptdesign&__locale=#{EBEntreprise.selectedEntreprise.code}
dans le showModalDialog.

On a juste remplacé code par __locale.
__________________
__~{@ 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 21/02/2011, 11h28   #15
Invité de passage
 
Inscription : février 2009
Messages : 136
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 136
Points : 0
Points : 0
Ah ok, bein je vais le faire maintenant et je vous rendrai la reponse.
merci.
amiraprincesse est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2011, 09h11   #16
Invité de passage
 
Inscription : février 2009
Messages : 136
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 136
Points : 0
Points : 0
Bonjour,
En remplacant code par _locale, le rapport ne pourra pas lire le code qui correspond au rapport d'état et donc j'obtient une erreur.
amiraprincesse est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 22/02/2011, 09h27   #17
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
Et bien si tu as besoin du code dans ton rapport, tu as deux solutions, soit tu passes deux fois le paramètre en tant que __locale et en tant que code, soit tu initialises l'internationalisation dans le script initialize du rapport en faisant :
Code :
__locale = params["code"].value
Et merci d'essayer de chercher avant de poser bêtement la question en pensant qu'on va être assez patient pour répondre à une personne qui ne cherche même pas à comprendre !
__________________
__~{@ 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 22/02/2011, 09h31   #18
Invité de passage
 
Inscription : février 2009
Messages : 136
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 136
Points : 0
Points : 0
Citation:
Envoyé par BiM Voir le message
Et bien si tu as besoin du code dans ton rapport, tu as deux solutions, soit tu passes deux fois le paramètre en tant que __locale et en tant que code, soit tu initialises l'internationalisation dans le script initialize du rapport en faisant :
Code :
__locale = params["code"].value
Et merci d'essayer de chercher avant de poser bêtement la question en pensant qu'on va être assez patient pour répondre à une personne qui ne cherche même pas à comprendre !
Repondre au gens n'est pas une obligation, vaut mieux ne pas repondre que lancer des reponses agressives.
amiraprincesse est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 22/02/2011, 09h44   #19
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 amiraprincesse Voir le message
Repondre au gens n'est pas une obligation, vaut mieux ne pas repondre que lancer des reponses agressives.
OK, bonne chance !
__________________
__~{@ 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 27/02/2011, 16h02   #20
Invité de passage
 
Inscription : février 2009
Messages : 136
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 136
Points : 0
Points : 0
Bonjour,
j'ai ajouté __locale dans l'url mais les labels s'affichent avec une seule langue, en francais si le fichier ressource est I18nMessages.properties (ou bien I18nMessages_fr_FR.properties), sinon en englais si le fichier ressource est I18nMessages_en_US.proporties. j'arrive pas a trouver un moyen pour que birt lis le fichier correspendant a la langue choisit d'une facon dynamique.
amiraprincesse est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h36.


 
 
 
 
Partenaires

Hébergement Web