J'ai deux fichiers xml, défaut. xml et employee.xml. Mais les fichiers ont un champ commun mais avec des noms différents dans chaque fichier. Je veux que les deux fichiers soient fusionnés dans une seule collection de tableaux.Comment obtenir deux fichiers xml dans une seule collection de tableaux en flex?
La structure de mon fichier est defect.xml:
<defectList>
<defect>
<revId>123</revId>
<revType>IQA</revType>
<status>Review Pending</status>
<assignedTo>Angeline</assignedTo>
<loggedBy>chandran</loggedBy>
<closedDate>13-10-2009</closedDate>
</defect>
<defect>
<revId>124</revId>
<revType>IQA</revType>
<status>Review Pending</status>
<assignedTo>Aarthi</assignedTo>
<loggedBy>chandran</loggedBy>
<closedDate>15-10-2009</closedDate>
</defect>
<defectList>
Et mon employee.xml
<Employees>
<employee>
<employeeId>256148</employeeId>
<employeeName>Angeline</employeeName>
</employee>
<employee>
<employeeId>256158</employeeId>
<employeeName>Aarthi</employeeName>
</employee>
<Employees>
Je reçois les deux fichiers XML dans deux collections de tableau:
<mx:Model id="employeeXML" source="assets/employee.xml"/>
<mx:ArrayCollection id="employeeList" source="{employeeXML.employee}"/>
<mx:Model id="defectXML" source="assets/defect.xml"/>
<mx:ArrayCollection id="defectList" source="{defectXML.defect}"/>
lorsque "assignedTo" correspond à "employeeName", je souhaite que "employeeId" soit ajouté à la collection de tableaux defectList. Comment puis-je faire ceci? Comment naviguer dans une collection de tableaux?
Et comment vérifier si le champ assigné à dans defectList est égal au champ employeeName dans employeeList? Quelqu'un me guide ..
EDIT
ok, maintenant je suis en mesure de comparer les deux champs, AssignedTo de defectList et employeeName de employeeList.Thanks à Simon:
var defect:Object;
var employee:Object;
for each (defect in defectList)
{
for each (employee in employeeList)
{
if(defect.assignedTo == employee.employeeName)
{
// defectList.addItem(employee.employeeId);
// I tried this,but it is wrong .
}
}
}
Mais comment ajouter le champ employeeId à cet élément de tableau particulier, afin que je puisse aussi utiliser defectList comme dataprovider pour l'ID de l'employé de dataagrid n display? Quelqu'un peut il m'aider avec ça.
SOLUTION
J'ai trouvé la solution. Voici le code:
public function init():void{
var defect:Object;
var employee:Object;
for each (defect in defectList)
{
for each (employee in employeeList)
{
if(defect.assignedTo == employee.employeeName)
{
var id:Object;
id=employee.employeeId;
defect["employeeId"]=id;
}
}
}
}
Maintenant, si je donne comme datafield « employeeId » dans le DataGrid avec defectList comme dataprovider, je reçois l'id employé du Nom de l'employé correspondant.
ok, je suis capable de comparer les éléments. c'est pour ça. Mais comment ajouter le champ "EmployeeId" à la collection de tableaux defectList? Une idée? – Angeline
Merci beaucoup pour votre aide. J'ai trouvé la solution :-) – Angeline