Example #1
0
        private void CPK_Rtf()
        {
            RtfDocument doc = new RtfDocument(PaperSize.A4, PaperOrientation.Landscape, Lcid.Russian);

            string sFac = cbFaculty.Text.ToLower();

            if (sFac.CompareTo("все") == 0)
            {
                sFac = "всех факультетов ";
            }
            else
            {
                if (ComboServ.GetComboId(cbFaculty) == "10")
                {
                    sFac = "медицинского колледжа ";
                }
                else if (ComboServ.GetComboId(cbFaculty) == "3")
                {
                    sFac = "высшей школы менеджмента ";
                }
                else
                {
                    sFac = sFac.Replace("кий", "кого ").Replace("ый", "ого ").Replace("акультет", "акультета");
                }
            }

            string sForm = cbStudyForm.Text.ToLower();

            if (sForm.CompareTo("все") == 0)
            {
                sForm = " всех форм обучения ";
            }
            else
            {
                sForm = sForm.Replace("ая", "ой").Replace("яя", "ей") + " формы обучения ";
            }

            doc.addParagraph().Text =
                string.Format("Ежедневная информация (форма ЦПК)\r\n{0}\r\n{1}", sFac + " " + sForm, "на " + DateTime.Now.ToShortDateString());

            RtfTable tbl = doc.addTable(2 + dgvData.Rows.Count, 1 + dgvData.ColumnCount);

            //делаем заголовки
            //
            tbl.merge(0, 0, 2, 1);
            tbl.FillCell(0, 0, "", FontStyleFlag.Normal);

            tbl.merge(0, 1, 2, 1);
            tbl.FillCell(0, 1, "Направление, специальность", FontStyleFlag.Normal);

            tbl.merge(0, 2, 2, 1);
            tbl.FillCell(0, 0, "Шифр", FontStyleFlag.Normal);

            tbl.merge(0, 3, 1, 2);
            tbl.FillCell(0, 0, "План приема", FontStyleFlag.Normal);

            tbl.merge(0, 5, 1, 2);
            tbl.FillCell(0, 0, "Количество поданных заявлений", FontStyleFlag.Normal);

            tbl.merge(0, 7, 1, 2);
            tbl.FillCell(0, 0, "Конкурс", FontStyleFlag.Normal);

            tbl.FillCell(1, 3, "бюджет", FontStyleFlag.Normal);
            tbl.FillCell(1, 4, "догов.", FontStyleFlag.Normal);
            tbl.FillCell(1, 5, "бюджет", FontStyleFlag.Normal);
            tbl.FillCell(1, 6, "догов.", FontStyleFlag.Normal);
            tbl.FillCell(1, 7, "бюджет", FontStyleFlag.Normal);
            tbl.FillCell(1, 8, "догов.", FontStyleFlag.Normal);

            int          iRow = 3;
            RtfParagraph p;

            foreach (DataGridViewRow row in dgvData.Rows)
            {
                string sProgramName = row.Cells[1].Value.ToString();
                if (!sProgramName.StartsWith("   ", StringComparison.OrdinalIgnoreCase))
                {
                }

                p      = tbl.cell(iRow, 0).addParagraph();
                p.Text = (iRow - 2).ToString();
            }

            doc.render();
        }
Example #2
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);
            }
        }