439 lines
		
	
	
		
			20 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			439 lines
		
	
	
		
			20 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using System;
 | |
| using System.Collections.Generic;
 | |
| using System.ComponentModel;
 | |
| using System.Data;
 | |
| using System.Drawing;
 | |
| using System.Linq;
 | |
| using System.Text;
 | |
| using System.Threading.Tasks;
 | |
| using System.Windows.Forms;
 | |
| 
 | |
| namespace FPJ0000.EBoard
 | |
| {
 | |
|     public partial class fEBoardReport : Form
 | |
|     {
 | |
|         public fEBoardReport()
 | |
|         {
 | |
|             InitializeComponent();
 | |
|         }
 | |
| 
 | |
|         private void fEBoardReport_Load(object sender, EventArgs e)
 | |
|         {
 | |
|             //기본엑셀파일을 가져온다
 | |
|             this.Show();
 | |
|             Application.DoEvents();
 | |
| 
 | |
|             //파일불러오기
 | |
|             //LoadExcel();
 | |
|             this.fpSpread1.ActiveSheet.RowCount = 0;
 | |
|             //this.rv1.RefreshReport();
 | |
|         }
 | |
| 
 | |
|         string Loadexcel = string.Empty;
 | |
| 
 | |
|         void LoadExcel()
 | |
|         {
 | |
|             //파일불러오기
 | |
|             if (radioButton1.Checked)
 | |
|             {
 | |
|                 var fi = new System.IO.FileInfo(FCOMMON.Util.CurrentPath + "EBoardReport.xlsx");
 | |
|                 if (this.Loadexcel != fi.FullName)
 | |
|                 {
 | |
|                     this.fpSpread1.OpenExcel(fi.FullName);
 | |
|                     this.Loadexcel = fi.FullName;
 | |
|                 }
 | |
| 
 | |
|             }
 | |
|             else
 | |
|             {
 | |
|                 var fi = new System.IO.FileInfo(FCOMMON.Util.CurrentPath + "EBoardReportCapa.xlsx");
 | |
|                 if (this.Loadexcel != fi.FullName)
 | |
|                 {
 | |
|                     this.fpSpread1.OpenExcel(fi.FullName);
 | |
|                     this.Loadexcel = fi.FullName;
 | |
|                 }
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         private void btRefresh_Click(object sender, EventArgs e)
 | |
|         {
 | |
|             RefreshData();
 | |
|         }
 | |
|         void RefreshData()
 | |
|         {
 | |
| 
 | |
| 
 | |
|             LoadExcel();
 | |
| 
 | |
|             if (radioButton1.Checked) Refresh1();
 | |
|             else Refresh2();
 | |
| 
 | |
| 
 | |
|             this.fpSpread1.Invalidate();
 | |
|         }
 | |
| 
 | |
|         void Refresh1()
 | |
|         {
 | |
| 
 | |
|             //var sql = "select * from eetgw_jobreport_eboard where gcode=@gcode and pdate between @sd and @ed";
 | |
|             //var cmd = new System.Data.SqlClient.SqlCommand(sql, this.ta.Connection);
 | |
|             //cmd.Parameters.Add("gcode", SqlDbType.VarChar).Value = FCOMMON.info.Login.gcode;
 | |
|             //cmd.Parameters.Add("sd", SqlDbType.VarChar).Value = dts.Value.ToShortDateString();
 | |
|             //cmd.Parameters.Add("ed", SqlDbType.VarChar).Value = dte.Value.ToShortDateString();
 | |
|             //var da = new System.Data.SqlClient.SqlDataAdapter(cmd);
 | |
|             //ds1.EETGW_JobReport_EBoard.Clear();
 | |
|             //da.Fill(this.ds1.EETGW_JobReport_EBoard);
 | |
|             //ds1.EETGW_JobReport_EBoard.AcceptChanges();
 | |
|             //this.rv1.RefreshReport();
 | |
| 
 | |
|             //새로고침
 | |
|             //a2 에 날짜를 표시함.
 | |
|             var db = new EEEntities();
 | |
|             var sd = this.dts.Value.ToShortDateString();
 | |
|             var ed = this.dte.Value.ToShortDateString();
 | |
| 
 | |
|             var 분류목록 = db.EETGW_JobReport_EBoard.Where(t => string.IsNullOrEmpty(t.분류) == false).OrderBy(t => t.분류).GroupBy(t => t.분류).ToList();
 | |
|             IQueryable<EETGW_JobReport_EBoard> 기간자료;
 | |
|             if (radPdate.Checked)
 | |
|                 기간자료 = db.EETGW_JobReport_EBoard.Where(t => t.pdate.CompareTo(sd) >= 0 && t.pdate.CompareTo(ed) <= 0);
 | |
|             else
 | |
|                 기간자료 = db.EETGW_JobReport_EBoard.Where(t => t.수리완료일.CompareTo(sd) >= 0 && t.수리완료일.CompareTo(ed) <= 0);
 | |
| 
 | |
|              db = new EEEntities();
 | |
|             var 담당목록raw = db.vGroupUser.AsNoTracking().Where(t => t.gcode == FCOMMON.info.Login.gcode && t.processs == "전자실" && string.IsNullOrEmpty(t.state) == true).ToList();
 | |
|             var 담당목록 = 담당목록raw.GroupBy(t => t.name).ToList();
 | |
| 
 | |
| 
 | |
|             var row = 1;
 | |
|             var col = 1;
 | |
|             var col0 = 1;
 | |
|             foreach (var item in 분류목록)
 | |
|             {
 | |
|                 var dr = item.FirstOrDefault();
 | |
|                 var cell = this.fpSpread1.Sheets[0].Cells[row, col + 0];
 | |
|                 cell.Value = dr.분류;
 | |
|                 cell.ColumnSpan = 2;
 | |
|                 cell.BackColor = Color.SkyBlue;
 | |
|                 cell.HorizontalAlignment = FarPoint.Win.Spread.CellHorizontalAlignment.Center;
 | |
|                 cell.VerticalAlignment = FarPoint.Win.Spread.CellVerticalAlignment.Center;
 | |
| 
 | |
|                 cell = this.fpSpread1.Sheets[0].Cells[row + 1, col + 0];
 | |
|                 cell.Value = "건";
 | |
|                 cell.BackColor = Color.Khaki;
 | |
|                 cell.HorizontalAlignment = FarPoint.Win.Spread.CellHorizontalAlignment.Center;
 | |
|                 cell.VerticalAlignment = FarPoint.Win.Spread.CellVerticalAlignment.Center;
 | |
| 
 | |
|                 cell = this.fpSpread1.Sheets[0].Cells[row + 1, col + 1];
 | |
|                 cell.Value = "시간";
 | |
|                 cell.BackColor = Color.Khaki;
 | |
|                 cell.HorizontalAlignment = FarPoint.Win.Spread.CellHorizontalAlignment.Center;
 | |
|                 cell.VerticalAlignment = FarPoint.Win.Spread.CellVerticalAlignment.Center;
 | |
| 
 | |
|                 col += 2;
 | |
|                 col0 += 1;
 | |
|             }
 | |
| 
 | |
|             //마지막 열에는 비용절감항목을 추가한다.
 | |
|             fpSpread1.Sheets[0].Cells[1, col].Value = "비용절감";
 | |
|             fpSpread1.Sheets[0].Cells[1, col].BackColor = Color.WhiteSmoke;
 | |
|             fpSpread1.Sheets[0].Cells[1, col].RowSpan = 2;
 | |
|             fpSpread1.Sheets[0].Cells[1, col].VerticalAlignment = FarPoint.Win.Spread.CellVerticalAlignment.Center;
 | |
|             fpSpread1.Sheets[0].Cells[1, col].HorizontalAlignment = FarPoint.Win.Spread.CellHorizontalAlignment.Center;
 | |
| 
 | |
|             var MaxCol = col0;
 | |
|             col = 0;
 | |
|             row = 3;
 | |
|             foreach (var item in 담당목록)
 | |
|             {
 | |
|                 
 | |
|                 //var dr = item.KeY;
 | |
|                 this.fpSpread1.Sheets[0].Cells[row, col].Value = item.Key;
 | |
| 
 | |
|                 
 | |
| 
 | |
|                 var fistdr = item.FirstOrDefault();
 | |
|                 //var userdr = db.Users.Where(t => t.id == fistdr.id).FirstOrDefault();
 | |
|                 if (fistdr.outdate.isEmpty() ==false && fistdr.outdate.CompareTo(sd) <= 0)
 | |
|                 {
 | |
|                     //퇴사자 처리
 | |
|                     continue;
 | |
|                 }
 | |
|                 //if (item.Key == "이상호") continue;
 | |
| 
 | |
|                 //이 담당자의 횟수를 읽어온다
 | |
|                 for (int i = 1; i < MaxCol; i++)
 | |
|                 {
 | |
|                     var 분류명 = fpSpread1.Sheets[0].Cells[1, 1 + (i - 1) * 2].Value.ToString();
 | |
|                     var 분류데이터 = 기간자료.Where(t => t.uid.Contains(item.Key) && t.분류 == 분류명);
 | |
|                     var 건수 = 분류데이터.Sum(t => t.QTY);
 | |
|                     var 시간 = 분류데이터.Sum(t => t.RepairTime);
 | |
|                     this.fpSpread1.Sheets[0].Cells[row, (i - 1) * 2 + 1].Value = 건수;
 | |
|                     this.fpSpread1.Sheets[0].Cells[row, (i - 1) * 2 + 2].Value = 시간;
 | |
|                     this.fpSpread1.Sheets[0].Cells[row, (i - 1) * 2 + 2].HorizontalAlignment = FarPoint.Win.Spread.CellHorizontalAlignment.Center;
 | |
|                     this.fpSpread1.Sheets[0].Cells[row, (i - 1) * 2 + 2].VerticalAlignment = FarPoint.Win.Spread.CellVerticalAlignment.Center;
 | |
| 
 | |
|                     this.fpSpread1.Sheets[0].Cells[row, (i - 1) * 2 + 1].Column.Width = 50;
 | |
|                     this.fpSpread1.Sheets[0].Cells[row, (i - 1) * 2 + 2].Column.Width = 70;
 | |
|                 }
 | |
| 
 | |
|                 //이 담당자의 수리완료건의 비용절감비용을 가져온다
 | |
|                 var 절감비용 = 기간자료.Where(t => t.uid.Contains(item.Key) && t.분류 == "수리완료" && string.IsNullOrEmpty(t.수리완료일) == false && string.IsNullOrEmpty(t.외주업체) == true).Sum(t => t.CostReduction);
 | |
|                 this.fpSpread1.Sheets[0].Cells[row, (MaxCol) * 2 - 1].Value = 절감비용;
 | |
|                 this.fpSpread1.Sheets[0].Cells[row, (MaxCol) * 2 - 1].BackColor = Color.WhiteSmoke;
 | |
|                 this.fpSpread1.Sheets[0].Cells[row, (MaxCol) * 2 - 1].VerticalAlignment = FarPoint.Win.Spread.CellVerticalAlignment.Center;
 | |
|                 this.fpSpread1.Sheets[0].Cells[row, (MaxCol) * 2 - 1].HorizontalAlignment = FarPoint.Win.Spread.CellHorizontalAlignment.Center;
 | |
|                 row += 1;
 | |
|             }
 | |
| 
 | |
|             this.fpSpread1.Sheets[0].Cells[row, 0].Value = "합계";
 | |
| 
 | |
| 
 | |
|             for (int i = 1; i < MaxCol; i++)
 | |
|             {
 | |
|                 var colIdx = (i - 1) * 2;
 | |
|                 var c1 = (char)(65 + colIdx + 1);
 | |
|                 var c2 = (char)(65 + colIdx + 2);
 | |
|                 this.fpSpread1.Sheets[0].Cells[row, colIdx + 1].Formula = $"SUM({c1}4:{c1}" + row.ToString() + ")";
 | |
|                 this.fpSpread1.Sheets[0].Cells[row, colIdx + 2].Formula = $"SUM({c2}4:{c2}" + row.ToString() + ")";
 | |
|             }
 | |
|             var c3 = (char)(65 + MaxCol * 2 - 1);
 | |
|             this.fpSpread1.Sheets[0].Cells[row, (MaxCol) * 2 - 1].Formula = $"SUM({c3}4:{c3}" + row.ToString() + ")";
 | |
|             this.fpSpread1.Sheets[0].Cells["A1"].Value = "Performance";
 | |
|             this.fpSpread1.Sheets[0].Cells["A1"].ColumnSpan = MaxCol * 2;
 | |
|             this.fpSpread1.Sheets[0].Cells["A2"].Value = "성명";
 | |
|             this.fpSpread1.Sheets[0].Cells["A2"].RowSpan = 2;
 | |
| 
 | |
|             this.fpSpread1.Sheets[0].Cells[$"A2:A{row}"].BackColor = Color.WhiteSmoke;
 | |
| 
 | |
|             //합계필드 색상변경
 | |
|             this.fpSpread1.Sheets[0].Cells[$"A{row + 1}:{c3}{row + 1}"].BackColor = Color.WhiteSmoke;
 | |
|             //this.fpSpread1.Sheets[0].Cells[$"A{row + 1}:{c3}{row + 1}"].Border =
 | |
|             //    new FarPoint.Win.ComplexBorder(
 | |
|             //        new FarPoint.Win.ComplexBorderSide(FarPoint.Win.ComplexBorderSideStyle.MediumLine)); 
 | |
|             var 비용절감줄 = (char)( 65 + ((MaxCol) * 2 - 1));// "T";
 | |
| 
 | |
|             //차트데이터
 | |
|             var chart1 = this.fpSpread1.ActiveSheet.Charts[0];
 | |
|             chart1.Model.LabelAreas[0].Text = "Technical Support Q'ty & Cost Save(Kwon)";   //상단차트제목
 | |
| 
 | |
|             var ser1 = chart1.Model.PlotAreas[0].Series[0] as FarPoint.Win.Chart.ClusteredBarSeries;
 | |
|             var ser1_df = ser1.Series[0].Values.DataSource as FarPoint.Win.Spread.Chart.SeriesDataField;
 | |
|             var ser1_cn = ser1.Series[0].CategoryNames.DataSource as FarPoint.Win.Spread.Chart.SeriesDataField;
 | |
|             ser1_df.Formula = $"Performance!${비용절감줄}$4:${비용절감줄}${row}";
 | |
|             ser1_cn.Formula = $"Performance!$A$4:$A${row}";
 | |
| 
 | |
|             var ser2 = chart1.Model.PlotAreas[0].Series[1] as FarPoint.Win.Chart.LineSeries;
 | |
|             var ser2_df = ser2.Values.DataSource as FarPoint.Win.Spread.Chart.SeriesDataField;
 | |
|             var ser2_cn = ser2.CategoryNames.DataSource as FarPoint.Win.Spread.Chart.SeriesDataField;
 | |
|             ser2_df.Formula = $"Performance!$D$4:$D${row}";
 | |
|             ser2_cn.Formula = $"Performance!$A$4:$A${row}";
 | |
| 
 | |
|             var chart2 = this.fpSpread1.ActiveSheet.Charts[1]; //qty
 | |
|             var ser21 = chart2.Model.PlotAreas[0].Series[0] as FarPoint.Win.Chart.PieSeries;
 | |
|             var ser21_df = ser21.Values.DataSource as FarPoint.Win.Spread.Chart.SeriesDataField;
 | |
|             var ser21_cn = ser21.CategoryNames.DataSource as FarPoint.Win.Spread.Chart.SeriesDataField;
 | |
|             ser21_df.Formula = $"Performance!$D$4:$D${row}";
 | |
|             ser21_cn.Formula = $"Performance!$A$4:$A${row}";
 | |
| 
 | |
|             var chart3 = this.fpSpread1.ActiveSheet.Charts[2]; //cost
 | |
|             var ser31 = chart3.Model.PlotAreas[0].Series[0] as FarPoint.Win.Chart.PieSeries;
 | |
|             var ser31_df = ser31.Values.DataSource as FarPoint.Win.Spread.Chart.SeriesDataField;
 | |
|             var ser31_cn = ser31.CategoryNames.DataSource as FarPoint.Win.Spread.Chart.SeriesDataField;
 | |
|             ser31_df.Formula = $"Performance!${비용절감줄}$4:${비용절감줄}${row}";
 | |
|             ser31_cn.Formula = $"Performance!$A$4:$A${row}";
 | |
|         }
 | |
|         void Refresh2()
 | |
|         {
 | |
|             //Process / Equipment / BordName 으로 그룹핑
 | |
|             //a2 에 날짜를 표시함.
 | |
| 
 | |
|             this.progressBar2.Value = 0;
 | |
| 
 | |
|             var db = new EEEntities();
 | |
|             var sd = this.dts.Value.ToShortDateString();
 | |
|             var ed = this.dte.Value.ToShortDateString();
 | |
| 
 | |
|             var fi = new System.IO.FileInfo(FCOMMON.Util.CurrentPath + "EBoardReportCapa.xlsx");
 | |
|             this.fpSpread1.OpenExcel(fi.FullName);
 | |
|             this.Loadexcel = fi.FullName;
 | |
| 
 | |
| 
 | |
| 
 | |
|             IQueryable<EETGW_JobReport_EBoard> 기간자료;
 | |
|             if (radPdate.Checked)
 | |
|                 기간자료 = db.EETGW_JobReport_EBoard.Where(t => t.gcode == FCOMMON.info.Login.gcode && t.pdate.CompareTo(sd) >= 0 && t.pdate.CompareTo(ed) <= 0);
 | |
|             else
 | |
|                 기간자료 = db.EETGW_JobReport_EBoard.Where(t => t.gcode == FCOMMON.info.Login.gcode && t.수리완료일.CompareTo(sd) >= 0 && t.수리완료일.CompareTo(ed) <= 0);
 | |
| 
 | |
|             var Grp_process = 기간자료.GroupBy(t => t.Process);
 | |
| 
 | |
|             this.fpSpread1.Sheets[0].ColumnCount = 5;
 | |
|             var row = 3;
 | |
| 
 | |
|             this.progressBar2.Maximum = Grp_process.Count();
 | |
|             foreach (var item in Grp_process)
 | |
|             {
 | |
|                 this.progressBar2.Value += 1;
 | |
| 
 | |
|                 //포맷초기화
 | |
|                 //var rangec = this.fpSpread1.Sheets[0].Cells[$"A{row}:D{row}"];
 | |
|                 //rangec.BackColor = Color.White;
 | |
|                 //rangec.RowSpan = 1;
 | |
|                 //rangec.ColumnSpan = 1;
 | |
|                 //rangec.HorizontalAlignment = FarPoint.Win.Spread.CellHorizontalAlignment.Center;
 | |
|                 //rangec.VerticalAlignment = FarPoint.Win.Spread.CellVerticalAlignment.Center;
 | |
| 
 | |
|                 var dr = item.FirstOrDefault();
 | |
|                 var cell = this.fpSpread1.Sheets[0].Cells[$"A{row}"];
 | |
|                 cell.Value = dr.Process;
 | |
|                 //cell.BackColor = Color.Lime;
 | |
| 
 | |
|                 var row_grp = row;
 | |
| 
 | |
|                 //이것아래의 모델그룹을 찾는다.
 | |
|                 var grp_model = item.GroupBy(t => t.Model);
 | |
|                 var cntg1 = 0;
 | |
|                 foreach (var itemModel in grp_model)
 | |
|                 {
 | |
|                     var drModel = itemModel.FirstOrDefault();
 | |
|                     var cellModel = this.fpSpread1.Sheets[0].Cells[$"B{row}"];
 | |
|                     cellModel.Value = drModel.Model;
 | |
|                     cellModel.BackColor = Color.White;
 | |
| 
 | |
|                     var row_mod = row;
 | |
| 
 | |
|                     if (cntg1 > 0)
 | |
|                     {
 | |
|                         this.fpSpread1.Sheets[0].Cells[$"A{row}"].Value = string.Empty;
 | |
|                     }
 | |
| 
 | |
|                     //이것아래의 보드를 찾는다.
 | |
|                     var grp_brd = itemModel.GroupBy(t => t.BoardName);
 | |
|                     var cntg2 = 0;
 | |
|                     foreach (var itemBrd in grp_brd)
 | |
|                     {
 | |
|                         var drBrd = itemBrd.FirstOrDefault();
 | |
|                         var cellBrd = this.fpSpread1.Sheets[0].Cells[$"C{row}"];
 | |
|                         cellBrd.Value = drBrd.BoardName;
 | |
|                         cellBrd.BackColor = Color.White;
 | |
| 
 | |
|                         if (cntg2 > 0)
 | |
|                         {
 | |
|                             this.fpSpread1.Sheets[0].Cells[$"A{row}"].Value = string.Empty;
 | |
|                             this.fpSpread1.Sheets[0].Cells[$"B{row}"].Value = string.Empty;
 | |
|                         }
 | |
| 
 | |
|                         //합계수량
 | |
|                         var sumQty = itemBrd.Sum(t => t.QTY);
 | |
|                         var sumAmt = itemBrd.Sum(t => t.CostReduction);
 | |
| 
 | |
|                         var cellQty = this.fpSpread1.Sheets[0].Cells[$"D{row}"];
 | |
|                         var cellAmt = this.fpSpread1.Sheets[0].Cells[$"E{row}"];
 | |
|                         cellQty.Value = sumQty;
 | |
|                         cellAmt.Value = sumAmt;
 | |
| 
 | |
|                         cntg2 += 1;
 | |
|                         cntg1 += 1;
 | |
|                         if (grp_brd.Count() > 1)
 | |
|                             row += 1;
 | |
|                     }
 | |
| 
 | |
|                     //소계를 추가한다.
 | |
|                     if (cntg2 > 1)
 | |
|                     {
 | |
|                         this.fpSpread1.Sheets[0].Cells[$"A{row}"].Value = string.Empty;
 | |
|                         this.fpSpread1.Sheets[0].Cells[$"B{row}"].Value = string.Empty;
 | |
|                         this.fpSpread1.Sheets[0].Cells[$"C{row}"].Value = $"({drModel.Model}) Sub Total";
 | |
|                         this.fpSpread1.Sheets[0].Cells[$"C{row}"].HorizontalAlignment = FarPoint.Win.Spread.CellHorizontalAlignment.Left;
 | |
| 
 | |
| 
 | |
|                         this.fpSpread1.Sheets[0].Cells[$"D{row}"].Value = itemModel.Sum(t => t.QTY);
 | |
|                         this.fpSpread1.Sheets[0].Cells[$"E{row}"].Value = itemModel.Sum(t => t.CostReduction);
 | |
|                         this.fpSpread1.Sheets[0].Cells[$"C{row}:E{row}"].BackColor = Color.FromArgb(200, 200, 200);
 | |
|                         this.fpSpread1.Sheets[0].Cells[$"B{row_mod}"].RowSpan = row - row_mod + 1;
 | |
|                     }
 | |
| 
 | |
| 
 | |
|                     //cntg1 += cntg2;
 | |
|                     if ((grp_model.Count() + grp_brd.Count()) > 2)
 | |
|                         row += 1;
 | |
|                 }
 | |
| 
 | |
|                 if (cntg1 > 1)
 | |
|                 {
 | |
|                     this.fpSpread1.Sheets[0].Cells[$"A{row}"].Value = string.Empty;
 | |
|                     this.fpSpread1.Sheets[0].Cells[$"B{row}"].Value = $"({dr.Process}) Sub Total";
 | |
|                     this.fpSpread1.Sheets[0].Cells[$"B{row}"].HorizontalAlignment = FarPoint.Win.Spread.CellHorizontalAlignment.Left;
 | |
|                     this.fpSpread1.Sheets[0].Cells[$"B{row}"].ColumnSpan = 2;
 | |
|                     //this.fpSpread1.Sheets[0].Cells[$"C{row}"].Value = string.Empty;// item.Count();
 | |
|                     this.fpSpread1.Sheets[0].Cells[$"D{row}"].Value = item.Sum(t => t.QTY);
 | |
|                     this.fpSpread1.Sheets[0].Cells[$"E{row}"].Value = item.Sum(t => t.CostReduction);
 | |
|                     this.fpSpread1.Sheets[0].Cells[$"B{row}:E{row}"].BackColor = Color.FromArgb(150, 150, 150);
 | |
|                     this.fpSpread1.Sheets[0].Cells[$"A{row_grp}"].RowSpan = row - row_grp + 1;
 | |
|                 }
 | |
| 
 | |
|                 row += 1;
 | |
|             }
 | |
|             this.fpSpread1.Sheets[0].Cells[$"A{row}"].Value = "Total";
 | |
|             this.fpSpread1.Sheets[0].Cells[$"B{row}"].Value = string.Empty;// $"({dr.Process})-{cntg1}";            
 | |
|             this.fpSpread1.Sheets[0].Cells[$"C{row}"].Value = string.Empty;// item.Count();
 | |
|             this.fpSpread1.Sheets[0].Cells[$"D{row}"].Value = 기간자료.Sum(t => t.QTY);
 | |
|             this.fpSpread1.Sheets[0].Cells[$"E{row}"].Value = 기간자료.Sum(t => t.CostReduction);
 | |
| 
 | |
|             this.fpSpread1.Sheets[0].Cells[$"A{row}:E{row}"].BackColor = Color.SkyBlue;
 | |
| 
 | |
|             this.fpSpread1.Sheets[0].RowCount = row;
 | |
|             this.progressBar2.Value = this.progressBar2.Maximum;
 | |
|         }
 | |
| 
 | |
| 
 | |
| 
 | |
|         private void btSave_Click(object sender, EventArgs e)
 | |
|         {
 | |
|             //파일저장
 | |
|             var sd = new SaveFileDialog();
 | |
|             sd.Filter = "excel|*.xls";
 | |
|             if (sd.ShowDialog() == DialogResult.OK)
 | |
|             {
 | |
|                 this.fpSpread1.SaveExcel(sd.FileName);
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         private void panel1_MouseDoubleClick(object sender, MouseEventArgs e)
 | |
|         {
 | |
|             LoadExcel();
 | |
|         }
 | |
| 
 | |
|         private void button3_Click(object sender, EventArgs e)
 | |
|         {
 | |
|             var bt = sender as Button;
 | |
|             if (bt.Text == "년")
 | |
|             {
 | |
|                 dts.Value = new DateTime(DateTime.Now.Year, 1, 1);
 | |
|                 dte.Value = new DateTime(DateTime.Now.Year, 12, 31);
 | |
|             }
 | |
|             if (bt.Text == "월")
 | |
|             {
 | |
|                 dts.Value = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1);
 | |
|                 dte.Value = dts.Value.AddMonths(1).AddDays(-1);
 | |
|             }
 | |
|             if (bt.Text == "주")
 | |
|             {
 | |
|                 dts.Value = DateTime.Now.AddDays(-(int)DateTime.Now.DayOfWeek);
 | |
|                 dte.Value = DateTime.Now.AddDays(6 - (int)DateTime.Now.DayOfWeek);
 | |
|             }
 | |
|             if (bt.Text == "일")
 | |
|             {
 | |
|                 dts.Value = DateTime.Now;
 | |
|                 dte.Value = DateTime.Now;
 | |
|             }
 | |
|             RefreshData();
 | |
|         }
 | |
| 
 | |
|         private void panel1_Paint(object sender, PaintEventArgs e)
 | |
|         {
 | |
| 
 | |
|         }
 | |
|     }
 | |
| }
 | 
