Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 6 sur 6
  1. #1
    Membre régulier Avatar de lou87
    Inscrit en
    février 2006
    Messages
    368
    Détails du profil
    Informations personnelles :
    Âge : 26

    Informations forums :
    Inscription : février 2006
    Messages : 368
    Points : 89
    Points
    89

    Par défaut Recherche de données précises dans un Object

    Bonjour,

    J'aimerais pouvoir rechercher des informations précises dans un objet que j'ai réussi à récupérer.

    Je m'explique : j'ai un tableau croisé et quand je coche une des checkbox, la méthode me retourne l'objet qui a été modifié.

    Cette objet se présente sous cette forme:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    (Object)#0
      col1 = false
      col2 = false
      col3 = true
      col4 = false
      col5 = true
      col6 = true
      col7 = false
      col8 = false
      col9 = false
      col10 = false
      col11 = false
      ligne = "A"
    Et j'aimerais réussir à récupérer seulement dans cet objet la/les colonne(s) qui est à true, ainsi que la ligne, autrement dit dans mon exemple "A", "col3", "col5" et "col6".

    Comment puis-je procéder s'il vous plaît ?

    En vous remerciant.
    Programmer c'est comme gravir une montagne...
    Il faut procéder par étapes...
    (? auteur ?)
    Un seul être vous manque et tout est dépeuplé.
    Lamartine (merci chat hotplug ^^)

  2. #2
    Rédacteur/Modérateur
    Avatar de Jim_Nastiq
    Homme Profil pro Jean-Marie Macé
    Architecte, Expert Flex
    Inscrit en
    avril 2006
    Messages
    2 333
    Détails du profil
    Informations personnelles :
    Nom : Homme Jean-Marie Macé
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte, Expert Flex
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2006
    Messages : 2 333
    Points : 3 300
    Points
    3 300

    Par défaut

    Salut,

    voici une solution codé vite fait.

    Soit obj ton Object d'origine et objOutput ton Object que tu souhaites
    Code :
    1
    2
    3
    4
    5
     
    for(var id:String in obj) {
    if((obj[id] == true) || (id == 'ligne'))
      objOutput[id] = obj[id];
    }

    Pensez vraiment à effectuer une recherche avant de poster, ici et sur un moteur de recherche! c'est la moindre des choses
    Pensez au tag

    Mon Blog sur la techno Flex
    Ma page sur Developpez.com

    Jim_Nastiq

  3. #3
    Membre régulier Avatar de lou87
    Inscrit en
    février 2006
    Messages
    368
    Détails du profil
    Informations personnelles :
    Âge : 26

    Informations forums :
    Inscription : février 2006
    Messages : 368
    Points : 89
    Points
    89

    Par défaut

    Bonjour Jim_Nastiq !

    Merci beaucoup de m'avoir répondu si vite.

    Citation Envoyé par Jim_Nastiq Voir le message
    Soit obj ton Object d'origine et objOutput ton Object que tu souhaites
    Code :
    1
    2
    3
    4
    5
     
    for(var id:String in obj) {
    if((obj[id] == true) || (id == 'ligne'))
      objOutput[id] = obj[id];
    }
    J'ai essayé votre code et pour l'instant il ne me renvoie aucune donnée...
    Et adobe flash player m'envoie comme erreur :
    "TypeError: Error #1009: Il est impossible d'accéder à la propriété ou à la méthode d'une référence d'objet nul."
    Donc je suppose que l'object objOutput ne reçoit aucune donnée (car pour vérification je demande au code de m'afficher le résultat dans un Alert.show()).

    Donc je pense que j'ai peut être mal interprété/compris, le code que vous m'avez donné.
    Le obj est bien l'object sélectionné qui m'est retourné, c'est bien ça ?

    Et pour le id, c'est l'identifiant de la donnée se trouvant dans mon object c'est bien ça ? Comme par exemple "col1", "col2", etc... ?

    Si c'est bien ça me donne ceci :
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    var Select:Object;
    var objOutput:Object;
    //récupération de l'object sélectionné dans le datagrid
    Select = datagrid.selectedItem;
    Alert.show("Objet sélectionné :"+ObjectUtil.toString(Select));
    // L'alert me retourne bien l'object sélectionné/modifié
     
    for(var id:String in Select) {
    if((Select[id] == true) || (Select[id] == 'ligne'))
    objOutput[id] = Select[id];
    }
     
    Alert.show("infos utiles " +objOutput[id]);
    // l'alert ne s'enclenche pas car le objOutput[id] ne semble pas avoir reçu de données
    Pourriez-vous me dire si j'ai mal compris votre code, s'il vous plaît ?

    En vous remerciant.
    Programmer c'est comme gravir une montagne...
    Il faut procéder par étapes...
    (? auteur ?)
    Un seul être vous manque et tout est dépeuplé.
    Lamartine (merci chat hotplug ^^)

  4. #4
    Membre régulier Avatar de lou87
    Inscrit en
    février 2006
    Messages
    368
    Détails du profil
    Informations personnelles :
    Âge : 26

    Informations forums :
    Inscription : février 2006
    Messages : 368
    Points : 89
    Points
    89

    Par défaut

    Après de multiples essais pour réussir à récupérer ce dont j'ai besoin, je suis revenue à la méthode que m'a donné Jim_Nastiq, et cette fois-ci ça fonctionne.... C'est à rien n'y comprendre.

    Merci beaucoup Jim_Nastiq !!!

    Mais bon ça fonctionne et c'est l'essentiel, cependant j'ai dû modifier un peu le code pour récupérer et la colonne/checkbox modifiée et la ligne, ce qui donne ceci :
    Attention ça va brûler les yeux car c'est un peu (beaucoup) fait de manière brouillonne.

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    var Select:Object;
    var objOutput:Object;
    Select = datagrid.selectedItem;
    Alert.show("Objet sélectionné :"+ObjectUtil.toString(Select));
     
    for (var id:String in Select)    {
          if(Select[id] == true || Select[id] == 'ligne'){
                // ici j'arrive à afficher la checkbox qui a été modifié
                Alert.show("(dans la boucle) value id : "+id);
                var id2:String;
                id2 = 'ligne';
                var ligneSelected:String = Select[id2];
                // ici j'affiche la ligne en question
                Alert.show("infos utiles ligneSelected " +ligneSelected);
            }
    }
    Programmer c'est comme gravir une montagne...
    Il faut procéder par étapes...
    (? auteur ?)
    Un seul être vous manque et tout est dépeuplé.
    Lamartine (merci chat hotplug ^^)

  5. #5
    Rédacteur/Modérateur
    Avatar de Jim_Nastiq
    Homme Profil pro Jean-Marie Macé
    Architecte, Expert Flex
    Inscrit en
    avril 2006
    Messages
    2 333
    Détails du profil
    Informations personnelles :
    Nom : Homme Jean-Marie Macé
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte, Expert Flex
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2006
    Messages : 2 333
    Points : 3 300
    Points
    3 300

    Par défaut

    Si votre problème est résolu, merci de penser au tag Résolu (bouton en bas de page)

    Pensez vraiment à effectuer une recherche avant de poster, ici et sur un moteur de recherche! c'est la moindre des choses
    Pensez au tag

    Mon Blog sur la techno Flex
    Ma page sur Developpez.com

    Jim_Nastiq

  6. #6
    Membre régulier Avatar de lou87
    Inscrit en
    février 2006
    Messages
    368
    Détails du profil
    Informations personnelles :
    Âge : 26

    Informations forums :
    Inscription : février 2006
    Messages : 368
    Points : 89
    Points
    89

    Par défaut

    Oui, oui ^_^

    J'attendais juste de faire quelques tests afin de voir si d'autres problèmes n'apparaissaient pas.

    Mais c'est tout bon.

    Merci encore Jim_Nastiq.
    Programmer c'est comme gravir une montagne...
    Il faut procéder par étapes...
    (? auteur ?)
    Un seul être vous manque et tout est dépeuplé.
    Lamartine (merci chat hotplug ^^)

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

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •