public bool Загрузить(ОтчетнаяФормаДанных отчетнаяФорма, string таблица, string строка, string строкаСтарая)
        {
            if (!(((отчетнаяФорма != null) && !string.IsNullOrEmpty(таблица)) && отчетнаяФорма.Данные.СодержитТаблицу(таблица)))
            {
                return(false);
            }
            if ((this.типПостроения == ТипПостроенияИсторииСборки.ПоСтолбцу) && string.IsNullOrEmpty(this.столбецПостроения))
            {
                Сообщение.ПоказатьПредупреждение("Не указан столбец отображения.");
                return(false);
            }
            bool flag = false;

            this.КурсорОжидания();
            try
            {
                try
                {
                    Guid   guid = ХранилищеДанныхФорм.ПолучитьИдентификаторХранимыхДанных(отчетнаяФорма.Данные.Идентификатор);
                    string str  = отчетнаяФорма.Метаструктура.Наименование;
                    string str2 = отчетнаяФорма.НаименованиеУчреждения;
                    this.списокСтолбцов = отчетнаяФорма.Метаструктура.Таблицы[таблица].Столбцы;
                    ОписаниеУровняПросмотраИсторииСборки сборки = new ОписаниеУровняПросмотраИсторииСборки(guid, str, str2, таблица, строка, строкаСтарая);
                    сборки.СтолбецПостроения            = this.СтолбецПостроения;
                    сборки.ТипПостроения                = this.ТипПостроенияИстории;
                    сборки.КэшТаблицИсточников          = this.кэшТаблицИсточников;
                    сборки.КэшПодчиненныхОписаний       = this.кэшПодчиненныхОписаний;
                    сборки.ПередФормированиемЭлементов += new СобытиеОписанияУровняИстории(this.ПередЗагрузкойЭлементовОписания);
                    сборки.ФормированиеЭлементов       += new СобытиеОписанияУровняИстории(this.ЗагрузкаЭлементовОписания);
                    сборки.ПослеФормированияЭлементов  += new СобытиеОписанияУровняИстории(this.ПослеЗагрузкиЭлементовОписания);
                    if (!сборки.ПостроитьОписание())
                    {
                        сборки.Очистить();
                    }
                    else
                    {
                        this.ОписаниеТекущегоУровня = сборки;
                        flag = true;
                    }
                }
                catch (Exception exception)
                {
                    Сообщение.ПоказатьИсключительнуюСитуацию("Ошибка загрузки данных.", exception);
                    flag = false;
                }
            }
            finally
            {
                this.ОбычныйКурсор();
            }
            return(flag);
        }
Example #2
0
    protected ОтчетнаяФормаДанных ПолучитьОтчетнуюФорму()
    {
        if (this.ПараметрыГлавногоОкна.ПараметрЗадан("SessionParam"))
        {
            string[] strings = ПараметрыГлавногоОкна["SessionParam"].Split(':');

            if (strings.Length == 2)
            {
                ОтчетнаяФормаДанных отчетнаяФорма = null;

                object ОбъектСессионнойПеременной = Барс.ВебЯдро.МенеджерСессионныхПеременных.ПолучитьПеременнуюИзСессии(strings[0], strings[1]);

                if (ОбъектСессионнойПеременной is СписокТекущихОтчетныхФорм)
                {
                    try
                    {
                        if (this.ПараметрыГлавногоОкна.ПараметрЗадан("Index"))
                        {
                            int ИндексОбъектаВСписке = -1;

                            if (int.TryParse(ПараметрыГлавногоОкна["Index"].ToString(), out ИндексОбъектаВСписке))
                            {
                                ТекущаяОтчетнаяФорма текущаяФорма = (ОбъектСессионнойПеременной as СписокТекущихОтчетныхФорм)[ИндексОбъектаВСписке];

                                if (текущаяФорма != null)
                                {
                                    ИдентификаторМетаописанияФормы идентификатор = текущаяФорма.ПолучитьИдентификаторМетаописанияФормы();

                                    ХранилищеМетаописаний.ОбновитьЛокальноеМетаописание(идентификатор);

                                    отчетнаяФорма = new ОтчетнаяФормаДанных();
                                    отчетнаяФорма.ЗагрузитьМетаструктуру(идентификатор);

                                    отчетнаяФорма.КомпонентОтчетногоПериода = текущаяФорма.КомпонентОтчетногоПериода;
                                    отчетнаяФорма.Учреждение     = текущаяФорма.Учреждение;
                                    отчетнаяФорма.ЭлементЦепочки = текущаяФорма.ЭлементЦепочки.ТипЭлементаЦепочки;

                                    ХранилищеДанныхФорм.ОбновитьЛокальныеДанные(отчетнаяФорма.Данные.Идентификатор);

                                    отчетнаяФорма.ЗагрузитьДанные();
                                }
                            }
                        }
                    }
                    catch
                    {
                    }
                }
                else if (ОбъектСессионнойПеременной is ОтчетнаяФормаДанных)
                {
                    отчетнаяФорма = (ОтчетнаяФормаДанных)ОбъектСессионнойПеременной;
                }

                return(отчетнаяФорма);
            }
            else
            {
                return(null);
            }
        }
        else
        {
            return(null);
        }
    }