-
근태현황 관리 소스 예제업무용 소스 예제 2021. 9. 1. 16:17728x90반응형728x90
근태현황 관리 소스 예제 입니다.
해당 소스는 특정 업소에 맞춰진 것으로 사용하실 때 수정이 필요합니다.
부분적으로 참고만 바랍니다.
private void UpdateList_AttendList() { if (this.intUserKey != 0) { try { this.Cursor = Cursors.WaitCursor; int num6 = 0; int num4 = 0; int num2 = 0; int num3 = 0; this.intStaticAttendCount = 0; this.intStaticLateCount = 0; this.intStaticHomeCount = 0; this.intStaticEarlyCount = 0; this.intStaticAbsentCount = 0; DataTable tbl1 = PLAcaDBManager.UsersAttendSelectListMonth(intUserKey, dtpRegDate.GetStartDate(), dtpRegDate.GetEndDate()); if(tbl1 != null && tbl1.Rows.Count > 0) { foreach (DataRow dr in tbl1.Rows) { string str2 = dr["AttendResult"].ToString(); if (str2 == "출근") { this.intStaticAttendCount++; } else if (str2 == "지각") { this.intStaticLateCount++; } else { this.intStaticAbsentCount++; } if (!dr.IsNull("Home")) { switch (dr["HomeResult"].ToString()) { case "퇴근": this.intStaticHomeCount++; break; case "조퇴": this.intStaticEarlyCount++; break; } num4 = Convert.ToInt32((Convert.ToDateTime(dr["Attend"]) - Convert.ToDateTime(dr["Home"])).TotalMinutes); if (num4 < 0) { num4 += 1440; } num2 += num4; if (num4 > 60) { num6 = num4 % 60; } } } } int backRow = gridAttendListView.FocusedRowHandle; gridAttendList.DataSource = null; gridAttendList.DataSource = PLAcaDBManager.UsersAttendSelect(intUserKey, dtpRegDate.GetStartDate(), dtpRegDate.GetEndDate()); gridAttendListView.FocusedRowHandle = backRow; DataTable tbl = PLAcaDBManager.UsersAttendMonthlyMemoSelect(intUserKey, dtpRegDate.GetStartDate().Year, dtpRegDate.GetStartDate().Month); if(tbl != null && tbl.Rows.Count > 0) { foreach(DataRow dr in tbl.Rows) { this.txtAttendMonthlyMemo.Text = dr["AttendMemo"].ToString(); } } else { this.txtAttendMonthlyMemo.Text = ""; } this.txtAttendCount.Text = Convert.ToString(this.intStaticAttendCount) + "일"; this.txtLateCount.Text = Convert.ToString(this.intStaticLateCount) + "일"; this.txtHomeCount.Text = Convert.ToString(this.intStaticHomeCount) + "일"; this.txtEarlyCount.Text = Convert.ToString(this.intStaticEarlyCount) + "일"; this.txtAbsentCount.Text = Convert.ToString(this.intStaticAbsentCount) + "일"; this.txtAttendRate1.Text = Convert.ToString((int)Math.Round((double)((((double)this.intStaticAttendCount) / 20.0) * 100.0))) + "%"; this.txtAttendRate2.Text = Convert.ToString((int)Math.Round((double)((((double)this.intStaticAttendCount) / 25.0) * 100.0))) + "%"; if ((this.intStaticAttendCount + this.intStaticAbsentCount) > 0) { this.txtAttendRate3.Text = Convert.ToString((int)Math.Round((double)((((double)this.intStaticAttendCount) / ((double)(this.intStaticAttendCount + this.intStaticAbsentCount))) * 100.0))) + "%"; } else { this.txtAttendRate3.Text = "0%"; } if (num2 > 60) { num6 = num2 % 60; this.txtWorkTime.Text = Convert.ToString(Math.Floor((double)(((double)num2) / 60.0))) + "시간 " + num6.ToString() + "분"; } else { this.txtWorkTime.Text = num2.ToString() + "분"; } if (this.intStaticAttendCount == 0) { num3 = 0; } else { num3 = (int)Math.Round((double)(((double)num3) / ((double)this.intStaticAttendCount))); } if (num3 > 60) { this.txtWorkTimeAvg.Text = Convert.ToString(Math.Floor((double)(((double)num3) / 60.0))) + "시간 " + ((num3 % 60)).ToString() + "분"; } else { this.txtWorkTimeAvg.Text = num3.ToString() + "분"; } } catch (Exception ee) { TraceManager.AddLog(string.Format("{0}r\n{1}", ee.StackTrace, ee.Message)); System.Diagnostics.Debug.WriteLine(string.Format("{0}r\n{1}", ee.StackTrace, ee.Message)); } finally { this.Cursor = Cursors.Default; } } }
728x90반응형'업무용 소스 예제' 카테고리의 다른 글
gridScheduleView_DoubleClick 그리드 더블클릭 시 처리 예제 (3) 2021.09.11 팀 상태 변경 시 ViewTermStatusChange 처리 예제 (4) 2021.09.06 학원관리 Lesson_Schedule 관리 예제 소스 (1) 2021.08.23 DB PhotoSelect 관련 예제 소스 (3) 2021.08.23 학원관리 From DB 휴일관리 예제 소스 (2) 2021.08.22