From ceffd28980299458c73bc11effabf073fa96fd51 Mon Sep 17 00:00:00 2001 From: chi Date: Wed, 18 Jun 2025 13:23:46 +0900 Subject: [PATCH] =?UTF-8?q?=EC=8B=9C=EA=B0=84%=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../FPJ0000/JobReport_/rJobReportUser.cs | 38 ++++++++++++++----- 1 file changed, 29 insertions(+), 9 deletions(-) diff --git a/SubProject/FPJ0000/JobReport_/rJobReportUser.cs b/SubProject/FPJ0000/JobReport_/rJobReportUser.cs index 5195ee2..11e03a4 100644 --- a/SubProject/FPJ0000/JobReport_/rJobReportUser.cs +++ b/SubProject/FPJ0000/JobReport_/rJobReportUser.cs @@ -107,6 +107,7 @@ namespace FPJ0000.JobReport_ var taCommon = new dsJobReportTableAdapters.CommonTableAdapter(); + this.fpSpread1.Sheets[0].ColumnCount = 12; //조회공정 this.fpSpread1.Sheets[0].Cells[3, 2].Value = tbProcess.Text; @@ -119,6 +120,14 @@ namespace FPJ0000.JobReport_ //종료일:G4 this.fpSpread1.Sheets[0].Cells[3, 6].Value = dte.Value; + + this.fpSpread1.Sheets[0].Cells[5, 11].BackColor = this.fpSpread1.Sheets[0].Cells[5, 10].BackColor; + this.fpSpread1.Sheets[0].Cells[5, 11].ForeColor = this.fpSpread1.Sheets[0].Cells[5, 10].ForeColor; + this.fpSpread1.Sheets[0].Cells[5, 11].Value = "총투입\n시간(%)"; + fpSpread1.Sheets[0].Columns[11].HorizontalAlignment = FarPoint.Win.Spread.CellHorizontalAlignment.Center; + fpSpread1.Sheets[0].Columns[11].VerticalAlignment = FarPoint.Win.Spread.CellVerticalAlignment.Center; + fpSpread1.Sheets[0].AddSpanCell(5, 11, 2, 1); + //근문일수,시간 var vSD = dts.Value.ToShortDateString(); var vED = dte.Value.ToShortDateString(); @@ -290,14 +299,14 @@ namespace FPJ0000.JobReport_ foreach (var prcitem in prclist) { this.progressBar2.Value += 1; - var item = baseData.Where(t => t.type.Replace(" ","") == prcitem.memo.Replace(" ","")); //해당 프로세스에 해당하는 아이템을 가져온다 + var item = baseData.Where(t => t.type.Replace(" ", "") == prcitem.memo.Replace(" ", "")); //해당 프로세스에 해당하는 아이템을 가져온다 //프로세스 이름 확인 if (prcitem.memo == null) prcitem.memo = string.Empty; var processName = prcitem.memo.Trim(); this.fpSpread1.Sheets[0].Cells[row, 1].Value = processName; - if(processName== "Documentation (문서작업)") + if (processName == "Documentation (문서작업)") { } @@ -324,7 +333,7 @@ namespace FPJ0000.JobReport_ if (colName != "*" && colName.isEmpty() == false) { //해당 이름에 해당하는 데이트 취합 - var timeList = item.Where(t => t.svalue.Replace(" ","") == colName.Replace(" ","")); + var timeList = item.Where(t => t.svalue.Replace(" ", "") == colName.Replace(" ", "")); if (timeList != null) { hrs = (double)timeList.Sum(t => t.hrs); @@ -349,7 +358,9 @@ namespace FPJ0000.JobReport_ else fpSpread1.Sheets[0].Cells[row, maxcol].Value = othervalue; } - sumOt = item.Sum(t => t.ot); + + + fpSpread1.Sheets[0].Cells[row, 7].CellType = numberCellType1; fpSpread1.Sheets[0].Cells[row, 7].ParseFormatString = "N1"; @@ -358,16 +369,25 @@ namespace FPJ0000.JobReport_ fpSpread1.Sheets[0].Cells[row, 7].Formula = string.Format("SUM(C{0}:G{0})+K{0}", row + 1); fpSpread1.Sheets[0].Cells[row, 8].Formula = string.Format("H{0}/$I$4", row + 1); - - if (sumOt == 0.0) fpSpread1.Sheets[0].Cells[row, 9].Value = null; //OT합계 - else fpSpread1.Sheets[0].Cells[row, 9].Value = sumOt; //OT합계 + + var tot_process_ot = item.Sum(t => t.ot); + var tot_process_hrs = item.Sum(t => t.hrs); + var tot_time = baseData.Sum(t => t.hrs) + baseData.Sum(t => t.ot); + if (tot_process_ot == 0.0) fpSpread1.Sheets[0].Cells[row, 9].Value = null; //OT합계 + else fpSpread1.Sheets[0].Cells[row, 9].Value = tot_process_ot; //OT합계 + + var perc = ((tot_process_ot + tot_process_hrs) / tot_time) * 100.0; //총투입시간(%) + if (perc == 0.0) fpSpread1.Sheets[0].Cells[row, 11].Value = null; + else fpSpread1.Sheets[0].Cells[row, 11].Value = Math.Round(perc, 2); + this.fpSpread1.Sheets[0].Cells[row, 11].Border = this.fpSpread1.Sheets[0].Cells[row, 3].Border; + // process 의 휴가시간을 다시 계산한다. - if(processName == "휴가") + if (processName == "휴가") { } - var 휴가데이터 = baseData.Where(t => t.process.Replace(" ","") == processName.Replace(" ","") && t.svalue.Replace(" ", "") == "휴가"); + var 휴가데이터 = baseData.Where(t => t.process.Replace(" ", "") == processName.Replace(" ", "") && t.svalue.Replace(" ", "") == "휴가"); if (휴가데이터 == null || 휴가데이터.Count() < 1) { fpSpread1.Sheets[0].Cells[row, 10].Value = null;// 0.0; //휴가시간