시간%추가

This commit is contained in:
chi
2025-06-18 13:23:46 +09:00
parent a1477fcdd1
commit ceffd28980

View File

@@ -107,6 +107,7 @@ namespace FPJ0000.JobReport_
var taCommon = new dsJobReportTableAdapters.CommonTableAdapter(); var taCommon = new dsJobReportTableAdapters.CommonTableAdapter();
this.fpSpread1.Sheets[0].ColumnCount = 12;
//조회공정 //조회공정
this.fpSpread1.Sheets[0].Cells[3, 2].Value = tbProcess.Text; this.fpSpread1.Sheets[0].Cells[3, 2].Value = tbProcess.Text;
@@ -119,6 +120,14 @@ namespace FPJ0000.JobReport_
//종료일:G4 //종료일:G4
this.fpSpread1.Sheets[0].Cells[3, 6].Value = dte.Value; 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 vSD = dts.Value.ToShortDateString();
var vED = dte.Value.ToShortDateString(); var vED = dte.Value.ToShortDateString();
@@ -290,14 +299,14 @@ namespace FPJ0000.JobReport_
foreach (var prcitem in prclist) foreach (var prcitem in prclist)
{ {
this.progressBar2.Value += 1; 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; if (prcitem.memo == null) prcitem.memo = string.Empty;
var processName = prcitem.memo.Trim(); var processName = prcitem.memo.Trim();
this.fpSpread1.Sheets[0].Cells[row, 1].Value = processName; 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) 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) if (timeList != null)
{ {
hrs = (double)timeList.Sum(t => t.hrs); hrs = (double)timeList.Sum(t => t.hrs);
@@ -349,7 +358,9 @@ namespace FPJ0000.JobReport_
else fpSpread1.Sheets[0].Cells[row, maxcol].Value = othervalue; 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].CellType = numberCellType1;
fpSpread1.Sheets[0].Cells[row, 7].ParseFormatString = "N1"; fpSpread1.Sheets[0].Cells[row, 7].ParseFormatString = "N1";
@@ -359,15 +370,24 @@ 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, 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); 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합계 var tot_process_ot = item.Sum(t => t.ot);
else fpSpread1.Sheets[0].Cells[row, 9].Value = sumOt; //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 의 휴가시간을 다시 계산한다. // 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) if ( == null || .Count() < 1)
{ {
fpSpread1.Sheets[0].Cells[row, 10].Value = null;// 0.0; //휴가시간 fpSpread1.Sheets[0].Cells[row, 10].Value = null;// 0.0; //휴가시간