コード例 #1
0
        public virtual void ЗагрузитьИзXML(XPathNavigator Документ)
        {
            МодельТаблицыОтчетнойФормы формы = new МодельТаблицыОтчетнойФормы();

            формы.ЗагрузитьФорму(Документ);
            this.ПостроитьТаблицуПоМодели(формы);
            this.Refresh();
        }
コード例 #2
0
        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();
        }