private void данныеТаблицыИстории_CustomUnboundColumnData(object sender, CustomColumnDataEventArgs e) { List <ЭлементПросмотраЗаписиИсторииСборки> list = this.ТекущийСписокЭлементов; if (((list != null) && (((e.Column != null) && (e.Column.Tag != null)) && !string.IsNullOrEmpty(e.Column.Tag.ToString()))) && ((e.ListSourceRowIndex >= 0) && (e.ListSourceRowIndex < list.Count))) { string key = string.Format("{0}:{1}", e.Column.Name, e.ListSourceRowIndex); object obj2 = e.Value; if (this.значенияЯчеек.ContainsKey(key)) { obj2 = this.значенияЯчеек[key]; } else { string str3; string str2 = e.Column.Tag.ToString().Trim().ToLower(); ЭлементПросмотраЗаписиИсторииСборки сборки = list[e.ListSourceRowIndex]; if (str2.StartsWith("значение_столбца_источника_")) { str3 = str2.Substring(0x1b).Trim(); obj2 = this.ОписаниеТекущегоУровня.ПолучитьЗначениеПоляИсточника(сборки, str3); if (obj2 == null) { obj2 = 0M; } else if (obj2 is ОбщийЧисловойТип) { obj2 = (obj2 as ОбщийЧисловойТип).Значение; if (obj2 == null) { obj2 = 0.00M; } } } else if (str2.StartsWith("значение_столбца_приемника_")) { str3 = str2.Substring(0x1b).Trim(); obj2 = this.ОписаниеТекущегоУровня.ПолучитьЗначениеПоляТекущейТаблицы(сборки, str3); if (obj2 == null) { obj2 = 0M; } else if (obj2 is ОбщийЧисловойТип) { obj2 = (obj2 as ОбщийЧисловойТип).Значение; if (obj2 == null) { obj2 = 0.00M; } } } else { obj2 = сборки.ПолучитьЗначениеПараметра(str2); if (obj2 is ОбщийЧисловойТип) { obj2 = (obj2 as ОбщийЧисловойТип).Значение; if (obj2 == null) { obj2 = 0.00M; } } decimal num = 0.00M; if (!(obj2 is decimal)) { try { if (Конвертер.ПопробоватьВЧисло(obj2.ToString(), out num)) { obj2 = num; } } catch { } } } this.значенияЯчеек.Add(key, obj2); } e.Value = obj2; } }
private bool ПроверитьКорректностьДанных(ref List <СтрокаОтчетаСверкиДанных> списокОшибокЗаполнения, ref int количествоОшибок, ref int количествоПредупреждений) { if (списокОшибокЗаполнения == null) { списокОшибокЗаполнения = new List <СтрокаОтчетаСверкиДанных>(); } bool flag = true; Dictionary <string, List <string> > dictionary = new Dictionary <string, List <string> >(); if (!this.Таблица.ПроверитьЗаполненностьДанных(out dictionary)) { foreach (KeyValuePair <string, List <string> > pair in dictionary) { foreach (string str in pair.Value) { СтрокаОтчетаСверкиДанных item = new СтрокаОтчетаСверкиДанных(); item.Форма = this.Таблица.ЭкраннаяФорма.ОтчетнаяФорма.Метаструктура.Наименование; item.Столбец = pair.Key; item.Строка = str; item.Субтаблица = this.Таблица.Наименование; item.ТипОшибки = "Незаполненная ячейка"; item.СохранениеРазрешено = false; списокОшибокЗаполнения.Add(item); } } } списокОшибокЗаполнения.AddRange(this.Таблица.Данные.ТаблицаДанных.МатрицаЗначений.ПроверитьУникальностьСтрок()); if (this.Таблица.Данные.ТаблицаДанных.ДанныеФормы.Идентификатор.КомпонентОтчетногоПериода.ОтчетныйПериод.ДатаНачала >= Конвертер.ВДату("01.01.2009")) { СверкаКлассификаторов классификаторов = this.Таблица.ЭкраннаяФорма.ОтчетнаяФорма.ПолучитьОбъектСверкиКлассификаторов(); классификаторов.ПроверятьНаПустоту = false; классификаторов.УдалятьНеверныеСтроки = false; списокОшибокЗаполнения.AddRange(классификаторов.Проверить(this.Таблица.Данные.ТаблицаДанных)); } foreach (СтрокаОтчетаСверкиДанных данных2 in списокОшибокЗаполнения) { if (данных2.СохранениеРазрешено) { количествоПредупреждений++; } else { количествоОшибок++; flag = false; } } return(flag); }