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.6.1] Changer la valeur dun parametre dans un Report


Sujet :

BIRT

  1. #1
    Membre averti Avatar de Soulama
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2004
    Messages
    619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2004
    Messages : 619
    Points : 416
    Points
    416
    Par défaut [2.6.1] Changer la valeur dun parametre dans un Report
    Bonjour,
    jessaye de changer la valeur dun parametre dans un Report Birt, ce parametre est du type LIST_BOX.
    Pour le moment jai reussi a lir le contenu du parametre avec la methode suivante:
    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
     
        private void go() {
            IReportRunnable design = null;
            try {
                design = engine.openReportDesign( "reports/paramTestReport.rptdesign" );
            } catch( EngineException e ) {
                e.printStackTrace();
            }
     
            if ( null != design ) {
                task = engine.createGetParameterDefinitionTask( design );
                Collection<IParameterDefnBase> params = (Collection<IParameterDefnBase>)task.getParameterDefns( true );
     
                params = (Collection<IParameterDefnBase>)task.getParameterDefns( true );
                for ( IParameterDefnBase param : params ) {
                    final IScalarParameterDefn scalar = (IScalarParameterDefn) param;
                    if ( scalar.getControlType() == IScalarParameterDefn.LIST_BOX ) {
                        print( "ParamName: "+scalar.getName() );
                        Collection<IParameterSelectionChoice> selectionList = (Collection<IParameterSelectionChoice>)task.getSelectionList( scalar.getName() );
                        for( IParameterSelectionChoice selectionItem : selectionList ) {
                            print( selectionItem.getValue() );
                        }
                    }
                }
     
            }
        }
    mon probleme est que je ne sais pas comment ecrire de nouveu valeur dans ce parametre, vue que le report doit etre dynamique.

    MErci pour vos idees
    Soulman

  2. #2
    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
    Bonjour,

    http://business-intelligence.develop...eneration_j2ee > run() > /* Paramètres */

  3. #3
    Membre averti Avatar de Soulama
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2004
    Messages
    619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2004
    Messages : 619
    Points : 416
    Points
    416
    Par défaut
    Merci pour le lien mais ce nes pas la solution que je cherche.
    Dans mon cas, jai deja un parametre du genre Combo-Box, qui a deja des valeurs par defauts, donc moi ce que je veux faire, cest changer ces valeurs on the fly, donc je cherche a extrahir le parametre es le metre a jours avec les nouveaux values.

  4. #4
    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'est bien ce que ça fait. Après, j'ai un code dans un coin qui doit faire des manipulations plus précises sur les paramètres, je vais essayer de le retrouver...

    EDIT :
    D'ailleurs ton code + code de la FAQ = http://www.developpez.net/forums/d38...tre-generique/
    Tu peux aussi t'inspirer du code pour récupérer les paramètres ici : http://www.developpez.net/forums/d88...mique-rapport/

  5. #5
    Membre averti Avatar de Soulama
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2004
    Messages
    619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2004
    Messages : 619
    Points : 416
    Points
    416
    Par défaut
    Bonsoir BiM,

    avec ce code jessaye de faire un ocerride dun parametre predefinis:
    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
     
            try {
                design = session.openDesign( "Reports/report001.rptdesign" );
                factory = design.getElementFactory();
                List<Structure> list = new ArrayList<Structure>(1);
                SelectionChoice sc = new SelectionChoice();
                sc.setLabel( "label" );
                sc.setValue( "value" );
                list.add( sc );
                final ParameterHandle paramHandle = design.getModuleHandle().findParameter( "combo" );
                if ( null != paramHandle ) {
                    paramHandle.setProperty( "selectionList", sc.toString() );
                }
            } catch( DesignFileException e ) {
                e.printStackTrace();
            }
    mais jai lerreur suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    The value "org.eclipse.birt.report.model.api.elements.structures.SelectionChoice@135da43" is invalid with the type "structure".
    Le probleme cest que SelectionChoice est du type Structure, je vois pas comment realiser ca.
    Donc mon But et toujour, davoir du XML comme ca:
    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
     
            <scalar-parameter name="combo" id="9">
                <property name="valueType">static</property>
                <property name="isRequired">false</property>
                <property name="dataType">string</property>
                <property name="distinct">true</property>
                <list-property name="selectionList">
                    <structure>
                        <property name="value">aaa</property>
                    </structure>
                    <structure>
                        <property name="value">bbb</property>
                    </structure>
                </list-property>
                <property name="paramType">simple</property>
                <property name="controlType">list-box</property>
                <property name="mustMatch">true</property>
                <property name="fixedOrder">true</property>
                <structure name="format">
                    <property name="category">Unformatted</property>
                </structure>
            </scalar-parameter>
    Si tu regarde l'XML ya le fragement: <list-property name="selectionList">
    c la ou je veux faire un override des parametres.

    Merci, et bonne soirée

  6. #6
    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
    Bonjour,

    Oui effectivement, c'est un type de paramètre spécifique.

    Regarde ce lien : http://www.eclipse.org/birt/phoenix/...definitiontask et plus particulièrement le moment du getSelectionList(...)

  7. #7
    Membre averti Avatar de Soulama
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2004
    Messages
    619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2004
    Messages : 619
    Points : 416
    Points
    416
    Par défaut
    Bonjour,

    voila jai trouvé la solution que jai cherché.
    en fait, ya la methode: getSelectionList(parametre), mais ya pas de setSelectionList(Liste, parametre) .
    Donc la solution cest comme ca:
    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
     
            try {
                design = session.openDesign( "Reports/report001.rptdesign" );
                factory = design.getElementFactory();
                final ParameterHandle ph = design.getModuleHandle().findParameter( "combo" );
                if ( null != ph ) {
                    ph.setDisplayName( "Greekoo" );
                    final DesignElement element = ph.getElement();
                    List<SelectionChoice> ls = new ArrayList<SelectionChoice>(1);
                    SelectionChoice sc = new SelectionChoice();
                    sc.setLabel( "myLabel" );
                    sc.setValue( "myValue" );
                    ls.add( sc );
                    element.setProperty( "selectionList", ls );
                }
            } catch( DesignFileException e ) {
                e.printStackTrace();
            }
    Donc faut metrre les nouveaux parametre dans un ArrayList, et appeler la methode setProperty( selectionList, maNouvelleListDeParametre ).
    Pas evident quanmeme, car jai tout le temps chercher une methode setSelectionList(bla)
    Merci Bim pour ton soutien.

    Soulman

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. changer la valeur des données dans une colonne excel et les trier
    Par thewind1 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 28/01/2011, 22h35
  2. Réponses: 3
    Dernier message: 18/08/2010, 11h30
  3. Utiliser la valeur d’un textbox dans une requete sql
    Par Developpeur19 dans le forum VB.NET
    Réponses: 8
    Dernier message: 14/11/2008, 09h10
  4. [RegEx] Changer la valeur d’un attribut dans une chaîne
    Par sara21 dans le forum Langage
    Réponses: 2
    Dernier message: 20/07/2008, 19h31
  5. Probleme valeur de parametre dans une fonction
    Par TitouLolo dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 19/05/2005, 13h56

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