How to list files and folders on SSRS Server from VB.Net?

Phill 61 Reputation points
2021-04-30T20:17:28.23+00:00

Hi,

I am building a Vb.net WinForms Application and I need to allow a user to select and store the path of a report on an SSRS server.

Inside the Microsoft Report Builder Tool when you select the File --> Open Report option, it loads a window that will allow you to navigate the SSRS Web Server to navigate through folders and reports. I thought I would be able to replicate the same behavior using the built-in OpenFileDialog in Vb.net however, it does not allow you to load or traverse website directories. If you try to open a site/url, an error is shown instructing you to use a different application.

Does anyone know if this is possible or if MS make the Open Report dialog available as any kind of dll/plugin?

Here is the screen I am trying to replicate.
93026-openreport.jpg

Note, it shows a Recent Sites and Servers section and allows you to read and navigate the folders on the SSRS Server. I don;t need to open the report, simply return the path back to the parent form so it can be saved with other data.

SQL Server Reporting Services
SQL Server Reporting Services
A SQL Server technology that supports the creation, management, and delivery of both traditional, paper-oriented reports and interactive, web-based reports.
2,797 questions
0 comments No comments
{count} votes

Accepted answer
  1. Olaf Helper 40,741 Reputation points
    2021-05-06T06:50:57.71+00:00

    You can query all folder/report/data source etc from ReportServer database with

    select *
    from ReportServer.dbo.Catalog
    

    Type

    • 1 = Folder
    • 2 = Report
    • 5 = Data source
    1 person found this answer helpful.

3 additional answers

Sort by: Most helpful
  1. Lukas Yu -MSFT 5,816 Reputation points
    2021-05-03T06:52:13.073+00:00

    Hi,

    I remembered vaguely the report builder is build on the API calling of SSRS server. I am not sure if OpenFileDialog could do this since I am not professional at winform development. But I would suggest you try in your app calling SSRS rest API for retrieving this kind of list.
    You could find SSRS Rest API at Develop with the REST APIs for Reporting Services and SwaggerHub

    Lukas

    0 comments No comments

  2. Olaf Helper 40,741 Reputation points
    2021-05-03T07:04:45.827+00:00

    You can use the SSRS API to get the wanted information: Integrating Reporting Services into Applications
    E.g. ReportingService2010.ListChildren(String, Boolean) Method to get all reports and subfolder.

    0 comments No comments

  3. Phill 61 Reputation points
    2021-05-03T15:54:01.527+00:00

    Thanks for the suggestions. I was hoping to save some time and implement the dialog box through an existing API however, it looks like I would to recreate the full UI myself. This is only a single feature in a much larger larger application so for now, the time and cost would fall outside the scope of the project.

    As an alternative, I am considering building a SQL statement that queries the Catalog Table of the ReportServer database to allow the user to pic their reports via a dropdown box instead. However, if anyone has any alternative suggestions how to to create a quick way to retrieve/store the path of the report on an SSRS server, I'd be very interested in your suggestions.

    For Example, in our environment, the path would look like this
    SQL2005Server/ReportServer2/022_CompanyNameHere/85-PO Inventory On Order

    The path isn't super complex however, I wouldn't want the user to enter this manually as I'm certain it would result in errors.