|
|
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(); } } }
|