Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
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;
        }