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.
416 lines
15 KiB
416 lines
15 KiB
using ManagementSystem.Utility;
|
|
using System;
|
|
using System.Data;
|
|
using System.Data.SqlClient;
|
|
using System.Text;
|
|
using System.Windows.Forms;
|
|
using System.Drawing;
|
|
|
|
namespace ManagementSystem
|
|
{
|
|
public partial class AccountingBookMaintain : Form
|
|
{
|
|
//程式內共用物件
|
|
public string strFrmStatus = ""; //表單狀態
|
|
public string strPKey = ""; //程式內的Key值
|
|
string strKey = ""; //程式內加密的Key值
|
|
string strActiveUserID = ""; //取得登入作用的使用者帳號
|
|
SqlConnection sqlConn = UtilityClass.GetConn(MainForm.strAccountingBookID);
|
|
SqlTransaction sqlTran;
|
|
SqlDataAdapter sqlAdapter = new SqlDataAdapter();
|
|
SqlCommand sqlCmd = new SqlCommand();
|
|
DataSet sdInsurance = new System.Data.DataSet();
|
|
|
|
public AccountingBookMaintain()
|
|
{
|
|
InitializeComponent();
|
|
}
|
|
|
|
#region 自定義程式
|
|
private void StatusChange(string strStatus) //變更主畫面狀態
|
|
{
|
|
strActiveUserID = MainForm.strActiveUserID;
|
|
strKey = MainForm.strKey;
|
|
|
|
switch (strStatus.ToUpper())
|
|
{
|
|
case "NONE":
|
|
strFrmStatus = "";
|
|
CleanToolbar();
|
|
LockForm();
|
|
CleanForm();
|
|
dgvAccountingBook.ReadOnly = false;
|
|
break;
|
|
case "SEARCH":
|
|
CleanToolbar();
|
|
UnLockForm();
|
|
tsbOK.Visible = true;
|
|
tsbCancel.Visible = true;
|
|
tsbSearch.Visible = false;
|
|
tsbAdd.Enabled = false;
|
|
tsbEdit.Enabled = false;
|
|
tsbDelete.Enabled = false;
|
|
txtAccountingBookID.Focus();
|
|
((MainForm)ParentForm).SsStatus.Items["tsslStatus"].Text = "搜尋";
|
|
break;
|
|
case "ADD":
|
|
CleanToolbar();
|
|
CleanForm();
|
|
UnLockForm();
|
|
tsbSave.Visible = true;
|
|
tsbCancel.Visible = true;
|
|
tsbAdd.Visible = false;
|
|
tsbSearch.Enabled = false;
|
|
tsbEdit.Enabled = false;
|
|
tsbDelete.Enabled = false;
|
|
txtAccountingBookID.Focus();
|
|
((MainForm)ParentForm).SsStatus.Items["tsslStatus"].Text = "新增";
|
|
strFrmStatus = "ADD";
|
|
break;
|
|
case "MODIFY":
|
|
CleanToolbar();
|
|
UnLockForm();
|
|
txtAccountingBookID.ReadOnly = true;
|
|
tsbSave.Visible = true;
|
|
tsbCancel.Visible = true;
|
|
tsbSearch.Enabled = false;
|
|
tsbAdd.Enabled = false;
|
|
tsbEdit.Visible = false;
|
|
tsbDelete.Enabled = false;
|
|
txtAccountingBookID.Focus();
|
|
((MainForm)ParentForm).SsStatus.Items["tsslStatus"].Text = "修改";
|
|
strFrmStatus = "MODIFY";
|
|
break;
|
|
case "DEL":
|
|
try
|
|
{
|
|
if (MessageBox.Show("請問您確定要刪除本資料?", "提示", MessageBoxButtons.YesNo) == DialogResult.Yes)
|
|
{
|
|
this.DelEven();
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
ErrorHandler.WriteErrorLog("AccountingBookMaintain.cs", ex);
|
|
}
|
|
strFrmStatus = "DEL";
|
|
break;
|
|
}
|
|
}
|
|
|
|
private void CleanToolbar() //清除工具列
|
|
{
|
|
//設定Toolbar狀態
|
|
tsbSearch.Enabled = true;
|
|
tsbSearch.Visible = true;
|
|
tsbAdd.Enabled = true;
|
|
tsbAdd.Visible = true;
|
|
tsbEdit.Enabled = false;
|
|
tsbEdit.Visible = false;
|
|
tsbDelete.Enabled = true;
|
|
tsbDelete.Visible = true;
|
|
tsbSave.Visible = false;
|
|
tsbOK.Visible = false;
|
|
tsbCancel.Visible = false;
|
|
}
|
|
|
|
private void GetAccountingBookInfoByID(string strAccountingBookID)
|
|
{
|
|
try
|
|
{
|
|
//排除空值
|
|
if (strAccountingBookID.Trim() == "")
|
|
{
|
|
return;
|
|
}
|
|
if (strAccountingBookID == null)
|
|
{
|
|
return;
|
|
}
|
|
|
|
strPKey = strAccountingBookID;
|
|
|
|
StringBuilder strSQL = new StringBuilder("");
|
|
strSQL.Append("Select * ");
|
|
strSQL.Append("From OTB_FNC_AccountingBookInfo ");
|
|
strSQL.Append("Where AccountingBookID = '" + strPKey + "'");
|
|
|
|
//進行查詢
|
|
DataTable dtTemp = (DataTable)UtilityClass.GetSQLResult(strSQL.ToString()).Tables["Result"];
|
|
|
|
//進行資料顯示
|
|
txtAccountingBookID.Text = dtTemp.Rows[0]["AccountingBookID"].ToString();
|
|
txtAccountingBookName.Text = dtTemp.Rows[0]["AccountingBookName"].ToString();
|
|
cbBelongOrg.SelectedValue = dtTemp.Rows[0]["BelongOrg"].ToString();
|
|
cbEffective.Checked = (dtTemp.Rows[0]["Effective"].ToString() == "Y");
|
|
((MainForm)ParentForm).SsStatus.Items["tsslModifyUser"].Text = dtTemp.Rows[0]["ModifyUser"].ToString().Trim();
|
|
((MainForm)ParentForm).SsStatus.Items["tsslModifyDate"].Text = dtTemp.Rows[0]["ModifyDate"].ToString().Trim();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
ErrorHandler.WriteErrorLog("AccountingBookMaintain.cs", ex);
|
|
}
|
|
}
|
|
|
|
private void CleanForm() //清除畫面
|
|
{
|
|
string strSQL = "Select AccountingBookID, AccountingBookName From OTB_FNC_AccountingBookInfo";
|
|
dgvAccountingBook.DataSource = UtilityClass.GetSQLResult(strSQL).Tables["Result"]; ;
|
|
|
|
cbBelongOrg.DataSource = UtilityClass.GetOrgList().Tables["Organizations"]; //取得清單列表
|
|
cbBelongOrg.ValueMember = "OrganizationID";
|
|
cbBelongOrg.DisplayMember = "OrganizationName";
|
|
|
|
txtAccountingBookID.Text = "";
|
|
txtAccountingBookName.Text = "";
|
|
cbBelongOrg.SelectedIndex = 0;
|
|
cbEffective.Checked = true;
|
|
}
|
|
|
|
private bool CheckForm() //確認資料是否填寫正確
|
|
{
|
|
if (txtAccountingBookID.Text.Trim() == "")
|
|
{
|
|
MessageBox.Show("請填寫帳本編號", "提示");
|
|
txtAccountingBookID.Focus();
|
|
return false;
|
|
}
|
|
|
|
if (txtAccountingBookID.Text.Trim() == "")
|
|
{
|
|
MessageBox.Show("請填寫帳本名稱", "提示");
|
|
txtAccountingBookName.Focus();
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
private void UnLockForm() //解除限制唯讀物件
|
|
{
|
|
txtAccountingBookID.ReadOnly = false;
|
|
txtAccountingBookName.ReadOnly = false;
|
|
cbBelongOrg.Enabled = true;
|
|
}
|
|
|
|
private void LockForm() //限制唯讀物件
|
|
{
|
|
txtAccountingBookID.ReadOnly = true;
|
|
txtAccountingBookName.ReadOnly = true;
|
|
cbBelongOrg.Enabled = false;
|
|
}
|
|
|
|
private void DelEven() //刪除事件
|
|
{
|
|
StringBuilder sbSQL = new StringBuilder();
|
|
try
|
|
{
|
|
//執行Delete命令
|
|
//執行命令
|
|
string strCheckSQL = string.Format("Select AccountingBookID From OTB_FNC_AccountingMaxNumber Where AccountingBookID ='{0}'",strPKey);
|
|
|
|
if (UtilityClass.IsExist(strCheckSQL))
|
|
{
|
|
//帳號資料有被使用
|
|
MessageBox.Show("該帳本已被開帳使用,無法刪除!", "提示");
|
|
}
|
|
else
|
|
{
|
|
sbSQL.Append("Delete OTB_FNC_AccountingBookInfo Where AccountingBookID = @AccountingBookID");
|
|
|
|
using (SqlDataAdapter sqlAdapter = new SqlDataAdapter())
|
|
{
|
|
//添加參數
|
|
sqlAdapter.DeleteCommand = new SqlCommand();
|
|
sqlAdapter.DeleteCommand.Connection = sqlConn;
|
|
sqlAdapter.DeleteCommand.CommandText = sbSQL.ToString();
|
|
sqlAdapter.DeleteCommand.Parameters.AddRange
|
|
(
|
|
new SqlParameter[]
|
|
{
|
|
new SqlParameter("@AccountingBookID",txtAccountingBookID.Text.Trim()),
|
|
}
|
|
);
|
|
|
|
if (sqlConn.State == ConnectionState.Closed) //判斷連線狀態
|
|
{
|
|
sqlConn.Open();
|
|
}
|
|
|
|
sqlAdapter.DeleteCommand.ExecuteNonQuery();
|
|
GetAccountingBookInfoByID(txtAccountingBookID.Text.Trim()); //顯示該帳本的值到畫面上
|
|
|
|
}
|
|
|
|
|
|
StatusChange("None");
|
|
LockForm();
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
ErrorHandler.WriteErrorLog("AccountingBookMaintain.cs", ex);
|
|
}
|
|
}
|
|
|
|
private void AddEvent() //新增事件
|
|
{
|
|
try
|
|
{
|
|
if (CheckForm())
|
|
{
|
|
//進行資料新增
|
|
StringBuilder strSQL = new StringBuilder();
|
|
strSQL.Clear();
|
|
strSQL.Append("Insert Into OTB_FNC_AccountingBookInfo(AccountingBookID, AccountingBookName, BelongOrg, Effective, CreateDate, CreateUser, ModifyDate, ModifyUser)");
|
|
strSQL.Append("Values (@AccountingBookID, @AccountingBookName, @BelongOrg, @Effective, Getdate(),'" + strActiveUserID + "',Getdate(),'" + strActiveUserID + "') ");
|
|
|
|
//添加參數
|
|
sqlAdapter.InsertCommand = new SqlCommand();
|
|
sqlAdapter.InsertCommand.Connection = sqlConn;
|
|
sqlAdapter.InsertCommand.CommandText = strSQL.ToString();
|
|
sqlAdapter.InsertCommand.Transaction = sqlTran;
|
|
sqlAdapter.InsertCommand.Parameters.AddRange
|
|
(
|
|
new SqlParameter[]
|
|
{
|
|
new SqlParameter("@AccountingBookID",txtAccountingBookID.Text.Trim()),
|
|
new SqlParameter("@AccountingBookName",txtAccountingBookName.Text.Trim()),
|
|
new SqlParameter("@BelongOrg",cbBelongOrg.SelectedValue.ToString()),
|
|
new SqlParameter("@Effective",cbEffective.Checked ? "Y" : "N")
|
|
}
|
|
);
|
|
if (sqlConn.State == ConnectionState.Closed) //判斷連線狀態
|
|
{
|
|
sqlConn.Open();
|
|
}
|
|
|
|
sqlAdapter.InsertCommand.ExecuteNonQuery();
|
|
MessageBox.Show("資料新增成功", "提示");
|
|
dgvAccountingBook.ReadOnly = false;
|
|
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
MessageBox.Show("資料新增失敗!", "提示");
|
|
ErrorHandler.WriteErrorLog("AccountingBookMaintain.cs", ex);
|
|
}
|
|
}
|
|
|
|
private void EditEvent() //修改事件
|
|
{
|
|
try
|
|
{
|
|
if (CheckForm())
|
|
{
|
|
//進行資料維護
|
|
|
|
MessageBox.Show("資料修改成功", "提示");
|
|
dgvAccountingBook.ReadOnly = false;
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
MessageBox.Show("資料修改失敗!", "提示");
|
|
ErrorHandler.WriteErrorLog("AccountingBookMaintain.cs", ex);
|
|
}
|
|
}
|
|
|
|
private void GoEvent() //執行事件
|
|
{
|
|
switch (strFrmStatus)
|
|
{
|
|
case "ADD": //新增事件
|
|
AddEvent();
|
|
StatusChange("NONE");
|
|
break;
|
|
|
|
case "MODIFY": //修改事件
|
|
EditEvent();
|
|
StatusChange("NONE");
|
|
break;
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region 事件觸發及問題處理
|
|
private void AccountingBookMaintain_Load(object sender, EventArgs e)
|
|
{
|
|
StatusChange("NONE");
|
|
}
|
|
|
|
private void tsbClean_Click(object sender, EventArgs e)
|
|
{
|
|
CleanForm();
|
|
}
|
|
|
|
private void tsbSearch_Click(object sender, EventArgs e)
|
|
{
|
|
StatusChange("SEARCH");
|
|
}
|
|
|
|
private void tsbAdd_Click(object sender, EventArgs e)
|
|
{
|
|
dgvAccountingBook.ReadOnly = true;
|
|
StatusChange("ADD");
|
|
}
|
|
|
|
private void tsbExit_Click(object sender, EventArgs e)
|
|
{
|
|
this.Close();
|
|
}
|
|
|
|
private void tsbCancel_Click(object sender, EventArgs e)
|
|
{
|
|
StatusChange("NONE");
|
|
}
|
|
|
|
private void tsbEdit_Click(object sender, EventArgs e)
|
|
{
|
|
dgvAccountingBook.ReadOnly = true;
|
|
StatusChange("MODIFY");
|
|
}
|
|
|
|
private void dgvAccountingBook_CellEnter(object sender, DataGridViewCellEventArgs e)
|
|
{
|
|
GetAccountingBookInfoByID(dgvAccountingBook.CurrentRow.Cells[0].Value.ToString()); //顯示該帳本的值到畫面上
|
|
}
|
|
|
|
private void tsbSave_Click(object sender, EventArgs e)
|
|
{
|
|
GoEvent(); //執行儲存動作
|
|
}
|
|
|
|
private void tsbDelete_Click(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
if (MessageBox.Show("請問您確定要刪除本帳本?", "提示", MessageBoxButtons.YesNo) == DialogResult.Yes)
|
|
{
|
|
this.DelEven();
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
ErrorHandler.WriteErrorLog("AccountingBookMaintain.cs", ex);
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
}
|