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

Flash Discussion :

[FLASH MX] DataSet & XML


Sujet :

Flash

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de totoche
    Inscrit en
    Janvier 2004
    Messages
    1 090
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 090
    Par défaut [FLASH MX] DataSet & XML
    Salut,

    Le xmlConnector connaît quelques limites en matière de taille de fichier, alors je m'en remets à mes petites mains pour injecter dans le dataSet les données issues de mon xml, mais je n'arrive pas a remplir la propriété items de mon dataSet
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
        for (var i = 0; i<this.firstChild.childNodes.length; i++) { 
    var utilisateurs = document.firstChild.childNodes[i]
    var utilisateur = utilisateurs.childNodes[2]; //2 = Position balise <societe>
    var societe = utilisateur.childNodes[0].nodeValue; 
    var recData = recData +[{id:i , firstName:societe}] //ICI  ça ne rempli pas le dataset  :cry: 
    dSet_Utili.items = recData 
    	  }
    	  }
    }
     
    Merci de votre aide
    document.load("listingUtili.xml")

  2. #2
    Membre éprouvé Avatar de totoche
    Inscrit en
    Janvier 2004
    Messages
    1 090
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 090
    Par défaut
    J'ai trouvé ça comme solution,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    recData = new Array();
    ....
    recData = recData.concat([{id:[i], SOCIETE:[societe]}]);
    Comme je débute avant de mettre le tag résolu, j'aimerai savoir si une solution plus élégante et surtout plus efficiente existe?
    Merci

  3. #3
    Membre chevronné Avatar de titouille
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    353
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2005
    Messages : 353
    Par défaut
    T'as fumé quoi, pour écrire des codes pareils :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var recData = recData +[{id:i , firstName:societe}]

    Un tableau, ça se remplis en pointant sur l'index ou en utilisant la méthode push();

    C'est clair que ta syntaxe ne va surement pas permettre d'insérer ton objet dans le tableau...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    var rectData = new Array();
    //...
    for( var i = 0, i < ... ; i++ )
    {
    //...
    rectData.push( { id:i, SOCIETE:societe} );
    }
    Dans ton 2ème message, reprend la syntaxe et remplace concat par push et c'est bon, tu auras le résultat escompté en utilisant la manière standard.


    Dès fois, ça peut être pas mal de se référer à l'aide (dictionnaire ActionScript) pour savoir de quoi ton objet est capable (propriétés et méthodes), en l'occurence de l'objet "Array" dans ton cas.

  4. #4
    Membre éprouvé Avatar de totoche
    Inscrit en
    Janvier 2004
    Messages
    1 090
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 090
    Par défaut
    Salut titouille,

    Tu as raison si on se réfère à l'aide Array.push()
    Description
    Méthode : ajoute un ou plusieurs éléments à la fin du tableau et renvoie la nouvelle longueur du tableau.
    semble être la solution adaptée pourtant
    le datagrid sur lequel je fais la liason avec le dataset reste vide avec le code ci-dessous:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    recData = rectData.push([{SOCIETE:[societe], NOM:[nom]}]);
    Alors qu'il se rempli si j'utilise concat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    recData = recData.concat([{SOCIETE:[societe], NOM:[nom]}]);

  5. #5
    Membre chevronné Avatar de titouille
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    353
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2005
    Messages : 353
    Par défaut
    T'as vu des crochets, en quelque part, dans mon code ??

    Toi tu place des crochets, ce qui fait que tu mets un tableau dans une case d'un tableau...

    Avec concat, c'est normal, il va bien concaténer un tableau avec un tableau... Mais c'est plus lourd que d'utiliser push.

  6. #6
    Membre éprouvé Avatar de totoche
    Inscrit en
    Janvier 2004
    Messages
    1 090
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 090
    Par défaut
    J'ai fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     rectData = rectData.push({SOCIETE:societe, NOM:nom});
    ça reste vide

  7. #7
    Membre chevronné Avatar de titouille
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    353
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2005
    Messages : 353
    Par défaut
    ben oué, tu veux pas suivre ce que je te montre...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    rectData.push( { ... } );

    c'est tout... y a pas de rectData = rectData.push ou autre variante exotique... Et il faut initialiser le tableau avec new, d'abord.

    M'enfin, fais des traces, tu verras bien.

    a++

  8. #8
    Membre éprouvé Avatar de totoche
    Inscrit en
    Janvier 2004
    Messages
    1 090
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 090
    Par défaut
    Désolé titouille mais je comprends pas pourquoi ça marche pas la
    trace me renvoi undefined
    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
    document= new XML(); //création de l'objet XML
    document.ignoreWhite=true; //ignorer les sauts de ligne
     
    document.onLoad = function(ok) { 
     
       if (ok) {
    	var recData = new Array();
        for (var i = 0; i<this.firstChild.childNodes.length; i++) { 
    var utilisateurs = document.firstChild.childNodes[i]
     
    var utilisateurNom = utilisateurs.childNodes[0]
    var nom = utilisateurNom.childNodes[0].nodeValue; 
     
    var utilisateurSte = utilisateurs.childNodes[2]; 
    var societe = utilisateurSte.childNodes[0].nodeValue; 
     
    //recData = recData.concat([{SOCIETE:[societe], NOM:[nom]}]);
    rectData.push( { SOCIETE:societe, NOM:nom } ); 
    trace(rectData);**** undefined*************
    	}
    	dSet_Utili.items = recData;
    }
    }
    document.load("list.xml")

  9. #9
    Membre chevronné Avatar de titouille
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    353
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2005
    Messages : 353
    Par défaut
    recData, pas rectData...

  10. #10
    Membre éprouvé Avatar de totoche
    Inscrit en
    Janvier 2004
    Messages
    1 090
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 090
    Par défaut
    Merci titouille :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    recData.push({id:i, SOCIETE:[societe]});
    Comme societe est une variable je suis obligé de mettre des []

    De plus ça pourra servir à certains quand on n'utilise pas le xmlConnector qui type les données via le schema, il ne faut pas oublier de convertir les items ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    dSet_Utili.filterFunc = function(item:Object) {
    var ste = String(item.SOCIETE)
    //trace(ste.substring( 0, 3 ) );
    if(ste.substring( 0, lgR ) == r_Utili.text)
    return true; 
    else 
    return false;

  11. #11
    Membre chevronné Avatar de titouille
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    353
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2005
    Messages : 353
    Par défaut
    Comme societe est une variable je suis obligé de mettre des [] Wink
    ça c'est n'importe quoi, y me semble... là tu mets un tableau à chaque fois dans ta variable "SOCIETE"...

    a++

  12. #12
    Membre éprouvé Avatar de totoche
    Inscrit en
    Janvier 2004
    Messages
    1 090
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 090
    Par défaut
    Bonjour titouillle,
    Les []
    Opérateur : initialise un nouveau tableau
    Une fois de plus tu as raison, mais quelle est la syntaxe par ce que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    recData.push({id:i, SOCIETE:societe});
    la la colonne id se rempli mais la colonne SOCIETE rest vide alors que la trace de société me renvoi les bon items :

  13. #13
    Membre chevronné Avatar de titouille
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    353
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2005
    Messages : 353
    Par défaut
    écoute, je ne sais pas, j'ai pas essayé, mais c'est peut-être le nom en majuscule qui fait foirer le truc... essaye en minuscule.

  14. #14
    Membre éprouvé Avatar de totoche
    Inscrit en
    Janvier 2004
    Messages
    1 090
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 090
    Par défaut
    J'ai essayé ta recommandation ça marche pas non plus,
    tampis je garde mes crochets, même si cela alourdi le traitement

    Merci encore

Discussions similaires

  1. [FLASH MX] Probleme avec XML
    Par celina5880 dans le forum Flash
    Réponses: 4
    Dernier message: 16/12/2004, 19h30
  2. Réponses: 4
    Dernier message: 07/05/2004, 21h15
  3. [C#] [SQLSERVER2000] Dataset et Xml
    Par farfadet dans le forum ASP.NET
    Réponses: 11
    Dernier message: 16/03/2004, 16h02
  4. [FLASH MX] Chargement de XML
    Par Dra_Gun dans le forum Flash
    Réponses: 13
    Dernier message: 13/02/2004, 09h40

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