public void DoWorkCalThread(Action <int> percent) { mExcel = new Excel(ImportFileNameList, false); float proc = (float)0.0; for (int i = 2; i <= mExcel.RowCount; i++) { proc = (float)i / (float)mExcel.RowCount * (float)100; string excelStaffName = ""; excelStaffName = mExcel.GetCell(i, 2); excelStaffName.Trim(); if (mUiqueNameList.Contains(excelStaffName) || excelStaffName == "") { continue; } mUiqueNameList.Add(excelStaffName); percent((int)proc); } mExcel.Visible = true; mExcel.Close(); mExcel = new Excel(ImportFileOri, false); proc = (float)0.0; for (int i = 2; i <= mExcel.RowCount; i++) { StatisticsFileFormat off = new StatisticsFileFormat(); proc = (float)i / (float)mExcel.RowCount * (float)100; off.ProjectOrder = mExcel.GetCell(i, 1); off.ProjectID = mExcel.GetCell(i, 3); off.ProjectName = mExcel.GetCell(i, 4); off.ProjectManager = mExcel.GetCell(i, 5); off.ProjectStaffName = mExcel.GetCell(i, 6); off.ProjectDep = mExcel.GetCell(i, 7); off.ProjectDurationDays = mExcel.GetCell(i, 8); off.ProjectDate = mExcel.GetCell(i, 9); off.ProjectType = mExcel.GetCell(i, 10); percent((int)proc); mOriFileFormatList.Add(off); } mExcel.Visible = true; mExcel.Close(); GenerateTargetList(); MergeToFinalResult(); }
public void OutToExcel(StatisticsFileFormat tempsff, ref int curwriteline, Excel tExcel) { tExcel.SetCell(curwriteline, 1, tempsff.ProjectOrder); tExcel.SetCell(curwriteline, 2, tempsff.ProjectID); tExcel.SetCell(curwriteline, 3, tempsff.ProjectName); tExcel.SetCell(curwriteline, 4, tempsff.ProjectManager); for (int i = 0; i < tempsff.mStaffOverTimeInfoList.Count; i++) { tExcel.SetCell(curwriteline, 5, tempsff.mStaffOverTimeInfoList[i].ProjectStaffName); tExcel.SetCell(curwriteline, 6, tempsff.mStaffOverTimeInfoList[i].ProjectStaffDep); tExcel.SetCell(curwriteline, 7, tempsff.mStaffOverTimeInfoList[i].IntProjectDurationDays.ToString()); tExcel.SetCell(curwriteline, 9, tempsff.mStaffOverTimeInfoList[i].ProjectDate); tExcel.SetCell(curwriteline, 10, tempsff.mStaffOverTimeInfoList[i].IntProjectDurationDays.ToString()); tExcel.SetCell(curwriteline, 11, tempsff.mStaffOverTimeInfoList[i].ProjectType.ToString()); curwriteline++; } curwriteline++; }
public void GenerateTargetList() { StatisticsFileFormat temptar = new StatisticsFileFormat(); temptar.ProjectOrder = mOriFileFormatList[0].ProjectOrder; temptar.ProjectID = mOriFileFormatList[0].ProjectID; temptar.ProjectName = mOriFileFormatList[0].ProjectName; temptar.ProjectManager = mOriFileFormatList[0].ProjectManager; for (int i = 0; i < mOriFileFormatList.Count; i++) { StaffOverTimeInfo soti = new StaffOverTimeInfo(); soti.ProjectStaffName = mOriFileFormatList[i].ProjectStaffName; soti.ProjectStaffDep = mOriFileFormatList[i].ProjectDep; soti.ProjectDurationDays = mOriFileFormatList[i].ProjectDurationDays; soti.ProjectDate = mOriFileFormatList[i].ProjectDate; soti.ProjectQualifiedDays = mOriFileFormatList[i].ProjectQualifiedDays; soti.ProjectType = mOriFileFormatList[i].ProjectType; temptar.mStaffOverTimeInfoList.Add(soti); if ((i + 1) < mOriFileFormatList.Count) { if (mOriFileFormatList[i].ProjectID != mOriFileFormatList[i + 1].ProjectID || (mOriFileFormatList[i].ProjectID == mOriFileFormatList[i + 1].ProjectID && mOriFileFormatList[i].ProjectName != mOriFileFormatList[i + 1].ProjectName)) { mTargetFileFormatList.Add(temptar); temptar = new StatisticsFileFormat(); temptar.ProjectOrder = mOriFileFormatList[i + 1].ProjectOrder; temptar.ProjectID = mOriFileFormatList[i + 1].ProjectID; temptar.ProjectName = mOriFileFormatList[i + 1].ProjectName; temptar.ProjectManager = mOriFileFormatList[i + 1].ProjectManager; } } else { mTargetFileFormatList.Add(temptar);//if (mOriFileFormatList[i].ProjectID != mOriFileFormatList[i + 1].ProjectID || (mOriFileFormatList[i].ProjectID == mOriFileFormatList[i + 1].ProjectID && mOriFileFormatList[i].ProjectName != mOriFileFormatList[i + 1].ProjectName)) } } }
public StatisticsFileFormat GetMergedData(StatisticsFileFormat tempsff) { StatisticsFileFormat result = new StatisticsFileFormat(); result.ProjectOrder = tempsff.ProjectOrder; result.ProjectID = tempsff.ProjectID; result.ProjectName = tempsff.ProjectName; result.ProjectManager = tempsff.ProjectManager; bool flag = false; StaffOverTimeInfo stt = new StaffOverTimeInfo(); for (int i = 0; i < tempsff.mStaffOverTimeInfoList.Count; i++) { if ((i + 1) < tempsff.mStaffOverTimeInfoList.Count) { string curstaffname = tempsff.mStaffOverTimeInfoList[i].ProjectStaffName; string nextstaffname = tempsff.mStaffOverTimeInfoList[i + 1].ProjectStaffName; string curOTtype = GetProjectTpye(tempsff.mStaffOverTimeInfoList[i].ProjectDate); string nextOTtype = GetProjectTpye(tempsff.mStaffOverTimeInfoList[i + 1].ProjectDate); if (mUiqueNameList.Contains(curstaffname)) { //重名者 不合并 直接 添加 stt = new StaffOverTimeInfo(); stt.ProjectStaffName = tempsff.mStaffOverTimeInfoList[i].ProjectStaffName; stt.ProjectStaffDep = tempsff.mStaffOverTimeInfoList[i].ProjectStaffDep; stt.ProjectQualifiedDays = tempsff.mStaffOverTimeInfoList[i].ProjectDurationDays; stt.ProjectType = GetProjectTpye(tempsff.mStaffOverTimeInfoList[i].ProjectDate); stt.ProjectDate = tempsff.mStaffOverTimeInfoList[i].ProjectDate + GetOTdate(tempsff.mStaffOverTimeInfoList[i].ProjectDurationDays); stt.IntProjectDurationDays += GetProjectDurationDays(tempsff.mStaffOverTimeInfoList[i].ProjectDurationDays); stt.ProjectStaffName = stt.ProjectStaffName + "**重名的人**"; result.mStaffOverTimeInfoList.Add(stt); stt = new StaffOverTimeInfo(); stt.ProjectStaffName = tempsff.mStaffOverTimeInfoList[i + 1].ProjectStaffName; stt.ProjectStaffDep = tempsff.mStaffOverTimeInfoList[i + 1].ProjectStaffDep; stt.ProjectQualifiedDays = tempsff.mStaffOverTimeInfoList[i + 1].ProjectDurationDays; stt.ProjectType = GetProjectTpye(tempsff.mStaffOverTimeInfoList[i + 1].ProjectDate); stt.ProjectDate = tempsff.mStaffOverTimeInfoList[i + 1].ProjectDate + GetOTdate(tempsff.mStaffOverTimeInfoList[i + 1].ProjectDurationDays); stt.IntProjectDurationDays += GetProjectDurationDays(tempsff.mStaffOverTimeInfoList[i + 1].ProjectDurationDays); } else { if (curstaffname == nextstaffname && curOTtype == nextOTtype) { stt.IntProjectDurationDays += GetProjectDurationDays(tempsff.mStaffOverTimeInfoList[i + 1].ProjectDurationDays); string tempdate = GetOTDay(tempsff.mStaffOverTimeInfoList[i + 1].ProjectDate) + GetOTdate(tempsff.mStaffOverTimeInfoList[i + 1].ProjectDurationDays); stt.ProjectDate += "、" + tempdate; flag = true; continue; } else { if (flag == false) { stt.ProjectStaffName = tempsff.mStaffOverTimeInfoList[i].ProjectStaffName; stt.ProjectStaffDep = tempsff.mStaffOverTimeInfoList[i].ProjectStaffDep; stt.ProjectQualifiedDays = tempsff.mStaffOverTimeInfoList[i].ProjectDurationDays; stt.ProjectType = GetProjectTpye(tempsff.mStaffOverTimeInfoList[i].ProjectDate); stt.ProjectDate = tempsff.mStaffOverTimeInfoList[i].ProjectDate + GetOTdate(tempsff.mStaffOverTimeInfoList[i].ProjectDurationDays); stt.IntProjectDurationDays += GetProjectDurationDays(tempsff.mStaffOverTimeInfoList[i].ProjectDurationDays); } flag = true; result.mStaffOverTimeInfoList.Add(stt); stt = new StaffOverTimeInfo(); stt.ProjectStaffName = tempsff.mStaffOverTimeInfoList[i + 1].ProjectStaffName; stt.ProjectStaffDep = tempsff.mStaffOverTimeInfoList[i + 1].ProjectStaffDep; stt.ProjectQualifiedDays = tempsff.mStaffOverTimeInfoList[i + 1].ProjectDurationDays; stt.ProjectType = GetProjectTpye(tempsff.mStaffOverTimeInfoList[i + 1].ProjectDate); stt.ProjectDate = tempsff.mStaffOverTimeInfoList[i + 1].ProjectDate + GetOTdate(tempsff.mStaffOverTimeInfoList[i + 1].ProjectDurationDays); stt.IntProjectDurationDays += GetProjectDurationDays(tempsff.mStaffOverTimeInfoList[i + 1].ProjectDurationDays); continue; //不同的人; } } } else { //last staff; //stt.ProjectStaffName = tempsff.mStaffOverTimeInfoList[i].ProjectStaffName; //stt.ProjectStaffDep = tempsff.mStaffOverTimeInfoList[i].ProjectStaffDep; //stt.ProjectQualifiedDays = tempsff.mStaffOverTimeInfoList[i].ProjectDurationDays; //stt.ProjectType = GetProjectTpye(tempsff.mStaffOverTimeInfoList[i].ProjectDate); //stt.ProjectDate = tempsff.mStaffOverTimeInfoList[i].ProjectDate + GetOTdate(tempsff.mStaffOverTimeInfoList[i].ProjectDurationDays); //stt.IntProjectDurationDays += GetProjectDurationDays(tempsff.mStaffOverTimeInfoList[i].ProjectDurationDays); result.mStaffOverTimeInfoList.Add(stt); } } return(result); }