public static void ПроинициализироватьВыборИзСправочника(ВыборИзСправочника выборИзСправочника, GridStyleInfo style, ПараметрыСозданияРедактора_ВыборИзСправочника параметрыСоздания) { ОписаниеСсылкиНаСправочник справочник = null; ТипЯчейки ячейки; bool flag = style.CellType == "МножественныйВыборИзСправочника"; if (flag) { справочник = new ОписаниеМножественнойСсылкиНаСправочник(style.Description); } else { справочник = new ОписаниеСсылкиНаСправочник(style.Description); } if (параметрыСоздания != null) { if (!параметрыСоздания.едактированиеРазрешено) { выборИзСправочника.ТипИзменения = ВыборИзСправочника.ТипРедактирования.Запрещено; } else if (справочник.учнойВводТекста) { выборИзСправочника.ТипИзменения = ВыборИзСправочника.ТипРедактирования.ВыборИВводТекста; } else { выборИзСправочника.ТипИзменения = ВыборИзСправочника.ТипРедактирования.ТолькоВыбор; } } if (!string.IsNullOrEmpty(справочник.КодСправочника)) { string str = справочник.КодСправочника.Trim().ToLower(); if (str == null) { goto Label_0131; } if (!(str == "учреждение")) { if (str == "типучреждения") { СправочникТиповУчреждений учреждений = new СправочникТиповУчреждений(); выборИзСправочника.ТипЭлементаДляВыбора = null; выборИзСправочника.ИсточникДанных = учреждений; goto Label_0262; } if (str == "видучреждения") { СправочникВидовУчреждений учреждений2 = new СправочникВидовУчреждений(); выборИзСправочника.ТипЭлементаДляВыбора = null; выборИзСправочника.ИсточникДанных = учреждений2; goto Label_0262; } goto Label_0131; } выборИзСправочника.ТипЭлементаДляВыбора = typeof(Учреждение); выборИзСправочника.ИсточникДанных = null; } goto Label_0262; Label_0131: if (flag) { ВыборЗаписейСправочника справочника = new ВыборЗаписейСправочника(ежимВыбораЭлементовСпискаВыбора.Множественный); справочника.ОписаниеСсылки = (ОписаниеМножественнойСсылкиНаСправочник)справочник; выборИзСправочника.ИсточникДанных = справочника; if ((параметрыСоздания != null) && (параметрыСоздания.Таблица != null)) { ячейки = параметрыСоздания.Таблица.ВыбраннаяЯчейка; if ((ячейки != null) && (ячейки.Значение is СписокВыбранныхЗаписейСправочника)) { справочника.ВыбранныеЗаписи = ячейки.Значение as СписокВыбранныхЗаписейСправочника; } else { справочника.ВыбранныеЗаписи = null; } } } else { ВыборИзУниверсальногоСправочника справочника2 = new ВыборИзУниверсальногоСправочника(); выборИзСправочника.ТипЭлементаДляВыбора = null; справочника2.ОписаниеСсылки = справочник; выборИзСправочника.ИсточникДанных = справочника2; if ((параметрыСоздания != null) && (параметрыСоздания.Таблица != null)) { ячейки = параметрыСоздания.Таблица.ВыбраннаяЯчейка; if ((ячейки != null) && (ячейки.Значение is ЗаписьСправочника)) { справочника2.ВыбраннаяЗапись = ячейки.Значение as ЗаписьСправочника; } else { справочника2.ВыбраннаяЗапись = null; } } } Label_0262: ПроинициализироватьЗначение(выборИзСправочника, style.CellValue); }
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; }