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);
        }
        protected void ПроинициализироватьФункцииАвтоблоков(ОтчетнаяФормаДанных ОтчетнаяФорма)
        {
            GridFormulaCellModel model  = (GridFormulaCellModel)this.Представление.CellModels["FormulaCell"];
            GridFormulaEngine    engine = model.Engine;

            base.DrawCellDisplayText += new GridDrawCellDisplayTextEventHandler(this.ТаблицаExcel_DrawCellDisplayText);
            this.функцииАвтоблоков    = new ФункцииАвтоблоков(ОтчетнаяФорма);
            if (engine.LibraryFunctions.ContainsKey("СуммаПоСтолбцу".ToUpper()))
            {
                engine.RemoveFunction("СуммаПоСтолбцу".ToUpper());
            }
            if (engine.LibraryFunctions.ContainsKey("КоличествоСтрок".ToUpper()))
            {
                engine.RemoveFunction("КоличествоСтрок".ToUpper());
            }
            engine.AddFunction("СуммаПоСтолбцу", new GridFormulaEngine.LibraryFunction(this.функцииАвтоблоков.СуммаПоСтолбцу));
            engine.AddFunction("КоличествоСтрок", new GridFormulaEngine.LibraryFunction(this.функцииАвтоблоков.КоличествоСтрок));
        }
Beispiel #3
0
        private ТаблицаДанных ПолучитьТаблицуДанныхПриемника(ЗаписьИсторииСборкиИтоговыхОтчетов записьИстории)
        {
            ТаблицаДанных данных = null;

            try
            {
                Выборка <ХранимыеДанныеФормы> выборка = new Выборка <ХранимыеДанныеФормы>();
                выборка.Запрос.ДобавитьУсловиеОтбора("Идентификатор", записьИстории.ИдентификаторДанныхПриемника);
                выборка.ЗагрузитьПолностью();
                if (выборка.Count > 0)
                {
                    ХранимыеДанныеФормы формы = выборка[0];
                    формы.Загрузить();
                    ОтчетнаяФормаДанных данных2 = new ОтчетнаяФормаДанных();
                    данных2.ЗагрузитьИзБД(формы);
                    if (данных2.Данные.ДанныеЗагружены && данных2.Данные.СодержитТаблицу(записьИстории.КодТаблицыПриемника))
                    {
                        данных = данных2.Данные[записьИстории.КодТаблицыПриемника];
                    }
                    else
                    {
                        данных = null;
                    }
                }
                else
                {
                    данных = null;
                }
                выборка.Очистить();
            }
            catch (Exception exception)
            {
                Сообщение.ПоказатьИсключительнуюСитуацию("Ошибка загрузки данных приемника.", exception);
                данных = null;
            }
            return(данных);
        }
Beispiel #4
0
        public void ВыставитьТипСтолбца(СтолбецМетаструктуры СтолбецМетастуктуры, ОтчетнаяФормаДанных ОтчетнаяФорма)
        {
            RepositoryItem item = null;
            ОписаниеМножественнойСсылкиНаСправочник справочник;
            ОписаниеСсылкиНаСправочник справочник2;

            this.описаниеЯчейки = СтолбецМетастуктуры.ОписаниеТипаЯчейки;
            if (СтолбецМетастуктуры.Тип.IsSubclassOf(typeof(ОбщийЧисловойТип)))
            {
                Type   type          = СтолбецМетастуктуры.Тип;
                int    num           = 0;
                string str           = "";
                string displayFormat = "";
                if (type == typeof(ФинансовыйТип))
                {
                    num = 2;
                }
                else if (type == typeof(ЦелочисленныйТип))
                {
                    num = 0;
                }
                else if ((type == typeof(ЧисловойТип)) && ((this.описаниеЯчейки != null) && (this.описаниеЯчейки is ОписаниеЧисловогоТипа)))
                {
                    num = (this.описаниеЯчейки as ОписаниеЧисловогоТипа).Точность;
                }
                if (num == 0)
                {
                    str = "N00";
                }
                else
                {
                    str = "N" + num.ToString();
                }
                displayFormat                  = "{" + string.Format("0:{0}", str) + "}";
                this.СтрокаФорматирования      = str;
                base.SummaryItem.SummaryType   = SummaryItemType.Sum;
                base.SummaryItem.DisplayFormat = displayFormat;
                base.UnboundType               = UnboundColumnType.Decimal;
                едакторЧислаДинамическойТаблицы таблицы = new  едакторЧислаДинамическойТаблицы();
                таблицы.DisplayFormat.FormatString = displayFormat;
                if (base.View != null)
                {
                    base.View.GroupSummary.Add(new GridGroupSummaryItem(SummaryItemType.Sum, base.FieldName, this, displayFormat));
                }
                item = таблицы;
                goto Label_0679;
            }
            if (СтолбецМетастуктуры.Тип == typeof(ТипДатаВремя))
            {
                base.UnboundType = UnboundColumnType.DateTime;
                if (СтолбецМетастуктуры.ОписаниеТипаЯчейки is ОписаниеТипаДатаВремя)
                {
                    RepositoryItem        item2 = null;
                    ОписаниеТипаДатаВремя время = СтолбецМетастуктуры.ОписаниеТипаЯчейки as ОписаниеТипаДатаВремя;
                    if (время.едакторВремени)
                    {
                        item2 = new RepositoryItemTimeEdit();
                    }
                    else
                    {
                        item2 = new  едакторДатыДинамическойТаблицы();
                        if (!string.IsNullOrEmpty(время.ФорматОтображения))
                        {
                            (item2 as  едакторДатыДинамическойТаблицы).Mask.MaskType = MaskType.DateTime;
                            (item2 as  едакторДатыДинамическойТаблицы).Mask.EditMask = время.ФорматОтображения;
                            (item2 as  едакторДатыДинамическойТаблицы).Mask.UseMaskAsDisplayFormat = true;
                        }
                    }
                    item = item2;
                }
                else
                {
                    едакторДатыДинамическойТаблицы таблицы2 = new  едакторДатыДинамическойТаблицы();
                    item = таблицы2;
                }
                goto Label_0679;
            }
            if (СтолбецМетастуктуры.Тип == typeof(ТипИзображение))
            {
                base.UnboundType = UnboundColumnType.Object;
                RepositoryItemImageEdit edit = new RepositoryItemImageEdit();
                edit.NullText = string.Empty;
                edit.ShowIcon = true;
                edit.SizeMode = PictureSizeMode.Stretch;
                item          = edit;
                goto Label_0679;
            }
            if (СтолбецМетастуктуры.Тип == typeof(СтроковыйТип))
            {
                if ((this.описаниеЯчейки != null) && (this.описаниеЯчейки is ОписаниеСтроковогоТипаЯчейки))
                {
                    ОписаниеСтроковогоТипаЯчейки ячейки = this.описаниеЯчейки as ОписаниеСтроковогоТипаЯчейки;
                    if (!string.IsNullOrEmpty(ячейки.МаскаВвода))
                    {
                        ПолеВводаТекста текста = new ПолеВводаТекста();
                        текста.Mask.MaskType               = MaskType.RegEx;
                        текста.Mask.EditMask               = ячейки.МаскаВвода;
                        текста.Mask.ShowPlaceHolders       = true;
                        текста.Mask.UseMaskAsDisplayFormat = true;
                        текста.Mask.IgnoreMaskBlank        = false;
                        item = текста;
                    }
                    else if (ячейки.МногострочныйРедактор)
                    {
                        ВыпадающийТекст текст = new ВыпадающийТекст();
                        item = текст;
                    }
                    else
                    {
                        base.UnboundType = UnboundColumnType.String;
                    }
                }
                else
                {
                    base.UnboundType = UnboundColumnType.String;
                }
                goto Label_0679;
            }
            if (СтолбецМетастуктуры.Тип == typeof(ЛогическийТип))
            {
                this.ТипЭлементаДляВыбора = typeof(Учреждение);
                base.UnboundType          = UnboundColumnType.Boolean;
                едакторФлажокДинамическойТаблицы таблицы3 = new  едакторФлажокДинамическойТаблицы();
                item = таблицы3;
                goto Label_0679;
            }
            if ((СтолбецМетастуктуры.Тип != typeof(СсылкаНаСправочник)) && (СтолбецМетастуктуры.Тип != typeof(МножественнаяСсылкаНаСправочник)))
            {
                goto Label_0679;
            }
            ВыборИзСправочника справочника = new ВыборИзСправочника();

            if ((this.описаниеЯчейки != null) && ((this.описаниеЯчейки is ОписаниеСсылкиНаСправочник) || (this.описаниеЯчейки is ОписаниеМножественнойСсылкиНаСправочник)))
            {
                справочник  = null;
                справочник2 = null;
                string str3 = "";
                if (this.описаниеЯчейки is ОписаниеМножественнойСсылкиНаСправочник)
                {
                    справочник = this.описаниеЯчейки as ОписаниеМножественнойСсылкиНаСправочник;
                    str3       = справочник.КодСправочника;
                }
                else if (this.описаниеЯчейки is ОписаниеСсылкиНаСправочник)
                {
                    справочник2 = this.описаниеЯчейки as ОписаниеСсылкиНаСправочник;
                    str3        = справочник2.КодСправочника;
                }
                string str4 = str3.Trim().ToLower();
                if (str4 == null)
                {
                    goto Label_057D;
                }
                if (!(str4 == "учреждение"))
                {
                    if (str4 == "типучреждения")
                    {
                        this.ТипЭлементаДляВыбора = typeof(ТипУчреждения);
                        this.ИсточникДанных       = null;
                        goto Label_0643;
                    }
                    if (str4 == "видучреждения")
                    {
                        this.ТипЭлементаДляВыбора = typeof(ВидУчреждения);
                        this.ИсточникДанных       = null;
                        goto Label_0643;
                    }
                    goto Label_057D;
                }
                this.ТипЭлементаДляВыбора = typeof(Учреждение);
                this.ИсточникДанных       = null;
            }
            goto Label_0643;
Label_057D:
            this.ТипЭлементаДляВыбора = null;
            if (справочник != null)
            {
                ВыборЗаписейСправочника справочника2 = new ВыборЗаписейСправочника(ежимВыбораЭлементовСпискаВыбора.Множественный);
                справочника2.ОписаниеСсылки = справочник;
                if ((ОтчетнаяФорма != null) && (ОтчетнаяФорма.КомпонентОтчетногоПериода != null))
                {
                    справочника2.ДатаАктуальности = ОтчетнаяФорма.КомпонентОтчетногоПериода.ОтчетныйПериод.ДатаНачала;
                }
                this.ИсточникДанных = справочника2;
            }
            else if (справочник2 != null)
            {
                ВыборИзУниверсальногоСправочника справочника3 = new ВыборИзУниверсальногоСправочника();
                справочника3.ОписаниеСсылки = справочник2;
                if ((ОтчетнаяФорма != null) && (ОтчетнаяФорма.КомпонентОтчетногоПериода != null))
                {
                    справочника3.ДатаАктуальности = ОтчетнаяФорма.КомпонентОтчетногоПериода.ОтчетныйПериод.ДатаНачала;
                }
                this.ИсточникДанных = справочника3;
            }
Label_0643:
            base.UnboundType = UnboundColumnType.Object;
            base.SortMode    = ColumnSortMode.DisplayText;
            base.FilterMode  = ColumnFilterMode.DisplayText;
            base.OptionsColumn.AllowGroup = DefaultBoolean.True;
            base.OptionsColumn.AllowSort  = DefaultBoolean.True;
            item = справочника;
Label_0679:
            base.ColumnEdit = item;
        }
 public bool Загрузить(ОтчетнаяФормаДанных отчетнаяФорма, string таблица, string строка)
 {
     return(this.Загрузить(отчетнаяФорма, таблица, строка, ""));
 }
Beispiel #6
0
 public НастройкиГруппыВкладок(XtraTabControl группаЗакладок, Type типГоловногоОбъекта, ОтчетнаяФормаДанных отчетнаяФорма)
 {
     this.типГоловногоОбъекта           = типГоловногоОбъекта;
     this.идентификаторМетаОписания     = отчетнаяФорма.Метаструктура.Идентификатор.ИдентификаторМетаописания;
     this.кодУчреждения                 = отчетнаяФорма.Данные.Идентификатор.Учреждение.КороткийКод;
     this.кодКомпонентаОтчетногоПериода = отчетнаяФорма.КомпонентОтчетногоПериода.Код;
     this.кодОтчетногоПериода           = отчетнаяФорма.КомпонентОтчетногоПериода.ОтчетныйПериод.Код;
     for (int i = 0; i < группаЗакладок.TabPages.Count; i++)
     {
         НастройкиВкладки вкладки = new НастройкиВкладки(группаЗакладок.TabPages[i], i);
         this.Add(вкладки);
     }
 }
 public void Dispose()
 {
     this.отчетнаяФорма = null;
 }
 public ФункцииАвтоблоков(ОтчетнаяФормаДанных ОтчетнаяФорма)
 {
     this.отчетнаяФорма = ОтчетнаяФорма;
 }
Beispiel #9
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);
        }
    }
Beispiel #10
0
        public override void ОбработатьСобытиеОткрытияФормы(АргументыОткрытияФормы аргументы)
        {
            // при открытии отчётной формы две ячейки блокируются от редактирования пользователем
            // и в эти ячейки выполняется перенос сведений из прошлого года

            int кодМесяца = Convert.ToInt32(Форма.Идентификатор.КомпонентОтчетногоПериода.IОтчетныйПериод.Код.Substring(3, 2));
            int кодГода   = Convert.ToInt32(Форма.Идентификатор.КомпонентОтчетногоПериода.IОтчетныйПериод.Код.Substring(6, 4));

            if (кодМесяца > 5 && (кодГода == 2019 || кодГода > 2019))
            {
                Форма.Таблицы["Пневмония"].МатрицаЗначений.Строки["001"].Ячейки["01"].ТолькоЧтение = true;
                Форма.Таблицы["Пневмония"].МатрицаЗначений.Строки["002"].Ячейки["01"].ТолькоЧтение = true;

                #region перенос данных из предыдущего года

                string кодФормы            = "Пневмония";
                string текущийГод          = Форма.Идентификатор.КомпонентОтчетногоПериода.IОтчетныйПериод.Код.Substring(6, 4);
                int    прошлыйГод          = Convert.ToInt32(текущийГод) - 1;
                string кодОтчётногоПериода = Convert.ToString(Форма.Идентификатор.КомпонентОтчетногоПериода.IОтчетныйПериод.Код.Substring(0, 6))
                                             + прошлыйГод;


                #region поиск компоненты
                Выборка <ОтчетныйПериод> поискПредыдущегоОтчётногоПериода = new Выборка <ОтчетныйПериод>();
                поискПредыдущегоОтчётногоПериода.Запрос.ДобавитьУсловиеОтбора("Код", кодОтчётногоПериода);
                поискПредыдущегоОтчётногоПериода.Загрузить();

                КомпонентОтчетногоПериода компонентПредыдущегоОтчётногоПериода = null;
                bool компонентПредыдущегоОПНайден = false;

                foreach (ОтчетныйПериод найденныйПредыдущийОтчетныйПериод in поискПредыдущегоОтчётногоПериода)
                {
                    foreach (КомпонентОтчетногоПериода найденныйКомпонентПОП in найденныйПредыдущийОтчетныйПериод.Компоненты)
                    {
                        if (найденныйКомпонентПОП.ПакетФорм != null)
                        {
                            foreach (ЭлементПакетаОтчетныхФорм найденнаяФормаПОП in найденныйКомпонентПОП.ПакетФорм.ОтчетныеФормы)
                            {
                                if (найденнаяФормаПОП.ИдентификаторОтчетнойФормы == кодФормы)
                                {
                                    компонентПредыдущегоОтчётногоПериода = найденныйКомпонентПОП;
                                    компонентПредыдущегоОПНайден         = true;
                                    break;
                                }
                            }
                            if (компонентПредыдущегоОПНайден)
                            {
                                break;
                            }
                        }
                    }
                    if (компонентПредыдущегоОПНайден)
                    {
                        break;
                    }
                }
                //конец поиска компоненты
                #endregion


                #region получение данных из компоненты
                ОтчетнаяФормаДанных формаПредыдущегоГода = BI_ОтчетнаяФормаДанных.ПолучитьОтчетнуюФормуДанных(
                    (Учреждение)Форма.Идентификатор.Учреждение,
                    компонентПредыдущегоОтчётногоПериода,
                    кодФормы
                    );

                // выполняется заполнениедвух ячеек данными из прошлого года
                Форма.Таблицы["Пневмония"].МатрицаЗначений.Строки["001"].Ячейки["01"].Значение =
                    формаПредыдущегоГода.Данные.Таблицы["Пневмония"].МатрицаЗначений.Строки["001"].Ячейки["02"].Значение;

                Форма.Таблицы["Пневмония"].МатрицаЗначений.Строки["002"].Ячейки["01"].Значение =
                    формаПредыдущегоГода.Данные.Таблицы["Пневмония"].МатрицаЗначений.Строки["002"].Ячейки["02"].Значение;

                #endregion


                #endregion
            }
        }