public Planning_Record_Screen(int id) { InitializeComponent(); index = id; string[] file = File.ReadAllLines(@"CurrentStateList.txt"); Account.Text = file[0] + " руб."; Today.Text = DateTime.Today.ToShortDateString(); file = File.ReadAllLines(@"PlanningList.txt"); if (index != -1) { file = file[index + 1].Split(';'); if (bool.Parse(file[1])) { string[] categories = { "Стипендия", "Пенсия", "Долг", "Подарок", "Компенсация", "Подработка", "яя" }; Array.Sort(categories); categories[categories.Length - 1] = "Другое"; Category.Items.AddRange(categories); } else { string[] categories = { "Питание", "Одежда", "Долг", "Транспорт", "Интернет", "Телефон", "ЖКУ", "Подарки", "Техника", "Канцелярия", "Книги", "Бытовая химия", "Ремонт", "Лечение", "яя" }; Array.Sort(categories); categories[categories.Length - 1] = "Другое"; Category.Items.AddRange(categories); } EditRecord = new Planning_Record(int.Parse(file[0]), file[2], float.Parse(file[5]), file[6], new Frequency(int.Parse(file[3]), int.Parse(file[4])), bool.Parse(file[1])); Category.Text = EditRecord.GetCategory; Amount.Text = EditRecord.GetAmount.ToString(); Commentary.Text = EditRecord.GetComment; Times.Text = EditRecord.GetTimes.ToString(); Days.Text = EditRecord.GetDays.ToString(); if (Commentary.Text == "0") { Commentary.Text = ""; } } else { string[] f = file[file.Length - 1].Split(';'); if (bool.Parse(f[1])) { string[] categories = { "Стипендия", "Пенсия", "Долг", "Подарок", "Компенсация", "Подработка", "яя" }; Array.Sort(categories); categories[categories.Length - 1] = "Другое"; Category.Items.AddRange(categories); } else { string[] categories = { "Питание", "Одежда", "Долг", "Транспорт", "Интернет", "Телефон", "ЖКУ", "Подарки", "Техника", "Канцелярия", "Книги", "Бытовая химия", "Ремонт", "Лечение", "яя" }; Array.Sort(categories); categories[categories.Length - 1] = "Другое"; Category.Items.AddRange(categories); } } category = Category.Text; times = Times.Text; days = Days.Text; amount = Amount.Text; commentary = Commentary.Text; }
public Planning_Screen() { InitializeComponent(); StreamReader sr = null; try { sr = new StreamReader(@"CurrentStateList.txt"); account = float.Parse(sr.ReadLine()); sr.Close(); } catch { MessageBox.Show("Произошла ошибка при загрузке данных. Текущее состояние счёта будет очищено, приложение перезагружено.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop); StreamWriter sw = new StreamWriter(@"CurrentStateList.txt", false); sw.Write(""); sw.Close(); Application.Restart(); } Today.Text = DateTime.Today.ToShortDateString(); Account.Text = Math.Round(account, 2).ToString() + " руб."; Date.MinDate = DateTime.Today; try { sr = new StreamReader(@"PlanningList.txt"); } catch { FileStream fs = File.Create(@"PlanningList.txt"); StreamWriter sw = new StreamWriter(fs); sw.WriteLine("0"); sw.Close(); fs.Close(); sr = new StreamReader(@"PlanningList.txt"); } if (!int.TryParse(sr.ReadLine(), out n)) { return; } PlanningRecord = new Planning_Record[n]; for (int i = 0; i < n; i++) { PlanningRecord[i] = new Planning_Record(); if (!PlanningRecord[i].Read(sr)) { MessageBox.Show("Произошла ошибка при загрузке данных. " + "Планирование счёта будет очищено.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop); sr.Close(); StreamWriter sw = new StreamWriter(@"PlanningList.txt", false); sw.WriteLine("0"); sw.Close(); //for (int j = PlanningList.Items.Count - 1; i > 0; i--) // PlanningList.Items[i].Remove(); PlanningList.Clear(); n = 0; return; } PlanningList.Items.Add(PlanningRecord[i].GetCategory); PlanningList.Items[PlanningList.Items.Count - 1].Font = new Font("Century Gothic", 10, FontStyle.Bold); string amount = PlanningRecord[i].GetIncrease ? "+" : "-"; amount += PlanningRecord[i].GetAmount + " руб."; PlanningList.Items.Add(amount); PlanningList.Items[PlanningList.Items.Count - 1].Font = new Font("Century Gothic", 15, FontStyle.Bold); PlanningList.Items[PlanningList.Items.Count - 1].ForeColor = PlanningRecord[i].GetIncrease ? Color.FromArgb(0, 142, 63) : Color.FromArgb(144, 12, 10); //зеленый : красный PlanningList.Items[PlanningList.Items.Count - 1].UseItemStyleForSubItems = false; //для правильного окончания слов "раз" и "день" string result = ""; string temp = PlanningRecord[i].GetTimes.ToString(); if (temp == "11" || temp == "12" || temp == "13" || temp == "14") { result = temp + " раз в "; } else if (temp[temp.Length - 1] == '2' || temp[temp.Length - 1] == '3' || temp[temp.Length - 1] == '4') { result = temp + " раза в "; } else { result = temp + " раз в "; } temp = PlanningRecord[i].GetDays.ToString(); if (temp == "1") { result += "день"; } else if (temp == "11" || temp == "12" || temp == "13" || temp == "14") { result += temp + " дней"; } else { switch (temp[temp.Length - 1]) { case '1': result += temp + " день"; break; case '2': result += temp + " дня"; break; case '3': result += temp + " дня"; break; case '4': result += temp + " дня"; break; default: result += temp + " дней"; break; } } PlanningList.Items[PlanningList.Items.Count - 1].SubItems.Add(result); PlanningList.Items.Add(PlanningRecord[i].GetComment); PlanningList.Items[PlanningList.Items.Count - 1].Font = new Font("Century Gothic", 10); } sr.Close(); }
private void Save_Click(object sender, EventArgs e) { if (Category.Text == "") { MessageBox.Show("Укажите категорию", "Не заполнены обязательные поля", MessageBoxButtons.OK, MessageBoxIcon.Warning); Category.DroppedDown = true; return; } if (Times.Text == "") { MessageBox.Show("Укажите количество раз", "Не заполнены обязательные поля", MessageBoxButtons.OK, MessageBoxIcon.Warning); Times.Focus(); return; } if (!int.TryParse(Times.Text, out int times) || times <= 0) { MessageBox.Show("Количество раз введено неверно", "Не заполнены обязательные поля", MessageBoxButtons.OK, MessageBoxIcon.Warning); Times.Focus(); Times.Text = ""; //Times.SelectionStart = 0; return; } if (Days.Text == "") { MessageBox.Show("Укажите количество дней", "Не заполнены обязательные поля", MessageBoxButtons.OK, MessageBoxIcon.Warning); //Days.SelectionStart = Days.Text.Length; Days.Focus(); return; } if (!int.TryParse(Days.Text, out int days) || days <= 0) { MessageBox.Show("Количество дней введено неверно", "Не заполнены обязательные поля", MessageBoxButtons.OK, MessageBoxIcon.Warning); Days.Focus(); Days.Text = ""; //Days.SelectionStart = 0; return; } if (Amount.Text == "") { MessageBox.Show("Укажите сумму", "Не заполнены обязательные поля", MessageBoxButtons.OK, MessageBoxIcon.Warning); //Amount.SelectionStart = Amount.Text.Length; Amount.Focus(); return; } if (!float.TryParse(Amount.Text, out float amount) || amount <= 0) { MessageBox.Show("Данные в поле \"Сумма\" введены неверно", "Не заполнены обязательные поля", MessageBoxButtons.OK, MessageBoxIcon.Warning); Amount.Focus(); Amount.Text = ""; //Amount.SelectionStart = 0; return; } if (amount > 1000000) { MessageBox.Show("Введено слишком большое значение!", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop); Amount.Focus(); Amount.Text = ""; //Amount.SelectionStart = 0; return; } if (days >= 1000000) { MessageBox.Show("Введено слишком большое значение!", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop); Days.Focus(); Days.Text = ""; //Days.SelectionStart = 0; return; } if (times >= 1000000) { MessageBox.Show("Введено слишком большое значение!", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop); Times.Focus(); Times.Text = ""; //Times.SelectionStart = 0; return; } string category, commentary; category = Category.Text; if (Commentary.Text == "") { commentary = "0"; } else { commentary = Commentary.Text; } if (index < 0) { Planning_Record NewRecord = new Planning_Record(); NewRecord.Write(category, (float)Math.Round(amount, 2), commentary, times, days); } else { EditRecord.Edit(category, (float)Math.Round(amount, 2), commentary, times, days); } this.Close(); }