public virtual void ЗагрузитьИзXML(XPathNavigator Документ) { МодельТаблицыОтчетнойФормы формы = new МодельТаблицыОтчетнойФормы(); формы.ЗагрузитьФорму(Документ); this.ПостроитьТаблицуПоМодели(формы); this.Refresh(); }
private void ПостроитьТаблицуПоМодели(МодельТаблицыОтчетнойФормы МодельТаблицы) { int num2; base.Rows.FrozenCount = МодельТаблицы.КоличествоФиксированныхСтрок; base.Cols.FrozenCount = МодельТаблицы.КоличествоФиксированныхСтолбцов; base.ColCount = МодельТаблицы.КоличествоСтолбцов; base.RowCount = МодельТаблицы.КоличествоСтрок; int index = 1; while (index <= base.ColCount) { if (МодельТаблицы.ШириныСтолбцов[index] == 0) { base.Cols.Hidden[index] = true; } else { base.ColWidths[index] = МодельТаблицы.ШириныСтолбцов[index]; } index++; } for (num2 = 1; num2 <= base.RowCount; num2++) { if (МодельТаблицы.ВысотыСтрок[num2] == 0) { base.Rows.Hidden[num2] = true; } else { base.RowHeights[num2] = МодельТаблицы.ВысотыСтрок[num2]; } } foreach (ОбъединениеЯчеек ячеек in МодельТаблицы.ОбъедиенияЯчеек) { base.CoveredRanges.Add(GridRangeInfo.Cells(ячеек.Top, ячеек.Left, ячеек.Bottom, ячеек.Right)); } this.Представление.BeginUpdate(); Color color = Color.FromArgb(0x24, 0x33, 100); GridBorder border = new GridBorder(GridBorderStyle.Solid, color); for (num2 = 1; num2 <= base.RowCount; num2++) { for (index = 1; index <= base.ColCount; index++) { ЯчейкаТаблицыОтчетнойФормы формы = МодельТаблицы.Ячейки[num2, index]; if (формы != null) { формы.Значение = this.ПроанализироватьСсылкиНаКонстанты(формы.Значение); GridStyleInfo info = base[num2, index]; info.BeginUpdate(); if (формы.Формула) { info.CellType = "FormulaCell"; } if (!string.IsNullOrEmpty(формы.Значение)) { string input = формы.Значение; if (формы.Формула && input.ToUpper().StartsWith("=IF")) { Match match = регулярник.Match(input); if (match.Success) { input = string.Format("={0}", match.Groups["false"]); } } info.CellValue = input; } if (!string.IsNullOrEmpty(формы.ПараметрыШрифта.Наименование)) { info.Font.Facename = формы.ПараметрыШрифта.Наименование; } if (формы.ПараметрыШрифта.азмер != 0f) { info.Font.Size = формы.ПараметрыШрифта.азмер; } if (формы.ПараметрыШрифта.Ориентация != 0) { info.Font.Orientation = формы.ПараметрыШрифта.Ориентация; } info.Font.Bold = формы.ПараметрыШрифта.Жирный; info.Font.Italic = формы.ПараметрыШрифта.Курсив; info.Font.Strikeout = формы.ПараметрыШрифта.Зачеркнутый; info.Font.Underline = формы.ПараметрыШрифта.Подчеркнутый; if (формы.ПараметрыЗаливки != null) { info.Interior = формы.ПараметрыЗаливки; } if (формы.ЦветТекста != Color.Empty) { info.TextColor = формы.ЦветТекста; } if (формы.ВерхняяГраница == ГраницаЯчейки.Выделенная) { info.Borders.Top = border; } if (формы.ЛеваяГраница == ГраницаЯчейки.Выделенная) { info.Borders.Left = border; } if (формы.НижняяГраница == ГраницаЯчейки.Выделенная) { info.Borders.Bottom = border; } if (формы.ПраваяГраница == ГраницаЯчейки.Выделенная) { info.Borders.Right = border; } info.HorizontalAlignment = (GridHorizontalAlignment)формы.ВыравниваниеПоГоризонтали; info.VerticalAlignment = (GridVerticalAlignment)формы.ВыравниваниеПоВертикали; info.EndUpdate(); this.ПроанализироватьЯчейку(формы, num2, index); } } } this.Представление.EndUpdate(); }