示例#1
0
        private bool ПостроитьСписокЭлементов()
        {
            if ((this.история == null) || (this.история.Count == 0))
            {
                return(false);
            }
            bool flag = false;

            if (this.ПередФормированиемЭлементов != null)
            {
                this.ПередФормированиемЭлементов(this, null);
            }
            try
            {
                try
                {
                    if (this.списокЭлементов == null)
                    {
                        this.списокЭлементов = new List <ЭлементПросмотраЗаписиИсторииСборки>();
                    }
                    else
                    {
                        this.списокЭлементов.Clear();
                    }
                    foreach (ЗаписьИсторииСборкиИтоговыхОтчетов отчетов in this.история)
                    {
                        ЭлементПросмотраЗаписиИсторииСборки сборки = new ЭлементПросмотраЗаписиИсторииСборки(отчетов, (this.типПостроения == ТипПостроенияИсторииСборки.ПоСтолбцу) ? this.столбецПостроения : "");
                        if (сборки.ЭлементЗагружен)
                        {
                            if (this.ФормированиеЭлементов != null)
                            {
                                this.ФормированиеЭлементов(this, сборки);
                            }
                            this.списокЭлементов.Add(сборки);
                            if (this.типПостроения == ТипПостроенияИсторииСборки.ПоСтрокеСИсточником)
                            {
                                this.ЗагрузитьТаблицуИсточника(сборки.ЗаписьИстории);
                                this.ЗагрузитьТаблицуПриемника(сборки.ЗаписьИстории);
                            }
                        }
                    }
                    flag = this.списокЭлементов.Count > 0;
                }
                catch (Exception exception)
                {
                    Сообщение.ПоказатьИсключительнуюСитуацию("Ошибка построения элементов отображения истории.", exception);
                    this.списокЭлементов.Clear();
                    flag = false;
                }
            }
            finally
            {
                if (this.ПослеФормированияЭлементов != null)
                {
                    this.ПослеФормированияЭлементов(this, null);
                }
            }
            return(flag);
        }
示例#2
0
        public ОписаниеУровняПросмотраИсторииСборки ПолучитьОписаниеПоЭлементу(int номерЭлемента)
        {
            ЭлементПросмотраЗаписиИсторииСборки сборки = this.ПолучитьЭлементПросмотра(номерЭлемента);

            if (сборки == null)
            {
                return(null);
            }
            return(this.ПолучитьОписаниеПоЭлементу(сборки));
        }
示例#3
0
        public ОписаниеУровняПросмотраИсторииСборки ПолучитьОписаниеПоЭлементу(ЭлементПросмотраЗаписиИсторииСборки элемент)
        {
            if ((!this.ОписаниеЗагружено || (элемент == null)) || (this.кэшПодчиненныхОписаний == null))
            {
                return(null);
            }
            ЗаписьИсторииСборкиИтоговыхОтчетов отчетов = элемент.ЗаписьИстории;
            Guid guid1 = отчетов.ИдентификаторДанныхИсточника;

            if (отчетов.ИдентификаторДанныхИсточника == Guid.Empty)
            {
                return(null);
            }
            if (this.кэшПодчиненныхОписаний.ContainsKey(отчетов.КлючИсточникаСтрокой))
            {
                return(this.кэшПодчиненныхОписаний[отчетов.КлючИсточникаСтрокой]);
            }
            ОписаниеУровняПросмотраИсторииСборки сборки = new ОписаниеУровняПросмотраИсторииСборки(отчетов);

            if (!сборки.ИсторияЗагружена)
            {
                сборки.Очистить();
                сборки = null;
            }
            else
            {
                сборки.ТипПостроения          = this.типПостроения;
                сборки.СтолбецПостроения      = this.СтолбецПостроения;
                сборки.КэшТаблицИсточников    = this.КэшТаблицИсточников;
                сборки.КэшПодчиненныхОписаний = this.КэшПодчиненныхОписаний;
                сборки.одитель = this;
                if (!сборки.ПостроитьОписание())
                {
                    сборки.Очистить();
                    сборки = null;
                }
            }
            this.кэшПодчиненныхОписаний.Add(отчетов.КлючИсточникаСтрокой, сборки);
            return(сборки);
        }
示例#4
0
        public object ПолучитьЗначениеПоляИсточника(ЭлементПросмотраЗаписиИсторииСборки элемент, string кодСтолбца)
        {
            object obj2;

            if ((this.кэшТаблицИсточников == null) || (this.кэшТаблицИсточников.Count == 0))
            {
                return(null);
            }
            try
            {
                Guid guid = элемент.ЗаписьИстории.ИдентификаторДанныхИсточника;
                if (guid == Guid.Empty)
                {
                    return(null);
                }
                ТаблицаДанных данных = null;
                string        key    = guid.ToString() + элемент.Таблица;
                if (this.кэшТаблицИсточников.ContainsKey(key))
                {
                    данных = this.кэшТаблицИсточников[key];
                }
                if (данных == null)
                {
                    return(null);
                }
                if (!данных.МатрицаЗначений.СодержитИндекс(элемент.КодСтрокиИсточника, кодСтолбца))
                {
                    return(null);
                }
                obj2 = данных.МатрицаЗначений[элемент.КодСтрокиИсточника, кодСтолбца];
            }
            catch
            {
            }
            return(obj2);
        }
        private void данныеТаблицыИстории_CustomUnboundColumnData(object sender, CustomColumnDataEventArgs e)
        {
            List <ЭлементПросмотраЗаписиИсторииСборки> list = this.ТекущийСписокЭлементов;

            if (((list != null) && (((e.Column != null) && (e.Column.Tag != null)) && !string.IsNullOrEmpty(e.Column.Tag.ToString()))) && ((e.ListSourceRowIndex >= 0) && (e.ListSourceRowIndex < list.Count)))
            {
                string key  = string.Format("{0}:{1}", e.Column.Name, e.ListSourceRowIndex);
                object obj2 = e.Value;
                if (this.значенияЯчеек.ContainsKey(key))
                {
                    obj2 = this.значенияЯчеек[key];
                }
                else
                {
                    string str3;
                    string str2 = e.Column.Tag.ToString().Trim().ToLower();
                    ЭлементПросмотраЗаписиИсторииСборки сборки = list[e.ListSourceRowIndex];
                    if (str2.StartsWith("значение_столбца_источника_"))
                    {
                        str3 = str2.Substring(0x1b).Trim();
                        obj2 = this.ОписаниеТекущегоУровня.ПолучитьЗначениеПоляИсточника(сборки, str3);
                        if (obj2 == null)
                        {
                            obj2 = 0M;
                        }
                        else if (obj2 is ОбщийЧисловойТип)
                        {
                            obj2 = (obj2 as ОбщийЧисловойТип).Значение;
                            if (obj2 == null)
                            {
                                obj2 = 0.00M;
                            }
                        }
                    }
                    else if (str2.StartsWith("значение_столбца_приемника_"))
                    {
                        str3 = str2.Substring(0x1b).Trim();
                        obj2 = this.ОписаниеТекущегоУровня.ПолучитьЗначениеПоляТекущейТаблицы(сборки, str3);
                        if (obj2 == null)
                        {
                            obj2 = 0M;
                        }
                        else if (obj2 is ОбщийЧисловойТип)
                        {
                            obj2 = (obj2 as ОбщийЧисловойТип).Значение;
                            if (obj2 == null)
                            {
                                obj2 = 0.00M;
                            }
                        }
                    }
                    else
                    {
                        obj2 = сборки.ПолучитьЗначениеПараметра(str2);
                        if (obj2 is ОбщийЧисловойТип)
                        {
                            obj2 = (obj2 as ОбщийЧисловойТип).Значение;
                            if (obj2 == null)
                            {
                                obj2 = 0.00M;
                            }
                        }
                        decimal num = 0.00M;
                        if (!(obj2 is decimal))
                        {
                            try
                            {
                                if (Конвертер.ПопробоватьВЧисло(obj2.ToString(), out num))
                                {
                                    obj2 = num;
                                }
                            }
                            catch
                            {
                            }
                        }
                    }
                    this.значенияЯчеек.Add(key, obj2);
                }
                e.Value = obj2;
            }
        }