/// <summary> /// Окончательная обработка дерева XML-документа /// </summary> protected override void FinalXmlDocProc() { int hourDataWsInd = 0; // индекс листа часовых срезов int eventsWsInd = 1; // индекс листа событий bool hourDataWsExists = workbook != null && workbook.Worksheets.Count > hourDataWsInd; bool eventsWsExists = workbook != null && workbook.Worksheets.Count > eventsWsInd; // работа с листом часовых срезов if (tableView == null) { // удаление листа часовых срезов if (hourDataWsExists) { workbook.RemoveWorksheet(hourDataWsInd); eventsWsInd--; } } else { // перевод наименования листа if (hourDataWsExists) workbook.Worksheets[hourDataWsInd].Name = WebPhrases.HourDataPage; if (templItemRow != null) { // удаление лишних атрибутов таблицы Table table = templItemRow.ParentTable; table.RemoveTableNodeAttrs(); // заполнение таблицы часовых срезов for (int i = 0; i < tableView.VisibleCount; i++) { item = tableView.VisibleItems[i]; Row rowClone = templItemRow.Clone(); ExcelProc(rowClone); table.AppendRow(rowClone); } item = null; // удаление строки-шаблона int rowIndex = table.Rows.IndexOf(templItemRow); table.RemoveRow(rowIndex); } } // работа с листом событий if (eventOut <= 0) { // удаление листа событий if (eventsWsExists) workbook.RemoveWorksheet(eventsWsInd); } else { // перевод наименования листа if (eventsWsExists) workbook.Worksheets[eventsWsInd].Name = WebPhrases.EventsPage; if (templEventRow != null) { // удаление лишних атрибутов таблицы Table table = templEventRow.ParentTable; table.RemoveTableNodeAttrs(); // выбор событий List<MainData.EventView> eventViewList = AppData.MainData.ConvertEvents(eventOut == 1 ? AppData.MainData.GetEvents(eventTable, null) : AppData.MainData.GetEvents(eventTable, baseView.CnlList)); // заполнение таблицы событий for (int i = 0; i < eventViewList.Count; i++) { eventView = eventViewList[i]; Row rowClone = templEventRow.Clone(); ExcelProc(rowClone); table.AppendRow(rowClone); } // удаление строки-шаблона int rowIndex = table.Rows.IndexOf(templEventRow); table.RemoveRow(rowIndex); } } }
/// <summary> /// Начальная обработка дерева XML-документа /// </summary> protected override void StartXmlDocProc() { genDT = DateTime.Now; if (tableView == null) hourTable = null; else AppData.MainData.RefreshData(date, out hourTable); if (eventOut <= 0) eventTable = null; else AppData.MainData.RefreshEvents(date, out eventTable); templItemRow = null; templEventRow = null; item = null; eventView = null; }