示例#1
0
        private void btnReport_Click(object sender, EventArgs e)
        {
            try
            {
                RtfDocument  doc = new RtfDocument(PaperSize.A4, PaperOrientation.Portrait, Lcid.Russian);
                RtfParagraph p   = doc.addParagraph();
                p.Alignment = Align.Center;
                p.DefaultCharFormat.FontSize = 14.0f;
                p.DefaultCharFormat.FontStyle.addStyle(FontStyleFlag.Bold);
                p.Text = "Статистика баллов ЕГЭ по регионам";
                if (chbEntered.Checked)
                {
                    p.Text += " среди зачисленных абитуриентов";
                }

                doc.addParagraph().Text = "";
                p           = doc.addParagraph();
                p.Alignment = Align.Left;
                if (FacultyId.HasValue)
                {
                    p.Text = cbFaculty.Text;
                }
                else
                {
                    p.Text = "По всему университету";
                }

                if (LicenseProgramId.HasValue)
                {
                    p           = doc.addParagraph();
                    p.Alignment = Align.Left;
                    p.Text      = "Направление: " + cbLicenseProgram.Text;
                }

                if (ObrazProgramId.HasValue)
                {
                    p           = doc.addParagraph();
                    p.Alignment = Align.Left;
                    p.Text      = "Образовательная программа: " + cbObrazProgram.Text;
                }

                p = doc.addParagraph();
                //p.LineSpacing = RtfConstants.MILLIMETERS_TO_POINTS
                if (StudyFormId.HasValue)
                {
                    p.Text = "Форма обучения: " + cbStudyForm.Text;
                }
                else
                {
                    p.Text = "Все формы обучения";
                }

                p = doc.addParagraph();
                //p.LineSpacing = RtfConstants.MILLIMETERS_TO_POINTS
                if (StudyFormId.HasValue)
                {
                    p.Text = "Основа обучения: " + cbStudyBasis.Text;
                }
                else
                {
                    p.Text = "Все основы обучения";
                }

                p = doc.addParagraph();
                //p.LineSpacing = RtfConstants.MILLIMETERS_TO_POINTS
                p.Text = "Предмет: " + cbEgeExamName.Text;

                doc.addParagraph().Text = "";

                RtfTable table = doc.addTable(dgv.Rows.Count + 1, dgv.ColumnCount);

                table.setInnerBorder(RtfWriter.BorderStyle.Single, 0.25f);
                table.setOuterBorder(RtfWriter.BorderStyle.Single, 0.25f);
                //заголовки
                for (int i = 0; i < dgv.ColumnCount; i++)
                {
                    table.cell(0, i).Alignment           = Align.Center;
                    table.cell(0, i).addParagraph().Text = dgv.Columns[i].Name;
                }

                table.setColWidth(0, (float)(60.0m * RtfConstants.MILLIMETERS_TO_POINTS));
                table.setColWidth(1, (float)(25.0m * RtfConstants.MILLIMETERS_TO_POINTS));
                table.setColWidth(2, (float)(20.0m * RtfConstants.MILLIMETERS_TO_POINTS));
                table.setColWidth(3, (float)(20.0m * RtfConstants.MILLIMETERS_TO_POINTS));
                table.setColWidth(4, (float)(20.0m * RtfConstants.MILLIMETERS_TO_POINTS));

                DataView dv = new DataView((DataTable)dgv.DataSource);
                dv.Sort = "Кол-во абитуриентов DESC";
                int rowId = 1;
                foreach (DataRow rw in dv.ToTable().Rows)
                {
                    int colId = 0;
                    foreach (DataColumn col in dv.ToTable().Columns)
                    {
                        var par = table.cell(rowId, colId).addParagraph();
                        par.Text      = rw[col.ColumnName].ToString();
                        par.Alignment = Align.Center;
                        colId++;
                    }
                    //запрет переноса строк
                    table.setRowKeepInSamePage(rowId++, false);
                }

                doc.save(MainClass.saveTempFolder + "/Report.rtf");
                System.Diagnostics.Process.Start(MainClass.saveTempFolder + "/Report.rtf");
            }
            catch (Exception ex)
            {
                WinFormsServ.Error(ex.Message);
            }
        }
        public void ShouldThrowExceptionWhenColumnValueIsNegative()
        {
            var rtfTable = new RtfTable(3, 3, 20, 20);

            Assert.Throws <Exception>(() => rtfTable.setColWidth(-1, 20));
        }
        public void SetColumnWidthForTableTest()
        {
            var rtfTable = new RtfTable(3, 3, 20, 20);

            Assert.DoesNotThrow(() => rtfTable.setColWidth(1, 20));
        }
示例#4
0
        private void ToWord()
        {
            int rowCount = dgvAbits.Rows.Count;

            if (rowCount == 0)
            {
                return;
            }
            try
            {
                float       margin = (float)(20.0m * RtfConstants.MILLIMETERS_TO_POINTS);
                RtfDocument doc    = new RtfDocument(PaperSize.A4, PaperOrientation.Landscape, Lcid.Russian, margin, margin, margin, margin);

                RtfTable table = doc.addTable(rowCount + 1, 14, (float)(276.1m * RtfConstants.MILLIMETERS_TO_POINTS));

                // Устанавливаем ширину столбцов таблицы (в миллиметрах)
                table.setColWidth(0, (float)(8.5m * RtfConstants.MILLIMETERS_TO_POINTS));
                table.setColWidth(1, (float)(18.5m * RtfConstants.MILLIMETERS_TO_POINTS));
                table.setColWidth(2, (float)(40.0m * RtfConstants.MILLIMETERS_TO_POINTS));
                table.setColWidth(3, (float)(15.0m * RtfConstants.MILLIMETERS_TO_POINTS));
                table.setColWidth(4, (float)(15.0m * RtfConstants.MILLIMETERS_TO_POINTS));
                table.setColWidth(5, (float)(15.0m * RtfConstants.MILLIMETERS_TO_POINTS));
                table.setColWidth(6, (float)(15.0m * RtfConstants.MILLIMETERS_TO_POINTS));
                table.setColWidth(7, (float)(18.0m * RtfConstants.MILLIMETERS_TO_POINTS));
                table.setColWidth(8, (float)(45.0m * RtfConstants.MILLIMETERS_TO_POINTS));
                table.setColWidth(9, (float)(15.5m * RtfConstants.MILLIMETERS_TO_POINTS));
                table.setColWidth(10, (float)(15.1m * RtfConstants.MILLIMETERS_TO_POINTS));
                table.setColWidth(11, (float)(15.1m * RtfConstants.MILLIMETERS_TO_POINTS));
                table.setColWidth(12, (float)(15.1m * RtfConstants.MILLIMETERS_TO_POINTS));
                table.setColWidth(13, (float)(15.1m * RtfConstants.MILLIMETERS_TO_POINTS));

                table.cell(0, 0).addParagraph().Text  = "№ п/п";
                table.cell(0, 1).addParagraph().Text  = "Рег.номер";
                table.cell(0, 2).addParagraph().Text  = "ФИО";
                table.cell(0, 3).addParagraph().Text  = "Сумма баллов";
                table.cell(0, 4).addParagraph().Text  = "Проф. экзамен";
                table.cell(0, 5).addParagraph().Text  = "Доп. экзамен";
                table.cell(0, 6).addParagraph().Text  = "Конкурс";
                table.cell(0, 7).addParagraph().Text  = "Подлинники";
                table.cell(0, 8).addParagraph().Text  = "Контакты";
                table.cell(0, 9).addParagraph().Text  = "Медалист";
                table.cell(0, 10).addParagraph().Text = "Серия док. об обр.";
                table.cell(0, 11).addParagraph().Text = "ср. балл";
                table.cell(0, 12).addParagraph().Text = "Ретинг. коэфф.";
                if (dgvAbits.Columns.Contains("Олимпиада"))
                {
                    table.cell(0, 13).addParagraph().Text = "Олимпиада";
                }

                for (int j = 0; j < 14; j++)
                {
                    // Устанавливаем горизонтальное и вертикальное выравнивание текста "по центру" в каждой ячейке таблицы
                    table.cell(0, j).Alignment         = Align.Center;
                    table.cell(0, j).AlignmentVertical = AlignVertical.Middle;
                }

                int r = 0;
                foreach (DataGridViewRow row in dgvAbits.Rows)
                {
                    ++r;
                    table.cell(r, 0).addParagraph().Text  = r.ToString();
                    table.cell(r, 1).addParagraph().Text  = row.Cells["Рег_Номер"].Value.ToString();
                    table.cell(r, 2).addParagraph().Text  = row.Cells["ФИО"].Value.ToString();
                    table.cell(r, 3).addParagraph().Text  = row.Cells["Сумма баллов"].Value.ToString();
                    table.cell(r, 4).addParagraph().Text  = row.Cells["Проф. экзамен"].Value.ToString();
                    table.cell(r, 5).addParagraph().Text  = row.Cells["Доп. экзамен"].Value.ToString();
                    table.cell(r, 6).addParagraph().Text  = row.Cells["Конкурс"].Value.ToString();
                    table.cell(r, 7).addParagraph().Text  = row.Cells["Подлинники документов"].Value.ToString();
                    table.cell(r, 8).addParagraph().Text  = row.Cells["Контакты"].Value.ToString();
                    table.cell(r, 9).addParagraph().Text  = row.Cells["Медалист"].Value.ToString();
                    table.cell(r, 10).addParagraph().Text = MainClass.dbType == PriemType.PriemMag ? row.Cells["Серия диплома"].Value.ToString() : row.Cells["Серия аттестата"].Value.ToString();
                    table.cell(r, 11).addParagraph().Text = row.Cells["Средний балл"].Value.ToString();
                    table.cell(r, 12).addParagraph().Text = row.Cells["Рейтинговый коэффициент"].Value.ToString();
                    if (dgvAbits.Columns.Contains("Олимпиада"))
                    {
                        table.cell(r, 13).addParagraph().Text = row.Cells["Олимпиада"].Value.ToString();
                    }

                    for (int j = 0; j < 14; j++)
                    {
                        // Устанавливаем горизонтальное и вертикальное выравнивание текста "по центру" в каждой ячейке таблицы
                        table.cell(r, j).Alignment         = Align.Center;
                        table.cell(r, j).AlignmentVertical = AlignVertical.Middle;
                    }
                }

                // Задаём толщину внутренних границ таблицы
                table.setInnerBorder(RtfWriter.BorderStyle.Single, 0.5f);
                // Задаём толщину внешних границ таблицы
                table.setOuterBorder(RtfWriter.BorderStyle.Single, 0.5f);

                doc.save(MainClass.saveTempFolder + "\\RatingList.rtf");

                // ==========================================================================
                // Открываем сохранённый RTF файл
                // ==========================================================================
                WordDoc wd = new WordDoc(string.Format(@"{0}\RatingList.rtf", MainClass.saveTempFolder));
            }
            catch (Exception ex)
            {
                WinFormsServ.Error("Ошибка при составлении списка:\n" + ex.Message +
                                   ex.InnerException == null ? "" : ("\nВнутреннее исключение:\n" + ex.InnerException.Message));
            }
        }
示例#5
0
        private void btnPrintMatrix_Click(object sender, EventArgs e)
        {
            using (PriemEntities context = new PriemEntities())
            {
                var facs = context.SP_Faculty.Select(x => new { x.Id, x.Name, x.Acronym }).ToList();

                DataTable dt = new DataTable();
                dt.Columns.Add("Fac");
                foreach (string s in facs.Select(x => x.Name))
                {
                    dt.Columns.Add(s);
                }

                Watch wc = new Watch(facs.Count * 2);
                wc.Show();

                foreach (var f in facs)
                {
                    DataRow rw = dt.NewRow();
                    rw["Fac"] = f.Name;

                    DataTable tblData = GetTableIntersect(f.Id);
                    var       data    =
                        from DataRow row in tblData.Rows
                        select new
                    {
                        Id          = row.Field <int>("FacultyId"),
                        FacultyName = row.Field <string>("Факультет"),
                        CNT         = row.Field <int>("Количество людей")
                    };

                    foreach (var d in data)
                    {
                        rw[d.FacultyName] = d.CNT;
                    }

                    dt.Rows.Add(rw);
                    wc.PerformStep();
                }

                RtfDocument doc   = new RtfDocument(PaperSize.A4, PaperOrientation.Landscape, Lcid.Russian);
                RtfTable    table = doc.addTable(dt.Rows.Count + 1, dt.Columns.Count);
                table.cell(0, 0).addParagraph().Text = "";

                int m = 0;
                foreach (var f in facs)
                {
                    table.FillCell(0, ++m, f.Acronym, FontStyleFlag.Normal);
                }

                int i = 1;
                table.CellPadding = 1.2f;
                table.setInnerBorder(RtfWriter.BorderStyle.Single, 0.7f);
                table.setOuterBorder(RtfWriter.BorderStyle.Single, 1f);
                foreach (DataRow r in dt.Rows)
                {
                    table.setColWidth(0, 260f);
                    for (int j = 0; j < r.ItemArray.Count(); j++)
                    {
                        table.FillCell(i, j, i == j ? "-" : r[j].ToString(), j > 0 ? FontStyleFlag.Bold : FontStyleFlag.Normal);
                    }
                    i++;
                    wc.PerformStep();
                }

                wc.Close();
                string fname = MainClass.saveTempFolder + "/stat.rtf";
                doc.save(fname);
                System.Diagnostics.Process.Start(fname);
            }
        }
示例#6
0
        private void btnReport_Click(object sender, EventArgs e)
        {
            try
            {
                RtfDocument  doc = new RtfDocument(PaperSize.A4, PaperOrientation.Landscape, Lcid.Russian);
                RtfParagraph p   = doc.addParagraph();
                p.Alignment = Align.Center;
                p.DefaultCharFormat.FontSize = 14.0f;
                p.DefaultCharFormat.FontStyle.addStyle(FontStyleFlag.Bold);
                p.Text = string.Format("Статистика по регионам по {0}абитуриентам", chbEntered.Checked ? "зачисленным " : "");

                doc.addParagraph().Text = "";
                p           = doc.addParagraph();
                p.Alignment = Align.Left;
                p.Text      = "По региону: " + cbRegion.Text;

                p = doc.addParagraph();
                //p.LineSpacing = RtfConstants.MILLIMETERS_TO_POINTS
                if (StudyFormId.HasValue)
                {
                    p.Text = "Форма обучения: " + cbStudyForm.Text;
                }
                else
                {
                    p.Text = "Все формы обучения";
                }

                doc.addParagraph().Text = "";

                RtfTable table = doc.addTable(dgv.Rows.Count + 1, dgv.ColumnCount);

                table.setInnerBorder(RtfWriter.BorderStyle.Single, 0.25f);
                table.setOuterBorder(RtfWriter.BorderStyle.Single, 0.25f);
                //заголовки
                for (int i = 0; i < dgv.ColumnCount; i++)
                {
                    table.cell(0, i).Alignment           = Align.Center;
                    table.cell(0, i).addParagraph().Text = dgv.Columns[i].Name;
                }

                table.setColWidth(0, (float)(60.0m * RtfConstants.MILLIMETERS_TO_POINTS));
                table.setColWidth(1, (float)(12.5m * RtfConstants.MILLIMETERS_TO_POINTS));
                table.setColWidth(2, (float)(12.5m * RtfConstants.MILLIMETERS_TO_POINTS));
                table.setColWidth(3, (float)(17.5m * RtfConstants.MILLIMETERS_TO_POINTS));
                table.setColWidth(4, (float)(17.5m * RtfConstants.MILLIMETERS_TO_POINTS));

                table.setColWidth(5, (float)(12.5m * RtfConstants.MILLIMETERS_TO_POINTS));
                table.setColWidth(6, (float)(12.5m * RtfConstants.MILLIMETERS_TO_POINTS));
                table.setColWidth(7, (float)(12.5m * RtfConstants.MILLIMETERS_TO_POINTS));
                table.setColWidth(8, (float)(12.5m * RtfConstants.MILLIMETERS_TO_POINTS));
                table.setColWidth(9, (float)(12.5m * RtfConstants.MILLIMETERS_TO_POINTS));
                table.setColWidth(10, (float)(12.5m * RtfConstants.MILLIMETERS_TO_POINTS));
                table.setColWidth(11, (float)(17.5m * RtfConstants.MILLIMETERS_TO_POINTS));
                table.setColWidth(12, (float)(17.5m * RtfConstants.MILLIMETERS_TO_POINTS));
                table.setColWidth(13, (float)(10.0m * RtfConstants.MILLIMETERS_TO_POINTS));
                table.setColWidth(14, (float)(10.0m * RtfConstants.MILLIMETERS_TO_POINTS));

                DataView dv = new DataView((DataTable)dgv.DataSource);
                dv.Sort = "Абитуриентов г/б DESC";
                int rowId = 1;
                foreach (DataRow rw in dv.ToTable().Rows)
                {
                    int colId = 0;
                    foreach (DataColumn col in dv.ToTable().Columns)
                    {
                        var par = table.cell(rowId, colId).addParagraph();
                        par.Text      = rw[col.ColumnName].ToString();
                        par.Alignment = Align.Center;
                        colId++;
                    }
                    //запрет переноса строк
                    table.setRowKeepInSamePage(rowId++, false);
                }

                doc.save(MainClass.saveTempFolder + "/RegionAbitStat_Rev_Report.rtf");
                System.Diagnostics.Process.Start(MainClass.saveTempFolder + "/RegionAbitStat_Rev_Report.rtf");
            }
            catch (Exception ex)
            {
                WinFormsServ.Error(ex.Message);
            }
        }