示例#1
0
        /// <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);
                }
            }
        }
示例#2
0
        /// <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;
        }