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 :

Contribuez à la FAQ BIRT [FAQ]


Sujet :

BIRT

  1. #21
    Membre éprouvé
    Avatar de lazarel
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2007
    Messages
    893
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    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 164
    Points
    1 164
    Par défaut
    Comment éditer le label des abscisses/ordonnées d'un graphique ?

    Mode dynamique

    Dans le rptdesign au niveau du script du graphique dans la méthode beforeGeneration.
    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
     
    importPackage( Packages.org.eclipse.birt.chart.model.attribute.impl );
    importPackage( Packages.org.eclipse.birt.chart.model.data.impl );
    /**
     * Called before generation of chart model to GeneratedChartState.
     * 
     * @param chart
     *            Chart
     * @param icsc
     *            IChartScriptContext
     */
     
    function beforeGeneration( chart, icsc )
    {
    	//xAxis
    	xAxis = chart.getBaseAxes()[0];
    	//edit xLabel
    	var xLabel = "xLabel";
    	xAxis.getTitle().getCaption().setValue(xLabel);
     
    	//yAxis
    	yAxis = chart.getOrthogonalAxes( xAxis, true)[0];
    	//edit yLabel
    	var yLabel = "yLabel";
    	yAxis.getTitle().getCaption().setValue(yLabel);
    }

  2. #22
    Membre éprouvé
    Avatar de lazarel
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2007
    Messages
    893
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    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 164
    Points
    1 164
    Par défaut
    Comment cacher/montrer la légende d'un graphique ?

    Mode dynamique

    Dans le rptdesign au niveau du script du graphique dans la méthode beforeGeneration.
    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
     
    importPackage( Packages.org.eclipse.birt.chart.model.attribute.impl );
    importPackage( Packages.org.eclipse.birt.chart.model.data.impl );
    /**
     * Called before generation of chart model to GeneratedChartState.
     * 
     * @param chart
     *            Chart
     * @param icsc
     *            IChartScriptContext
     */
     
    function beforeGeneration( chart, icsc )
    {
    	var showLegend = true;
     
    	if (showLegend!=null && showLegend==true){
    		//show
    		chart.getLegend().setVisible(true);
    	}else{
    		//hide
    		chart.getLegend().setVisible(false);
    	}
    }

  3. #23
    Membre éprouvé
    Avatar de lazarel
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2007
    Messages
    893
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    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 164
    Points
    1 164
    Par défaut
    Comment appliquer un pattern sur les abscisses de type Date dans un graphique ?

    Mode dynamique

    Dans le rptdesign au niveau du script du graphique dans la méthode beforeGeneration.
    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
     
    importPackage( Packages.org.eclipse.birt.chart.model.attribute.impl );
    importPackage( Packages.org.eclipse.birt.chart.model.data.impl );
    /**
     * Called before generation of chart model to GeneratedChartState.
     * 
     * @param chart
     *            Chart
     * @param icsc
     *            IChartScriptContext
     */
     
    function beforeGeneration( chart, icsc )
    {
    	//xAxis
    	xAxis = chart.getBaseAxes()[0];
     
    	var myPattern = "";
     
    	//months
    	myPattern = "MM/yyyy";
    	//quarters
    	myPattern = "Q/yyyy";
    	//years
    	myPattern = "yyyy";
     
    	xAxis.setFormatSpecifier(JavaDateFormatSpecifierImpl.create(myPattern));
    }

  4. #24
    Membre éprouvé
    Avatar de lazarel
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2007
    Messages
    893
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    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 164
    Points
    1 164
    Par défaut
    Comment définir l'unité de regroupement sur les abscisses de type Date dans un graphique ?

    Mode dynamique

    Dans le rptdesign à la racine au niveau du script beforeFactory.
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    var myChart = this.getReportElement("myChart");
     
    //months
    myChart.getCategory().getGrouping().setGroupUnit("Months");
    //quarters
    myChart.getCategory().getGrouping().setGroupUnit("Quarters");
    //years
    myChart.getCategory().getGrouping().setGroupUnit("Years");
    //days
    myChart.getCategory().getGrouping().setGroupUnit("Days");
    Attention le graphique doit avoir comme nom myChart au niveau des propriétés générales.

  5. #25
    Membre éprouvé
    Avatar de lazarel
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2007
    Messages
    893
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    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 164
    Points
    1 164
    Par défaut
    Comment définir une palette de couleur dynamique dans un graphique?

    Objectif: Appliquer un code couleur sous forme d'Hexa à une label dans un graphique.

    Je dispose d'un DataSet qui me renvoie deux colonnes avec le code couleur et le label associé. Dans mon graphique je souhaite appliquer une couleur en fonction de mon abscisse par exemple.

    Etape n°1: Extraire cette donnée dans une variable persistante afin que celle soit accessible depuis mon graphique.

    Pour cela au niveau de mon Dataset:

    beforeOpen
    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    mCode = new java.util.HashMap();

    onFetch
    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var label = row.colorlabel;
    var code = row.colorcode;
    mCode.put(label.toLowerCase(),code);

    afterClose
    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    reportContext.setPersistentGlobalVariable("mCode", mCode);

    Attention, si le DataSet n'est pas utilisé dans le rapport il ne sera pas joué et donc la Map sera vide, ne oubliez pas

    Etape n°2: Appliquer le code couleur à une barre d'un graphique.

    Pour le nuage de point.
    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
     
    /**
     * Called before drawing each datapoint graphical representation or marker.
     * 
     * @param dph
     *            DataPointHints
     * @param fill
     *            Fill
     * @param icsc
     *            IChartScriptContext
     */
     
    function beforeDrawDataPoint( dph, fill, icsc )
    {
    	Hex2RGB = icsc.getExternalContext().getScriptable().getPersistentGlobalVariable("Hex2RGB");
    	mColor =  icsc.getExternalContext().getScriptable().getPersistentGlobalVariable("mCode");
    	value = dph.getBaseDisplayValue().toLowerCase();
    	if (mColor!=null && mColor.containsKey(value)){
    		rgb = Hex2RGB((String)(mColor.get(value)));
    		fill.set(rgb[0],rgb[1],rgb[2]);
    	}else{
    		fill.set(170,170,170);
    	}
    }

    Pour la légende
    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
     
    /**
     * Called before drawing the legend item.
     * 
     * @param lerh
     *                        LegendEntryRenderingHints
     * @param bounds
     *                        Bounds
     * @param icsc
     *                        IChartScriptContext
     * @since Version 2.2.0
     */
     
    function beforeDrawLegendItem( lerh, bounds, icsc )
    {
    	Hex2RGB = icsc.getExternalContext().getScriptable().getPersistentGlobalVariable("Hex2RGB");
    	mColor = icsc.getExternalContext().getScriptable().getPersistentGlobalVariable("mCode");
     
    	value = lerh.getLabel().getCaption().getValue().toLowerCase();
    	if (mColor!=null && mColor.containsKey(value)){
    		rgb = Hex2RGB((String)(mColor.get(value)));
    		lerh.getFill().set(rgb[0],rgb[1],rgb[2]);
    	}
    	else{
    		lerh.getFill().set(170,170,170);
    	}
    }

    Hex2RGB est fonction javascript définit dans la méthode beforeFactory.
    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
    function Hex2RGB(val){
     
    	var tab = new Array();
    	val = val.toUpperCase();
     
    	for (k=1;k<7;k++) {
    		temp = val.charAt(k);
    		if ( temp == 'A' )  {
    			tab[k-1] = 10;
    		}else if ( temp == 'B' )  {
    			tab[k-1] = 11;
    		}else if ( temp == 'C' )  {
    			tab[k-1] = 12;
    		}else if ( temp == 'D' )  {
    			tab[k-1] = 13;
    		}else if ( temp == 'E' )  {
    			tab[k-1] = 14;
    		}else if ( temp == 'F' )  {
    			tab[k-1] = 15;
    		}else{
    			tab[k-1] = parseInt(temp);
    		}
    	}
     
    	var r = ((tab[0]* 16) + tab[1]);
    	var g = ((tab[2]* 16) + tab[3]);
    	var b = ((tab[4]* 16) + tab[5]);
     
    	var rgb = [r,g,b];
     
    	return rgb;
    }
    reportContext.setPersistentGlobalVariable("Hex2RGB", Hex2RGB);

Discussions similaires

  1. Contribuez à la FAQ Linux
    Par Community Management dans le forum Contribuez
    Réponses: 130
    Dernier message: 23/08/2018, 11h17
  2. Contribuez à la FAQ et aux CODES SOURCE XML
    Par Community Management dans le forum XML/XSL et SOAP
    Réponses: 12
    Dernier message: 21/04/2008, 20h52
  3. Contribuez à la FAQ HTML/DHTML/XHTML
    Par Community Management dans le forum Contribuez
    Réponses: 14
    Dernier message: 22/02/2008, 01h53
  4. Contribuez aux FAQs Flash
    Par vermine dans le forum Flash
    Réponses: 2
    Dernier message: 24/04/2006, 02h55

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