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 :

Dataset dans un tableau


Sujet :

BIRT

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Dataset dans un tableau [RESOLU]
    Bonjour,

    Je suis tout nouveau sur Birt.

    Je cherche à faire une chose:
    Je veux mettre les valeurs d'un dataset dans une variable array Javascript, pour pouvoir utiliser ces valeurs pour changer un affichage d'un autre dataset.

    Ce n'est peut-être, voir sûrement, pas la bonne méthode, mais je ne vois pas trop comment faire autrement. (si vous avez des suggestions je suis preneur).

    J'ai essayé en écrivant des scripts:
    - AfterOpen:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    var dep = new Array();
    for (i=0;i<=1000;i++)
    {
    	dep[i] = 0;
    }
    - onFetch:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    dep[dataSetRow["triggerid_down"]] = dataSetRow["triggerid_up"];
    Mais bon évidement il me met une erreur sur le onFetch.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    There are errors evaluating script "dep[dataSetRow["triggerid_down"]] = dataSetRow["triggerid_up"];
    Et puis je ne sais pas trop comment lancer le parcours du dataset sans l'afficher dans le rapport.

    Ca fait un moment que je cherche une solution, j'ai essayé de chercher sur le forum, mais je n'ai pas eu plus de succès que ça.

    Si je ne suis pas clair, n'hésitez pas à me le dire.
    Merci d'avance pour votre attention à mon post.

    Emeric.

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

    Et si tu déclare ton tableau dans initialize

  3. #3
    Membre averti

    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 385
    Points : 321
    Points
    321
    Par défaut
    Bonjour,

    Initialise les variables dans le beforeOpen.

    Utilise 'row' au lieu de 'dataSetRow'.

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par lazarel Voir le message
    Bonjour,

    Et si tu déclare ton tableau dans initialize
    ca marche mieux en effet. Merci.

    Question a deux balles, il n'est pas possible de parcourir un dataset sans table , crosstable ou autre?

    Je veux dire y'a pas une commande qui permet de passer à l'enregistrement suivant dans un script?
    Ou alors il y a une ruse?

    Merci.

  5. #5
    Membre expérimenté

    Profil pro
    Inscrit en
    Avril 2008
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 143
    Points : 1 353
    Points
    1 353
    Par défaut OnFetch
    Bah , justement BIRT c'est séquentiel. Le OnFetch sur le Dataset prend ligne par ligne le données et applique le script que vous avez placé à cet endroit.



    imaginons que vous avez une variable "globale" déclarée dans le initialize du rapport : V

    si vous faites V = V + row[MonChiffre] dans le OnFetch du Dataset , vous aurez la somme de MonChiffre stockée dans la variable V à la fin du onFetch ( donc sur le AfterOpen du Dataset par exemple ) ou qq part dans le Body du rapport.

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Ou alors j'ai rien compris, mais si on veut que le afterOpen et le Onfetch fonctionne, il faut inclure le dataset dans le layout.Et à ce moment la, les script sont appliqués.

    Dans mon cas, je ne veux pas afficher le dataset, simplement parcourir le dataset et que les scripts soient lancés, pour pouvoir affiché un autre dataset, de manière conditionnelle par rapport aux valeurs du premier dataset. ouf.

    a) Est ce possible?
    b) Je comprends rien?
    c) ca dépend si c'est de la choucroute ou du cassoulet ?

    Merci de votre aide.

  7. #7
    Membre habitué
    Inscrit en
    Juillet 2008
    Messages
    189
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 189
    Points : 176
    Points
    176
    Par défaut
    Salut,

    Citation Envoyé par smartvisio Voir le message
    a) Est ce possible?
    b) Je comprends rien?
    c) ca dépend si c'est de la choucroute ou du cassoulet ?
    A) Oui, c'est possible
    B) Tu comprends déjà pas mal de chose je te rassure vu tes questions/réponses.
    C) C'est du cassoulet, j'ai horreur de la choucroute.



    Citation Envoyé par smartvisio Voir le message
    Dans mon cas, je ne veux pas afficher le dataset, simplement parcourir le dataset et que les scripts soient lancés, pour pouvoir affiché un autre dataset, de manière conditionnelle par rapport aux valeurs du premier dataset. ouf.
    J'ai déjà fais ce que tu veux faire.
    Moi j'ai procédé ainsi :

    - 1er dataSet lu par une table que je met en visibility à false.
    Je recupere donc toutes les valeurs que j'avais besoin.

    - Puis utilisation des variables (tableau ou objets) pour paramètrer l'affichage du 2eme dataSet par une table.

    Et celà marchait très bien.


    NB: Après, il me semble bien que si tu veux balayer un DataSet, tu es oubligé d'utiliser une table, cross table ou chart.


    Bon courage.

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Super merci pour la solution. Enfin j'arrive à faire ce que je veux.

    Petit recap, pour ceux qui chercherai à faire la même chose:

    1) Si on veut utiliser une variable dans tous le rapport la déclarer dans le script initialize de l'attribut nom_projet.rptdesign dans outline

    2) Pour ne pas afficher les valeurs du dataset quand on l'ajoute dans le layout, il faut passer l'attribut Visibility de la table d'affichage à false. (NE PAS le changer sur les cellules, j'avais essayé ça ne marche pas)

    3) C'est du cassoulet et pas de la choucroute (merci ça me rassure)

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

Discussions similaires

  1. alterner les couleurs dans un tableau avec xsl
    Par Eithelgul dans le forum XSL/XSLT/XPATH
    Réponses: 14
    Dernier message: 03/05/2015, 23h29
  2. Réponses: 9
    Dernier message: 06/01/2012, 13h44
  3. Réponses: 7
    Dernier message: 16/03/2011, 11h17
  4. Réponses: 28
    Dernier message: 08/10/2009, 18h10
  5. verification de doublons dans un tableau
    Par bohemianvirtual dans le forum C
    Réponses: 11
    Dernier message: 25/05/2002, 12h21

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