Example #1
0
 /// <summary>
 /// Предварительно обработать дерево XML-документа
 /// </summary>
 protected override void StartXmlDocProc()
 {
     genDT             = DateTime.Now;
     itemRowTemplate   = null;
     viewItem          = null;
     reqDateHourTable  = null;
     prevDateHourTable = null;
 }
Example #2
0
        /// <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);
                }
            }
        }
Example #3
0
        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;
        }