/// <summary> /// Предварительно обработать дерево XML-документа /// </summary> protected override void StartXmlDocProc() { genDT = DateTime.Now; itemRowTemplate = null; viewItem = null; reqDateHourTable = null; prevDateHourTable = null; }
/// <summary> /// Окончательно обработать дерево XML-документа /// </summary> protected override void FinalXmlDocProc() { // проверка шаблона if (workbook.Worksheets.Count == 0 || itemRowTemplate == null) { throw new Exception(WebPhrases.IncorrectRepTemplate); } // перевод наименования листа workbook.Worksheets[0].Name = PlgPhrases.HourDataWorksheet; // удаление лишних атрибутов таблицы Table table = itemRowTemplate.ParentTable; table.RemoveTableNodeAttrs(); // скрытие неиспользуемых столбцов HideUnusedColumns(table); // удаление строки-шаблона int itemRowIndex = table.Rows.IndexOf(itemRowTemplate); table.RemoveRow(itemRowIndex); // получение часовых данных reqDateHourTable = dataAccess.DataCache.GetHourTable(date); if (startHour < 0) { prevDateHourTable = dataAccess.DataCache.GetHourTable(date.AddDays(-1)); } // вывод данных в отчёт for (int i = 0, cnt = tableView.Items.Count; i < cnt; i++) { viewItem = tableView.Items[i]; if (!viewItem.Hidden) { cnlProps = viewItem.CnlNum > 0 ? dataAccess.GetCnlProps(viewItem.CnlNum) : null; Row newRow = itemRowTemplate.Clone(); ExcelProc(newRow); table.AppendRow(newRow); } } }
private SrezTableLight prevDateHourTable; // таблица часовых данных за предыдущую дату /// <summary> /// Конструктор /// </summary> public HourDataRepBuilder(DataAccess dataAccess) : base() { if (dataAccess == null) { throw new ArgumentNullException("dataAccess"); } this.dataAccess = dataAccess; dataFormatter = new DataFormatter(); tableView = null; date = DateTime.MinValue; startHour = 0; endHour = 23; genDT = DateTime.MinValue; itemRowTemplate = null; viewItem = null; reqDateHourTable = null; prevDateHourTable = null; }