휴가이력현황 report -> spread.net
This commit is contained in:
@@ -1,5 +1,8 @@
|
||||
using FarPoint.Excel;
|
||||
using FarPoint.Excel.EntityClassLibrary.DrawingVML;
|
||||
using FarPoint.Win.Spread;
|
||||
using FarPoint.Win.Spread.CellType.BarCode;
|
||||
using NetOffice.Extensions.Invoker;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
@@ -37,7 +40,7 @@ namespace FBS0000
|
||||
this.tbMon.Text = DateTime.Now.ToShortDateString();
|
||||
|
||||
refrehData();
|
||||
this.reportViewer1.RefreshReport();
|
||||
// this.reportViewer1.RefreshReport();
|
||||
}
|
||||
|
||||
void refrehData()
|
||||
@@ -48,12 +51,31 @@ namespace FBS0000
|
||||
|
||||
//데이터를 재 집계한다.
|
||||
this.dsReport.holydatasum.Clear();
|
||||
var grp_user = dsReport.holydata.GroupBy(t => t.uid);
|
||||
|
||||
//1월1일년차데이터는 이월로 변경한다..
|
||||
//var 이월데이터 = dsReport.holydata.Where(t => t.cate.StartsWith("이월") == false && t.cate.Contains("이월")).ToList();
|
||||
//foreach (var dr in 이월데이터)
|
||||
//{
|
||||
// var basecate = dr.cate.Split('-')[0].Trim();
|
||||
// dr.cate = basecate;
|
||||
// dr.iwol = true;
|
||||
|
||||
//}
|
||||
|
||||
|
||||
var grp_user = dsReport.holydata.GroupBy(t => t.uid).ToList();
|
||||
var sum_drday = 0.0;
|
||||
var sum_crday = 0.0;
|
||||
var sum_addday = 0.0;
|
||||
var sum_janday = 0.0;
|
||||
var sum_iwol = 0.0;
|
||||
|
||||
|
||||
foreach (var grp in grp_user)
|
||||
{
|
||||
//cate group
|
||||
var first_user = grp.First();
|
||||
var grp_cate = grp.GroupBy(t => t.cate);
|
||||
var grp_cate = grp.GroupBy(t => t.cate).ToList();
|
||||
foreach (var cate in grp_cate)
|
||||
{
|
||||
var newdr = this.dsReport.holydatasum.NewholydatasumRow();
|
||||
@@ -62,179 +84,281 @@ namespace FBS0000
|
||||
newdr.uname = first_user.name;
|
||||
newdr.process = first_user.Process;
|
||||
newdr.cate = cate.Key;
|
||||
|
||||
if (catename.StartsWith("대체"))
|
||||
{
|
||||
newdr.dr = cate.Sum(t => t.DrTime);
|
||||
newdr.cr = cate.Sum(t => t.CrTime);
|
||||
newdr.jan = newdr.dr - newdr.cr;
|
||||
//newdr.add = 0;
|
||||
if (newdr.dr != 0) newdr.rate = (newdr.cr / newdr.dr)*100f;
|
||||
else newdr.rate = 0;
|
||||
newdr.dr = cate.Where(t => t.IsiwolNull() == true || t.iwol == false).Sum(t => t.DrTime);
|
||||
newdr.cr = cate.Where(t => t.IsiwolNull() == true || t.iwol == false).Sum(t => t.CrTime);
|
||||
newdr.iwol = cate.Where(t => t.IsiwolNull() == false && t.iwol == true).Sum(t => t.DrTime);
|
||||
|
||||
|
||||
}
|
||||
else if (catename.StartsWith("외출"))
|
||||
{
|
||||
//newdr.dr = 0;
|
||||
//newdr.cr = 0;
|
||||
//newdr.jan = 0;
|
||||
//newdr.add = 0;
|
||||
//newdr.rate = 0;
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
newdr.dr = cate.Sum(t => t.DrDay);
|
||||
newdr.cr = cate.Sum(t => t.CrDay);
|
||||
newdr.jan = newdr.dr - newdr.cr;
|
||||
if (newdr.jan < 0) //초과사용자는 0으로 처리
|
||||
{
|
||||
newdr.add = newdr.jan;
|
||||
newdr.cr = newdr.dr;
|
||||
newdr.jan = 0;
|
||||
}
|
||||
if (newdr.dr != 0) newdr.rate = (newdr.cr / newdr.dr) * 100f;
|
||||
else newdr.rate = 0;
|
||||
newdr.drday = newdr.dr;
|
||||
newdr.crday = newdr.cr;
|
||||
newdr.janday = newdr.jan;
|
||||
newdr.rateday = newdr.rate;
|
||||
newdr.addday = newdr.add;
|
||||
//이월과 그렇지 않은 데이터로 분리한다.
|
||||
newdr.drday = cate.Where(t => t.IsiwolNull() == true || t.iwol == false).Sum(t => t.DrDay);
|
||||
newdr.crday = cate.Where(t => t.IsiwolNull() == true || t.iwol == false).Sum(t => t.CrDay);
|
||||
newdr.iwolday = cate.Where(t => t.IsiwolNull() == false && t.iwol == true).Sum(t => t.DrDay);
|
||||
}
|
||||
|
||||
if (catename.StartsWith("대체")) newdr.orderno = 99;
|
||||
else if (catename.StartsWith("년차")) newdr.orderno = 1;
|
||||
else if (catename.StartsWith("이월")) newdr.orderno = 0;
|
||||
else newdr.orderno = 2;
|
||||
|
||||
this.dsReport.holydatasum.AddholydatasumRow(newdr);
|
||||
}
|
||||
}
|
||||
this.dsReport.holydatasum.AcceptChanges();
|
||||
|
||||
|
||||
//this.reportViewer1.LocalReport.ReportPath = "JobReport_\\rK5Dailyform.rdlc";
|
||||
this.reportViewer1.SetDisplayMode(Microsoft.Reporting.WinForms.DisplayMode.Normal);
|
||||
this.reportViewer1.ZoomMode = Microsoft.Reporting.WinForms.ZoomMode.Percent;
|
||||
this.reportViewer1.RefreshReport();
|
||||
////this.reportViewer1.LocalReport.ReportPath = "JobReport_\\rK5Dailyform.rdlc";
|
||||
//this.reportViewer1.SetDisplayMode(Microsoft.Reporting.WinForms.DisplayMode.Normal);
|
||||
//this.reportViewer1.ZoomMode = Microsoft.Reporting.WinForms.ZoomMode.Percent;
|
||||
//this.reportViewer1.RefreshReport();
|
||||
|
||||
////휴일데이터가 들어가 있음.
|
||||
//var taH = new dsReportTableAdapters.HolidayLIstTableAdapter();
|
||||
// //taH.Fill(this.dsReport.HolidayLIst, tbMon.Text + "%");
|
||||
var numcell1 = new FarPoint.Win.Spread.CellType.NumberCellType();
|
||||
numcell1.DecimalPlaces = 1;
|
||||
numcell1.FixedPoint = false;
|
||||
numcell1.LeadingZero = FarPoint.Win.Spread.CellType.LeadingZero.No;
|
||||
numcell1.Separator = ",";
|
||||
numcell1.ShowSeparator = false;
|
||||
|
||||
// string prcname = tbProcess.SelectedIndex < 1 ? "%" : tbProcess.Text.Trim();
|
||||
//// this.ta.Fill(this.dsReport.jobReport, tbMon.Text, FCOMMON.info.Login.gcode, prcname);
|
||||
// //this.reportViewer1.SetDisplayMode(Microsoft.Reporting.WinForms.DisplayMode.PrintLayout);
|
||||
// //this.reportViewer1.ZoomMode = Microsoft.Reporting.WinForms.ZoomMode.PageWidth;
|
||||
|
||||
// //그리드뷰 생성
|
||||
// this.dataGridView1.AllowUserToAddRows = false;
|
||||
// this.dataGridView1.AllowUserToDeleteRows = false;
|
||||
// this.dataGridView1.Rows.Clear();
|
||||
// this.dataGridView1.Columns.Clear();
|
||||
// this.dataGridView1.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
|
||||
// this.dataGridView1.ColumnHeadersHeight = 35;
|
||||
// this.dataGridView1.Columns.Add("이름", "이름");
|
||||
|
||||
// //이름/년도데이터추가
|
||||
// var ymlist = dsReport.jobReport.OrderBy(t => t.yymm).GroupBy(t => t.yymm);
|
||||
// foreach (var ym in ymlist)
|
||||
// {
|
||||
// var drYm = ym.FirstOrDefault();
|
||||
|
||||
// var basehr = int.Parse(drYm.yymm.Substring(drYm.yymm.IndexOf('(')).Replace("(", "").Replace(")", ""));
|
||||
|
||||
// this.dataGridView1.Columns.Add(drYm.yymm, drYm.yymm.Substring(0, 7) + "\r\n(" + basehr.ToString() + ")");
|
||||
// }
|
||||
|
||||
// //이름으로 정렬해서 데이터를 가져온다
|
||||
// var namelist = this.dsReport.jobReport.OrderBy(t => t.uname).GroupBy(t => t.uname);
|
||||
// foreach (var uname in namelist)
|
||||
// {
|
||||
// var drName = uname.FirstOrDefault();
|
||||
|
||||
// List<string> rowdata = new List<string>();
|
||||
// rowdata.Add(drName.uname + "(" + drName.uid + ")");
|
||||
|
||||
// List<Boolean> high = new List<bool>();
|
||||
// List<Boolean> low = new List<bool>();
|
||||
// for (int i = 1; i < this.dataGridView1.ColumnCount; i++)
|
||||
// {
|
||||
// var coltitle = dataGridView1.Columns[i].HeaderText;
|
||||
// var basehr = int.Parse(coltitle.Split('\n')[1].Replace("(","").Replace(")",""));
|
||||
|
||||
// var userDatas = dsReport.jobReport.Where(t => t.uid == drName.uid && t.yymm == dataGridView1.Columns[i].Name);
|
||||
// if (userDatas == null || userDatas.Count() == 0)
|
||||
// {
|
||||
// //이달에는 데이터가없다
|
||||
// rowdata.Add("--");
|
||||
// high.Add(false);
|
||||
// low.Add(false);
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// ////모든데이터를 확인해서 휴일이랑 데이터를 분리해야한다.
|
||||
// //var sumhr = 0f;
|
||||
// //var sumot = 0f;
|
||||
// //var sumholy = 0f;
|
||||
// //foreach(dsReport.jobReportRow item in userDatas)
|
||||
// //{
|
||||
// // dsReport.HolidayLIst.Where(t => t.pdate == item.yymm);
|
||||
// //}
|
||||
var percell1 = new FarPoint.Win.Spread.CellType.PercentCellType();
|
||||
numcell1.DecimalPlaces = 1;
|
||||
numcell1.FixedPoint = false;
|
||||
numcell1.LeadingZero = FarPoint.Win.Spread.CellType.LeadingZero.No;
|
||||
numcell1.Separator = ",";
|
||||
numcell1.ShowSeparator = false;
|
||||
|
||||
|
||||
|
||||
// var sumhr = userDatas.Sum(t => t.hrs);
|
||||
// var sumot = userDatas.Sum(t => t.ot);
|
||||
// var sumhl = userDatas.Sum(t => t.holyot);
|
||||
// if (sumot + sumhl == 0) rowdata.Add(string.Format("{0}", sumhr, sumot));
|
||||
//데이터표시
|
||||
var grpproc = dsReport.holydatasum.OrderBy(t => t.process).GroupBy(t => t.process);
|
||||
var row = 0;
|
||||
this.fpSpread1_Sheet1.ColumnHeaderRowCount = 2;
|
||||
|
||||
// else rowdata.Add(string.Format("{0}+{1}(*{2})", sumhr, sumot,sumhl));
|
||||
var cols = new string[] { "공정", "사원명", "사번" };
|
||||
var subcols = new string[] { "이월", "발생", "사용", "잔여", "초과", "소진율(%)", "이월\n소진율\n(%)" };
|
||||
var headercol = 0;
|
||||
var catelist = new Dictionary<string, int>();
|
||||
foreach (var colname in cols)
|
||||
{
|
||||
this.fpSpread1_Sheet1.ColumnHeader.Cells[0, headercol].Value = colname;
|
||||
this.fpSpread1_Sheet1.AddColumnHeaderSpanCell(0, headercol, 2, 1);
|
||||
headercol += 1;
|
||||
}
|
||||
|
||||
// if (sumhr > basehr) high.Add(true);
|
||||
// else high.Add(false);
|
||||
this.fpSpread1_Sheet1.ColumnCount = 200;
|
||||
|
||||
// if (sumhr < basehr) low.Add(true);
|
||||
// else low.Add(false);
|
||||
// }
|
||||
// }
|
||||
//모든카테고리를 확인하여 컬럼을 먼저 생성한다.
|
||||
var gCate = dsReport.holydatasum.OrderBy(t => t.orderno).GroupBy(t => t.cate);
|
||||
foreach (var drCate in gCate)
|
||||
{
|
||||
catelist.Add(drCate.Key, headercol);
|
||||
this.fpSpread1_Sheet1.ColumnHeader.Cells[0, headercol].Value = drCate.Key;
|
||||
var grpstart = headercol;
|
||||
foreach (var colname in subcols)
|
||||
{
|
||||
this.fpSpread1_Sheet1.ColumnHeader.Cells[1, headercol++].Value = colname;
|
||||
}
|
||||
var grpend = headercol;
|
||||
fpSpread1.ActiveSheet.AddColumnHeaderSpanCell(0, grpstart, 1, grpend - grpstart); //같은그룹명 병합
|
||||
}
|
||||
|
||||
// dataGridView1.Rows.Add(rowdata.ToArray());
|
||||
|
||||
// //이번에 추가한 줄의 셀 컬러를 지정한다
|
||||
// var currentrow = dataGridView1.Rows.Count - 1;
|
||||
// for (int i = 1; i < this.dataGridView1.ColumnCount; i++)
|
||||
// {
|
||||
// if (high[i - 1]) dataGridView1.Rows[currentrow].Cells[i].Style.ForeColor = Color.Red;
|
||||
// else if (low[i - 1]) dataGridView1.Rows[currentrow].Cells[i].Style.ForeColor = Color.Blue;
|
||||
// else dataGridView1.Rows[currentrow].Cells[i].Style.ForeColor = Color.Black;
|
||||
// }
|
||||
// }
|
||||
// this.dataGridView1.AutoResizeColumns();
|
||||
|
||||
//최종합계추가
|
||||
this.fpSpread1_Sheet1.ColumnHeader.Cells[0, headercol].Value = "합계";
|
||||
var grpstart2 = headercol;
|
||||
foreach (var colname in subcols)
|
||||
{
|
||||
fpSpread1.ActiveSheet.ColumnCount = headercol + 1;
|
||||
this.fpSpread1_Sheet1.ColumnHeader.Cells[1, headercol++].Value = colname;
|
||||
}
|
||||
var grpend2 = headercol;
|
||||
fpSpread1.ActiveSheet.AddColumnHeaderSpanCell(0, grpstart2, 1, grpend2 - grpstart2); //같은그룹명 병합
|
||||
fpSpread1.ActiveSheet.ColumnCount = headercol;
|
||||
|
||||
this.fpSpread1_Sheet1.RowCount = 1;
|
||||
foreach (var drp in grpproc)
|
||||
{
|
||||
var grpdata = drp.OrderBy(t => t.uname).GroupBy(t => t.uid);
|
||||
var grpstart = row;
|
||||
foreach (var dr in grpdata)
|
||||
{
|
||||
var col = 0;
|
||||
var druser = dr.First();
|
||||
|
||||
if(row % 2 == 0)
|
||||
{
|
||||
fpSpread1_Sheet1.Rows[row].BackColor = Color.FromArgb(80,Color.LightSkyBlue);
|
||||
}
|
||||
else fpSpread1_Sheet1.Rows[row].BackColor = Color.White;
|
||||
|
||||
fpSpread1_Sheet1.Cells[row, col++].Value = drp.First().process;
|
||||
fpSpread1_Sheet1.Cells[row, col++].Value = druser.uname;
|
||||
fpSpread1_Sheet1.Cells[row, col++].Value = druser.uid;
|
||||
|
||||
//카테고리별로 데이터를 취합하여 대상 셀에 값을기록한다.
|
||||
var userCate = dr.GroupBy(t => t.cate);
|
||||
var sum_발생 = 0.0;
|
||||
var sum_사용 = 0.0;
|
||||
var sum_잔여 = 0.0;
|
||||
var sum_초과 = 0.0;
|
||||
var sum_이월 = 0.0;
|
||||
var lastcol = 0;
|
||||
foreach (var drCate in userCate)
|
||||
{
|
||||
var cateName = drCate.Key;
|
||||
var cateColumn = catelist[cateName]; //이컬럼의 시작 인덱스를 찾는다.
|
||||
|
||||
//var offset = cateColumn;
|
||||
var 이월 = cateName.StartsWith("대체") ? drCate.Sum(t => t.iwol) : drCate.Sum(t => t.iwolday);
|
||||
var 발생 = cateName.StartsWith("대체") ? drCate.Sum(t => t.dr) : drCate.Sum(t => t.drday);
|
||||
var 사용 = cateName.StartsWith("대체") ? drCate.Sum(T => T.cr) : drCate.Sum(t => t.crday);
|
||||
var 잔여 = 발생 - 사용 + 이월;
|
||||
var 사용률 = 0.0;
|
||||
var 사용률2 = 0.0;
|
||||
var 초과 = 0.0;
|
||||
if (cateName.StartsWith("이월") && 잔여 < 0)
|
||||
{
|
||||
잔여 = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (발생 + 이월 != 0) 사용률 = (사용 / (발생 + 이월)) * 100f;
|
||||
|
||||
//년차에서만 초과를 계산한다.
|
||||
if (cateName.StartsWith("년차"))
|
||||
{
|
||||
//잔여가 -라면 초과분으로 한다
|
||||
초과 = 잔여 < 0 ? -잔여 : 0;
|
||||
|
||||
}
|
||||
|
||||
if (발생 != 0) 사용률2 = ((사용 - 이월) / 발생) * 100f;
|
||||
|
||||
}
|
||||
|
||||
if (이월 != 0.0) fpSpread1_Sheet1.Cells[row, cateColumn++].Value = 이월;
|
||||
else cateColumn++;
|
||||
if (발생 != 0.0) fpSpread1_Sheet1.Cells[row, cateColumn++].Value = 발생;
|
||||
else cateColumn++;
|
||||
if (사용 != 0.0) fpSpread1_Sheet1.Cells[row, cateColumn++].Value = 사용;
|
||||
else cateColumn++;
|
||||
if (잔여 != 0.0) fpSpread1_Sheet1.Cells[row, cateColumn++].Value = 잔여;
|
||||
else cateColumn++;
|
||||
if (초과 != 0.0) fpSpread1_Sheet1.Cells[row, cateColumn++].Value = 초과;
|
||||
else cateColumn++;
|
||||
if (사용률 != 0.0) fpSpread1_Sheet1.Cells[row, cateColumn++].Value = Math.Round(사용률, 1);
|
||||
else cateColumn++;
|
||||
if (사용률2 != 0.0) fpSpread1_Sheet1.Cells[row, cateColumn++].Value = Math.Round(사용률2, 1);
|
||||
else cateColumn++;
|
||||
|
||||
|
||||
|
||||
sum_이월 += 이월;
|
||||
sum_발생 += 발생;
|
||||
sum_사용 += 사용;
|
||||
sum_잔여 += 잔여;
|
||||
sum_초과 += 초과;
|
||||
if (cateColumn > lastcol) lastcol = cateColumn;
|
||||
}
|
||||
|
||||
var sum_사용률 = Math.Round((sum_사용 / (sum_발생 + sum_이월)) * 100f, 1);
|
||||
var sum_사용률2 = Math.Round((sum_사용 - sum_이월) / (sum_발생) * 100f, 1);
|
||||
|
||||
|
||||
var offset = 0;
|
||||
if (sum_이월 != 0.0) fpSpread1_Sheet1.Cells[row, headercol - subcols.Length + offset++].Value = sum_이월;
|
||||
else fpSpread1_Sheet1.Cells[row, headercol - subcols.Length + offset++].Value = null;
|
||||
if (sum_발생 != 0.0) fpSpread1_Sheet1.Cells[row, headercol - subcols.Length + offset++].Value = sum_발생;
|
||||
else fpSpread1_Sheet1.Cells[row, headercol - subcols.Length + offset++].Value = null;
|
||||
if (sum_사용 != 0.0) fpSpread1_Sheet1.Cells[row, headercol - subcols.Length + offset++].Value = sum_사용;
|
||||
else fpSpread1_Sheet1.Cells[row, headercol - subcols.Length + offset++].Value = null;
|
||||
if (sum_잔여 != 0.0) fpSpread1_Sheet1.Cells[row, headercol - subcols.Length + offset++].Value = sum_잔여;
|
||||
else fpSpread1_Sheet1.Cells[row, headercol - subcols.Length + offset++].Value = null;
|
||||
if (sum_초과 != 0.0) fpSpread1_Sheet1.Cells[row, headercol - subcols.Length + offset++].Value = sum_초과;
|
||||
else fpSpread1_Sheet1.Cells[row, headercol - subcols.Length + offset++].Value = null;
|
||||
if (sum_사용률 != 0.0) fpSpread1_Sheet1.Cells[row, headercol - subcols.Length + offset++].Value = sum_사용률;
|
||||
else fpSpread1_Sheet1.Cells[row, headercol - subcols.Length + offset++].Value = null;
|
||||
if (sum_사용률2 != 0.0) fpSpread1_Sheet1.Cells[row, headercol - subcols.Length + offset++].Value = sum_사용률2;
|
||||
else fpSpread1_Sheet1.Cells[row, headercol - subcols.Length + offset++].Value = null;
|
||||
|
||||
row += 1;
|
||||
if (this.fpSpread1_Sheet1.RowCount < 1 + row) this.fpSpread1_Sheet1.RowCount = 1 + row;
|
||||
}
|
||||
var grpend = row;
|
||||
fpSpread1.ActiveSheet.AddSpanCell(grpstart, 0, grpend - grpstart, 1); //같은그룹명 병합
|
||||
}
|
||||
|
||||
//마지막줄에는 총계를 표시한다.
|
||||
fpSpread1_Sheet1.Cells[row, 0].Value = "합계";
|
||||
fpSpread1_Sheet1.AddSpanCell(row, 0, row, 3);
|
||||
fpSpread1_Sheet1.SetFormula(row, 3, $"SUM(R1C4:R{row}C4)");
|
||||
|
||||
//0번컬럼은 색상을 초기화
|
||||
for(int i = 0; i < fpSpread1_Sheet1.RowCount;i++)
|
||||
fpSpread1_Sheet1.Cells[i,0].BackColor = Color.White;
|
||||
|
||||
|
||||
|
||||
for (int i = 4; i <= grpend2; i++)
|
||||
{
|
||||
var colname = fpSpread1_Sheet1.Columns[i - 1].Label;
|
||||
var cellf = fpSpread1_Sheet1.Cells.Get(row, i - 1).CellType;
|
||||
|
||||
|
||||
if (colname.Contains("%") == false)
|
||||
{
|
||||
fpSpread1_Sheet1.SetFormula(row, i - 1, $"SUM(R1C{i}:R{row}C{i})");
|
||||
}
|
||||
else
|
||||
{
|
||||
fpSpread1_Sheet1.SetFormula(row, i - 1, $"AVERAGE(R1C{i}:R{row}C{i})");
|
||||
fpSpread1_Sheet1.Cells[row, i - 1].CellType = numcell1;
|
||||
//var 발생 = (double)fpSpread1_Sheet1.GetValue(row, i - 1 - 4);
|
||||
//var 사용 = (double)fpSpread1_Sheet1.GetValue(row, i - 1 - 3);
|
||||
//var 사용률 = 0.0;
|
||||
//if (사용 > 발생) 사용률 = 100;
|
||||
//else if (발생 > 0) 사용률 = Math.Round((사용 / 발생) * 100f, 1);
|
||||
//if (사용률 != 0.0)
|
||||
// fpSpread1_Sheet1.SetValue(row, i - 1, 사용률);
|
||||
}
|
||||
|
||||
//cellf = numcell1;
|
||||
}
|
||||
|
||||
fpSpread1_Sheet1.Cells[0, 0, row, grpend2 - 1].HorizontalAlignment = CellHorizontalAlignment.Center;
|
||||
fpSpread1_Sheet1.Cells[0, 0, row, grpend2 - 1].VerticalAlignment = CellVerticalAlignment.Center;
|
||||
|
||||
//값이없는 컬럼은 숨김처리한다.
|
||||
string title = "";
|
||||
for (int i = 3; i < fpSpread1_Sheet1.ColumnCount; i++)
|
||||
{
|
||||
if ((i + 4) % subcols.Length == 0)
|
||||
{
|
||||
title = fpSpread1_Sheet1.ColumnHeader.Cells[0, i].Text;
|
||||
}
|
||||
var title2 = fpSpread1_Sheet1.ColumnHeader.Cells[1, i].Text;
|
||||
if(title != "년차" && title != "합계" && title2 == "초과")
|
||||
{
|
||||
fpSpread1_Sheet1.Columns[i].Visible = false;
|
||||
}
|
||||
else if (title != "년차" && title != "합계" && title != "대체" && title2.Contains("이월"))
|
||||
{
|
||||
fpSpread1_Sheet1.Columns[i].Visible = false;
|
||||
}
|
||||
else fpSpread1_Sheet1.Columns[i].Visible = true;
|
||||
}
|
||||
}
|
||||
|
||||
private void btRefresh_Click(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
private void tbProcess_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
private void button1_Click(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
private void toolStripComboBox1_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
// if (tbProcess.SelectedIndex >= 0) refrehData();
|
||||
}
|
||||
|
||||
private void toolStripButton6_Click(object sender, EventArgs e)
|
||||
{
|
||||
// dataGridView1.ExportData(string.Empty);
|
||||
}
|
||||
|
||||
private void btSearch_Click(object sender, EventArgs e)
|
||||
{
|
||||
@@ -264,5 +388,20 @@ namespace FBS0000
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
private void toolStripButton1_Click(object sender, EventArgs e)
|
||||
{
|
||||
var sd = new SaveFileDialog();
|
||||
sd.Filter = "excel file|*.xls";
|
||||
sd.RestoreDirectory = true;
|
||||
sd.FileName = $"휴가이력현황({tbMon.Text}).xls";
|
||||
if (sd.ShowDialog() != DialogResult.OK) return;
|
||||
this.fpSpread1.SaveExcel(sd.FileName, ExcelSaveFlags.SaveAsViewed | ExcelSaveFlags.SaveBothCustomRowAndColumnHeaders);
|
||||
|
||||
var dlg = FCOMMON.Util.MsgQ("생성된 파일을 확인 할까요?");
|
||||
if (dlg != DialogResult.Yes) return;
|
||||
|
||||
FCOMMON.Util.RunExplorer(sd.FileName);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user