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 23/07/2007, 14h12   #1
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
Par défaut [2.2.0]Passage de paramètre générique

Bonjour,

J'utilise la version 2.2.0 de BIRT dans un application web sous Tomcat 5.5. J'ai fait un serlvet capable de générer des pdf ou html. Seulement j'aimerais que cette servlet soit générique car je peux avoir plusieurs paramètres.

J'ai donc utiliser un task IGetParameterDefinitionTask pour connaitre les paramètres de mon rapport. J'ai ensuite fait un iterator puis un setParameterValue.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
 
//Create Parameter Definition Task and retrieve parameter definitions
IGetParameterDefinitionTask taskParam = birtReportEngine.createGetParameterDefinitionTask( design );
Collection params = taskParam.getParameterDefns( true );
 
//Iterate over each parameter
Iterator iter = params.iterator( );
 
logger.info("***********************************************");
logger.info("search param from rptdesign");
while ( iter.hasNext( ) ){
 
	IParameterDefnBase param = (IParameterDefnBase) iter.next( );
	IScalarParameterDefn scalar = (IScalarParameterDefn) param;
	String type = param.getTypeName();
	logger.info("Found param :"+param.getName()+"- type : "+type+" -");
	String temp =  request.getParameter(param.getName());
	logger.info("Param : "+param.getName()+" - Found value :"+temp);
	if (temp!=null){
		task.setParameterValue(param.getName(),(Object)temp);
	}
}
Le problème c'est que je ne sais pas comment récupérer le type d'objet retourner (decimal,datetime...) du coup j'ai l'erreur suivante :

Citation:
Error :org.eclipse.birt.report.engine.api.EngineException: Some required parameter values are not set or set to incompatible data type.
Quelqu'un sait-il comment faire pour récupérer le type de l'objet pour utiliser le bon constructeur ?

merci pour votre aide

Cordialement Lazarel
lazarel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/07/2007, 14h21   #2
Invité de passage
 
Inscription : juillet 2007
Messages : 10
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 10
Points : 1
Points : 1
Bonjour,

Est-ce que tu as essayé un truc du genre ton_objet.getClass().getName(); ?
Cela permet de récupérer le nom de la classe d'une instance, donc de connaître le type de tes paramètres.

Mais ce n'est peut être pas cette méthode que tu cherches ...
ikerion est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/07/2007, 14h24   #3
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
Je cherche surtout une solution avec BIRT, pour l'instant je passe par des expressions régulières mais c'est pas le pieds.

L'idée c'est de trouver un moyen générique pour appliquer le bon contructeur.

On progresse
lazarel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/07/2007, 15h21   #4
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
Bon voilà la solution

Code :
scalar.getDataType()==IScalarParameterDefn.TYPE_INTEGER
permet par exemple de savoir si scalar est de type integer, après suffit d'aller sur le site de BIRT et de chercher IScalarParameterDefn dans la javadoc tout y est

Problème enfin résolu
lazarel 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 23h09.


 
 
 
 
Partenaires

Hébergement Web