public ReportingServiceItem GetReportTree()
 {
     return(ReportingServiceItem.GetReportTree("", true, true));
 }
 public ReportingServiceItem GetReportTree(string rootPath, bool getChildren, bool includeHidden)
 {
     return(ReportingServiceItem.GetReportTree(rootPath, getChildren, includeHidden));
 }
예제 #3
0
        /// <summary>
        /// Builds the tree.
        /// </summary>
        private void BuildTree()
        {
            try
            {
                var expandedItems    = new List <string>();
                var selectedItemPath = PageParameter("ReportPath");

                if (!string.IsNullOrWhiteSpace(selectedItemPath))
                {
                    selectedItemPath = HttpUtility.UrlDecode(selectedItemPath);
                    var selectedItem = ReportingServiceItem.GetItemByPath(selectedItemPath);

                    if (selectedItem != null && selectedItem.Type == ItemType.Report)
                    {
                        hfSelectedItem.Value = string.Concat("r-", selectedItemPath);
                    }
                    else if (selectedItem != null && selectedItem.Type == ItemType.Folder)
                    {
                        hfSelectedItem.Value = string.Concat("f-", selectedItemPath);
                    }
                }

                ReportingServiceItem reportItem = null;
                if (hfSelectionType.Value.Equals("Folder"))
                {
                    reportItem = ReportingServiceItem.GetFoldersTree(rootFolder, showChildItems, showHiddenItems);
                }
                else if (hfSelectionType.Value.Equals("Report"))
                {
                    reportItem = ReportingServiceItem.GetReportTree(rootFolder, showChildItems, showHiddenItems);
                }

                // also get any additional expanded nodes
                var expandedItemParams = PageParameter("ExpandedItems");
                if (!string.IsNullOrWhiteSpace(expandedItemParams))
                {
                    foreach (var id in expandedItemParams.Split(',').ToList())
                    {
                        if (!expandedItems.Contains(id))
                        {
                            expandedItems.Add(id);
                        }
                    }
                }

                hfExpandedItems.Value = expandedItems.AsDelimited(",");

                var treeBuilder = new StringBuilder();

                treeBuilder.AppendLine("<ul id=\"treeview\">");

                BuildTreeNode(reportItem, expandedItems.Select(s => s.Substring(2)).ToList(), ref treeBuilder);

                treeBuilder.AppendLine("</ul>");
                lFolders.Text = treeBuilder.ToString();
            }
            catch (System.Net.WebException webEx)
            {
                if (((System.Net.HttpWebResponse)webEx.Response).StatusCode == System.Net.HttpStatusCode.Unauthorized)
                {
                    ShowError("Authorization Error", "Browser User Could not authenticate to Reporting Server.");
                }
            }
            catch (System.ServiceModel.Security.MessageSecurityException ex)
            {
                ShowError("Authorization Error", "Browser User could not authenticate to Reporting Server.");
            }
            catch (System.ServiceModel.EndpointNotFoundException ex)
            {
                ShowError("Connection Error", "An error occurred when connecting to the reporting server.");
            }
        }