- 浏览: 80375 次
- 性别:
- 来自: 四川
最新评论
-
iceblue510808:
你好,能给我发下你写的这个吗?想学习下,谢谢了Adobe Bu ...
Flex图文混排 -
sxy09:
diding 写道xingfustar 写道哥们,够狠,可以共 ...
Flex图文混排 -
sxy09:
给份源码吧,学习研究下 419119915@qq.com
Flex图文混排之后期开发 -
zhangxiaopei:
哥,你还在吗?能发一份源码给我吗?谢谢,不甚感激邮箱:zhan ...
Flex图文混排之后期开发 -
zhangxiaopei:
兄弟能给源码给我吗?谢谢邮箱zhangoceansoft@12 ...
Flex图文混排
最近有一个项目,客户不仅要求报表同时呈现:
1.员工在整个公司的排名
2.员工在其子公司的排名
3.员工在其专业组别的排名
由于是从数据库单一读取数据,并不含有排名信息,所以,在Flex中,需要对数据进行多参数排名处理,为此,用到了此函数:
调用方法:
附工程运用图例:
图例核心代码:
1.员工在整个公司的排名
2.员工在其子公司的排名
3.员工在其专业组别的排名
由于是从数据库单一读取数据,并不含有排名信息,所以,在Flex中,需要对数据进行多参数排名处理,为此,用到了此函数:
//对指定数组进行多参数排名 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; //--------------------------------- }
调用方法:
for (var k:int=0; k < tempArr.length; k++) { var tempObj:Object=new Object(); //复制数组 var cloneArr:Array= tempArr.concat(); var obj1:Object =new Object(); obj1 = setDataRate("priceTotal","priceWeekRate",cloneArr,tempArr[k].priceTotal); tempObj.priceWeekRate = obj1.priceWeekRate; var obj2:Object =new Object(); obj2 = setDataRate("guestTotal","guestWeekRate",cloneArr,tempArr[k].guestTotal); tempObj.guestWeekRate = obj2.guestWeekRate; var obj3:Object =new Object(); obj3 = setDataRate("salaryTotal","salaryWeekRate",cloneArr,tempArr[k].salaryTotal); tempObj.salaryWeekRate = obj3.salaryWeekRate; var obj4:Object =new Object(); obj4 = setDataRate("chooseGuestTotal","chooseGuestWeekRate",cloneArr,tempArr[k].chooseGuestTotal); tempObj.chooseGuestWeekRate = obj4.chooseGuestWeekRate; var obj5:Object =new Object(); obj5 = setDataRate("countTotalMassage","massageWeekRate",cloneArr,tempArr[k].countTotalMassage); tempObj.massageWeekRate = obj5.massageWeekRate; //将对象压入数组 sendDataArr.push(tempObj); }
附工程运用图例:
图例核心代码:
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:Object var 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) : 0 obj.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) : 0 obj.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) : 0 obj.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:Object var 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:Object var 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:Object var 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) : 0 oldObj.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=0 for (var j:int=0; j < emloyeeHonorCashAco.length; j++) { if (employeeID == String(emloyeeHonorCashAco[j].employeeID)) { honorSalaryTotal=emloyeeHonorCashAco[j].salaryTotal break; } } 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=overDrawnPriceTotal return (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:Number if (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].employeeID tempObj.employeeName=tempArr[k].employeeName tempObj.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++) { //取得 Children var 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++) { //取得 Children var 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; //--------------------------------- } //-------------------------------------------------- } }
发表评论
-
Flex 4.5 – Using Mobile View Transitions
2011-05-18 16:45 2479收录的一篇文章: 原文地址:http://devgirl.or ... -
从数据库读取数据并在Tree上分组呈现
2011-04-06 23:34 2340最近有一项目,需要从mysql数据库读取数据,到Flex中呈现 ... -
Flex Air 周边整合之碎语
2011-03-05 20:13 2015手边近期有一个项目( ... -
SDK 4.5 (Hero)TextLayout 随记
2010-11-15 22:24 4106TextLayout前沿更新: http://sourcefo ... -
Flex4.5 Hero
2010-11-06 21:03 3032Flex4.5 已在10.24发布,今天终于静下来玩玩它了 下 ... -
Flex4 Declarations in ActionScript
2010-11-02 20:26 2999抽空整理Cairgorn3时,由于喜欢Code,而不喜欢Blo ... -
AS3公历转农历和农历转公历
2010-11-01 21:49 528今天例行整理硬盘中的文件时,看到收录一篇JAVA农历转公历的类 ... -
Flex DataGrid 内嵌AutoCompleteDataGrid
2010-10-27 23:26 1049这个东东是根据flashcommand的AutoComplet ... -
Flex DataGrid 内嵌ComboBox 再内嵌一个 DataGrid
2010-10-27 23:10 1487由于设计需要,曾要用到一个功能模块,但由于数据量的问题,最终p ... -
美发城的烫染护理系统和仓库管理软件
2010-10-27 23:06 1101这段时间,做了两个软件:美发城的烫染护理系统和仓库管理软件 P ... -
Flash Builder 4 的一个作品
2009-07-27 10:33 7887月17日放假,到现在完成了一个网站,记录一下 http:// ... -
AS3获取Jpg图像长宽
2009-03-28 12:32 2138一个老外的比较有用的类,自已整合到自已的utls包中: 1.用 ... -
Flex存bmp图像
2009-03-28 12:13 2167前言: 这阵子没事在研究buzzword,并试图还原前台,费 ... -
Flex图文混排之后期开发
2009-03-07 22:14 6738一:now SDK: flex_sdk_4.0.0.61 ... -
纯AS的RemoteAMF3
2009-03-03 23:35 1570[纯AS的RemoteAMF3] 目前支持:AMFPHP,C ... -
FxTextArea插入图片后,图片上方空隙的解决
2009-03-02 21:51 2387由于开发一个运行期间由用户来设置dg表,无意间打开Navica ... -
Flex Datagrid 行列增加和删除(支持右键)
2009-03-02 19:28 12012目前能实现的功能: 1.支持编辑表头; 2.删除添加自动更新序 ... -
Flex提交Datagrid数据存为xml
2009-03-01 14:38 3131Flex 代码区 MyDataDG为datagrid,执行提 ... -
采用AS开发Module
2009-03-01 13:34 12531.采用ModuleLoader /********** ... -
Flex图文混排
2009-03-01 13:26 7013这几天没事,学习Gumbo的FxTextArea,开发了一个F ...
相关推荐
针对flex中数组 Array 插入 和 删除
NetApp FlexArray虚拟化软件介绍.pdf
NetApp FlexArray存储虚拟化软件介绍.pdf
flex array 的一些操作,希望可以有帮助
flex接收网页参数,flex与js交互,flex调用js,js调用flex
NetApp FlexArray快速参考指南.pdf
FlexArray虚拟化存储软件白皮书.pdf
NetApp FlexArray虚拟化软件技术白皮书.pdf
NetApp FlexArray存储虚拟化平台介绍.pptx
key 要搜索的object的键值 value 要搜索的object的value值 fromIndex从第几行开始搜索 sourceArray 要进行搜索的array
Flex的Array和ArrayCollection
Number of bytes left in base struct flex_array, excluding metadata.
flex builder 编译器参数 就是点工程属性里的option里填的
按发送发发发安抚fssssssssssssssssssssssssssssssssssssssffffffffffffffffffffffffffffffffffffffffffffffff
NULL 博文链接:https://piaoyun29.iteye.com/blog/432187
flex获得html容器传递的url参数值
新建MXML应用, 将文档中的代码全部复制到新建的MXML中( 替换所有内容)。 文档中的注释说明了具体使用方法。
flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图...