Пример #1
0
        private void button_save_Click(object sender, EventArgs e)
        {
            if (textBox_name.Text == "" || numericUpDown_volume.Value == 0)
            {
                MessageBox.Show("请输入完整负债信息!", "保存负债", MessageBoxButtons.OK, MessageBoxIcon.Error);
                textBox_name.Focus();
                return;
            }

            Debt debt = new Debt();

            debt.name    = textBox_name.Text;
            debt.comment = textBox_comment.Text;
            debt.volume  = (double)numericUpDown_volume.Value;
            debt.cycle   = (Cycle)Enum.ToObject(typeof(Cycle), byte.Parse(comboBox_cycle.SelectedIndex.ToString()));
            debt.start   = dateTimePicker_start.Value;
            debt.end     = dateTimePicker_end.Value;
            foreach (Debt d in Form_Main.ar_Debts)
            {
                if (d.name == textBox_name.Text)
                {
                    if (DialogResult.Yes == MessageBox.Show("请确认更新负债信息: \"" + debt.name + "\"", "更新负债", MessageBoxButtons.YesNo, MessageBoxIcon.Question))
                    {
                        Form_Main.ar_Debts.Insert(Form_Main.ar_Debts.IndexOf(d), debt);
                        Form_Main.ar_Debts.Remove(d);
                        try
                        {
                            Xml.UpdateDebt(Form_Main.file_Debts, Form_Main.ar_Debts);
                            MessageBox.Show("负债信息更新成功!", "更新负债", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show("负债信息更新失败!\n\n(" + ex.Message + ")", "更新负债", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                    }
                    return;
                }
            }
            if (DialogResult.Yes == MessageBox.Show("请确认添加负债: \"" + debt.name + "\"", "新建负债", MessageBoxButtons.YesNo, MessageBoxIcon.Question))
            {
                Form_Main.ar_Debts.Add(debt);
                try
                {
                    Xml.UpdateDebt(Form_Main.file_Debts, Form_Main.ar_Debts);
                    MessageBox.Show("负债信息添加成功!", "新建负债", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    Form_Debt_Load(this, null);
                }
                catch (Exception ex)
                {
                    MessageBox.Show("负债信息添加失败!\n\n(" + ex.Message + ")", "新建负债", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }
Пример #2
0
        public static ArrayList LoadDebt(string file)
        {
            ArrayList debts = new ArrayList();

            XmlDocument xml = new XmlDocument();

            xml.Load(file);
            XmlNode root = xml.SelectSingleNode("Debts");

            foreach (XmlNode debt in root.ChildNodes)
            {
                Debt d = new Debt();
                d.name    = debt.Attributes["name"].Value;
                d.volume  = double.Parse(debt.Attributes["volume"].Value);
                d.cycle   = (Cycle)(Enum.ToObject(typeof(Cycle), byte.Parse(debt.Attributes["cycle"].Value)));
                d.start   = DateTime.Parse(debt.Attributes["start"].Value);
                d.end     = DateTime.Parse(debt.Attributes["end"].Value);
                d.comment = debt.Attributes["comment"].Value;
                debts.Add(d);
            }

            return(debts);
        }
Пример #3
0
        private void button_save_Click(object sender, EventArgs e)
        {
            if (textBox_name.Text == "" || numericUpDown_volume.Value == 0)
            {
                MessageBox.Show("请输入完整负债信息!", "保存负债", MessageBoxButtons.OK, MessageBoxIcon.Error);
                textBox_name.Focus();
                return;
            }

            Debt debt = new Debt();
            debt.name = textBox_name.Text;
            debt.comment = textBox_comment.Text;
            debt.volume = (double)numericUpDown_volume.Value;
            debt.cycle = (Cycle)Enum.ToObject(typeof(Cycle), byte.Parse(comboBox_cycle.SelectedIndex.ToString()));
            debt.start = dateTimePicker_start.Value;
            debt.end = dateTimePicker_end.Value;
            foreach (Debt d in Form_Main.ar_Debts)
            {
                if (d.name == textBox_name.Text)
                {
                    if (DialogResult.Yes == MessageBox.Show("请确认更新负债信息: \"" + debt.name + "\"", "更新负债", MessageBoxButtons.YesNo, MessageBoxIcon.Question))
                    {
                        Form_Main.ar_Debts.Insert(Form_Main.ar_Debts.IndexOf(d), debt);
                        Form_Main.ar_Debts.Remove(d);
                        try
                        {
                            Xml.UpdateDebt(Form_Main.file_Debts, Form_Main.ar_Debts);
                            MessageBox.Show("负债信息更新成功!", "更新负债", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show("负债信息更新失败!\n\n(" + ex.Message + ")", "更新负债", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                    }
                    return;
                }
            }
            if (DialogResult.Yes == MessageBox.Show("请确认添加负债: \"" + debt.name + "\"", "新建负债", MessageBoxButtons.YesNo, MessageBoxIcon.Question))
            {
                Form_Main.ar_Debts.Add(debt);
                try
                {
                    Xml.UpdateDebt(Form_Main.file_Debts, Form_Main.ar_Debts);
                    MessageBox.Show("负债信息添加成功!", "新建负债", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    Form_Debt_Load(this, null);
                }
                catch (Exception ex)
                {
                    MessageBox.Show("负债信息添加失败!\n\n(" + ex.Message + ")", "新建负债", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }
Пример #4
0
        private void button_updatedebt_Click(object sender, EventArgs e)
        {
            GroupBox gb = (sender as Button).Parent.Controls["groupBox_debt"] as GroupBox;

            string name = (gb.Controls["textBox_namedebt"] as TextBox).Text;
            double volume = (double)(gb.Controls["numericUpDown_volumedebt"] as NumericUpDown).Value;
            int cycle = (gb.Controls["comboBox_cycledebt"] as ComboBox).SelectedIndex;
            int day = (gb.Controls["comboBox_daydebt"] as ComboBox).SelectedIndex;
            string comment = (gb.Controls["textBox_commentdebt"] as TextBox).Text;

            if (name == "" || volume <= 0 || cycle == -1 || day == -1)
            {
                MessageBox.Show("请输入完整生活支出信息!", "更新生活支出", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            if (cycle == 0)
            {
                MessageBox.Show("生活支出周期不可为\"不定期\"!", "更新生活支出", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            foreach (Debt d in ar_Debts)
            {
                if (d.name == name)
                {
                    if (DialogResult.Yes == MessageBox.Show("请确认更新生活支出: \"" + d.name + "\"\n\n注:更新的生活支出信息会影响此前的资金量计算,请谨慎操作\n\n建议: 若调整生活支出金额、周期、生效日,请中止当前生活支出并新建生活支出", "更新生活支出", MessageBoxButtons.YesNo, MessageBoxIcon.Question))
                    {
                        Debt debt = new Debt();
                        debt.name = name;
                        debt.volume = volume;
                        debt.cycle = (Cycle)Enum.ToObject(typeof(Cycle), byte.Parse(cycle.ToString()));
                        debt.start = new DateTime(d.start.Year, d.start.Month, day + 1);
                        debt.end = d.end;
                        debt.comment = comment;

                        ar_Debts.Remove(d);
                        ar_Debts.Add(debt);

                        try
                        {
                            Xml.UpdateDebt(file_Debts, ar_Debts);
                            MessageBox.Show("生活支出信息更新成功!", "更新生活支出", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            Reload();
                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show("生活支出信息更新失败!\n\n(" + ex.Message + ")", "更新生活支出", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                    }
                    return;
                }
            }

            if (DialogResult.Yes == MessageBox.Show("请确认保存新生活支出: \"" + name + "\"", "新建生活支出", MessageBoxButtons.YesNo, MessageBoxIcon.Question))
            {
                DateTime curMonth = DateTime.Parse((gb.Parent.Parent.Parent as GroupBox).Text);

                Debt debt = new Debt();
                debt.name = name;
                debt.volume = volume;
                debt.cycle = (Cycle)Enum.ToObject(typeof(Cycle), byte.Parse(cycle.ToString()));
                debt.start = new DateTime(curMonth.Year,curMonth.Month, day + 1);
                debt.end = new DateTime(2100, 1, 1);
                debt.comment = comment;

                ar_Debts.Add(debt);

                try
                {
                    Xml.UpdateDebt(file_Debts, ar_Debts);
                    MessageBox.Show("生活支出信息保存成功!", "新建生活支出", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    Reload();
                }
                catch (Exception ex)
                {
                    MessageBox.Show("生活支出信息保存失败!\n\n(" + ex.Message + ")", "新建生活支出", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }
Пример #5
0
        public static ArrayList LoadDebt(string file)
        {
            ArrayList debts = new ArrayList();

            XmlDocument xml = new XmlDocument();
            xml.Load(file);
            XmlNode root = xml.SelectSingleNode("Debts");

            foreach (XmlNode debt in root.ChildNodes)
            {
                Debt d = new Debt();
                d.name = debt.Attributes["name"].Value;
                d.volume = double.Parse(debt.Attributes["volume"].Value);
                d.cycle = (Cycle)(Enum.ToObject(typeof(Cycle), byte.Parse(debt.Attributes["cycle"].Value)));
                d.start = DateTime.Parse(debt.Attributes["start"].Value);
                d.end = DateTime.Parse(debt.Attributes["end"].Value);
                d.comment = debt.Attributes["comment"].Value;
                debts.Add(d);
            }

            return debts;
        }