Esempio n. 1
0
        void HandleIndent(object sender, EventArgs e)
        {
            GridStyleInfo style = this.Grid.Model[_rowIndex, _colIndex];

            //use update to avoid multiple calls to SaveCellInfo..
            style.BeginUpdate();
            style.Tag        = (int)style.Tag + 1;
            style.ImageIndex = (int)TreeNodeState.NoChildren;
            style.EndUpdate();
        }
Esempio n. 2
0
        void HandleMatch(object sender, EventArgs e)
        {
            if (_rowIndex > 1)
            {
                GridStyleInfo style = this.Grid.Model[_rowIndex, _colIndex];

                //use update to avoid multiple calls to SaveCellInfo..
                style.BeginUpdate();
                style.Tag = (int)this.Grid.Model[_rowIndex - 1, _colIndex].Tag;
                style.EndUpdate();
            }
        }
Esempio n. 3
0
        void HandleIndent(object sender, EventArgs e)
        {
            GridStyleInfo style    = this.Grid.Model[_rowIndex, _colIndex];
            Rectangle     rect     = GetCellBoundsCore(_rowIndex, _colIndex);
            int           totalTag = rect.Width / IndentSize - 1;

            //use update to avoid multiple calls to SaveCellInfo..
            style.BeginUpdate();
            if ((int)style.Tag < totalTag)
            {
                style.Tag = (int)style.Tag + 1;
            }
            style.ImageIndex = (int)TreeNodeState.NoChildren;
            style.EndUpdate();
        }
Esempio n. 4
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();
        }
Esempio n. 5
0
        protected override void ПроанализироватьЯчейку(ЯчейкаТаблицыОтчетнойФормы Ячейка, int Row, int Col)
        {
            GridStyleInfo info = base[Row, Col];

            if (Ячейка.Формула)
            {
                base.УстановитьСтильАвтоблока(info);
            }
            else if (!string.IsNullOrEmpty(Ячейка.Значение))
            {
                if (Ячейка.Значение.StartsWith("@"))
                {
                    base.УстановитьСтильКнопки(info, Ячейка.Значение);
                }
                info.EndUpdate();
                return;
            }
            if (Ячейка.Переменная != null)
            {
                info.Tag = Ячейка.Переменная;
                string key = ЯчейкаМетаструктуры.ПолучитьКодЯчейки(Ячейка.Переменная);
                if (this.ЯчейкиМетаструктуры.ContainsKey(key) && !Ячейка.Формула)
                {
                    Type type = this.ЯчейкиМетаструктуры[key].ТипЗначения;
                    info.BeginUpdate();
                    try
                    {
                        base.УстановитьТипЯчейки(info, type, this.ЯчейкиМетаструктуры[key].Описание);
                        if ((base.ВариантОткрытия == ВариантОткрытияФормы.Чтение) || (base.ВариантОткрытия == ВариантОткрытияФормы.СводнаяФормаБезРедактирования))
                        {
                            base.УстановитьСтильНередактируемойЯчейки(info);
                        }
                        else if (this.ЯчейкиДанных[key].Описание.ОбязательноДляЗаполнения)
                        {
                            base.словарьОбязательныхДляЗаполненияЯчеек.Add(key, this.ЯчейкиДанных[key]);
                            this.УстановитьСтильОбязательнойДляЗаполненияЯчейки(info, false);
                        }
                        else if (this.ЯчейкиДанных[key].ТолькоЧтение)
                        {
                            this.УстановитьСтильЯчейкиТолькоЧтение(info);
                        }
                        else
                        {
                            base.УстановитьСтильРедактируемойЯчейки(info);
                        }
                        if (this.ЯчейкиДанных.СодержитИндекс(key))
                        {
                            ТипЯчейки ячейки = this.ЯчейкиДанных[key];
                            if (ячейки != null)
                            {
                                if (ячейки is СсылочныйТип)
                                {
                                    info.CellValue = (ячейки as СсылочныйТип).ЗначениеСтрокой;
                                }
                                else
                                {
                                    info.CellValue = ячейки.Значение;
                                }
                            }
                            else
                            {
                                info.CellValue = null;
                            }
                        }
                    }
                    finally
                    {
                        info.EndUpdate();
                    }
                }
            }
        }