private bool ПостроитьСписокЭлементов() { if ((this.история == null) || (this.история.Count == 0)) { return(false); } bool flag = false; if (this.ПередФормированиемЭлементов != null) { this.ПередФормированиемЭлементов(this, null); } try { try { if (this.списокЭлементов == null) { this.списокЭлементов = new List <ЭлементПросмотраЗаписиИсторииСборки>(); } else { this.списокЭлементов.Clear(); } foreach (ЗаписьИсторииСборкиИтоговыхОтчетов отчетов in this.история) { ЭлементПросмотраЗаписиИсторииСборки сборки = new ЭлементПросмотраЗаписиИсторииСборки(отчетов, (this.типПостроения == ТипПостроенияИсторииСборки.ПоСтолбцу) ? this.столбецПостроения : ""); if (сборки.ЭлементЗагружен) { if (this.ФормированиеЭлементов != null) { this.ФормированиеЭлементов(this, сборки); } this.списокЭлементов.Add(сборки); if (this.типПостроения == ТипПостроенияИсторииСборки.ПоСтрокеСИсточником) { this.ЗагрузитьТаблицуИсточника(сборки.ЗаписьИстории); this.ЗагрузитьТаблицуПриемника(сборки.ЗаписьИстории); } } } flag = this.списокЭлементов.Count > 0; } catch (Exception exception) { Сообщение.ПоказатьИсключительнуюСитуацию("Ошибка построения элементов отображения истории.", exception); this.списокЭлементов.Clear(); flag = false; } } finally { if (this.ПослеФормированияЭлементов != null) { this.ПослеФормированияЭлементов(this, null); } } return(flag); }
public ОписаниеУровняПросмотраИсторииСборки ПолучитьОписаниеПоЭлементу(int номерЭлемента) { ЭлементПросмотраЗаписиИсторииСборки сборки = this.ПолучитьЭлементПросмотра(номерЭлемента); if (сборки == null) { return(null); } return(this.ПолучитьОписаниеПоЭлементу(сборки)); }
public ОписаниеУровняПросмотраИсторииСборки ПолучитьОписаниеПоЭлементу(ЭлементПросмотраЗаписиИсторииСборки элемент) { if ((!this.ОписаниеЗагружено || (элемент == null)) || (this.кэшПодчиненныхОписаний == null)) { return(null); } ЗаписьИсторииСборкиИтоговыхОтчетов отчетов = элемент.ЗаписьИстории; Guid guid1 = отчетов.ИдентификаторДанныхИсточника; if (отчетов.ИдентификаторДанныхИсточника == Guid.Empty) { return(null); } if (this.кэшПодчиненныхОписаний.ContainsKey(отчетов.КлючИсточникаСтрокой)) { return(this.кэшПодчиненныхОписаний[отчетов.КлючИсточникаСтрокой]); } ОписаниеУровняПросмотраИсторииСборки сборки = new ОписаниеУровняПросмотраИсторииСборки(отчетов); if (!сборки.ИсторияЗагружена) { сборки.Очистить(); сборки = null; } else { сборки.ТипПостроения = this.типПостроения; сборки.СтолбецПостроения = this.СтолбецПостроения; сборки.КэшТаблицИсточников = this.КэшТаблицИсточников; сборки.КэшПодчиненныхОписаний = this.КэшПодчиненныхОписаний; сборки.одитель = this; if (!сборки.ПостроитьОписание()) { сборки.Очистить(); сборки = null; } } this.кэшПодчиненныхОписаний.Add(отчетов.КлючИсточникаСтрокой, сборки); return(сборки); }
public object ПолучитьЗначениеПоляИсточника(ЭлементПросмотраЗаписиИсторииСборки элемент, string кодСтолбца) { object obj2; if ((this.кэшТаблицИсточников == null) || (this.кэшТаблицИсточников.Count == 0)) { return(null); } try { Guid guid = элемент.ЗаписьИстории.ИдентификаторДанныхИсточника; if (guid == Guid.Empty) { return(null); } ТаблицаДанных данных = null; string key = guid.ToString() + элемент.Таблица; if (this.кэшТаблицИсточников.ContainsKey(key)) { данных = this.кэшТаблицИсточников[key]; } if (данных == null) { return(null); } if (!данных.МатрицаЗначений.СодержитИндекс(элемент.КодСтрокиИсточника, кодСтолбца)) { return(null); } obj2 = данных.МатрицаЗначений[элемент.КодСтрокиИсточника, кодСтолбца]; } catch { } return(obj2); }
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; } }