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(); }
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); } }