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); } } }
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); }
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); } } }
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; }