c# 1216

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)
        {

        }
    }
}

没实时更新日统计;已通过配置路径,添加收入 支出条目 重启软件后 原数据不见,但是打开软件后,收入没保存,日统计收支情况只显示支出,添加支出 收入后,日统计数据表格中无数据显示

收入数据未产生,只有支出数据

相关推荐
JPX-NO6 小时前
windows下编程IDE使用docker搭建的rust开发环境(Linux)
ide·windows·docker·rust
幸存者letp6 小时前
为什么 max(words, key=len) 中需要传 key=len
服务器·开发语言·c#
SmoothSailingT7 小时前
C#——Interface(接口)
开发语言·c#·接口
Henry_Wu0017 小时前
go与c# 及nats和rabbitmq交互
golang·c#·rabbitmq·grpc·nats
烛阴8 小时前
深入 C# 字符串世界:基础语法、常用方法与高阶实战
前端·c#
大猫和小黄8 小时前
Windows环境下使用Nacos搭建若依(RuoYi)微服务版完整指南
windows·微服务·架构
网硕互联的小客服8 小时前
CC攻击对服务器正常运行会有什么影响?如何预防和解决CC攻击?
运维·服务器·网络·windows·安全
用户4488466710608 小时前
.NET进阶——深入理解线程(2)Thread入门到精通
c#·.net
CES_Asia8 小时前
资本赋能实体智能——2026 CES Asia机器人产业投资峰会定档北京
大数据·人工智能·microsoft·机器人