2012-04-09 2 views
0

J'ai lutté avec cela pendant des heures! je vraiment besoin d'aideContrôle d'arbre Flex avec collection de tableaux

Im essayant de remplir un contrôle d'arbre avec un fichier XML externe apporté via ArrayCollection mais je dois regrouper les données xml pour afficher dans l'arbre

Ok mon fichier xml externe est appelé parties. xml et il ressemble à ceci:

<NewDataSet> 
    <Parts> 
     <PartGroup>51 Series</PartGroup> 
     <PartType>20051</PartType> 
     <PartNumber>20051-3</PartNumber> 
     <PartDesc>Reusable Socket-51 SER</PartDesc> 
     <PartImageFile /> 
    </Parts> 
    <Parts> 
     <PartGroup>51 Series</PartGroup> 
     <PartType>20051</PartType> 
     <PartNumber>20051-4</PartNumber> 
     <PartDesc>Reusable Socket-51 SER</PartDesc> 
     <PartImageFile /> 
    </Parts> 
    <Parts> 
     <PartGroup>51 Series</PartGroup> 
     <PartType>20151</PartType> 
     <PartNumber>20151-12-12</PartNumber> 
     <PartDesc>Penis</PartDesc> 
     <PartImageFile>20151-vi copy.jpg</PartImageFile> 
    </Parts> 
    <Parts> 
     <PartGroup>90 Series</PartGroup> 
     <PartType>090</PartType> 
     <PartNumber>090-20B</PartNumber> 
     <PartDesc>Replace Ferrule-90 SER</PartDesc> 
     <PartImageFile>090 copy.jpg</PartImageFile> 
    </Parts> 
    <Parts> 
     <PartGroup>90 Series</PartGroup> 
     <PartType>090</PartType> 
     <PartNumber>090-4B</PartNumber> 
     <PartDesc>Replace Ferrule-90 SER</PartDesc> 
     <PartImageFile>090 copy.jpg</PartImageFile> 
    </Parts> 
    <Parts> 
     <PartGroup>90 Series</PartGroup> 
     <PartType>20090</PartType> 
     <PartNumber>20090-12</PartNumber> 
     <PartDesc>Replacement Socket-FA</PartDesc> 
     <PartImageFile>20090-vi copy.jpg</PartImageFile> 
    </Parts> 
    <Parts> 
     <PartGroup>90 Series</PartGroup> 
     <PartType>20090</PartType> 
     <PartNumber>20090-12C</PartNumber> 
     <PartDesc>Replacement Socket-FA, SS</PartDesc> 
     <PartImageFile>20090-vi copy.jpg</PartImageFile> 
    </Parts> 
</NewDataSet> 

Ceci est seulement un échantillon (le xml réelle est longue de 7591 lignes) ..

im Suivant en utilisant

<mx:HTTPService id="getPartsXml" url="assets/db/Parts_DB.xml" result="partsDB=getPFDXml.lastResult.NewDataSet.Parts"/> 

pour mettre le xml en flexion. partsDB est une collection de tableaux qui a été liée à un contrôle d'arbre. Ce qui me pose problème, c'est que l'arborescence affiche les données de la façon dont j'en ai besoin sans perdre aucune des autres données.

ce que je veux dire est, à partir du XML ci-dessus j'ai besoin de l'arbre pour afficher comme cette

+-51 series 
| +->20051 
| | |->20051-3 
| | |->20051-4 
| | 
| +->20151 
|  |->20151-12-12 
| 
+-90 Series 
    +->090 
    | |->090-20B 
    | |->090-4B 
    | 
    +->20090 
     |->20090-12 
     |->20090-12C 

plus ce que je veux est pour l'utilisateur d'avoir arbre énorme de pièces et ils choisissent un nœud au partnumber niveau et glissez-déposez-le sur un DataGrid où toutes les autres balises de la pièce sont affichées. J'ai essayé et essayé beaucoup de choses sans aucune chance. même maintenant, je pense peut-être si je ai bouclé la collection de tableaux et créé un nouveau tableau juste pour l'arbre pour l'obtenir pour afficher la façon dont j'ai besoin, puis quand l'utilisateur traîné et déposez une partie sur la grille, je voudrais avoir du code chercherait ce numéro de pièce dans le arraycollection original et l'ajouterais à un nouveau tableau juste pour le dataagrid ... je ne sais toujours pas comment je créerais ce nouveau tableau pour l'arbre !! provoquer les données XML sont regroupées par partgroup puis regroupés à nouveau par parttype avant d'obtenir les numéros de pièce individuels :(

J'espère que cela est logique

Répondre

0

Vous avez 2 composants. Le premier (arbre) n'est pas diplaying données correctement:

  1. les arbres attendent des données hiérarchisées Vos données XML est plat (mais dans une collection Array) Groupe avec GroupingCollection2
  2. Ou utilisez le AdvancedDataGrid pour simuler un contrôle d'arborescence comme this
  3. ....

En ce qui concerne la grille de données, vous êtes le plus susceptible de le faire fonctionner avec sa propre collection, mais alimenté par des objets de votre première collection de composants:

  1. double-cliquez/drag-n-drop de 1 à 2 provoque une insertion dans la collection de 2 (avec une vérification si elle est déjà là)
  2. vous devrez probablement inclure un moyen de supprimer de 2 probablement, ou vous aurez un composant qui est toujours rempli et jamais effacé.
Questions connexes