2 つの xml ファイルがありますが、欠陥があります。xml および employee.xml です。ただし、ファイルには共通のフィールドがありますが、ファイルごとに名前が異なります。両方のファイルを 1 つの配列コレクションにマージしたいと考えています。
私の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>
そして私のemployee.xml
<Employees>
<employee>
<employeeId>256148</employeeId>
<employeeName>Angeline</employeeName>
</employee>
<employee>
<employeeId>256158</employeeId>
<employeeName>Aarthi</employeeName>
</employee>
<Employees>
2 つの配列コレクションで両方の xml ファイルを取得します。
<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}"/>
「assignedTo」が「employeeName」と一致する場合、「employeeId」をdefectList配列コレクションに追加します。これどうやってするの?配列コレクションを反復する方法は?
そして、defectList の assignedTo フィールドが employeeList の employeeName フィールドと等しいかどうかを確認する方法は? 誰かが私を導く..
編集
わかりました。これで、defectList の assignedTo と employeeList の employeeName の 2 つのフィールドを比較できるようになりました。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 .
}
}
}
しかし、employeeId フィールドをその特定の配列要素に追加して、defectList をデータグリッド n 表示従業員 ID のデータプロバイダーとして使用できるようにするにはどうすればよいでしょうか? 誰かがこれで私を助けることができますか?
解決
私は解決策を見つけました。コードは次のとおりです。
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;
}
}
}
}
ここで、defectList を dataprovider として datagrid で datafield を「employeeId」として指定すると、対応する従業員名の従業員 ID が取得されます。