IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

BIRT Discussion :

[2.5.1] Grid dynamique dans un rapport


Sujet :

BIRT

  1. #21
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 93
    Points : 37
    Points
    37
    Par défaut
    J'ai ca comme erreur: 3 mars 2010 09:28:35
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    org.eclipse.birt.report.engine.script.internal.ScriptExecutor addException
    ATTENTION: Class scriptedDatasetPackage.monDataSetHandle could not be instantiated. Make sure it is not an interface or an abstract class.
    org.eclipse.birt.report.engine.api.EngineException: Class scriptedDatasetPackage.monDataSetHandle could not be instantiated. Make sure it is not an interface or an abstract class.

  2. #22
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 93
    Points : 37
    Points
    37
    Par défaut
    Ca marche!!!!

    mais avec cette classe là:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    package DataSetPackage;
     
    import org.eclipse.birt.report.engine.api.script.IScriptedDataSetMetaData;
    import org.eclipse.birt.report.engine.api.script.IUpdatableDataSetRow;
    import org.eclipse.birt.report.engine.api.script.eventadapter.ScriptedDataSetEventAdapter;
    import org.eclipse.birt.report.engine.api.script.instance.IDataSetInstance;
     
     
    public class MyScriptedDataSetEventAdapter extends ScriptedDataSetEventAdapter {
     
     
    	private static final String COLUMN_LABEL = "label";
    	private static int rwcnt = 0;
     
    	public boolean fetch(IDataSetInstance set, IUpdatableDataSetRow row) {
    		if( rwcnt > 0 ){
    			return false;
    		}
    		try{
    			row.setColumnValue(COLUMN_LABEL, "mon label");
    		}catch (Exception e){
    			e.printStackTrace();
    		}
    			rwcnt += 1;
    		return true;
    		}
     
    	public void open(IDataSetInstance arg0) {
     
    	}
     
    	public boolean describe(IDataSetInstance arg0, IScriptedDataSetMetaData arg1) {
    			arg1.addColumn(COLUMN_LABEL, String.class);
    			return true;
    	}
    }
    Peut être était ce le constructeur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	public monDataSetHandle(IReportContext contexte) throws BirtException
    qui faisait buger, qu'en penses tu?

  3. #23
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    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 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Peux-tu nous recopier le code de monDataSetHandle stp ? EDIT : Grilled, je regarde

    Au fait, un nom de classe ou d'interface doit toujours commencer par une majuscule

  4. #24
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    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 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Oui effectivement, par contre, je me dis que ce serait bien que tu nous postes l'ensemble de la solution

  5. #25
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 93
    Points : 37
    Points
    37
    Par défaut
    Je confirme, c'est le construteur qui fait que ca ne marche pas avec l'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    org.eclipse.birt.report.engine.script.internal.ScriptExecutor addException
    ATTENTION: Class scriptedDatasetPackage.monDataSetHandle could not be instantiated. Make sure it is not an interface or an abstract class.
    org.eclipse.birt.report.engine.api.EngineException: Class scriptedDatasetPackage.monDataSetHandle could not be instantiated. Make sure it is not an interface or an abstract class.
    J'ai essayé avec et sans!!! Sans ca marche trés bien...le seul problème, c'est que j'en ai besoin pour récupérer mes paramètres. Je pense que le contexte du rapport doit être null, du coup birt n'aime pas ca!!

  6. #26
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 93
    Points : 37
    Points
    37
    Par défaut
    Ok donc je récapitule:
    -J'ai un rapport sous birt dans lequel je souhaite afficher dynamiquement le rappel des paramètres (pour cela je vais utiliser un dataSet "Data Set1")
    -J'ai une servlet qui s'occupe de lancer, chercher les paramètres qu'il faut...puis de générer le rapport enfin!

    Dans ma servlet:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    try{
    								MyScriptedDataSetEventAdapter.label = "mon_super_label_de_ouf";
    								MyScriptedDataSetEventAdapter.displayedValue = "mon_super_displayed_";
    								ReportDesignHandle report = (ReportDesignHandle)design.getDesignHandle();
    								ScriptDataSetHandle dataSet = (ScriptDataSetHandle)report.findDataSet("Data Set1");
    								dataSet.setEventHandlerClass("DataSetPackage.MyScriptedDataSetEventAdapter");
    								}
    							catch (Exception e) {
    								handleException(req, resp,
    										"Un probleme est survenue dans ce code qui marche pas : "+ e.getMessage() + " || " + e.getLocalizedMessage()+ " || " + e.getCause(), e );
    										}
    L'eventHandlerClass a le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    package DataSetPackage;
     
    import org.eclipse.birt.report.engine.api.script.IScriptedDataSetMetaData;
    import org.eclipse.birt.report.engine.api.script.IUpdatableDataSetRow;
    import org.eclipse.birt.report.engine.api.script.eventadapter.ScriptedDataSetEventAdapter;
    import org.eclipse.birt.report.engine.api.script.instance.IDataSetInstance;
     
     
    public class MyScriptedDataSetEventAdapter extends ScriptedDataSetEventAdapter {
     
     
    	private static final String COLUMN_LABEL = "label";
    	private static final String COLUMN_DISPLAYED = "displayedValue";
    	public static String label;
    	public static String displayedValue;
    	private static int rwcnt = 0;
     
    	public boolean fetch(IDataSetInstance set, IUpdatableDataSetRow row) {
    		if( rwcnt > 0 ){
    			return false;
    		}
    		try{
    			row.setColumnValue(COLUMN_LABEL, label);
    			row.setColumnValue(COLUMN_DISPLAYED, displayedValue);
    		}catch (Exception e){
    			e.printStackTrace();
    		}
    			rwcnt += 1;
    		return true;
    		}
     
    	public void open(IDataSetInstance arg0) {
     
    	}
     
    	public boolean describe(IDataSetInstance arg0, IScriptedDataSetMetaData arg1) {
    			arg1.addColumn(COLUMN_LABEL, String.class);
    			arg1.addColumn(COLUMN_DISPLAYED, String.class);
    			return true;
    	}
    }
    Dans mon rapport:

    J'ai juste besoin de créer un scripted dataSet à partir d'un scripted Data source, que je nommerai "Data Set1", je glisse-dépose dans le rapport mon dataSet (attention à bien faire correspondre les noms des colonnes dans la class eventHandler et dans le dataSet)




    Bon comme tu voies, il me reste à faire passer ma liste de paramètres à cette classe...

  7. #27
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    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 796
    Points : 10 765
    Points
    10 765
    Par défaut
    C'était à ça que servait le constructeur

    Et comme ceci :
    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    import java.util.List;
     
    import org.eclipse.birt.report.engine.api.IParameterDefnBase;
    import org.eclipse.birt.report.engine.api.script.IReportContext;
    import org.eclipse.birt.report.engine.api.script.IScriptedDataSetMetaData;
    import org.eclipse.birt.report.engine.api.script.IUpdatableDataSetRow;
    import org.eclipse.birt.report.engine.api.script.ScriptException;
    import org.eclipse.birt.report.engine.api.script.eventadapter.ScriptedDataSetEventAdapter;
    import org.eclipse.birt.report.engine.api.script.instance.IDataSetInstance;
     
     
    public class MonDataSetHandler extends ScriptedDataSetEventAdapter {
    	private final static String COLUMN_NAME = "nom";
    	private final static String COLUMN_VALUE = "valeur";
     
    	private IReportContext contexte = null;
    	private List parametres = null;
    	private int taille = 0;
    	private int enCours = 0;
     
    	public boolean describe(IDataSetInstance dataSet, IScriptedDataSetMetaData metaData) {
    		metaData.addColumn(COLUMN_NAME, String.class);
    		metaData.addColumn(COLUMN_VALUE, String.class);
    		return true;
    	}
     
    	public void beforeOpen(IDataSetInstance dataSet, IReportContext reportContext) {
    		contexte = reportContext;
     
    		if (contexte != null) {
    			parametres = contexte.getDesignHandle().getAllParameters();
     
    			if (parametres != null) {
    				taille = parametres.size();
    			}
    		}
    	}
     
    	public void open(IDataSetInstance dataSet) {
    		enCours = 0;
    	}
     
    	public boolean fetch(IDataSetInstance dataSet, IUpdatableDataSetRow row) {
    		if (enCours >= taille) {
    			return false;
    		}
     
    		IParameterDefnBase parametre = (IParameterDefnBase)parametres.get(0);
     
    		String nom = parametre.getName();
     
    		try {
    			row.setColumnValue(COLUMN_NAME, nom);
    			row.setColumnValue(COLUMN_VALUE, contexte.getParameterValue(nom));
    		} catch (ScriptException e) {
    			e.printStackTrace();
    		}
     
    		enCours++;
    		return true;
    	}
    }

  8. #28
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 93
    Points : 37
    Points
    37
    Par défaut
    En fait maintenant ca va être un peu différent!!
    Avec ta méthode, je peux récupérer le nom des params qu'il y a dans le rapport birt. Seulement, j'ai mes paramètres et leur valeurs (ceux ci associés au rapport), les label des paramètres, et la valeur affichées (ces deux derniers dans la servlet seulement).
    Or j'ai remarqué que "parametres = contexte.getDesignHandle().getAllParameters();
    " récupérait tous les paramètres du rapports!

    J'ai une classe qui stocke les labels et les valeurs affichées dans une liste, donc je pense que la meilleure solution est de prendre des variables statics de type list, puis de les utiliser non? Peut etre un problème lors du fetch tu penses?

    Et merci pour tout

  9. #29
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    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 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Ce que tu veux dire, c'est que tu ne déclares pas tes paramètres dans ton rapport mais tu les passes seulement via Java ?

  10. #30
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 93
    Points : 37
    Points
    37
    Par défaut
    Ce que je veux dire, mon équipe au départ ont décidé de faire groupe de paramètre: label (ce que j'affiche dans l'en tête du rapport) + displayedValue (ce qui sera avec le label correspondant) + value (concretement les valeurs qu'on passe au paramètre du rapport, ceux qui seront passés dans la requête)

    Maintenant que j'arrive à faire passer des valeurs à un dataSet par la servlet, je peux juste envoyer au rapport les paramètres "value" (findParameter("monParam")setproperty("defaultValue", "valeur")) les autres (donc label et displayedValue) n'ont plus besoin d'être envoyé de la sorte.(comme ca ca m'évite de stocker des params coté rptdesign aussi)
    Nous utilisons un xml que l'on parse pour récupérer les différentes valeurs des paramètres. (tout ca dans la servlet).
    En gros maintenant ce que j'aimerais, c'est récupérer les valeurs dans une liste coté java (donc dans le projet java), puis associer chacune des valeurs de cette façon:

    boucle
    row["label"] = MaList.get(i).labelValeur
    i++
    fin de boucle

    C'est plus clair comme ca?

  11. #31
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    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 796
    Points : 10 765
    Points
    10 765
    Par défaut
    En gros, tu veux passer côté Java, les valeurs à tes paramètres ?

    Lorsque tu lances ton rapport, tu fais ceci :
    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    /* Paramètres */
    for (String clef : parametres.keySet()) {
    	runTask.setParameterValue(clef, parametres.get(clef));
    }
    parametres est une Map avec le nom du paramètre et la valeur et runTask est de type IRunTask ou dérivé.

    (Si j'ai bien compris)

  12. #32
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 93
    Points : 37
    Points
    37
    Par défaut
    C'est bon j'ai envoyé mes données en static, et du coup dans la servlet je crée des listes de mes labels et displayedValue, et ca marche!!!

    Mais problème...(encore) il risque d'y avoir plusieurs lancement de la servlet en même temps, donc risque de mélange de données dans la classe.

    Bref, j'ai cherché une solution, en vain...

    J'essaie une autre méthode maintenant: utiliser un xml en tant que datasource! je me suis inspiré de http://business-intelligence.develop...on_donnees_xml, mais il serait mieux de passer directement le xml sans passer par un stockage de celui ci sur l'ordinateur.

    Donc je crée une datasource de type xmldatasource, que je fait pointer sur un xml qui aura l'arborescence du xml. Jusque là, ca va. j'aimerais bien, pendant l'envoie du xml dans la servlet, envoyer directement le xml au lieu de passer par un xml qu'on stockerait dans la base. Est ce faisable?

  13. #33
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    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 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Regarde du côté des bloc synchronized plutôt pour éviter tout mélange de données.

  14. #34
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 93
    Points : 37
    Points
    37
    Par défaut
    Oui oui j'ai regardé de ce coté, mais dans ma classe du seteventHandlerClass je ne voie pas comment récupérer les infos propre à une session. J'ai tenté pas mal de choses de ce côté là, sans succès!

  15. #35
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    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 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Il y a quelque chose qui m'échappe...

    Qu'est-ce qui te gêne dans le getAllParameters() ?
    Si tu ne veux récupérer qu'une partie des paramètres alors pourquoi ne pas passer la liste du nom de ces paramètres dans un paramètre ?
    Ou tous les mettre dans un groupe de paramètres et dans ce cas, on ne récupère que les paramètres appartenant au groupe de paramètres ?

  16. #36
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 93
    Points : 37
    Points
    37
    Par défaut
    Et par exemple, si dans cette classe (celle qui est pointé par setEventHandlerClass ) je veux récupérer la valeur d'un parametre du rapport

    j'utilise contexte.getParameterValue("param");

    mais le contexte du rapport je l'obtiens comment?

  17. #37
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    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 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Il sert à quoi le beforeOpen que j'ai rajouté à ton avis ?

  18. #38
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 93
    Points : 37
    Points
    37
    Par défaut
    Et bien j'ai éssayé avec le beforeOpen, sans succès! J'ai même mis un else aprés " if (contexte != null), pour regarder si c'était un problème de contexte, et apparement il ne rentre pas dedans aussi!

  19. #39
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 93
    Points : 37
    Points
    37
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    IParameterDefnBase parametre = (IParameterDefnBase) parametres.get(_currentRow);
     
    		String nom = parametre.getName();
    C'est ca qui pète et non le beforeOpen!

  20. #40
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 93
    Points : 37
    Points
    37
    Par défaut
    ce qui marche: context.getParameterValue("nomduparam")

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 3 PremièrePremière 123 DernièreDernière

Discussions similaires

  1. [2008R2] Changement d'image dynamique dans le rapport
    Par enamorada dans le forum SSRS
    Réponses: 1
    Dernier message: 05/09/2012, 09h30
  2. Report dynamique de colonnes dans un rapport
    Par Ykk_Jeff dans le forum BIRT
    Réponses: 21
    Dernier message: 14/08/2010, 15h19
  3. [Dojo] Afficher des champs dynamiques dans un grid
    Par DevBetty dans le forum Bibliothèques & Frameworks
    Réponses: 2
    Dernier message: 27/10/2009, 10h50
  4. centrer ma grid dans le rapport
    Par skunkies dans le forum BIRT
    Réponses: 7
    Dernier message: 15/06/2009, 00h03
  5. Afficher une image dynamique dans un rapport
    Par Foub dans le forum BIRT
    Réponses: 5
    Dernier message: 01/07/2008, 22h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo