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.функцииАвтоблоков.КоличествоСтрок)); }
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(данных); }
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.Загрузить(отчетнаяФорма, таблица, строка, "")); }
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.отчетнаяФорма = ОтчетнаяФорма; }
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); } }
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 } }