csharp
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using WinBookKeeping.Models;
using WinBookKeeping.Utility;
using WinBookKeeping.Models;
namespace WinBookKeeping
{
public partial class FormExpendManage : Form
{
public FormExpendManage()
{
InitializeComponent();
}
string itemPath = CommonHelper.itemPath;
string filePath = CommonHelper.expendPath;
int actType = 1;
ListViewItem curItem;
int selIndex = -1;
int lastId = 0;
List<ExpendInfo> expendList = new List<ExpendInfo>();
private void label3_Click(object sender, EventArgs e)
{
}
private void label6_Click(object sender, EventArgs e)
{
}
private void button2_Click(object sender, EventArgs e)
{
}
private void FormExpendManage_Load(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(itemPath) || string.IsNullOrEmpty(filePath))
{
MessageHelper.Error("支出加载", "文件路径并没有配置");
foreach (Control c in this.Controls)
{
c.Enabled = false;
}
return;
LoadCboExpendItems();
listViewExpendList.Items.Clear();
LoadExpendList();
}
}
private void LoadExpendList()
{
//throw new NotImplementedException();
List<ExpendInfo> expendData = CommonHelper.GetExpendList();
if (expendData.Count > 0)
{
foreach (ExpendInfo item in expendData)
{
ListViewItem li = new ListViewItem();
li.Text = item.ExpendId.ToString();
li.SubItems.Add(item.ItemName);
li.SubItems.Add(item.ExpendDesp);
li.SubItems.Add("¥" + item.Money.ToString("0.00"));
li.SubItems.Add(item.ExpendTime);
listViewExpendList.Items.Add(li);
expendList.Add(item);
}
int lastIndex = expendData.Count - 1;
lastId = expendData[lastIndex].ExpendId;
}
textBoxRecord.Text = (lastId + 1).ToString();
}
private void LoadCboExpendItems()
{
//throw new NotImplementedException();
comboBoxItems.Items.Clear();
comboBoxFItems.Items.Clear();
List<string> items = CommonHelper.GetItems(2);
if (items.Count > 0)
{
foreach (string item in items)
{
comboBoxItems.Items.Add(item);
comboBoxFItems.Items.Add(item);
}
comboBoxItems.Items.Insert(0, "请选择");
comboBoxFItems.SelectedIndex = 0;
comboBoxItems.SelectedIndex = 0;
}
}
private void butOk_Click(object sender, EventArgs e)
{
int id = int.Parse(textBoxRecord.Text.Trim());
string itemName = comboBoxItems.Text.Trim();
string remark = textBoxDes.Text.Trim();
decimal money = 0.00M;
decimal.TryParse(textBoxMoney.Text.Trim(), out money);
string expendTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
if (string.IsNullOrEmpty(remark))
{
MessageHelper.Error("支出记录提交", "支出记录描述不能空!");
textBoxDes.Focus();
return;
}
if (money <= 0)
{
MessageHelper.Error("支出记录提交", "支出金额不能小于0");
textBoxMoney.Focus();
return;
}
ExpendInfo expendinfo = new ExpendInfo()
{
ExpendId = id,
ItemName = itemName,
ExpendDesp = remark,
Money = money,
ExpendTime = expendTime
};
ListViewItem li = CreateLvItem(expendinfo);
if (actType == 1)
{
if (!File.Exists(filePath))
{
TextHelper.WriteMsg("编号;名目;描述;金额;记录时间", filePath, false);
}
TextHelper.WriteMsg(id + ";" + itemName + ";" + remark + ";" + money.ToString("0.00") + ";" + expendTime,
filePath, false);
// TextHelper.WriteMsg(id + ";" + itemName + ";" + remark + ";" + money.ToString("0.00") + ";" + expendTime, filePath
// , true);
listViewExpendList.Items.Add(li);
expendList.Add(expendinfo);
lastId = id;
}
else
{
listViewExpendList.Items.Insert(selIndex, li);
expendList[selIndex] = expendinfo;
listViewExpendList.Items.RemoveAt(selIndex + 1);
}
}
private ListViewItem CreateLvItem(ExpendInfo info)
{
//throw new NotImplementedException();
ListViewItem li = new ListViewItem();
li.Text = info.ExpendId.ToString();
li.SubItems.Add(info.ItemName);
li.SubItems.Add(info.ExpendDesp);
li.SubItems.Add("¥" + info.Money.ToString("0.00"));
li.SubItems.Add(info.ExpendTime);
return li;
}
private void butClear_Click(object sender, EventArgs e)
{
textBoxRecord.Text = (lastId + 1).ToString();
if (comboBoxItems.Items.Count > 0)
{
comboBoxItems.SelectedIndex = 0;
}
else
{
comboBoxItems.Text = "";
}
textBoxDes.Text = "";
textBoxMoney.Text = "";
if (actType != 1)
{
actType = 1;
butOk.Text = "新增";
}
}
private void listViewExpendList_SelectedIndexChanged(object sender, EventArgs e)
{
if (listViewExpendList.SelectedItems.Count > 0)
{
var selItem = listViewExpendList.SelectedItems[0];
actType = 2;
curItem = selItem;
textBoxRecord.Text = curItem.Text;
comboBoxItems.Text = curItem.SubItems[1].Text;
textBoxDes.Text = curItem.SubItems[2].Text;
textBoxMoney.Text = curItem.SubItems[3].Text.Substring(1);
butOk.Text = "修改";
selIndex = listViewExpendList.SelectedIndices[0];
}
}
private void butDel_Click(object sender, EventArgs e)
{
var selList = listViewExpendList.SelectedItems;
if (selList.Count > 0)
{
DialogResult dr = MessageHelper.Confirm("删除支出记录", "确定删除吗?");
if (dr == DialogResult.Yes)
{
List<ListViewItem> selItems = new List<ListViewItem>();
foreach (ListViewItem item in selList)
{
selItems.Add(item);
}
int i = 0;
while (i < selItems.Count)
{
int index = listViewExpendList.Items.IndexOf(selItems[i]);
listViewExpendList.Items.Remove(selItems[i]);
expendList.RemoveAt(index);
if (curItem == selItems[i])
{
textBoxRecord.Text = "";
comboBoxItems.SelectedIndex = 0;
textBoxDes.Text = "";
textBoxMoney.Text = "";
if (actType != 1)
{
actType = 1;
butOk.Text = "新增";
}
curItem = null;
}
i++;
}
actType = 3;
lastId = expendList[expendList.Count - 1].ExpendId;
MessageHelper.Info("删除支出记录", "删除成功");
}
}
}
private void butSave_Click(object sender, EventArgs e)
{
if (actType != 1 && expendList.Count > 0)
{
List<string> msgList = new List<string>();
TextHelper.WriteMsg("编号;名目;描述;金额;记录时间", filePath, false);
int id = 0;
listViewExpendList.Items.Clear();
foreach (ExpendInfo info in expendList)
{
id += 1;
info.ExpendId = id;
string val = id + ";" + info.ItemName + ";" + info.ExpendDesp + ";" + info.Money.ToString("0.00")
+ ";" + info.ExpendTime;
msgList.Add(val);
listViewExpendList.Items.Add(CreateLvItem(info));
}
TextHelper.WriteMsgList(msgList, filePath, true);
MessageHelper.Info("保存记录", "保存成功");
}
}
private void buttonFind_Click(object sender, EventArgs e)
{
string KRemark = textBoxKRemark.Text.Trim();
string fltemName = comboBoxFItems.Text.Trim();
if (fltemName == "请选择")
{
fltemName = "";
decimal stMoney = 0, etMoney = 0;
if (!string.IsNullOrEmpty(textBoxStMoney.Text))
{
decimal.TryParse(textBoxStMoney.Text, out stMoney);
}
if (!string.IsNullOrEmpty(textBoxEtMoney.Text))
{
decimal.TryParse(textBoxEtMoney.Text, out etMoney);
}
if (etMoney > 0 && etMoney < stMoney)
{
MessageHelper.Error("查询记录", "上限必须大于下限");
textBoxEtMoney.Focus();
return;
}
IEnumerable<ExpendInfo> findList = expendList;
if (!string.IsNullOrEmpty(KRemark))
{
findList = findList.Where(r => r.ExpendDesp.Contains(KRemark));
}
if (!string.IsNullOrEmpty(fltemName))
{
findList = findList.Where(r => r.ItemName == fltemName);
}
if (stMoney > 0)
{
findList = findList.Where(r => r.Money >= stMoney);
}
if (etMoney > 0)
{
findList = findList.Where(r => r.Money <= etMoney);
}
if (findList.Count() > 0)
{
listViewExpendList.Items.Clear();
foreach (ExpendInfo item in findList)
{
ListViewItem li = CreateLvItem(item);
listViewExpendList.Items.Add(li);
}
}
else
{
listViewExpendList.Items.Clear();
}
}
}
private void butAllList_Click(object sender, EventArgs e)
{
textBoxEtMoney.Text = "";
textBoxStMoney.Text = "";
comboBoxFItems.SelectedIndex = 0;
textBoxKRemark.Text = "";
listViewExpendList.Items.Clear();
foreach(ExpendInfo item in expendList)
{
ListViewItem li=CreateLvItem(item);
listViewExpendList.Items.Add(li);
}
}
private void textBoxKRemark_TextChanged(object sender, EventArgs e)
{
}
private void textBoxStMoney_TextChanged(object sender, EventArgs e)
{
}
private void comboBoxFItems_SelectedIndexChanged(object sender, EventArgs e)
{
}
private void comboBoxItems_SelectedIndexChanged(object sender, EventArgs e)
{
}
private void textBoxMoney_TextChanged(object sender, EventArgs e)
{
}
}
}
没实时更新日统计;已通过配置路径,添加收入 支出条目 重启软件后 原数据不见,但是打开软件后,收入没保存,日统计收支情况只显示支出,添加支出 收入后,日统计数据表格中无数据显示
收入数据未产生,只有支出数据
