Beispiel #1
0
        public CrcReportFolder Create(ReportingService2005Soap rService, string path)
        {
            var ret = new CrcReportFolder();

            ret.Path       = path;
            ret.FolderName = CrcReportDefinition.ReportNameFromPath(path);

            var lcRequest = new ListChildrenRequest(path, false);

            var lcResponse = rService.ListChildren(lcRequest);

            foreach (CatalogItem itemLoop in lcResponse.CatalogItems)
            {
                if (itemLoop.Type == ItemTypeEnum.Folder)
                {
                    var sf = Create(rService, itemLoop.Path);
                    if (sf.Reports.Count() > 0 || sf.SubFolders.Count() > 0)
                    {
                        ret.SubFolders.Add(sf);
                    }
                }
                else if (itemLoop.Type == ItemTypeEnum.Report)
                {
                    if (!itemLoop.Hidden)
                    {
                        var repItem = new CrcReportItem();
                        repItem.ReportPath  = itemLoop.Path;
                        repItem.DisplayName = itemLoop.Name;
                        repItem.Description = itemLoop.Description;
                        ret.Reports.Add(repItem);
                    }
                }
            }
            return(ret);
        }
        private string HierarchicalCatalogView(CrcReportFolder rootFolder, int level, string showFolder)
        {
            StringBuilder sb = new StringBuilder();
            sb.Append("<div class=\"folderBox\">");
            string scrollTo = "";
            if (PathMatch(showFolder, rootFolder.Path))
                scrollTo = " scrollToFolder";
            sb.AppendFormat("<div class=\"folderName{1}\">{0}</div>", rootFolder.FolderName, scrollTo);
            string show = "none";
            if (level == 0 || PathContains(showFolder, rootFolder.Path))
                show = "block";

            sb.AppendFormat("<div class=\"folderChildren\" style=\"display:{0}\">", show);

            foreach (CrcReportFolder subFolderLoop in rootFolder.SubFolders)
                sb.Append(HierarchicalCatalogView(subFolderLoop, level + 1, showFolder));

            foreach (CrcReportItem itemLoop in rootFolder.Reports)
            {

                sb.Append("<div class=\"reportRow\">");
                sb.AppendFormat("<a class=\"reportLink vanillaHover\" href=\"Report.aspx?path={0}\" >{1}</a>",
                    Server.UrlEncode(itemLoop.ReportPath), itemLoop.DisplayName);
                if (!string.IsNullOrEmpty(itemLoop.ShortDescription))
                    sb.AppendFormat("<div class=\"reportInfo\">{0}</div>", itemLoop.ShortDescription);
                sb.Append("<div class=\"clear\"></div></div>");

            }

            sb.Append("</div></div>");
            return sb.ToString();
        }
        public CrcReportFolder Create(ReportingService2005Soap rService, string path)
        {
            var ret = new CrcReportFolder();
            ret.Path = path;
            ret.FolderName = CrcReportDefinition.ReportNameFromPath(path);

            var lcRequest = new ListChildrenRequest(path, false);

            var lcResponse = rService.ListChildren(lcRequest);
            foreach (CatalogItem itemLoop in lcResponse.CatalogItems)
            {
                if (itemLoop.Type == ItemTypeEnum.Folder)
                {
                    var sf = Create(rService, itemLoop.Path);
                    if (sf.Reports.Count() > 0 || sf.SubFolders.Count() > 0)
                        ret.SubFolders.Add(sf);
                }
                else if (itemLoop.Type == ItemTypeEnum.Report)
                {
                    if (!itemLoop.Hidden)
                    {
                        var repItem = new CrcReportItem();
                        repItem.ReportPath = itemLoop.Path;
                        repItem.DisplayName = itemLoop.Name;
                        repItem.Description = itemLoop.Description;
                        ret.Reports.Add(repItem);
                    }
                }

            }
            return ret;
        }