📄 main.cs
字号:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Data.SqlServerCe;
namespace GasNote
{
public partial class Main : Form
{
public Main()
{
InitializeComponent();
}
DataAccess da = new DataAccess();
private void Main_Load(object sender, EventArgs e)
{
try
{
if (cmb_CarName.Items.Count == 0)
{
GetCarList();
}
if (cmb_CarName.Items.Count > 0)
{
GetGasList();
}
}
catch
{
this.Close();
}
}
private void GetCarList()
{
try
{
this.cmb_CarName.SelectedIndexChanged -= new System.EventHandler(this.cmb_CarName_SelectedIndexChanged);
DataSet dsCar = da.GetCarList();
if (dsCar.Tables["CarList"].Rows.Count == 0)
{
AddCar ac = new AddCar();
DialogResult dr = ac.ShowDialog();
if (dr == DialogResult.OK)
{
dsCar.Dispose();
GetCarList();
}
else if (dr == DialogResult.Cancel)
{
cmb_CarName.DataSource = null;
this.Close();
}
}
else
{
cmb_CarName.DataSource = dsCar.Tables["CarList"];
cmb_CarName.DisplayMember = "CarName";
cmb_CarName.ValueMember = "CarNo";
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
this.Close();
}
finally
{
this.cmb_CarName.SelectedIndexChanged += new System.EventHandler(this.cmb_CarName_SelectedIndexChanged);
}
}
private void menuItem2_Click(object sender, EventArgs e)
{
AddCar ac = new AddCar();
if (ac.ShowDialog() == DialogResult.OK)
{
GetCarList();
}
}
private void menuItem3_Click(object sender, EventArgs e)
{
try
{
if (cmb_CarName.SelectedIndex < 0) return;
string msg = "確定刪除 : " + cmb_CarName.Text + "的所有資料?";
if (MessageBox.Show(msg, "注意", MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.OK)
{
da.DeleteCarList((int)cmb_CarName.SelectedValue);
GetCarList();
if (cmb_CarName.Items.Count > 0)
{
GetGasList();
}
}
}
catch
{
this.Close();
}
}
private void GetGasList ()
{
try
{
if (cmb_CarName.Items.Count == 0 || cmb_CarName.SelectedIndex < 0) return;
DataSet dsGas = da.GetGasList(int.Parse(cmb_CarName.SelectedValue.ToString()));
dsGas.Tables[0].Columns.Add("Trip", typeof(int));
dsGas.Tables[0].Columns["Trip"].DefaultValue = 0;
dsGas.Tables[0].Columns.Add("GasAvg", typeof(decimal));
dsGas.Tables[0].Columns["GasAvg"].DefaultValue = 0;
dsGas.Tables[0].Columns.Add("PayAvg", typeof(decimal));
dsGas.Tables[0].Columns["PayAvg"].DefaultValue = 0;
if (dsGas.Tables[0].Rows.Count > 1)
{
for (int i = 1; i < dsGas.Tables[0].Rows.Count; i++)
{
dsGas.Tables[0].Rows[i]["Trip"] = Math.Abs(decimal.Parse(dsGas.Tables[0].Rows[i]["ODO"].ToString()) - decimal.Parse(dsGas.Tables[0].Rows[i - 1]["ODO"].ToString()));
dsGas.Tables[0].Rows[i]["GasAvg"] = Math.Abs(decimal.Parse(dsGas.Tables[0].Rows[i]["Trip"].ToString()) / decimal.Parse(dsGas.Tables[0].Rows[i]["Gas"].ToString()));
dsGas.Tables[0].Rows[i]["PayAvg"] = Math.Abs(decimal.Parse(dsGas.Tables[0].Rows[i]["Payment"].ToString()) / decimal.Parse(dsGas.Tables[0].Rows[i]["Trip"].ToString()));
}
}
grid_GasList.DataSource = dsGas.Tables[0];
GetInfo(dsGas.Tables[0]);
}
catch
{
this.Close();
}
}
private void GetInfo(DataTable dtGas)
{
try
{
lbl_GasAvg.Text = "0.00";
lbl_PayAvg.Text = "0.00";
lbl_BestGasAvg.Text = "0.00";
lbl_FillFreq.Text = "0.00";
lbl_Paykm.Text = "0.00";
if (dtGas.Rows.Count > 0)
{
decimal TotGas = 0;
decimal BestGasAvg = 0;
int TotGasDay = 0;
decimal TotPayment = 0;
decimal Paykm = 0;
if (dtGas.Rows.Count > 1)
{
for (int i = 1; i < dtGas.Rows.Count; i++)
{
TotGas += decimal.Parse(dtGas.Rows[i]["GasAvg"].ToString());
if (i == 1)
{
BestGasAvg = (decimal)dtGas.Rows[i]["GasAvg"];
}
else if (decimal.Parse(dtGas.Rows[i]["GasAvg"].ToString()) < BestGasAvg)
{
BestGasAvg = (decimal)dtGas.Rows[i]["GasAvg"];
}
TotPayment += decimal.Parse(dtGas.Rows[i]["Payment"].ToString());
TimeSpan ts = ((DateTime)dtGas.Rows[i]["FillDate"]).Subtract((DateTime)dtGas.Rows[i - 1]["FillDate"]);
TotGasDay += Convert.ToInt16(ts.TotalDays);
Paykm += decimal.Parse(dtGas.Rows[i]["PayAvg"].ToString());
}
lbl_GasAvg.Text = Convert.ToDecimal(TotGas / (dtGas.Rows.Count - 1)).ToString("#,###.#0");
lbl_PayAvg.Text = Convert.ToDecimal(TotPayment / (dtGas.Rows.Count - 1)).ToString("#,###.#0");
lbl_BestGasAvg.Text = BestGasAvg.ToString("#,###.#0");
lbl_FillFreq.Text = Math.Abs(Convert.ToDecimal(TotGasDay / (dtGas.Rows.Count - 1))).ToString("#,###.#0");
lbl_Paykm.Text = Convert.ToDecimal(Paykm / (dtGas.Rows.Count - 1)).ToString("#,###.#0");
}
else if (dtGas.Rows.Count == 1)
{
lbl_GasAvg.Text = TotGas.ToString("#,###,#0");
lbl_PayAvg.Text = TotPayment.ToString("#,###,#0");
lbl_BestGasAvg.Text = "0.00";
lbl_FillFreq.Text = Convert.ToDecimal(TotGasDay).ToString("#,###,#0");
lbl_Paykm.Text = "0.00";
}
}
}
catch
{
this.Close();
}
}
private void cmb_CarName_SelectedIndexChanged(object sender, EventArgs e)
{
try
{
GetGasList();
}
catch
{
this.Close();
}
}
private void btn_Add_Click(object sender, EventArgs e)
{
try
{
AddGas ag = new AddGas((int)cmb_CarName.SelectedValue);
if (ag.ShowDialog() == DialogResult.OK)
{
GetGasList();
}
}
catch
{
this.Close();
}
}
private void btn_Edit_Click(object sender, EventArgs e)
{
try
{
if (grid_GasList.CurrentRowIndex < 0) return;
int CarNo = (int)cmb_CarName.SelectedValue;
DateTime FillDate = (DateTime)grid_GasList[grid_GasList.CurrentRowIndex, 0];
decimal ODO = (decimal)grid_GasList[grid_GasList.CurrentRowIndex, 1];
decimal Gas = (decimal)grid_GasList[grid_GasList.CurrentRowIndex, 3];
decimal Payment = (decimal)grid_GasList[grid_GasList.CurrentRowIndex, 5];
int ID = (int)grid_GasList[grid_GasList.CurrentRowIndex, 7];
AddGas ag = new AddGas(CarNo, FillDate, ODO, Gas, Payment, ID);
if (ag.ShowDialog() == DialogResult.OK)
{
GetGasList();
}
}
catch
{
this.Close();
}
}
private void btn_Delete_Click(object sender, EventArgs e)
{
try
{
if (grid_GasList.CurrentRowIndex < 0) return;
string msg = "";
msg = "請問是否確定刪除此筆資料\r\n";
msg += "日期 : " + ((DateTime)grid_GasList[grid_GasList.CurrentRowIndex, 0]).ToString("yyyy/MM/dd") + "\r\n";
msg += "總里程 : " + ((decimal)grid_GasList[grid_GasList.CurrentRowIndex, 1]).ToString("#,###.#0") + "\r\n";
msg += "加油量 : " + ((decimal)grid_GasList[grid_GasList.CurrentRowIndex, 3]).ToString("#,###.#0") + "\r\n";
msg += "油資 : " + ((decimal)grid_GasList[grid_GasList.CurrentRowIndex, 5]).ToString("#,###.#0");
if (MessageBox.Show(msg, "注意", MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.OK)
{
da.DeleteGasList((int)grid_GasList[grid_GasList.CurrentRowIndex, 7]);
GetGasList();
}
}
catch
{
this.Close();
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -