//создание строк с данными
        private List <Row> MethodBuildTreeToRows()
        {
            var rows = new List <Row>();

            maxlevel = template.Fields.Max(x => x.Level);

            var currentLevel = 1;

            rows.Add(BuildHeaderRow());

            var dt = dynamicQuery.GetData(currentLevel);

            //Если что-то пошло не так!
            if (dt.Rows.Count == 0)
            {
                return(rows);
            }

            var LevelAgr = template.Fields.Where(x => x.Level == currentLevel).Count(o => o.Aggregation != string.Empty);

            foreach (DataRow item in dt.Rows)
            {
                lastAgr = 0;
                var row = CreateRow(currentLevel, 0, item);
                rows.Add(row);
                var newRows = BuildChildRows(item, currentLevel, item.ItemArray.Count() - LevelAgr);
                foreach (var newItem in newRows)
                {
                    rows.Add(newItem);
                }
            }

            return(rows);
        }
        private DataTable GetFirstData()
        {
            var dt = new DataTable();

            if (template.TreeTypeEnum == Reporting.Reporting.Template.EnumTreeType.Undefined ||
                template.TreeTypeEnum == Reporting.Reporting.Template.EnumTreeType.General)
            {
                dt = dynamicQuery.GetData(1);
            }
            else if (template.Entity.IsHierarchic && template.TreeTypeEnum == Reporting.Reporting.Template.EnumTreeType.Children)
            {
                dt = dynamicQueryChildren.FirstQuery();
            }
            else if (template.Entity.IsHierarchic && template.TreeTypeEnum == Reporting.Reporting.Template.EnumTreeType.Branch)
            {
            }

            return(dt);//?? new DataTable();
        }