Beispiel #1
0
        private void ШапкаЭкраннойФормы_CurrentCellActivated(object sender, EventArgs e)
        {
            if (base.ЭкраннаяФорма != null)
            {
                base.ЭкраннаяФорма.ОтобразитьПодсказку("");
            }
            int           rowIndex = this.CurrentCell.RowIndex;
            int           colIndex = this.CurrentCell.ColIndex;
            GridStyleInfo info     = base[rowIndex, colIndex];
            string        str      = "";

            if (((info != null) && (info.Tag != null)) && (info.Tag is string))
            {
                string str2 = info.Tag.ToString().Trim(new char[] { '$' });
                if (this.ЯчейкиДанных != null)
                {
                    ТипЯчейки ячейки = this.ЯчейкиДанных[str2];
                    if (!((ячейки == null) || string.IsNullOrEmpty(ячейки.Описание.Комментарий)))
                    {
                        str = str + string.Format(" Комментарий : {0}", ячейки.Описание.Комментарий);
                    }
                }
            }
            base.ЭкраннаяФорма.ОтобразитьПодсказку(str);
        }
Beispiel #2
0
 public override void ОбновитьЗначения()
 {
     base.BeginUpdate();
     for (int i = 1; i <= base.RowCount; i++)
     {
         for (int j = 1; j <= base.ColCount; j++)
         {
             GridStyleInfo info = base[i, j];
             if ((info.CellType != "FormulaCell") && ((info.Tag != null) && (this.ЯчейкиМетаструктуры != null)))
             {
                 string str2 = ЯчейкаМетаструктуры.ПолучитьКодЯчейки(info.Tag.ToString());
                 if (this.ЯчейкиДанных.СодержитИндекс(str2))
                 {
                     ТипЯчейки ячейки = this.ЯчейкиДанных[str2];
                     if (ячейки != null)
                     {
                         if (ячейки is СсылочныйТип)
                         {
                             info.CellValue = (ячейки as СсылочныйТип).ЗначениеСтрокой;
                         }
                         else
                         {
                             info.CellValue = ячейки.Значение;
                         }
                     }
                     else
                     {
                         info.CellValue = null;
                     }
                 }
             }
         }
     }
     base.EndUpdate();
 }
Beispiel #3
0
        protected override void OnSaveCellInfo(GridSaveCellInfoEventArgs e)
        {
            int rowIndex = e.RowIndex;
            int colIndex = e.ColIndex;

            if ((rowIndex > 0) && (colIndex > 0))
            {
                GridStyleInfo style = e.Style;
                if ((style.Tag != null) && (this.ЯчейкиДанных != null))
                {
                    string str = ЯчейкаМетаструктуры.ПолучитьКодЯчейки(style.Tag.ToString());
                    if (this.ЯчейкиДанных.СодержитИндекс(str))
                    {
                        ТипЯчейки ячейки = this.ЯчейкиДанных[str];
                        if (style.CellType == "FormulaCell")
                        {
                            ячейки.Значение = e.Style.FormattedText;
                        }
                        else
                        {
                            if (ячейки is СсылкаНаСправочник)
                            {
                                if (e.Style.CellValue is ЗаписьСправочника)
                                {
                                    ячейки.Значение = e.Style.CellValue;
                                    e.Style.Text    = (ячейки as СсылкаНаСправочник).ЗначениеСтрокой;
                                }
                                if (e.Style.CellValue == null)
                                {
                                    ячейки.Значение = null;
                                    e.Style.Text    = string.Empty;
                                }
                            }
                            else
                            {
                                ячейки.Значение = e.Style.Text;
                            }
                            base.ЭкраннаяФорма.ДанныеИзменились = true;
                            if (ячейки.ТолькоЧтение)
                            {
                                this.УстановитьСтильЯчейкиТолькоЧтение(style);
                            }
                            else if (ячейки.Описание.ОбязательноДляЗаполнения)
                            {
                                this.УстановитьСтильОбязательнойДляЗаполненияЯчейки(style, ячейки.ЗначениеЗаполнено);
                            }
                            else if ((base.ВариантОткрытия == ВариантОткрытияФормы.Чтение) || (base.ВариантОткрытия == ВариантОткрытияФормы.СводнаяФормаБезРедактирования))
                            {
                                base.УстановитьСтильНередактируемойЯчейки(style);
                            }
                            else
                            {
                                base.УстановитьСтильРедактируемойЯчейки(style);
                            }
                        }
                    }
                }
            }
        }
Beispiel #4
0
 protected override void УстановитьСтильЯчейкиТолькоЧтение(GridStyleInfo Стиль)
 {
     Стиль.Enabled   = true;
     Стиль.ReadOnly  = true;
     Стиль.BackColor = Color.FromArgb(210, 220, 0xff);
     if (Стиль.Tag != null)
     {
         ТипЯчейки ячейки = null;
         ячейки = this.ЯчейкиДанных[Стиль.Tag.ToString().Replace("$", "")];
         ячейки.ТолькоЧтение = true;
     }
 }
Beispiel #5
0
        public bool ЕстьНезаполненныеЯчейки(ДанныеДинамическойТаблицы Данные, out List <string> НомераСтрок)
        {
            НомераСтрок = new List <string>();
            if ((Данные == null) || (Данные.ТаблицаДанных.МатрицаЗначений.Количество == 0))
            {
                return(false);
            }
            bool flag = false;

            for (int i = 0; i < Данные.ТаблицаДанных.МатрицаЗначений.Количество; i++)
            {
                СтрокаДанных данных = Данные.ТаблицаДанных[i];
                ТипЯчейки    ячейки = данных[base.FieldName];
                if (!((ячейки == null) || ячейки.ЗначениеЗаполнено))
                {
                    НомераСтрок.Add(данных.КодСтроки);
                    flag = true;
                }
            }
            return(flag);
        }
Beispiel #6
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();
                    }
                }
            }
        }