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.
163 lines
5.7 KiB
163 lines
5.7 KiB
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Data;
|
|
using System.Drawing;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Windows.Forms;
|
|
using System.Xml.Linq;
|
|
using System.IO;
|
|
using System.Configuration;
|
|
using ManagementSystem.Utility;
|
|
|
|
namespace ManagementSystem
|
|
{
|
|
public partial class CurrencySetting : Form
|
|
{
|
|
//變數宣告
|
|
public string strOwnerForm = ""; //設定表單的擁有者
|
|
string strXMLName = "CurrencySetting"; //XML的名稱
|
|
|
|
public CurrencySetting()
|
|
{
|
|
InitializeComponent();
|
|
}
|
|
|
|
#region 自定義程式
|
|
private void CleanForm()
|
|
{
|
|
dgvDataMaintain.Rows.Clear();
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region 事件觸發及問題處理
|
|
private void btnCancle_Click(object sender, EventArgs e)
|
|
{
|
|
this.Close();
|
|
}
|
|
|
|
private void dgvDataMaintain_CellContentClick(object sender, DataGridViewCellEventArgs e)
|
|
{
|
|
|
|
}
|
|
|
|
private void dgvDataMaintain_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e)
|
|
{
|
|
DataGridViewComboBoxCell cbCell = (DataGridViewComboBoxCell)dgvDataMaintain.Rows[e.RowIndex].Cells["cCurrency"];
|
|
if (cbCell.Items.Count == 0)
|
|
{
|
|
cbCell.DataSource = UtilityClass.GetSystemArgument("Currency", "zh-TW").Tables["Arguments"];
|
|
cbCell.DisplayMember = "ArgumentValue";
|
|
cbCell.ValueMember = "ArgumentID";
|
|
}
|
|
}
|
|
|
|
private void dgvDataMaintain_CellEnter(object sender, DataGridViewCellEventArgs e)
|
|
{
|
|
DataGridViewComboBoxCell cbCell = (DataGridViewComboBoxCell)dgvDataMaintain.Rows[e.RowIndex].Cells["cCurrency"];
|
|
if (cbCell.Items.Count == 0)
|
|
{
|
|
cbCell.DataSource = UtilityClass.GetSystemArgument("Currency", "zh-TW").Tables["Arguments"];
|
|
cbCell.DisplayMember = "ArgumentValue";
|
|
cbCell.ValueMember = "ArgumentID";
|
|
}
|
|
}
|
|
|
|
private void btnClean_Click(object sender, EventArgs e)
|
|
{
|
|
CleanForm();
|
|
}
|
|
|
|
private void dgvDataMaintain_RowValidating(object sender, DataGridViewCellCancelEventArgs e)
|
|
{
|
|
//宣告物件
|
|
string strErrorMsg = "";
|
|
string strCurrency = (string)dgvDataMaintain.Rows[e.RowIndex].Cells["cCurrency"].Value;
|
|
string strCurrencyRate = (string)dgvDataMaintain.Rows[e.RowIndex].Cells["cCurrencyRate"].Value;
|
|
if (!dgvDataMaintain.Rows[e.RowIndex].IsNewRow)
|
|
{
|
|
if ((string.IsNullOrEmpty(strCurrency.Trim()) ? "" : strCurrency) == "")
|
|
{
|
|
strErrorMsg = "請選擇幣別";
|
|
}
|
|
|
|
if ((string.IsNullOrEmpty(strCurrencyRate.Trim()) ? "" : strCurrencyRate) == "")
|
|
{
|
|
strErrorMsg = "請輸入匯率";
|
|
}
|
|
else if (!UtilityClass.IsNumber(strCurrencyRate.Trim()))
|
|
{
|
|
strErrorMsg = "匯率必須為數值";
|
|
}
|
|
}
|
|
|
|
if (strErrorMsg != "")
|
|
{
|
|
dgvDataMaintain.Rows[e.RowIndex].ErrorText = strErrorMsg;
|
|
e.Cancel = true;
|
|
}
|
|
}
|
|
|
|
private void dgvDataMaintain_RowValidated(object sender, DataGridViewCellEventArgs e)
|
|
{
|
|
dgvDataMaintain.Rows[e.RowIndex].ErrorText = "";
|
|
}
|
|
|
|
private void btnConfirm_Click(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
string strXMLPath = ConfigurationManager.AppSettings["XMLFilePath"].ToString();
|
|
XElement xmlRoot = new XElement("Root");
|
|
foreach (DataGridViewRow drData in dgvDataMaintain.Rows)
|
|
{
|
|
if (!drData.IsNewRow)
|
|
{
|
|
XElement xmlContent = new XElement("Currency");
|
|
xmlRoot.Add(xmlContent);
|
|
XElement xmlSub = new XElement("CurrencyID", drData.Cells[0].Value.ToString());
|
|
xmlSub.Add(new XAttribute("CurrencyRate", drData.Cells[1].Value.ToString()));
|
|
xmlContent.Add(xmlSub);
|
|
|
|
}
|
|
}
|
|
if (!File.Exists(strXMLPath))
|
|
{
|
|
UtilityClass.CreateDir(strXMLPath);
|
|
}
|
|
xmlRoot.Save(strXMLPath + strXMLName + ".xml");
|
|
MessageBox.Show("設定完成", "提示");
|
|
this.Close();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
MessageBox.Show("設定錯誤", "提示");
|
|
ErrorHandler.WriteErrorLog("CurrencySetting.cs", ex);
|
|
this.Close();
|
|
}
|
|
}
|
|
|
|
private void CurrencySetting_Load(object sender, EventArgs e)
|
|
{
|
|
string strXMLPath = ConfigurationManager.AppSettings["XMLFilePath"].ToString() + strXMLName + ".xml";
|
|
if (File.Exists(strXMLPath))
|
|
{
|
|
XDocument xmlContent = XDocument.Load(strXMLPath);
|
|
|
|
foreach (XElement xmlData in xmlContent.Descendants("Currency"))
|
|
{
|
|
DataGridViewRow dgvRow = new DataGridViewRow();
|
|
dgvRow.CreateCells(dgvDataMaintain);
|
|
dgvRow.Cells[1].Value = xmlData.Element("CurrencyID").Value.ToString();
|
|
dgvRow.Cells[2].Value = xmlData.Element("CurrencyID").Attribute("CurrencyRate").Value.ToString();
|
|
dgvDataMaintain.Rows.Add(dgvRow);
|
|
}
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
}
|
|
}
|