private void WriteSecondaryRow(int i, KeyValuePair <string, TypeString> kvp, Table table) { table.Rows[i].Cells[0].Paragraphs[0].Append(ConstTableName.parametrs[kvp.Key]).FontSize(cellParagraphSize); table.Rows[i].Cells[1].Paragraphs[0].Append(kvp.Value.Message).FontSize(cellParagraphSize); //норма if (normaStorage.Norma.ContainsKey(kvp.Key)) { table.Rows[i].Cells[2].Paragraphs[0].Append(normaStorage.Norma[kvp.Key]).FontSize(cellParagraphSize); if (ConstTableName.IsBold(normaStorage.Norma[kvp.Key], kvp.Value.Message)) { table.Rows[i].Cells[1].Paragraphs[0].Bold(); } } //норма индексов if (normaStorage.NormaIndex.ContainsKey(kvp.Key)) { table.Rows[i].Cells[4].Paragraphs[0].Append(normaStorage.NormaIndex[kvp.Key]).FontSize(cellParagraphSize); if (!_defaultIndex.indexes.ContainsKey(kvp.Key)) { return; } if (ConstTableName.IsBold(normaStorage.NormaIndex[kvp.Key], _defaultIndex.indexes[kvp.Key])) { table.Rows[i].Cells[3].Paragraphs[0].Append(_defaultIndex.indexes[kvp.Key]).FontSize(cellParagraphSize).Bold(); } else { table.Rows[i].Cells[3].Paragraphs[0].Append(_defaultIndex.indexes[kvp.Key]).FontSize(cellParagraphSize); } } i++; }
public void AddTable() { IDictionary <string, TypeString> temp = new Dictionary <string, TypeString>(); _patient.Dopper.GetNotNullField("", ref temp); temp.Add("1", new TypeString { Message = "", TypeName = nameof(RightStomachFunction) }); temp.Add("2", new TypeString { Message = "", TypeName = nameof(LeftStomachFunction) }); if (temp.Count == 0) { return; } int count = temp.Where(x => x.Value.TypeName == nameof(Dopper)).Count(); Table additionTable = _document.InsertTable(count + 1, 5); additionTable.Rows[0].Cells[0].Paragraphs[0].Append("Допплер КС:").FontSize(paragraphSize).Bold(); additionTable.Rows[0].Cells[1].Paragraphs[0].Append("Пиковая скорость").FontSize(paragraphSize).Bold(); additionTable.Rows[0].Cells[2].Paragraphs[0].Append("Норма\n(см.сек)").FontSize(paragraphSize).Bold(); additionTable.Rows[0].Cells[3].Paragraphs[0].Append("МГД \n(мм рт.ст.)").FontSize(paragraphSize).Bold(); additionTable.Rows[0].Cells[4].Paragraphs[0].Append("CГД \n(мм рт.ст.)").FontSize(paragraphSize).Bold(); SetTableStyle(additionTable); foreach (var cell in additionTable.Rows.Skip(1).Take(temp.Count)) { cell.Cells[2].FillColor = Color.LightGray; cell.Cells[4].FillColor = Color.LightGray; } int i = 1; bool isWrite = false; var first = temp.FirstOrDefault().Value.TypeName; string typeName = first; foreach (var kvp in temp) { if (typeName != kvp.Value.TypeName) { if (typeName == nameof(DegreeReguliration)) { i++; } typeName = kvp.Value.TypeName; isWrite = false; } switch (kvp.Value.TypeName) { case nameof(Dopper): additionTable.Rows[i].Cells[0].Paragraphs[0].Append(ConstTableName.parametrs[kvp.Key]).FontSize(cellParagraphSize); additionTable.Rows[i].Cells[1].Paragraphs[0].Append(kvp.Value.Message).FontSize(cellParagraphSize); if (ConstTableName.IsBold(normaStorage.normaDopper[kvp.Key], kvp.Value.Message)) { additionTable.Rows[i].Cells[1].Paragraphs[0].Bold(); } additionTable.Rows[i].Cells[2].Paragraphs[0].Append(normaStorage.normaDopper[kvp.Key]).FontSize(cellParagraphSize); additionTable.Rows[i].Cells[3].Paragraphs[0].Append(_defaultIndex.mgd[kvp.Key]).FontSize(cellParagraphSize); additionTable.Rows[i].Cells[4].Paragraphs[0].Append(_defaultIndex.sgd[kvp.Key]).FontSize(cellParagraphSize); i++; break; case nameof(LeftStomachFunction): cellData = _patient.LeftStomachFunction.GetNotNullField("LS"); if (string.IsNullOrWhiteSpace(_patient.LeftStomachFunction.PickA)) { break; } _document.InsertParagraph().FontSize(2); CreateAndFillTable(cellData); break; case nameof(RightStomachFunction): cellData = _patient.RightStomachFunction.GetNotNullField("RSF"); if (string.IsNullOrWhiteSpace(_patient.RightStomachFunction.PickA)) { break; } _document.InsertParagraph().FontSize(2); CreateAndFillTable(cellData); break; default: break; } } if (count == 0) { additionTable.RemoveRow(0); } int dgCount = 0; int dg = 0; temp.Clear(); _patient.DegreeReguliration.GetNotNullField("DR", ref temp); dgCount = temp.Count(); _patient.CommentaryMV.GetNotNullField("", ref temp); if (temp.Count == 0) { return; } _document.InsertParagraph().FontSize(2); var cc = temp.Select(x => x.Value.TypeName).Distinct(); Table tt = _document.InsertTable(cc.Count(), 5); i = 0; SetTableStyle(tt); foreach (var kvp in temp) { if (typeName != kvp.Value.TypeName) { if (typeName == nameof(DegreeReguliration)) { i++; } typeName = kvp.Value.TypeName; isWrite = false; } switch (kvp.Value.TypeName) { case nameof(DegreeReguliration): dg++; if (!isWrite) { tt.Rows[i].MergeCells(0, 4); tt.Rows[i].Cells[0].Paragraphs[0].Append("Регургитации на клапанах").FontSize(cellParagraphSize).Bold(); tt.Rows[i].Paragraphs[0].Append("\n").Append(ConstTableName.parametrs[kvp.Key]).FontSize(cellParagraphSize).Append("\n"); isWrite = true; continue; } tt.Rows[i].Paragraphs[0].Append(ConstTableName.parametrs[kvp.Key]).FontSize(cellParagraphSize); if (dg != dgCount) { tt.Rows[i].Paragraphs[0].Append("\n"); } break; case nameof(CommentaryMV): tt.Rows[i].MergeCells(0, 4); tt.Rows[i].Cells[0].Paragraphs[0].Append("Комментарии:").FontSize(cellParagraphSize).Bold(); tt.Rows[i].Paragraphs[0].Append("\n").Append(kvp.Value.Message).FontSize(cellParagraphSize); break; default: break; } } }