/// <summary> /// Метод для сохранения рассчета в формат CSV /// </summary> public void Save() { SaveFileDialog saveFile = new SaveFileDialog(); saveFile.Filter = @"CSV-файл (*.csv)|*.csv"; //счетчик строк int i = 1; if (saveFile.ShowDialog() == true) { //открываем или создаем файл .csv для записи using (StreamWriter sw = new StreamWriter(saveFile.OpenFile(), Encoding.Default)) { //запись данных в определенном порядке sw.WriteLine($"Процентная ставка:;{procent} %\n" + $"Дата займа:;{DataZaima.ToString("dd.MM.yyyy")}\n" + $"Срок погашения:;{cbSrokTmp}\n" + $"Сумма:;{sumConst}\n" + $"Тип выплат:;{TypePayToOpenSave()}\n"); sw.WriteLine("№;Дата платежа;Задолженность по кредиту;Сумма платежа;Основной долг;Начисленные проценты"); foreach (var cell in listCalculations) { sw.Write($"{i++};" + $"{cell.Dz};" + $"{cell.Zadolzh.ToString("##.##")};" + $"{cell.SumPlat.ToString("##.##")};" + $"{cell.OsnDolg.ToString("##.##")};" + $"{cell.NachislPrc.ToString("##.##")};"); sw.WriteLine(); } sw.Close(); } } }
/// <summary> /// Метод печати рассчета /// </summary> public void PrintPages() { //открываем диалоговое окно принтера PrintDialog printDialog = new PrintDialog(); if (printDialog.ShowDialog() == true) { //нумератор строк int i = 1; //шапка документа TextBlock header = new TextBlock(); header.Inlines.Add($"Процентная ставка: {procent}%\n" + $"Дата займа: {DataZaima.ToString("dd.MM.yyyy")}\n" + $"Валюта: {CurrencyChange()}\n" + $"Срок погашения: {cbSrokTmp}\n" + $"Сумма: {sumConst} {CurrencyChange()}\n" + $"Тип выплат: {TypePayToOpenSave()}"); //таблица рассчета документа для печати DataTable dt = new DataTable(); //DataSet ds=new DataSet(); //создаем колонки dt.Columns.Add(new DataColumn("№", System.Type.GetType("System.String"))); dt.Columns.Add(new DataColumn("Дата платежа", System.Type.GetType("System.String"))); dt.Columns.Add(new DataColumn("Остаток", System.Type.GetType("System.String"))); dt.Columns.Add(new DataColumn("Сумма платежа", System.Type.GetType("System.String"))); dt.Columns.Add(new DataColumn("Основной платеж", System.Type.GetType("System.String"))); dt.Columns.Add(new DataColumn("Проценты", System.Type.GetType("System.String"))); //заполняем сроки таблиц foreach (var cell in listCalculations) { DataRow rowAdd = dt.NewRow(); rowAdd["№"] = i.ToString(); rowAdd["Дата платежа"] = cell.Dz; rowAdd["Остаток"] = cell.Zadolzh.ToString("C"); rowAdd["Сумма платежа"] = cell.SumPlat.ToString("C"); rowAdd["Основной платеж"] = cell.OsnDolg.ToString("C"); rowAdd["Проценты"] = cell.NachislPrc.ToString("P"); dt.Rows.InsertAt(rowAdd, i++); } //создаем экземпляр класса StoreDataSetPaginator //для вывода на печать и рассчета печатаемых страниц StoreDataSetPaginator dsPaginator = new StoreDataSetPaginator(dt, header, new Typeface("Calibri"), 14, 69 * 0.75, new Size(printDialog.PrintableAreaWidth, printDialog.PrintableAreaHeight)); try { printDialog.PrintDocument(dsPaginator, "printing..."); } catch { MessageBox.Show("Пустой документ,\n составьте документ заново"); } } }