172 lines
5.8 KiB
C#
172 lines
5.8 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.Windows.Forms;
|
|
using NetOffice;
|
|
using Outlook = NetOffice.OutlookApi;
|
|
using NetOffice.OutlookApi.Enums;
|
|
|
|
namespace FBS0000
|
|
{
|
|
public partial class WorkTable : FCOMMON.fBase
|
|
{
|
|
public WorkTable(string sd, string ed, string grp)
|
|
{
|
|
InitializeComponent();
|
|
tbSD.Text = sd;
|
|
tbED.Text = ed;
|
|
tbGrp.Text = grp;
|
|
//this.dv1.CellFormatting += dv1_CellFormatting;
|
|
}
|
|
|
|
private void __Load(object sender, EventArgs e)
|
|
{
|
|
|
|
//일반사용자의경우에는 상태를 변경하지 못한다.
|
|
int curLevel = Math.Max(FCOMMON.info.Login.level, FCOMMON.DBM.getAuth(FCOMMON.DBM.eAuthType.holyday));
|
|
if (curLevel >= 5)
|
|
{
|
|
//권한이 잇으므로 모든 사용자로 한다.
|
|
}
|
|
else
|
|
{
|
|
// this.cmbUser.Enabled = false; //사용자를 고칠수 없게 한다.
|
|
}
|
|
|
|
RefreshData();
|
|
}
|
|
|
|
|
|
|
|
void RefreshData()
|
|
{
|
|
fpSpread1_Sheet1.Rows.Count = 0;
|
|
|
|
//열제목
|
|
var cols = new List<string>();
|
|
cols.AddRange(new string[] { "번호", "사번", "직급", "성명" });
|
|
|
|
var sd = DateTime.Parse(tbSD.Text);
|
|
var ed = DateTime.Parse(tbED.Text);
|
|
var idx = 0; ;
|
|
while (true)
|
|
{
|
|
var curDate = sd.AddDays(idx++);
|
|
cols.Add(curDate.Day.ToString("00"));
|
|
if (curDate.ToShortDateString() == ed.ToShortDateString()) break;
|
|
}
|
|
cols.AddRange(new string[]{ "발생년차","사용휴가","잔여휴가"});
|
|
|
|
//열제목 설정
|
|
fpSpread1_Sheet1.Columns.Count = cols.Count;
|
|
for (int c = 0; c < cols.Count; c++)
|
|
{
|
|
fpSpread1_Sheet1.Columns[c].Label = cols[c];
|
|
}
|
|
//fpSpread1_Sheet1.Cells[0, c].Value = cols[c];
|
|
|
|
//해당 기간내의 사용
|
|
var taUser = new dsMSSQLTableAdapters.EETGW_WorkTableUserTableAdapter();
|
|
var dtUser = taUser.GetData(FCOMMON.info.Login.gcode, tbGrp.Text);
|
|
var users = new List<userinfo>();
|
|
foreach(var item in dtUser)
|
|
{
|
|
if(string.IsNullOrEmpty(item.indate))
|
|
{
|
|
//입사일자를 체크해서. 이 날짜가 입사일 이전이면 넘어간다
|
|
}
|
|
users.Add(new userinfo { grade = item.grade, name = item.name, empno = item.empno, seq = item.seq.ToString() });
|
|
}
|
|
|
|
//휴가테이블에서 데이터를 가져온다
|
|
var taHoly = new dsMSSQLTableAdapters.HolydayTableAdapter();
|
|
var dtHoly = taHoly.GetByGrp(tbSD.Text, tbED.Text, FCOMMON.info.Login.gcode, this.tbGrp.Text);
|
|
|
|
|
|
//사용자 목록을 1번열에 나열한다.
|
|
var rowindex = 0;
|
|
foreach (var item in users)
|
|
{
|
|
fpSpread1_Sheet1.Rows.Count += 1;
|
|
fpSpread1_Sheet1.Cells[rowindex, 0].Value = item.seq;
|
|
fpSpread1_Sheet1.Cells[rowindex, 1].Value = item.empno;
|
|
fpSpread1_Sheet1.Cells[rowindex, 2].Value = item.grade;
|
|
fpSpread1_Sheet1.Cells[rowindex, 3].Value = item.name;
|
|
|
|
//각 일자별로 특이사항을 찾는다
|
|
for(int c= 4; c < cols.Count;c++)
|
|
{
|
|
var curDate = sd.AddDays(c-4);
|
|
var dr = dtHoly.Where(t => t.uid == item.empno && t.sdate.ToShortDateString() == curDate.ToShortDateString()).FirstOrDefault();
|
|
if (dr != null)
|
|
{
|
|
//자료가있다.
|
|
if (dr.term == 1.0) fpSpread1_Sheet1.Cells[rowindex, c].Value = "Y";
|
|
else if(dr.term != 0) fpSpread1_Sheet1.Cells[rowindex, c].Value = dr.term.ToString() +"Y";
|
|
|
|
if (dr.CrTime != 0) fpSpread1_Sheet1.Cells[rowindex, c].Value = dr.CrTime.ToString();
|
|
}
|
|
else fpSpread1_Sheet1.Cells[rowindex, c].Value = string.Empty;
|
|
}
|
|
|
|
rowindex += 1;
|
|
}
|
|
|
|
|
|
|
|
}
|
|
private void boardBindingNavigatorSaveItem_Click(object sender, EventArgs e)
|
|
{
|
|
this.Validate();
|
|
// this.bs.EndEdit();
|
|
var dlg = FCOMMON.Util.MsgQ("변경된 내용을 저장하시겠습니까?");
|
|
if (dlg != System.Windows.Forms.DialogResult.Yes) return;
|
|
try
|
|
{
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
FCOMMON.Util.MsgE(ex.Message);
|
|
}
|
|
}
|
|
|
|
class userinfo
|
|
{
|
|
public string seq { get; set; }
|
|
public string empno { get; set; }
|
|
public string name { get; set; }
|
|
public string grade { get; set; }
|
|
public userinfo()
|
|
{
|
|
|
|
}
|
|
}
|
|
|
|
private void toolStripButton1_Click(object sender, EventArgs e)
|
|
{
|
|
RefreshData();
|
|
}
|
|
|
|
private void tbSD_KeyDown(object sender, KeyEventArgs e)
|
|
{
|
|
var tb = sender as ToolStripTextBox;
|
|
if (e.KeyCode == Keys.Enter)
|
|
{
|
|
string datestring;
|
|
if (FCOMMON.Util.MakeDateString(tb.Text, out datestring))
|
|
{
|
|
tb.Text = datestring;
|
|
SendKeys.Send("{TAB}");
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|