首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > flex >

Flex Array多参数排行(含有并列名次)

2012-10-29 
Flex Array多参数排名(含有并列名次)最近有一个项目,客户不仅要求报表同时呈现:1.员工在整个公司的排名2.

Flex Array多参数排名(含有并列名次)
最近有一个项目,客户不仅要求报表同时呈现:
1.员工在整个公司的排名
2.员工在其子公司的排名
3.员工在其专业组别的排名

由于是从数据库单一读取数据,并不含有排名信息,所以,在Flex中,需要对数据进行多参数排名处理,为此,用到了此函数:


图例核心代码:
package project.module.dataReport.company.page{import mx.collections.ArrayCollection;import mx.containers.VBox;import project.golbal.EmployeeServiceItemsArgsName;public class AnalyzeMonthDataPage extends VBox{[Bindable]public var AllStoreEmployeeAndBaseSalaryArr:Array;[Bindable]public var distinctMonthEmpoyeeIDArr:Array;[Bindable]public var IDArr:Array;[Bindable]public var employeeServiceItemNameArr:Array;[Bindable]public var employeeIDArr:Array;[Bindable]public var employeeNameArr:Array;[Bindable]public var employeeRegPlaceArr:Array;[Bindable]public var employeeGroupArr:Array;[Bindable]public var fromDateArr:Array;[Bindable]public var toDateArr:Array;[Bindable]public var countTotalGuestCountArr:Array;[Bindable]public var guestWeekRateArr:Array;[Bindable]public var countTotalChooseGuestArr:Array;[Bindable]public var chooseGuestWeekRateArr:Array;[Bindable]public var countTotalMassageArr:Array;[Bindable]public var countTotalUnMassageArr:Array;[Bindable]public var massageWeekRateArr:Array;[Bindable]public var countTotalPriceArr:Array;[Bindable]public var priceWeekRateArr:Array;[Bindable]public var countTotalSalaryArr:Array;[Bindable]public var salaryWeekRateArr:Array;[Bindable]public var temp_month_honor_employeeIDArr:Array;[Bindable]public var temp_month_honor_employeeNameArr:Array;[Bindable]public var temp_month_honor_employeeRegPlaceArr:Array;[Bindable]public var temp_month_honor_employeeGroupArr:Array[Bindable]public var temp_month_honor_salaryTotalArr:Array;[Bindable]public var temp_month_font_honor_employeeIDArr:Array;[Bindable]public var temp_month_font_honor_employeeNameArr:Array;[Bindable]public var temp_month_font_honor_employeeRegPlaceArr:Array;[Bindable]public var temp_month_font_honor_employeeGroupArr:Array;[Bindable]public var temp_month_font_honor_salaryTotalArr:Array;[Bindable]public var temp_month_overdrawn_employeeIDArr:Array;[Bindable]public var temp_month_overdrawn_employeeNameArr:Array;[Bindable]public var temp_month_overdrawn_employeeRegPlaceArr:Array;[Bindable]public var temp_month_overdrawn_employeeGroupArr:Array;[Bindable]public var temp_month_overdrawn_priceTotalArr:Array;public function AnalyzeMonthDataPage(){super();}private var controlPage:Object;public function AnalyzeeAllEmployeeMonthData(page:Object):void{controlPage=page;for (var i:int=0; i < distinctMonthEmpoyeeIDArr.length; i++){var obj:Object=new Object();RolateData(distinctMonthEmpoyeeIDArr[i])}mergeEmpoyeeHonor();}private var RolateEmployeePriceArr:Array=new Array();private function RolateData(employeeID:String):void{for (var i:int=0; i < IDArr.length; i++){if (employeeID == employeeIDArr[i]){var obj:Objectvar returnNum:Number=findIsDataInArrays("employeeID",employeeIDArr[i], RolateEmployeePriceArr);//找到有if (returnNum != -1){//索引值var idx:Number=findDataInArraysOrder("employeeID",employeeIDArr[i], RolateEmployeePriceArr);//obj=RolateEmployeePriceArr.getItemAt(idx);obj=RolateEmployeePriceArr[idx];}else{//没有找到obj=new Object();}var itemName:String=employeeServiceItemNameArr[i];switch (itemName){case EmployeeServiceItemsArgsName.PermArgsName():obj.employeeID=employeeIDArr[i];obj.employeeName=employeeNameArr[i];obj.employeeRegPlace=employeeRegPlaceArr[i];obj.employeeGroup=employeeGroupArr[i];var temp1:Number=Number(obj.permTotalSalary) ? Number(obj.permTotalSalary) : 0obj.permTotalSalary=temp1 + (Number(countTotalSalaryArr[i]) ? Number(countTotalSalaryArr[i]) : 0);break;case EmployeeServiceItemsArgsName.PermNurseArgsName():obj.employeeID=employeeIDArr[i];obj.employeeName=employeeNameArr[i];obj.employeeRegPlace=employeeRegPlaceArr[i];obj.employeeGroup=employeeGroupArr[i];var temp2:Number=Number(obj.permNurseTotalSalary) ? Number(obj.permNurseTotalSalary) : 0;obj.permNurseTotalSalary=temp2 + (Number(countTotalSalaryArr[i]) ? Number(countTotalSalaryArr[i]) : 0);break;case EmployeeServiceItemsArgsName.DyeArgsName():obj.employeeID=employeeIDArr[i];obj.employeeName=employeeNameArr[i];obj.employeeRegPlace=employeeRegPlaceArr[i];obj.employeeGroup=employeeGroupArr[i];var temp3:Number=Number(obj.dyeTotalSalary) ? Number(obj.dyeTotalSalary) : 0;obj.dyeTotalSalary=temp3 + (Number(countTotalSalaryArr[i]) ? Number(countTotalSalaryArr[i]) : 0);break;case EmployeeServiceItemsArgsName.DyeNurseArgsName():obj.employeeID=employeeIDArr[i];obj.employeeName=employeeNameArr[i];obj.employeeRegPlace=employeeRegPlaceArr[i];obj.employeeGroup=employeeGroupArr[i];var temp4:Number=Number(obj.dyeNurseTotalSalary) ? Number(obj.dyeNurseTotalSalary) : 0;obj.dyeNurseTotalSalary=temp4 + (Number(countTotalSalaryArr[i]) ? Number(countTotalSalaryArr[i]) : 0);break;case EmployeeServiceItemsArgsName.ClipDryArgsName():obj.employeeID=employeeIDArr[i];obj.employeeName=employeeNameArr[i];obj.employeeRegPlace=employeeRegPlaceArr[i];obj.employeeGroup=employeeGroupArr[i];var temp5:Number=Number(obj.clipDryTotalSalary) ? Number(obj.clipDryTotalSalary) : 0;obj.clipDryTotalSalary=temp5 + (Number(countTotalSalaryArr[i]) ? Number(countTotalSalaryArr[i]) : 0);break;case EmployeeServiceItemsArgsName.CommonWashArgsName():obj.employeeID=employeeIDArr[i];obj.employeeName=employeeNameArr[i];obj.employeeRegPlace=employeeRegPlaceArr[i];obj.employeeGroup=employeeGroupArr[i];var temp6:Number=Number(obj.commonWashTotalSalary) ? Number(obj.commonWashTotalSalary) : 0;obj.commonWashTotalSalary=temp6 + (Number(countTotalSalaryArr[i]) ? Number(countTotalSalaryArr[i]) : 0);break;case EmployeeServiceItemsArgsName.SaleArgsName():obj.employeeID=employeeIDArr[i];obj.employeeName=employeeNameArr[i];obj.employeeRegPlace=employeeRegPlaceArr[i];obj.employeeGroup=employeeGroupArr[i];var temp7:Number=Number(obj.saleTotalSalary) ? Number(obj.saleTotalSalary) : 0;obj.saleTotalSalary=temp7 + (Number(countTotalSalaryArr[i]) ? Number(countTotalSalaryArr[i]) : 0);break;case EmployeeServiceItemsArgsName.AddedWashArgsName():obj.employeeID=employeeIDArr[i];obj.employeeName=employeeNameArr[i];obj.employeeRegPlace=employeeRegPlaceArr[i];obj.employeeGroup=employeeGroupArr[i];var temp8:Number=Number(obj.addedWashTotalSalary) ? Number(obj.addedWashTotalSalary) : 0;obj.addedWashTotalSalary=temp8 + (Number(countTotalSalaryArr[i]) ? Number(countTotalSalaryArr[i]) : 0);break;case EmployeeServiceItemsArgsName.ProcessMaintainArgsName():obj.employeeID=employeeIDArr[i];obj.employeeName=employeeNameArr[i];obj.employeeRegPlace=employeeRegPlaceArr[i];obj.employeeGroup=employeeGroupArr[i];var temp9:Number=Number(obj.processMaintainTotalSalary) ? Number(obj.processMaintainTotalSalary) : 0;obj.processMaintainTotalSalary=temp9 + (Number(countTotalSalaryArr[i]) ? Number(countTotalSalaryArr[i]) : 0);break;case EmployeeServiceItemsArgsName.PrepaidCardArgsName():obj.employeeID=employeeIDArr[i];obj.employeeName=employeeNameArr[i];obj.employeeRegPlace=employeeRegPlaceArr[i];obj.employeeGroup=employeeGroupArr[i];var temp10:Number=Number(obj.prepaidTotalSalary) ? Number(obj.prepaidTotalSalary) : 0obj.prepaidTotalSalary=temp10 + (Number(countTotalSalaryArr[i]) ? Number(countTotalSalaryArr[i]) : 0);break;case EmployeeServiceItemsArgsName.PhysiotherapyArgsName():obj.employeeID=employeeIDArr[i];obj.employeeName=employeeNameArr[i];obj.employeeRegPlace=employeeRegPlaceArr[i];obj.employeeGroup=employeeGroupArr[i];var temp11:Number=Number(obj.physiotherapyTotalSalary) ? Number(obj.physiotherapyTotalSalary) : 0;obj.physiotherapyTotalSalary=temp11 + (Number(countTotalSalaryArr[i]) ? Number(countTotalSalaryArr[i]) : 0);break;case EmployeeServiceItemsArgsName.WorkOvertimeArgsName():obj.employeeID=employeeIDArr[i];obj.employeeName=employeeNameArr[i];obj.employeeRegPlace=employeeRegPlaceArr[i];obj.employeeGroup=employeeGroupArr[i];var temp12:Number=Number(obj.workOvertimeTotalSalary) ? Number(obj.workOvertimeTotalSalary) : 0obj.workOvertimeTotalSalary=temp12 + (Number(countTotalSalaryArr[i]) ? Number(countTotalSalaryArr[i]) : 0);break;}if (returnNum != -1){}else{RolateEmployeePriceArr.push(obj)}}}}/*********** * 员工奖励 * ********************/private var emloyeeHonorCashAco:Array=new Array();private function mergeEmpoyeeHonor():void{if (temp_month_honor_employeeNameArr){for (var i:int=0; i < temp_month_honor_employeeNameArr.length; i++){var obj:Objectvar returnNum:Number=findIsDataInArrays("employeeID",temp_month_honor_employeeIDArr[i], emloyeeHonorCashAco);//找到有if (returnNum != -1){//索引值var idx:Number=findDataInArraysOrder("employeeID",temp_month_honor_employeeIDArr[i], emloyeeHonorCashAco);obj=emloyeeHonorCashAco[idx];}else{//没有找到obj=new Object();}obj.employeeID=temp_month_honor_employeeIDArr[i]obj.employeeName=temp_month_honor_employeeNameArr[i]obj.employeeRegPlace=temp_month_honor_employeeRegPlaceArr[i];obj.employeeGroupArr=temp_month_honor_employeeGroupArr[i];//取值赋值var temp1:Number=Number(obj.salaryTotal) ? Number(obj.salaryTotal) : 0;obj.salaryTotal=temp1 + (Number(temp_month_honor_salaryTotalArr[i]) ? Number(temp_month_honor_salaryTotalArr[i]) : 0);if (returnNum != -1){}else{emloyeeHonorCashAco.push(obj)}}mergeEmployeeFrontHonor()}else{mergeEmployeeFrontHonor()}}//-------------------------------private function mergeEmployeeFrontHonor():void{if (temp_month_font_honor_employeeNameArr){for (var i:int=0; i < temp_month_font_honor_employeeNameArr.length; i++){var obj:Objectvar returnNum:Number=findIsDataInArrays("employeeID",temp_month_font_honor_employeeIDArr[i], emloyeeHonorCashAco);//找到有if (returnNum != -1){//索引值var idx:Number=findDataInArraysOrder("employeeID",temp_month_font_honor_employeeIDArr[i], emloyeeHonorCashAco);obj=emloyeeHonorCashAco[idx];}else{//没有找到obj=new Object();}obj.employeeID=temp_month_font_honor_employeeIDArr[i];obj.employeeName=temp_month_font_honor_employeeNameArr[i];obj.employeeRegPlace=temp_month_font_honor_employeeRegPlaceArr[i];obj.employeeGroup=temp_month_font_honor_employeeGroupArr[i];var temp1:Number=Number(obj.salaryTotal) ? Number(obj.salaryTotal) : 0;obj.salaryTotal=temp1 + (Number(temp_month_font_honor_salaryTotalArr[i]) ? Number(temp_month_font_honor_salaryTotalArr[i]) : 0);if (returnNum != -1){}else{emloyeeHonorCashAco.push(obj)}}doMergeOverDrawnPrice()}else{doMergeOverDrawnPrice()}}//------------------------------------------------private var mergeOverDrawPriceACO:Array=new Array();private function doMergeOverDrawnPrice():void{if (temp_month_overdrawn_employeeNameArr){for (var i:int=0; i < temp_month_overdrawn_employeeNameArr.length; i++){var obj:Objectvar returnNum:Number=findIsDataInArrays("employeeID",temp_month_overdrawn_employeeIDArr[i], mergeOverDrawPriceACO);//找到有if (returnNum != -1){//索引值var idx:Number=findDataInArraysOrder("employeeID",temp_month_overdrawn_employeeIDArr[i], mergeOverDrawPriceACO);obj=mergeOverDrawPriceACO[idx];}else{//没有找到obj=new Object();}obj.employeeID=temp_month_overdrawn_employeeIDArr[i]obj.employeeName=temp_month_overdrawn_employeeNameArr[i]obj.employeeRegPlace=temp_month_overdrawn_employeeRegPlaceArr[i];obj.employeeGroup=temp_month_overdrawn_employeeGroupArr[i];var temp1:Number=Number(obj.priceTotal) ? Number(obj.priceTotal) : 0;obj.priceTotal=temp1 + (Number(temp_month_overdrawn_priceTotalArr[i]) ? Number(temp_month_overdrawn_priceTotalArr[i]) : 0);if (returnNum != -1){}else{mergeOverDrawPriceACO.push(obj)}}AddHonorAndOverDrawnData()}else{AddHonorAndOverDrawnData()}}//----------------------------------------private function AddHonorAndOverDrawnData():void{for (var i:int=0; i < RolateEmployeePriceArr.length; i++){var oldObj:Object=RolateEmployeePriceArr[i];if (emloyeeHonorCashAco){oldObj.honorSalaryTotal=addHonorIntoObj(RolateEmployeePriceArr[i].employeeID).honorSalaryTotal;}}//填弃数据fillDataGridItemData()}private var allEmployeeMonthWageRateArr:Array;private function fillDataGridItemData():void{for (var j:int=0; j < AllStoreEmployeeAndBaseSalaryArr.length; j++){var oldObj:Object=AllStoreEmployeeAndBaseSalaryArr[j];var getObj:Object=getLockEmployeeEachItem(AllStoreEmployeeAndBaseSalaryArr[j].employeeID);var temp1:Number=Number(AllStoreEmployeeAndBaseSalaryArr[j].baseSalary) ? Number(AllStoreEmployeeAndBaseSalaryArr[j].baseSalary) : 0oldObj.baseSalary=temp1.toFixed(2);var temp2:Number=Number(getObj.monthSalaryTotal) ? Number(getObj.monthSalaryTotal) : 0;oldObj.monthSalaryTotal=temp2.toFixed(2);var temp3:Number=Number(getObj.overDrawnPriceTotal) ? Number(getObj.overDrawnPriceTotal) : 0;oldObj.overDrawnPriceTotal=temp3.toFixed(2);oldObj.MonthWageTotal=Number(temp1 + temp2 - temp3).toFixed(2);}//最终生成公司所有员工的工资数组//AllStoreEmployeeAndBaseSalaryArr.sortOn("MonthWageTotal", Array.NUMERIC | Array.DESCENDING);//设置全部员工的薪水排名;allEmployeeMonthWageRateArr=doSetMonthWageRate(AllStoreEmployeeAndBaseSalaryArr);//设置分组AnalyzeEmployeeGroup()}private function getLockEmployeeEachItem(employeeID:String):Object{var tempObj:Object=new Object();for (var j:int=0; j < RolateEmployeePriceArr.length; j++){if (employeeID == String(RolateEmployeePriceArr[j].employeeID)){tempObj.overDrawnPriceTotal=addOverDrawnIntoObj(RolateEmployeePriceArr[j].employeeID).overDrawnPriceTotal;tempObj.monthSalaryTotal=getDataScore(RolateEmployeePriceArr[j].employeeID).monthSalaryTotal;}}return tempObj;}private function addHonorIntoObj(employeeID:String):Object{var tempObj:Object=new Object();var honorSalaryTotal:Number=0for (var j:int=0; j < emloyeeHonorCashAco.length; j++){if (employeeID == String(emloyeeHonorCashAco[j].employeeID)){honorSalaryTotal=emloyeeHonorCashAco[j].salaryTotalbreak;}}tempObj.honorSalaryTotal=honorSalaryTotal;return (tempObj)}//员工的月支出private function addOverDrawnIntoObj(employeeID:String):Object{var tempObj:Object=new Object();var overDrawnPriceTotal:Number=0;if (mergeOverDrawPriceACO){for (var j:int=0; j < mergeOverDrawPriceACO.length; j++){if (employeeID == String(mergeOverDrawPriceACO[j].employeeID)){overDrawnPriceTotal=mergeOverDrawPriceACO[j].priceTotal;break;}}}tempObj.overDrawnPriceTotal=overDrawnPriceTotalreturn (tempObj)}//员工业绩薪酬+荣誉奖励现金private function getDataScore(employeeID:String):Object{var score:Number=0;var tempObj:Object=new Object();for (var j:int=0; j < RolateEmployeePriceArr.length; j++){if (employeeID == String(RolateEmployeePriceArr[j].employeeID)){var Num1:Number=Number(RolateEmployeePriceArr[j].permTotalSalary) ? Number(RolateEmployeePriceArr[j].permTotalSalary) : 0;var Num2:Number=Number(RolateEmployeePriceArr[j].permNurseTotalSalary) ? Number(RolateEmployeePriceArr[j].permNurseTotalSalary) : 0;var Num3:Number=Number(RolateEmployeePriceArr[j].dyeTotalSalary) ? Number(RolateEmployeePriceArr[j].dyeTotalSalary) : 0;var Num4:Number=Number(RolateEmployeePriceArr[j].dyeNurseTotalSalary) ? Number(RolateEmployeePriceArr[j].dyeNurseTotalSalary) : 0;var Num5:Number=Number(RolateEmployeePriceArr[j].clipDryTotalSalary) ? Number(RolateEmployeePriceArr[j].clipDryTotalSalary) : 0;var Num6:Number=Number(RolateEmployeePriceArr[j].commonWashTotalSalary) ? Number(RolateEmployeePriceArr[j].commonWashTotalSalary) : 0;var Num7:Number=Number(RolateEmployeePriceArr[j].saleTotalSalary) ? Number(RolateEmployeePriceArr[j].saleTotalSalary) : 0;var Num8:Number=Number(RolateEmployeePriceArr[j].addedWashTotalSalary) ? Number(RolateEmployeePriceArr[j].addedWashTotalSalary) : 0;var Num9:Number=Number(RolateEmployeePriceArr[j].processMaintainTotalSalary) ? Number(RolateEmployeePriceArr[j].processMaintainTotalSalary) : 0;var Num10:Number=Number(RolateEmployeePriceArr[j].prepaidTotalSalary) ? Number(RolateEmployeePriceArr[j].prepaidTotalSalary) : 0;var Num11:Number=Number(RolateEmployeePriceArr[j].physiotherapyTotalSalary) ? Number(RolateEmployeePriceArr[j].physiotherapyTotalSalary) : 0;var Num12:Number=Number(RolateEmployeePriceArr[j].workOvertimeTotalSalary) ? Number(RolateEmployeePriceArr[j].workOvertimeTotalSalary) : 0;var Num13:Numberif (emloyeeHonorCashAco){Num13=Number(RolateEmployeePriceArr[j].honorSalaryTotal) ? Number(RolateEmployeePriceArr[j].honorSalaryTotal) : 0;}score=(Num1 + Num2 + Num3 + Num4 + Num5 + Num6 + Num7 + Num8 + Num9 + Num10 + Num11 + Num12 + Num13)}}tempObj.monthSalaryTotal=score;return (tempObj)}private function doSetMonthWageRate(tempArr:Array):Array{//排名 并附值var re_EmployeeMonthWageRateArr:Array=[];for (var k:int=0; k < tempArr.length; k++){var tempObj:Object=new Object();tempObj.employeeID=tempArr[k].employeeIDtempObj.employeeName=tempArr[k].employeeNametempObj.employeeRegPlace=tempArr[k].employeeRegPlace;tempObj.employeeGroup=tempArr[k].employeeGroup;tempObj.baseSalary=tempArr[k].baseSalary;tempObj.monthSalaryTotal=tempArr[k].monthSalaryTotal;tempObj.overDrawnPriceTotal=tempArr[k].overDrawnPriceTotal;tempObj.MonthWageTotal=tempArr[k].MonthWageTotal;//复制数组var cloneArr:Array=tempArr.concat();var obj1:Object=new Object();//全部员工的薪水排名obj1=setDataRate("MonthWageTotal", "MonthWageTotalRate", cloneArr, tempArr[k].MonthWageTotal);tempObj.MonthWageTotalRate=obj1.MonthWageTotalRate;re_EmployeeMonthWageRateArr.push(tempObj)}return re_EmployeeMonthWageRateArr;}private var AnalyzedGroupACOData:ArrayCollection=new ArrayCollection()private function AnalyzeEmployeeGroup():void{for (var k:int=0; k < allEmployeeMonthWageRateArr.length; k++){var obj:Object=new Object();var obj2:Object=new Object()var childrenACO:ArrayCollection=new ArrayCollection();if (k == 0){obj.employeeGroup=allEmployeeMonthWageRateArr[k].employeeGroup;childrenACO.addItem(allEmployeeMonthWageRateArr[k])obj.children=childrenACO;AnalyzedGroupACOData.addItem(obj)}else{//判断companyEmployeeDBDataArr[k].employeeGroup是否在数组中,如果存在,//取得其索引,加入children//否则  新加入数组var returnNum:Number=findIsDataInArrays("employeeGroup",allEmployeeMonthWageRateArr[k].employeeGroup,AnalyzedGroupACOData);//找到有if (returnNum != -1){//索引值var idx:Number=findDataInArraysOrder("employeeGroup",allEmployeeMonthWageRateArr[k].employeeGroup,AnalyzedGroupACOData);var oldObj:Object=AnalyzedGroupACOData.getItemAt(idx);ArrayCollection(oldObj.children).addItem(allEmployeeMonthWageRateArr[k])}else{//没有找到obj.employeeGroup=allEmployeeMonthWageRateArr[k].employeeGroup;childrenACO.addItem(allEmployeeMonthWageRateArr[k])obj.children=childrenACO;AnalyzedGroupACOData.addItem(obj);}}}//设置分组排名AnalyzeeEmployeeGroupRate()}private function AnalyzeeEmployeeGroupRate():void{//各个分组一组一组的解析for (var i:int=0; i < AnalyzedGroupACOData.length; i++){//取得 Childrenvar tempArr:*=(AnalyzedGroupACOData[i].children);var childrenArr:Array=[];var newArr:Array=[];for (var j:int=0; j < tempArr.length; j++){var tempObj2:Object=new Object();tempObj2.employeeID=tempArr[j].employeeID;tempObj2.MonthWageTotal=tempArr[j].MonthWageTotal;newArr.push(tempObj2)}for (var k:int=0; k < newArr.length; k++){var tempObj:Object=new Object();tempObj.employeeID=newArr[k].employeeID;//复制数组var cloneArr:Array=newArr.concat();var obj1:Object=new Object();//全部员工的薪水排名obj1=setDataRate("MonthWageTotal", "groupRate", cloneArr, newArr[k].MonthWageTotal);tempObj.groupRate=obj1.groupRate;childrenArr.push(tempObj)}//执行绑定bidingGroupRate(childrenArr)}//班次排名AnalyzeEmployeeRegPlace()}private function bidingGroupRate(tempArr:Array):void{for (var j:int=0; j < allEmployeeMonthWageRateArr.length; j++){//取得对应的对象var oldObj:Object=allEmployeeMonthWageRateArr[j];for (var k:int=0; k < tempArr.length; k++){//传送过来的小组含有排名,绑定名次if (allEmployeeMonthWageRateArr[j].employeeID == tempArr[k].employeeID){oldObj.groupRate=tempArr[k].groupRate}}}}//---------------------------------------------------private var AnalyzedRegplaceACOData:ArrayCollection=new ArrayCollection()private function AnalyzeEmployeeRegPlace():void{for (var k:int=0; k < allEmployeeMonthWageRateArr.length; k++){var obj:Object=new Object();var obj2:Object=new Object()var childrenACO:ArrayCollection=new ArrayCollection();if (k == 0){obj.employeeRegPlace=allEmployeeMonthWageRateArr[k].employeeRegPlace;childrenACO.addItem(allEmployeeMonthWageRateArr[k])obj.children=childrenACO;AnalyzedRegplaceACOData.addItem(obj)}else{//判断companyEmployeeDBDataArr[k].employeeRegPlace是否在数组中,如果存在,//取得其索引,加入children//否则  新加入数组var returnNum:Number=findIsDataInArrays("employeeRegPlace",allEmployeeMonthWageRateArr[k].employeeRegPlace,AnalyzedRegplaceACOData);//找到有if (returnNum != -1){//索引值var idx:Number=findDataInArraysOrder("employeeRegPlace",allEmployeeMonthWageRateArr[k].employeeRegPlace,AnalyzedRegplaceACOData);var oldObj:Object=AnalyzedRegplaceACOData.getItemAt(idx);ArrayCollection(oldObj.children).addItem(allEmployeeMonthWageRateArr[k])}else{//没有找到obj.employeeRegPlace=allEmployeeMonthWageRateArr[k].employeeRegPlace;childrenACO.addItem(allEmployeeMonthWageRateArr[k])obj.children=childrenACO;AnalyzedRegplaceACOData.addItem(obj);}}}//设置班次排名AnalyzeeEmployeeRegPlaceRate()}private function AnalyzeeEmployeeRegPlaceRate():void{//各个分组一组一组的解析for (var i:int=0; i < AnalyzedRegplaceACOData.length; i++){//取得 Childrenvar tempArr:*=(AnalyzedRegplaceACOData[i].children);var childrenArr:Array=[];var newArr:Array=[];for (var j:int=0; j < tempArr.length; j++){var tempObj2:Object=new Object();tempObj2.employeeID=tempArr[j].employeeID;tempObj2.MonthWageTotal=tempArr[j].MonthWageTotal;newArr.push(tempObj2)}for (var k:int=0; k < newArr.length; k++){var tempObj:Object=new Object();tempObj.employeeID=newArr[k].employeeID;//复制数组var cloneArr:Array=newArr.concat();var obj1:Object=new Object();//全部员工的薪水排名obj1=setDataRate("MonthWageTotal", "regPlaceRate", cloneArr, newArr[k].MonthWageTotal);tempObj.regPlaceRate=obj1.regPlaceRate;childrenArr.push(tempObj)}//执行绑定bidingRegplaceRate(childrenArr)}//各个分组解析完毕//最终设置好所有员工的全部数据表//调用页执行相关函数controlPage.fillADG(allEmployeeMonthWageRateArr)}private function bidingRegplaceRate(tempArr:Array):void{for (var j:int=0; j < allEmployeeMonthWageRateArr.length; j++){//取得对应的对象var oldObj:Object=allEmployeeMonthWageRateArr[j];for (var k:int=0; k < tempArr.length; k++){//传送过来的小组含有排名,绑定名次if (allEmployeeMonthWageRateArr[j].employeeID == tempArr[k].employeeID){oldObj.regPlaceRate=tempArr[k].regPlaceRate}}}}//-------------------- //查对对象比较并返回private function findIsDataInArrays(fieldName:String,input:String,compareArr:*):Number{for (var i:int=0; i < compareArr.length; i++){if (compareArr[i][fieldName]=== input){return i;}}return -1;}private function findDataInArraysOrder(fieldName:String,input:String,compareArr:*):Number{for (var i:int=0; i < compareArr.length; i++){if (compareArr[i][fieldName]=== input){return i;break;}}return -1;}//对指定数组进行多参数排名private function setDataRate(sortFieldName:String, objProperty:String, tempArr:Array, DataValue:String):Object{tempArr.sortOn(sortFieldName, Array.NUMERIC | Array.DESCENDING);var order:Number=0;var tempObj:Object=new Object();for (var k:int=0; k < tempArr.length; k++){if ((k == 0) && (tempArr[k][sortFieldName] == DataValue)){order=Number(k + 1);tempObj[objProperty]=order;break;}else if (k > 0){if ((tempArr[k][sortFieldName] == tempArr[k - 1][sortFieldName]) && (tempArr[k][sortFieldName] == DataValue)){order=order;tempObj[objProperty]=order;break;}else if ((tempArr[k][sortFieldName] == DataValue)){order=Number(k + 1);tempObj[objProperty]=order;break;}}}return tempObj;//---------------------------------}//--------------------------------------------------}}

热点排行