You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
426 lines
14 KiB
426 lines
14 KiB
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Data;
|
|
using System.Data.Sql;
|
|
using System.Data.SqlClient;
|
|
using System.Drawing;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Windows.Forms;
|
|
using ManagementSystem.Utility;
|
|
|
|
namespace ManagementSystem
|
|
{
|
|
public partial class CleanHistory : Form
|
|
{
|
|
//程式內共用物件
|
|
string strFrmStatus = ""; //表單狀態
|
|
string strActiveUserID = ""; //取得登入作用的使用者帳號
|
|
SqlConnection sqlConn = UtilityClass.GetConn(MainForm.strAccountingBookID);
|
|
SqlCommand sqlCmd = new SqlCommand();
|
|
string strPKey = ""; //程式內的Key值
|
|
string strKey = ""; //程式內加密的Key值
|
|
|
|
public CleanHistory()
|
|
{
|
|
InitializeComponent();
|
|
}
|
|
|
|
#region 自定義程式
|
|
private string CheckForm() //確認畫面必填欄位
|
|
{
|
|
string strResult = "";
|
|
if (!cbAskLeave.Checked && !cbAttendance.Checked && !cbDayWork.Checked && !cbMeeting.Checked)
|
|
strResult = "至少要選取一項清除任務!";
|
|
return strResult;
|
|
}
|
|
|
|
private void SetupStatus() //畫面載入設定
|
|
{
|
|
try
|
|
{
|
|
strActiveUserID = MainForm.strActiveUserID;
|
|
strKey = MainForm.strKey;
|
|
|
|
if (MainForm.strKey == "")
|
|
{
|
|
//設定Toolbar初始狀態
|
|
tsbSave.Enabled = false;
|
|
tsbDelete.Enabled = true;
|
|
}
|
|
|
|
//設定畫面初始狀態
|
|
CleanForm();
|
|
CleanToolbar();
|
|
LockForm();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
ErrorHandler.WriteErrorLog("HRDataCorrect.cs", ex);
|
|
}
|
|
}
|
|
|
|
private void LockForm() //限制唯讀物件
|
|
{
|
|
|
|
}
|
|
|
|
private void UnLockForm() //解除限制唯讀物件
|
|
{
|
|
|
|
}
|
|
|
|
private void StatusChange(string strStatus) //變更主畫面狀態
|
|
{
|
|
switch (strStatus.ToUpper())
|
|
{
|
|
case "NONE":
|
|
((MainForm)ParentForm).SsStatus.Items["tsslStatus"].Text = "";
|
|
strFrmStatus = "";
|
|
CleanForm();
|
|
CleanToolbar();
|
|
break;
|
|
case "SEARCH":
|
|
tsbSearch.Visible = false;
|
|
tsbEdit.Enabled = false;
|
|
tsbDelete.Enabled = false;
|
|
tsbOK.Visible = true;
|
|
tsbCancel.Visible = true;
|
|
((MainForm)ParentForm).SsStatus.Items["tsslStatus"].Text = "搜尋";
|
|
strFrmStatus = "SEARCH";
|
|
break;
|
|
case "ADD":
|
|
((MainForm)ParentForm).SsStatus.Items["tsslStatus"].Text = "新增";
|
|
strFrmStatus = "ADD";
|
|
break;
|
|
case "MODIFY":
|
|
tsbSearch.Enabled = false;
|
|
tsbEdit.Visible = false;
|
|
tsbSave.Visible = true;
|
|
tsbDelete.Enabled = false;
|
|
tsbCancel.Visible = true;
|
|
((MainForm)ParentForm).SsStatus.Items["tsslStatus"].Text = "修改";
|
|
strFrmStatus = "MODIFY";
|
|
break;
|
|
case "DEL":
|
|
tsbDelete.Visible = false;
|
|
tsbSearch.Enabled = false;
|
|
tsbEdit.Enabled = false;
|
|
((MainForm)ParentForm).SsStatus.Items["tsslStatus"].Text = "刪除";
|
|
strFrmStatus = "DEL";
|
|
break;
|
|
}
|
|
|
|
}
|
|
|
|
private void CleanToolbar() //清除工具列
|
|
{
|
|
//設定Toolbar狀態
|
|
tsbSearch.Enabled = false;
|
|
tsbSearch.Visible = false;
|
|
tsbEdit.Enabled = false;
|
|
tsbEdit.Visible = false;
|
|
tsbDelete.Enabled = true;
|
|
tsbDelete.Visible = true;
|
|
tsbSave.Visible = false;
|
|
tsbOK.Visible = false;
|
|
tsbCancel.Visible = false;
|
|
}
|
|
|
|
private void CleanForm() //清除畫面
|
|
{
|
|
dpCleanBefor.Value = DateTime.Now.AddYears(-5);
|
|
cbAskLeave.Checked = false;
|
|
cbAttendance.Checked = false;
|
|
cbDayWork.Checked = false;
|
|
cbMeeting.Checked = false;
|
|
GetCurrentData();
|
|
Application.DoEvents();
|
|
}
|
|
|
|
private void AddEven() //新增事件
|
|
{
|
|
try
|
|
{
|
|
//本功能無新增功能
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw ex;
|
|
|
|
}
|
|
}
|
|
|
|
private void SaveEven() //儲存事件
|
|
{
|
|
try
|
|
{
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
MessageBox.Show("儲存失敗","提示");
|
|
ErrorHandler.WriteErrorLog("CleanHistory.cs", ex);
|
|
}
|
|
}
|
|
|
|
private void DelEven() //刪除事件
|
|
{
|
|
//歷史工作彙報
|
|
StringBuilder sbSQL = new StringBuilder();
|
|
try
|
|
{
|
|
string strResult = CheckForm();
|
|
if (strResult == "")
|
|
{
|
|
//歷史工作彙報
|
|
if (cbDayWork.Checked)
|
|
{
|
|
sbSQL.AppendLine("Delete OTB_MNG_DayWork Where CreateDate < '" + dpCleanBefor.Text.ToString() + " 00:00:00';");
|
|
}
|
|
|
|
//歷史打卡資料
|
|
if (cbAttendance.Checked)
|
|
{
|
|
sbSQL.AppendLine("Delete OTB_HR_CheckAttendance Where CreateDate < '" + dpCleanBefor.Text.ToString() + " 00:00:00';");
|
|
}
|
|
|
|
//歷史請假記錄
|
|
if (cbAskLeave.Checked)
|
|
{
|
|
sbSQL.AppendLine("Delete OTB_HR_AskLeave Where CreateDate < '" + dpCleanBefor.Text.ToString() + " 00:00:00';");
|
|
sbSQL.AppendLine("Delete OTB_HR_CheckAskLeave Where CreateDate < '" + dpCleanBefor.Text.ToString() + " 00:00:00';");
|
|
}
|
|
|
|
//歷史會議記錄
|
|
if (cbMeeting.Checked)
|
|
{
|
|
sbSQL.AppendLine("Delete OTB_PRJ_MeetingRecord Where CreateDate < '" + dpCleanBefor.Text.ToString() + " 00:00:00';");
|
|
sbSQL.AppendLine("Delete OTB_PRJ_MeetingRecordDetail Where CreateDate < '" + dpCleanBefor.Text.ToString() + " 00:00:00';");
|
|
}
|
|
|
|
//行事曆記錄
|
|
if (cbCalendar.Checked)
|
|
{
|
|
sbSQL.AppendLine("Delete OTB_MNG_Calendar Where CreateDate < '" + dpCleanBefor.Text.ToString() + " 00:00:00';");
|
|
}
|
|
|
|
using (SqlDataAdapter sqlAdapter = new SqlDataAdapter())
|
|
{
|
|
sqlAdapter.UpdateCommand = new SqlCommand();
|
|
sqlAdapter.UpdateCommand.Connection = sqlConn;
|
|
sqlAdapter.UpdateCommand.CommandText = sbSQL.ToString();
|
|
|
|
if (sqlConn.State == ConnectionState.Closed) //判斷連線狀態
|
|
{
|
|
sqlConn.Open();
|
|
}
|
|
|
|
sqlAdapter.UpdateCommand.ExecuteNonQuery();
|
|
}
|
|
}
|
|
else
|
|
{
|
|
MessageBox.Show(strResult, "提醒");
|
|
}
|
|
//執行命令
|
|
StatusChange("None");
|
|
CleanForm();
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
ErrorHandler.WriteErrorLog("CleanHistory.cs", ex);
|
|
}
|
|
}
|
|
|
|
private void GoEvent() //執行事件
|
|
{
|
|
try
|
|
{
|
|
StringBuilder strSQL = new StringBuilder("");
|
|
switch (strFrmStatus.ToString())
|
|
{
|
|
case "SEARCH": //搜尋
|
|
break;
|
|
|
|
}
|
|
StatusChange("None");
|
|
LockForm();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
ErrorHandler.WriteErrorLog("CleanHistory.cs", ex);
|
|
}
|
|
}
|
|
|
|
private void GetCurrentData()
|
|
{
|
|
//取得各項資料筆數
|
|
//歷史工作彙報
|
|
lbDayWork.Text = "(" + UtilityClass.GetSQLCount("Select * From OTB_MNG_DayWork Where CreateDate < '" + dpCleanBefor.Text + " 00:00:00'") + ") 筆";
|
|
|
|
//歷史打卡資料
|
|
lbAttendance.Text = "(" + UtilityClass.GetSQLCount("Select * From OTB_HR_CheckAttendance Where CreateDate < '" + dpCleanBefor.Text + " 00:00:00'") + ") 筆";
|
|
|
|
//歷史請假記錄
|
|
lbAskLeave.Text = "(" + UtilityClass.GetSQLCount("Select * From OTB_HR_AskLeave Where CreateDate < '" + dpCleanBefor.Text + " 00:00:00'") + ") 筆";
|
|
|
|
//歷史會議記錄
|
|
lbMeeting.Text = "(" + UtilityClass.GetSQLCount("Select * From OTB_PRJ_MeetingRecord Where CreateDate < '" + dpCleanBefor.Text + " 00:00:00'") + ") 筆";
|
|
|
|
//行事曆
|
|
lbCalendar.Text = "(" + UtilityClass.GetSQLCount("Select * From OTB_MNG_Calendar Where CreateDate < '" + dpCleanBefor.Text + " 00:00:00'") + ") 筆";
|
|
}
|
|
#endregion
|
|
|
|
#region 事件觸發及問題處理
|
|
private void tsbAdd_Click(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
CleanToolbar();
|
|
tsbSearch.Enabled = false;
|
|
tsbEdit.Enabled = false;
|
|
tsbSave.Visible = true;
|
|
CleanForm();
|
|
UnLockForm();
|
|
StatusChange("ADD");
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
ErrorHandler.WriteErrorLog("CleanHistory.cs", ex);
|
|
}
|
|
}
|
|
|
|
private void tsbEdit_Click(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
if (strPKey == "")
|
|
{
|
|
MessageBox.Show("請先選擇資料", "提示");
|
|
return;
|
|
}
|
|
CleanToolbar();
|
|
UnLockForm();
|
|
StatusChange("Modify");
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
ErrorHandler.WriteErrorLog("CleanHistory.cs", ex);
|
|
}
|
|
}
|
|
|
|
private void tsbSave_Click(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
string strMessage = CheckForm();
|
|
if (strMessage == "")
|
|
{
|
|
this.SaveEven();
|
|
//GetMemberData(strPKey);
|
|
}
|
|
else
|
|
{
|
|
MessageBox.Show(strMessage,"提示");
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
ErrorHandler.WriteErrorLog("CleanHistory.cs", ex);
|
|
}
|
|
}
|
|
|
|
private void tsbDelete_Click(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
if (MessageBox.Show("請問您確定要進行資料清除動作?", "提示", MessageBoxButtons.YesNo) == DialogResult.Yes)
|
|
{
|
|
this.DelEven();
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
ErrorHandler.WriteErrorLog("CleanHistory.cs", ex);
|
|
}
|
|
}
|
|
|
|
private void tsbSearch_Click(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
//設定Toolbar狀態
|
|
CleanToolbar();
|
|
|
|
//開放查詢條件
|
|
UnLockForm();
|
|
|
|
//設定畫面物件狀態
|
|
CleanForm();
|
|
StatusChange("Search");
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
ErrorHandler.WriteErrorLog("CleanHistory.cs", ex);
|
|
}
|
|
}
|
|
|
|
private void tsbOK_Click(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
GoEvent();
|
|
|
|
//還原Toolbar狀態
|
|
tsbSearch.Enabled = true;
|
|
tsbOK.Visible = false;
|
|
|
|
//關閉查詢條件
|
|
LockForm();
|
|
StatusChange("Search");
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
ErrorHandler.WriteErrorLog("CleanHistory.cs", ex);
|
|
}
|
|
}
|
|
|
|
private void tsbCancel_Click(object sender, EventArgs e)
|
|
{
|
|
CleanForm();
|
|
CleanToolbar();
|
|
LockForm();
|
|
StatusChange("None");
|
|
}
|
|
|
|
private void CleanHistory_Load(object sender, EventArgs e)
|
|
{
|
|
CleanForm();
|
|
GetCurrentData();
|
|
SetupStatus(); //設定畫面狀態
|
|
}
|
|
|
|
private void tsbExit_Click(object sender, EventArgs e)
|
|
{
|
|
this.Close();
|
|
}
|
|
|
|
private void tsbClean_Click(object sender, EventArgs e)
|
|
{
|
|
CleanForm();
|
|
}
|
|
|
|
#endregion
|
|
|
|
private void dpCleanBefor_ValueChanged(object sender, EventArgs e)
|
|
{
|
|
GetCurrentData();
|
|
}
|
|
}
|
|
}
|