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.0] fonction pour affichage spéciale dans BIRT


Sujet :

BIRT

  1. #1
    Rédacteur
    Avatar de David55
    Homme Profil pro
    Ingénieur informatique
    Inscrit en
    Août 2010
    Messages
    1 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 1 542
    Points : 2 808
    Points
    2 808
    Par défaut [2.6.0] fonction pour affichage spéciale dans BIRT
    Bonjour à tous,
    J'aimerai interpréter un champ de mon DataSet afin de l'afficher autrement dans mon tableau. Ce champ me renvoie un entier et selon l'entier j'affiche une chaine de caractère.
    Voici ma fonction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    if(dataSetRow["frequence"]=='1') { 
    	return("D"); 
    }else if(dataSetRow["frequence"]=='1111111'){ 
    	return("L.M.Me.J.V.S.D");
    }else{  
    	return("");
    }
    Cependant, je ne sais pas comment et où mettre cette fonction pour faire ce que je veux! J'ai essayé dans l'expression regulière de mon Data Binding dans mon tableau mais il me dit:
    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
     
    The following items have errors: 
     
     
    Table (id = 337): 
    + A BIRT exception occurred: Invalid javascript expression: if(dataSetRow["frequence"]=='1') { 
     return("D"); 
    }else if(dataSetRow["frequence"]=='1111111'){ 
     return("L.M.Me.J.V.S.D");
    }else{  
     return("");
    }. See next exception for more information.
    Invalid javascript expression: if(dataSetRow["frequence"]=='1') { 
     return("D"); 
    }else if(dataSetRow["frequence"]=='1111111'){ 
     return("L.M.Me.J.V.S.D");
    }else{  
     return("");
    }
    Qui aurait la solution SVP?

  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,

    Tu devrais utiliser les Mapping : http://business-intelligence.develop...mep_contextuel

  3. #3
    Rédacteur
    Avatar de David55
    Homme Profil pro
    Ingénieur informatique
    Inscrit en
    Août 2010
    Messages
    1 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 1 542
    Points : 2 808
    Points
    2 808
    Par défaut
    Merci pour ta réponse!
    Ta réponse aurait pu me convenir mais je t'ai donnée une version simplifié de ma fonction!
    En fait si je dois faire comme tu m'as dit je dois rentré 49 valeurs. Alors qu'avec une fonction je vais gérer ceci automatiquement avec des boucles et des tableaux!

  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
    Déjà, je te suggère de centraliser ta fonction et de la mettre dans le script initialize du rapport (pour éviter toute répétition).

    Je te conseille également d'utiliser la méthode .equals() pour comparer des chaînes (l'opérateur == n'est pas disponible sur les Strings, sauf si ta donnée est un type numérique, mais dans ce cas, il faut faire des comparaisons sans (doubles) quotes). (L'erreur survient de là mais le reste de l'explication est importante).

    Cela donnerait quelque chose comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function transformation(chaine) {
    	if (chaine.equals("1")) { 
    		return "D"; 
    	} else if (chaine.equals("1111111")) { 
    		return "L.M.Me.J.V.S.D";
    	}
    	return "";
    }
    Ensuite, tu ne peux pas glisser une donnée du DataBinding vers ton rapport, c'est un peu nul sur ce point ! Donc dans la case où tu veux ajouter ta donnée, tu cliques droit > Add > Data et tu crées ta nouvelle donnée avec ceci comme expression :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    transformation(dataSetRow["MaColonne"]);
    Le tour est joué...

  5. #5
    Rédacteur
    Avatar de David55
    Homme Profil pro
    Ingénieur informatique
    Inscrit en
    Août 2010
    Messages
    1 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 1 542
    Points : 2 808
    Points
    2 808
    Par défaut
    Merci beaucoup depuis le temps que je cherchai comment sa fonctionné

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

Discussions similaires

  1. un coup de pouce pour affichage BDD dans JSP
    Par bonuxis dans le forum Struts 1
    Réponses: 5
    Dernier message: 09/10/2009, 18h25
  2. fonction pour la normalisation dans matlab
    Par aichaeside dans le forum Images
    Réponses: 5
    Dernier message: 08/06/2009, 11h40
  3. fonctions pour affichage correct dans textarea
    Par brudao dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 25/02/2009, 12h17
  4. Réponses: 3
    Dernier message: 13/05/2008, 12h57
  5. une fonction pour le bgcolor dans une datatable
    Par ghnawfal dans le forum JSF
    Réponses: 2
    Dernier message: 09/04/2008, 13h33

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