Zurück   Flashforum > Flex und AIR > Flex programmieren

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 22-07-2009, 11:48   #1 (permalink)
Neuer User
 
Registriert seit: Jul 2009
Beiträge: 5
Question Flex Tree Problem

Hi ihr,
folgende Situation:
Ich bekomme eine vorgefertigte XML und soll daraus mit nem Tree/menü oder sonstwie eine FlexAnwendung basteln die mir den Tree anzeigt.

Code:
<entry>
        <name>      DK-MIS  </name>
        <reporttyp>   </reporttyp>
        <reportID>       </reportID>
        <parentID>  00057  </parentID>
        <objectID>  00189  </objectID>
        <reportText> TESTOrdner </reportText>
     </entry>

<entry>
        <name>      DK-MIS  </name>
        <reporttyp> RRMX  </reporttyp>
        <reportID>  3JQUGG2ERX9BP4WE0XWZYB6A6      </reportID>
        <parentID>  00057  </parentID>
        <objectID>  00063  </objectID>
        <reportText> PL 12.IS  </reportText>
     </entry>
Das müsste dann so aussehen:
..TestOrdner
....PL 12.IS
.... Item2
.... ...
.. Nächster Ordner
..... Item1
..... Item2

Die Verbindung zwischen Ordner und Item ist die parentID. Es sollen also Quasi alle Items die einen reportType haben den Ordner mit der parentID zugeordnet werden.

Irgendwie habe ich keine Ahnung wie ich das machen soll. Habe sogar schon 2 ArrayCollections erstellt (folder / items) in denen jeweils die relevanten Daten vorhanden sind.
Aber wie füge ich das ganze zusammen?

Danke fürs lesen und ich hoffe ihr habt eine Lösung.
Kuzia ist offline   Mit Zitat antworten
Alt 22-07-2009, 14:36   #2 (permalink)
Neuer User
 
Registriert seit: Jul 2009
Beiträge: 5
habs geschafft, nur benamt er mir die Ordner so komisch.
Jemand eine Idee wie ich das wegbekomme bzw. wo ich ich den Namen setzten kann?

Neu Bitmap.jpg
Kuzia ist offline   Mit Zitat antworten
Alt 22-07-2009, 21:00   #3 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.147
Eine labelFunction (siehe API) könnte helfen.
Omega Psi ist offline   Mit Zitat antworten
Alt 23-07-2009, 11:14   #4 (permalink)
Neuer User
 
Registriert seit: Jul 2009
Beiträge: 5
Vielleicht ;-)

Hab mir die API angeschaut und dann noch Beispiele, werd aber nicht wirklich schlau daraus. Vielleicht könntest mir beim Coden helfen?

Wichtige Codeausschnitte:
Import der XML:
Code:
<mx:HTTPService	id="srv" url="testxml.xml"
		result="httpResultHandler(event)"
		fault="httpFaultHandler(event)"/>
Bearbeiten der XML für den Tree:
Code:
private function createXML(folders:ArrayCollection ,apps:ArrayCollection):void{
				
				var i:int;
				var j:int;
				for (i=0;i<folders.length;i++){
					var name:String = folders.getItemAt(i).reportText;
					var parentID: String = folders[i].parentID;

				favs.appendChild(<folder name ={name}></folder>);

					for (j=0;j<apps.length;j++){
						if (apps.getItemAt(j).parentID == folders.getItemAt(i).parentID){
							favs.folder[i].appendChild (apps[j].reportText);
							
						}//if 
						
					}//for J
				}//for i
				//Alert.show("favs" +favs  ,"KUHL");
			}
Mein Tree:
Code:
 <mx:Tree id="tree1" showRoot="false"  width="100%" x="10" y="190" 
	 	height="100%" dataProvider="{favs}" >
Kuzia ist offline   Mit Zitat antworten
Alt 25-07-2009, 10:35   #5 (permalink)
Neuer User
 
Registriert seit: Oct 2008
Beiträge: 148
Code:
<mx:Tree id="tree1" showRoot="false"  width="100%" x="10" y="190" 
	 	height="100%" dataProvider="{favs}" labelFunction="treeLabel" >

private function treeLabel(data:Object):String
{
    var str:String = "";
    str += (data.wasauchimmer)
    return str;
}
sytch ist offline   Mit Zitat antworten
Alt 27-07-2009, 08:36   #6 (permalink)
Neuer User
 
Registriert seit: Jul 2009
Beiträge: 5
hmmm...
aber wie greife ich nun auf den Namen im DataObeject zu?

- data.name oder auch data.reportText liefert nur einen leeren String zurück.
Laut hilfe kann ich auf das data nur begrenzte Operationen ausführen und keine scheint mir was zu bringen.
Kuzia ist offline   Mit Zitat antworten
Alt 28-07-2009, 08:56   #7 (permalink)
Neuer User
 
Registriert seit: Jul 2009
Beiträge: 5
Habe es selber gelöst nach 2Tagen Arbeit.
Lösung:

Code:
private function treeLabel(data:XML):String{
			    var str:String = "";
			     switch (data.localName()) {
                    case "folder":
                        str = data.@name;
                        break;
                    case "app":
                        str= data.@title;
                        break;
			     }
			    return str;
			}
Kuzia ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 13:09 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele