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 13/01/2011, 13h42   #1
Membre éclairé
 
Avatar de Soulama
 
Développeur informatique
Inscription : mai 2004
Messages : 582
Détails du profil
Informations personnelles :
Localisation : Maroc

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : mai 2004
Messages : 582
Points : 344
Points : 344
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 :
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
__________________
Apprends la science de celui qui sait, et enseigne ta science à celui qui ignore, comme ca, tu auras appris ce que tu ignores et utilisé ce que tu sais.
Soulama est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/01/2011, 14h28   #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,

http://business-intelligence.develop...eneration_j2ee > run() > /* Paramètres */
__________________
__~{@ 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 13/01/2011, 16h48   #3
Membre éclairé
 
Avatar de Soulama
 
Développeur informatique
Inscription : mai 2004
Messages : 582
Détails du profil
Informations personnelles :
Localisation : Maroc

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : mai 2004
Messages : 582
Points : 344
Points : 344
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.
__________________
Apprends la science de celui qui sait, et enseigne ta science à celui qui ignore, comme ca, tu auras appris ce que tu ignores et utilisé ce que tu sais.
Soulama est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/01/2011, 16h58   #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
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/
__________________
__~{@ 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 20/01/2011, 18h57   #5
Membre éclairé
 
Avatar de Soulama
 
Développeur informatique
Inscription : mai 2004
Messages : 582
Détails du profil
Informations personnelles :
Localisation : Maroc

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : mai 2004
Messages : 582
Points : 344
Points : 344
Bonsoir BiM,

avec ce code jessaye de faire un ocerride dun parametre predefinis:
Code :
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 :
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 :
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
__________________
Apprends la science de celui qui sait, et enseigne ta science à celui qui ignore, comme ca, tu auras appris ce que tu ignores et utilisé ce que tu sais.
Soulama est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/01/2011, 08h34   #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
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(...)
__________________
__~{@ 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/01/2011, 12h25   #7
Membre éclairé
 
Avatar de Soulama
 
Développeur informatique
Inscription : mai 2004
Messages : 582
Détails du profil
Informations personnelles :
Localisation : Maroc

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : mai 2004
Messages : 582
Points : 344
Points : 344
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 :
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
__________________
Apprends la science de celui qui sait, et enseigne ta science à celui qui ignore, comme ca, tu auras appris ce que tu ignores et utilisé ce que tu sais.
Soulama 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 16h49.


 
 
 
 
Partenaires

Hébergement Web