Exemple #1
0
        /// <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();
                }
            }
        }
Exemple #2
0
        /// <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 составьте документ заново");
                }
            }
        }