Professional Documents
Culture Documents
What Is SQL Server Reporting Services
What Is SQL Server Reporting Services
APPLIES TO: ✔
️ SQL Server 2016 Reporting Services and later ❌ Power BI Report Server
Looking for Power BI Report Server? See What is Power BI Report Server?.
SQL Server Reporting Services (SSRS) provides a set of on-premises tools and services that create, deploy, and
manage mobile and paginated reports.
Paginated reports
Reporting Services is associated with "traditional" paginated reports, ideal for fixed-layout documents optimized
for printing, such as PDF and Word files.
That core BI workload still exists today, so we've modernized it. Now you can create modern-looking reports
with updated new features, using Report Builder, or Report Designer in SQL Server Data Tools (SSDT).
We updated all the default styles and color palettes, so by default you create reports with a new minimalist
modern style.
We updated the Parameter pane, so you can arrange parameters however you want.
You can export to new formats such as PowerPoint. Reporting Services visualizations in PowerPoint are live
and editable, not just screenshots.
You can create a hybrid Power BI/Reporting Services experience: Rather than recreating your on-premises
Reporting Services reports in Power BI, you can pin visuals from those reports to your Power BI dashboards.
Then you can monitor everything in one place on your Power BI dashboard.
Mobile reports
Mobile computing has shifted the devices we need to work, meaning people today have a different reporting
need. The fixed-layout report experience doesn't work well when you introduce tablets and phones. Something
designed for a wide PC screen isn't the optimal experience on a small phone screen that's not just smaller but a
portrait or landscape orientation.
What you need with these widely different screen form factors is a responsive layout that adapts to these
different screen sizes and orientations. For that we've added a new report type: mobile reports, based on the
Datazen technology we acquired about a year ago and integrated into the product. You can migrate your
existing Datazen reports to Reporting Services with the SQL Server Migration Assistant for Datazen.
You create these mobile reports in the new Mobile Report Publisher app. Then in the native Power BI apps for
mobile devices for Windows 10, iOS, Android, and HTML5, you can access the data you have in Power BI, the
cloud, or SSRS.
As you create visualizations, Mobile Report Publisher automatically generates sample data. This feature allows
you to see how the visualization will look with your data, and what kind of data works well in each visualization.
Web portal
For end users of native-mode Reporting Services, the front door is a modern web portal you can view in most
browsers. You can access all your Reporting Services mobile, paginated reports, and KPIs in the new portal. KPIs
can surface key business metrics at a glance in the browser, without having to open a report.
The new web portal is a complete rewrite of Report Manager. Now it's a single-page, standards-based HTML5
app, which modern browsers are optimized for: Microsoft Edge, Internet Explorer 10 and 11, Chrome, Firefox,
Safari, and all the major browsers.
The content on the web portal is organized by type:
paginated reports
mobile reports
KPIs
Excel workbooks
shared datasets
shared data sources
You can store and manage them securely here, in the traditional folder hierarchy. Tag your favorites reports for
quick access. Those with appropriate permissions are able to manage and administer SSRS content.
And you can still schedule report processing, access reports on demand, and subscribe to published reports in
the new web portal.
More about the Web portal.
Next steps
Install Reporting Services
Download SQL Server Data Tools (SSDT)
Install Report Builder
More questions? Try asking the Reporting Services forum
What's new in SQL Server Reporting Services
(SSRS)
8/27/2021 • 9 minutes to read • Edit Online
APPLIES TO: ✔
️ SQL Server 2016 Reporting Services and later ❌ Power BI Report Server
Learn about what's new in the different versions of SQL Server Reporting Services. This article covers the major
feature areas and is updated as new items are released.
For information about Power BI Report Server, see What is Power BI Report Server?
NOTE
You can only use the query designer for DAX with SSAS tabular data sources built in SQL Server 2016+.
SSRS 2016
Reporting Services web portal
A new Reporting Services web portal is available. The updated web portal includes
KPIs
Mobile Reports
Paginated Reports
Excel files
Power BI Desktop files
The web portal replaces Report Manager from previous releases.
To create Mobile Reports, you need the Mobile Report Publisher.
For more information about the web portal, see Web portal (SSRS Native Mode).
For more information, see Working with KPIs in the web portal
Mobile Reports
Reporting Services mobile reports are dedicated reports optimized for a wide variety of form factors and
provide an optimal experience for users accessing reports on mobile devices. Mobile reports feature an
assortment of visualizations, from time, category, and comparison charts, to tree maps and custom maps.
Connect your mobile reports to a range of data sources, including on-premises SQL Server Analysis Services
multidimensional and tabular data. You can place fields for mobile reports on a design surface with adjusting
grid rows and columns. The flexible mobile report elements automatically scale to fit any screen size. You save
the mobile reports to a Reporting Service server, and can view and interact with them in a browser, or the Power
BI mobile app. Devices supported include:
iPad
iPhones
Android phones
or any Windows 10 device
Mobile Report Publisher
The SQL Server Mobile Report Publisherallows you to create and publish SQL Server mobile reports to your
Reporting Services web portal.
For more information, see Create mobile reports with SQL Server Mobile Report Publisher.
SQL Server mobile reports hosted in Reporting Services available in Power BI Mobile app
The Power BI Mobile app for iOS on iPad and iPhone can now display SQL Server mobile reports hosted on your
local report server.
You can't connect by default without some configuration changes. For more information on how to allow the
Power BI Mobile app to connect to your report server, see Enable a report server for Power BI Mobile access.
Support of SharePoint mode and SharePoint 2016
SQL Server 2016 (13.x) Reporting Services supports integration with SharePoint 2013 and SharePoint 2016.
For more information, see:
Supported Combinations of SharePoint and Reporting Services Server and Add-in (SQL Server 2016)
Where to find the Reporting Services add-in for SharePoint Products
Install Reporting Services SharePoint Mode
Microsoft .NET Framework 4 Support
SQL Server 2016 Reporting Services or later (SSRS) supports the current versions of Microsoft .NET Framework
4, including version 4.0 and 4.5.1. If a 4.x version of .Net Framework isn't already installed, SQL Server setup
installs .NET 4.0 during the feature installation step.
Report improvements
HTML 5 Rendering Engine: A new HTML5 rendering engine that targets modern web "full" standards mode
and modern browsers. The new rendering engine no longer relies on quirks mode used by a few older
browsers.
For more information on browser support, see Browser Support for Reporting Services and Power View.
Modern paginated repor ts: Design beautifully modern paginated reports with new, modern styles for charts,
gauges, maps, and other data visualizations.
Tree Map and Sunburst Char ts: Enhance your reports with Tree Map and Sunburst charts,
great ways to display hierarchical data. For more information, see Tree Map and Sunburst Charts in Reporting
Services.
Repor t embedding: You can now embed mobile and paginated reports in other web pages, and applications
by using an iframe, along with URL parameters.
Pin Repor t Items to a Power BI Dashboard: While viewing a report in the web portal, you can select report
items and pin them to a Power BI dashboard. The items you can pin are charts, gauge panels, maps, and images.
You can:
1. Select the group that contains the dashboard you want to pin to.
2. Select the dashboard you want to pin the item to.
3. Select how frequently you want the tile updated in the dashboard.
The refresh is managed by Reporting Services subscriptions and after the item is pinned, you can edit the
subscription and configure a different refresh schedule.
For more information, see Power BI Report Server Integration (Configuration Manager) and Pin Reporting
Services items to Power BI Dashboards.
PowerPoint Rendering and Expor t: The Microsoft PowerPoint (PPTX) format is a new SQL Server 2016
Reporting Services or later (SSRS) rendering extension. You can export reports in the PPTX format from the
usual applications; Report Builder, Report Designer (in SSDT), and the web portal. For the example, the following
image shows the export menu from the web portal.
You can also select the PPTX format for subscription output and use Report Server URL access to render and
export a report. For example, the following URL command in your browser exports a report from a named
instance of the report server.
https://servername/ReportServer_THESQLINSTANCE/Pages/ReportViewer.aspx?
%2freportfolder%2freport+name+with+spaces&rs:Format=pptx
Subscription Improvements
F EAT URE SUP P O RT ED SERVER M O DE
Subscription description . When you create a new SharePoint and Native mode
subscription, you can now include a description of the report
as part of the subscription properties. The description is
included on the subscription summary page.
F EAT URE SUP P O RT ED SERVER M O DE
Change subscription owner . Enhanced user interface to SharePoint and Native mode
quickly change the owner of a subscription. Previous
versions of Reporting Services allow administrators to
change subscription owners using script. Starting with the
SQL Server 2016 (13.x) release, you can change subscription
owners using the user interface or script. Changing the
subscription owner is a common administrative task when
users leave or change roles in your organization.
You can also mix the two approaches and have some file
share subscriptions use the central file share account while
other subscriptions use specific credentials.
N EW P REVIO US
Custom Parameters Pane: You can now customize the parameters pane. Using the design surface in Report
Builder, you can drag a parameter to a specific column and row in the parameters pane. You can add and remove
columns to change the layout of the pane. For more information, see Customize the Parameters Pane in a Report
(Report Builder).
High DPI Suppor t: Report Builder supports High DPI (Dots Per Inch) scaling and devices. For more
information on High DPI, see the following:
Windows 8.1 DPI Scaling Enhancements
High DPI and Windows 8.1
Next steps
What's New in Analysis Services
Backward Compatibility
Reporting Services Features supported by the Editions of SQL Server
Upgrade and Migrate Reporting Services
Reporting Services
More questions? Try asking the Reporting Services forum
Release notes for SQL Server Reporting Services
(SSRS) 2017 and later
8/10/2021 • 5 minutes to read • Edit Online
APPLIES TO: ✔
️ SQL Server Reporting Services (2017 and later)
This article describes changes in SQL Server Reporting Services (SSRS), for versions 2017 and later.
For the release notes for Report Viewer controls, see Release Notes for the Report Viewer controls for
WebForms and WinForms of SSRS.
15.0.7765.17516, 2021/04/7
(Product Version: 15.0.1102.896)
15.0.7545.4810, 2020/08/31
(Product Version: 15.0.1102.861)
Security updates
F IXED ISSUE DETA IL S
Fixed an issue where alt text for PDF export were not
correctly encoded for multi-byte characters
15.0.7243.37714, 2019/11/01
(Product Version: 15.0.1102.675)
Initial release.
14.0.600.1669, 2020/08/31
F IXED ISSUE DETA IL S
Security updates
14.0.600.1572, 2020/04/06
F IXED ISSUE DETA IL S
14.0.600.1451, 2019/11/13
F IXED ISSUE DETA IL S
Security updates
14.0.600.1274, 2019/07/01
F IXED ISSUE DETA IL S
Security updates
14.0.600.1109, 2019/02/12
F IXED ISSUE DETA IL S
Security updates.
14.0.600.906, 2018/09/12
The following issue has been fixed:
14.0.600.892, 2018/08/31
F IXED ISSUE DETA IL S
14.0.600.744, 2018/04/25
F IXED ISSUE DETA IL S
14.0.600.689, 2018/02/28
F IXED ISSUE DETA IL S
14.0.600.594, 2018/01/09
Some security updates were implemented.
14.0.600.490, 2017/11/01
Resolved the issues with SKU upgrade.
14.0.600.451, 2017/09/30
Initial release.
Next steps
What's New in Reporting Services (SSRS)?
More questions? Try asking the Reporting Services forum.
Reporting Services Concepts (SSRS)
11/2/2020 • 19 minutes to read • Edit Online
This topic provides a brief summary of SQL Server Reporting Services concepts.
Applies to: Reporting Services Native mode | Reporting Services SharePoint mode
See Also
Reporting Services Features and Tasks (SSRS)
Technical Reference (SSRS)
Reporting Services (SSRS)
Reporting Services Features and Tasks (SSRS)
11/2/2020 • 2 minutes to read • Edit Online
Reporting Services foundational content is organized by reports and report features, report server features, and
Reporting Services product features.
In This Section
Create mobile reports with SQL Server Mobile Report Publisher
Reporting Services Report Server
Reporting Services Reports (SSRS)
Report Data (SSRS)
Report Parameters (Report Builder and Report Designer)
Report Parts in Report Designer (SSRS)
Schedules
Subscriptions and Delivery (Reporting Services)
Reporting Services Data Alerts
Reporting Services Security and Protection
URL Access (SSRS)
Extensions (SSRS)
Reporting Services Tools
See Also
Reporting Services (SSRS)
What's New in Reporting Services (SSRS)
Reporting Services Backward Compatibility
11/2/2020 • 2 minutes to read • Edit Online
Learn about changes in behavior of SQL Server Reporting Services. This covers features that are no longer
available or are scheduled to be removed in a future release.
It also describes fundamental changes to the product that are known to break a custom application that includes
Reporting Services functionality.
In This Section
TO P IC DESC RIP T IO N
Discontinued functionality to SQL Server Reporting Services Describes features that existed in earlier versions of
in SQL Server 2016 Reporting Services but that have been removed in later
versions.
Deprecated features in SQL Server Reporting Services in SQL Describes features that exist this release of Reporting
Server 2016 Services for backward compatibility, but which will be
removed in a future version of SQL Server.
Breaking Changes in SQL Server Reporting Services in SQL Describes issues that you might encounter when you
Server 2016 upgrade Reporting Services.
Behavior changes to SQL Server Reporting Services in SQL Describes features that have changed in Reporting Services.
Server 2016
See Also
Backward Compatibility | Analysis Services
Deprecated features in SQL Server 2019 Reporting
Services
3/5/2021 • 2 minutes to read • Edit Online
APPLIES TO: ✔
️ SQL Server Reporting Services (2019 and later) ✔
️ Power BI Report Server
When we mark a feature as deprecated, it means:
The feature is in maintenance mode only. We'll make no new changes, including changes related to
interoperability with new features.
We strive not to remove a deprecated feature from future releases, to make upgrades easier. However, in rare
situations, we may choose to permanently remove the feature from Reporting Services if it limits future
innovations.
For new development work, we don't recommend using deprecated features.
Features deprecated in a future version of SQL Ser ver
SQL Server Reporting Services supports the following features in the next version of SQL Server, but will
deprecate them in a later version. The specific version of SQL Server hasn't been determined.
Report Server Mobile Reports and Mobile Report Power BI reports in Power BI Report
Publisher Server offer mobile capabilities.
Report Server XLS and DOC render formats XLSX and DOCX formats are available
and supported.
Report Server Atom Data Feed oData feed support is available for
shared datasets in SSRS and Power BI
Report Server.
See also
Discontinued functionality in SQL Server 2019 Reporting Services (SSRS)
More questions? Try asking the Reporting Services forum
Deprecated features in SQL Server 2017 Reporting
Services
3/5/2021 • 2 minutes to read • Edit Online
APPLIES TO: ✔
️ SQL Server Reporting Services (2017) ❌ Power BI Report Server
When we mark a feature as deprecated, it means:
The feature is in maintenance mode only. We'll make no new changes, including changes related to
interoperability with new features.
We strive not to remove a deprecated feature from future releases, to make upgrades easier. However, in rare
situations, we may choose to permanently remove the feature from Reporting Services if it limits future
innovations.
For new development work, we don't recommend using deprecated features.
NOTE
This list is identical to the SQL Server 2016 Reporting Services (13.x) list. There are no new deprecated or discontinued
features announced for SQL Server 2017 Reporting Services (14.x).
See also
Discontinued functionality in SQL Server Reporting Services (SSRS)
More questions? Try asking the Reporting Services forum
Deprecated features in SQL Server 2016 Reporting
Services
11/2/2020 • 2 minutes to read • Edit Online
APPLIES TO: ✔ ️ SQL Server Reporting Services (2016) ❌ SQL Server Reporting Services (2017) ❌ Power BI
Report Server
For content related to previous versions of SQL Server Reporting Services (SSRS), see SQL Server 2014
Reporting Services.
This article describes the deprecated SQL Server 2016 Reporting Services features. The features are still
available in the release in which they are deprecated; however the features are scheduled to be removed in a
future release of SQL Server. Don't use deprecated features in new applications.
Next steps
What's New in Reporting Services Backward Compatibility | Reporting Services
Behavior Changes to SQL Server Reporting Services in SQL Server 2016
Discontinued Functionality to SQL Server Reporting Services in SQL Server 2016
More questions? Try asking the Reporting Services forum
Discontinued functionality in SQL Server 2019
Reporting Services (SSRS)
3/5/2021 • 2 minutes to read • Edit Online
APPLIES TO: ✔
️ SQL Server Reporting Services (2019 and later) ❌ Power BI Report Server
This article describes features that SQL Server Reporting Services no longer supports in SQL Server 2019. It
doesn't include announcements about discontinued support for specific versions of the operating system or
Microsoft Internet Information Services (IIS).
A discontinued feature is one that Reporting Services no longer supports. It might also be physically removed
from the product. Reporting Services has discontinued the following features.
Report Server Customized style sheets for HTML You can still brand the web portal.
Viewer and Report Manager
See also
Deprecated features in SQL Server 2019 Reporting Services
Deprecated features in SQL Server 2016 Reporting Services
What's new in Reporting Services
More questions? Try asking the Reporting Services forum
Discontinued Functionality in SQL Server 2016
Reporting Services (SSRS)
11/2/2020 • 2 minutes to read • Edit Online
APPLIES TO: ✔ ️ SQL Server Reporting Services (2016) ❌ SQL Server Reporting Services (2017) ❌ Power BI
Report Server
For content related to previous versions of SQL Server Reporting Services (SSRS), see SQL Server 2014
Reporting Services.
This article describes SQL Server Reporting Services features that are no longer available in SQL Server 2016. It
doesn't include announcements about discontinued support for specific versions of the operating system or
Microsoft Internet Information Services (IIS). For more information about system prerequisites, see Hardware
and Software Requirements for Installing SQL Server 2016.
A discontinued feature is one that is no longer supported. It might also be physically removed from the product.
The following features are discontinued.
Customized style sheets for HTML Viewer and Report You can still brand the web portal.
Manager
Next steps
What's New in Reporting Services
Behavior Changes to SQL Server Reporting Services in SQL Server 2016
Deprecated features in SQL Server Reporting Services in SQL Server 2016
More questions? Try asking the Reporting Services forum
Breaking changes in SQL Server Reporting Services
in SQL Server 2016
11/2/2020 • 2 minutes to read • Edit Online
APPLIES TO: ✔ ️ SQL Server Reporting Services (2016) ❌ SQL Server Reporting Services (2017) ❌ Power BI
Report Server
For content related to previous versions of SQL Server Reporting Services (SSRS), see SQL Server 2014
Reporting Services.
This topic describes breaking changes in Reporting Services. These changes might break applications, scripts, or
functionalities that are based on earlier versions of SQL Server. You might encounter these issues when you
upgrade, or in custom scripts or reports.
Security Extensions
Custom security extensions need some modification to work with the new web portal. Security extensions need
to use the IAuthenticationExtension2 interface.
WMI Provider
The web portal application name changes from "ReportManager" to "ReportServerWebApp".
Next steps
Behavior changes to SQL Server Reporting Services in SQL Server 2016
What's New in Reporting Services (SSRS)
Deprecated features in SQL Server Reporting Services in SQL Server 2016
Discontinued functionality to SQL Server Reporting Services in SQL Server 2016
More questions? Try asking the Reporting Services forum
Behavior changes to SQL Server Reporting Services
in SQL Server 2016
11/2/2020 • 2 minutes to read • Edit Online
APPLIES TO: ✔ ️ SQL Server Reporting Services (2016) ❌ SQL Server Reporting Services (2017) ❌ Power BI
Report Server
For content related to previous versions of SQL Server Reporting Services (SSRS), see SQL Server 2014
Reporting Services.
This topic describes behavior changes in Reporting Services. Behavior changes affect how features work or
interact in SQL Server 2016 as compared to previous versions of SQL Server.
There are no behavior changes.
Next steps
What's New in Reporting Services
Deprecated features in SQL Server Reporting Services in SQL Server 2016
Discontinued functionality to SQL Server Reporting Services in SQL Server 2016
Breaking changes in SQL Server Reporting Services in SQL Server 2016
More questions? Try asking the Reporting Services forum
Reporting Services Tutorials (SSRS)
11/2/2020 • 2 minutes to read • Edit Online
See Also
AdventureWorks sample databases
Reporting Services Samples on the TechNet wiki
TechNet Wiki: SQL Server 2012 Samples
Create a Basic Table Report (SSRS Tutorial)
11/2/2020 • 2 minutes to read • Edit Online
In this tutorial, you use the Report Designer tool in Visual Studio / SQL Server Data Tools (SSDT). You create a
SQL Server Reporting Services (SSRS) paginated report. The report contains a query table, created from data in
the AdventureWorks2016 database.
As you progress in this tutorial, you're going to learn how to:
create a report project.
set up a data connection.
define a query.
add a table data region.
format the report.
group and total fields.
preview the report.
optionally publish the report.
Requirements
Your system must have the following components installed to take this tutorial:
Microsoft SQL Server database engine.
SQL Server 2016 Reporting Services or later (SSRS).
The AdventureWorks2016 database. For more information, see Adventure Works Sample Databases.
SQL Server Data Tools for Visual Studio along with the Reporting Services extension installed to enable
access to the Report Designer.
You must also have read-only permissions to retrieve data from the AdventureWorks2016 database.
Estimated time to complete the tutorial: 30 minutes.
Next steps
Lesson 1: Creating a Report Server Project (Reporting Services)
Lesson 2: Specifying Connection Information (Reporting Services)
Lesson 3: Defining a Dataset for the Table Report (Reporting Services)
Lesson 4: Adding a Table to the Report (Reporting Services)
Lesson 5: Formatting a Report (Reporting Services)
Lesson 6: Adding Grouping and Totals (Reporting Services)
See also
Reporting Services Tutorials More questions? Try asking the Reporting Services forum
Lesson 1: Create a Report Server Project (Reporting
Services)
11/2/2020 • 2 minutes to read • Edit Online
In this lesson, you create a report server project and a report definition (.rdl) file using Report Designer.
NOTE
SQL Server Data Tools (SSDT) is a Microsoft Visual Studio environment for creating business intelligence solutions. SSDT
features the Report Designer authoring environment, where you can open, modify, preview, save, and deploy Reporting
Services paginated report definitions, shared data sources, shared datasets, and report parts.
When you create reports with Report Designer, it creates a report server project that contains the report files
and other resource files used by the report(s).
2. In the left-most column under Installed , select Repor ting Ser vices . In some cases, it may be under the
group Business Intelligence .
IMPORTANT
For VS, if you don't see Reporting Services in the left column, add the Report Designer by installing the SSDT
workload. From the Tools menu, select Get Tools and Features... and select the SQL Ser ver Data Tools from
the workloads displayed. If you don't see the Report Services objects in the center column, add the Reporting
Services extensions. From the Tools menu, select Extensions and Updates > Online . In the center column,
select Microsoft Repor ting Ser vices Projects > Download from the displayed extensions. For SSDT, See
Download SQL Server Data Tools (SSDT). In Visual Studio 2019, if previous steps didn't work, try installing
Microsoft Reporting Service Project extension.
3. Select the Repor t Ser ver Project icon in the center column of the New Project dialog box.
4. In the Name text box, type "Tutorial" for the project name. By default, the Location text box displays the
path to your "Documents\Visual Studio 20xx\Projects" folder. Report Designer creates a folder named
Tutorial below this path, and creates the Tutorial project in this folder. If the project doesn't belong to a VS
solution, then VS also creates a solution file (.sln).
5. Select OK to create the project. The Tutorial project is displayed in the Solution Explorer pane on the
right.
In lesson 1, you added a Reporting Services paginated report to your Tutorial project.
In this lesson, you're going to define a data source, connection information the report uses to access data from a
relational database or other sources.
For this report, you're going to add the AdventureWorks2016 sample database as your data source. This tutorial
assumes that the database is located in the default instance of SQL Server Database Engine and installed on
your local computer.
To set up a connection
1. In the Repor t Data pane, select New > Data Source . If the Repor t Data pane isn't visible, then select
View menu > Repor t Data .
The Data Source Proper ties dialog box opens with the General section displayed.
2. In the Name text box, type "AdventureWorks2016".
3. Select the Embedded connection radio button.
4. In the Type dropdown selection box, select "Microsoft SQL Server".
5. In the Connection string text box, type the following string:
Data source=localhost; initial catalog=AdventureWorks2016
NOTE
This connection string assumes that SQL Server Data Tools (SSDT), the report server, and the
AdventureWorks2016 database are all installed on the local computer.
Change the connection string and replace "localhost" with the name of your database server/instance if the
assumption isn't true. If you're using SQL Server Express or a SQL Server named instance, you need to modify
your connection string to include instance information. For example:
Data source=localhost\SQLEXPRESS; initial catalog=AdventureWorks2016
For more information about connection strings, you can refer to the See also section below.
6. Select the Credentials tab, and under the section Change the credentials used to connect to the
data source , select the Use Windows Authentication (integrated security) radio button.
7. Select OK to complete the process.
Report Designer adds the data source AdventureWorks2016 to the Repor t Data pane.
Next steps
In this lesson, you've successfully defined a connection to the AdventureWorks2016 sample database. Continue
with Lesson 3: Defining a Dataset for the Table Report (Reporting Services) to define a dataset for the report.
See also
Create data connection strings - Report Builder & SSRS
Lesson 3: Define a Dataset for the Table Report -
SQL Server Reporting Services
11/2/2020 • 2 minutes to read • Edit Online
After you define the data source for the paginated report, you need to define a dataset. In Reporting Services,
data that you use in reports is contained in a dataset. A dataset includes a pointer to a data source and a query
to be used by the report, calculated fields, and variables.
Use the Query Designer in Report Designer to define the dataset. For this tutorial, you're going to create a query
that retrieves sales order information from the AdventureWorks2016 database.
7. (Optional) Select the Quer y Designer button. The query is displayed in the text-based Query Designer.
View the results of the query by selecting the run button on the Quer y Designer toolbar. The
dataset displayed contains six fields from four tables in the AdventureWorks2016 database. The query
makes use of Transact-SQL functionality such as aliases. For example, the SalesOrderHeader table is
called soh.
8. Select OK to exit the Quer y Designer .
9. Select OK to exit the Dataset Proper ties dialog box.
The Repor t Data pane displays the AdventureWorksDataset dataset and fields.
Next steps
You've successfully specified a query that retrieves data for your report. Next, you're going to create the report
layout. Continue with Lesson 4: Adding a Table to the Report (Reporting Services).
See also
Query Design Tools (SSRS) SQL Server Connection Type (SSRS) Tutorial: Writing Transact-SQL Statements
Lesson 4: Add a Table to the Report (Reporting
Services)
11/2/2020 • 3 minutes to read • Edit Online
After you define the dataset, you can start designing the paginated report. You create a report layout by
dragging and dropping report objects from the Toolbox pane to the Design surface . Some of the types of
report objects include:
Table
Text Box
Image
Line
Rectangle
Chart
Map
Items that contain repeated rows of data from underlying datasets are called data regions. After you add a data
region, you can add fields to the data region. A basic report will have only one data region. You can add
additional ones to display more information such as a chart.
You can also add a table to the report from the design surface. Right-click the design surface and select
Inser t > Table .
2. In the Repor t Data pane, expand the AdventureWorksDataset to display the fields.
3. Drag the [Date] field from the Repor t Data pane to the first column in the table.
IMPORTANT
When you drop the field into the first column, two things happen. First, Report Designer displays the field name,
known as the field expression, in brackets: [Date] in the data cell. Second, it adds a column label to the header
row, just above the field expression. By default, the column label is the name of the field. You can select the column
label and type a new value if you want to change it.
4. Drag the [Order] field from the Repor t Data pane to the second column in the table.
5. Drag the [Product] field from the Repor t Data pane to the third column in the table.
6. Drag the [Qty] field to the right edge of the third column until you get a vertical cursor and the mouse
pointer displays a plus sign [+]. When you release the mouse button, a fourth column is created for the
[Qty] field expression.
7. Add the [LineTotal] field in the same way, creating a fifth column. The column label is added as "Line
Total". Report Designer automatically creates a friendly name for the column by splitting "LineTotal" into
two words.
The following diagram shows a table data region that has been populated with these fields: Date, Order, Product,
Look at the Date and Line Total values. In the next lesson, you're going to learn how to format them to display
more neatly.
NOTE
From the File menu, select Save All to save the report.
Next steps
You've successfully added a table data region to your report, added fields to the data region, and previewed your
report. In the next lesson, you're going to learn how to format column headers and field expressions. Next,
continue with Lesson 5: Formatting a Report (Reporting Services).
See also
Tables (Report Builder and SSRS)
Dataset Fields Collection (Report Builder and SSRS)
Lesson 5: Formatting a report (Reporting Services)
11/2/2020 • 2 minutes to read • Edit Online
Now that you've added a data region and some fields to the Sales Orders report, you can format the date and
currency fields and the column headers.
5. From the File menu, select Save All to save the report.
Next steps
In this lesson, you successfully formatted column headers and field expressions. Next, you're going to add
grouping and totals to your report. Continue with Lesson 6: Adding Grouping and Totals (Reporting Services).
See also
Formatting Numbers and Dates (Report Builder and SSRS) Rendering Behaviors (Report Builder and SSRS)
Lesson 6: Adding Grouping and Totals (Reporting
Services)
11/2/2020 • 4 minutes to read • Edit Online
In the final tutorial lesson, you're going to add grouping and totals to your Reporting Services report to organize
and summarize your data.
NOTE
Note that the row handle now has a bracket in it, to indicate a group. The table now also has two [Date]
expression columns, one on both sides of a vertical dotted line.
4. From the Repor t Data pane, drag the [Order] field to the Row Groups pane. Place it below Date and
above = (Details) .
NOTE
Note that now the row handle has two brackets in it, to indicate two groups. The table now also has two
[Order] expression columns.
5. Delete the original [Date] and [Order] expression columns to the right of the double line. Select the
column handles for the two columns, right-click and select Delete Columns . Report Designer removes
the individual row expressions, so that only the group expressions are displayed.
6. To format the new [Date] column, right-click the data region cell that contains the [Date] expression,
and select Text Box Proper ties .
7. Select Number in the left-most column list box, and Date from the Categor y list box.
8. In the Type list box, select Januar y 31, 2000 .
9. Select OK to apply the format.
10. Again, preview the report. It should look as below:
If you see an error message similar to below, verify you've the appropriate permissions on the report
server and you've started SQL Server Data Tools with administrator privileges.
"The permissions granted to user 'XXXXXXXX\[your user name]' are insufficient for performing this
operation"
6. Open a browser with administrator privileges. For example, right-click the icon for Internet Explorer and
select Run as administrator .
7. Browse to the web portal URL.
https://<server name>/reports .
https://localhost/reports works if you're designing the report on the report server.
8. Select the Tutorial folder, and then select the "Sales Orders" report to view the report.
See also
Filter, Group, and Sort Data (Report Builder and SSRS)
Create a Data-Driven Subscription (SSRS Tutorial)
11/2/2020 • 3 minutes to read • Edit Online
This Reporting Services tutorial teaches you the concepts of data-driven subscriptions by walking you through a
simple example that creates a data-driven subscription to generate and save filtered report output to a file
share. Reporting Services data-driven subscriptions allow you to customize and automate the distribution of a
report based on dynamic subscriber data. Data-driven subscriptions are intended for the following kinds of
scenarios:
Distributing reports to a large recipient pool whose membership may change from one distribution to
the next. For example, email a monthly report to all current customers.
Distributing reports to a specific group of recipients based on predefined criteria. For example, send a
sales performance report to all of the sales managers in an organization.
Automate the generation of reports in a wide variety of formats, for example .xlsx and .pdf.
L ESSO N C O M M EN T S
Lesson 1: Create a Sample Subscriber Database In this lesson you will create a table local SQL Server
database that contains subscriber information. the
information Order Numbers to use for filtering and output
file formats.
Lesson 2: Configure Report Data Source Properties In this lesson, you will configure a report data source so that
the report can run unattended on a schedule. Unattended
processing requires stored credentials. You will also modify
the report dataset to include a parameter that is supplied by
the subscriber data. This parameter is used to filter the
report data based on order number.
Lesson 3: Define a Data-Driven Subscription In this lesson you will create a data-driven subscription. This
lesson guides you through each page in the Data-Driven
Subscription Wizard.
ST EP DESC RIP T IO N
(4) The reports are created in the file formats specified in the
Orderinfo table.
Requirements
Data-driven subscriptions are typically created and maintained by report server administrators. The steps to
create data-driven subscriptions require building queries, knowledge of data sources that contain subscriber
data, and elevated permissions on a report server.
The tutorial uses the Sales order report created in the tutorial Create a Basic Table Report (SSRS Tutorial) and
data from the sample database AdventureWorks2014 .
Your computer must have the following installed to use this tutorial:
An edition of SQL Server that supports data-driven subscriptions. For more information, see Editions and
Features of SQL Server 2017.
The report server must be running in native mode. The user interface described in this tutorial is based
on a native mode report server. Subscriptions are supported on SharePoint mode report servers but the
user interface will be different than what is described in this tutorial.
SQL Server Agent service must be running.
A report that includes parameters. This tutorial assumes the sample report, Sales Orders you create
using the tutorial Create a Basic Table Report (SSRS Tutorial).
The AdventureWorks2014 sample database, which provides data to the sample report.
A Reporting Services role assignment that includes the Manage all subscriptions task on the sample
report. This task is required for defining a data-driven subscription. If you are an administrator on the
computer, the default role assignment for local administrators provides the permissions necessary for
creating data-driven subscriptions. For more information, see Granting Permissions on a Native Mode
Report Server.
A shared folder for which you have write permissions. The shared folder must be accessible over a
network connection.
Estimated time to complete the tutorial: 30 minutes. An additional 30 minutes if you have not completed
the basic report tutorial.
See Also
Data-Driven Subscriptions
Create a Basic Table Report (SSRS Tutorial)
Lesson 1: Creating a Sample Subscriber Database
11/2/2020 • 2 minutes to read • Edit Online
In this Reporting Services tutorial lesson, you create a small "subscriber" database to store subscription data that
will be used by a data-driven subscription. When the subscription is processed, the report server retrieves this
data and uses it to customize report output. For example, the rows of data include specific order numbers to use
for filters and what file format generated reports will be in when they are created.
This lesson assumes you are using SQL Server Management Studio to create a SQL Server database.
To create a sample Subscriber database
1. Start Management Studio, and open a connection to an instance of the SQL Server Database Engine.
2. Right-click on Databases, select New Database....
3. In the New Database dialog box, in Database Name , type Subscribers.
4. Click OK .
5. Click the New Quer y button on the toolbar.
6. Copy the following Transact-SQL statements into the empty query:
Use Subscribers
CREATE TABLE [dbo].[OrderInfo] (
[SubscriptionID] [int] NOT NULL PRIMARY KEY ,
[Order] [nvarchar] (20) NOT NULL,
[FileType] [bit],
[Format] [nvarchar] (20) NOT NULL ,
) ON [PRIMARY]
GO
Next Steps
You have successfully created the subscription data that will drive report distribution and vary the report
output for each subscriber.
Next, you will modify the data source properties of the report to use stored credentials.
You will also modify the report design to include a parameter that the subscription will use with the
subscriber data. Lesson 2: Modifying the Report Data Source Properties.
Next steps
Create a Data-Driven Subscription
Create a Database
Create a Basic Table Report
More questions? Try asking the Reporting Services forum
Lesson 2: Modifying the Report Data Source
Properties
11/2/2020 • 3 minutes to read • Edit Online
In this Reporting Services tutorial lesson, you use web portal to select a report that will be delivered to
recipients. The data-driven subscription that you will define will distribute the Sales Order report created in the
tutorial Create a Basic Table Report (SSRS Tutorial). In the steps that follow, you will modify the data source
connection information used by the report to get data. Only reports that use stored credentials to access a
report data source can be distributed through a data-driven subscription. Stored credentials are necessary for
unattended report processing.
You will also modify the dataset and report to use a parameter to filter the report on the [Order] so the
subscription can output different instances of the report for specific orders and rendering formats.
4. Click OK
In the following steps you will add a parameter to the report. The report parameter feeds the dataset
parameter.
Next Steps
You successfully configured the report to get data using stored credentials and the data can be filtered with a
parameter.
In the next lesson, you configure the subscription using the web portal Data-Driven Subscription pages. See
Lesson 3: Defining a Data-Driven Subscription.
See Also
Manage Report Data Sources
Specify Credential and Connection Information for Report Data Sources
Create a Data-Driven Subscription (SSRS Tutorial)
Create a Basic Table Report (SSRS Tutorial)
Lesson 3: Defining a Data-Driven Subscription
11/2/2020 • 3 minutes to read • Edit Online
In this Reporting Services tutorial lesson, you use the Reporting Services web portal's data-driven subscription
pages to connect to a subscription data source, build a query that retrieves subscription data, and map the result
set to report and delivery options.
NOTE
Before you start, verify that SQL Ser ver Agent service is running. If it is not running, you cannot save the subscription.
One method for verification is to open the SQL Server Configuration Manager. This lesson assumes you completed
Lesson 1 and Lesson 2 and that the report data source uses stored credentials. For more information, see Lesson 2:
Modifying the Report Data Source Properties
2. In the context menu of the report, click Manage , and then click Subscriptions in the left pane.
3. Click + New Subscription . If you do not see this button, you do not have Content Manager
permissions.
Define a description
1. Type Sales Order deliver y in description.
Type
1. click Data-driven subscription ..
Schedule
1. In the schedule section click Repor t-specific schedule .
2. Click Edit schedule .
3. In Schedule Details , click Once .
4. Specify a start time that is a few minutes ahead of the current time.
5. Specify the Star t and end dates .
6. Select Apply .
Destination
1. In the Destination section, Select Windows File Share for the method of delivery.
Dataset
1. click Edit Dataset .
2. Select A custom data source .
3. Select Microsoft SQL Ser ver as the data source Connection type.
4. In Connection string, type the following connection string. Subscribers is the database you created in
lesson 1.
Credentials
1. Select Using the following credentials .
2. Select Windows user name and password .
3. In User Name and Password , type your domain user name and password. Include both the domain and
user account when specifying User Name .
NOTE
Credentials used to connect to a subscriber data source are not passed back to Management Studio. If you modify the
subscription later, you must retype the password used to connect to the data source.
Query
1. In the query box, type the following query:
Delivery Options
Fill in the following values:
User Name Enter value Type your domain user account. Enter
it in this format: <domain>\
<account>. The user account needs to
have permissions to the path you
configured.
PA RA M ET ER SO URC E O F VA L UE VA L UE/ F IEL D
Report parameters
1. In the OrderNumber field , select Get value from dataset . In Value, select Order .
2. Select Create Subscription .
Next steps
When the subscription runs, four report files will be delivered to the file share you specified, one for each order
in the Subscribers data source. Each delivery should be unique in terms of data (the data should be order-
specific), rendering format, and file format. You can open each report from the shared folder to verify that each
version is customized based on the subscription options you defined.
The subscription page in the web portal will contain the Last Run date and Status of the subscription.
NOTE
Refresh the page after the subscription runs to see the updated information.
See Also
Subscriptions and Delivery (Reporting Services)
Data-Driven Subscriptions
Create, Modify, and Delete Data-Driven Subscriptions
Use an External Data Source for Subscriber Data (Data-Driven Subscription)
Create Drillthrough (RDLC) Report with Parameters
- ReportViewer
11/2/2020 • 2 minutes to read • Edit Online
A drillthrough report is a report that a user opens by clicking a link within another report. Drillthrough reports
commonly contain details about an item that is contained in an original summary report. This tutorial will walk
you through the following lessons of creating a drillthrough report with parameters and a query, in local mode
reporting.
Requirements
To use this walkthrough, you must have access to the AdventureWorks2014 sample database. For more
information about how to get the AdventureWorks2014 sample database, see AdventureWorks sample
databases.
This walkthrough assumes that you are familiar with Transaction-SQL queries and ADO.NET DataSet and
DataTable objects.
Use Visual Studio 2015, and the ASP.NET Web Application, to create an ASP.NET webpage with a ReportViewer
control. The control is configured to view a report that you create. For this walkthrough, you create the
application in Microsoft Visual C#.
Tasks
Lesson 1: Create a New Web Site
Lesson 2: Define a Data Connection and Data Table for Parent Report
Lesson 3: Design the Parent Report using the Report Wizard
Lesson 4: Define a Data Connection and Data Table for Child Report
Lesson 5: Design the Child Report using the Report Wizard
Lesson 6: Add a ReportViewer Control to the Application
Lesson 7: Add Drillthrough Action on Parent Report
Lesson 8: Create a Data Filter
Lesson 9: Build and Run the Application
See Also
Reporting Services Tutorials (SSRS)
Design Reports with Report Designer (SSRS)
Lesson 1: Create a new website
11/2/2020 • 2 minutes to read • Edit Online
In this lesson you'll learn how to create a new website project using the ASP.NET website template for Visual C#.
Next task
You've successfully created a new website project. Next, you will create a data connection and a data table for the
parent report. See Lesson 2: Define a Data Connection and Data Table for Parent Report.
Lesson 2: Define a Data Connection and Data Table
for Parent Report
11/2/2020 • 2 minutes to read • Edit Online
After you create a new website project using the ASP.NET website template for Visual C#, your next step is to
create a data connection and a data table for the parent report. In this tutorial the data connection is to the
AdventureWorks2014 database.
You can also create the query by selecting Quer y Builder , and then verify the query by selecting
Execute Quer y . If the query does not return the expected data, you might be using an earlier version of
AdventureWorks. For more information about how to get the AdventureWorks2014 sample database,
see AdventureWorks sample databases.
11. On the Choose Methods to Generate page, be sure to uncheck Create methods to send updates
directly to the database (GenerateDBDirectMethods) , and then select Finish .
WARNING
Be sure to uncheck Create methods to send updates directly to the database
(GenerateDBDirectMethods)
You have now completed configuring the ADO.NET DataTable object as the data source for your report.
On the DataSet Designer page in Visual Studio, you should see the DataTable object you added, listing the
columns specified in the query. DataSet1 contains the data from the Product table, based on the query.
12. Save the file.
13. To preview the data, select Preview Data on the Data menu, and then select Preview .
Next Task
You have successfully created a data connection and a data table for the parent report. Next, you will design the
parent report using the Report Wizard. See Lesson 3: Design the Parent Report using the Report Wizard.
Lesson 3: Design the Parent Report using the
Report Wizard
11/2/2020 • 2 minutes to read • Edit Online
After you create a data connection and a data table for the parent report, your next step is to design the parent
report using the Report Wizard in Report Designer. For more information about Report Designer, see Design
Reports with Report Designer (SSRS).
To design the parent report using the Report Wizard
1. Make sure that the top-level website is selected in Solution Explorer .
2. Right-click on the website and select Add New Item .
3. In the Add New Item dialog box, select Repor t Wizard , enter a name for the report file, and then select
Add .
This launches the Report Wizard.
4. On the Dataset Proper ties page, in the Data source box, select the DataSet1 you created in Lesson 2:
Define a Data Connection and Data Table for Parent Report.
The Available datasets box is automatically updated with the DataTable you created above.
5. Select Next .
6. In the Arrange Fields page do the following:
a. Drag ProductID , Name , ProductNumber , SafetyStockLevel , and ReorderLevel from
Available fields to the Values box.
b. Select the arrow next to Sum(ProductID) , Sum(SafetyStockLevel) , Sum(ReorderLevel) and
clear the Sum selection.
7. Select Next twice, then select Finish to close the Repor t Wizard .
You've now created the .rdlc file. The file opens in Report Designer. The tablix you designed is now
displayed in the design surface.
8. Save the .rdlc file.
Next Task
You have successfully designed the parent report using the Report Wizard. Next, you will create a data
connection and a data table for the child report. See Lesson 4: Define a Data Connection and Data Table for Child
Report.
Lesson 4: Define a Data Connection and Data Table
for Child Report
11/2/2020 • 2 minutes to read • Edit Online
After you design the parent report, you next step is to create a data connection and a data table for the child
report. In this tutorial the data connection is to the AdventureWorks2014 database.
To define a data connection and DataTable by adding a DataSet (for child report)
1. On the Website menu, select Add New Item .
2. In the Add New Item dialog box, select DataSet and then select Add . When prompted, you should add
the item to the App_Code folder by selecting Yes .
This adds a new XSD file DataSet2.xsd to the project and opens the DataSet Designer.
3. From the Toolbox window, drag a TableAdapter control to the design surface. This launches the
TableAdapter Configuration Wizard.
4. On the Choose Your Data Connection page, you can select the connection you created in Lesson 2. If
you did, select Next and go to step 8. Otherwise, select New Connection .
5. In the Add Connection dialog box, perform the following steps:
a. In the Ser ver name box, enter the server where the AdventureWorks2014 database is located.
The default SQL Server Express instance is (local)\sqlexpress .
b. In the Log on to the ser ver section, select the option that provides you access to the data. Use
Windows Authentication is the default.
c. From the Select or enter a database name drop-down list, select AdventureWorks2014 .
d. Select OK , and then select Next .
6. If you selected Use SQL Ser ver Authentication in Step 5 (b), select the option whether to include the
sensitive data in the string or set the information in your application code.
7. On the Save the Connection String to the Application Configuration File page, type in the name
for the connection string or accept the default AdventureWorks2014ConnectionString . Select Next .
8. On the Choose a Command Type page, select Use SQL Statements , and then select Next .
9. On the Enter a SQL Statement page, enter the following Transact-SQL query to retrieve data from the
AdventureWorks2014 database, and then select Next .
You can also create the query by selecting Quer y Builder , and then verify the query by selecting
Execute Quer y button. If the query does not return the expected data, you might be using an earlier
version of AdventureWorks. For more information about how to get the AdventureWorks2014 sample
database, see AdventureWorks sample databases.
10. On the Choose Methods to Generate page, uncheck Create methods to send updates directly to
the database (GenerateDBDirectMethods) , and then select Finish .
WARNING
Be sure to uncheck Create methods to send updates directly to the database
(GenerateDBDirectMethods)
You have now completed configuring the ADO.NET DataTable as a data source for your report. On the
DataSet Designer page in Visual Studio, you should see the DataTable you added, listing the columns
specified in the query. DataSet2 contains the data from the PurhcaseOrderDetail table, based on the
query.
11. Save the file.
12. To preview the data, select Preview Data on the Data menu, and then select Preview .
Next Task
You have successfully created a data connection and data table for the child report. Next, you will design the
child report using the Report Wizard. See Lesson 5: Design the Child Report using the Report Wizard.
Lesson 5: Design the Child Report using the Report
Wizard
11/2/2020 • 2 minutes to read • Edit Online
After you create a data connection and data table for the child report, your next step is to design the child report
using the Report Wizard in Report Designer. For more information about Report Designer, see Design Reports
with Report Designer (SSRS).
To design the child report using the Report Wizard
1. Make sure that the top-level website is selected in Solution Explorer .
2. Right-click on the website and select Add New Item .
3. In the Add New Item dialog box, click Repor t Wizard , enter a name for the report file, and then select
Add .
This launches the Report Wizard.
4. In the Dataset Proper ties page, in the Data source box, select DataSet2 .
The Available datasets box is automatically updated with the DataTable you created.
5. Select Next .
6. In the Arrange Fields page do the following:
a. Drag ProductID , PurchaseOrderID , PurchaseOrderDetailID , OrderQty , ReceivedQty ,
RejectedQty , and StockedQty from Available Fields to the Values box.
b. Select the arrow next to Sum(ProductID) , Sum(PurchaseOrderID) ,
Sum(PurchaseOrderDetailID) , Sum(OrderQty) , Sum(ReceivedQty) , Sum(RejectedQty) ,
and Sum(StockedQty) and clear the Sum selection.
7. Select Next twice, then Select Finish to close the Repor t Wizard .
You've now created the .rdlc file. The file opens in Report Designer. The tablix you designed is now
displayed in the design surface.
8. With the .rdlc file open, add a parameter by doing the following:
a. Right-click Parameters in the Repor t Data pane, and then select Add Parameters .
b. Enter productid in the Name box.
c. Confirm that Integer is selected in the Data Type list box.
d. Click OK .
9. Save the .rdlc file.
Next Task
You have successfully designed the child report by using the Report Wizard. Next, you will add a ReportViewer
control to the website application. See Lesson 6: Add a ReportViewer Control to the Application.
Lesson 6: Add a ReportViewer Control to the
Application
11/2/2020 • 2 minutes to read • Edit Online
After you design the child report by using the Report Wizard, your next step is to add a ReportViewer control to
the website application. If you are using the ASP.NET Reports Web Site, it will have added the ReportViewer
control to the default.aspx page.
To add a ReportViewer control to the application
1. In Solution Explorer , right-click Default.aspx , and then click View Designer .
2. If default.aspx already has the ReportViewer Control on it, skip to Step 4 . Otherwise, From the AJAX
Extensions group in the Toolbox window, drag a ScriptManager control to the design surface.
3. From the Repor ting group, drag a Repor tViewer control to the design surface below the
ScriptManager control.
4. Open the Repor tViewer Tasks window by clicking the arrow in the top right-hand corner of the
Repor tViewer control.
5. In the Choose Repor t box, select the parent report you created.
When you select a report, instances of data sources used in the report are created automatically. Code is
generated to instantiate each DataTable (and its DataSet container). An ObjectDataSource control is added
to the design surface, corresponding to each data source used in the report. This data source control is
configured automatically.
6. On the Build menu, click Build website.
The report is compiled and any errors such as a syntax error in a report expression appear in the Error
List area. Click Error List at the bottom of the Visual Studio window to display the Error List area.
Next Task
You have successfully added a ReportViewer control to the website application. Next, you will add a drillthrough
action on the parent report. See Lesson 7: Add Drillthrough Action on Parent Report.
Lesson 7: Add Drillthrough Action on Parent Report
11/2/2020 • 2 minutes to read • Edit Online
After you add a ReportViewer control to the website application, your next step is to add a drillthrough action on
the parent report.
To add drillthrough action on the parent report
1. Go to the parent report.
2. Select the textbox that holds the value of Name .
3. Right-click the textbox, and then select Text Box Proper ties .
4. Go to the Action tab, and then select the Go to repor t option.
5. Enter the name of the child report in the Specify a repor t section.
NOTE
Do not include the file extension for the report name.
6. Select Add under Use these parameters to run the repor t section.
7. Type productid in the name box, and then select ProductID in the Value drop-down list.
8. Select Ok to finish.
Next Task
You have successfully added a drillthrough action on the parent report. Next, you will create a data filter for the
data table that you defined for the child report. See Lesson 8: Create a Data Filter.
Lesson 8: Create a Data Filter
11/2/2020 • 7 minutes to read • Edit Online
After you add a drillthrough action on the parent report, your next step is to create a data filter for the data table
that you defined for the child report.
You can create a table-based filter or a query filter for the drillthrough report. This lesson provides instructions
for both options.
Table-Based Filter
You need to complete the following tasks to implement a table-based filter.
Add a filter expression to the tablix in the child report.
Create a function that selects unfiltered data from the PurchaseOrderDetail table.
Add an event handler that binds the PurchaseOrderDetail DataTable to the child report.
To add a filter expression to the tablix in the child report
1. Open the child report.
2. Select a column heading in the tablix, right-click the gray cell that appears above the column heading, and
then select Tablix Proper ties .
3. Select on the Filters page, and then select Add .
4. In the Expression filed, select ProductID from the drop-down list. This is the column to which you apply
the filter.
5. Select the equal (= ) operator in the Operator drop-down list.
6. Select the expression button next to the Value field, select Parameters in the Categor y area, and then
double-click productid in the Values area. The Set expression for : Value field should now contain
expression similar to =Parameters!productid.Value .
7. Select OK, and OK again in the Tablix Proper ties dialog box.
8. Save the .rdlc file.
To create a function that selects unfiltered data from the PurchaseOrdeDetail table
1. In Solution Explorer, expand Default.aspx, and then double click Default.aspx.cs.
2. Create a new function that accepts a parameter, productid , of type Integer and returns a datatable
object, and does the following.
a. Creates an instance of the dataset, DataSet2 , which was created in Step 2 of Lesson 4: Define a
Data Connection and Data Table for Child Report.
b. Create a connection to the SqlServer database to execute the query defined in Lesson 4: Define
a Data Connection and DataTable for Child Repor t .
c. The query will return unfiltered data.
d. Fill the DataSet instance with the unfiltered data by executing the query.
e. Return the PurchaseOrderDetail DataTable.
The function will look similar to the one below, (This is just for your reference. You can follow any
pattern that you want, to fetch the necessary data for child report).
/// <summary>
/// Function to query PurchaseOrderDetail table, fetch the
/// unfiltered data and bind it with the Child report
/// </summary>
/// <returns>A dataTable of type PurchaseOrderDetail</returns>
private DataTable GetPurchaseOrderDetail()
{
try
{
//Create the instance for the typed dataset, DataSet2 which will
//hold the [PurchaseOrderDetail] table details.
//The dataset was created as part of the tutorial in Step 4.
DataSet2 ds = new DataSet2();
To add an event handler that binds the PurchaseOrderDetail DataTable to the child report
1. Open Default.aspx in designer view.
2. Right-click the ReportViewer control, and then select Proper ties .
3. On the Proper ties page, select the Events icon.
4. Double-click the Drillthrough event.
This will add an event handler section in the code, which will look similar to the below block.
Query Filter
You need to complete the following tasks to implement a query filter.
Create a function that selected filtered data from the PurchaseOrderDetail table.
Add an event handler that retrieves parameter values and binds the PurchaseOrdeDetail DataTable to
the child report.
To create a function that selects filtered data from the PurchaseOrderDetail table
1. In Solution Explorer, expand Default.aspx, and then double click Default.aspx.cs.
2. Create a new function that accepts a parameter, productid , of type Integer and returns a datatable
object and does the following.
a. Creates an instance of the dataset, DataSet2 , which was created in Step 2 of Lesson 4: Define a
Data Connection and Data Table for Child Report.
b. Create a connection to the SqlServer database to execute the query defined Lesson 4: Define a
Data Connection and DataTable for Child Repor t .
c. The query will include a parameter, productid , to make sure the data returned is filtered based on
the ProductID selected in the parent report.
d. Fill the DataSet instance with the filtered data by executing the query.
e. Return the PurchaseOrderDetail DataTable.
The function will look similar to the one below, (This is just for your reference. You can follow any
pattern that you want, to fetch the necessary data for child report).
/// <summary>
/// Function to query PurchaseOrderDetail table and filter the
/// data for a specific ProductID selected in the Parent report.
/// </summary>
/// <param name="productid">Parameter passed from the Parent report to filter data.
</param>
/// <returns>A dataTable of type PurchaseOrderDetail</returns>
private DataTable GetPurchaseOrderDetail(int productid)
{
try
{
//Create the instance for the typed dataset, DataSet2 which will
//hold the [PurchaseOrderDetail] table details.
//The dataset was created as part of the tutorial in Step 4.
DataSet2 ds = new DataSet2();
To add an event handler that retrieves parameter values and binds the PurchaseOrdeDetail DataTable to the
child report
1. Open Default.aspx in designer view.
2. Right-click the ReportViewer control, and then select Proper ties .
3. On the Proper ties pane, select the Events icon.
4. Double-click the Drillthrough event.
This will add an event handler section in the code that will look similar to the following.
//Get all the parameters passed from the main report to the target report.
//OriginalParametersToDrillthrough actually returns a Generic list of
//type ReportParameter.
IList<ReportParameter> list = report.OriginalParametersToDrillthrough;
//Parse through each parameters to fetch the values passed along with them.
foreach (ReportParameter param in list)
{
//Since we know the report has only one parameter and it is not a multivalued,
//we can directly fetch the first value from the Values array.
productid = Convert.ToInt32(param.Values[0].ToString());
}
Next Task
You have successfully created a data filter for the data table that you defined for the child report. Next, you will
build and run the website application. See Lesson 9: Build and Run the Application.
Lesson 9: Build and Run the Application
11/2/2020 • 2 minutes to read • Edit Online
After you create a data filter for the data table, your next step is to build and run the website application.
To build and run the application
1. Press CTRL+F5 to run the Default.aspx page without debugging, or press F5 to run the page with
debugging.
As part of the build process, the report is compiled and any errors found (such as a syntax error in an
expression used in the report) are added to the Task List that is located at the bottom of the Visual
Studio window.
The webpage appears in the browser. The ReportViewer control displays the report. You can use the
toolbar to browse through the report, zoom, and export the report to Excel.
2. Hover the mouse over any of the rows under Name column. The mouse cursor will display a Hand
symbol.
3. Select a value in the Name column. The child report is shown with the corresponding filtered data.
4. Select the icon, Go back to parent repor t , in the Repor tViewer tool bar to navigate back to the
Parent report.
5. Close the browser to exit.
Report Builder Tutorials
11/2/2020 • 2 minutes to read • Edit Online
Next steps
Report Design View
Report Builder in SQL Server
Tutorial: Create a Quick Chart Report Offline
More questions? Try asking the Reporting Services forum
Tutorial: Create a Quick Chart Report Offline
(Report Builder)
3/25/2020 • 8 minutes to read • Edit Online
In this tutorial, you use a wizard to create a pie chart in a Reporting Services paginated report in Report Builder.
Then you add percentages and modify the pie chart a little.
You can do this tutorial two different ways. Both methods have the same outcome-a pie chart like the one in this
illustration:
Prerequisites
Whether you use XML data or a Transact-SQL query, you need to have access to Report Builder. You can start
Report Builder from a Reporting Services report server in native mode or in SharePoint integrated mode, or you
can download Report Builder from the Microsoft Download Center. For more information, see Install Report
Builder.
If the Getting Star ted dialog box does not appear, click File >New . The New Repor t or Dataset
dialog box has most of the same contents as the Getting Star ted dialog box.
2. In the left pane, verify that New Repor t is selected.
3. In the right pane, click Char t Wizard , and then click Create .
4. In the Choose a dataset page, click Create a dataset , and then click Next .
5. In the Choose a connection to a data source page, click New .
The Data Source Proper ties dialog box opens.
6. You can name a data source anything you want. In the Name box, type MyPieChar t .
7. In the Select connection type box, click XML .
8. Click the Credentials tab, select Use current Windows user. Kerberos delegation might be
required , and then click OK .
9. In the Choose a connection to a data source page, click MyPieChar t , and then click Next .
10. Copy the following text and paste it in the large box in the top of the Design a quer y page.
<Query>
<ElementPath>Root /S {@Sales (Integer)} /C {@FullName} </ElementPath>
<XmlData>
<Root>
<S Sales="150">
<C FullName="Jae Pak" />
</S>
<S Sales="350">
<C FullName="Jillian Carson" />
</S>
<S Sales="250">
<C FullName="Linda C Mitchell" />
</S>
<S Sales="500">
<C FullName="Michael Blythe" />
</S>
<S Sales="450">
<C FullName="Ranjit Varkey" />
</S>
</Root>
</XmlData>
</Query>
11. (Optional) Click the Run button (! ) to see the data your chart will be based on.
18. To continue modifying your pie chart, go to After You Run the Wizard in this article.
NOTE
The data source you choose is unimportant, as long as you have adequate permissions. You will not be getting
data from the data source. For more information, see Prerequisites for Tutorials (Report Builder).
8. (Optional) Click the Run button (! ) to see the data your chart will be based on.
9. Click Next .
10. In the Choose a char t type page, click Pie , and then click Next .
11. In the Arrange char t fields page, double-click the Sales field in the Available fields box.
Note that it automatically moves to the Values box, because it's a numerical value.
12. Drag the FullName field from the Available fields box to the Categories box (or double-click it; it will
go to the Categories box), and then click Next .
13. Click Finish .
You're now looking at your new pie chart report on the design surface. What you see is representational.
The legend reads Full Name 1, Full Name 2, etc., rather than the salespeople's names, and the size of the
slices of pie are not accurate. This is just to give you an idea of what your report will look like.
14. To see your actual pie chart, click Run on the Home tab of the Ribbon.
Add percentages
1. Right-click the pie chart and select Show Data Labels . The data labels appear within each slice on the
pie chart.
2. Right-click the labels and select Series Label Proper ties . The Series Label Proper ties dialog box
appears.
3. In the Label data box, type #PERCENT{P0} .
The {P0} gives you the percentage without decimal places. If you type just #PERCENT , your numbers will
have two decimal places. #PERCENT is a keyword that performs a calculation or function for you; there
are many others.
4. Click Yes to confirm you want to set UseValueAsLabel to False .
5. On the Font tab, select Bold and change Color to White .
6. Click OK .
For more information about customizing chart labels and legends, see Display Percentage Values on a Pie Chart
(Report Builder and SSRS) and Change the Text of a Legend Item (Report Builder and SSRS).
What's Next?
Now that you have created your first report in Report Builder, you are ready to try the other tutorials and to
start creating reports from your own data. To run Report Builder, you need permission to access your data
sources, such as databases, with a connection string, which actually connects you to the data source. Your
system administrator will have this information and can set you up.
To work through the other tutorials, you need the name of an instance of SQL Server and credentials sufficient
for read-only access to any database. Your system administrator can also set that up for you.
Finally, to save your reports to a report server or a SharePoint site that is integrated with a report server, you
need the URL and permissions. You can run any report you create directly from your computer, but reports have
more functionality when run from the report server or SharePoint site. You need permissions to run your
reports or others from the report server or SharePoint site where they are published. Talk to your system
administrator to obtain access.
It may help to read about some of the concepts and terms before you get started. See Reporting Services
Concepts (SSRS). Also, spend some time planning, before you create your first report. It will be time well spent.
See Planning a Report (Report Builder).
Next steps
Report Builder Tutorials
Report Builder in SQL Server
More questions? Try asking the Reporting Services forum
Prerequisites for Tutorials (Report Builder)
11/2/2020 • 2 minutes to read • Edit Online
To do the Report Builder tutorials, you need to be able to view and save SQL Server 2016 Reporting Services or
later (SSRS) paginated reports on a report server or SharePoint site that is integrated with a report server. For
data, all tutorials use literal queries that must be processed by an instance of SQL Server.
If you do not have access to a report server or site or to a data source, you can learn about Report Builder by
building an offline report. See Tutorial: Create a Quick Chart Report Offline (Report Builder).
Requirements
You must have the following prerequisites to complete Report Builder tutorials:
Access to Report Builder. You can run Report Builder from a Reporting Services report server or a
Reporting Services report server in SharePoint integrated mode. Only the first step, how to open Report
Builder, is different on the different servers.
On a report server, select New > Paginated Repor t .
On a report server in SharePoint integrated mode, on the Documents tab, select New Document , and
from the drop-down list, select Repor t Builder Repor t . For example,
https://<servername>/sites/mySite/reports . The SharePoint administrator must enable the Report Builder
Report feature for each document library.
The URL to a Reporting Services report server or a SharePoint site that is integrated with a Reporting
Services report server. You must have permission to save and view reports, shared data sources, shared
datasets, report parts, and models. By default, the URL for a report server is
https://<servername>/reportserver . By default, the URL for a SharePoint site is https://<sitename> or
https://<server>/site .
The name of a SQL Server instance and credentials sufficient for read-only access to any database. The
dataset queries in the tutorials use literal data, but each query must be processed by a SQL Server
instance to return the metadata that is required for a report dataset. For example, the following
connection string specifies only a server: data source=<servername> . You must have read access to the
default database that is assigned to you by the system administrator who grants you permission to
access the server. You can also specify a database, as shown in the following connection string:
data source=<servername>;initial catalog=<database> .
For the Tutorial: Map Report (Report Builder), the report server must be configured to support Bing maps
as a background. For more information, see Plan for Map Report Support.
The Tutorial: Creating Drillthrough and Main Reports (Report Builder) tutorial requires access to the
Contoso Sales cube. See the tutorial for more information.
The report server administrator must grant you the necessary permissions on the report server, configure
Reporting Services folder locations, and configure Report Builder default options. For more information, see
Install Report Builder.
Next steps
Report Builder tutorials
More questions? Try asking the Reporting Services forum
Alternative Ways to Get a Data Connection (Report
Builder)
11/2/2020 • 2 minutes to read • Edit Online
A data connection contains the information to connect to an external data source such as a SQL Server database.
Usually, you get the connection information and the type of credentials to use from the data source owner.
To specify a data connection, you can use a shared data source from the report server or create an embedded
data source that is used only in a specific report.
In most tutorials you use embedded data sources, but if you have access to shared data sources, then you can
use them instead.
See Also
Report Datasets (SSRS)
Report Builder Tutorials
Tutorial: Creating a Basic Table Report (Report
Builder)
3/5/2021 • 13 minutes to read • Edit Online
This tutorial teaches you to create a basic table report based on sample sales data. The following illustration
shows the report you will create.
Requirements
For more information about requirements, see Prerequisites for Tutorials (Report Builder).
Data Source=<servername>
Because you will use a query that contains the data instead of retrieving the data from a database, the
connection string does not include the database name. For more information, see Prerequisites for
Tutorials (Report Builder).
6. Click the Credentials tab. Enter the credentials that you need to access the external data source.
7. Click the General tab again. To verify that you can connect to the data source, click Test Connection .
The message "Connection created successfully" appears.
8. Click OK .
You are back on the Choose a connection to a data source page, with your new data source selected.
9. Click Next .
NOTE
In this tutorial, the query contains the data values, so that it does not need an external data source. This makes the query
quite long. In a business environment, a query would not contain the data. This is for learning purposes only.
To create a query
1. On the Design a quer y page, the relational query designer is open. For this tutorial, you will use the
text-based query designer.
Click Edit As Text . The text-based query designer displays a query pane and a results pane.
2. Paste the following Transact-SQL query into the blank upper box.
NOTE
If the Properties pane is not visible, on the View tab, select Proper ties .
If you don't see a property in the Properties pane, try selecting the Alphabetical button at the top of the pane
to order all the properties alphabetically.
Next Steps
This concludes the walkthrough for how to create a basic table report. For more information about tables, see
Tables, Matrices, and Lists (Report Builder and SSRS).
See Also
Report Builder Tutorials
Report Builder in SQL Server
Tutorial: Creating a Matrix Report (Report Builder)
11/2/2020 • 14 minutes to read • Edit Online
This tutorial teaches you to create a Reporting Services paginated report with a matrix of sample sales data in
nested row and column groups.
You also create an adjacent column group, format columns, and rotate text. The following illustration shows a
report similar to the one you will create.
Requirements
For information about requirements, see Prerequisites for Tutorials.
1. Create a Matrix Report and Dataset from the New Table or Matrix
Wizard
In this section, you choose a shared data source, create an embedded dataset, and then display the data in a
matrix.
NOTE
In this tutorial, the query already contains the data values, so that it does not need an external data source. This makes
the query quite long. In a business environment, a query would not contain the data. This is for learning purposes only.
To create a matrix
1. Start Report Builder either from your computer, the Reporting Services web portal, or SharePoint
integrated mode.
The New Repor t or Dataset dialog box opens.
If you don't see the New Repor t or Dataset dialog box, on the File menu > New .
2. In the left pane, verify that New Repor t is selected.
3. In the right pane, click Table or Matrix Wizard .
4. On the Choose a dataset page, click Create a dataset .
5. Click Next .
6. On the Choose a connection to a data source page, select an existing data source, or browse to the
report server and select a data source. If no data source is available or you do not have access to a report
server, you can use an embedded data source instead. For information about creating an embedded data
source, see Tutorial: Creating a Basic Table Report (Report Builder).
7. Click Next .
8. On the Design a quer y page, click Edit as Text .
9. Copy and paste the following query into the query pane:
SELECT CAST('2015-01-05' AS date) as SalesDate, 'Central' as Territory, 'Accessories' as
Subcategory,'Carrying Case' as Product, CAST(16996.60 AS money) AS Sales, 68 as Quantity
UNION SELECT CAST('2015-01-05' AS date) as SalesDate, 'North' as Territory, 'Accessories' as
Subcategory, 'Carrying Case' as Product, CAST(13747.25 AS money) AS Sales, 55 as Quantity
UNION SELECT CAST('2015-01-05' AS date) as SalesDate, 'South' as Territory, 'Accessories' as
Subcategory,'Carrying Case' as Product, CAST(9248.15 AS money) As Sales, 37 as Quantity
UNION SELECT CAST('2015-01-05' AS date) as SalesDate, 'Central' as Territory, 'Accessories' as
Subcategory,'Tripod' as Product, CAST(1350.00 AS money) AS Sales, 18 as Quantity
UNION SELECT CAST('2015-01-05' AS date) as SalesDate, 'North' as Territory, 'Accessories' as
Subcategory,'Tripod' as Product, CAST(1800.00 AS money) AS Sales, 24 as Quantity
UNION SELECT CAST('2015-01-05' AS date) as SalesDate, 'South' as Territory, 'Accessories' as
Subcategory,'Tripod' as Product, CAST(1125.00 AS money) AS Sales, 15 as Quantity
UNION SELECT CAST('2015-01-05' AS date) as SalesDate, 'Central' as Territory, 'Accessories' as
Subcategory,'Lens Adapter' as Product, CAST(1147.50 AS money) AS Sales, 17 as Quantity
UNION SELECT CAST('2015-01-05' AS date) as SalesDate, 'North' as Territory, 'Accessories' as
Subcategory, 'Lens Adapter' as Product, CAST(742.50 AS money) AS Sales, 11 as Quantity
UNION SELECT CAST('2015-01-05' AS date) as SalesDate, 'South' as Territory, 'Accessories' as
Subcategory,'Lens Adapter' as Product, CAST(1417.50 AS money) AS Sales, 21 as Quantity
UNION SELECT CAST('2015-01-06' AS date) as SalesDate, 'Central' as Territory, 'Accessories' as
Subcategory, 'Carrying Case' as Product, CAST(13497.30 AS money) AS Sales, 54 as Quantity
UNION SELECT CAST('2015-01-06' AS date) as SalesDate, 'North' as Territory, 'Accessories' as
Subcategory, 'Carrying Case' as Product, CAST(11997.60 AS money) AS Sales, 48 as Quantity
UNION SELECT CAST('2015-01-06' AS date) as SalesDate, 'South' as Territory, 'Accessories' as
Subcategory, 'Carrying Case' as Product, CAST(10247.95 AS money) As Sales, 41 as Quantity
UNION SELECT CAST('2015-01-06' AS date) as SalesDate, 'Central' as Territory, 'Accessories' as
Subcategory, 'Tripod' as Product, CAST(1200.00 AS money) AS Sales, 16 as Quantity
UNION SELECT CAST('2015-01-06' AS date) as SalesDate, 'North' as Territory, 'Accessories' as
Subcategory,'Tripod' as Product, CAST(2025.00 AS money) AS Sales, 27 as Quantity
UNION SELECT CAST('2015-01-06' AS date) as SalesDate, 'South' as Territory, 'Accessories' as
Subcategory,'Tripod' as Product, CAST(1425.00 AS money) AS Sales, 19 as Quantity
UNION SELECT CAST('2015-01-06' AS date) as SalesDate, 'Central' as Territory, 'Accessories' as
Subcategory,'Lens Adapter' as Product, CAST(887.50 AS money) AS Sales, 13 as Quantity
UNION SELECT CAST('2015-01-06' AS date) as SalesDate, 'North' as Territory, 'Accessories' as
Subcategory, 'Lens Adapter' as Product, CAST(607.50 AS money) AS Sales, 9 as Quantity
UNION SELECT CAST('2015-01-06' AS date) as SalesDate, 'South' as Territory, 'Accessories' as
Subcategory,'Lens Adapter' as Product, CAST(1215.00 AS money) AS Sales, 18 as Quantity
UNION SELECT CAST('2015-01-05' AS date) as SalesDate, 'Central' as Territory, 'Digital' as
Subcategory,'Compact Digital' as Product, CAST(10191.00 AS money) AS Sales, 79 as Quantity
UNION SELECT CAST('2015-01-05' AS date) as SalesDate, 'North' as Territory, 'Digital' as
Subcategory, 'Compact Digital' as Product, CAST(8772.00 AS money) AS Sales, 68 as Quantity
UNION SELECT CAST('2015-01-05' AS date) as SalesDate, 'South' as Territory, 'Digital' as
Subcategory, 'Compact Digital' as Product, CAST(10578.00 AS money) AS Sales, 82 as Quantity
UNION SELECT CAST('2015-01-05' AS date) as SalesDate, 'Central' as Territory,'Digital' as
Subcategory, 'Slim Digital' as Product, CAST(7218.10 AS money) AS Sales, 38 as Quantity
UNION SELECT CAST('2015-01-05' AS date) as SalesDate, 'North' as Territory,'Digital' as Subcategory,
'Slim Digital' as Product, CAST(8357.80 AS money) AS Sales, 44 as Quantity
UNION SELECT CAST('2015-01-05' AS date) as SalesDate, 'South' as Territory,'Digital' as
Subcategory,'Slim Digital' as Product, CAST(9307.55 AS money) AS Sales, 49 as Quantity
UNION SELECT CAST('2015-01-06' AS date) as SalesDate, 'Central' as Territory, 'Digital' as
Subcategory,'Compact Digital' as Product, CAST(3870.00 AS money) AS Sales, 30 as Quantity
UNION SELECT CAST('2015-01-06' AS date) as SalesDate, 'North' as Territory, 'Digital' as
Subcategory,'Compact Digital' as Product, CAST(5805.00 AS money) AS Sales, 45 as Quantity
UNION SELECT CAST('2015-01-06' AS date) as SalesDate, 'South' as Territory, 'Digital' as
Subcategory, 'Compact Digital' as Product, CAST(8643.00 AS money) AS Sales, 67 as Quantity
UNION SELECT CAST('2015-01-06' AS date) as SalesDate, 'Central' as Territory, 'Digital' as
Subcategory, 'Slim Digital' as Product, CAST(9877.40 AS money) AS Sales, 52 as Quantity
UNION SELECT CAST('2015-01-06' AS date) as SalesDate, 'North' as Territory, 'Digital' as Subcategory,
'Slim Digital' as Product, CAST(12536.70 AS money) AS Sales, 66 as Quantity
UNION SELECT CAST('2015-01-06' AS date) as SalesDate, 'South' as Territory, 'Digital' as Subcategory,
'Slim Digital' as Product, CAST(6648.25 AS money) AS Sales, 35 as Quantity
10. (optional) Click the Run icon (!) to run the query and see the data.
11. Click Next .
2. Organize Data and Choose Layout from the New Table or Matrix
Wizard
Use the wizard to provide a starting design on which to display data. The preview pane in the wizard helps you
to visualize the result of grouping data before you complete the matrix design.
1. On the Arrange fields page, drag Territory from Available fields to Row groups .
2. Drag SalesDate to Row groups and place it below Territory.
The order in which fields are listed in Row groups defines the group hierarchy. Steps 1 and 2 organize
the values of the fields first by territory, and then by sales date.
3. Drag Subcategory to Column groups .
4. Drag Product to Column groups and place it below Subcategory.
Again, the order in which fields are listed in Column groups defines the group hierarchy. Steps 3 and 4
organize the values for the fields first by subcategory, and then by product.
5. Drag Sales to Values .
Sales is summarized with the Sum function, the default function to summarize numeric fields.
6. Drag Quantity to Values .
Quantity is summarized with the Sum function.
Steps 5 and 6 specify the data to display in the matrix data cells.
7. Click Next .
8. On the Choose the Layout page, under Options , verify that Show subtotals and grand totals is
selected.
9. Verify that Blocked, subtotal below is selected.
10. Verify the option Expand/collapse groups is selected.
11. Click Next .
12. Click Finish .
The matrix is added to the design surface. The Row Groups pane shows two row groups: Territory and
SalesDate. The Column Groups pane shows two column groups: Subcategory and Product. Detail data is
all the data that is retrieved by the dataset query.
13. Click Run to preview the report.
For each product that is sold on a specific date, the matrix shows the subcategory to which the product
belongs and the territory of the sales.
14. Expand a subcategory. You can see the report quickly gets quite wide.
3. Format Data
By default, the summary data for the Sales field displays a general number and the SalesDate field displays both
date and time information. In this section, you format the Sales field to display the number as currency and the
SalesDate field to display only the date. Toggle Placeholder Styles to display formatted text boxes and
placeholder text as sample values.
To format fields
1. Click Design to switch to design view.
2. Press the Ctrl key, and then select the nine cells that contain [Sum(Sales)] .
3. On the Home tab > Number > Currency . The cells change to show the formatted currency.
If your regional setting is English (United States), the default sample text is [$12,345.00 ]. If you do not
see an example currency value, in the Numbers group, click Placeholder Styles > Sample Values .
=WeekdayName(DatePart("w",Fields!SalesDate.Value))
This expression extracts the weekday name from the sales date. For more information, see Expressions
(Report Builder and SSRS).
6. Right-click the cell in the Subcategory column group that contains Total, and then click Copy .
7. Right-click the cell immediately below the cell that contains the expression you created in step 5 and click
Paste .
8. Press the Ctrl key.
9. In the Subcategory group, click the Sales column header and the three cells below it, right-click, and then
click Copy .
10. Paste the four cells into the four empty cells in the new column group.
11. Click Run to preview the report.
The report includes columns named Monday and Tuesday. The dataset contains only data for these two days.
NOTE
If the data included other days, the report would include columns for them as well. Each column has the column header,
Sales , and sales totals by territory.
5. To resize the QTY column farthest to the left, point to the line between column handles so that the cursor
changes into a double arrow. Drag the column towards the left until it is 1/2 inch wide.
A column width of 1/2 inch is adequate to display the quantity.
6. Repeat step 5 for the other columns named QTY.
7. Click Run to preview your report.
The columns that contain quantities are now narrower and are named QTY.
Note : Select the cell, not the text. The WritingMode property is only available for the cell.
3. In the Properties pane, locate the WritingMode property and change it from Default to Rotate270 .
If the Properties pane is not open, click the View tab of the ribbon, and then select Proper ties .
4. Verify that the CanGrow property is set to True .
5. On the Home tab > Paragraph section, select Middle and Center to locate the text in the center of the
cell both vertically and horizontally.
6. Resize the Territory column to be 1/2 inch wide and delete the column title.
7. Click Run to preview your report.
The territory name is written vertically, bottom to top. The height of the Territory row group varies by the length
of the territory name.
Next Steps
This concludes the tutorial for how to create a matrix report. For more information about matrices, see:
Tables, Matrices, and Lists
Create a Matrix
Tablix Data Region Areas
Tablix Data Region Cells, Rows, and Columns
See Also
Report Builder Tutorials
Report Builder in SQL Server
Tutorial: Creating a Free Form Report (Report
Builder)
11/2/2020 • 17 minutes to read • Edit Online
In this tutorial, you create a paginated report that acts as a newsletter. Each page displays static text, summary
visuals, and detailed sample sales data.
The report groups information by territory and displays the name of the sales manager for the territory as well
as detailed and summary sales information. You start with a list data region as the foundation for the free form
report, then add a decorative panel with an image, static text with data inserted, a table to show detailed
information, and optionally, pie and column charts to display summary information.
Estimated time to complete this tutorial: 20 minutes.
Requirements
For more information about requirements, see Prerequisites for Tutorials (Report Builder).
8. Click OK .
NOTE
This report uses the paper size Letter (8.5 X11) and 1 inch margins. A list box taller than 9 inches or wider than
6.5 inches might generate blank pages.
3. Click inside the list box, right-click the bar at the top of the list, and click Tablix Proper ties .
4. In the Dataset name drop-down list, select ListDataset .
5. Click OK .
6. Right-click inside the list, and then click Rectangle Proper ties .
7. On the General tab, select the Add a page break after check box.
8. Click OK .
To add a new row group and to delete the Details group
1. In the Row Groups pane, right-click the Details group, point to Add Group , and then click Parent Group .
3. Click OK .
A column containing the cell [Territory] is added to the list.
4. Right-click the Territory column in the list, and then click Delete Columns .
4. Drag the [Territory] field from ListDataSet in the Report Data pane to the text box and place it after
"Newsletter for ".
5. Select the text and the [Territory] field.
6. On the Home tab > Font , select:
Segoe Semibold .
20 pt .
Tomato .
7. Place the cursor below the text you typed in step 3 and type: Hello with a space after the word, to
separate the text and the field that you will add in the next step.
8. Drag the [FullName] field from ListDataSet in the Report Data pane to the text box and place it after
"Hello ", then type a comma (,).
9. Select the text you added in the previous steps.
10. On the Home tab > Font , select:
Segoe Semibold .
16 pt .
Black .
11. Place the cursor below the text you added in steps 9 through 13, and then copy and paste the following
meaningless text:
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin sed dolor in ipsum pulvinar egestas.
Sed sed lacus at leo ornare ultricies. Vivamus velit risus, euismod nec sodales gravida, gravida in
dui. Etiam ullamcorper elit vitae justo fermentum ut ullamcorper augue sodales.
Ut placerat, nisl quis feugiat adipiscing, nibh est aliquet est, mollis faucibus mauris lectus quis
arcu. In mollis tincidunt lacinia. In vitae erat ut lorem tincidunt luctus. Curabitur et magna nunc,
sit amet adipiscing nisi. Nulla rhoncus elementum orci nec tincidunt.
Aliquam imperdiet cursus erat vel tincidunt. Donec et neque ac urna rutrum sodales. In id purus et
nisl dignissim dapibus. Sed rhoncus metus at felis feugiat eu tempor dolor vehicula. Lorem ipsum
dolor sit amet, consectetur adipiscing elit. Nullam faucibus consectetur diam eu pellentesque.
=Sum(Fields!Sales.value)
20. Click OK .
21. With [Sum(Sales)] still selected, on the Home tab > Number group > Currency .
22. Right-click the text box with the "Click to add title" text, and then click Delete .
23. Select the list box. Select the two double-headed arrows and move it to the top of the page.
10. With the table selected, in the Row Group pane right-click Details > Add Total > After .
11. Select the cell in the Product column and type Total .
12. Select the [SalesDate] field. On the Home tab > Number , change Default to Date .
13. Select the [Sum(Sales)] fields. On the Home tab > Number , change Default to Currency .
Click Run to preview the report.
The report displays a table with sales details and totals.
6. Save the Report
You can save reports to a report server, SharePoint library, or your computer.
In this tutorial, save the report to a report server. If you do not have access to a report server, save the report to
your computer.
To save the report on a report server
1. From the Repor t Builder button, click Save As .
2. Click Recent Sites and Ser vers .
3. Select or type the name of the report server where you have permission to save reports.
The message "Connecting to report server" appears. When the connection is complete, you see the
contents of the report folder that the report server administrator specified as the default location for
reports.
4. In Name , replace the default name with SalesInformationByTerritor y .
5. Click Save .
The report is saved to the report server. The name of report server that you are connected to appears in the
status bar at the bottom of the window.
To save the report on your computer
1. From the Repor t Builder button, click Save As .
2. Click Desktop , My Documents , or My computer , and then browse to the folder where you want to
save the report.
3. In Name , replace the default name with SalesInformationByTerritor y .
4. Click Save .
12. Select the chart axis, and on the Home tab > Number > Currency .
13. Select Decrease Decimal two times, so the number shows just dollars and no cents.
To verify the charts are inside the rectangle
You can use rectangles as containers for other items on a report page. Read more about rectangles as
containers.
1. Select the rectangle you created and added the charts to, earlier in this lesson.
In the Properties pane, the Name property displays the name of the rectangle.
NOTE
If the charts are not inside the rectangle, the rendered report does not display the charts together.
NOTE
The item you click first determines the width of all the selected items.
Next Steps
This concludes the tutorial for how to create a free-form report.
For more information about lists, see:
Tables, Matrices, and Lists (Report Builder and SSRS)
Create Invoices and Forms with Lists
Tablix Data Region Cells, Rows, and Columns (Report Builder) and SSRS.
For more information about query designers, see Query Design Tools (SSRS) and Text-based Query Designer
User Interface (Report Builder).
See Also
Report Builder Tutorials
Tutorial: Format Text (Report Builder)
11/2/2020 • 14 minutes to read • Edit Online
In this tutorial, you practice formatting text in various ways in a Reporting Services paginated report. You can
experiment with different formats.
After you set up the blank report with the data source and dataset, you can pick the formats you want to explore.
The following illustration shows a report similar to the one you will create.
In one step, you make a mistake on purpose so you can see why it is a mistake. Then you correct the mistake to
achieve the desired effect.
Estimated time to complete this tutorial: 20 minutes.
Requirements
For information about requirements, see Prerequisites for Tutorials (Report Builder).
NOTE
The expression <servername> , for example Report001, specifies a computer on which an instance of the SQL
Server Database Engine is installed. This tutorial does not need specific data; it just needs a connection to a SQL
Server database. If you already have a data source connection listed under Data Source Connections , you can
select it and go to the next procedure, "To create a dataset." For more information, see Alternative Ways to Get a
Data Connection (Report Builder).
5. Click OK .
To create a dataset
1. In the Report Data pane, click New > Dataset .
2. Verify that the data source is TextDataSource .
3. In the Name box, type: TextDataset.
4. Verify that the Text query type is selected, and then click Quer y Designer .
5. Click Edit as Text .
6. Paste the following query into the query pane:
NOTE
In this tutorial, the query already contains the data values, so that it does not need an external data source. This
makes the query quite long. In a business environment, a query would not contain the data. This is for learning
purposes only.
=First(Fields!FullName.Value, "TextDataSet")
The First function is designed to retrieve only the first value in a field, and that is what it has done.
Dragging the field directly to the design surface created a text box. Text boxes by themselves are not data
regions, so they do not display data from a report dataset. Text boxes in data regions, such as tables,
matrices, and lists, do display data.
6. Select the text box (if you have the expression selected, press ESC to select the text box), and press the
DELETE key.
To add a field to the report (and get the right result)
1. On the Inser t tab of the ribbon, in the Data Regions area, click List . Click the design surface, and then
drag to create a box that about two inches wide and one inch tall.
2. Drag the FullName field from the Report Data pane to the list box.
This time Report Builder creates a text box with the expression [FullName] in it.
3. Click Run .
Note that this time the box repeats to show all the records in the query.
4. Click Design to return to design view.
5. Select the expression in the text box.
6. In the Properties pane, for the Value property, you see the following:
=Fields!FullName.Value
By dragging the text box to the list data region, you display the data that is in that field in the dataset.
7. Select the list box and press the DELETE key.
9. Click a link. If the computer is connected to the Internet, a browser will open to a Report Builder Help
topic.
3. On the Home tab in the Font section, click the Bold button.
4. If the Properties pane is not open, on the View tab, select the Proper ties check box.
5. Locate the WritingMode property in the Properties pane, and change it from Default to Rotate270 .
NOTE
When the properties in the Properties pane are organized into categories, WritingMode is in the Localization
category. Be sure you have selected the cell and not the text. WritingMode is a property of the text box, not of
the text.
6. On the Home tab > Paragraph section, select Middle and Center to locate the text in the center of the
cell both vertically and horizontally.
7. Click Run (! ).
Now the text in the [Territory] cell runs vertically from the bottom to the top of the cells.
Format Currency
1. Click Design to switch to design view.
2. Click the top table cell that contains [Sum(Sales)] , hold down the SHIFT key, and click the bottom table
cell that contains [Sum(Sales)] .
3. On the Home tab > Number group > Currency button.
4. (Optional) If your regional setting is English (United States), the default sample text is [$12,345.00 ]. If
you do not see an example currency value, in the Numbers group, click Placeholder Styles > Sample
Values .
5. (Optional) On the Home tab, in the Number group, click the Decrease Decimals button twice to
display dollar figures with no cents.
6. Click Run (! ) to preview the report.
The report now displays formatted data and is easier to read.
4. Drag the lower edge of the text box so all the text fits. You notice the design surface gets larger as you
drag.
5. Select all of the text in the text box.
6. Right-click all of the selected text and click Text Proper ties .
This is a property of the text, not the text box, so in one text box you could have a mixture of plain text and
text that uses HTML tags as styles.
7. On the General tab, under Markup type , click HTML - Interpret HTML tags as styles .
8. Click OK .
9. Click Run (! ) to preview the report.
The text in the text box is displayed as a heading, paragraph, and bulleted list.
Next Steps
There are many ways to format text in Report Builder. Tutorial: Creating a Free Form Report contains more
examples.
Report Builder Tutorials Formatting Report Items
Report Builder in SQL Server
More questions? Try asking the Reporting Services forum
Tutorial: Add a Column Chart to Your Report
(Report Builder)
11/2/2020 • 8 minutes to read • Edit Online
In this tutorial, you create a Reporting Services paginated report with a column chart displaying a series as a set
of vertical bars grouped by category.
Column charts are useful to:
Show data changes over a period of time.
Compare the relative value of multiple series.
Display a moving average to show trends.
The following illustration shows the column chart you will create, with a moving average.
NOTE
In this tutorial, the steps for the wizard are consolidated into one procedure. For step-by-step instructions about how to
browse to a report server, choose a data source, and create a dataset, see the first tutorial in this series: Tutorial: Creating
a Basic Table Report (Report Builder).
Requirements
For information about requirements, see Prerequisites for Tutorials (Report Builder).
NOTE
The data source you choose is unimportant, as long as you have adequate permissions. You will not be getting
data from the data source. For more information, see Alternative Ways to Get a Data Connection (Report Builder).
8. (Optional) Click the Run button (! ) to see the data your chart will be based on.
9. Click Next .
6. Click the chart to display the chart handles. Drag the bottom-right corner of the chart to increase the size
of the chart. Note that the report design surface increases in size to accommodate the chart size.
7. Click Run to preview the report.
Note that the chart does not label every category on the horizontal axis. By default, only labels that fit next to the
axis are included.
You can customize the label display by rotating the labels and specifying the interval.
Next Steps
You have successfully completed the Adding a Column Chart to Your Report tutorial. To learn more about charts,
see Charts (Report Builder and SSRS) and Sparklines and Data Bars (Report Builder and SSRS).
See Also
Report Builder tutorials
Report Builder in SQL Server
Tutorial: Add a Pie Chart to Your Report (Report
Builder)
11/2/2020 • 7 minutes to read • Edit Online
In this tutorial, you create pie chart in a Reporting Services paginated report. You add percentages and combine
small slices into a single slice.
Pie and doughnut charts display data as a proportion of the whole. They have no axes. When you add a numeric
field to a pie chart, the chart calculates the percentage of each value to the total.
This illustration shows the pie chart you will create.
If there are too many data points on a pie chart, your data point labels might be too crowded to read. In that
case, consider combining a number of small slices into one larger slice. Pie charts are more readable when you
have aggregated your data into a few data points.
NOTE
In this tutorial, the steps for the wizard are consolidated into two procedures. For step-by-step instructions about how to
browse to a report server, add a data source, and add a dataset, see the first tutorial in this series: Tutorial: Creating a
Basic Table Report (Report Builder).
Requirements
For information about requirements, see Prerequisites for Tutorials (Report Builder).
NOTE
The data source you choose is unimportant, as long as you have adequate permissions. You will not be getting
data from the data source. For more information, see Alternative Ways to Get a Data Connection (Report Builder).
NOTE
In this tutorial, the query contains the data values, so it does not need an external data source. This makes the
query long. In a business environment, a query would not contain the data. This is for learning purposes only.
8. (Optional) Click the Run button (! ) to see the data your chart will be based on.
9. Click Next .
5. Click the chart to display the chart handles. Drag the bottom-right corner of the chart to make it bigger.
Note that the report design surface also gets bigger, to accommodate the chart size.
6. Click Run to preview the report.
The report displays the pie chart with eight slices, one for each product. Now you see the actual products and
the size of each slice represents the sales for that product. Three of the slices are quite thin.
NOTE
Number Format in the Series Label Proper ties dialog box has no effect when you format percentages. This
formats the labels as percentages, but does not calculate the percentage of the pie that each slice represents.
7. Click OK .
8. Click Run to preview the report.
The report displays the percentage of the whole for each pie slice.
Next Steps
You have successfully completed the Adding a Pie Chart to Your Report tutorial. To learn more about charts, see
Charts (Report Builder and SSRS) and Sparklines and Data Bars (Report Builder and SSRS).
See Also
Report Builder Tutorials
Report Builder in SQL Server
Tutorial: Add a Bar Chart to Your Report (Report
Builder)
3/5/2021 • 10 minutes to read • Edit Online
In this tutorial, you use a wizard in Report Builder to create a bar chart in a Reporting Services paginated report.
Then you add a filter and enhance the chart.
A bar chart displays category data horizontally. This can help to:
Improve readability of long category names.
Improve understandability of times plotted as values.
Compare the relative value of multiple series.
The following illustration shows the bar chart that you will create, with sales for 2014 and 2015 for the top five
salespeople, from most to least 2015 sales.
NOTE
In this tutorial, the steps for the wizard are consolidated into one procedure. For step-by-step instructions about how to
browse to a report server, create a dataset, and choose a data source, see the first tutorial in this series: Tutorial: Creating
a Basic Table Report (Report Builder).
Requirements
For more information about requirements, see Prerequisites for Tutorials (Report Builder).
NOTE
In this tutorial, the query contains the data values so that it does not need an external data source. This makes the query
quite long. In a business environment, a query would not contain the data. This is for learning purposes only.
1. Start Report Builder from the Reporting Services web portal, from the report server in SharePoint
integrated mode, or from your computer.
The Getting Star ted dialog box appears.
If you don't see the Getting Star ted dialog box, click File >New . The New Repor t or Dataset dialog
box has most of the same contents as the Getting Star ted dialog box.
2. In the left pane, verify that New Repor t is selected.
3. In the right pane, click Char t Wizard .
4. On the Choose a dataset page, click Create a dataset , and then click Next .
5. On the Choose a connection to a data source page, select an existing data source or browse to the
report server and select a data source, and then click Next . You may need to enter a user name and
password.
NOTE
The data source you choose is unimportant, as long as you have adequate permissions. You will not be getting
data from the data source. For more information, see Alternative Ways to Get a Data Connection (Report Builder).
8. (Optional) Click the Run button (! ) to see the data your chart will be based on.
9. Click Next .
NOTE
If you cannot read the salesperson names on the vertical axis, you can make your chart taller or change the formatting
options for the axis labels.
This expression concatenates the last name, a comma, and the first name.
6. Click OK .
7. Click OK .
8. Click Run to preview the report.
If the first names do not appear when you run the report, you can refresh the data manually. While still in
preview mode, on the Run tab in the Navigation group, click Refresh .
NOTE
If you cannot read the salesperson names on the vertical axis, you can make your chart taller or change the formatting
options for the axis labels.
Note: While you're typing, the Axis Title box appears to be on the vertical axis. But when you press
Enter, it goes to the horizontal axis.
Next Steps
You have successfully completed the Adding a Bar Chart to Your Report tutorial. To learn more about charts, see
Charts and Bar Charts.
See Also
Report Builder Tutorials
Report Builder in SQL Server
Tutorial: Add a Sparkline to Your Report (Report
Builder)
11/2/2020 • 11 minutes to read • Edit Online
In this tutorial in Report Builder, you create a basic table with a sparkline chart in a Reporting Services paginated
report.
Sparklines and data bars are small, simple charts that convey a lot of information in a little space, often in tables
and matrices in Reporting Services reports. The following illustration shows a report similar to the one that you
will create.
Requirements
For more information about requirements, see Prerequisites for Tutorials (Report Builder).
NOTE
This tutorial doesn't need specific data; it just needs a connection to a SQL Server database. If you already have a
data source connection listed under Data Source Connections , you can select it and go to step 10. For more
information, see Alternative Ways to Get a Data Connection (Report Builder).
5. Click New . The Data Source Proper ties dialog box opens.
6. In Name , type Product Sales , a name for the data source.
7. In Select a connection type , verify that Microsoft SQL Ser ver is selected.
8. In Connection string , type the following text:
Data Source\=<servername>
The expression <servername> , for example Report001, specifies a computer on which an instance of the
SQL Server Database Engine is installed. Because the report data is not extracted from a SQL Server
database, you need not include the name of a database. The default database on the specified server is
used to parse the query.
9. Click Credentials . Enter the credentials that you need to access the external data source.
10. Click OK .
You are back on the Choose a connection to a data source page.
11. To verify that you can connect to the data source, click Test Connection .
The message "Connection created successfully" appears.
12. Click OK .
13. Click Next .
NOTE
In this tutorial, the query contains the data values, so that it does not need an external data source. This makes the query
quite long. In a business environment, a query would not contain the data. This is for learning purposes only.
9. Click Next .
10. On the Choose the layout page, under Options , verify that Show subtotals and grand totals is
selected.
The wizard Preview pane displays a table with three rows. When you run the report, each row will display
in the following way:
The first row will appear once for the table to show column headings.
The second row will repeat once for each product and display the product name, total per day, and
line total.
The third row will appear once for the table to display the grand totals.
3. On the Home tab > Number group, click Currency . The cells change to show the formatted currency.
If your regional setting is English (United States), the default sample text is [$12,345.00 ]. If you do not
see an example currency value, in the Numbers group, click Placeholder Styles > Sample Values .
3. Add a Sparkline
1. Click Design to return to design view.
2. Select the Total column in your table.
3. Right-click, point to Inser t Column , and then click Left .
4. In the new column, right-click the cell in the [Product] row > Inser t > Sparkline .
5. In the Select Sparkline Type dialog box, make sure the first sparkline in the Column row is selected,
then click OK .
6. Click the sparkline to show the Chart Data pane.
7. Click the plus (+) sign in the Values box, then click Sales .
The values in the Sales field are now the values for the sparkline.
8. Click the plus (+) sign in the Category Groups box, then click SalesDate .
9. Click Run to preview your report.
Note that the bars in the sparkline charts don't line up with each other. There are only four bars in the
second row of data, so the bars are wider than the bars in the first row, which has six. You can't compare
values for each product per day. They need to line up.
Also, for each row the tallest bar is the height of the row. This is misleading, too, because the largest
values for each row are not equal: the largest value for Budget Movie-Maker is $10,400, but for Slim
Digital it's $26,576 - more than twice as large. And yet the largest bars in those two rows are about the
same height. All the sparklines need to use the same scale.
4. Align the Sparklines Vertically and Horizontally
Sparklines are hard to read when they don't all use the same measurements. Both the horizontal and vertical
axes for each need to match the rest.
1. Click Design to return to design view.
2. Right-click the sparkline and click Ver tical Axis Proper ties .
3. Check the Align axes in check box. Tablix1 is the only option in the list.
This sets the height of the bars in each sparkline relative to the others.
4. Click OK .
5. Right-click the sparkline and click Horizontal Axis Proper ties .
6. Check the Align axes in check box. Tablix1 is the only option in the list.
This sets the width of the bars in each sparkline relative to the others. If some sparklines have fewer bars
than others, then those sparklines will have blank spaces for the missing data.
7. Click OK .
8. Click Run to preview your report again.
Now all the bars in each sparkline align with the bars in the other sparklines, and the heights are relative.
Next Steps
This concludes the tutorial for creating a table report with sparkline charts. For more information about
sparklines, see Sparklines and Data Bars.
Report Builder Tutorials Report Builder in SQL Server
More questions? Try asking the Reporting Services forum
Tutorial: Adding a KPI to Your Report (Report
Builder)
11/2/2020 • 12 minutes to read • Edit Online
In this Report Builder tutorial, you add a key performance indicator (KPI) to a Reporting Services paginated
report.
KPIs are measurable values with business significance. In this scenario, the sales summary by product
subcategories is the KPI. The current state of the KPI is shown with colors, gauges, and indicators.
The following illustration is similar to the report you will create.
NOTE
In this tutorial, the steps for the wizard are consolidated into two procedures: one to create the dataset and one to create
a table. For step-by-step instructions about how to browse to a report server, choose a data source, create a dataset, and
run the wizard, see the first tutorial in this series: Tutorial: Creating a Basic Table Report (Report Builder).
Estimated time to complete this tutorial: 15 minutes.
Requirements
For information about requirements, see Prerequisites for Tutorials (Report Builder).
1. Create a Table Report and Dataset from the Table or Matrix Wizard
In this section, you choose a shared data source, create an embedded dataset, and display the data in a table.
To create a table with an embedded dataset
1. Start Report Builder either from your computer, the Reporting Services web portal, or SharePoint
integrated mode.
The New Repor t or Dataset dialog box opens.
If you don't see the New Repor t or Dataset dialog box, on the File menu > New .
2. In the left pane, verify that New Repor t is selected.
3. In the right pane, click Table or Matrix Wizard .
4. On the Choose a dataset page, click Create a dataset .
5. Click Next .
6. On the Choose a connection to a data source page, select an existing data source or browse to the
report server and select a data source. If there no data source is available or you do not have access to a
report server, you can use an embedded data source instead. For more information, see Tutorial: Creating
a Basic Table Report (Report Builder).
7. Click Next .
8. On the Design a quer y page, click Edit as Text .
9. Copy and paste the following query into the query pane:
NOTE
In this tutorial, the query contains the data values, so that it does not need an external data source. This makes
the query quite long. In a business environment, a query would not contain the data. This is for learning purposes
only.
SELECT CAST('2015-01-05' AS date) as SalesDate, 'Accessories' as Subcategory,
'Carrying Case' as Product, CAST(16996.60 AS money) AS Sales, 68 as Quantity
UNION SELECT CAST('2015-01-06' AS date) as SalesDate, 'Accessories' as Subcategory,
'Tripod' as Product, CAST(1350.00 AS money) AS Sales, 18 as Quantity
UNION SELECT CAST('2015-01-11' AS date) as SalesDate, 'Accessories' as Subcategory,
'Lens Adapter' as Product, CAST(1147.50 AS money) AS Sales, 17 as Quantity
UNION SELECT CAST('2015-01-05' AS date) as SalesDate, 'Accessories' as Subcategory,
'Mini Battery Charger' as Product, CAST(1056.00 AS money) AS Sales, 44 as Quantity
UNION SELECT CAST('2015-01-06' AS date) as SalesDate, 'Accessories' as Subcategory,
'Telephoto Conversion Lens' as Product, CAST(1380.00 AS money) AS Sales, 18 as Quantity
UNION SELECT CAST('2015-01-06' AS date) as SalesDate,'Accessories' as Subcategory,
'USB Cable' as Product, CAST(780.00 AS money) AS Sales, 26 as Quantity
UNION SELECT CAST('2015-01-08' AS date) as SalesDate, 'Accessories' as Subcategory,
'Budget Movie-Maker' as Product, CAST(3798.00 AS money) AS Sales, 9 as Quantity
UNION SELECT CAST('2015-01-09' AS date) as SalesDate, 'Camcorders' as Subcategory,
'Business Videographer' as Product, CAST(10400.00 AS money) AS Sales, 13 as Quantity
UNION SELECT CAST('2015-01-10' AS date) as SalesDate, 'Camcorders' as Subcategory,
'Social Videographer' as Product, CAST(3000.00 AS money) AS Sales, 60 as Quantity
UNION SELECT CAST('2015-01-11' AS date) as SalesDate, 'Digital' as Subcategory,
'Advanced Digital' as Product, CAST(7234.50 AS money) AS Sales, 39 as Quantity
UNION SELECT CAST('2015-01-07' AS date) as SalesDate, 'Digital' as Subcategory,
'Compact Digital' as Product, CAST(10836.00 AS money) AS Sales, 84 as Quantity
UNION SELECT CAST('2015-01-08' AS date) as SalesDate, 'Digital' as Subcategory,
'Consumer Digital' as Product, CAST(2550.00 AS money) AS Sales, 17 as Quantity
UNION SELECT CAST('2015-01-05' AS date) as SalesDate, 'Digital' as Subcategory,
'Slim Digital' as Product, CAST(8357.80 AS money) AS Sales, 44 as Quantity
UNION SELECT CAST('2015-01-09' AS date) as SalesDate, 'Digital SLR' as Subcategory,
'SLR Camera 35mm' as Product, CAST(18530.00 AS money) AS Sales, 34 as Quantity
UNION SELECT CAST('2015-01-07' AS date) as SalesDate, 'Digital SLR' as Subcategory,
'SLR Camera' as Product, CAST(26576.00 AS money) AS Sales, 88 as Quantity
5. (Optional) On the Home tab, in the Number group, click the Decrease Decimals button twice to
display dollar figures with no cents.
6. Click the cell that contains [SalesDate].
7. In the Number group > Date .
The cell displays the example date [1/31/2000].
8. Click Run to preview the report.
This changes the background color to "Lime" green for each cell with an aggregated sum for
[Sum(Sales)] greater than or equal to 5000. Values of [Sum(Sales)] between 2500 and 5000 are
"Yellow". Values less than 2500 are "Red".
3. Click OK .
4. Click Run to preview the report.
In the subtotal row that displays the sales for a subcategory, the background color of the cell is red, yellow, or
green depending on value of the sales sum.
4. Display a KPI by Using a Gauge
A gauge depicts a single value in a dataset. This tutorial uses a horizontal linear gauge because its shape and
simplicity make it easy to read, even in when it is small and within a table cell. For more information, see Gauges
(Report Builder and SSRS).
To display the present state of a KPI using a gauge
1. Switch back to Design view.
2. In the table, right-click the column handle for the Sales column > Inser t Column > Right . A new
column is added to the table.
8. In the Gauge Data pane, click the arrow next to LinearPointer1 > Pointer Proper ties .
9. In the Linear Pointer Proper ties dialog box > Pointer Options tab > Pointer Type , make sure Bar is
selected.
10. Click OK .
11. Right-click the scale in the gauge and click Scale Proper ties .
12. In the Linear Scale Proper ties dialog box > General tab, set Maximum to 25000.
NOTE
Instead of a constant such as 25000, you can use an expression to dynamically calculate the value of the
Maximum option. The expression would use the aggregate of aggregate feature and look similar to the
expression =Max(Sum(Fields!Sales.value), "Tablix1") .
NOTE
You might have to resize the column so the horizontal linear gauge fits into the cell. To resize the column, select
the table and drag the column handles. The report design surface resizes to fit the table.
NOTE
If you do not have access to a report server, click Desktop , My Documents , or My computer and save the report to
your computer.
Next Steps
You have successfully completed the Adding a KPI to Your Report tutorial. For more information, see:
Gauges
Indicators
See Also
Report Builder Tutorials
Report Builder in SQL Server
Tutorial: Map Report (Report Builder)
11/2/2020 • 19 minutes to read • Edit Online
In this Report Builder tutorial, you learn about map features you can use to display data on a geographic
background in an Reporting Services paginated report.
Maps are based on spatial data that typically consists of points, lines, and polygons. For example, a polygon can
represent the outline of a county, a line can represent a road, and a point can represent the location of a city.
Each type of spatial data is displayed on a separate map layer as a set of map elements.
To vary the appearance of map elements, you specify a field that has values that match the map elements with
analytical data from a dataset. You can also define rules that vary color, size, or other properties based on ranges
of data.
In this tutorial, you build a map report that displays store locations in New York state counties.
NOTE
In this tutorial, the steps for the wizard are consolidated into two procedures: one to create the dataset and one to create
a table. For step-by-step instructions about how to browse to a report server, choose a data source, create a dataset, and
run the wizard, see the first tutorial in this series: Tutorial: Creating a Basic Table Report (Report Builder).
Requirements
For this tutorial, the report server must be configured to support Bing maps as a background. For more
information, see Plan for Map Report Support.
For information about other requirements, see Prerequisites for Tutorials (Report Builder).
1. Create a Map with a Polygon Layer from the Map Wizard
In this section, you add a map to your report from the map gallery. The map has one layer that displays the
counties in New York state. The shape of each county is a polygon based on spatial data that is embedded in the
map from the map gallery.
To add a map with the map wizard in a new report
1. Start Report Builder either from your computer, the Reporting Services web portal, or SharePoint
integrated mode.
The New Repor t or Dataset dialog box opens.
If you don't see the New Repor t or Dataset dialog box, on the File menu > New .
2. In the left pane, verify that New Repor t is selected.
3. In the right pane, click Map Wizard .
4. On the Choose a source of spatial data page, verify that Map galler y is selected.
5. In the Map Gallery box, expand States by County under USA , and click New York .
The Map Preview pane displays the New York county map.
6. Click Next .
7. On the Choose spatial data and map view options page, accept the defaults and click Next .
By default, map elements from a map gallery are automatically embedded in the report definition.
8. On the Choose map visualization page, verify Basic Map is selected, and click Next .
9. On the Choose color theme and data visualization page, select the Display labels option.
10. If it is selected, clear the Single color map option.
11. From the Data field drop-down list, click #COUNTYNAME . The Map Preview pane in the wizard
displays the following items:
A title with the text Map Title .
A map that displays counties in New York where each county is a different color and the county
name appears wherever it fits over the county area.
A legend that contains a title and a list of items 1 through 5.
A color scale that contains values 0 to 160 and no color.
A distance scale that displays kilometers (km) and miles (mi).
NOTE
If you don't see the Map Layers pane, it might be displayed outside your current view. Use the scroll bar at the
bottom of the Design view window to change your view. Alternatively, in the View tab, clear the Repor t Data
option to provide more design surface area.
15. Select the arrow next to PolygonLayer1 > Polygon proper ties .
16. On the Font tab, change the color to Dim Gray .
17. On the Home tab > Run to preview the report.
The rendered report displays the map title, the map, and the distance scale. The counties are on a map polygon
layer. Each county is a polygon that varies by color from a color palette, but the colors are not associated with
any data. The distance scale displays distances in both kilometers and miles.
The map legend and color scale do not yet appear because there is no analytical data associated with each
county. You will add analytical data later in this tutorial.
NOTE
In this tutorial, the query contains the data values, so it does not need an external data source. This makes the query
quite long. In a business environment, a query would not contain the data. This is for learning purposes only.
3. On the Choose a source of spatial data page, select SQL Ser ver spatial quer y , and click Next .
4. On the Choose a dataset with SQL Ser ver spatial data page, click Add a new dataset with SQL
Ser ver spatial data > Next .
5. On the Choose a connection to a SQL Ser ver spatial data source page, select an existing data
source or browse to the report server and select a data source.
NOTE
The data source you choose is unimportant, as long as you have adequate permissions. You will not be getting
data from the data source. For more information, see Alternative Ways to Get a Data Connection (Report Builder).
6. Click Next .
7. On the Design a Quer y page, click Edit as Text .
8. Copy the following text and paste it in the query pane:
Select 114 as StoreKey, 'Contoso Albany Store' as StoreName, 1125 as SellingArea, 'Albany' as City,
'Albany' as County,
CAST(1000000 as money) as Sales, CAST('POINT(-73.7472924218681 42.6564617079878)' as geography) AS
SpatialLocation
UNION ALL SELECT 115 AS StoreKey, 'Contoso New York No.1 Store' AS StoreName, 500 as SellingArea,
'New York' AS City, 'New York City' as County,
CAST('2000000' as money) as Sales, CAST('POINT(-73.9922069374483 40.7549638237402)' as geography) AS
SpatialLocation
UNION ALL Select 116 as StoreKey, 'Contoso Rochester No.1 Store' as StoreName, 462 as SellingArea,
'Rochester' as City, 'Monroe' as County,
CAST(3000000 as money) as Sales, CAST('POINT(-77.624041566786 43.1547066024338)' as geography) AS
SpatialLocation
UNION ALL Select 117 as StoreKey, 'Contoso New York No.2 Store' as StoreName, 700 as SellingArea,
'New York' as City,'New York City' as County,
CAST(4000000 as money) as Sales, CAST('POINT(-73.9712488 40.7830603)' as geography) AS
SpatialLocation
UNION ALL Select 118 as StoreKey, 'Contoso Syracuse Store' as StoreName, 680 as SellingArea,
'Syracuse' as City, 'Onondaga' as County,
CAST(5000000 as money) as Sales, CAST('POINT(-76.1349120532546 43.0610223535974)' as geography) AS
SpatialLocation
UNION ALL Select 120 as StoreKey, 'Contoso Plattsburgh Store' as StoreName, 560 as SellingArea,
'Plattsburgh' as City, 'Clinton' as County,
CAST(6000000 as money) as Sales, CAST('POINT(-73.4728622833178 44.7028831413324)' as geography) AS
SpatialLocation
UNION ALL Select 121 as StoreKey, 'Contoso Brooklyn Store' as StoreName, 1125 as SellingArea,
'Brooklyn' as City, 'New York City' as County,
CAST(7000000 as money) as Sales, CAST('POINT (-73.9638533447143 40.6785123489351)' as geography) AS
SpatialLocation
UNION ALL Select 122 as StoreKey, 'Contoso Oswego Store' as StoreName, 500 as SellingArea, 'Oswego'
as City, 'Oswego' as County,
CAST(8000000 as money) as Sales, CAST('POINT(-76.4602850815536 43.4353224527794)' as geography) AS
SpatialLocation
UNION ALL Select 123 as StoreKey, 'Contoso Ithaca Store' as StoreName, 460 as SellingArea, 'Ithaca'
as City, 'Tompkins' as County,
CAST(9000000 as money) as Sales, CAST('POINT(-76.5001866085881 42.4310489934743)' as geography) AS
SpatialLocation
UNION ALL Select 124 as StoreKey, 'Contoso Buffalo Store' as StoreName, 700 as SellingArea, 'Buffalo'
as City, 'Erie' as County,
CAST(100000 as money) as Sales, CAST('POINT(-78.8784 42.8864)' as geography) AS SpatialLocation
UNION ALL Select 125 as StoreKey, 'Contoso Queens Store' as StoreName, 700 as SellingArea,'Queens' as
City, 'New York City' as County,
CAST(500000 as money) as Sales, CAST('POINT(-73.7930979029883 40.7152781765927)' as geography) AS
SpatialLocation
UNION ALL Select 126 as StoreKey, 'Contoso Elmira Store' as StoreName, 680 as SellingArea, 'Elmira'
as City, 'Chemung' as County,
CAST(800000 as money) as Sales, CAST('POINT(-76.7397414783301 42.0736492742663)' as geography) AS
SpatialLocation
UNION ALL Select 127 as StoreKey, 'Contoso Poestenkill Store' as StoreName, 455 as SellingArea,
'Poestenkill' as City, 'Rensselaer' as County,
CAST(1500000 as money) as Sales, CAST('POINT(-73.5626737425063 42.6940551238618)' as geography) AS
SpatialLocation
The map displays the locations of stores in New York state. The marker size for each store is based on the
display area. Five ranges of display area were automatically calculated for you.
9. Click Next .
A path appears on the map that connects three stores.
10. On the Choose spatial data and map view options page, verify that the Spatial field is Route and
that the Layer type is Line . Accept the other defaults.
The map view displays a path from a store in the northern part of New York state to a store in the
southern part of New York state.
11. Click Next .
12. On the Choose map visualization page, click Basic Line Map , and then click Next .
13. On the Choose color theme and data visualization , select the option Single color map . The path
appears as a single color based on the selected theme.
14. Click Finish .
The map displays a new line layer with spatial data source type DataRegion . In this example, the spatial
data comes from a dataset but no analytical data is associated with the line.
Adjust the Zoom
1. If you can't see the whole state of New York, you can adjust the zoom. With the map selected, in the
Properties pane you see MapViewpor t properties.
2. Expand the View section, then expand View so you can see the Zoom property. Set it to 125 .
This is the zoom percentage. At 125% you should see the whole state.
NOTE
In the wizard, you can also add a tile layer on the Choose spatial data and map view options page. To do
this, select Add a Bing Maps background for this map view . In a rendered report, the tile background
displays Bing Maps tiles for the current map viewport center and zoom level.
8. Click OK .
9. Preview the report.
By specifying a match field from the spatial data source and from the analytical dataset, you enable the report
processor to group analytical data based on the map elements. A data-bound map element has a successful
match for the values that you specified.
Each county that contains a store has a color that is based on the color palette for the style that you chose in the
wizard. The other counties are gray.
6b. Specify Color Rules for Polygons
To create a rule that varies the color of each county based store sales, you must specify the range values, the
number of divisions within that range that you want to display, and the colors to use.
To specify color rules for all polygons that have associated data
1. Switch to Design view.
2. Click the arrow next to PolygonLayer1, then click Polygon Color Rule . The Map Color Rules
Proper ties dialog box opens. Notice that the color rule option Visualize data by using color palette
is selected. This option was set by the wizard.
3. Select Visualize data by using color ranges . The palette option is replaced by start color, middle color,
and end color options.
4. Define range values for sales per county. In Data field , from the drop-down list, select [Sum(Sales)] .
5. To change the format to display currency in thousands, change the expression to the following:
=Sum(Fields!Sales.Value)/1000
8. Click Distribution .
9. Verify that the distribution type is Optimal . For the expression from step 5, optimal distribution divides
the values into subranges that balance the number of items in each range and the span for each range.
10. Accept the default values for other options on this page. When you select the optimal distribution type,
the number of subranges are calculated when the report runs.
11. Click Legend .
12. In Color scale options , verify that Show in color scale is selected.
13. In Show in this legend , from the drop-down list, select the blank line. For now, you will show the color
ranges only in the color scale.
14. Click OK .
15. Preview the report.
The color scale displays four colors: red, orange, yellow, and green. Each color represents a sales range
that is automatically calculated based on the sales by county.
6c. Format the Data in the Color Scale as Currency
By default, data has a general format. In this section, you apply custom formats.
1. Switch to Design view.
2. Select the color scale. On the Home tab > Number section, , click Currency .
3. Still in the Number section, click the Decrease Decimal button two times.
The color scale displays annual sales in currency format for each range.
6d. Add a Legend Title
1. With the color scale still selected, in the Properties pane you see properties for MapColorScale .
2. Expand the Title section, and in the Caption property, type Sales (Thousands) .
3. Change the TextColor property to White .
4. Preview the report.
The counties that have associated stores and sales display according to the color rules. Counties that have no
sales have no color.
6f. Change Color for Counties with No Data
You can set the default display options for all map elements on a layer. Color rules take precedence over these
display options.
To set the display properties for all elements on a layer
1. Switch to Design view.
2. Double-click the map to display the Map Layer pane.
3. Click the down arrow on PolygonLayer1, and then click Polygon Proper ties .
The Map Polygon Proper ties dialog box opens. Display options set in this dialog box apply to all
polygons on the layer before rule-based display options are applied.
4. On the Fill tab, verify that the fill style is Solid. Gradients and patterns apply to all colors.
5. In Color , select Light Steel Blue .
6. Click OK .
7. Preview the report.
Counties with no associated data display as gray-blue. Only counties with associated analytical data have the
Red through Green colors from the color rules that you specified.
6. Right-click the point you added, and then click Embedded Point Proper ties .
7. Select Override point options for this layer . Additional pages appear in the dialog box. Values that
you set here take precedence over display options for the layer or for color rules.
Next Steps
This concludes the walkthrough for how to add a map to your report.
For more information, see Maps (Report Builder and SSRS).
See Also
Report Builder tutorials
Report Builder in SQL Server
Map Wizard and Map Layer Wizard (Report Builder and SSRS)
Vary Polygon, Line, and Point Display by Rules and Analytical Data (Report Builder and SSRS)
Tutorial: Add a Parameter to Your Report (Report
Builder)
11/2/2020 • 15 minutes to read • Edit Online
In this tutorial, you add a parameter to a Reporting Services paginated report so report readers can filter report
data for one or more values.
Report parameters are created automatically for each query parameter that you include in a dataset query. The
parameter data type determines how it appears on the report view toolbar.
NOTE
In this tutorial, the steps for the wizard are consolidated into one procedure. For step-by-step instructions about how to
browse to a report server, choose a data source, and create a dataset, see the first tutorial in this series: Tutorial: Creating
a Basic Table Report (Report Builder).
Requirements
For information about requirements, see Prerequisites for Tutorials (Report Builder).
This query combines the results of several Transact-SQL SELECT statements inside a common table
expression to specify values that are based on simplified sales data for cameras from the Contoso sample
database. The subcategories are digital cameras, digital single lens reflex (SLR) cameras, camcorders, and
accessories.
9. On the query designer toolbar, click Run (! ) to see the data.
The result set consists of 11 rows of data that show the quantity of items sold for each subcategory for
four stores, in the following columns: StoreID, Subcategory, Quantity.The store name is not part of the
result set. Later in this tutorial, you will look up the name of the store that corresponds to the store
identifier from a separate dataset.
This query does not contain query parameters. You will add query parameters later in this tutorial.
10. Click Next .
8. Click in the matrix, hover over the edge of the first column, grab the handle, and expand the column
width.
The WHERE clause limits the retrieved data to the store identifier that is specified by the query
parameter @StoreID.
4. On the query designer toolbar, click Run (! ). The Define Quer y Parameters dialog box opens and
prompts for a value for the query parameter @StoreID.
5. In Parameter Value , type 200 .
6. Click OK .
The result set displays the quantities sold for Accessories, Camcorders, and Digital SLR Cameras for the
store identifier 200 .
7. Click OK .
8. In the Report Data pane, expand the Parameters folder.
Note there is now a report parameter named @StoreID, and a Parameters pane where you can lay out the
report parameters.
Don't see a Parameters pane? On the View menu, select Parameters .
8. Click OK .
The Report Data pane displays the fields StoreID and StoreName under the Stores dataset node.
=Lookup(Fields!StoreID.Value,Fields!StoreID.Value,Fields!StoreName.Value,"Stores")
The Lookup function takes the value for StoreID, looks it up in the "Stores" dataset, and returns the
StoreName value.
7. Click OK .
The store column header contains the display text for a complex expression: Expr .
8. Preview the report.
The column header at the top of each column displays the store name instead of the store identifier.
4. To display the parameter label, click in the text box until the insert cursor appears after the existing
expression, type a space, and then drag another copy of the parameter from the Report Data pane to the
text box. The text box displays [@StoreID] [@StoreID] .
5. Right-click the first [@StoreID] and click Expression . The Expression dialog box opens. Replace the text
Value with Label .
6. Click OK .
The text displays: [@StoreID.Label] [@StoreID] .
7. Preview the report.
This expression concatenates all store names that the user selected, separated by a comma and a space.
14. Click OK .
15. Click in the text box in front of the expression that you just created, and then type the following:
Parameter Values Selected:
16. Preview the report.
17. Click the drop-down list next to Store Name?
Each valid value appears next to a check box.
18. Click Select All , and then click View Repor t .
The report displays the quantity sold for all subcategories for all stores.
19. From the drop-down list, click Select All to clear the list, click "Contoso Catalog Store" and "Contoso Asia
Online Store", and then click View Repor t .
The text box Visibility option is controlled by the property Hidden. Apply the Not operator so that when
the parameter is selected, the Hidden property is false, and the text box will be displayed.
5. Click OK .
6. Click OK .
7. Preview the report.
The text box that displays the parameter choices in the footer does not appear.
8. In the report viewer toolbar, next to Show selections , click True > View Repor t .
The text box in the page footer appears, showing all the store names you selected.
Next Steps
This concludes the walkthrough for how to add a parameter to your report. To learn more about parameters, see
Report Parameters (Report Builder and Report Designer).
See Also
Report Builder Tutorials
Report Builder in SQL Server
Lookup Function
Tutorial: Creating Drillthrough and Main Reports
(Report Builder)
3/5/2021 • 21 minutes to read • Edit Online
This tutorial teaches you how to create two kinds of Reporting Services paginated reports: a drillthrough report
and a main report. The sample sales data used in these reports is retrieved from an Analysis Services cube.
The following illustration shows the reports you will create, and shows how the field value, Games and Toys, in
the main report displays in the drillthrough report's title. The data in the drillthrough report pertains to the
Games and Toys product category.
Requirements
This tutorial requires access to the Contoso Sales cube for both the drillthrough and the main reports. This
dataset comprises the ContosoDW data warehouse and the Contoso_Retail online analytical processing (OLAP)
database. The reports you will create in this tutorial retrieve report data from the Contoso Sales cube. The
Contoso_Retail OLAP database can be downloaded from Microsoft Download Center. You need only download
the file ContosoBIdemoABF.exe. It contains the OLAP database.
The other file, ContosoBIdemoBAK.exe, is for the ContosoDW data warehouse, which is not used in this tutorial.
The Web site includes instructions extracting and restoring the ContosoRetail.abf backup file to the
Contoso_Retail OLAP database.
You must have access to an instance of Analysis Services on which to install the OLAP database.
For more about general requirements, see Prerequisites for Tutorials (Report Builder).
The <servername> is the name of an instance of SQL Server with Analysis Services installed.
10. Click Credentials type .
NOTE
Depending on how permissions are configured on the data source, you might need to change the default
authentication options. For more information, see Security (Report Builder).
11. Click OK .
The Choose a connection to a data source page appears.
12. To verify that you can connect to the data source, click Test Connection .
The message Connection created successfully appears.
13. Click OK .
14. Click Next .
TIP
If you do not want to build the MDX query manually, click the icon, toggle the query designer to Query mode,
paste the completed MDX to the query designer, and then proceed to step 6 in To create the dataset.
SELECT NON EMPTY { [Measures].[Sales Amount], [Measures].[Sales Return Amount] } ON COLUMNS, NON
EMPTY { ([Channel].[Channel Name].[Channel Name].ALLMEMBERS * [Product].[Product Category Name].
[Product Category Name].ALLMEMBERS * [Product].[Product Subcategory Name].[Product Subcategory
Name].ALLMEMBERS ) } DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME ON ROWS FROM ( SELECT (
{ [Date].[Calendar Year].&[2009] } ) ON COLUMNS FROM ( SELECT ( { [Sales Territory].[Sales Territory
Group].&[North America] } ) ON COLUMNS FROM ( SELECT ( STRTOSET(\@ProductProductCategoryName,
CONSTRAINED) ) ON COLUMNS FROM ( SELECT ( { [Channel].[Channel Name].&[2], [Channel].[Channel Name].&
[4] } ) ON COLUMNS FROM [Sales])))) WHERE ( [Sales Territory].[Sales Territory Group].&[North
America], [Date].[Calendar Year].&[2009] ) CELL PROPERTIES VALUE, BACK_COLOR, FORE_COLOR,
FORMATTED_VALUE, FORMAT_STRING, FONT_NAME, FONT_SIZE, FONT_FLAGS
3. In the Measure Group pane, expand Channel, and then drag Channel Name to the Hierarchy column in
the filter pane.
The dimension name, Channel, is automatically added to the Dimension column. Do not change the
Dimension or Operator columns.
4. To open the Filter Expression list, click the down arrow in the Filter Expression column.
5. In the filter expression list, expand All Channel , click Online , click Reseller , and then click OK .
The query now includes a filter to include only these channels: Online and Reseller.
6. Expand the Sales Territory dimension, and then drag Sales Territory Group to the Hierarchy column
(below Channel Name ).
7. Open the Filter Expression list, expand All Sales Territor y , click Nor th America , and then click OK .
The query now has a filter to include only sales in North America.
8. In the Measure Group pane, expand Date, and then drag Calendar Year to the Hierarchy column in the
filter pane.
The dimension name, Date, is automatically added to the Dimension column. Do not change the
Dimension or Operator columns.
9. To open the Filter Expression list, click the down arrow in the Filter Expression column.
10. In the filter expression list, expand All Date , click Year 2009 , and then click OK .
The query now includes a filter to include only the calendar year 2009.
To create the parameter
1. Expand the Product dimension, and then drag the Product Category Name member to the Hierarchy
column below Calendar Year .
2. Open the Filter Expression list, click All Products , and then click OK .
3. Click the Parameter checkbox. The query now includes the parameter ProductProductCategoryName.
NOTE
The parameter contains the names of product categories. When you click a product category name in the main
report, its name is passed to the drillthrough report by using this parameter.
NOTE
The spaces in the names are replaced with underscores (_). For example Product Category Name is
Product_Category_Name.
3. Drag Channel_Name to Column groups .
4. Drag Sales_Amount to Values .
Sales_Amount is automatically aggregated by the Sum function, the default aggregate for numeric fields.
The value is [Sum(Sales_Amount)] .
To view the other aggregate functions available, open the drop-down list (do not change the aggregate
function).
5. Drag Sales_Return_Amount to Values , and then place it below [Sum(Sales_Amount)] .
Steps 4 and 5 specify the data to display in the matrix.
6. Click Next .
=First(Fields!Product_Category_Name.Value, "DataSet1")
NOTE
Because the parameter is hidden, this prompt is never used.
5. Optionally, click Available Values and Default Values and review their options. Do not change any
options on these tabs.
6. Click OK .
NOTE
If you are resaving a report, it is automatically resaved to its previous location. To change the location, use the
Save As option.
2. To show a list of recently used report servers and SharePoint sites, click Recent Sites and Ser vers .
3. Select or type the name of the SharePoint site where you have permission to save reports.
The URL of the SharePoint library has the following syntax:
Http://<ServerName>/<Sites>/
4. Click Save .
Recent Sites and Ser vers lists the libraries on the SharePoint site.
5. Navigate to the library where you will save the report.
6. In the Name box, replace the default name with ResellerVSOnlineDrillthrough .
NOTE
You will save the main report to the same location. If you want to save the main and drillthrough reports to
different sites or libraries, you must update the path of the Go to repor t action in the main report.
7. Click Save .
1. Create the Main Report from the Table or Matrix Wizard
From the Getting Star ted dialog box, create a matrix report by using the Table or Matrix Wizard .
To create the main report
1. Start Report Builder either from your computer, the Reporting Services web portal, or SharePoint
integrated mode.
The New Repor t or Dataset dialog box opens.
If you don't see the New Repor t or Dataset dialog box, on the File menu > New .
2. In the Getting Star ted dialog box, verify that New Repor t is selected, and then click Table or Matrix
Wizard .
TIP
If you do not want to build the MDX query manually, click the icon, toggle the query designer to Query mode,
paste the completed MDX to the query designer, and then proceed to step 5 in To create the dataset.
3. In the Measure Group pane, expand Channel, and then drag Channel Name to the Hierarchy column in
the filter pane.
The dimension name, Channel, is automatically added to the Dimension column. Do not change the
Dimension or Operator columns.
4. To open the Filter Expression list, click the down arrow in the Filter Expression column.
5. In the filter expression list, expand All Channel , click Online and Reseller , and then click OK .
The query now includes a filter to include only these channels: Online and Reseller.
6. Expand the Sales Territory dimension, and then drag Sales Territory Group to the Hierarchy column,
below Channel Name .
7. Open the Filter Expression list, expand All Sales Territor y , click Nor th America , and then click OK .
The query now has a filter to include only sales in North America.
8. In the Measure Group pane, expand Date, and drag Calendar Year to the Hierarchy column in the filter
pane.
The dimension name, Date, is automatically added to the Dimension column. Do not change the
Dimension or Operator columns.
9. To open the Filter Expression list, click the down arrow in the Filter Expression column.
10. In the filter expression list, expand All Date , click Year 2009 , and then click OK .
The query now includes a filter to include only the calendar year 2009.
To create the parameter
1. Expand the Product dimension, and then drag the Product Category Name member to the Hierarchy
column below Sales Territor y Group .
2. Open the Filter Expression list, click All Products , and then click OK .
3. Click the Parameter checkbox. The query now includes the parameter ProductProductCategoryName.
To create calculated members
1. Place the cursor inside the Calculated Members pane, right-click, and then click New Calculated
Member .
2. In the Metadata pane, expand Measures and then expand Sales.
3. Drag the Sales Quantity measure to the Expression box, type the subtraction character (-), and then drag
the Sales Return Quantity measure to the Expression box; place it after the subtraction character.
The following code shows the expression:
8. In the Name box, type Net Sales , and then click OK .The Calculated Members pane lists the Net Sales
calculated member.
To create the dataset
1. From the Channel dimension, drag Channel Name to the data pane.
2. From the Product dimension, drag Product Category Name to the data pane, and then place it to the right
of Channel Name.
3. From Calculated Members , drag Net QTY to the data pane, and then place it to the right of Product
Category Name.
4. From Calculated Members, drag Net Sales to the data pane, and then place it to the right of Net QTY .
5. On the query designer toolbar, click Run (!) .
Review the query result set.
6. Click Next .
IMPORTANT
You must include the UniqueName property because the drillthrough action requires a unique value.
9. Click OK .
To format the drillthrough field
1. Right-click the cell that contains the Product_Category_Name , and then click Text Box Proper ties .
2. Click the Font tab.
3. In the Effects list, select Underline .
4. In the Color list, select Blue .
5. Click OK .
6. To preview your report, click Run .
The product category names are in the common link format (blue and underlined).
3. On the ribbon, click the Indicator icon, and then click inside the rectangle. The Select Indicator Type
dialog box opens with the Directional indicator selected.
4. Click the 3 Signs type, and then click OK .
5. Right-click the indicator and in the Gauge Data pane, click the down arrow next to (Unspecified) . Select
Net_QTY .
6. Repeat steps 2 through 5 for the [Sum(Net QTY)] cell in the [Product_Category_Name] row group within
Total .
To add an indicator for Net Sales values
1. On the ribbon, click the Rectangle icon, and then click inside the [Sum(Net_Sales)] cell in the
[Product_Category_Name] row group in the Channel_Name column group.
2. On the ribbon, click the Indicator icon, and then click inside the rectangle.
3. Click the 3 Signs type, and then click OK .
4. Right-click the indicator and in the Gauge Data pane, click the down arrow next to (Unspecified) . Select
Net_Sales .
5. Repeat steps 1 through 4 for the [Sum(Net_Sales)] cell in the [Product_Category_Name] row group within
Total .
6. To preview your report, click Run .
Http://<ServerName>/<Sites>/
7. Click Save .
See Also
Report Builder tutorials
Tutorial: Introducing Expressions
3/5/2021 • 18 minutes to read • Edit Online
In this Report Builder tutorial, you use expressions with common functions and operators to create powerful and
flexible Reporting Services paginated reports.
You will write expressions that concatenate name values, look up values in a separate dataset, display different
colors based on field values, and so on.
The report is a banded report with alternating rows in white and a color. The report includes a parameter for
selecting the color of the non-white rows.
This illustration shows a report similar to the one you will create.
Requirements
For information about requirements, see Prerequisites for Tutorials (Report Builder).
1. Create a Table Report and Dataset from the Table or Matrix Wizard
In this section, you create a table report, a data source, and a dataset. When you lay out the table, you will
include only a few fields. After you complete the wizard you will manually add columns. The wizard makes it
easy to lay out the table.
NOTE
In this tutorial, the query contains the data values, so it does not need an external data source. This makes the query
quite long. In a business environment, a query would not contain the data. This is for learning purposes only.
NOTE
The data source you choose isn't important, as long as you have adequate permissions. You will not be getting
data from the data source. For more information, see Alternative Ways to Get a Data Connection (Report Builder).
6. Click Next .
7. On the Design a quer y page, click Edit as Text .
8. Paste the following query into the query pane:
9. On the query designer toolbar, click Run (! ). The result set displays 23 rows of data in the following
columns: FirstName, LastName, StateProvince, CountryRegionID, Gender, YTDPurchase, and LastPurchase.
(optional) Format the Date and Currency Columns and Header Row
In this section, you format the Last Purchase column, which contains dates, and the YTDPurchase column,
which contains currency. You also format the header row.
To format the date column
1. Click Design to return to design view.
2. Select the data cell in the Last Purchase column, and on the Home tab > Number section, select Date .
3. Also in the Number section, click the arrow next to Placeholder Styles and select Sample Values .
2. Drag the column divider between the M/F and the Name to make the M/F column narrower.
14. Click OK , then click OK again to close the Rectangle Proper ties dialog box.
15. Click Run to preview the report.
To format the color rectangles
1. Click Design to return to design view.
2. Select the rectangle in the M/F column. In the Properties pane, in the Border section, set these properties:
BorderColor = White
BorderStyle = Solid
BorderWidth = 5pt
3. Click Run to preview the report again. This time the color blocks have white space around them.
5. Look Up the CountryRegion Name
In this section, you create the CountryRegion dataset and use the Lookup function to display the name of a
country/region instead of the identifier of the country/region.
To create the CountryRegion dataset
1. Click Design to return to design view.
2. In the Report Data pane, click New and then click Dataset .
3. In Dataset Proper ties , click Use a dataset embedded in my repor t .
4. In the Data source list, select ExpressionsDataSource.
5. In the Name box, type Countr yRegion
6. Verify that the Text query type is selected and click Quer y Designer .
7. Click Edit as Text .
8. Copy and paste the following query into the query pane:
SELECT 1 AS ID, 'American Samoa' AS CountryRegion
UNION SELECT 2 AS CountryRegionID, 'Australia' AS CountryRegion
UNION SELECT 3 AS ID, 'Canada' AS CountryRegion
UNION SELECT 4 AS ID, 'Germany' AS CountryRegion
UNION SELECT 5 AS ID, 'Micronesia' AS CountryRegion
UNION SELECT 6 AS ID, 'France' AS CountryRegion
UNION SELECT 7 AS ID, 'United States' AS CountryRegion
UNION SELECT 8 AS ID, 'Brazil' AS CountryRegion
UNION SELECT 9 AS ID, 'Mexico' AS CountryRegion
UNION SELECT 10 AS ID, 'Japan' AS CountryRegion
UNION SELECT 10 AS ID, 'Australia' AS CountryRegion
UNION SELECT 12 AS ID, 'United Kingdom' AS CountryRegion
4. In the Expression dialog box, expand Common Functions and click Miscellaneous , and in the Item
list, double-click Lookup .
5. In the Categor y list, click Fields (Expressions) , and in the Values list, double-click Countr yRegionID .
6. Place the cursor immediately after CountryRegionID.Value , and type ,Fields!ID.value,
Fields!Countr yRegion.value, "Countr yRegion")
The completed expression:
=Lookup(Fields!CountryRegionID.Value,Fields!ID.value, Fields!CountryRegion.value, "CountryRegion")
The syntax of the Lookup function specifies a lookup between CountryRegionID in the Expressions
dataset and ID in the CountryRegion dataset that returns the CountryRegion value from the
CountryRegion dataset.
7. Click OK .
8. Click Run to preview the report.
WARNING
In production reports you should not use the Now function in expressions that are evaluated multiple times as
the report renders (for example, in the detail rows of a report). The value of Now changes from row to row and
the different values affect the evaluation results of expressions, which leads to results that are subtly inconsistent.
Instead, use the ExecutionTime global variable that Reporting Services provides.
11. Delete the left parenthesis after Now( , and then type a right parenthesis )
The completed expression is: =DateDiff("d", Fields!LastPurchase.Value, Now)
12. Click OK .
13. Click Run to preview the report.
3. Click OK .
To configure the indicator
1. Right-click the indicator, click Indicator Proper ties , and then click Value and States .
2. Click the expression fx button next to the Value text box.
3. In the Expression dialog box, expand Common Functions , and then click Math .
4. In the Item list, double-click Round .
5. In the Categor y list, click Fields (Expressions) , and in the Values list, double-click YTDPurchase .
6. Immediately after Fields!YTDPurchase.Value , type - (a minus sign).
7. Expand Common Functions again, click Aggregate , and in the Item list, double-click Avg .
8. In the Categor y list, click Fields (Expressions) , and in the Values list, double-click YTDPurchase .
9. Immediately after Fields!YTDPurchase.Value , type , "Expressions"))
The completed expression is:
=Round(Fields!YTDPurchase.Value - Avg(Fields!YTDPurchase.Value, "Expressions"))
10. Click OK .
11. In the States Measurement Unit box, select Numeric .
12. In the row with the down-pointing arrow, click the fx button to the right of the text box for the Star t
value.
13. In the Expression dialog box, expand Common Functions , and then click Math .
14. In the Item list, double-click Round .
15. In the Categor y list, click Fields (Expressions) , and in the Values list, double-click YTDPurchase .
16. Immediately after Fields!YTDPurchase.Value , type - (a minus sign).
17. Expand Common Functions again and click Aggregate , and in the Item list, double-click Avg .
18. In the Categor y list, click Fields (Expressions) , and in the Values list, double-click YTDPurchase .
19. Immediately after Fields!YTDPurchase.Value , type , "Expressions")) < 0
The completed expression:
=Round(Fields!YTDPurchase.Value - Avg(Fields!YTDPurchase.Value, "Expressions")) < 0
20. Click OK .
21. In the text box for the End value, type 0
22. Click the row with the horizontal-pointing arrow and click Delete .
26. Click OK .
27. Click OK again to close the Indicator proper ties dialog box.
28. Click Run to preview the report.
18. Click OK .
To apply alternating colors to detail rows
1. Select all the cell in the data row except the cell in the M/F column, which has its own background color.
10. Click OK .
Run the Report
1. On the Home tab, click Run .
Now when you run the report, you don't see the report until you choose a color for the non-white bands.
2. In the Choose color list, select a color for the non-white bands in the report.
3. Click View Repor t .
The report renders and alternating rows have the background that you chose.
See Also
Expressions (Report Builder and SSRS)
Expression Examples (Report Builder and SSRS)
Indicators (Report Builder and SSRS)
Images, Text Boxes, Rectangles, and Lines (Report Builder and SSRS)
Tables (Report Builder and SSRS)
Report Datasets (SSRS)
Analysis and reporting with Microsoft business
intelligence (BI) tools
3/5/2021 • 2 minutes to read • Edit Online
Choosing the right business intelligence tool can be overwhelming. Learn about the different Microsoft
offerings and find the one that best fits your needs.
The following table maps workloads for data analysis and reporting to the Microsoft BI tools that are best suited
for those workloads. For more information about a product, click the product link in the table.
If you're looking for a brief overview of these tools to help you decide which tools are right for you, see
Introducing Microsoft Business Intelligence (BI) Tools.
NOTE
Reporting Services integration with SharePoint is no longer available after SQL Server 2016.
SH A REP O IN T
SH A REP O IN T O N L IN E- P O W ER B I- SQ L SERVER-
EXC EL - B A SED - B A SED B A SED B A SED B A SED
W O RK LO A DS USER B I TO O L B I TO O L B I TO O L B I TO O L B I TO O L
Power BI
mobile app
on iOS
devices
Power BI
mobile app
on Android
devices
Power BI
mobile app
for Windows
10
Corporate IT Pro
BI
PerformanceP
oint Services
Create *Reporting
operational Services
reports
Create Power BI
custom and Embedded
embedded
reports
SQL Server R
Services
Browser Support for Reporting Services and Power
View
8/30/2021 • 3 minutes to read • Edit Online
APPLIES TO: ✔
️ SQL Server 2016 Reporting Services and later ✔
️ Power BI Report Server
Learn about what browser versions are supported for managing and viewing SQL Server Reporting Services,
the ReportViewer Controls and Power View.
NOTE
Reporting Services integration with SharePoint is no longer available after SQL Server 2016.
NOTE
Support for the Microsoft Edge Legacy browser stopped beginning March 9, 2021, and support for Microsoft Internet
Explorer 11 stopped beginning August 17, 2021.
Microsoft Edge (+) Negotiate, NTLM, Basic Negotiate Yes. The default
authentication settings
work with Edge.
Google Chrome (+) Negotiate, NTLM, Basic Negotiate Yes. The default
authentication settings
work with Chrome.
NOTE
The report toolbar is part of the HTML Viewer component. By default the toolbar appears at the top of every report that
is rendered in a browser window. The report viewer provides features include the ability to search the report for
information, scroll to a specific page, and adjust the page size for viewing purposes. For more information about the
report toolbar or HTML Viewer, see HTML Viewer and the Report Toolbar.
Next steps
Finding and Viewing Reports in the web portal
Reporting Services Tools
Web portal (SSRS Native Mode)
HTML Viewer and the Report Toolbar
URL Access Parameter Reference
More questions? Try asking the Reporting Services forum
Plan for report design and report deployment |
Reporting Services
3/5/2021 • 4 minutes to read • Edit Online
SQL Server Reporting Services provides several approaches for authoring and deploying paginated reports.
Learn how to plan a report authoring and report server environment that work together.
This topic is an overview of report definition support by Reporting Services components. A report definition is
an XML file that is written in the Report Definition Language (RDL) or the Report Definition Language for Clients
(RDLC). Each report definition conforms to a specific schema version that is listed at the beginning of the file.
RDL files are authored in Report Designer in SQL Server Data Tools - Business Intelligence projects, and in
Report Builder. RDLC files are authored by using the ReportViewer controls that are included in Visual Studio.
A B B REVIAT IO N SC H EM A VERSIO N
2005 RDLC
For more information on RDL and RDL schemas, see the following:
Microsoft SQL Server XML Schemas
Report Definition Language Specifications
Report Definition Language (SSRS)
For more information about ReportViewer controls, see ReportViewer Controls (Visual Studio).
2010 RDL
2008 RDL
2005 RDL
2000 RDL
Or 2008 RDL
Or 2000 RDL
2005 RDL
2000 RDL
When you upload a report definition to the report server or upgrade a report server that contains existing
reports, the report server preserves the report definition in the original format. On first use , the report server
upgrades the report in the report server database to a binary format that is preserved for subsequent views.
The report definition (.rdl) itself is not upgraded.
You can extract from the report server a read-only copy of the report definition file (.rdl). On a native mode
report server, browse to the web portal, select the report and click Download .
In a SharePoint mode deployment, browse to the document library, select the report and click Download a
Copy .
To upgrade the report definition, you must open the report in a report authoring environment, such as SQL
Server Data Tools or Report Builder, and then save it.
For more information about report upgrades and the schema versions that are supported, see Upgrade Reports.
SQL Server 2016 Report Authors 2016 RDL 2016 RDL SQL Server 2016
Builder
Will upgrade older RDL
versions to 2016 RDL
A UT H O RIN G DEP LO Y TO REP O RT SERVER
EN VIRO N M EN T RDL VERSIO N A UT H O RED DEP LO Y RDL VERSIO N VERSIO N S
Report Designer in SQL Authors 2016 RDL 2016 RDL SQL Server 2016
Server 2016 Data Tools -
Business Intelligence for Will upgrade older RDL
Microsoft Visual Studio versions to 2016 RDL
2015
Report Designer in SQL Authors 2010 RDL 2010 RDL SQL Server 2014 (12.x)
Server 2014 Data Tools -
Business Intelligence for Will upgrade older RDL SQL Server 2012 (11.x)
Microsoft Visual Studio versions to 2010 RDL
2012 SQL Server 2008 R2
Or
Or
Report Designer in SQL Authors 2010 RDL 2010 RDL SQL Server 2008 R2
Server 2008 R2 Business
Intelligence Development Will upgrade older RDL
Studio versions to 2010 RDL
Report Designer in SQL Authors 2008 RDL 2008 RDL SQL Server 2008
Server 2008 Business
Intelligence Development Will upgrade older RDL
Studio versions to 2008 RDL
For more information on SQL Server Data Tools (SSDT), see the following:
Deployment and Version Support in SQL Server Data Tools (SSRS)
SQL Server Data Tools for Visual Studio 2015.
ReportViewer Controls
A Visual Studio ReportViewer control can display an .rdlc report in local preview mode or in remote mode, the
control can display an .rdl file hosted on a Reporting Services report server. The following table provides the list
of RDL versions supported by the ReportViewer controls for local processing (.rdlc). Server side RDL support is
summarized in the section Report Server and RDL Schema Support.
REP O RT VIEW ER C O N T RO L IN P RO DUC T VERSIO N O F RDL F O R LO C A L P REVIEW
Or
Or
Or
Or
See Also
Reports, Report Parts, and Report Definitions (Report Builder and SSRS)
Reporting Services Tools
Report Definition Language (SSRS)
Planning a Report (Report Builder)
11/2/2020 • 3 minutes to read • Edit Online
Report Builder lets you create many kinds of paginated reports. For example, you can create reports that show
summary or detailed sales data, marketing and sales trends, operational reports, or dashboards. You can also
create reports that take advantage of richly formatted text, such as for sales orders, product catalogs, or form
letters. All these reports are created by using different combinations of the same basic building blocks in Report
Builder. To create a useful, easily understood report, it helps to plan first. Here are some things you might want
to consider before you get started:
What format do you want the repor t to appear in?
You can render reports online in a browser such as the Reporting Services web portal or export them to
other formats such as Excel, Word, or PDF. The final form your report takes is an important consideration
because not all features are available in all export formats. For more information, see Export Reports
(Report Builder and SSRS).
What structure do you want to use to present the data in the repor t?
You have a choice among tabular, matrix (similar to a cross-tab or PivotTable report), chart, free-form
structures, or any combination of these to present data. For more information, see Tables, Matrices, and
Lists (Report Builder and SSRS) and Charts (Report Builder and SSRS).
What do you want your repor t to look like?
Report Builder provides a lot of report items that you can add to your report to make it easier to read,
highlight key information, help your audience navigate the report, and so on. Knowing how you want the
report to appear can determine whether you need report items such as text boxes, rectangles, images,
and lines. You might also want to show or hide items, add a document map, include drillthrough reports
or subreports, or link to other reports. For more information, see Images, Text Boxes, Rectangles, and
Lines (Report Builder and SSRS) and Interactive Sort, Document Maps, and Links (Report Builder and
SSRS).
What data do you want your readers to see? Should the data or format be filtered for
different audiences?
You might want to narrow the scope of the report to specific users or locations, or to a particular time
period. To filter the report data, use parameters to retrieve and display only the data you want. For more
information, see Report Parameters (Report Builder and Report Designer).
Do you need to create your own calculations?
Sometimes, your data source and datasets do not contain the exact fields that you need for your report.
In that situation, you might have to create your own calculated fields. For example, you might want to
multiply the price per unit times the quantity to get a line item sales amount. Expressions are also used to
provide conditional formatting and other advanced features. For more information, see Expressions
(Report Builder and SSRS).
Do you want to hide repor t items initially?
Consider whether you want to hide report items, including data regions, groups and columns, when the
report is first run. For example, you can initially present a summary table, and then drill down into the
detailed data. For more information, see Drilldown Action (Report Builder and SSRS).
How are you going to deliver your repor t?
You can save your report to your local computer and continue to work on it, or run it locally for your own
information. However, to share your report with others, you need to save the report to a report server
that is configured in native mode or a report server in SharePoint integrated mode. Saving it to a server
lets others run it whenever they want to. Alternatively, the report server administrator can set up a
subscription to the report or set up e-mail delivery of the report to other individuals. You can have the
report delivered in a specific export format if you prefer. For more information, see Finding, Viewing, and
Managing Reports (Report Builder and SSRS ).
See Also
Report Builder in SQL Server
Reporting Services Concepts (SSRS) Report Builder Tutorials
Report Design Tips (Report Builder and SSRS)
11/2/2020 • 11 minutes to read • Edit Online
Use the following tips to help design your Reporting Services paginated reports.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
Designing Reports
A well-designed report conveys information that leads to action. Identify the questions that the report
helps to answer. Keep those questions in mind as you design the report.
To design effective data visualizations, think about how to display information that is easy for the report
user to understand. Choose a data region that is a good match for the data that you want to visualize. For
example, a chart effectively conveys summary and aggregated information better than a table that spans
many pages of detailed information. You can visualize data from a dataset in any data region, which
includes charts, maps, indicators, sparklines, databars, and tabular data in various grid layouts based on a
tablix.
If you plan to deliver the report in a specific export format, test the export format early in your design.
Feature support varies based on the renderer that you choose.
If you plan to deliver the report as a subscription, test the subscription early in your design. Parameter
support varies based on the subscription that you create.
When you build complex layouts, build the layout in stages. You can use rectangles as containers to
organize report items. You can build data regions directly on the design surface to maximize your
working area, and then, as you complete each one, drag it to the rectangle container. By using rectangles
as containers, you can position all its contents in one step. Rectangles also help control the way report
items render on each page.
To reduce clutter in a report, consider using conditional visibility for specific report items and let the user
choose whether to show the items. You can set visibility based on a parameter or a text box toggle. You
can add conditionally hidden text boxes to show interim expression results. When a report displays
unexpected data, you can show these interim results to help debug expressions.
When you work with nested items in tablix cells or rectangles, you can set different background colors for
the container and contained items. By default, the background color is No color . Items with a specific
background color show through items with a background color set to No color . This technique can help
you select the right item to set display properties, such as border visibility on tablix cells.
For more information about things to consider as you design your report, see Planning a Report (Report
Builder).
APPLIES TO: ✔
️ SQL Server 2016 Reporting Services and later ✔
️ Power BI Report Server
This topic explains the SQL Server Reporting Services (SSRS) features supported by the different editions of
SQL Server. SQL Server Evaluation edition is available for a 180-day trial period.
Related links
Release notes for SQL Server Reporting Services (SSRS).
What's new in SQL Server Reporting Services (SSRS).
Features supported by the editions of SQL Server
EXP RESS W IT H
A DVA N C ED
F EAT URE N A M E EN T ERP RISE STA N DA RD W EB SERVIC ES DEVELO P ER
Supported data All SQL Server All SQL Server Web Express All SQL Server
source SQL editions editions editions
Server edition
1 For
more information on supported data sources in SQL Server Reporting Services (SSRS), see Data sources
supported by Reporting Services (SSRS).
2 Requires SQL Server 2016 Reporting Services in SharePoint mode. For more information, see Install SQL
Server Reporting Services in SharePoint mode. Starting in SQL Server 2017 Reporting Services, integration with
SharePoint is no longer available.
3 Only in Power BI Report Server and SQL Server 2017 Reporting Services and later.
NOTE
SQL Server Express with Tools and SQL Server Express don't support SQL Server Reporting Services.
Express with Advanced Services Express with Advanced Services (local only)
Evaluation Evaluation
EXP RESS W IT H
A DVA N C ED
TO O L N A M E EN T ERP RISE STA N DA RD W EB SERVIC ES DEVELO P ER
NOTE
The preceding table identifies the SQL Server editions that are required to enable these client tools. However, these
tools can access data hosted on any edition of SQL Server.
SQL Server Mobile Report Publisher is the single point for creation of mobile reports. Connect to an SSRS server to
access data sources and create reports. Then publish them to the SSRS server for others in the organization to access,
either on the server or on mobile devices. You can also use SQL Server Mobile Report Publisher stand alone with local
data sources.
Whether you use SQL Server 2016 Reporting Services or later (SSRS) on-premises, Power BI in the cloud, or both as
your report delivery solution, you only need one mobile app to access dashboards and mobile reports on mobile
devices. The Power BI apps are available for download from the Windows, iOS, or Android app stores.
Next steps
Read about Features supported by the editions of SQL Server 2017.
Plan a SQL Server installation.
More questions? Ask the SQL Server Reporting Services forum.
Install SQL Server Reporting Services
3/5/2021 • 4 minutes to read • Edit Online
APPLIES TO: ✔
️ SQL Server Reporting Services (2017 and later) ❌ Power BI Report Server
SQL Server Reporting Services installation involves server components for storing report items, rendering
reports, and processing of subscription and other report services.
Download SQL Server 2019 Reporting Services from the Microsoft Download Center.
Download SQL Server 2017 Reporting Services from the Microsoft Download Center.
NOTE
Looking for Power BI Report Server? See Install Power BI Report Server.
Upgrading or migrating from a SQL Server 2016 or earlier version of Reporting Services? See Upgrade and Migrate
Reporting Services.
NOTE
You do not need a SQL Server Database Engine server available at the time of install. You will need one to configure
Reporting Services after install.
Otherwise, enter a product key. Find the product key for SQL Server Reporting Services.
4. Read and agree to the license terms and conditions and then select Next .
5. You need to have a Database Engine available to store the report server database. Select Next to install
the report server only.
6. Specify the install location for the report server. Select Install to continue.
NOTE
The default path is C:\Program Files\Microsoft SQL Server Reporting Services.
7. After a successful setup, select Configure Repor t Ser ver to launch the Report Server Configuration
Manager.
To work around the error, you can change the service account to either Network Service or a domain account.
Changing the service account to Network Service applies rights in the context of the machine account for the
report server.
For more information, see Configure the report server service account.
Windows Service
A windows service is created as part of the installation. It is displayed as SQL Ser ver Repor ting Ser vices . The
service name is SQLSer verRepor tingSer vices .
PA RT DESC RIP T IO N
Host name The default host name is a strong wildcard (+). It specifies
that the report server accepts any HTTP request on the
designated port for any host name that resolves to the
computer, including
https://<computername>/reportserver ,
https://localhost/reportserver , or
https://<IPAddress>/reportserver.
Port The default port is 80. If you use any port other than port
80, you have to explicitly add it to the URL when you open
web portal in a browser window.
Firewall
If you are accessing the report server from a remote machine, you want to make sure you have configured any
firewall rules if there is a firewall present.
You need to open up the TCP port that you have configured for your Web Service URL and Web Portal URL. By
default, these are configured on TCP port 80.
Additional configuration
To configure integration with the Power BI service so you can pin report items to a Power BI dashboard,
see Integrate with the Power BI service.
To configure email for subscriptions processing, see E-Mail settings and E-Mail delivery in a report server.
To configure the web portal so you can access it on a remote computer to view and manage reports, see
Configure a firewall for report server access and Configure a report server for remote administration.
Related information
For information on how to install SQL Server Reporting Services native mode, see Install Reporting Services
native mode report server.
For information on how to install SQL Server 2016 Reporting Services (and earlier) in SharePoint integration
mode, see Install the first Report Server in SharePoint mode.
Next steps
With your report server installed, begin to create reports and deploy those to your report server. For
information on how to start with Report Builder, see Install Report Builder.
To create reports using SQL Server Data Tools, download SQL Server Data Tools.
More questions? Try asking the Reporting Services forum
Find the product key for SQL Server Reporting
Services
3/5/2021 • 2 minutes to read • Edit Online
APPLIES TO: ✔
️ SQL Server Reporting Services (2017 and later) ❌ Power BI Report Server
Learn how to find the product key for SQL Server Reporting Services (SSRS) 2017 and 2019 so you can install
your server in a production environment.
To find your product key, you start by downloading and running setup for SQL Server.
1. Download SQL Server.
2. Run SQL Server setup and copy the pre-populated key:
You should only have to do this step the first time you install Reporting Services. Servicing updates shouldn't
require you to enter the key.
Next steps
Install SQL Server Reporting Services
More questions? Try asking the Reporting Services forum
Install Reporting Services 2016 native mode report
server
11/2/2020 • 7 minutes to read • Edit Online
APPLIES TO: ✔ ️ SQL Server Reporting Services (2016) ❌ SQL Server Reporting Services (2017) ❌ Power BI
Report Server
Learn how to install Reporting Services in native mode. This will provide access to a web portal where you can
manage reports and other items.
NOTE
Looking for Power BI Report Server? See Install Power BI Report Server.
A Reporting Services native mode report server is the default Reporting Services server mode and can be
installed from the SQL Server installation wizard or from the command line. In the setup wizard, you can select
to either install files and configure the server with default settings or to only install the files. This topic reviews
the Default configuration for native mode where Setup both installs and configures a report server instance.
After Setup is finished, the report server is running and ready to use for basic report viewing and report
management.
Additional features such as Power BI integration and e-mail delivery with subscription processing require
additional configuration.
Requirements
The default configuration option uses default values to configure the core settings required to make a report
server operational. It has the following requirements:
Review Hardware and Software Requirements for Installing SQL Server .
Reporting Services and SQL Server Database Engine must be installed together in the same instance. The
Database Engine instance hosts the report server database that Setup creates and configures.
The user account used to run Setup must be a member of the local Administrators group and have
permission to access and create databases on the Database Engine instance that hosts the report server
databases.
Setup must be able to use the default values to reserve the URLs that provide access to the report server
and the web portal. These values are port 80, a strong wildcard, and the virtual directory names in the
format Repor tSer ver_< instance_name > and Repor ts_< instance_name > .
Setup must be able to use the default values to create the report server databases. These values are
Repor tSer ver and Repor tSer verTempDB . If you have existing databases from a previous installation,
Setup will be blocked because it cannot configure the report server in the default configuration for native
mode. You must rename, move, or delete the databases to unblock Setup.
If your computer does not meet all requirements for a default installation, you must install Reporting Services in
files-only mode and then use the Reporting Services Configuration Manager to configure it after Setup is
finished.
IMPORTANT
While Reporting Services can be installed in an environment that has a Read-Only Domain Controller (RODC), Reporting
Services needs access to a Read-Write Domain Controller to function properly. If Reporting Services only has access to a
RODC, you may encounter errors when trying to administer the service.
PA RT DESC RIP T IO N
Host name The default host name is a strong wildcard (+). It specifies
that the report server will accept any HTTP request on the
designated port for any host name that resolves to the
computer, including
https://<computername>/reportserver ,
https://localhost/reportserver , or
https://<IPAddress>/reportserver .
Port The default port is 80. Note that if you use any port other
than port 80, you will have to explicitly add it to the URL
when you open a Reporting Services Web application in a
browser window.
https://[ServerName]/Reports_THESQLINSTANCE
6. Ser ver Configuration : If you plan to use the Reporting Services subscription feature, then on the
Ser ver Configuration page, configure SQL Server Agent Automatic Startup type. The default is
manual.
7. Add SQL Server administrators on the Database Engine Configuration page.
8. On the Repor ting Ser vices Configuration page select Install and Configure .
NOTE
Install and Configure will not be available unless the database feature is also selected to be installed.
9. Feature Configuration Rules: verify the rules passed. The setup wizard automatically advances to the
Ready to install if the rules all pass.
Specific to Reporting Services, the rules verify a report server catalog and temp catalog database do not
already exist.
10. On the ready to install page, note the path to the configuration file as you can refer to it at a later time
for a good summary of the servers initial SQL Server configuration including the components installed,
service accounts and administrators.
11. After the SQL Server installation wizard is complete, verify the default Native mode installation using the
following basic steps.
Open Reporting Services Configuration Manager and confirm you can connect to the report
server.
Open your browser with administrative privileges and connect to the web portal, for example
https://localhost/Reports .
Open your browser with administrative privileges and connect to the Reporting Services report
server page. For example, https://localhost/ReportServer
For more information, see the Native section of the following two topics:
Verify a Reporting Services Installation
Troubleshoot a Reporting Services Installation
Additional configuration
To configure Power BI integration so you can pin report items to a Power BI dashboard, see Power BI
Report Server Integration.
To configure email for subscriptions processing, see E-Mail Settings - Reporting Services Native mode
and E-Mail Delivery in Reporting Services.
To configure the web portal so you can access it on a report computer to view and manage reports, see
Configure a Firewall for Report Server Access and Configure a Report Server for Remote Administration.
See Also
Troubleshoot a Reporting Services Installation
Verify a Reporting Services Installation
Configure the Report Server Service Account
Configure Report Server URLs
Configure a Report Server Database Connection
Files-Only Installation (Reporting Services)
Initialize a Report Server
Configure TLS Connections on a Native Mode Report Server
Configure Windows Service Accounts and Permissions
More questions? Try asking the Reporting Services forum
Files-Only Installation (Reporting Services)
3/5/2021 • 2 minutes to read • Edit Online
Files-only installation refers to a Reporting Services installation where Setup creates the folder structure for
Reporting Services program files, copies the files to disk, registers the Report Server service on the local
computer, configures the service account, grants files permissions to the service account, and registers the
Reporting Services WMI provider.
A files-only installation includes the following Reporting Services features: Report Server service (which hosts
the Report Server Web service and background processing application), Report Builder, the Reporting Services
Configuration tool, and the Reporting Services command line utilities (rsconfig.exe, rskeymgmt.exe and rs.exe). It
does not apply to shared features such as SQL Server Management Studio or SQL Server Data Tools (SSDT),
which must be specified as separate items if you want to install them.
In contrast with other installation modes, a report server that is installed in files-only mode is not operational
when Setup is finished. Additional configuration will be required to bring the report server online by using the
Report Server Configuration Manager (Native Mode).
Installation Wizard
When you select Reporting Services in the Feature Selection page, Setup provides a Reporting Services
Configuration page that enables you to specify the installation mode. To specify a files-only installation, select
Install but do not configure the repor t ser ver on the Reporting Services Configuration page.
See Also
Verify a Reporting Services Installation
Configure the Report Server Service Account (Report Server Configuration Manager)
Configure Report Server URLs (Report Server Configuration Manager)
Configure a Report Server Database Connection (Report Server Configuration Manager)
Install Reporting Services SharePoint Mode
Install Reporting Services Native Mode Report Server
Reporting Services Tools
Install Reporting and Internet Information Services
Side-by-Side
11/2/2020 • 5 minutes to read • Edit Online
APPLIES TO: ✔
️ SQL Server 2016 Reporting Services and later ✔
️ Power BI Report Server
For content related to previous versions of SQL Server Reporting Services (SSRS), see SQL Server 2014
Reporting Services.
You can install and run SQL Server Reporting Services (SSRS) and Internet Information Services (IIS) on the
same computer. The version of IIS that you are using determines the interoperability issues you must address.
8.0, 8.5 Requests intended for one application Under certain conditions, a registered
are accepted by a different application. endpoint that supersedes another URL
endpoint in the URL reservation
HTTP.SYS enforces precedence rules for scheme might receive HTTP requests
URL reservations. Requests that are intended for the other application.
sent to applications that have the
same virtual directory name and that Using unique virtual directory names
jointly monitor port 80 might not for the Report Server Web service and
reach the intended target if the URL the web portal helps you avoid this
reservation is weak relative to the URL conflict.
reservation of another application.
Detailed information about this
scenario is provided in this topic.
https://+:80/reports Receives any requests that are sent to any IP address or host
name that is valid for that computer as long as the URL
contains the "reports" virtual directory name.
EXA M P L E REQ UEST
One indication of a port conflict is that you will see the following error message: 'System.IO.FileLoadException:
The process cannot access the file because it is being used by another process. (Exception from HRESULT:
0x80070020).'
URL Reservations for IIS 8.0, 8.5 with SQL Server Reporting Services
Given the precedence rules outlined in the previous section, you can begin to understand how URL reservations
defined for Reporting Services and IIS promote interoperability. Reporting Services receives requests that
explicitly specify the virtual directory names for its applications; IIS receives all remaining requests, which can
then be directed to applications that run within the IIS process model.
Report Server https://+:80/ReportServer Strong wildcard on port 80, Receives all requests on
with report server virtual port 80 that specify the
directory. report server virtual
directory. The Report Server
Web service receives all
requests to
https://<computername>/r
eportserver.
Web portal https://+:80/Reports Strong wildcard on port 80, Receives all requests on
with Reports virtual port 80 that specify the
directory. reports virtual directory.
The web portal receives all
requests to
https://<computername>/r
eports.
Next steps
Configure Report Server URLs
Configure a URL
Install Reporting Services Native Mode Report Server
More questions? Try asking the Reporting Services forum
Host a Report Server Database in a SQL Server
Failover Cluster
11/2/2020 • 2 minutes to read • Edit Online
SQL Server provides failover clustering support so that you can use multiple disks for one or more SQL Server
instances. Failover clustering is supported only for the report server database; you cannot run the Report Server
service as part of a failover cluster.
To host a report server database on a SQL Server failover cluster, the cluster must already be installed and
configured. You can then select the failover cluster as the server name when you create the report server
database in the Database Setup page of the Reporting Services Configuration tool.
Although the Report Server service cannot participate in a failover cluster, you can install Reporting Services on
a computer that has a SQL Server failover cluster installed. The report server runs independently of the failover
cluster. If you install a report server on a computer that is part of a SQL Server failover instance, you are not
required to use the failover cluster for the report server database; you can use a different SQL Server instance to
host the database.
See Also
Report Server Database (SSRS Native Mode)
Create a Report Server Database (Report Server Configuration Manager)
Report Server Configuration Manager (Native
Mode)
11/2/2020 • 5 minutes to read • Edit Online
APPLIES TO: ✔
️ SQL Server 2016 Reporting Services and later ✔
️ Power BI Report Server
For content related to previous versions of SQL Server Reporting Services (SSRS), see SQL Server 2014
Reporting Services.
Use the Reporting Services Configuration Manager to configure a Reporting Services Native Mode installation.
If you installed a report server by using the files-only installation option, you must use the Configuration
Manager to configure the server before you can use it. If you installed a report server by using the default
configuration installation option, you can use the Configuration Manager to verify or modify the settings that
were specified during setup. Reporting Services Configuration Manager can be used to configure a local or
remote report server instance.
NOTE
Reporting Services integration with SharePoint is no longer available after SQL Server 2016. Starting with the SQL Server
2012 (11.x) release, the Reporting Services Configuration Manager is not designed to manage SharePoint mode report
servers. SharePoint mode is managed and configured by using SharePoint Central Administration and PowerShell scripts.
Requirements
The Reporting Services Configuration Manager is version-specific. The Reporting Services Configuration
Manager that installs with this version of SQL Server cannot be used to configure an earlier version of
Reporting Services. If you are running older and newer versions of Reporting Services side-by-side on the same
computer, you must use the Reporting Service Configuration manager that comes with each version to
configure each instance.
To use the Reporting Services Configuration manager, you must have the following:
Local system administrator permissions on the computer that hosts the report server you want to
configure. If you are configuring a remote computer, you must have local system administrator
permissions on that computer as well.
You must have permission to create databases on the SQL Server Database Engine used to host the
report server database.
Windows Management Instrumentation (WMI) service must be enabled and running on any report
server you are configuring. The Reporting Services Configuration Manager uses the report server WMI
provider to connect to local and remote report servers. If you are configuring a remote report server, the
computer must allow remote WMI access. For more information, see Configure a Report Server for
Remote Administration.
Before you can connect to and configure a remote report server instance, you must enable remote
Windows Management Instrumentation (WMI) calls to pass through Windows Firewall. For more
information, see Configure a Report Server for Remote Administration.
The Report Server Configuration Manager is installed automatically when you install SQL Server Reporting
Services.
Next steps
Web portal
Reporting Services Tools
Configure a Report Server Database Connection
SQL Server Configuration Manager
Configure and Administer a Report Server
More questions? Try asking the Reporting Services forum
Configure the Report Server Service Account
(Report Server Configuration Manager)
8/26/2021 • 9 minutes to read • Edit Online
Reporting Services is implemented as a single service that contains a Report Server Web service, web portal,
and a background processing application that is used for scheduled report processing and subscription delivery.
This topic explains how the service account is initially configured and how to modify the account or password
using the Reporting Services Configuration tool.
Initial Configuration
The Report Server service account is defined during Setup. You can run the service under a domain user
account, or a built-in account such as Vir tual Ser vice Account . There's no default account; whatever account
you specify in the Ser vice Accounts page of the Installation Wizard becomes the initial account of the Report
Server service.
IMPORTANT
Although the Report Server Web service and web portal are separate ASP.NET applications, they run under a single
service architecture within the same Report Server process identity.
NOTE
Built-in Windows service accounts (Local Service or Network Service) are not supported as report server service accounts
on a computer that is a domain controller.
Choosing an Account
For best results, specify an account that has network connection permissions, with access to network domain
controllers and corporate SMTP servers or gateways. The following table summarizes the accounts and provides
recommendations for using them.
A C C O UN T EXP L A N AT IO N
A C C O UN T EXP L A N AT IO N
Domain user accounts If you have a Windows domain user account that has the
minimum permissions required for report server operations,
you should use it.
Vir tual Ser vice Account Vir tual Ser vice Account represents the windows service.
It is a built-in least-privilege account that has network log on
permissions. This account is recommended if you don't have
a domain user account available or if you want to avoid any
service disruptions that might occur as a result of password
expiration policies.
Network Ser vice Network Ser vice is a built-in least-privilege account that
has network log on permissions.
Local Ser vice Local Ser vice is a built-in account that is like an
authenticated local Windows user account. Services that run
as the Local Ser vice account access network resources as a
null session with no credentials. This account is not
appropriate for intranet deployment scenarios where the
report server must connect to a remote report server
database or a network domain controller to authenticate a
user prior to opening a report or processing a subscription.
Next Steps
Configure Report Server URLs (Report Server Configuration Manager) Report Server Configuration Manager
(Native Mode)
Configure Report Server URLs (Report Server
Configuration Manager)
11/2/2020 • 5 minutes to read • Edit Online
In Reporting Services, URLs are used to access the Report Server Web service and the web portal. Before you
can use either application, you must configure at least one URL each for the Web service and the web portal.
Reporting Services provides default values for both application URLs that work well in most deployment
scenarios, including side-by-side deployments with other Web services and applications.
If you installed the default configuration, URLs were created automatically using the default values.
If you are using the Reporting Services Configuration tool to create or modify the URLs, you can accept
the default values for a URL or specify custom values. A test link of the URL appears on page when you
define the URL so that you can immediately confirm that the settings you specified result in a valid
connection. For step-by-step instructions on how to configure and test a URL, see Configure a URL
(Report Server Configuration Manager).
PA RT DESC RIP T IO N
Default URLs
When you access a report server or the web portal through its URL, the URL should include the host name and
not the IP address. On a TCP/IP network, the IP address will resolve to a host name (or the network name of the
computer). If you used the default values to configure URLs, you should be able to access the Report Server
Web service using URLs that specify the computer name or localhost as the host name:
https://<computername>/reportserver
https://localhost/reportserver
The settings that make these URLs available appear in the following table. This table shows the default values
that enable a report server connection though URLs that include a host name:
PA RT VA L UE EXP L A N AT IO N
NOTE
An underlying URL reservation enables any valid host name to be used on a URL. The Reporting Services Configuration
tool creates a URL reservation in HTTP.SYS using syntax that allows variations of the host name to resolve to a particular
report server instance. For more information about URL reservations, see About URL Reservations and Registration
(Report Server Configuration Manager).
See Also
Configure a URL (Report Server Configuration Manager)
About URL Reservations and Registration (Report
Server Configuration Manager)
3/5/2021 • 6 minutes to read • Edit Online
URLs for Reporting Services applications are defined as URL reservations in HTTP.SYS. A URL reservation
defines the syntax of a URL endpoint to a Web application. URL reservations are defined for both the Report
Server Web service and the web portal when you configure the applications on the report server. URL
reservations are created for you automatically when configure URLs through Setup or the Reporting Services
Configuration tool:
Setup will create URL reservations using default values. If Setup installs the default configuration, it will
reserve two URLs; one for the Report Server Web service, and another for the web portal. You can use
the Reporting Services Configuration tool to add more URLs or modify the default URLs that Setup
creates.
The Reporting Services Configuration tool will create a URL reservation based on the URL you specify in
the Web Ser vice URL or Web Por tal URL pages in the tool.
Both Setup and the tool will also assign permissions on the URL to the Report Server service, check for duplicate
instances, and add the URL reservation to HTTP.SYS. Never create or modify a Reporting Services URL
reservation directly using HttpCfg.exe or other tool. If you skip a step or set an invalid value, you will encounter
problems that might be difficult to diagnose or fix.
NOTE
HTTP.SYS is an operating system component that listens for network requests and routes them to a request queue. In this
release of Reporting Services, HTTP.SYS establishes and maintains the request queue for the Report Server Web service
and the web portal. Internet Information Services (IIS) is no longer used to host or access Reporting Services applications.
For more information about HTTP.SYS functionality, see HTTP Server API.
NOTE
This article does not describe URL access to specific reports that are stored on the report server. For more information
about URL access to these items, see Access Report Server Items Using URL Access.
Default URLs
If you install Reporting Services in the default configuration, Setup will reserve URLs for the Report Server Web
service and the web portal. You can also accept these default values when you define URL reservations in the
Reporting Services Configuration tool. Default URLs will include an instance name if you install SQL Server
Express or if you install Reporting Services as a named instance.
IMPORTANT
The instance character is an underscore character (_ ).
URL reservations include a port number. The following operating systems will allow multiple Web applications
to share a port:
Windows Server 2012 R2
Windows Server 2012
Windows Server 2008 R2
Windows Server 2008
Windows 7
Windows Vista
A C T UA L URL RESERVAT IO N
IN STA N C E T Y P E A P P L IC AT IO N DEFA ULT URL IN H T T P. SY S
See also
Configure a URL (Report Server Configuration Manager)
URL Reservation Syntax (Report Server Configuration Manager Manager)
Configure a URL (Report Server Configuration
Manager)
3/5/2021 • 10 minutes to read • Edit Online
Before you can use the web portal or the Report Server Web service, you must configure at least one URL for
each application. Configuring the URLs is mandatory if you installed Reporting Services in "files-only" mode
(that is, by selecting the Install but do not configure the ser ver option on the Report Server Installation
Options page in the Installation Wizard). If you installed Reporting Services in the default configuration, URLs
are already configured for each application.
Use the Reporting Services Configuration tool to configure the URLs. All parts of the URL are defined in this
tool. Unlike earlier releases, Internet Information Services (IIS) Web sites no longer provide access to Reporting
Services applications in SQL Server 2008 and later versions.
Reporting Services provides default values that work well in most deployment scenarios, including side-by-side
deployments with other Web services and applications. Default URLs incorporate instance names, minimizing
the risk of URL conflicts if you run multiple report server instances on the same computer.
This topic provides instructions for the following tasks:
Create a URL for the Report Server Web service.
Create a URL for the web portal.
Set advanced URL properties to define additional URLs.
For more information about how URLs are stored and maintained or interoperability issues, see About URL
Reservations and Registration (Report Server Configuration Manager) and Install Reporting Services and
Internet Information Services Side-by-Side (SSRS Native Mode). To review examples of URLs often used in a
Reporting Services installation, see Examples of URLs in this topic.
Prerequisites
Before you create or modify a URL, remember the following points:
You must be a member of the local Administrators group on the report server computer.
If IIS is installed on the same computer, check the names of virtual directories on any Web site that uses
port 80. If you see any virtual directories that use the default Reporting Services virtual directory names
(that is, "Reports" and "ReportServer"), choose different virtual directory names for the Reporting
Services URLs that you configure.
You must use the Reporting Services Configuration tool to configure the URL. Do not use a system utility.
Never modify URL reservations in the URLReser vations section of the RSReportServer.config file
directly. Using the Reporting Services Configuration tool is necessary to update both the underlying URL
reservation that is stored internally and synchronize the URL settings stored in the RSReportServer.config
file.
Choose a time that has low report activity. Each time the URL reservation changes, you can expect that
the application domains for Report Server Web service and the web portal might be recycled.
For an overview of URL construction and usage in Reporting Services, see Configure Report Server URLs
(Report Server Configuration Manager).
To configure a URL for the Report Server Web service
1. Start the Reporting Services Configuration tool and connect to a local report server instance.
2. Click Web Ser vice URL .
3. Specify the virtual directory. The virtual directory name identifies which application receives the request.
Because an IP address and port can be shared by multiple applications, the virtual directory name
specifies which application receives the request.
This value must be unique to ensure that the request reaches its intended destination. This value is
required. It is case-insensitive. There is a one-to-one correspondence between a virtual directory name
and an instance of a Reporting Services application. If you create multiple URLs to the same application
instance, you must use the same virtual directory name in all of the URLs you define for this application
instance.
For the Report Server Web service, the default virtual directory name is Repor tSer ver .
4. Specify the IP address that uniquely identifies the report server computer on the network. If you want to
specify a host header or define additional URLs for the same application instance, you must click
Advanced . For instructions on how to set advanced properties on the URL, see the instructions later in
this topic. Otherwise, use the Web Ser vice URL page to select from the following values:
All Assigned specifies that any of the IP addresses that are assigned to the computer can be used
in a URL that points to a report server application. This value also encompasses friendly host
names (such as computer names) that can be resolved by a domain name server to an IP address
that is assigned to the computer. This is the default value for a Reporting Services URL.
All Unassigned specifies that the report server will receive any request that has not been
handled by another application. We recommend that you avoid this option. If you select this
option, it becomes possible for another application that has a stronger URL reservation to
intercept requests intended for the report server.
127.0.0.1 is the IPv4 address used to access to localhost. It supports local administration on the
report server computer. If you select only this value, only users who are logged on locally to the
report server computer will have access to the application.
::1 is the loopback address in IPv6 format.
Specific IP addresses also appear in this list. IP addresses can be in IPv4 and IPv6 formats.
Nnn.nnn.nnn.nnn is the 32-bit IPv4 address of a network adapter card on your computer. IPv6
addresses are 128-bit, with eight 4-byte fields separated by colons:
<prefix>:nnnn:nnnn:nnnn:nnnn:nnnn:nnnn
If you have multiple cards or if your network supports both IPv4 and IPv6 addresses, you will see
multiple IP addresses. If you select only one IP address, it will limit application access to the just the
IP address (and any host name that a domain name server maps to that address). You cannot use
localhost to access a report server, and you cannot use the IP addresses of other network adapter
cards that are installed on the report server computer. Typically, if you select this value, it is
because you are configuring multiple URL reservations that also specify explicit IP addresses or
host names (for example, one for a network adapter card used for intranet connections and a
second one used for extranet connections).
5. Specify the port. Port 80 is the default because it can be shared with other applications. If you want to use
a custom port number, remember that you will have to always specify it in the URL used to access the
report server. You can use the following techniques to find an available port:
From a command prompt, type the following command to return a list of TCP ports that are being
used:
netstat -anp tcp
Review the Microsoft Support article, Information about TCP/IP port assignments, to read about
TCP port assignments and the differences between Well Known Ports (0 through 1023), Registered
Ports (1024 through 49151), and Dynamic or Private Ports (49152 through 65535).
If you are using Windows Firewall, you must open the port. For instructions, see Configure a
Firewall for Report Server Access.
6. If you have not done so already, verify that IIS (if it is installed) does not have virtual directory with the
same name you plan to use.
7. If you installed a TLS/SSL certificate, you can select it now to bind the URL to the TLS/SSL certificate that
is installed on your computer.
8. Optionally, if you select a TLS/SSL certificate, you can specify a custom port. The default is 443 but you
can use any port that is available.
9. Click Apply to create the URL.
10. Test the URL by clicking the link in the URLs section of page. Note that the report server database must
be created and configured before you can test the URL. For instructions, see Create a Native Mode Report
Server Database (Report Server Configuration Manager).
NOTE
If you have existing TLS Bindings and URL Reservations and you want to change the TLS Binding, for example use a
different certificate or hostheader, then it is recommended you complete the following steps in order:
1. First remove all URL Reservations.
2. Then remove all TLS Bindings.
3. Then recreate the URLs and the TLS bindings.
The previous steps can be completed using Reporting Services Configuration Manager.
Microsoft Windows supports one binding for each IP address to Port combination. If you configure a report server to use
a specific hostheader value and the certificate on the Port to IP address combination is also issued to a different
hostheader value, you will see in your browser, a warning indicating the certificate does not match the URL that is being
used.
To correct the issue, delete all bindings and then create new bindings with unique settings or configure the Reporting
Services URL registrations with wildcards.
https://www.adventure-works.com/reportserver
You cannot set multiple virtual directory names for the same application instance. Each Reporting Services
application instance is mapped to a single virtual directory name. If you have multiple instances of Reporting
Services on the same computer, the virtual directory name for an application should include the instance name
to ensure that each request reaches its intended target.
Host Header
If you already have a host header defined on a domain name server that resolves to your computer, you can
specify that host header in a URL that you configure for report server access.
A host header is a unique name that allows multiple Web sites to share a single IP address and port. Host
header names are easier to remember and type than IP address and port numbers. An example of a host header
name might be www.adventure-works.com.
SSL Por t
Specifies the port for TLS/SSL connections. The default port for TLS is 443.
SSL Cer tificate
Specifies the certificate name of a TLS/SSL certificate that you installed on this computer. If the certificate maps
to a wildcard, you can use it for a report server connection.
Specifies the fully qualified computer name for which the certificate is registered. The name that you specify
must be identical to the name for which the certificate is registered.
You must have a certificate installed to use this option. You must also modify the UrlRoot configuration setting in
the RSReportServer.config file so that it specifies the fully qualified name of the computer for which the
certificate is registered. For more information, see Configure TLS Connections on a Native Mode Report Server.
To set advanced properties on a URL
1. On either the Web Ser vice URL or Web Por tal URL page, click Advanced .
2. Click Add .
3. Click IP Address or Host Header Name. If you specify a host header, be sure to specify a name that the
DNS service can resolve. If you are specifying publicly available domain name, include the whole URL,
including https://www .
4. Specify the port. If you specify a custom port, the URL to the application must always include the port
number.
5. Click OK .
6. Test the URL by opening a browser window and entering the URL.
https://localhost/reportserver_SQLEXPRESS
https://sales01/reportserver
https://sales01:8080/reportserver
https://sales.adventure-works.com/reportserver
https://www.adventure-works.com:8080/reportserver01
URLs that you use to access the web portal share a similar format and are typically created under the same Web
site that hosts the report server. The only difference is the virtual directory name (in this case, it is repor ts but
you can configure it to use whatever name that you want):
https://localhost/reports
https://localhost/reports_SQLEXPRESS
https://sales01/reports
https://sales01:8080/reports
https://sales.adventure-works.com/reports
https://www.adventure-works.com:8080/reports
See Also
Configure Report Server URLs (Report Server Configuration Manager) Report Server Configuration Manager
(Native Mode)
URL Reservation Syntax (Report Server
Configuration Manager)
11/2/2020 • 2 minutes to read • Edit Online
This topic describes the parts of the URL string for the Report Server Web service and Report Manager. The URL
string that is stored internally has a different structure from a URL that you type in the Address bar of a browser
window. The URL reservation string appears in the Results window of the Reporting Services Configuration tool
when you configure a URL and in the RSReportServer.config file. Knowing how the URL string is defined can be
useful if you are troubleshooting URL reservation problems or querying HTTP.SYS to view the internal URL
reservations that are defined on your server.
URL Syntax
A report server URL is stored in the UrlString element and the Vir tualDirector y element. The reason for
separating UrlString and Vir tualDirector y into separate elements is that you can have multiple URL strings,
but only one virtual directory name for each Reporting Services application.
In HTTP.SYS, the URL reservation includes both the UrlString and Vir tualDirector y . The syntax for a URL
reservation has the following parts:
<scheme>://<hostname>:<port>/<virtualdirectory>
The following table describes each property and which values are valid for each one.
Hostname (+) Strong wildcard, equates to (All Identifies the server on the network.
Assigned) value for the IP address.
(+) Strong wildcard is the default.
(*) Weak wildcard, equates to an IP HTTP.SYS will accept all requests on all
address of (All Unassigned) . network adaptors for a given port and
virtual directory combination. The
Fully qualified domain name report server will accept any request
on the port.
Machine name
(*) Weak wildcard. HTTP.SYS accepts all
IP address (IPV4) requests not handled by other URL
reservations on all network adaptors
IP address (IPV6) for a given port and virtual directory
combination.
See Also
Configure Report Server URLs (Report Server Configuration Manager)
Configure a URL (Report Server Configuration Manager)
URLs in Configuration Files (Report Server
Configuration Manager)
11/2/2020 • 5 minutes to read • Edit Online
Reporting Services stores application settings in a RSReportServer.config file. Within this file, there are
configuration settings for both URLs and URL reservations. These configuration settings have very different
purposes and rules for modification. If you are accustomed to modifying configuration files to tune a
deployment, this topic can help you understand how each URL setting is used.
The following table provides a summary of all the URLs that can be specified in a Reporting Services
configuration file.
Repor tSer verUrl Optional. This element is not included This value specifies a URL to the
in the RSReportServer.config file unless Report Server Web service. This value
you add it yourself. is read by the web portal application at
startup. If this value is set, the web
Set this element only if you are portal will connect to the report server
configuring one of the following that is specified in the URL.
scenarios:
By default, the web portal provides
the web portal provides Web front- Web front-end access to the Report
end access to a Report Server Web Server Web service that runs within
service that runs on a different the same report server instance as the
computer or a different instance on web portal. However, if you want to
the same computer. use the web portal with a Report
Server Web service that is part of
When you have multiple URLs to a another instance or runs in an instance
report server and you want the web on a different computer, you can set
portal to use a specific URL. this URL to direct the web portal to
connect to the external Report Server
You have a specific report server URL Web service.
through which you want all the web
portal connections to use. If a Transport Layer Security (TLS),
previously known as Secure Sockets
For example, you might enable the Layer (SSL), certificate is installed on
web portal access for all computers on the report server to which you are
network, yet require that the web connecting, the Repor tSer verUrl
portal connect to the report server value must be the name of the server
through a local connection. In this that is registered for that certificate. If
case, you might configure you get the error, "The underlying
Repor tSer verUrl to " connection was closed: Could not
https://localhost/reportserver ". establish trust relationship for the
SSL/TLS security channel", set
Repor tSer verUrl to the fully qualified
domain name of the server for which
the TLS/SSL certificate was issued. For
example, if the certificate is registered
to https://adventure-
works.com.onlinesales , the report
server URL would be
https://adventure-
works.com.onlinesales/repor tser v
er .
SET T IN G USA GE DESC RIP T IO N
Repor tSer verExternalUrl Optional. This element is not included This value is used by the SharePoint
in the RSReportServer.config file unless 2.0 Web Parts.
you add it yourself.
In previous releases, it was
Set this element only if you are using recommended that you set this value
the SharePoint 2.0 Web Parts and you to deploy Report Builder on an
want users to be able to retrieve a Internet-facing report server. This is an
report and open it in a new browser untested deployment scenario. If you
window. used this setting in the past to
support Internet access to Report
Add <Repor tSer verExternalUrl> Builder, you should consider an
underneath the <Repor tSer verUrl> alternative strategy.
element, and then set it to a fully
qualified report server name that
resolves to a report server instance
when accessed in a separate browser
window. Do not delete
<Repor tSer verUrl>.
<ReportServerExternalUrl>https://myserver/reportserver</ReportServerExternalUrl>
See Also
Configure Report Server URLs (Report Server Configuration Manager)
Configure a URL (Report Server Configuration Manager)
URL Reservations for Multi-Instance Report Server
Deployments
11/2/2020 • 2 minutes to read • Edit Online
If you install multiple instances of Reporting Services on the same computer, you must consider how you will
define the URL reservations for each instance. Within each instance, the Report Server Web service and the web
portal must have at least one URL reservation each. The entire set of reservations must be unique in HTTP.SYS.
Duplicate URLs are detected during URL registration, which occurs when the service starts. If you create URL
reservations that are not unique, the name conflict might not be detected until you start the service. For this
reason, make sure that you follow naming conventions or rules to ensure all values are unique.
For the named instance, the virtual directory includes the instance name. Both the default instance and the
named instance listen on the same port, but the unique virtual directory names determine which report server
gets the request.
Best practice recommendations are to use the virtual directory name to distinguish among the report server
instance. It provides a clear correspondence between a URL and the target instance, and ensures that the
application names are unique across the whole system.
See Also
Configure Report Server URLs (Report Server Configuration Manager)
Configure a URL (Report Server Configuration Manager)
Create a report server database, Report Server
Configuration Manager
3/5/2021 • 3 minutes to read • Edit Online
APPLIES TO: ✔
️ SQL Server 2016 Reporting Services and later ✔
️ Power BI Report Server ✔
️ SharePoint
For content related to previous versions of SQL Server Reporting Services (SSRS), see SQL Server 2014
Reporting Services.
SQL Server Reporting Services native mode uses two SQL Server relational databases to store report server
metadata and objects. One database is used for primary storage, and the second one stores temporary data.
The databases are created together and bound by name. With a default SQL Server instance, the databases are
named repor tser ver and repor tser ver tempdb . Collectively, the two databases are called the repor t ser ver
database or repor t ser ver catalog .
SQL Server Reporting Services SharePoint mode includes a third database that's used for data alerting
metadata. The three databases are created for each SSRS service application. The database names by default
include a GUID that represents the service application.
The following are example names of the three SharePoint mode databases:
ReportingService_90a9f37075544f22953c4a62e4a9f370
ReportingService_90a9f37075544f22953c4a62e4a9f370TempDB
ReportingService_90a9f37075544f22953c4a62e4a9f370_Alerting
IMPORTANT
Don't write applications that run queries against the report server database. The report server database isn't a public
schema. The table structure might change from one release to the next. If you write an application that requires access to
the report server database, always use the SQL Server Reporting Services APIs to access the report server database.
Execution log views are exceptions to this rule. For more information, see Report Server ExecutionLog and the
ExecutionLog3 View.
NOTE
SQL on Linux isn't a supported environment to host a SQL Server Reporting Services database.
If you create the report server database on a remote computer, configure the connection to use a domain user
account or a service account that has network access. If you use a remote SQL Server instance, consider which
credentials the report server should use to connect to the instance. For more information, see Configure a
Report Server Database Connection (Report Server Configuration Manager).
IMPORTANT
The report server and the SQL Server instance hosting the report server database can be in different domains. For
internet deployment, it's common practice to use a server that's behind a firewall.
If you configure a report server for internet access, use SQL Server credentials to connect to the instance of SQL Server
that's behind the firewall. Secure the connection by using IPSEC.
Next steps
Read about Report Server Configuration Manager.
More questions? Ask the Reporting Services forum.
Create a Native Mode Report Server Database
(Report Server Configuration Manager)
11/2/2020 • 7 minutes to read • Edit Online
Next steps
Configure a Report Server Database Connection
Manage a Reporting Services Native Mode Report Server
Report Server Configuration Manager
More questions? Try asking the Reporting Services forum
Configure a Report Server Database Connection
(Report Server Configuration Manager)
3/5/2021 • 9 minutes to read • Edit Online
APPLIES TO: ✔
️ SQL Server 2016 Reporting Services and later ✔
️ Power BI Report Server
For content related to previous versions of SQL Server Reporting Services (SSRS), see SQL Server 2014
Reporting Services.
Each report server instance requires a connection to the report server database that stores reports, shared data
sources, resources, and metadata managed by the server. The initial connection can be created during a report
server installation if you are installing the default configuration. In most cases, you will use the Reporting
Services Configuration tool to configure the connection after Setup is complete. You can modify the connection
at any time to change the account type or reset credentials. For step-by-step instructions on how to create the
database and configure the connection, see Create a Native Mode Report Server Database (Report Server
Configuration Manager).
You must configure a report server database connection in the following circumstances:
Configuring a report server for first use.
Configuring a report server to use a different report server database.
Changing the user account or password that is used for the database connection. You only need to update
the database connection when the account information is stored in the RSReportServer.config file. If you
are using the service account for the connection (which uses Windows integrated security as the
credential type), the password is not stored, eliminating the need to update the connection information.
For more information about changing accounts, see Configure the Report Server Service Account (Report
Server Configuration Manager).
Configuring a report server scale-out deployment. Configuring a scale-out deployment requires that you
create multiple connections to a report server database. For more information about how to perform this
multi-step operation, see Configure a Native Mode Report Server Scale-Out Deployment (Report Server
Configuration Manager).
<Dsn></Dsn>
<ConnectionType></ConnectionType>
<LogonUser></LogonUser>
<LogonDomain></LogonDomain>
<LogonCred></LogonCred>
If you configure the connection to use a specific Windows account or database login, you must remember to
update the values that are stored if you subsequently change the account or login.
Choosing a Credential Type
There are three types of credentials that can be used in a connection to a report server database:
Windows integrated security using the Report Server service account. Because the report server is
implemented as a single service, only the account under which the service runs requires database access.
A Windows user account. If the report server and the report server database are installed on the same
computer, you can use a local account. Otherwise, you must use a domain account.
A SQL Server login.
NOTE
A custom authentication extension cannot be used to connect to a report server database. Custom authentication
extensions are used only to authenticate a principal to a report server. They do not affect connections to the report server
database or to external data sources that provide content to reports.
If the instance of the Database Engine is configured for Windows Authentication and is in the same domain or a
trusted domain with the report server computer, you can configure the connection to use the service account or
a domain user account that you manage as a connection property through the Reporting Services Configuration
tool. If the database server is in a different domain or if you are using workgroup security, you must configure
the connection to use a SQL Server database login. In this case, be sure to encrypt the connection.
NOTE
When using Azure SQL Managed Instance to host report server databases, SQL Server authentication is the only
supported credential type. In addition, please note that Managed Instance cannot host report server instance.
Next steps
Create a Report Server Database
Manage a Reporting Services Native Mode Report Server
Configure the Report Server Service Account
More questions? Try asking the Reporting Services forum
E-Mail Settings - Reporting Services Native mode
(Configuration Manager)
3/5/2021 • 9 minutes to read • Edit Online
SQL Server Reporting Services includes an e-mail delivery extension so that you can distribute reports through
e-mail. Depending on how you define the e-mail subscription, a delivery might consist of a notification, link,
attachment, or embedded report. The e-mail delivery extension works with your existing mail server technology.
The mail server must be an SMTP server or forwarder. The report server connects to an SMTP server through
Collaboration Data Objects (CDO) libraries (cdosys.dll) that are provided by the operating system.
The report server e-mail delivery extension is not configured by default. You must use the Report Server
Configuration Manager to minimally configure the extension. To set advanced properties, you must edit the
RSReportServer.config file. If you cannot configure the report server to use this extension, you can deliver
reports to a shared folder instead. For more information, see File Share Delivery in Reporting Services.
Configuration Requirements
Report server e-mail delivery is implemented on Collaboration Data Objects (CDO) and requires a local or
remote Simple Mail Transfer Protocol (SMTP) server or SMTP forwarder. SMTP is not supported on all
Windows operating systems. If you are using the Itanium-based edition of Windows Server 2008, SMTP is
not supported. For more information about configuration options provided through CDO, see Configuration
CoClass on MSDN.
The configured authentication account must have permission on the SMTP server to send mail.
The e-mail delivery extension uses UTF-8 encoding in e-mail attachments. You cannot modify the encoding;
the HTML rendering extension only supports UTF-8.
NOTE
The default e-mail delivery extension does not provide support for digitally signing or encrypting outgoing mail
messages.
Repor t ser ver ser vice account (NTLM) will use the service account you specified for the
report server. If using the report server service account for authentication, verify that the service
account has Send As permissions on the SMTP server.
Selecting this option will set <SendUsing> to a value of 2 and <SMTPAuthenticate> to a value of 2 in
the rsreportserver.config.
5. Select Apply .
6. You can optionally adjust additional fields, for the email configuration, within the rsreportserver.config.
NOTE
It is recommended that you configure the mail server through the Report Server Configuration Manager.
1. Verify that the Report Server Windows service has Send As permissions on the SMTP server.
2. Open the RSReportServer.config file in a text editor.
3. Verify that <UrlRoot> is set to the report server URL address. This value is set when you configure the
report server and it should be filled in already. If it is not set, type the report server URL address.
4. In the Delivery section, find <RSEmailDPConfiguration> .
5. In <SMTPServer> , type the name of the SMTP server. This value can be an IP address, a UNC name of a
computer on your corporate intranet, or a fully qualified domain name.
6. Set <SendUsing> to a value of 2 to use the service account for the report server. Set <SendUsing> to a
value of 1 for basic authentication. If you set it to 1 , you will need to additionally supply a value for
<SendUserName> and <SendPassword> . If you want those values to be encrypted, set the authentication
within the Report Server Configuration Manager.
7. Set <SMTPAuthenticate> to a value of 1 if you set <SendUsing> to either 1 or 2.
8. Set <From> . You must specify a user account that has permission to send mail from the SMTP server.
9. Save the file.
The report server will use the new settings automatically; you do not need to restart the service. You can
specify additional SMTP settings to further configure how the SMTP server is used for report server e-
mail delivery.
NOTE
Be sure that you do not set SMTPServer if you are using a local SMTP server.
From sets the value that appears in the From: line of an e-mail message. This value is required.
To configure a local SMTP Service for the report server
1. In Control Panel, select Turn Windows features on or off to start the Add Roles and Features
Wizard .
2. Select Role-based or feature-based installation and select Next .
3. Select the server to install Internet Information Server (IIS) onto and select Next .
4. Select Next on the Server Roles page.
5. On the Features page, select SMTP Ser ver and then select Next .
If you are prompted to add features that are required for SMTP Server, select Add Features .
6. Select Next on the Web Server Role (IIS) page.
7. Select Next on the Role Services page.
8. Select Install on the Confirmation page.
9. Verify that the Simple Mail Transfer Protocol (SMTP) windows service is running in the Services
console.
To configure the local SMTP server, you will need to use the IIS 6.0 Manager under Admin tools.
10. Open the RSReportServer.config file in a text editor.
11. Verify that <UrlRoot> is set to the report server URL address. This value is set when you configure the
report server and it should be filled in already. If it is not set, type the Web Service URL address for your
report server.
12. In the Delivery section, find <RSEmailDPConfiguration> .
13. Make sure <SMTPServer> is present, but empty.
14. Set <SendUsing> to 1.
15. Set <SMTPAuthenticate> to 0.
16. Set <SMTPServerPickupDirectory> to the SMTP Service Pickup folder.
Default location will be C:\inetpub\mailroot\Pickup.
17. Set <From> . This sets the value that appears in the From: line of an e-mail message.
18. Save the file.
See Also
Report Server Configuration Manager (Native Mode)
Modify a Reporting Services Configuration File (rsreportserver.config)
Rsreportserver.config Configuration File
Configure the Unattended Execution Account
(Report Server Configuration Manager)
11/2/2020 • 5 minutes to read • Edit Online
Reporting Services provides a special account that is used for unattended report processing and for sending
connection requests across the network. The account is used in the following ways:
Send connection requests over the network for reports that use database authentication, or connect to
external report data sources that do not require or use authentication. For more information, see Specify
Credential and Connection Information for Report Data Sources.
Retrieve external image files that are used in report. If you want to use an image file and the file cannot
be accessed through Anonymous access, you can configure the unattended report processing account
and grant the account permission to access the file.
Unattended report processing refers to any report execution process that is triggered by an event (either a
schedule-driven event or data refresh event) rather than a user request. The report server uses the unattended
report processing account to log on to the computer that hosts the external data source. This account is
necessary because the credentials of the Report Server service account are never used to connect to other
computers.
IMPORTANT
Configuring the account is optional. However, if you do not configure it, you will limit your options for connecting to some
data sources, and you might not be able to retrieve image files from remote computers. If you do configure the account,
you must keep it up to date. Specifically, if you allow a password to expire or the account information is changed in Active
Directory, you will encounter the following error the next time a report is processed: "Logon failed (rsLogonFailed) Logon
failure: unknown user name or bad password." Proper maintenance of the unattended report processing account is
essential, even if you never retrieve external images or send connection requests to external computers. If you configure
the account but then find that you are not using it, you can delete it to avoid routine account maintenance tasks.
<UnattendedExecutionAccount>
<UserName></UserName>
<Password></Password>
<Domain></Domain>
</UnattendedExecutionAccount>
Once you set the values, you cannot decrypt them to view the values in plain text. If you mistype the values or
forget the values you specified, you must use the Reporting Services Configuration tool or run rsconfig -e to
start over.
NOTE
Reporting Services integration with SharePoint is no longer available after SQL Server 2016.
The unattended report processing account is used primarily to connect to external servers, and not as a login to
database servers. If you want to use the account credentials to log in to a database, you must specify credentials
in the connection string. You can specify Integrated Security=SSPI if the database server supports Windows
integrated security and the account used for unattended report processing has permission to read the database.
Otherwise, you must enter the user name and password in the connection string, where it appears in clear text
to any user who has permission to edit data source connection properties.
Although you are not prevented from using the unattended report processing account to retrieve data after the
connection is made, doing so is not recommended. The account is supposed to be used for very specific
functions. If you use it to retrieve data, you undermine the purpose for which it is intended.
See Also
Report Server Configuration Manager (SSRS Native Mode)
Configure and Manage Encryption Keys (Report
Server Configuration Manager)
11/2/2020 • 2 minutes to read • Edit Online
Reporting Services uses encryption keys to secure credentials and connection information that is stored in a
report server database. In Reporting Services, encryption is supported through a combination of public, private,
and symmetric keys that are used to protect sensitive data. The symmetric key is created during report server
initialization when you install or configure the report server, and it is used by the report server to encrypt
sensitive data that is stored in the report server. Public and private keys are created by the operating system,
and they are used to protect the symmetric key. A public and private key pair is created for each report server
instance that stores sensitive data in a report server database.
Managing the encryption keys consists of creating a backup copy of the symmetric key, and knowing when and
how to restore, delete, or change the keys. If you migrate a report server installation or configure a scale-out
deployment, you must have a backup copy of the symmetric key so that you can apply it to the new installation.
IMPORTANT
Periodically changing the Reporting Services encryption key is a security best practice. A recommended time to change
the key is immediately following a major version upgrade of Reporting Services. Changing the key after an upgrade
minimizes additional service interruption caused by changing the Reporting Services encryption key outside of the
upgrade cycle.
To manage symmetric keys, you can use the Reporting Services Configuration tool or the rskeymgmt utility.
The tools included in Reporting Services are used to manage the symmetric key only (the public and private
keys are managed by the operating system). Both the Reporting Services Configuration tool and the
rskeymgmt utility support the following tasks:
Back up a copy of the symmetric key so that you can use it to recover a report server installation or as
part of a planned migration.
Restore a previously saved symmetric key to a report server database, allowing a new report server
instance to access existing data that it did not originally encrypt.
Delete the encrypted data in a report server database in the unlikely event that you can no longer access
encrypted data.
Re-create symmetric keys and re-encrypt data in the unlikely event that the symmetric key is
compromised. As a security best practice, you should recreate the symmetric key periodically (for
example, every few months) to protect the report server database from cyber attacks that attempt to
decipher the key.
Add or remove a report server instance from a report server scale-out deployment where multiple
report servers share both a single report server database and the symmetric key that provides reversible
encryption for that database.
In This Section
Initialize a Report Server (Report Server Configuration Manager)
Explains how encryption keys are created.
Back Up and Restore Reporting Services Encryption Keys
Explains how to back up encryption keys and restore them to recover or migrate a report server installation.
Store Encrypted Report Server Data (Report Server Configuration Manager)
Describes encryption on a report server.
Delete and Re-create Encryption Keys (Report Server Configuration Manager)
Explains how you can replace a symmetric key with a new version, and how to start over if symmetric keys
cannot be validated.
Add and Remove Encryption Keys for Scale-Out Deployment (Report Server Configuration Manager)
Explains how to add and remove encryption keys to control which report servers are part of a scale-out
deployment.
See Also
Report Server Configuration Manager (Native Mode)
SSRS Encryption Keys - Initialize a Report Server
11/2/2020 • 4 minutes to read • Edit Online
In Reporting Services, an initialized server is one that can encrypt and decrypt data in a report server database.
Initialization is a requirement for report server operation. Initialization occurs when the Report Server service is
started for the first time. It also occurs when you join the report server to the existing deployment, or when you
manually recreate the keys as part of the recovery process. For more information about how and why
encryption keys are used, see Configure and Manage Encryption Keys (Report Server Configuration Manager)
and Store Encrypted Report Server Data (Report Server Configuration Manager).
Encryption keys are based partly on the profile information of the Report Server service. If you change the user
identity used to run the Report Server service, you must update the keys accordingly. If you are using the
Reporting Services Configuration tool to change the identity, this step is handled for you automatically.
If initialization fails for some reason, the report server returns an RSRepor tSer verNotActivated error in
response to user and service requests. In this case, you may need to troubleshoot the system or server
configuration. For more information, see SSRS: Troubleshoot Issues and Errors with Reporting Services
(https://social.technet.microsoft.com/wiki/contents/articles/1633.aspx) in Technet Wiki.
NOTE
RSKeymgmt is a console application that you run from a command line on a computer that hosts a report server
instance that is already part of a scale-out deployment. When you run the utility, you specify arguments to select a
remote report server instance that you want to initialize.
A report server will be initialized only if there is a match between the installation identifier and the public key. If
the match succeeds, a symmetric key is created that permits reversible encryption. If the match fails, the report
server is disabled, in which case you may be required to apply a backup key or delete the encrypted data if a
backup key is unavailable or not valid. For more information about encryption keys used by a report server, see
Configure and Manage Encryption Keys (Report Server Configuration Manager).
NOTE
You can also use the Reporting Services Windows Management Instrumentation (WMI) provider to initialize a report
server programmatically. For more information, see Access the Reporting Services WMI Provider.
See Also
Configure and Manage Encryption Keys (Report Server Configuration Manager)
SSRS Encryption Keys - Store Encrypted Report
Server Data
11/2/2020 • 4 minutes to read • Edit Online
Reporting Services stores encrypted values in the report server database and in configuration files. Most
encrypted values are credentials that are used for accessing external data sources that provide data to reports.
This topic describes which values are encrypted, the encryption functionality used in Reporting Services, and
other kinds of stored confidential data that you should know about.
Encrypted Values
The following list describes the values that are stored in a Reporting Services installation.
Connection information and credentials used by a report server to connect to a report server database
that stores internal server data.
These values are specified and encrypted during setup or report server configuration. You can update the
connection information at any time using the Reporting Services Configuration tool or the rsconfig
utility. Encryption of configuration settings is performed by using the machine-level key of the local
computer that is available to all users. Encrypted report server connection information is stored in the
rsreportserver.config file (no other configuration file contains encrypted settings). For more information,
see Configure a Report Server Database Connection (Report Server Configuration Manager).
Stored credentials that are used by a report server to connect to external data sources that provide data
to a report.
These values are defined when you configure data source information for a report, and then stored as
encrypted values in a report server database. The report server uses a symmetric key to encrypt and
decrypt this data. For more information about stored credentials, see Specify Credential and Connection
Information for Report Data Sources.
An unattended user account used by the report server to connect to other computers to retrieve external
images files or external data that is used in a report.
This account is used when a connection to a remote computer is required and no other credentials are
available to make the connection. This account is primarily used to support unattended report processing
for reports that do not use credentials to access a data source. If you create reports based on data
sources that do not require or use credentials when accessing data, you must configure this account for
the report server to use.
This account is required under certain circumstances and can only be created through the Reporting
Services Configuration tool or rsconfig . This value is also stored in the rsreportserver.config file. You
must create this account manually. For more information about this account and how it is used, see
Configure the Unattended Execution Account (Report Server Configuration Manager).
The symmetric key used for encryption.
This value is created during setup or server configuration, and then stored as an encrypted value in the
report server database. The Report Server Windows service uses this key to encrypt and decrypt data
that is stored in the report server database.
Encryption Functionality in Reporting Services
Reporting Services uses cryptographic functions that are part of the Windows operating system. Both
symmetric and asymmetric encryption are used.
Data in the report server database is encrypted using a symmetric key. There is a single symmetric key for each
report server database. This symmetric key is itself encrypted using the public key of an asymmetric key pair
generated by Windows. The private key is held by the Report Server Windows service account.
In a report server scale-out deployment where multiple report server instances share the same report server
database, a single symmetric key is used by all report server nodes. Each node must have a copy of the shared
symmetric key. A copy of the symmetric key is created for each node automatically when the scale-out
deployment is configured. Each node encrypts its copy of the symmetric key using the public key of a key pair
specific to its Windows service account. To learn more about how the symmetric key is created for both single
instance and scale-out deployments, see Initialize a Report Server (Report Server Configuration Manager).
Also, starting in 2019, the report server database can be configured with Transparent Data Encryption in SQL
Server to provide additional protection for your data at rest.
NOTE
When you change the Report Server Windows service account, the asymmetric keys can become invalid, which will disrupt
server operations. To avoid this problem, always use the Reporting Services Configuration tool to modify service account
settings. When you use the configuration tool, the keys are updated for you automatically. For more information, see
Configure the Report Server Service Account (Report Server Configuration Manager).
NOTE
Reporting Services does not support caching or report history for reports that use parameters based on the security
identify of the user.
See Also
Configure and Manage Encryption Keys (Report Server Configuration Manager)
SSRS Encryption Keys - Back Up and Restore
Encryption Keys
3/5/2021 • 4 minutes to read • Edit Online
NOTE
Reporting Services integration with SharePoint is no longer available after SQL Server 2016.
It is necessary to restore the backup copy of the encryption key when any of the following events occur:
Changing the Report Server Windows service account name or resetting the password. When you use
the Report Server Configuration Manager, backing up the key is part of a service account name change
operation.
NOTE
Resetting the password is not the same as changing the password. A password reset requires permission to
overwrite account information on the domain controller. Password resets are performed by a system administrator
when you forget or do not know a particular password. Only password resets require symmetric key restoration.
Periodically changing an account password does not require you to reset the symmetric key.
Renaming the computer or instance that hosts the report server (a report server instance is based on a
SQL Server instance name).
Migrating a report server installation or configuring a report server to use a different report server
database.
Recovering a report server installation due to hardware failure.
You only need to back up one copy of the symmetric key. There is a one-to-one correspondence between a
report server database and a symmetric key. Although you only need to back up one copy, you might need to
restore the key multiple times if you are running multiple report servers in a scale-out deployment model. Each
report server instance will need its copy of the symmetric key to lock and unlock data in the report server
database.
Backing up the symmetric key is a process that writes the key to a file that you specify, and then scrambles the
key using a password that you provide. The symmetric key can never be stored in an unencrypted state so you
must provide a password to encrypt the key when you save it to disk. After the file is created, you must store it
in a secure location and remember the password that is used to unlock the file. To backup the symmetric key,
you can use the following tools:
Native mode: Either the Report Server Configuration Manager or the rskeymgmt utility.
SharePoint mode: SharePoint Central Administration pages or PowerShell.
See Also
Configure and Manage Encryption Keys (Report Server Configuration Manager)
Delete and Recreate Encryption Keys (Report
Server Configuration Manager)
11/2/2020 • 5 minutes to read • Edit Online
Deleting and recreating encryption keys are activities that fall outside of routine encryption key maintenance.
You perform these tasks in response to a specific threat to your report server, or as a last resort when you can
no longer access a report server database.
Recreate the symmetric key when you believe the existing symmetric key is compromised. You can also
recreate the key on a regular basis as a security best practice.
Delete existing encryption keys and unusable encrypted content when you cannot restore the symmetric
key.
rskeymgmt -s
rskeymgmt -d
2. Restart the Report Server Windows service. For a scale-out deployment, do this on all report server
instances.
How to re -specify encrypted values
1. For each shared data source, you must retype the connection string.
2. For each report and shared data source that uses stored credentials, you must retype the user name and
password, and then save. For more information, see Specify Credential and Connection Information for
Report Data Sources.
3. For each data-driven subscription, open each subscription and retype the credentials to the subscription
database.
4. For subscriptions that use encrypted data (this includes the File Share delivery extension and any third-
party delivery extension that uses encryption), open each subscription and retype credentials.
Subscriptions that use Report Server e-mail delivery do not use encrypted data and are unaffected by the
key change.
See Also
Configure and Manage Encryption Keys (Report Server Configuration Manager)
Store Encrypted Report Server Data (Report Server Configuration Manager)
Add and Remove Encryption Keys for Scale-Out
Deployment
11/2/2020 • 3 minutes to read • Edit Online
You can run Reporting Services in a scale-out deployment model by configuring multiple report servers to use a
shared report server database. Membership in a scale-out deployment is based on whether the report server
stores an encryption key in the report server database. You can control scale-out deployment membership by
adding and removing encryption keys for specific report server instances. If you are removing nodes from the
deployment, you can remove them in any order. If you are adding nodes to a deployment, you must join any
new instances from a report server that is already part of the deployment.
See Also
Configure and Manage Encryption Keys (Report Server Configuration Manager)
Initialize a Report Server (Report Server Configuration Manager)
Subscription Settings and a File Share Account
(Report Server Configuration Manager)
3/5/2021 • 3 minutes to read • Edit Online
Use the Subscription Settings page of the Reporting Services Configuration Manager to configure a file share
account for Native mode report servers and file share subscriptions. The file share account allows you to use a
single set of credentials in multiple subscriptions that deliver reports to a file share. When it is time to change
the credentials, you configure the change for the file share account and you do not need to update each
individual subscription.
Two workflows exist with Reporting Services file share subscriptions:
New in the SQL Server 2016 (13.x) release, your Reporting Services administrator can configure a single
file share account, that is used for one to many subscriptions. Configure the Specify a file share
account , and then on individual subscription configuration pages, users select Use file share account .
Configure individual subscriptions with specific credentials for the destination file share.
You can also mix the two approaches and have some file share subscriptions use the central file share
account while other subscriptions use specific credentials.
Applies to: Reporting Services Native mode.
# get all file share subscriptions using the default file share account
$extensionNameMatch = "Report Server FileShare"
$extensionSettingMatch = "DEFAULTCREDENTIALS"
$valueMatch = "True"
Write-Host "----- File share subscriptions using the default file share account ----";
Write-Host "-------------------------------------------------------------------------- ";
$subscriptions | extensionSettingFilter | select report, owner, status, lastexecuted, description,
subscriptionid | format-table -auto
-----------------------------------------------------------------------------------------------------
See Also
File Share Delivery in Reporting Services
Create and Manage Subscriptions for Native Mode Report Servers
Configure a Native Mode Report Server Scale-Out
Deployment
8/27/2021 • 8 minutes to read • Edit Online
APPLIES TO: ✔
️ SQL Server Reporting Services Enterprise Edition (2017 and later) ✔
️ Power BI Report Server
Reporting Services native mode supports a scale-out deployment model that allows you to run multiple report
server instances that share a single report server database. Scale-out deployments are used to increase
scalability of report servers to handle more concurrent users and larger report execution loads. It can also be
used to dedicate specific servers to process interactive or scheduled reports.
IMPORTANT
For Power BI Report Server, you need to configure client affinity (sometimes called sticky sessions or persistence) on the
load balancer for any scale-out environment to ensure proper performance and consistent Power BI (PBIX) report
functionality.
For SQL Server 2016 Reporting Services and earlier, SharePoint mode report servers utilize the SharePoint
products infrastructure for scale-out. SharePoint mode scale-out is performed by adding more SharePoint mode
report servers to the SharePoint farm. For information on scale-out in SharePoint mode, see Add an Additional
Report Server to a Farm (SSRS Scale-out).
NOTE
Reporting Services integration with SharePoint is no longer available after SQL Server 2016.
Service accounts
The service accounts used for the Reporting Services instance are important when dealing with a scale-out
deployment. You should do one of the following when deploying your Reporting Services instances.
Option 1: All of the Reporting Services instances should be configured with the same domain user account for
the service account.
Option 2: Each individual service account, domain account or not, need to be granted dbadmin permissions
within the SQL Server database instance that is hosting the ReportServer catalog database.
If you have configured a different configuration than either of the above options, you may encounter
intermittent failures of modifying tasks with SQL Agent. This will show up as an error in both the Reporting
Services log and on the web portal when editing a report subscription.
An error occurred within the report server database. This may be due to a connection failure, timeout or
low disk condition within the database.
The issue will be intermittent is that only the server who created the SQL Agent task will have rights to view,
delete or edit the item. If you don't do one of the above options, the operations will only succeed when the load
balancer sends all of your requests for that subscription to the server that created the SQL Agent task.
3. On the Scale-out Deployment page, select the report server instance that is waiting to join the
deployment, and select Add Ser ver .
NOTE
Issue: When you attempt to join a Reporting Services report server instance to the scale-out deployment, you
may experience error messages similar to 'Access Denied'.
Workaround: Back up the Reporting Services encryption key from the first Reporting Services instance and
restore the key to the second Reporting Services report server. Then try to join the second server to the
Reporting Services scale-out deployment.
4. You should now be able to verify that both report server instances are operational. To verify the second
instance, you can use the Reporting Services Configuration tool to connect to the report server and click
the Web Ser vice URL or the Web Por tal URL .
If you plan to run the report servers in a load-balanced server cluster, additional configuration is required. For
more information, see Configure a Report Server on a Network Load Balancing Cluster.
Next steps
Configure a Service Account Configure a URL
Create a Native Mode Report Server Database
Configure Report Server URLs
Configure a Report Server Database Connection
Add and Remove Encryption Keys for Scale-Out Deployment
Manage a Reporting Services Native Mode Report Server
More questions? Try asking the Reporting Services forum
Power BI Report Server Integration (Configuration
Manager)
5/25/2021 • 8 minutes to read • Edit Online
APPLIES TO: ✔
️ SQL Server 2016 Reporting Services and later ✔
️ Power BI Report Server
The Power BI Integration page in Reporting Services Configuration Manager is used to register the report
server with the desired Azure Active Directory (AD) managed tenant to allow users of the report server to pin
supported report items to Power BI dashboards. For a list of the supported items you can pin, see Pin Reporting
Services items to Power BI Dashboards.
NOTE
Make sure that port 443 is not blocked.
3. At the Microsoft sign-in dialog, enter the credentials you use to sign into Power BI.
4. After the registration is complete, the Power BI Registration Details section will note the Azure Tenant
ID and the Redirect URL(s). The URLs are used as part of the sign-in and communication process for the
Power BI dashboard to communicate back to the registered report server.
5. Select the Copy button in the Results window to copy the registration details to the Windows clipboard
so you can save them for future reference.
Update Registration
Use the Update Registration if the configuration of your report server has changed. For example if you want
to add or remove the URLS your users use to browse to the web portal.
In Reporting Services Configuration Manager, select the Web Por tal URL
Select Advanced .
Select Add to add a new HTTP identity for the web portal and then select OK .
The Power BI icon will change to indicate the server configuration has changed.
On the Power BI Integration page, select Update Registration .
You will be prompted to login to Azure AD. The page will refresh and you will see the new URL listed in
the Redirect URLs .
Next steps
My Settings for Power BI Integration (web portal)
Pin Reporting Services items to Power BI Dashboards Dashboards in Power BI
More questions? Try asking the Reporting Services forum
Install Reporting Services 2016 in SharePoint mode
3/5/2021 • 2 minutes to read • Edit Online
APPLIES TO: ✔
️ SQL Server Reporting Services (2016) ❌ SQL Server Reporting Services (2017) ✔
️
SharePoint ❌ Power BI Report Server
For content related to previous versions of SQL Server Reporting Services (SSRS), see SQL Server 2014
Reporting Services.
SQL Server Reporting Services in SharePoint, enables report creation and viewing in document libraries,
Reporting Services subscription delivery of reports through email, Power View, data alerting, and report
management features, all in a deployment of based of Microsoft SharePoint. For more information regarding
features in SharePoint mode, see the section "Feature Support and Behavior Differences by Server Mode" in
Reporting Services Report Server.
NOTE
Reporting Services integration with SharePoint is no longer available after SQL Server 2016.
There are two core Reporting Services components to install for Reporting Services in SharePoint mode:
Repor t Ser ver : The Microsoft SQL Server Reporting The report server handles the data and report processing
Services report server installed in SharePoint Mode and rendering as well subscription and Data Alert
processing. The SharePoint mode report server is designed
and installed as a SharePoint Shared Service.
Add-in: The Microsoft SQL Server Reporting Services add- The add-in installs the Reporting Services user interface (UI)
in for SharePoint products, rssharepoint.msi. pages and features on a SharePoint web front-end server.
The UI features include Power View, administration pages in
SharePoint Central Administration, feature pages used within
SharePoint document libraries, and Reporting Services Data
Alerting pages.
In this section
Supported Combinations of SharePoint and Reporting Services Server and Add-in (SQL Server 2016)
Where to find the Reporting Services add-in for SharePoint Products
Install The First Report Server in SharePoint Mode
Install or Uninstall the Reporting Services Add-in for SharePoint
Add an Additional Report Server to a Farm (SSRS Scale-out)
Add an Additional Reporting Services Web Front-end to a Farm
Configure E-mail for a Reporting Services Service Application (SharePoint 2013 and SharePoint 2016)
Provision Subscriptions and Alerts for SSRS Service Applications
Claims to Windows Token Service (c2WTS) and Reporting Services
Next steps
Data Alerts Architecture and Workflow
Data Alert Manager for Alerting Administrators
More questions? Try asking the Reporting Services forum
Supported combinations of SharePoint and
Reporting Services server
8/30/2021 • 3 minutes to read • Edit Online
APPLIES TO: ✔
️ SQL Server Reporting Services (2016) ❌ SQL Server Reporting Services (2017) ✔
️
SharePoint ❌ Power BI Report Server
For content related to previous versions of SQL Server Reporting Services (SSRS), see SQL Server 2014
Reporting Services.
A SQL Server Reporting Services report server installed in SharePoint mode requires a version of SharePoint
and the SQL Server Reporting Services add-in (rsSharePoint.msi) for SharePoint products, which you install on
the SharePoint servers. This topic summarizes the supported combinations.
NOTE
Reporting Services integration with SharePoint is no longer available after SQL Server 2016. To add a report within a
SharePoint site using SQL Server Reporting Services 2017 and later, use the Report Viewer web part.
5 SQL Server 2012 SP4 SQL Server 2014 and SQL SharePoint 2013
Server 2012 SP4
6 SQL Server 2012 SP3 SQL Server 2014 and SQL SharePoint 2013
Server 2012 SP3
7 SQL Server 2012 SP2 SQL Server 2014 and SQL SharePoint 2013
Server 2012 SP2
8 SQL Server 2012 SP1 SQL Server 2014 and SQL SharePoint 2013
Server 2012 SP1
N UM B ER REP O RT SERVER A DD- IN SH A REP O IN T VERSIO N
9 SQL Server 2012 and SQL SQL Server 2014 SharePoint 2010
Server 2012 SP1*
12 SQL Server 2008 R2 SQL Server 2012 and SQL SharePoint 2010
Server 2012 SP1 or later
16 SQL Server 2008 SP2 SQL Server 2008 and SQL SharePoint 2007
Server 2008 SP2
Next steps
Where to find the Reporting Services add-in for SharePoint Products
Features Supported by the Editions of SQL Server 2016
Hardware and Software Requirements for Installing SQL Server 2016
More questions? Try asking the Reporting Services forum
Where to find the Reporting Services add-in for
SharePoint Products
3/5/2021 • 2 minutes to read • Edit Online
The Microsoft SQL Server Reporting Services (SSRS) add-in for SharePoint Products and Technologies
(rssharepoint.msi) is a Web download that provides features to integrate a report server with a deployment of
SharePoint.
IMPORTANT
For a list of the supported combinations of the Reporting Services add-in, report server, and SharePoint, see Supported
Combinations of SharePoint and Reporting Services Server and Add-in (SQL Server 2016).
SQL Server 2012 (11.x) Reporting Services Add-in for SharePoint 2010
Products
In the SQL Server 2016 release, the add-in can be installed as part of the SQL Server Installation wizard, in the
Feature Selection page. If you want to download and install the add-in separately, the most up-to-date version of
this file is available online at the Microsoft Download Center at Microsoft® SQL Server® 2012 Reporting
Services Add-in for Microsoft® SharePoint® Technologies 2010 page.
Next steps
Install or Uninstall the Reporting Services Add-in for SharePoint
You are not able to browse SharePoint pages in non-default zone after uninstalling Reporting Services add-in
More questions? Try asking the Reporting Services forum
Install the first Report Server in SharePoint mode
3/31/2021 • 18 minutes to read • Edit Online
APPLIES TO: ✔
️ SQL Server Reporting Services (2016) ❌ Power BI Report Server ✔
️ SharePoint
The procedures in this topic guide you through a single server installation of Reporting Services in SharePoint
mode. The steps include running the SQL Server installation wizard as well as configuration tasks that use
SharePoint Central Administration. The topic can also be used for individual procedures for updating an existing
installation, for example to create a Reporting Services service application.
NOTE
Reporting Services integration with SharePoint is no longer available after SQL Server 2016.
For information on adding more Reporting Services servers to an existing farm, see the following:
Add an Additional Report Server to a Farm (SSRS Scale-out)
Add an Additional Reporting Services Web Front-end to a Farm
A single server installation is useful for development and testing scenarios but it is not recommended for
production environments.
NOTE
For SharePoint 2016, Excel Services has moved to the Office Online Server and cannot be used in a single server
deployment. Office Online Server has to be deployed to a different server. For more information, see Office Online Server
overview and Configure Excel Online administrative settings.
C O M P O N EN T DESC RIP T IO N
(3) The Excel Service Application used by Power View and Power
Pivot. This is not available in a single server deployment for
SharePoint 2016. An Office Online Server is required.
C O M P O N EN T DESC RIP T IO N
TIP
For more complex deployment examples, see Deployment Topologies for SQL Server BI Features in SharePoint.
Setup accounts
This section describes the accounts and permissions used for the primary deployment steps of Reporting
Services in SharePoint mode.
Installation and registering the Repor ting Ser vices Ser vice:
The current account during the installation (referred to as the 'setup' account) of Reporting Services in
SharePoint mode needs to have administrative rights in the local computer. If you are installing Reporting
Services after SharePoint is installed and the 'setup' account is also a member of the SharePoint farm
administrators group, the Reporting Services installation will register the Reporting Services service for you.
If you install Reporting Services before SharePoint is installed or the 'setup' account is not a member of the
farm administrators group, you register the service manually. See the section Step 2: Register and Start the
Reporting Services SharePoint Service.
Creating Repor ting Ser vices Ser vice Applications
Following installation and registering the Reporting Services service, create one or more Reporting
Services service applications. The "SharePoint farm service account " needs to temporarily be a member
of the local administrators group so the Reporting Services service application can be created. For more
information on SharePoint 2013 account permissions, see Account permissions and security settings in
SharePoint 2013 (https://technet.microsoft.com/library/cc678863.aspx) or for SharePoint 2016, see
Account permissions and security settings in SharePoint 2016.
It is security best practice that SharePoint farm administrator accounts are not also local operating system
administrator accounts. If you add a farm admin account to the local administrators group as part of your
installation process, it is recommended you remove the account from the local administrators group after
installation is complete.
IMPORTANT
For SharePoint 2016, the SharePoint server that Reporting Services will be installed on needs to have the Custom server
role. The deployment of Reporting Services will succeed on a SharePoint server that is not in the Custom role, but during
the next SharePoint maintenance window, MinRole will stop the Reporting Services service because it detects that
Reporting Services in SharePoint-integrated mode does not indicate support for any of the other SharePoint server roles.
The Reporting Services service application only supports the Custom role.
NOTE
If you plan to install the Power Pivot service as well, on SharePoint 2016, install that prior to installing Reporting Services.
The Power Pivot service can only be installed on a SharePoint server in the Custom role.
NOTE
This does not apply to SharePoint 2013.
1. Log onto the SharePoint server that you plan to install Reporting Services.
2. Launch the SharePoint 2016 Management Shell as an adminsitrator.
You can right-click on the SharePoint 2016 Management Shell and select Run as adminsitrator .
3. From the PowerShell command prompt, run the following command.
NOTE
Make sure you specify the correct name of the SharePoint server.
4. You should see a response that a timer job was scheduled. You will need to wait for the job to execute.
5. Use the following command to verify the server's assigned role.
Get-SPServer SERVERNAME
9. If you selected the Database Engine services, accept the default instance of MSSQLSERVER on the
Instance Configuration page and click Next .
The Reporting Services SharePoint service architecture is not based on a SQL Server "instance" as
was the previous Reporting Services architecture.
10. If you see the Ser ver Configuration page type appropriate credentials. If you want to use the Reporting
Services data alerting or subscription features, you need to change the Star tup Type for SQL Server
Agent to Automatic . You may not see the Ser ver Configuration page, depending on what is already
installed on the computer.
Select Next .
11. If you selected the Database Engine services, you will see the Database Engine Configuration page,
add appropriate accounts to the list of SQL Administrators and select Next .
12. On the Repor ting Ser vices Configuration page you should see the Install only option is selected.
This option installs the report server files, and does not configure the SharePoint environment for
Reporting Services.
NOTE
When the SQL Server installation is complete, follow the other sections of this topic to configure the SharePoint
environment. This includes installing the Reporting Services shared service and creating Reporting Services service
applications.
13. Review any warnings and then select Next on the Feature Configuration Rules page if you stop on
this page.
14. On the Ready to Install page, review the installation summary. The summary will include a Repor ting
Ser vices SharePoint Mode child node that will show a value of SharePointFilesOnlyMode . Select
Install .
15. The installation will take several minutes. You will see the Complete page with the features listed and the
status of each feature. You may see an information dialog indicating the computer needs to be restarted.
NOTE
If you are installing into an existing SharePoint farm, you do not need to complete the steps in this section. The Reporting
Services SharePoint service is installed and started when you ran the SQL Server installation wizard as part of the
previous section of this document.
The following are the common reasons why you need to manually register the Reporting Services service.
You installed Reporting Services SharePoint mode before SharePoint was installed.
The account used to install Reporting Services SharePoint mode, was not a member of the SharePoint
farm administrators group. For more information, see the section Setup accounts.
The necessary files were installed as part of the SQL Server installation wizard, but the services need to be
registered into the SharePoint farm.
The following steps guide you through opening the SharePoint Management Shell and running PowerShell
cmdlets:
1. Select the Star t button
2. Select the Microsoft SharePoint 2016 Products or Microsoft SharePoint 2013 Products group.
3. Right-click SharePoint 2016 Management Shell , or SharePoint 2013 Management Shell , select
Run as administrator .
NOTE
The SharePoint commands are not recognized in the standard Windows PowerShell window. Use the SharePoint
Management Shell.
4. Run the following PowerShell command to install the Reporting Services SharePoint service. A successful
completion of the command displays a new line in the management shell. No message is returned to
the management shell when the command completes successfully:
Install-SPRSService
5. Run the following PowerShell command to install the Reporting Services service proxy. A successful
completion of the command displays a new line in the management shell. No message is returned to
the management shell when the command completes successfully:
Install-SPRSServiceProxy
6. Run the following PowerShell command to start the service or see the following notes for instructions on
how to start the service from SharePoint Central administration:
IMPORTANT
If you see an error message similar to the following:
> Install-SPRSService : The term 'Install-SPRSService' **is not recognized** as the name of a
cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was
included, verify that the path is correct and try again.
Either you are in the Windows Powershell instead of the SharePoint Management Shell or Reporting
Services SharePoint mode is not installed. For more information on Reporting Services and
PowerShell, see PowerShell cmdlets for Reporting Services SharePoint Mode.
You can also start the service from SharePoint central Administration rather than running the third PowerShell
command. The following steps are also useful to verify that the service is running.
1. In SharePoint Central Administration, click Manage Ser vices on Ser ver in the System Settings
group.
2. Find SQL Ser ver Repor ting Ser vices Ser vice and click Star t in the Action column.
3. The status of the Reporting Services service will change from Stopped to Star ted . If the Reporting
Services service is not in the list, use PowerShell to install the service.
NOTE
If the Reporting Services service stays in the Star ting status and does not change to Star ted , verify the
'SharePoint 2013 Administration' service is started in Windows Server Manager.
IMPORTANT
If the Reporting Services option does not appear in the list, it is an indication that the Repor ting Ser vices
shared ser vice is not installed . Review the previous section on how to use PowerShell cmdlts to install the
Reporting Services service.
4. In the Create SQL Ser ver Repor ting Ser vices Ser vice Application page, enter a name for the
application. If you are creating multiple Reporting Services service applications, a descriptive name or
naming convention will help you organize your administration and management operations.
5. In Application Pool section, create a new application pool for the application (recommended). If you use
the same name for both the application pool and the services application, it can make ongoing
administration easier. This can also be affected by how many service applications you will create and if
you need to use several in a single application pool. See the SharePoint Server documentation on
recommendations and best practices for application pool management.
Select or create a security account for the application pool. Be sure to specify a domain user account. A
domain user account enables the use of the SharePoint managed account feature, which lets you update
passwords and account information in one place. Domain accounts are also required if you plan to scale
out the deployment to include additional service instances that run under the same identity.
6. In the Database Ser ver , you can use the current server or choose a different SQL Server.
7. In Database Name the default value is ReportingService_<guid> , which is a unique database name. If
you type a new value, type a unique value. This is the new database to be created specifically for the
services application.
8. In Database Authentication , the default is Windows Authentication. If you choose SQL
Authentication , refer to SharePoint documentation for best practices on how to use this authentication
type in a SharePoint deployment.
9. In the Web Application Association section, select the Web Application to be provisioned for access by
the current Reporting Services Service Application. You can associate one Reporting Services service
application to one web application. If all of the current web applications are already associated with a
Reporting Services service application, you see a warning message.
10. Select OK .
11. The process to create a service application could take several minutes to complete. When it is complete,
you will see a confirmation message and a link to a Provision Subscriptions and Aler ts page.
Complete the provision step if you want to use the Reporting Services subscriptions feature or the data
alerts feature. For more information, see Provision Subscriptions and Alerts for SSRS Service
Applications.
$starttime=Get-Date
write-host -foregroundcolor DarkGray StartTime>> $starttime
Write-Host -ForegroundColor Green "Install SSRS Service and Service Proxy, and start the service"
Write-Host -ForegroundColor Green
">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"
Write-Host -ForegroundColor Green " Install the Reporting Services Service Proxy"
Install-SPRSServiceProxy
$time=Get-Date
write-host -foregroundcolor DarkGray StartTime>> $starttime
write-host -foregroundcolor DarkGray $time
Write-Host -ForegroundColor Green "Create a new application pool and Reporting Services service application"
Write-Host -ForegroundColor Green
">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"
Write-Host -ForegroundColor Green "Create a new application pool"
#!!!! update "-Account" with an existing Managed Service Account
New-SPServiceApplicationPool -Name "Reporting Services" -Account "<domain>\User name>"
$appPool = Get-SPServiceApplicationPool "Reporting Services"
Write-Host -ForegroundColor Green " Create the Reporting Services Service Application"
#!!!! Update "-DatabaseServer", an instance of the SQL Server database engine
$rsService = New-SPRSServiceApplication -Name "Reporting Services Application" -ApplicationPool $appPool -
DatabaseName "Reporting_Services_Application" -DatabaseServer "<server name>"
Write-Host -ForegroundColor Green "Create the Reporting Services Service Application Proxy"
$rsServiceProxy = New-SPRSServiceApplicationProxy -Name "Reporting Services Application Proxy" -
ServiceApplication $rsService
Write-Host -ForegroundColor Green "Associate service application proxy to default web site and grant web
applications rights to SSRS application pool"
Write-Host -ForegroundColor Green
">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"
# Associate the Reporting Services Service Applicatoin Proxy to the default web site...
Get-SPServiceApplicationProxyGroup -default | Add-SPServiceApplicationProxyGroupMember -Member
$rsServiceProxy
$time=Get-Date
write-host -foregroundcolor DarkGray StartTime>> $starttime
write-host -foregroundcolor DarkGray $time
Write-Host -ForegroundColor Green "Enable the PowerView and reportserver site features"
Write-Host -ForegroundColor Green
">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"
#!!!! update "-url" of the site where you want the features enabled
Enable-SPfeature -identity "powerview" -Url https://server/sites/bi
Enable-SPfeature -identity "reportserver" -Url https://server/sites/bi
Additional configuration
This section describes additional configuration steps that are important in most SharePoint deployments.
Configure Excel Services and Power Pivot
If you want to view Power View Power View reports in an Excel 2016, or Excel 2013, workbook in SharePoint,
Excel Services needs to be configured to use an Analysis Services Server in Power Pivot mode.
For SharePoint 2016, an Office Online Server needs to be configured in order to use Excel Services. For detailed
information, refer to the following white papers.
Deploying SQL Server 2016 PowerPivot and Power View in SharePoint 2016
Deploying SQL Server 2016 PowerPivot and Power View in a Multi-Tier SharePoint 2016 Farm
For SharePoint 2016, you will need to create, and configure, an Excel Services Application. For more information,
see the following:
The section "Configure Excel Services for Analysis Services integration" in Install Analysis Services in
Power Pivot Mode.
Manage Excel Services data model settings (SharePoint Server 2013).
Also, the application pool security account used by the Reporting Services service application, must be an
administrator on the Analysis Services Server.
Provision subscriptions and alerts
The Reporting Services subscription and data alert features may require the configuration of SQL Server Agent
permissions. If you see an error message that indicates SQL Server Agent is required and you have verified SQL
Server Agent is running, update the permissions. You can click the link Provision Subscriptions and Aler ts
on the create service application success page to go to another page for provisioning SQL Server Agent. The
provision step is needed if your deployment crosses computer boundaries, for example when the SQL Server
database instance is on a different computer. For more information, see Provision Subscriptions and Alerts for
SSRS Service Applications
Configure e -mail for SSRS service applications
The Reporting Services data alerts feature sends alerts in e-mail messages. To send e-mail you may need to
configure your Reporting Services service application and you may need to modify the e-mail delivery
extension for the service application. If you plan to use the e-mail delivery extension for the Reporting Services
subscription feature, the e-mail settings are required. For more information, see Configure E-mail for a
Reporting Services Service Application (SharePoint 2013 and SharePoint 2016).
Add Reporting Services content types to content libraries
Reporting Services provides predefined content types that are used to manage shared data source (.rsds) files,
and Report Builder report definition (.rdl) files. Adding a Repor t Builder Repor t and Repor t Data Source
content type to a library enables the New command so that you can create new documents of that type. For
more information, see Add Reporting Services Content Types to a SharePoint Library.
Activate the Report Server File Sync Feature
If users will frequently upload published report items directly to SharePoint document libraries, the Repor t
Ser ver File Sync site level feature will be beneficial. The file sync feature will synchronize the report server
catalog with items in document libraries on a more frequent basis. For more information, see Activate the
Report Server File Sync Feature in SharePoint Central Administration.
Next steps
PowerShell cmdlets for Reporting Services SharePoint Mode
Upgrade and Migrate Reporting Services
Editions and Supported Features for SQL Server 2016
Reporting Services SharePoint Service and Service Applications
More questions? Try asking the Reporting Services forum
Install or Uninstall the Reporting Services Add-in for
SharePoint (SSRS)
3/5/2021 • 11 minutes to read • Edit Online
APPLIES TO: ✔
️ SQL Server Reporting Services (2016) ❌ Power BI Report Server ✔
️ SharePoint
Run the installation package Microsoft SQL Server Reporting Services Add-in for SharePoint products
(rsSharePoint.msi) on SharePoint servers to enable Reporting Services features within a SharePoint deployment.
Features include Power View, a Report Viewer Web Part, a URL proxy endpoint, Reporting Services content types
and application pages so that you can create, view, and manage reports, data sources and other report server
content on a SharePoint site. The Reporting Services Add-in for SharePoint products is a required component
for a report server that runs in SharePoint mode. The add-in can be installed from either the SQL Server 2016
setup wizard or by downloading the rsSharePoint.msi from the SQL Server 2016 feature pack. For a list of the
versions of the add-in and download pages, see Where to find the Reporting Services add-in for SharePoint
Products.
NOTE
Reporting Services integration with SharePoint is no longer available after SQL Server 2016.
Prerequisites
Installing the Reporting Services Add-in is one of several steps that are necessary for integrating a report server
with an instance of a SharePoint product. For more information on installing and configuring Reporting
Services, see Install the first Report Server in SharePoint mode.
If you are integrating Reporting Services with a SharePoint farm that has multiple Web front end
applications, install the add-in to each computer in the farm that has a Web server front-end. Do this only
for Web front ends that will be used to access report server content.
To install the Reporting Services Add-in, you must be an administrator on the computer. For example if
you are going to run the rsSharePoint.msi at the command prompt, you should open the command
prompt with administrator privileges by using the Run as administrator option.
To install the Reporting Services Add-in, you must be a member of the SharePoint Farm Administrators
group.
You must be a Site Collection administrator to activate the Reporting Services integration feature.
NOTE
The advantage of installing the add-in prior to the SharePoint product is that as new servers are added to the farm, the
Reporting Services Add-in will be configured and activated by the SharePoint farm.
NOTE
If you use the /q switch for a silent command line installation, the end-user license agreement will not be
displayed. Regardless of the installation method, the use of this software is governed by a license agreement and
you are responsible for complying with the license agreement.
Rssharepoint.msi /?
1. Download the Setup program (rsSharepoint.msi ) for the Reporting Services Add-in. For more
information on downloading the add-in, see Where to find the Reporting Services add-in for SharePoint
Products.
2. As an administrator, run rsSharepoint.msi to run the Installation Wizard. The wizard displays a
Welcome page, the Software license terms, and a registration information page. Setup creates folders
under the following path and copies files to the folders:
%program files%\common files\Microsoft Shared\Web Server Extensions\15\ (SharePoint 2013)
or
%program files%\common files\Microsoft Shared\Web Server Extensions\16\ (SharePoint 2016)
3. Configure the report server settings and feature activation in SharePoint Central Administration. . For
more information on installing and configuring Reporting Services SharePoint mode, see Install the first
Report Server in SharePoint mode.
Files-only installation
To install the files but skip the custom action phase of installation, run the rssharepoint.msi from the command
line with the SKIPCA option.:
1. Open a command prompt with administrator permissions .
2. Run the following command:
The installation user interface will open and run as normal and the rsCustomAction.exe file is installed.
However, the .exe will not run at the end of the installation and rsCustomAction.exe will remain on the
computer when the installation is completed.
Use a Two -Step Installation to Troubleshoot Installation Issues
If you get errors during installation, you can run Setup as a two-step process from the command line:
1. Open a command prompt with administrator permissions and run a files only installation as
described in the previous section.
2. Run the custom actions executable:
a. Navigate to the folder that contains the file rsCustomAction.exe . This file is copied to your
computer by the files only installation of the add-in. rsCustomAction.exe is located in the
%Temp% directory. To navigate to the file, type the following from the command prompt:
CD %temp% .
The file should be located in: \Users\<your name>\AppData\Local\Temp
b. Type the following command. This configuration step will take several minutes to finish. The
W3SVC service will be restarted during this process. Several Status messages will be displayed as
the program copies files, registers components, and runs the SharePoint Product Configuration
Wizard.
rsCustomAction.exe /i
c. The amount of time it takes for the changes to take effect may vary, depending on your server
environment. You can also run iisreset to force a quicker update.
Quiet installation for scripting
You can use the /q or /quiet switches for a "quiet" installation that will not display any dialogs or warnings. The
quiet installation is useful if you want to script the installation of the add-in.
NOTE
If you use the /q switch for a silent command line installation, the end-user license agreement will not be displayed.
Regardless of the installation method, the use of this software is governed by a license agreement and you are responsible
for complying with the license agreement.
Msiexec.exe /i rsSharePoint.msi /q
This will unregister the Reporting Services components from SharePoint and remove the files, but for the local
computer only.
If you want to unregister the Reporting Services features from SharePoint but leave the files on the disk for use
later, complete the following steps:
1. Open a command prompt with administrator permissions .
2. Run the following command:
rsCustomAction.exe /p
The above steps assume you completed an installation of the .msi with SkipCA=1 and the rscusstomaction.exe is
available. For more information, see the section describing the files only installation.
msiexec.exe /f rssharepoint.msi
cd %temp%
Dir rs_sp*.log
notepad rs_sp_3.log
Upgrade
If you have an existing installation of the Reporting Services Add-in, you can upgrade to the current version. The
add-in setup will detect the existing version and prompt you to confirm the update. The message will be similar
to the following:
A Lower version of this product has been detected on your system. Would you like to upgrade
your existing installation?
If you confirm, the older version of the add-in will be removed and then the new version will be installed.
Note that the Reporting Services Add-in is not instance-aware. You can only have one instance of the add-in on
a computer. You cannot run different versions side-by-side the current version.
RsCustomAction.exe
The following table summarizes the rscustomaction.exe switches:
r Repair
SW ITC H DESC RIP T IO N
See Also
Install the first Report Server in SharePoint mode
Reporting Services Report Server (SharePoint Mode)
More questions? Try asking the Reporting Services forum
Add an Additional Report Server to a Farm (SSRS
Scale-out)
3/5/2021 • 4 minutes to read • Edit Online
Adding a second or more SharePoint mode report servers to your SharePoint farm can improve the
performance and response time of the report server processing. If you find performance slowing down as you
added more users, reports, and other applications to the report server, then adding additions report servers can
improve performance. It is also recommended to add a second report server to increase the availability of
report servers when there are issues with hardware or you are conducting general maintenance on individual
servers in your environment. Starting with the SQL Server 2012 (11.x) release, the steps to scale-out a
Reporting Services environment in SharePoint mode follows standard SharePoint farm deployment and
leverages the SharePoint load balancing features.
IMPORTANT
Scale-out of Reporting Services is not supported on all editions of SQL Server. For more information, see the Reporting
Services section of Features Supported by the Editions of SQL Server.
TIP
Starting with SQL Server 2012 (11.x) you do not use Reporting Services Configuration Manager to add servers and scale
out report servers. SharePoint products manage the scale-out of reporting services as SharePoint servers with the
Reporting Services service are added to the farm.
For information on how to scale-out native mode report servers, see Configure a Native Mode Report Server
Scale-Out Deployment (Report Server Configuration Manager).
Load Balancing
The Load balancing of Reporting Services service applications will be managed automatically by SharePoint
unless your environment has a custom or third-party load balancing solution. The default SharePoint load
balancing behavior is that each Reporting Services Service Application will be balanced across all the application
servers where you have started the Reporting Services service. To verify if the Reporting Services service is
installed and started, click Manage ser vices on ser ver in SharePoint Central Administration.
Prerequisites
You must be a local administrator to run SQL Server Setup.
The computer must be joined to a domain.
You need to know the name of the existing database server that is hosting the SharePoint configuration
and content databases.
The database server must be configured to allow for remote database connections. If it is not, you will not
be able to join the new server to the farm because the new server will not be able to make a connection
to the SharePoint configuration databases.
The new server will need to have the same version of SharePoint installed that the current farm servers
are running. For example if the farm already has SharePoint 2013 Service Pack 1 (SP1) installed, you will
need to also install SP1 on the new server before it can join the farm.
Steps
The steps in this topic assume that a SharePoint farm administrator is installing and configuring the server. The
diagram shows a typical three tier environment and the numbered items in the diagram are described in the
following list:
(1) Multiple web front-end (WFE) servers. The WFE servers require the Reporting Services add-in for
SharePoint 2016.
(2) A single application server running Reporting Services and web sites, for example Central
Administration. The following steps add a second application server to this tier.
(3) Two SQL Server database servers.
(4) Represents a software or hardware network load balancing solution (NLB)
The following steps assume that an administrator is installing and configuring the server. The server will be
setup as a new application server in the farm and not used as a web front-end (WFE).
ST EP DESC RIP T IO N A N D L IN K
Add a SharePoint server to a farm. You will need to install SharePoint to deploy another
Reporting Services application.
Install and configure Reporting Services SharePoint mode. Run SQL Server installation. For more information on the
installation of Reporting Services SharePoint mode, see
Install the first Report Server in SharePoint mode
Verify that Reporting Services is operational. 1) In SharePoint Central Administration, click Manage
ser vers in this farm in the System Settings group.
2) Verify the service SQL Ser ver Repor ting Ser vices
Ser vice .
Additional Configuration
You can optimize individual Reporting Services servers in a scaled out deployment to perform background
processing only so they do not compete for resources with interactive report execution. Background processing
includes schedules, subscriptions, and data alerts.
To change the behavior of individual report servers, set <IsWebSer viceEnable> to false in the
RSrepor tSer ver.config configuration file.
By default reports servers are configured with <IsWebServiceEnable> set to TRUE. When all servers are
configured for TRUE, interactive and background will be load balanced across all nodes in the farm.
If you configure all report servers with <IsWebServiceEnable> set to False, you will see an error message
similar to the following when you try to use Reporting Services features:
The Reporting Services Web Service is not enabled. Configure at least one instance of the Reporting Services
SharePoint Service to have <IsWebServiceEnable> set to true.
For more information, see Modify a Reporting Services Configuration File (RSreportserver.config)
Next steps
Add SharePoint server to a farm in SharePoint Server 2016
Add SharePoint server to a farm in SharePoint Server 2013
More questions? Try asking the Reporting Services forum
Add an Additional Reporting Services Web Front-
end to a Farm
3/5/2021 • 2 minutes to read • Edit Online
Reporting Services SharePoint mode includes components needed for application servers and web front-end
(WFE) servers. This topic focuses on installing the required Reporting Services components for a WFE server,
including the application pages used by Reporting Services features such as subscriptions, data alerts, and
Power View. The primary Reporting Services installation needed for a WFE is to install the Reporting Services
add-in for SharePoint 2016 products.
Prerequisites
You must be a local administrator to run SQL Server Setup.
The computer must be joined to a domain.
You need to know the name of the existing database server that is hosting the SharePoint configuration
and content databases.
The database server must be configured to allow for remote database connections. If it is not, you will not
be able to join the new server to the farm because the new server will not be able to make a connection
to the SharePoint configuration databases.
The new server will need to have the same version of SharePoint installed that the current farm servers
are running. For example if the farm already has SharePoint 2013 Service Pack 1 (SP1) installed, you will
need to also install SP1 on the new server before it can join the farm.
Steps
The steps in this topic assume that a SharePoint farm administrator is installing and configuring the server. The
diagram shows a typical three tier environment and the numbered items in the diagram are described in the
following list:
(1) Multiple web front-end (WFE) servers. The WFE servers require the Reporting Services add-in for
SharePoint 2010. The following steps add a second application server to this tier.
(2) Two application servers running Reporting Services and web sites, for example Central
Administration.
(3) Two SQL Server database servers.
(4) Represents a software or hardware network load balancing solution (NLB)
The following steps assume that an administrator is installing and configuring the server.
ST EP DESC RIP T IO N A N D L IN K
Add a SharePoint server to a farm. You will need to intall SharePoint to deploy another
Reporting Services application.
Install the SQL Server Reporting Services add-in for There are several methods for installing the add-in. The
SharePoint 2016 products. following steps use the SQL Server setup wizard. For more
information on installing the add-in, see Install or Uninstall
the Reporting Services Add-in for SharePoint
Verify the new server is operational. 1) In SharePoint Central Administration, click Manage
ser vers in this farm in the System Settings group.
Update your NLB solution. If appropriate, update your hardware or software NLB
environment to include the new server.
Next steps
Add SharePoint server to a farm in SharePoint Server 2016
Add SharePoint server to a farm in SharePoint Server 2013
More questions? Try asking the Reporting Services forum
Configure E-mail for a Reporting Services Service
Application
3/5/2021 • 2 minutes to read • Edit Online
APPLIES TO: ✔
️ SQL Server Reporting Services (2016) ❌ Power BI Report Server ✔
️ SharePoint
Reporting Services data alerting sends alerts in e-mail messages. To send e-mail you may need to configure
your Reporting Services service application and you may need to modify the e-mail delivery extension for the
service application. The e-mail settings are also required if you plan to use the e-mail delivery extension for the
Reporting Services subscription feature.
NOTE
Reporting Services integration with SharePoint is no longer available after SQL Server 2016.
2. If you need to verify the name of your service application, run the Get-SPRSSer viceApplication
cmdlet .
get-sprsserviceapplication
3. The following example will return the current values of the e-mail extension for the service application
named "SSRS_TESTAPPLICATION".
4. The following example will create a new file named "emailconfig.txt" with the current values of the e-mail
extension for the service application named "SSRS_TESTAPPLICATION"
Reporting Services subscriptions and data alerts require SQL Server Agent and require the configuration of
permissions for SQL Server Agent. If you see error messages that indicate SQL Server Agent is required and you
have verified SQL Server Agent is running, then update or verify permissions. The scope of this topic is
Reporting Services in SharePoint mode and the topic describes three ways you can update the permissions of
SQL Server Agent with Reporting Services subscriptions. The credentials you use for the steps in this topic need
to have sufficient permissions to grant execute permissions to the RSExecRole for objects in the service
application, msdb, and master databases.
DESC RIP T IO N
2 The instance of SQL Server agent for the instance of the SQL
database engine.
ReportingService_2fbae157295d49df86d0b85760c704b0
ReportingService_2fbae157295d49df86d0b85760c704b0_Al
erting
ReportingService_2fbae157295d49df86d0b85760c704b0Te
mpDB
Sample cmdlet:
Get-SPRSDatabaseRightsScript -DatabaseName ReportingService_46fd00359f894b828907b254e3f6257c -UserName
"NT AUTHORITY\NETWORK SERVICE" -IsWindowsUser | Out-File c:\SQLServerAgentrights.sql
APPLIES TO: ✔
️ SQL Server 2016 Reporting Services and later ✔
️ SharePoint ✔
️ Power BI Report Server
The SharePoint Claims to Windows Token Service (C2WTS) is required if you want to view native mode reports
within the SQL Server Reporting Services Report Viewer web part.
C2WTS is also required with SQL Server Reporting Services SharePoint mode if you want to use Windows
authentication for data sources that are outside the SharePoint farm. C2WTS is needed even if your data
source(s) are on the same computer as the shared service. However in this scenario, constrained delegation is
not needed.
NOTE
Reporting Services integration with SharePoint is no longer available after SQL Server 2016.
IMPORTANT
Whatever settings you configure for the C2WTS service account, on the delegation tab, needs to match the main
service account being used. For the Repor t Viewer web par t , this will be the service account for the SharePoint
web application. For SharePoint integrated mode , this will be the Reporting Services service account.
For example, if you allow the C2WTS service account to delegate to a SQL Service, you need to do the same on
the Reporting Services service account for SharePoint integrated mode.
Right-click each service account and open the properties dialog. In the dialog click the Delegation
tab.
The delegation tab is only visible if the object has a Service Principal Name (SPN) assigned to it.
C2WTS does not require an SPN on the C2WTS Account, however, without an SPN, the
Delegation tab will not be visible. An alternative way to configure constrained delegation is to use
a utility such as ADSIEdit .
Key configuration options on the delegation tab are the following:
Select Trust this user for delegation to specified ser vices only
Select Use any authentication protocol
Select Add to add a service to delegate to.
Select Users or Computers...* and enter the account that hosts the service. For example, if a SQL
Server is running under an account named sqlservice, enter sqlservice . For the Repor t Viewer
web par t , this will be the service account for the Reporting Services (Native Mode) Instance.
Select the service listing. This will show the SPNs that are available on that account. If you don't
see the service listed on that account, it may be missing or placed on a different account. you can
use the SetSPN utility to adjust SPNs. For the Repor t Viewer web par t , you will see the http SPN
configured in Report Viewer web part configuration.
Select OK to get out of the dialogs.
3. Configure C2WTS AllowedCallers.
C2WTS requires the 'callers' identities explicitly listed in the configuration file, C2WTShost.exe.config .
C2WTS does not accept requests from all authenticated users in the system unless it is configured to do
so. In this case the 'caller' is the WSS_WPG Windows group. The C2WTShost.exe.confi file is saved in the
following location:
Changing the service account within SharePoint Central Admin, for the C2WTS service, will add that
account to the WSS_WPG group.
\Program Files\Windows Identity Foundation\v3.5\c2WTShost.exe.config
The following is an example of the configuration file:
<configuration>
<windowsTokenService>
<!--
By default no callers are allowed to use the Windows Identity Foundation Claims To NT Token
Service.
Add the identities you wish to allow below.
-->
<allowedCallers>
<clear/>
<add value="WSS_WPG" />
</allowedCallers>
</windowsTokenService>
</configuration>
4. Start (stop and start if already started) the Claims to Windows Token Service through SharePoint Central
Administration on the Manage Ser vices on Ser ver page. The service should be started on the server
that will be performing the action. For example if you have a server that is a WFE and another server that
is an Application Server that has the SQL Server Reporting Services shared service running, you only
need to start C2WTS on the Application Server. C2WTS is only required on a WFE server if you are
running the Report Viewer web part.
More questions? Try asking the Reporting Services forum
Install Reporting Services 2016 at the Command
Prompt
3/5/2021 • 2 minutes to read • Edit Online
APPLIES TO: ✔ ️ SQL Server Reporting Services (2016) ❌ SQL Server Reporting Services (2017) ❌ Power BI
Report Server
Reporting Services supports a command-line installation from the SQL Server setup program. This topic
contains several examples of command-line installations that are specific to Reporting Services. For a complete
description of the command-line options available for all SQL Server components, see Install SQL Server from
the Command Prompt. This topic does not describe command-line options for the Reporting Services add-in for
SharePoint products. For information on command installation of the add-in, see Install the add-in using the
installation file rsSharePoint.msi.
The following example can be used to upgrade a SharePoint Mode installation that is based on the SharePoint
shared service architecture. The example uses switch ALLOWUPGRADEFORSSRSSHAREPOINTMODE. The switch
is not needed for upgrading older versions that are not based on the shared service architecture:
SQL Server 2008 R2
SQL Server 2008
Next steps
Install SQL Server from the Command Prompt
SysPrep Parameters
Install Power Pivot from the Command Prompt
More questions? Try asking the Reporting Services forum
Install Report Builder
7/29/2021 • 4 minutes to read • Edit Online
APPLIES TO: ✔
️ SQL Server 2016 Reporting Services and later ✔
️ Power BI Report Server
Report Builder is a stand-alone app, installed on your computer by you or an administrator. You can install it
from the Microsoft Download Center, from a SQL Server 2016 Reporting Services or later (SSRS) report server,
or from a SharePoint site integrated with Reporting Services.
NOTE
Looking for installation information for Power BI Report Builder instead? Head to the Microsoft Power BI Report Builder
page on the Download Center.
An administrator typically installs and configures Reporting Services, grants permission to download Report
Builder from the web portal, and manages folders and permissions to reports, report parts, and shared datasets
saved to the report server. For more information about Reporting Services administration, see Reporting
Services Report Server (Native Mode).
You can start Report Builder from a Reporting Services web portal or a SharePoint site integrated with
Reporting Services. For information, see Start Report Builder.
SharePoint site integrated with Reporting Services
On a SharePoint site integrated with Reporting Services, if the New Document menu does not list Repor t
Builder Repor t , Repor t Builder Model , and Repor t Data Source , their content types need to be added to
the SharePoint library. For more information, see Add Reporting Services Content Types to a SharePoint Library.
IMPORTANT
Windows Vista and Windows 7 security features require elevated permissions to run command line operations and will
prompt for permission to run the command line. The installation is not silent. To make the installation silent, you need to
run the command line as an administrator.
System Requirements
See the System Requirements section of the Report Builder download page on the Microsoft Download
Center.
To install Report Builder from the download site
1. On the Report Builder page of the Microsoft Download Center , click Download .
2. After Report Builder has finished downloading, click Run .
This launches the SQL Server Report Builder Wizard.
3. Accept the terms in the license agreement and click Next .
4. On the Default Target Ser ver page, optionally provide the URL to the target report server if it is
different from the default. Click Next .
NOTE
If you plan to work with Report Builder when it is connected to a report server, it is convenient to provide the URL
to the server at this time. You can also do this from the Options dialog box in Report Builder.
The two options specific to installing Report Builder are: RBINSTALLDIR and RBSERVERURL. You don't
have to include these arguments in the command line. The following is the baseline command:
msiexec /i ReportBuilder3_x86.msi /quiet
See Also
Start Report Builder
Uninstall Report Builder
Uninstall Report Builder
11/2/2020 • 2 minutes to read • Edit Online
You can uninstall the stand-alone version of Report Builder from the control panel or the command line.
Uninstalling Report Builder from the command line uses syntax that is identical to the syntax you use to install
Report Builder, except you use the /x option instead of the /i option. Command lines for uninstalling can also
include the /quiet option and other standard options. If the Report Builder Windows Installer Package
(ReportBuilder3_x86.msi) has been removed, you cannot use the command line easily to uninstall Report
Builder. To learn more about how you might be able to remove Report Builder by using its GUID, see the
documentation for the msiexec program in Command-Line Options.
If folders used by Report Builder include custom files, the folders and the files are preserved when Report
Builder is removed. Only the Report Builder files are removed.
To uninstall Report Builder from the control panel
1. On the Star t menu, click Control Panel .
2. In the Control Panel, click Programs and Features .
3. Locate Microsoft SQL Server Report Builder in the Name list and click it.
4. Click Uninstall .
5. If prompted to confirm the uninstall of Report Builder, click Yes .
To uninstall Report Builder from the command line
1. On the Star t menu, click Run .
2. In the Open text box, type cmd.
3. In the command prompt window, navigate to the folder with ReportBuilder3_x86.msi.
4. Type a basic command line such as the following:
msiexec /x ReportBuilder3_x86.msi /quiet /l*v install.log
If you can to include logging, use a command line such as the following:
msiexec /x ReportBuilder3_x86.msi /quiet /l*v c:\junk\install.log
5. Press Enter .
Next steps
Install Report Builder
More questions? Try asking the Reporting Services forum
Verify a Reporting Services Installation
3/5/2021 • 4 minutes to read • Edit Online
Reporting Services report servers can be installed in one of two modes, Native or SharePoint. The steps you
should follow for verifying the installation depend on the report server mode.
NOTE
Reporting Services integration with SharePoint is no longer available after SQL Server 2016.
See Also
Troubleshoot a Reporting Services Installation
Cause and Resolution of Reporting Services Errors
Troubleshoot a Reporting Services installation
3/5/2021 • 11 minutes to read • Edit Online
If you cannot install Reporting Services because of errors that occur during setup, use the instructions in this
article to address the conditions that are most likely to cause installation errors.
For information about other errors and issues related to Reporting Services, see Troubleshoot SSRS issues and
errors.
Review the Online release notes in case the issue you encounter is described in the release notes.
Check prerequisites
Setup checks prerequisites automatically. However, if you are troubleshooting setup problems, it is helpful to
know which requirements Setup is checking for.
Account requirements for running Setup include membership in the local Administrators group. Setup
must have permission to add files, registry settings, create local security groups, and set permissions. If
you are installing a default configuration, Setup must have permission to create a report server database
on the SQL Server instance on which you are installing.
Operating System must support HTTP.SYS 1.1.
HTTP service must be enabled and running.
Distributed Transaction Coordinator (DTC) must be running if you are also installing SQL Server Agent
service.
Authz.dll must be present in the System32 folder.
Setup no longer checks for Internet Information Services (IIS) or ASP.NET. Reporting Services requires MDAC 2.0
and the Microsoft .NET Framework version 2.0; Setup will install these, if they are not already installed.
b. Install-SPRSService
c. Install-SPRSServiceProxy
2. Verify the Reporting Services Service shows status as "Star ted " on the page: SharePoint 2013/2016
Central Administration -> "Application Management " -> "Manage Ser vices on Ser ver "
NOTE
Replace <.NET 4.0 Framework directory> with the physical path of the .NET Framework 4.0 files and
replace <Report Server Bin directory> with the physical path of the report server bin files.
3. Right-click the Performance node, point to New , and click Multi-String Value .
4. Type Counter Names and then press ENTER.
5. Repeat to add the Counter Types registry key in this node.
6. Navigate to the following registry key:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSRS 2016 Web Service\Performance
7. Right-click the Performance node, point to New , and click Multi-String Value .
8. Type Counter Names and then press ENTER.
9. Repeat to add the Counter Types registry key in this node.
After you repair the 64-bit instance or add the registry keys again manually, you can use Performance Monitor
to configure the Reporting Services performance objects that you want to monitor.
ReportServerExternalURL and PassThroughCookies configuration properties are not configured after an
upgrade from SQL Server 2005
When you upgrade from SQL Server 2005 (9.x) to SQL Server 2016 Reporting Services or later (SSRS), the
Repor tSer verExternalURL and PassThroughCookies configuration properties are not configured by the
upgrade process. Repor tSer verExternalURL is an optional property, and it should be set only if you are using
SharePoint 2.0 Web Parts and you want users to be able to retrieve a report and open it in a new browser
window. For more information about Repor tSer verExternalURL , see URLs in Configuration Files (Report
Server Configuration Manager). PassThroughCookies is required only when using Custom authentication
method. For more information about PassThroughCookies , see Configure the Web Portal to Pass Custom
Authentication Cookies.
NOTE
When you use Custom authentication, it is recommended that you migrate your installation rather than performing an
upgrade. For more information about migrating Reporting Services, see Migrate a Reporting Services Installation (Native
Mode).
By default, these properties do not exist in the SQL Server 2016 Reporting Services or later (SSRS)
configuration. If you configured these properties in SQL Server 2005 (9.x) and you continue to require the
functionality that they provide, you must manually add them to the RSRepor tSer ver.config file following the
upgrade process. For more information, see Modify a Reporting Services Configuration File
(RSreportserver.config).
401-Unauthorized error when using Windows authentication after an upgrade from SQL Server 2005 to SQL
Server 2016
If you upgrade from SQL Server 2005 (9.x) Reporting Services to SQL Server 2016 Reporting Services or later
(SSRS), and you use NTLM authentication with a built-in account for the Report Server service account, you
might encounter a 401-Unauthorized error when you access the report server or the web portal after the
upgrade.
You see this message because of a change in the default SQL Server 2016 Reporting Services or later (SSRS)
configuration for Windows authentication. Negotiate is configured when the Report Server service account is
either Network Service or Local System. NTLM is configured when the Report Server service account is not one
of those built-in accounts. To fix this issue after you upgrade, you can edit the RSReportServer.config file and
configure the AuthenticationType to be RSWindowsNTLM . For more information, see Configure Windows
Authentication on the Report Server.
Uninstalling 32-bit instance of SQL Server 2016 Reporting Services in side -by-side deployment with a 64-bit
instance breaks the 64-bit instance
When you install a 32-bit instance and a 64-bit instance of SQL Server 2016 Reporting Services or later (SSRS)
side by side on a computer, and you uninstall the 32-bit instance, four Reporting Services registry keys are
removed. Removing the keys breaks the 64-bit instance of Reporting Services. The Reporting Services registry
keys that are removed when you uninstall the 32-bit instance are:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSRS 2016 Web Service\Performance:Counter Names
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSRS 2016 Windows Service\Performance:Counter Names
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSRS 2016 Web Service\Performance:Counter Types
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSRS 2016 Windows Service\Performance:Counter Types
To fix this issue, you can repair the 64-bit instance. Although it is recommended to use repair, you can add the
registry keys again manually by using Registry Editor.
Cau t i on
Incorrectly editing the registry can severely damage your system. Before making changes to the registry, you
should back up any valued data on the computer.
Additional resources
The following are additional resources you can review to assist you with troubleshooting issues:
TechNet Wiki: Troubleshoot SQL Server Reporting Services (SSRS) in SharePoint 2010 Integrated Mode
Microsoft Q & A: SQL Server Reporting Services
Got feedback or more questions? Visit Microsoft SQL Server UserVoice.
Upgrade and Migrate Reporting Services
5/7/2021 • 14 minutes to read • Edit Online
APPLIES TO: ✔
️ SQL Server 2016 Reporting Services and later ❌ Power BI Report Server ✔
️ SharePoint
This topic is an overview of the upgrade and migration options for SQL Server Reporting Services. Here are the
general approaches to upgrading a SQL Server Reporting Services deployment:
Upgrade to Repor ting Ser vices 2016 and older from Repor ting Ser vices 2016 and older : You
upgrade the Reporting Services components on the servers and instances where they are currently
installed. This is commonly called an "in place" upgrade. In-place upgrade is not supported from one
mode of Reporting Services server to another. For example, you cannot upgrade a Native Mode report
server to a SharePoint mode report server. You can migrate your report items from one mode to another.
For more information, see the SharePoint mode upgrade and migration scenarios section later in this
document.
Upgrade to Repor ting Ser vices 2017 and later from Repor ting Ser vices 2016 and older isn’t
the same upgrade scenario as in previous versions. When upgrading to Reporting Services 2016 and
older versions, you could following an in-place upgrade process using SQL Server installation media.
When upgrading to Reporting Services 2017 and later from Reporting Services 2016 and older, you can’t
follow the same steps because the new Reporting Services installation is a standalone product. It's no
longer part of the SQL Server installation media.
To upgrade from Reporting Services 2016 and older versions to Reporting Services 2017 and later, follow
the Migrate a Reporting Services Installation (Native Mode) article, with Reporting Services 2017 or later
as your destination instance.
Upgrade from Repor ting Ser vices 2017 to future versions is again an in-place upgrade scenario,
because the product installation GUIDs are the same. Run the SQLServerReportingServices.exe
installation file to begin the in-place upgrade on the server where Reporting Services is currently
installed.
Migrate : You install and configure a new SharePoint environment, copy your report items and resources
to the new environment, and configure the new environment to use existing content. A lower level form
of migration is to copy the Reporting Services databases, configuration files, and if you are using
SharePoint mode, the SharePoint content databases.
NOTE
Reporting Services integration with SharePoint isn't available after SQL Server 2016.
TIP
For the latest information regarding issues with SQL Server, see SQL Server 2016 Release Notes.
Side By Side Installations
SQL Server Reporting Services Native mode can be installed side-by-side with a SQL Server 2012 (11.x) or SQL
Server 2014 (12.x) Native mode deployment.
There is no support for side-by-side deployments of SQL Server Reporting Services in SharePoint mode and
any previous versions of Reporting Services SharePoint mode components.
In-place Upgrade
Upgrade is completed by SQL Server Setup. SQL Server Setup can be used to upgrade any or all SQL Server
components, including Reporting Services. Setup detects the existing instances and prompts you to upgrade.
SQL Server Setup provides upgrade options that you can specify as a command-line argument or in the Setup
wizard.
When you run SQL Server Setup, you can select the option to upgrade from one of the following versions or
you can install a new instance of SQL Server Reporting Services that runs side-by-side existing installations:
SQL Server 2014 (12.x)
SQL Server 2012 (11.x)
SQL Server 2008 R2
SQL Server 2008
For more information on SQL Server, see the following:
Upgrade to SQL Server 2016
Upgrade to SQL Server 2016 Using the Installation Wizard (Setup)
Install SQL Server 2016 from the Command Prompt
Pre-Upgrade Checklist
Before upgrading to SQL Server Reporting Services, review the following:
Review requirements to determine whether your hardware and software can support SQL Server 2016
Reporting Services or later (SSRS). For more information, see Hardware and Software Requirements for
Installing SQL Server 2016.
Use System Configuration Checker (SCC) to scan the report server computer for any conditions that
might prevent a successful installation of SQL Server Reporting Services. For more information, see
Check Parameters for the System Configuration Checker.
Review security best practices and guidance for SQL Server. For more information, see Security
Considerations for a SQL Server Installation.
Back up your symmetric key. For more information, see Back Up and Restore Reporting Services
Encryption Keys.
Back up your report server databases and configuration files. For more information, see Backup and
Restore Operations for Reporting Services.
Back up any customizations to existing Reporting Services virtual directories in IIS.
Remove invalid TLS/SSL certificates. This includes certificates that are expired and you do not plan to
update prior to upgrading Reporting Services. Invalid certificates will cause upgrade to fail and an error
message similar to the following will be written to the Reporting Services Log file:
Microsoft.Repor tingSer vices.WmiProvider.WMIProviderException: A Secure Sockets Layer
(SSL) cer tificate is not configured on the Web site..
Before you upgrade a production environment, always run a test upgrade in a pre-production environment that
has the same configuration as your production environment.
IMPORTANT
These steps must be completed in full for a later rollback to be possible. Microsoft Support cannot recover backups,
encryption keys, or configuration files that were not backed up.
1. Take note of any custom configurations including service credentials, email or file share settings, or
report server URLs.
2. Uninstall SQL Server Reporting Services. In a scale-out deployment, repeat for all nodes in the scale-out.
For more information, see Uninstall Native Mode
3. Restore backups of ReportServer database. For more information, see Backup and Restore Operations for
Reporting Services
4. Reinstall the prior update of SQL Server Reporting Services.
5. Restore pre-upgrade configuration files.
6. Restore the encryption key backup. For more information, see Back Up and Restore Encryption Keys
7. Recreate all of the custom configurations noted in step 1.
8. In a scale-out deployment, repeat steps 4 through 7 for all other nodes in the scale-out deployment.
TIP
Use the Reporting Services SharePoint cmdlet Get-SPRSServiceApplicationServers to determine servers in the
SharePoint farm that are currently running the Reporting Services SharePoint Shared Service and therefore require
an upgrade.
Reporting Services Add-in for SharePoint products. For more information, see Install or Uninstall the
Reporting Services Add-in for SharePoint.
For detailed steps on Migrating a SharePoint mode installation, see Migrate a Reporting Services Installation
(SharePoint Mode).
IMPORTANT
Some of the following scenarios require down time of the SharePoint environment due to the different technologies that
need to be upgraded. If your situation does not allow for down time, you will need to complete a migration instead of an
in-place upgrade.
Additional Resources
NOTE
For more information on SharePoint database-attach upgrade, see the following:
Next steps
Upgrade Reports
Upgrade to SQL Server 2016 Using the Installation Wizard (Setup)
More questions? Try asking the Reporting Services forum
Migrate a Reporting Services Installation (Native
Mode)
3/5/2021 • 13 minutes to read • Edit Online
This topic provides step-by-step instructions for migrating one of the following supported versions of a
Reporting Services native mode deployment to a new SQL Server Reporting Services instance:
SQL Server 2016 (13.x)
SQL Server 2014 (12.x)
SQL Server 2012 (11.x)
SQL Server 2008 R2
SQL Server 2008
SQL Server 2014 (12.x)
SQL Server 2012 (11.x)
SQL Server 2008 R2
SQL Server 2008
For information on migrating a Reporting Services SharePoint mode deployment, see Migrate a Reporting
Services Installation (SharePoint Mode).
Migration is defined as moving application data files to a new SQL Server instance. The following are common
reasons you must migrate your installation:
You have a large-scale deployment or uptime requirements.
You are changing the hardware or topology of your installation.
You encounter an issue that blocks upgrade.
TIP
A side-by-side installation may require that you install SQL Server as a named instance.
Move the report server database and other application files from your existing installation to your new
SQL Server installation.
Move any custom application files to the new installation.
Configure the report server.
Edit RSRepor tSer ver.config to include any custom settings from your previous installation.
Optionally, configure custom Access Control Lists (ACLs) for the new Reporting Services Windows
service group.
Remove unused applications and tools after you have confirmed that the new instance is fully
operational.
There are restrictions on the editions of SQL Server that host the report server database. Review the following
topic if you are reusing a report server database that was created in a previous installation.
Create a Report Server Database
3. Modify the configuration files to add entries for your custom component. The entries vary depending on
the kind of assembly you are using. For instructions on where to place files and add configuration entries,
see below:
a. Deploying a Custom Assembly
b. How to: Deploy a Custom Report Item
c. Deploying a Data Processing Extension
d. Deploying a Delivery Extension
e. Deploying a Rendering Extension
f. Implementing a Security Extension
IMPORTANT
If any of the report servers in the scale-out deployment are online and have not been migrated, they might encounter an
rsInvalidReportServerDatabase exception because they are using an older schema when connected to the upgraded.
If the report server you migrated is configured as the shared database for a scale-out deployment, you need to
delete any of the old encryption keys from the Keys table in the Repor tSer ver database, before configuring
the report server service. If the keys are not removed, the migrated report server will try to initialize in scale-out
deployment mode. For more information, see Add and Remove Encryption Keys for Scale-Out Deployment
(Report Server Configuration Manager) and Configure and Manage Encryption Keys (Report Server
Configuration Manager).
The scale-out keys cannot be deleted by using the Reporting Services Configuration Manager. The old keys must
be deleted from the Keys table in the Repor tSer ver database using SQL Server Management Studio. Delete all
rows in the Keys table. This action clears the table and prepares it for restoring the Symmetric key only, as
documented in the following steps.
Prior to deleting the keys it is recommended you first back up the Symmetric Encryption key. You can use the
Reporting Services Configuration Manager to back up the key. Open the Configuration Manager open, click the
Encryption Keys tab, and then click the Backup button. You can also script WMI commands to back up the
encryption key. For more information on WMI, see BackupEncryptionKey Method (WMI
MSReportServer_ConfigurationSetting).
1. Start the Report Server Configuration Manager and connect to the Reporting Services instance you
installed. For more information, see Report Server Configuration Manager (Native Mode).
2. Configure URLs for the report server and the web portal. For more information, see Configure a URL
(Report Server Configuration Manager).
3. Configure the report server database, selecting the existing report server database from your previous
installation. After successful configuration, the report server service restarts, and once a connection is
made to the report server database, the database automatically upgrades to SQL Server Reporting
Services. For more information about how to run the Change Database Wizard that you use to create or
select a report server database, see Create a Native Mode Report Server Database.
4. Restore the encryption keys. This step is necessary for enabling reversible encryption on pre-existing
connection strings and credentials that are already in the report server database. For more information,
see Back Up and Restore Reporting Services Encryption Keys.
5. If you installed report server on a new computer and you are using Windows Firewall, be sure that the
TCP port on which the report server listens is open. By default, this port is 80. For more information, see
Configure a Firewall for Report Server Access.
6. If you want to administer your native mode report server locally, you need to configure the operating
system to allow local administration with the web portal. For more information, see Configure a Native
Mode Report Server for Local Administration.
C USTO M IZ AT IO N IN F O RM AT IO N
Report Server E-mail delivery with custom settings E-Mail Settings * Reporting Services Native mode.
Next steps
Migrate a Reporting Services Installation
Report Server Database
Upgrade and Migrate Reporting Services
Reporting Services Backward Compatibility
Report Server Configuration Manager
More questions? Try asking the Reporting Services forum
Migrate a Reporting Services Installation
(SharePoint Mode)
3/5/2021 • 7 minutes to read • Edit Online
APPLIES TO: ✔️ SQL Server Reporting Services (2016) ❌ Power BI Report Server ❌ SQL Server Reporting
Services (2017) ✔
️ SharePoint
This topic is an overview of the steps needed to migrate a Reporting Services SharePoint mode deployment
from one SharePoint environment to another. The specific steps can be different depending on the version you
are migrating from. For more information on Upgrade and Migration scenarios for SharePoint mode, see
Upgrade and Migrate Reporting Services. If you only want to copy the report items from one server to another,
see Sample Reporting Services rs.exe Script to Copy Content between Report Servers.
For information on migrating a Reporting Services native mode deployment, see Migrate a Reporting Services
Installation (Native Mode).
A common reason you complete a migration is when you want to upgrade your SharePoint 2010 deployment to
SharePoint 2013/2016. SharePoint 2013/2016 does not support in-place upgrade from SharePoint 2010 and
you must complete the procedure of database-attach upgrade or a content only migration.
For more information on upgrading SharePoint 2013/2016, see the following:
Overview of the upgrade process to SharePoint 2016.
Overview of the upgrade process to SharePoint 2013.
Clean up preparations before an upgrade to SharePoint 2013.
Upgrade databases from SharePoint 2013 to SharePoint 2016.
Upgrade databases from SharePoint 2010 to SharePoint 2013.
Move content databases in SharePoint 2016.
Move content databases in SharePoint 2013.
DATA B A SE EXA M P L E N A M E N OT ES
(*) The example names shown in the table follow the naming convention SSRS uses when you create a new
SSRS service application. If you are migrating from a different server, your catalog and tempDBs will have the
names from the original installation.
Backup operations
This section describes the types of information you need to migrate and the tools or process you use to
complete the backup.
IT EM O B JEC T S M ET H O D N OT ES
IT EM O B JEC T S M ET H O D N OT ES
Rsreportserver.config
Rssvrpolicy.config
Restore Operations
This section describes the types of information you need to migrate and the tools or process you use to
complete the restore. The tools you use for restoring may be different than the tools you used for the backup.
Before you complete the restore steps, you need to install and configuring the new SharePoint Farm and
Reporting Services SharePoint mode. For more information on a basic installation of Reporting Services
SharePoint mode, see Install Reporting Services SharePoint Mode.
IT EM O B JEC T S M ET H O D N OT ES
3) Get-SPWebapplication
lists all web applications and
the URLs.
2 Restore the SQL Server SQL Database backup and The first time the database
database that is the restore. is used, Reporting Services
Reporting Services catalog will update the database
database (ReportServer). or schema as needed so it will
work with the SQL Server
SQL Server database 2016 environment.
attached and detach.
IT EM O B JEC T S M ET H O D N OT ES
3 Create a new Reporting Create a new Reporting When you create the new
Services service application. Services service application. service application,
configure it to use the
report server database you
copied over.
5 Restore the Reporting Restore the key back up file See the section "Key
Servicesencryption keys. using the Reporting Management" in the topic
Services Service Application Manage a Reporting
"SystemSettings" page. Services SharePoint Service
Application.
or
PowerShell.
Additional Resources
Get started with upgrades to SharePoint 2013 (/SharePoint/upgrade-and-update/get-started-with-
upgrade).
Overview of the upgrade process to SharePoint 2013 (/SharePoint/upgrade-and-update/overview-of-
the-upgrade-process).
Next steps
Upgrade and Migrate Reporting Services
Migrate a Reporting Services Installation
More questions? Try asking the Reporting Services forum
Native to SharePoint Migration (SSRS)
3/5/2021 • 2 minutes to read • Edit Online
APPLIES TO: ✔
️ SQL Server Reporting Services (2016) ❌ Power BI Report Server ✔
️ SharePoint
You cannot upgrade or convert from one Reporting Services server mode to another. For example, you cannot
upgrade or convert a Native mode report server to SharePoint mode. You cannot copy the report server
databases between modes because they use different database schemas. You can migrate the content from one
report server to another. The tools you use depend on the type of report server mode that is configured for the
source and destination servers.
O B JEC T C A N B E SC RIP T ED C O M M EN T S
Models Yes
Datasets Yes
Snapshots
The report server database provides storage for one or more report server instances. Because the report server
database schema can change with each new release of Reporting Services, it is required that the database
version match the version of the report server instance you are using. In most cases, a report server database
can be upgraded automatically with no specific action on your part.
Native Mode: In Reporting Services Native mode, the report server database actually comprises two databases
that have default names of ReportServer and ReportServerTempDB.
SharePoint mode: In SQL Server 2016 Reporting Services SharePoint mode, the report server database is
actually a collection of databases that is created for each instance of the Reporting Services service application.
At this point, the report server program files will be upgraded, but the report server database will be in the
format of the previous version. The report server will be unavailable until you finish the upgrade process by
upgrading the database manually.
To upgrade a Native Mode database With Scripts
You can use WMI scripts to upgrade a report server database. For more information, see
GenerateDatabaseUpgradeScript Method (WMI MSReportServer_ConfigurationSetting)
Next steps
Report Server Configuration Manager
Create a Report Server Database
Upgrade and Migrate Reporting Services
Migrate a Reporting Services Installation
More questions? Try asking the Reporting Services forum
Upgrade Reports (SSRS)
11/2/2020 • 10 minutes to read • Edit Online
Backward-Compatibility Mode
A report that is successfully upgraded is processed by the SQL Server 2016 Reporting Services or later (SSRS)
report processor. A report that cannot be upgraded is processed by the SQL Server 2008, SQL Server 2008 R2,
SQL Server 2012 (11.x), or SQL Server 2014 (12.x) Reporting Services report processor in backward-
compatibility mode. A report cannot be processed by both report processors. On first use, a report is either
successfully upgraded or marked for backward compatibility.
Only the SQL Server 2016 Reporting Services or later (SSRS) report processor supports new features. If a
report cannot be upgraded, you can still view the rendered report but new features are not available. To take
advantage of the new features, a report must be successfully upgraded.
NOTE
Choosing to support custom report items on a report server is a decision made by the system administrator. To view CRIs
in a report, the CRI components must be installed on the report authoring client to preview a report and on the report
server to view a published or uploaded report. For more information, see Custom Report Items and documentation from
the third-party software vendor.
Some CRIs can be converted to report items in the new report definition format. Use the following list to decide
whether to convert the CRIs in this report:
Yes Choose Yes to convert all the CRIs in the report, where possible. Unsupported features in the CRIs
cannot be upgraded and are removed from the report definition file. When you view the report, you
might see differences in the way the CRI displays in the report.
No Choose No when you do not want to convert the CRIs in the report. These CRIs cannot be displayed
by the report processor in their current version. If your system administrator is planning to install a new
version of the CRI from the third-party software vendor that is compatible with the new report definition
format, you should choose No . Until new versions are available, the CRIs display in the report as an
empty text box with a red X.
In either case, the report is upgraded to the new report definition format and a backup copy of the original
report is saved as <Report Name> - Backup.rdl. If you save the report in your report authoring tool, you are
saving the upgraded report in the new report definition format. If you publish the report, the report is first
saved on your computer, and then published to the report server. You are publishing the upgraded version of
the report to the report server.
If you do not save the report, the original report remains unchanged. However, you cannot edit this report in the
SQL Server 2016 version of SQL Server Data Tools or a report authoring environment that uses a newer report
definition format. You can continue to run the original version of the report by uploading it to a SQL Server
2016 Reporting Services or later (SSRS) report server by using the web portal. For more information, see Web
Portal.
For reports that you upload instead of publish to a report server, the report processor determines whether the
report can be upgraded on first use. Reports that cannot be upgraded are processed in backward-compatibility
mode, and continue to display as they did in the earlier version of Reporting Services.
Next steps
Upgrade and Migrate Reporting Services
Breaking Changes in SQL Server Reporting Services in SQL Server 2016
Behavior Changes to SQL Server Reporting Services in SQL Server 2016
Discontinued Functionality to SQL Server Reporting Services in SQL Server 2016
Custom Report Items
Upgrade a Report Server Database
More questions? Try asking the Reporting Services forum
Backup and Restore Operations for Reporting
Services
3/5/2021 • 3 minutes to read • Edit Online
This article provides an overview of all data files used in a Reporting Services installation and describes when
and how you should back up the files. Developing a backup and restore plan for the report server database files
is the most important part of a recovery strategy. However, a more complete recovery strategy would include
backups of the encryption keys, custom assemblies or extensions, configuration files, and source files for
reports.
Applies to: Reporting Services Native Mode | Reporting Services SharePoint Mode
NOTE
Reporting Services integration with SharePoint is no longer available after SQL Server 2016.
Backup and restore operations are often used to move all or part of a Reporting Services installation:
If you are moving just the report server databases, you can use backup and restore or attach and detach
to relocate the databases on a different SQL Server instance. For more information, see Moving the
Report Server Databases to Another Computer (SSRS Native Mode).
Moving a Reporting Services installation to a new computer is called a migration. When you migrate an
installation, you run Setup to install a new report server instance and then copy instance data to the new
computer. For more information about migrating a Reporting Services installation, see the following
articles:
Upgrade and Migrate Reporting Services
Migrate a Reporting Services Installation (Native Mode)
Migrate a Reporting Services Installation (SharePoint Mode)
Next steps
Report Server Database
Reporting Services Configuration Files
rskeymgmt Utility
Copy Databases with Backup and Restore
Administer a Report Server Database
Configure and Manage Encryption Keys
More questions? Try asking the Reporting Services forum
The web portal of a report server (SSRS Native
Mode)
8/6/2021 • 5 minutes to read • Edit Online
APPLIES TO: ✔
️ SQL Server 2016 Reporting Services and later ✔
️ Power BI Report Server
The web portal of a Reporting Services report server is a web-based experience. In the portal, you can view
reports, mobile reports, KPIs, and navigate through the elements in your report server instance. You can also
use the web portal to administer a single report server instance.
NOTE
For information on supported browsers and versions, see Planning for Reporting Services Browser Support.
The web portal is used only for a report server that runs in native mode. It is not supported for a report server
that you configure for SharePoint integrated mode.
Some web portal features are only available in specified editions of SQL Server. For more information, see
Reporting Services Features supported by the Editions of SQL Server.
On a new installation, only local administrators have sufficient permissions to work with content and settings. To
grant permissions to other users, a local administrator must create role assignments that provide access to the
report server. The application pages and tasks that a user can subsequently access will depend on the role
assignments for that user. For more information, see Grant User Access to a Report Server
NOTE
If you are browsing to the web portal on the local machine that the server is running on, you may see a message
indicating that you are not allowed to view this folder. This is due to Universal Access Control (UAC) and that you are not
running the browser as an admin. You will need to give your account content manager rights on the folder by either
browsing to the server remotely, or use Edge locally to configure the permissions. You are not able to run Microsoft Edge
as an admin via the "Run as administrator" context menu. However, you can run Edge as the local administrator account
by holding SHIFT + right-clicking on the edge shortcut and selecting "Run as a different user" then providing the local
machine administrator account information in the login dialog. If you want to use the web portal remotely, you will need
to give your account content manager rights on the folder.
Grouping by categories
The web portal will group items into different categories. The available categories are the following.
KPIs
Mobile Reports
Paginated Reports
Power BI Desktop Reports
Excel Workbooks
Datasets
Data Sources
Resources
You can control what is displayed by selecting View in the upper right. If you select Show Hidden, those items
will be displayed in a lighter color.
The files are stored within Reporting Services, similar to other resource files. Selecting one of these items will
download them locally to your desktop. You can save changes you've made by reuploading them to the report
server.
See also
Create mobile reports with SQL Server Mobile Report Publisher
Configure a URL (Report Server Configuration Manager)
Reporting Services Tools
Planning for Reporting Services Browser Support
Reporting Services Features supported by the Editions of SQL Server
More questions? Try the Reporting Services forum
Branding the web portal
5/7/2021 • 4 minutes to read • Edit Online
APPLIES TO: ✔
️ SQL Server 2016 Reporting Services and later ✔
️ Power BI Report Server
You can alter the appearance of the web portal by branding it to your business. This is done through a brand
package. The brand package is designed so you don't need deep cascading style sheet (CSS) knowledge to
create it.
https://www.youtube.com/embed/m08kLuofwFA
You can optionally include a logo picture in your brand package. This item would be listed within the Contents
element.
Example without a logo file.
<Contents>
<Item key="colors" path="colors.json" />
</Contents>
<Contents>
<Item key="colors" path="colors.json" />
<Item key="logo" path="logo.png" />
</Contents>
Colors.json
When the brand package is uploaded, the server extracts the appropriate name/value pairs from the colors.json
file and merges them with the master LESS stylesheet, brand.less. This LESS file is then processed and the
resulting CSS file is served to the client. All colors in the stylesheet follow the six-character hexadecimal
representation of a color.
The LESS stylesheet contains blocks that reference some predefined LESS variables like the following.
/* primary buttons */
.btn-primary {
color:@primaryButtonColor;
background-color:@primaryButtonBg;
}
While this resembles CSS syntax, the color values, prefixed with the @symbol, are unique to LESS. They are
variables whose values are set by the json file.
For example, if the colors.json file had the following values.
"primary":"#009900",
"primaryContrast":"#ffffff"
The processed output would look up the @primar yButtonBg LESS variable and see that it maps to the json
property called primar y , which in this example is #009900. It would therefore output the proper CSS.
.btn-primary {
color:#ffffff;
background-color:#009900;
}
All of the primary buttons would be rendered dark green with white text.
The colors.json file, for Reporting Services, has two main categories which items are grouped.
Interface : includes items that are specific to the Reporting Services web portal.
Theme : includes items that are specific to mobile reports that you create.
The interface section is broken down into the following groupings.
Secondary Title bar, search bar, left hand menu (if displayed) and text
color for those items
Neutral Secondary Text box and folder options backgrounds, and the settings
menu.
KPI Controls the colors for a good (1), neutral (0), neutral (-1)
and none.
The first time you connect to a server with the Mobile Report Publisher, that has a brand package deployed, the
theme will be added to the available themes you can use in the upper right-hand menu of the app.
You can then use that theme for any mobile reports that you create, even if they aren't for the same server that
you have the theme deployed on.
Using a logo
If you include a logo with your brand package, it will appear in the web portal in place of the name you set for
the web portal in the Site Settings menu.
The file you include for the logo must use the PNG file format. The file dimensions will be scaled once uploaded
to the server. It should scale to around 290px x 60px.
3. Select Branding .
Currently installed brand package will either display the name of the package that has been uploaded, or it
will display None.
Upload brand package will apply the package to the web portal. You will see it take effect immediately.
You can also Download or Remove the package. Removing the package will reset the web portal to the default
brand immediately.
metadata.xml example
<?xml version="1.0" encoding="utf-8"?>
<SystemResourcePackage
xmlns="http://schemas.microsoft.com/sqlserver/reporting/2016/01/systemresourcepackagemetadata"
type="UniversalBrand"
version="2.0.2"
name="Multicolored example brand"
>
<Contents>
<Item key="colors" path="colors.json" />
<Item key="logo" path="logo.png" />
</Contents>
</SystemResourcePackage>
Colors.json example
{
"name":"Multicolored example brand",
"version":"1.0",
"interface":{
"primary":"#b31e1e",
"primaryAlt":"#ca0806",
"primaryAlt2":"#621013",
"primaryAlt3":"#e40000",
"primaryAlt4":"#e14e50",
"primaryContrast":"#fff",
"secondary":"#042200",
"secondaryAlt":"#0f4400",
"secondaryAlt2":"#155500",
"secondaryAlt3":"#217700",
"secondaryContrast":"#49e63c",
"neutralPrimary":"#d8edff",
"neutralPrimaryAlt":"#c9e6ff",
"neutralPrimaryAlt2":"#aedaff",
"neutralPrimaryAlt3":"#88c8ff",
"neutralPrimaryContrast":"#0a2b4c",
"neutralSecondary":"#e9d8eb",
"neutralSecondaryAlt":"#d9badc",
"neutralSecondaryAlt2":"#b06cb5",
"neutralSecondaryAlt3":"#a75bac",
"neutralSecondaryContrast":"#250a26",
"neutralSecondaryContrast":"#250a26",
"neutralTertiary":"#f79220",
"neutralTertiaryAlt":"#f8a54b",
"neutralTertiaryAlt2":"#facc9b",
"neutralTertiaryAlt3":"#fce3c7",
"neutralTertiaryContrast":"#391d00",
"danger":"#ff0000",
"success":"#00ff00",
"warning":"#ff8800",
"info":"#00ff",
"dangerContrast":"#fff",
"successContrast":"#fff",
"warningContrast":"#fff",
"infoContrast":"#fff",
"kpiGood":"#4fb443",
"kpiBad":"#de061a",
"kpiNeutral":"#d9b42c",
"kpiNone":"#333",
"kpiGoodContrast":"#fff",
"kpiBadContrast":"#fff",
"kpiNeutralContrast":"#fff",
"kpiNoneContrast":"#fff"
},
"theme":{
"dataPoints":[
"#0072c6",
"#f68c1f",
"#269657",
"#dd5900",
"#5b3573",
"#22bdef",
"#b4009e",
"#008274",
"#fdc336",
"#ea3c00",
"#00188f",
"#9f9f9f"
],
"good":"#85ba00",
"bad":"#e90000",
"neutral":"#edb327",
"none":"#333",
"background":"#fff",
"foreground":"#222",
"mapBase":"#00aeef",
"panelBackground":"#f6f6f6",
"panelForeground":"#222",
"panelAccent":"#00aeef",
"tableAccent":"#00aeef",
"altBackground":"#f6f6f6",
"altForeground":"#000",
"altMapBase":"#f68c1f",
"altPanelBackground":"#235378",
"altPanelForeground":"#fff",
"altPanelAccent":"#fdc336",
"altTableAccent":"#fdc336"
}
}
Next steps
More questions? Try asking the Reporting Services forum
Work with shared datasets - web portal
11/2/2020 • 3 minutes to read • Edit Online
APPLIES TO: ✔
️ SQL Server 2016 Reporting Services and later ✔
️ Power BI Report Server
With a shared dataset, you can manage the settings for a dataset separately from reports and other catalog
items that use it. Shared datasets can be used with paginated and mobile reports, along with KPIs.
You can view and manage the properties of a shared dataset within the web portal. The web portal can launch
you into Report Builder to create or edit shared datasets.
3. This will either launch Report Builder, or prompt you to download it.
4. On the New Repor t or Dataset dialog, select a data source connection to use for this dataset. You may
need to browse to the location of the shared data source.
5. Select Create .
6. Build your dataset and then select the save icon in the upper left to save the dataset back to the report
server.
NOTE
If you don't see the shared dataset in the folder, make sure you are viewing datasets. You can select View from the menu
bar in the upper right of the web portal. Make sure Datasets is checked.
1. Select the ellipsis (...) for the dataset you want to manage.
2. Select Manage which will take you to the edit screen.
Properties
On the properties screen, you can change the name and description for the dataset. You can also Delete ,
Move , Edit in Repor t Builder , Download or Replace .
Caching
You have options when it comes to caching data for a dataset. You will start off with a simple selection.
1. Always run this repor t with the most recent data will issue queries to the data source when
requested.
2. Cache copies of this repor t and use them when available will place a temporary copy of the data
in a cache for use with items that use this dataset. Caching usually improves performance because the
data is returned from the cache instead of running the dataset query again.
Selecting Cache Copies of this repor t and use them when available will present you with some more
options.
Cache Expiration
You can control whether you want to expire the cache, for the shared dataset, after a certain amount of time, or if
you would prefer to do that on a schedule. You can use a shared schedule.
NOTE
Setting an expiration does not refresh the cache. Without a cache refresh plan, the data will be refreshed on the next
execution of the dataset.
NOTE
SQL Server Agent needs to be running to create a cache refresh plan.
You can then Edit or Delete plans that are listed. The New From Existing option is enabled when one, and
only one, cache refresh plan is selected. This option will create a new refresh plan which is copied from the
original plan. The cache refresh plan page opens pre-populated with details from the plan that was selected. You
can then modify the refresh plan options and save the plan with a new description.
More questions? Try asking the Reporting Services forum
Working with paginated reports (web portal)
11/2/2020 • 10 minutes to read • Edit Online
APPLIES TO: ✔
️ SQL Server 2016 Reporting Services and later ✔
️ Power BI Report Server
You can view and manage the properties of a paginated report within the web portal. The web portal can launch
you into Report Builder to create or edit paginated reports.
3. This will either launch Report Builder, or prompt you to download it.
4. Build your report and then select the save icon in the upper left to save the paginated report back to the
report server.
NOTE
If you don't see paginated reports in the folder, make sure you are viewing paginated reports. You can select View from
the menu bar in the upper right of the web portal. Make sure Paginated Repor ts is checked.
1. Select the ellipsis (...) for the dataset you want to manage.
Parameters
You can modify existing parameters of a paginated report. To add a new parameter, you must edit the report in
Report Builder or SQL Server Data Tools.
Data Source
You can point to a shared data source, or enter connection information for a custom data source.
A connection string can be configured as an expression so that you can specify the data source at run time. Data
source expressions are defined in the report in Report Designer. Data source expressions cannot be defined,
viewed, or modified in the web portal. However, you can replace a data source expression by clicking Override
Default to type in a static connection string. If you want to switch back to the expression, click Rever t to
Defaul . The report server stores the original connection string in case you need to restore it. To use data source
expressions, you must use the data source connection information that was originally published in the report.
Shared data sources do not support the use of expressions in the connection string.
Credentials
You can specify the option that determines how credentials are obtained.
IMPORTANT
If credentials are provided in the connection string, the options and values provided in this section are ignored. Note that
if you specify credentials on the connection string, the values are displayed in clear text to all users who view this page.
Subscriptions
A Reporting Services subscription is a configuration that delivers a report at a specific time or in response to an
event, and in a file format that you specify. For example, every Wednesday, save the MonthlySales.rdl report as a
Microsoft Word document to a file share. Subscriptions can be used to schedule and automate the delivery of a
report and with a specific set of report parameter values. For more information, see Working with subscriptions.
Dependent Items
Use the Dependent Items page to view a list of items that are referencing this report. The icon for each item type
indicates what it is. You can then select the ellipsis (...) on each item to manage those items further.
Caching
You have options when it comes to caching data for a paginated report. You will start off with a simple selection.
1. Always run this repor t with the most recent data will issue queries to the data source every time
you run the report. This results in an on-demand report that contains the most up-to-date data. A new
instance of the report will be created each time the report is opened which will contain the results of a
new query. With this approach, if ten users open the report at the same time, ten queries are sent to the
data source for processing.
2. Cache copies of this repor t and use them when available will place a temporary copy of the data
in a cache for later use. Caching usually improves performance because the data is returned from the
cache instead of running the dataset query again. With this approach, if ten users open the report, only
the first request results a query to the data source. The report is subsequently cached, and the remaining
nine users view the cached report.
3. Always run this repor t against pregenerated snapshots will cache the report layout and data for a
given time period. You can run a report as a report snapshot to prevent the report from being run at
arbitrary times (for example, during a scheduled backup). The snapshot can be refreshed on a schedule.
[Learn more]
Selecting Cache Copies of this repor t and use them when available will present you with some more
options.
NOTE
This does not refresh the cache.
NOTE
SQL Server Agent needs to be running to create a cache refresh plan.
You can then Edit or Delete plans that are listed. The New From Existing option is enabled when one, and
only one, cache refresh plan is selected. This option will create a new refresh plan which is copied from the
original plan. The cache refresh plan page opens pre-populated with details from the plan that was selected. You
can then modify the refresh plan options and save the plan with a new description.
History Snapshots
Use the History Snapshots page to view report snapshots that are generated and stored over time. Depending
on options that are set, report history may contain only the more recent snapshots.
Report history is always viewed within the context of the report from which it originates. You cannot view the
history of all reports on a report server in one place.
To generate a snapshot, the report must be able to run unattended (that is, it must use stored credentials;
parameterized reports must contain default parameter values for all parameters). Snapshots can be generated
manually or as a scheduled operation.
You can click a report history snapshot to view it. Snapshots that appear in report history are distinguished only
by the date and time at which they were created. There is no visual indication to distinguish whether a snapshot
was generated in response to a schedule or a manual operation.
Security
Use the Security properties page to view or modify the security settings that determine access to the report. This
page is available for items that you have permission to secure.
Access to items is defined through role assignments that specify the tasks that a group or user can perform. A
role assignment consists of one user or group name and one or more role definitions that specify a collection of
tasks.
Edit Item Security
Select to change how security is defined for the current item.
Next steps
Web portal
Work with Shared Datasets
More questions? Try asking the Reporting Services forum
Working with snapshots (web portal)
11/2/2020 • 2 minutes to read • Edit Online
APPLIES TO: ✔
️ SQL Server 2016 Reporting Services and later ✔
️ Power BI Report Server
You can control if snapshots are created for a report by selecting the ellipsis (...) of a report, selecting Manage
and selecting Caching or Histor y Snapshots .
NOTE
The SQL Server Agent service needs to be started.
You can create a cache snapshot, to allow for faster loading of specific execution properties. You can also work
with history snapshots to capture points in time.
1. On the Caching page, select Always run this repor t against pregenerated snapshots to enable the
options for creating a snapshot.
2. Select Create Cache snapshots on a schedule if you want to schedule a recurring snapshot. You can
then use a shared schedule, or define a custom schedule to refresh the snapshot.
3. Select Create a cache snapshot when I click Apply on this page if you want to create a cache
snapshot right now. If you select only this option, the snapshot will not be refreshed.
1. To create a history snapshot, select + New Histor y Snapshot . This will process the report and add an
entry to the list.
2. You can go into the settings to define schedules and retention policies.
3. You can select a history snapshot to view it. Snapshots that appear in report history are distinguished
only by the date and time at which they were created. There is no visual indication to distinguish whether
a snapshot was generated in response to a schedule or a manual operation.
Schedule and settings
Selecting Schedule and Settings will provide additional options to schedule and control retention of created
snapshots.
You can optionally create a schedule for the snapshots to get created. You can also prevent other people from
creating new snapshots. Unchecking Allow people to create snapshots manually will disable the + New
Snapshot Histor y button .
You can also define how you want to retain snapshots.
Save cache snapshots in repor t histor y as well
Selecting this will copy a report snapshot that you generate based on report execution properties to report
history. You can set report execution properties to run a report from a generated snapshot. By setting this report
history property, you can keep a record of all reports snapshots that are generated over time by placing copies
of them in report history.
Next steps
Web portal
Working with paginated reports
Work with Shared Datasets
More questions? Try asking the Reporting Services forum
Working with subscriptions (web portal)
11/2/2020 • 4 minutes to read • Edit Online
APPLIES TO: ✔
️ SQL Server 2016 Reporting Services and later ✔
️ Power BI Report Server
Use the Subscriptions page to list all of the subscriptions for the current report. If you have sufficient permission
(as conveyed by the "Manage all subscriptions" task), you can view the subscriptions of all users. Otherwise, this
page shows only the subscriptions that you own.
Before you can create a new subscription, you must verify that the report data source uses stored credentials.
Use the Data Sources properties page to store credentials.
NOTE
The SQL Server Agent service needs to be started.
You get to the Subscriptions page by selecting the ellipsis (...) of a report, selecting Manage and selecting
Subscriptions .
From the Subscriptions page, you can create new subscriptions by selecting + New Subscription . You can also
edit existing subscriptions, or delete subscriptions that you have selected.
This page also provides the result status of subscription runs on the Result column. If an error occurred for a
subscription, you will want to check the result column first to see what the message was.
You can also run a subscription whenever you want by selecting Run now on the Subscriptions page.
Type of subscription
You can select between a Standard subscription and a Data-driven subscription .
A data-driven subscription is one that queries a subscriber database for subscription information each time the
subscription runs. Data-driven subscriptions use query results to determine the recipients of the subscription,
delivery settings, and report parameter values. At run time, the report server runs a query to get values used for
subscription settings.
To create a data-driven subscription, you must know how to write a query or command that gets the data for the
subscription. You must also have a data store that contains the subscriber data (for example, subscriber names
and email addresses) to use for the subscription.
This option is available to users with advanced permissions. If you are using default security, data-driven
subscriptions cannot be used for reports located in a My Reports folder.
Destination
Select the delivery extension to use to distribute the report.
The availability of a delivery extension depends on whether it is installed and configured on the report server.
Report Server email is the default delivery extension, but it must be configured before you can use it. File Share
delivery does not require configuration, but you must define a shared folder before you can use it.
Depending on the delivery extension you select, the following settings appear:
Email subscriptions provide fields that are familiar to email users (for example, To, Subject, and Priority
fields). Specify Include Repor t to embed or attach the report, or Include Link to include a URL to the
report. Specify Render Format to choose a presentation format for the attached or embedded report.
See Create an email subscription for details.
File share subscriptions provide fields that allow you to specify a target location. You can deliver any
report to a file share. However, reports that support interactive features (including matrix reports that
support drill-down to supporting rows and columns) are rendered as static files. You cannot view drill-
down rows and columns in a static file. The file share name must be specified in Uniform Naming
Convention (UNC) format (for example, \mycomputer\public\myreportfiles). Do not include a trailing
backslash in the path name. The report file will be delivered in a file format that is based on the render
format (for example, if you choose Excel, the report is delivered as an .xlsx file). See Create a file share
subscription for details.
You need to first provide a data source to use for the query. This can be either a shared data source, or you can
supply a custom data source.
You will need to then supply a quer y that will list the different options needed for the subscription to run. The
screen will provide the fields that need to be returned. These fields will vary depending on your delivery method
and the parameters of the report.
For best result, run the query in SQL Server Management Studio first, before using it in the data-driven
subscription. You can then examine the results to verify that it contains the information you require. Important
points to recognize about the query results are:
Columns in the result set determine the values that you can specify for delivery options and report
parameters. For example, if you are creating a data-driven subscription for email delivery, you should
have a column of email addresses.
Rows in the result set determine the number of report deliveries that are generated. If you have 10,000
rows, the report server will generate 10,000 notifications and deliveries.
You can then validate the query. You can also define a quer y timeout .
After the query has been created, you can then assign values to the required fields. You can either enter your
manual data, or select a field from the dataset you created.
Next steps
Create and Manage Subscriptions for Native Mode Report Servers Web portal
Working with paginated reports
Work with Shared Datasets
More questions? Try asking the Reporting Services forum
Working with KPIs in Reporting Services
11/2/2020 • 3 minutes to read • Edit Online
APPLIES TO: ✔
️ SQL Server 2016 Reporting Services and later ✔
️ Power BI Report Server
A Key Performance Indicator (KPI) is a visual cue that communicates the amount of progress made toward a
goal. Key Performance Indicators are valuable for teams, managers, and businesses to evaluate quickly the
progress made against measurable goals.
By using KPIs in SQL Server Reporting Services, you can easily visualize answers to the following questions:
What am I ahead or behind on?
How far ahead or behind am I?
What are the minimum amounts I have completed?
NOTE
KPIs are only accessible in the Enterprise (Developer) editions of the SSRS portal.
Creating a Dataset
A KPI will only use the first row of data from a shared dataset. Make sure that the data you want to use is located
on that first row. To create a shared dataset, you can use either Report Builder or SQL Server Data Tools.
Note : The Dataset does not need to be in the same folder as the KPI.
Placement of KPIs
KPIs can be created in any folder in your report server. Before you create a KPI, you will want to think about
where is the right location to place it in. You can place it in a folder that is visible to the users, at the same time
being relevant to other reports, and KPIs, around it.
Adding a KPI
After you have determined the location of your KPI, go to that folder and select New > KPI from the top menu.
Value format Used to change the format of the value being displayed.
Status Numerical value used to determine the KPI Tile color. Valid
values are 1 (green), 0 (amber) and -1 (red).
Related content The ability to set a drill-through link. This link can either be a
mobile report published on the portal or a custom URL.
Warning : While you can use the word value for the Status field at design time, you should use the number
value if refreshing a dataset. If you refresh a dataset with the word value, instead of the number, it could
corrupt the KPIs on your server.
Note : The Value , Goal and Status fields can only choose a value from the first row of a dataset's result. The
Trend set field, however, can choose which column reflects the trend.
To use data from a shared dataset, you can do the following steps.
1. Change the fields drop down box from Set manually , or Not set , to Dataset field .
2. Select the ellipsis (...) in the data box. This will bring up the Pick a Dataset screen.
3. Select the dataset that has the data you want to display.
4. Choose the field you want to use. Select OK .
5. Change Value format to match the format of your value. In this example, the value is a currency.
6. Select Apply .
Configuring related content
When you choose Mobile Repor t , you can choose the destination in a dialog.
When you now click on the KPI in the portal, a thumbnail of the mobile report shows under the related content
dropdown. Clicking on this thumbnail can directly navigate you to this report.
You can also specify a custom URL. This task can be anything: a website, a SharePoint site, a URL to an SSRS
report (which would allow you to pass along hardcoded parameters).
When you now click on the KPI, the URL shows under related content.
It's only possible to add one mobile report or one custom URL.
Removing a KPI
To remove a KPI, you can do the following steps.
1. Select the ellipsis (...) of the KPI you want to remove. Select Manage .
2. Select Delete . Select Delete again on the confirmation dialog.
Refreshing a KPI
To refresh the KPI, you will need to configure a caching for the shared dataset. For more information regarding
cache refresh plans, see Work with Shared Datasets.
Next steps
Web portal
Work with Shared Datasets
More questions? Try asking the Reporting Services forum
My Settings for Power BI Integration (web portal)
11/2/2020 • 2 minutes to read • Edit Online
APPLIES TO: ✔
️ SQL Server 2016 Reporting Services and later ✔
️ Power BI Report Server
The My Settings page in the Reporting Services web portal is used by individual users to manage their sign-in
with Power BI. When you go through the steps to pin a report item, you will automatically be prompted to sign.
However, you can use the My Settings page if you need to manually sign in or if you need to sign out. If the My
Settings menu option is not visible, the report server has not been integrated with Power BI. For more
information, see Power BI Report Server Integration (Configuration Manager).
Why Sign-in
When you sign in, you establish a relationship between your Reporting Services user account and your Power BI
account. The sign-in creates a security token that is good for 90 days. If the token expires, and you have items
pinned to Power BI, you will see a notification.
Tiles within Power BI dashboards will not refresh until you sign in again through MySettings .
Once you sign in, a new security token will be created. Your dashboard tiles will begin updating on their
previously configured schedules.
Next steps
Power BI Report Server Integration
Pin Reporting Services items to Power BI Dashboards
Dashboards in Power BI
Web portal
More questions? Try asking the Reporting Services forum
Reporting Services Report Server (Native Mode)
8/25/2021 • 6 minutes to read • Edit Online
A report server configured for native mode runs as an application server that provides all processing and
management capability exclusively through Reporting Services components.
You can use either SQL Server Management Studio or the web portal to manage Reporting Services reports.
Use the Reporting Services configuration manager to manage a report server in native mode.
If the report server is configured for SharePoint mode, you must use the content management pages on the
SharePoint site to manage reports, shared data sources, and other report server items.
This article contains the following information:
Summary of native mode
Managing content
Securing and managing a resource
Referencing an image resource from a report
Managing content
In Reporting Services, content management refers to the management of reports, models, folders, resources,
and shared data sources. All these items can be managed independently of each other through properties and
security settings. Any item can be moved to a different location in the report server folder namespace. To
manage items effectively, you need to know which tasks a content manager performs.
NOTE
Content management is different from report server administration. For more information about how to manage the
environment in which a report server runs, see Configuration and Administration of a Report Server (Reporting Services
SharePoint Mode).
O P ERAT IO N F IL E T Y P E
Publish All files in a project are uploaded as resources except for .rdl,
.smdl, and .rds data source files. To publish a resource, add
an existing item to a project in Report Designer and then
publish the project to a report server.
All resources originate as files on a file system, which are subsequently uploaded to a report server. There are no
restrictions on the kinds of files you can upload, file sizes up to 1 GB. However, when published to a report
server as a resource, file types that have equivalent MIME types are more optimal than others. For example,
resources that are based on HTML and JPG files will open in a browser window when the user clicks the
resource, rendering the HTML as a Web page and the JPG as an image that the user can see. In contrast,
resources that do not have equivalent MIME types, such as desktop application files, for example, may not be
rendered in the browser window.
Whether a resource can be viewed by report users depends on the viewing capabilities of the browser. Because
resources are not processed by the report server, the browser must provide the viewing capability to render a
specific MIME type. If the browser cannot render the content, users who view the resource see only the general
properties of the resource.
Resources exist alongside reports, shared data sources, shared schedules, and folders as named items in the
report server folder hierarchy. You can search for, view, secure, and set properties on resources just as you
would any item stored on a report server. To view or manage a resource, you must have the View resources or
Manage resources tasks in your role assignment.
See also
Configure and Administer a Report Server (SSRS Native Mode)
Troubleshoot a Reporting Services Installation
Comparing native and SharePoint Reporting
Services report servers
11/2/2020 • 10 minutes to read • Edit Online
APPLIES TO: ✔
️ SQL Server 2016 Reporting Services and later ✔
️ SharePoint ✔
️ Power BI Report Server
For content related to previous versions of SQL Server Reporting Services (SSRS), see SQL Server 2014
Reporting Services.
Learn about the central piece of a SQL Server Reporting Services installation. It consists of a processing engine
along with extensions to add functionality.
NOTE
Reporting Services integration with SharePoint is no longer available after SQL Server 2016.
A Reporting Services report server runs in one of two deployment modes; Native mode or SharePoint mode.
See the Feature Comparison of SharePoint and Native Mode section for a comparison of features.
Installation: For information on Reporting Services installation, see Install Reporting Services.
My Repor ts Yes No
F EAT URE O R C O M P O N EN T N AT IVE M O DE SH A REP O IN T M O DE
Native mode
In native mode, a report server is a stand-alone application server that provides all viewing, management,
processing, and delivery of reports and report models. This is the default mode for report server instances. You
can install a native mode report server that is configured during setup or you can configure it for native mode
operations once setup is complete.
The following diagram shows the three-tier architecture of a Reporting Services Native mode deployment. It
shows the report server database and data sources in the data tier, the report server components in the middle
tier, and the client applications and built-in or custom tools in the presentation tier. It shows the flow of requests
and data among the server components and which components send and retrieve content from a data store.
The report server is implemented as a Microsoft Windows service, called the "Report Server service", that hosts
a Web service, background processing, and other operations. In the Services console application, the service is
listed as SQL Server Reporting Services (MSSQLSERVER).
Third-party developers can create additional extensions to replace or extend the processing capability of the
report server. To learn more about the programmatic interfaces available to application developers, see the
Technical Reference.
Native mode with SharePoint web parts
Reporting Services provides two web parts that you can install and register on an instance of Windows
SharePoint Services 2.0 or later, or SharePoint Portal Server 2003 or later. From a SharePoint site, you can use
the web parts to find and view reports that are stored and processed on a report server that runs in native
mode. These web parts were introduced in earlier releases of Reporting Services.
SharePoint mode
In SharePoint mode, a report server must run within a SharePoint server farm. The report server processing,
rendering, and management features are represented by a SharePoint application server running the Reporting
Services SharePoint shared service and one or more Reporting Services service applications. A SharePoint site
provides the front-end access to report server content and operations.
SharePoint mode requires:
SharePoint Foundation 2010 or SharePoint Server 2010.
An appropriate version of the Reporting Services Add-in for SharePoint 2010 Products.
A SharePoint application server with the Reporting Services shared service installed and at least one
Reporting Services service application.
The following illustration shows a SharePoint mode Reporting Services environment:
DESC RIP T IO N
(2) The add-in installs URL and SOAP endpoints for clients to
communicate with the Application servers, through the
Reporting Services service proxy.
(4) You can create more than one Reporting Services service
application, with different configurations including
permissions, e-mail, proxy, and subscriptions.
(5) Reports, data sources, and other items are stored in the
SharePoint content databases.
NOTE
Reporting Services includes a complete set of tools and applications that you can use to administer the server, create
content, and make that content available to users in your organization.
Related tasks
The following articles provide additional information on installing, using, and maintaining a report server:
TA SK L IN K
Review Hardware and software requirements. Hardware and Software Requirements for Reporting Services
in SharePoint Mode.
Install Reporting Services in SharePoint mode. Install Reporting Services SharePoint Mode for SharePoint
2010
Explains how to tune the memory settings for the Report Configure Available Memory for Report Server Applications
Server Web service and Windows service.
Explains recommended steps to configure are report server Configure a Report Server for Remote Administration
for remote administration.
Provides instructions for configuring the availability of My Enable and Disable My Reports
Repor ts on a Native report server instance.
Provides instructions for setting up the RSClientPrint control Enable and Disable Client-Side Printing for Reporting
that provides print functionality from within supported Services
browsers. For more information on browser requirements,
see Browser Support for Reporting Services and Power View.
Next steps
Reporting Services Extensions
Reporting Services Tools
Subscriptions and Delivery (Reporting Services)
Report Server Database (SSRS Native Mode)
Implementing a Security Extension
Implementing a Data Processing Extension
Data Sources Supported by Reporting Services (SSRS)
More questions? Try asking the Reporting Services forum
Configure and Administer a Report Server (SSRS
Native Mode)
11/2/2020 • 2 minutes to read • Edit Online
This article summarizes the approaches that you can use to configure Reporting Services. It also includes a list
of topics that explain how to configure specific components, features, or server capabilities. To configure
Reporting Services, you can:
Use the Report Server Configuration Manager. Many of the topics in this section contain information
about how to configure specific features through this tool.
Use Management Studio to customize server properties, enable My Reports, enable trace logs, and set
site-wide defaults. For more information about site settings, see Reporting Services Report Server
(Native Mode) for Management Studio. Note that you can create and run script that sets server
properties programmatically. For more information, see Script Deployment and Administrative Tasks and
Report Server System Properties.
Use the web portal to grant permissions to access the report server. Permissions are conveyed through
role assignments that you define for each user or group account. For more information, see Roles and
Permissions (Reporting Services).
Optionally, modify configuration files to change application settings. For more information about each file
and guidelines for modifying them, see Reporting Services Configuration Files.
In this section
Configure Report Server URLs (Report Server Configuration Manager)
Describes how to define the URLs used to access the report server and the web portal.
Configure the Report Server Service Account (Report Server Configuration Manager)
Provides recommendations and steps on how to modify service account and password.
Create a Report Server Database (Report Server Configuration Manager)
Describes how to create a report server database, required for storing server metadata and objects.
Configure a Report Server Database Connection (Report Server Configuration Manager)
Describes how to modify the connection string used by the report server to connect to the report server
database.
E-Mail Delivery in Reporting Services
Describes how to configure a report server to support e-mail report distribution.
Configure the Unattended Execution Account (Report Server Configuration Manager)
Describes how to configure a user account to process reports in unattended mode.
See also
Reporting Services Configuration Files
Report Server Configuration Manager (Native Mode)
Reporting Services Security and Protection
Reporting Services Report Server (Native Mode)
Configure a Report Server (Reporting Services
Native Mode)
11/2/2020 • 2 minutes to read • Edit Online
Depending on options you selected during installation, the Report Server might require additional configuration
before you can use it. At a minimum, a report server configuration consists of the following:
A Report Server service account (configured during installation).
A Web service URL that provides access to the report server.
A report server database that stores application data, reports, and other items.
Setup configures the minimum settings if you select either of the following installation options: Native mode
default configuration or SharePoint integrated mode default configuration. If you installed the report server in
files-only mode (this is the Install but do not configure option in the Installation wizard), only the service
account is configured. The Web service URL and report server database must be configured after Setup is
finished.
It's recommended that you configure web portal so that you can grant user access to the report server and
manage report server content. If you deploy a report server in SharePoint integrated mode, use the Web front
end of a SharePoint server to grant access.
Additional features, such as report server e-mail and the unattended execution account, can be configured as
needed. For more information, see Manage a Reporting Services Native Mode Report Server.
To configure a report server, use the Reporting Services Configuration tool.
Next Steps
To complete your deployment, you should configure the web portal or SharePoint integration. For more
information, see Configure the web portal.
If Windows Firewall is turned on, the port that the report server is configured to use is most likely closed. One
indication that a port might be closed is a blank page when you attempt to open the web portal from a remote
client computer. For information on configuring the firewall, see Configure a Firewall for Report Server Access.
If you are using Windows Vista or Windows Server 2008, additional steps are required before you can open the
web portal locally. For more information, see Configure a Native Mode Report Server for Local Administration
(SSRS).
Verify your installation by creating folders, uploading items, and running reports. Follow the instructions in
Verify a Reporting Services Installation to verify your installation.
See also
Manage a Reporting Services Native Mode Report Server
Configure a Firewall for Report Server Access
Configure a Native Mode Report Server for Local Administration (SSRS)
Configure a Report Server for Remote Administration
Report Server Configuration Manager (Native Mode)
Configure the web portal
11/2/2020 • 4 minutes to read • Edit Online
the web portal is a Web front end application used to view reports, manage report server content, and grant
user access to a native mode report server. the web portal is installed with the Report Server Web service within
the same report server instance and optionally configured if you select the Install in the default native
mode configuration option in Setup. You can also configure the web portal as a post-installation task. This
topic provides information about the following the web portal configuration scenarios:
Prerequisites
To use the web portal, you must satisfy the following prerequisites:
You must have a minimally configured report server. For more information about minimally configuring
a report server, see Configure a Report Server.
Your report server must run in native mode. You cannot use the web portal with a report server that is
configured for SharePoint integrated mode. In SQL Server 2012 you cannot switch a report server from
one mode to the other. If you want to change the type of report server that your environment uses, you
must install the desired mode of report server and then copy or move the report items to the new report
server. This process is typically referred to as a 'migration'. The steps needed to migrate depend on the
mode you are migrating to and the version you are migrating from. For more information, see Upgrade
and Migrate Reporting Services.
You must also have Internet Explorer 11 or later with scripting enabled. For more information, see
Browser Support for Reporting Services and Power View.
TIP
If you try to access the web portal on a remote computer and you receive connection error messages in your browser, a
common cause is Firewall settings. For more information, see Configure a Firewall for Report Server Access.
To configure the default the web portal URL and virtual directory
1. Start the Reporting Services Configuration tool and connect to the report server instance.
2. In the Reporting Services Configuration tool, select Web Por tal URL to open the page for configuring
the URL.
3. Enter a unique virtual directory name for the web portal.
4. Click Apply .
5. If you are using Windows Vista or Windows Server 2008, additional steps might be required before you
can use the web portal. For more information, see Configure a Native Mode Report Server for Local
Administration (SSRS).
Next steps
Web portal
Browser Support for Reporting Services Configure a URL
Verify a Reporting Services Installation
Turn Reporting Services Features On or Off
Manage a Reporting Services Native Mode Report Server
RsReportServer.config Configuration File
Configure a Native Mode Report Server for Local Administration
More questions? Try asking the Reporting Services forum
Manage a Reporting Services Native Mode Report
Server
11/2/2020 • 2 minutes to read • Edit Online
This section contains procedures for configuring a native mode report server instance using the Report Server
Configuration Manager.
In This Section
The topics in this section are organized into categories so that you can more easily find the instructions you
want. The first section contains topics for basic configuration tasks for a native mode report server. The second
section contains advanced configuration topics. The third section contains topics for configuring a report server
to run in SharePoint integrated mode.
Basic Configuration
Report Server Configuration Manager (Native Mode)
Provides steps for starting the Reporting Services Configuration tool.
Configure a Service Account (Report Server Configuration Manager)
Explains how to specify account and password information for the Report Server service.
Register a Service Principal Name (SPN) for a Report Server
Explains how to manually register an SPN for a report server that runs under a domain user account on a
network that uses Kerberos authentication.
Configure a URL (Report Server Configuration Manager)
Explains how to establish one or more URLs used to access the Report Server Web service and the web portal.
Create a Native Mode Report Server Database (Report Server Configuration Manager)
Provides steps for creating a report server database. This step is required for deploying a Reporting Services
installation.
Advanced or Optional Configuration
Configure a Native Mode Report Server Scale-Out Deployment (Report Server Configuration Manager)
Provides steps for configuring multiple report servers to share a report server database.
E-Mail Delivery in Reporting Services
Provides steps for configuring a report server for e-mail distribution.
Configure a Firewall for Report Server Access
Explains how to open ports used for inbound requests and outbound responses from a report server.
Configure a Native Mode Report Server for Local Administration (SSRS)
Describes additional steps required to connect to the web portal or a report server using https://localhost .
Configure a Report Server for Remote Administration
Explains how to configure a remote report server instance so that you can connect to and configure it from a
different computer.
Turn Reporting Services Features On or Off
Explains how to remove unused features in a Reporting Services installation.
Enable Remote Errors (Reporting Services)
Explains how to set server properties on a report server to return additional information about error conditions
that occur on remote servers.
See Also
Configure and Administer a Report Server (SSRS Native Mode)
Configuration and Administration of a Report Server (Reporting Services SharePoint Mode)
Configure a Firewall for Report Server Access
11/2/2020 • 3 minutes to read • Edit Online
Reporting Services Report server applications and published reports are accessed through URLs that specify an
IP address, port, and virtual directory. If Windows Firewall is turned on, the port that the report server is
configured to use is most likely closed. Indications that a port might be closed are receiving a blank page when
you attempt to open the web portal from a remote client computer, or a blank Web page after requesting a
report.
To open a port, you must use the Windows Firewall utility on the report server computer. Reporting Services will
not open ports for you; you must perform this step manually.
By default, the report server listens for HTTP requests on port 80. As such, the following instructions include
steps that specify that port. If you configured the report server URLs to use a different port, you must specify
that port number when following the instructions below.
If you are accessing SQL Server relational databases on external computers, or if the report server database is
on an external SQL Server instance, you must open port 1433 and 1434 on the external computer. For more
information, see Configure a Windows Firewall for Database Engine Access. For more information about the
default Windows firewall settings, and a description of the TCP ports that affect the Database Engine, Analysis
Services, Reporting Services, and Integration Services, see Configure the Windows Firewall to Allow SQL Server
Access.
Prerequisites
These instructions assume that you already configured the service account, created the report server database,
and configured URLs for the Report Server Web service and the web portal. For more information, see Manage
a Reporting Services Native Mode Report Server.
You should also have verified that the report server is accessible over a local Web browser connection to the
local report server instance. This step establishes that you have a working installation. You should verify that the
installation is configured correctly before you begin opening ports. To complete this step on Windows Server,
you must have also added the report server site to Trusted Sites. For more information, see Configure a Native
Mode Report Server for Local Administration (SSRS).
Next steps
After you open the port and before you confirm whether remote users can access the report server on the port
that you open, you must grant user access to the report server through role assignments on Home and at the
site level. You can open a port correctly and still have report server connections fail if users do not have
sufficient permissions. For more information, see Grant user access to a report server.
You can also verify that the port is opened correctly by starting the web portal on a different computer. For more
information, see The web portal of a report server.
See also
Configure the Report Server Service Account (Report Server Configuration Manager)
Configure Report Server URLs (Report Server Configuration Manager)
Create a Report Server Database (Report Server Configuration Manager)
Configure the Report Server Service Account (Report Server Configuration Manager)
Manage a Reporting Services Native Mode Report Server
Configure a Native Mode Report Server for Local
Administration (SSRS)
11/2/2020 • 5 minutes to read • Edit Online
Deploying a Reporting Services report server on one of the following operating systems requires more
configuration steps if you want to administer the report server instance locally. This topic explains how to
configure the report server for local administration. If you have not yet installed or configured the report server,
see Install SQL Server from the Installation Wizard (Setup) and Manage a Reporting Services Native Mode
Report Server.
2. Select the gear icon on the top row the Home page and then Site Settings from the dropdown menu.
.
TIP
Note: If you do not see the Site Settings option, close and reopen your browser and browse to web portal with
administrative privileges.
3. On the Site settings page, Select Security and then select Add group or user .
4. In the Group or user name field, type your Windows user account in this format: <domain>\<user> .
5. Select System Administrator .
6. Select OK .
7. Close web portal.
8. Re-open the web portal in Internet Explorer, without using Run as administrator .
Additional information
An additional and common configuration step related to Reporting Services administration is to open port 80 in
Windows Firewall to allow access to the report server computer. For instructions, see Configure a Firewall for
Report Server Access.
See also
Manage a Reporting Services Native Mode Report Server
Configure a Report Server for Remote
Administration
3/5/2021 • 4 minutes to read • Edit Online
In Reporting Services, you can configure report server instances locally or remotely. To configure a remote
report server instance, you can use the Reporting Services Configuration tool or write custom code that uses
the Reporting Services Windows Management Instrumentation (WMI) provider. The Reporting Services
Configuration tool provides a graphical interface to the WMI provider so that you can configure a report server
without having to write code. When you start the tool, you can specify a remote server to connect to.
Before you can use the tool to configure a remote report server, you must follow the instructions in this topic to
enable ports in Windows Firewall, enable remote connections, and enable remote WMI requests.
Proper configuration helps you avoid the following error:
The machine could not be found.
Prerequisites
To modify firewall settings, you must be logged on locally and you must be a member of the local
Administrators group. You cannot modify the Windows firewall settings of a remote computer over a remote
connection.
If you want to enable remote administration for a non-administrator user, you must grant the account
Distributed Component Object Model (DCOM) Remote Activation permissions. Instructions for configuring the
server for non-administrator access are provided in this topic.
Some organizations have group policies that prevent remote server administration for certain operating
systems or users. Before you begin modifying firewall settings, check with your network administrator to verify
whether there are restrictions on remote administration.
For more information, see Connecting Through Windows Firewall in the Platform SDK documentation on
MSDN.
Tasks
Tasks that enable remote report server configuration include the following:
Enable ports in Windows Firewall to allow requests on ports used by the report server and by the SQL
Server Database Engine instance. See Configure a Firewall for Report Server Access and Configure a
Windows Firewall for Database Engine Access.
Enable remote connections to the instance of the Database Engine instance that hosts the report server
database. A remote connection is necessary for configuring the report server database connection and
managing the encryption keys.
Enable remote WMI requests to pass through the Microsoft Windows firewall.
If you are configuring a remote report server for administration by a non-administrative user, you must
set DCOM permissions to enable remote WMI access to a standard Windows user account. Because WMI
uses DCOM as transport for remote calls, you must set the DCOM permissions so that users who are not
logged on as the local administrator can configure the server.
If you are configuring a remote report server for administration by a non-administrative user, you must
also set WMI permissions on the report server WMI namespace. By default, all members of the local
Administrator group have access to the report server WMI namespace. If you want to grant access to
non-administrators, you must set permissions.
Instructions on how to perform these tasks are provided in this topic.
To configure remote connections to the report server database
1. Click Star t , point to Programs , point to Microsoft SQL Ser ver , point to Configuration Tools , and
click SQL Ser ver Configuration Manager .
2. In the left pane, expand SQL Ser ver Network Configuration , and then click Protocols for the
instance of SQL Server.
3. In the details pane, enable the TCP/IP and Named Pipes protocols, and then restart the SQL Server
service.
To enable remote administration in Windows Firewall
1. Log on as a local administrator to the computer for which you want to enable remote administration.
2. Open a command prompt with administrative privileges.
3. Run the following command:
You can specify different options for Scope. For more information, see the Windows Firewall product
documentation.
4. Verify that remote administration is enabled. You can run the following command to show the status:
See Also
Report Server Configuration Manager (Native Mode)
Configure a Report Server on a Network Load
Balancing Cluster
4/5/2021 • 9 minutes to read • Edit Online
If you are configuring a report server scale-out to run on a Network Load Balancing (NLB) cluster, you must do
the following:
Ensure that the NLB cluster is accessible through a virtual server name that maps to the virtual server IP
address. A virtual server name is necessary so that you can configure a single point of entry to the NLB
cluster. When you configure a URL for each report server instance, you will specify the virtual server
name as the host.
Configure view state validation to support interactive report viewing. Interactive reports are typically
rendered numerous times during a single user session to visualize new or different data in response to
user actions. By configuring view state validation, continuity is preserved within the user session
regardless of which report server services the actual request.
Reporting Services does not provide functionality for load balancing a scale-out deployment or for defining a
single point of access through a shared URL. You must implement a separate software or hardware NLB cluster
solution to support a Reporting Services scale-out deployment.
You can install Reporting Services on nodes that are already part of an NLB cluster, or you can configure a scale-
out deployment first and then install cluster software.
ST EP DESC RIP T IO N M O RE IN F O RM AT IO N
2 Configure the NLB cluster and verify it For more information, see the
is working correctly. Windows Server product
documentation for the version of the
Be sure to map a host header name to Windows operating system that you
the virtual server IP of the NLB cluster. run.
The host header name is used in the
report server URL, and is easier to
remember and type than an IP
address.
ST EP DESC RIP T IO N M O RE IN F O RM AT IO N
3 Add the NetBIOS and Fully Qualified This step is required if your server
Domain Name (FQDN) for the host environment involves NTLM
header to the list of authentication on the local computer,
BackConnectionHostNames stored creating a loop back connection.
in the Windows Registry.
If this is the case, you will experience
For example, if the host header name the requests between Report Manager
<MyServer> is a virtual name for the and Report Server to fail with 401
Windows computer name of "contoso", (Unauthorized).
you can probably reference the FQDN
form as "contoso.domain.com". You will
need to add both the hostheader
name (MyServer ) and FQDN name
(contoso.domain.com) to the list in
BackConnectionHostNames .
7 Verify the servers are accessible Verify Report Server Access in this
through the host name you specified. topic.
2. Open the Web.config file for Reportserver, and in the < system.web > section paste the < machineKey >
element that you generated. By default, the Web.config file is located in \Program Files\Microsoft SQL
Server\MSRS13.MSSQLSERVER\Reporting Services\Reportserver\Web.config.
3. Save the file.
4. Repeat the previous step for each report server in the scale-out deployment.
5. Verify that all Web.Config files for all report servers in the scale-out deployment contain identical <
machineKey > elements in the < system.web > section.
APPLIES TO: ✔
️ SQL Server Reporting Services (2017 and later) ✔
️ Power BI Report Server
1. Generate a validation key and decryption key by using the autogenerate functionality provided by the
.NET Framework. In the end, you must have a single <MachineKey > entry that you can paste into the
RSReportServer.config file for each report server instance in the scale-out deployment.
The following example provides an illustration of the value you must obtain. Do not copy the example
into your configuration files; the key values are not valid. Report server requires the correct casing.
2. Open the RSReportServer.config file for Reportserver, and in the < Configuration > section paste the
<MachineKey > element that you generated. By default, the RSReportServer.config file is located in
\Program Files\Microsoft SQL Server Reporting Services\SSRS\ReportServer\RSReportServer.config for
Reporting Services and \Program Files\Microsoft Power BI Report
Server\PBIRS\ReportServer\RSReportServer.config for Power BI Report Server.
3. Save the file.
4. Repeat the previous step for each report server in the scale-out deployment.
5. Verify that all RSReportServer.config files for all report servers in the scale-out deployment contain
identical <MachineKey > elements in the < Configuration > section.
<Hostname>virtual_server</Hostname>
3. Find UrlRoot . The element is unspecified in the configuration file, but the default value used is a URL in
this format: https:// or https://<computername>/<reportserver> , where <reportserver> is the virtual
directory name of the Report Server Web service.
4. Type a value for UrlRoot that includes the virtual name of the cluster in this format: https:// or
https://<virtual_server>/<reportserver> .
You can check which node actually processes reports by looking at the report server log files or by checking the
RS execution log (the execution log table contains a column called InstanceName that shows which instance
processed a particular request). For more information, see Reporting Services Log Files and Sources .
If you cannot connect to the report server, check the NLB to ensure that requests are sent to the report server
and view the report server HTTP log to ensure that the server is receiving the requests.
Troubleshooting Failed Requests
If requests do not reach the report server instances, check the RSReportServer.config file to verify that the
virtual server name is specified as the host name for the report server URLs:
1. Open the RSReportServer.config file in a text editor.
2. Find <Hostname >, <Repor tSer verUrl >, and <UrlRoot >, and check the host name for each setting. If
the value is not the host name you expect, replace it with the correct host name.
If you start the Reporting Services Configuration tool after making these changes, the tool might change the
<Repor tSer verUrl > settings to the default value. Always keep a backup copy of the configuration files in case
you need to replace them with the version that contains the settings you want to use.
See Also
Configure a URL (Report Server Configuration Manager)
Configure a Native Mode Report Server Scale-Out Deployment (Report Server Configuration Manager)
Report Server Configuration Manager (Native Mode)
Manage a Reporting Services Native Mode Report Server
Enable Remote Errors (Reporting Services)
11/2/2020 • 2 minutes to read • Edit Online
You can set server properties on a Reporting Services report server to return additional information about error
conditions that occur on remote servers. If an error message contains the text "For more information about this
error, navigate to the report server on the local server machine, or enable remote errors", you can set the
EnableRemoteErrors property to access additional information that can help you troubleshoot the problem.
For more information, see Report Server System Properties.
In this topic:
Enable Remote Errors for SharePoint Mode
Enable remote errors through SQL Server Management Studio (Native Mode)
Enable remote errors through script (Native Mode)
Modifying the ConfigurationInfo table (Native Mode)
rs -i EnableRemoteErrors.rss -s https://servername/ReportServer
If you are deploying Reporting Services in a network that uses the Kerberos protocol for mutual authentication,
you must create a Service Principal Name (SPN) for the Report Server service if you configure it to run as a
domain user account.
About SPNs
An SPN is a unique identifier for a service on a network that uses Kerberos authentication. It consists of a service
class, a host name, and sometimes a port. HTTP SPNs do not require a port. On a network that uses Kerberos
authentication, an SPN for the server must be registered under either a built-in computer account (such as
NetworkService or LocalSystem) or user account. SPNs are registered for built-in accounts automatically.
However, when you run a service under a domain user account, you must manually register the SPN for the
account you want to use.
To create an SPN, you can use the SetSPN command line utility. For more information, see the following:
Setspn (https://docs.microsoft.com/previous-versions/windows/it-pro/windows-server-2012-R2-and-
2012/cc731241(v=ws.11)).
Service Principal Names (SPNs) SetSPN Syntax (Setspn.exe)
(https://social.technet.microsoft.com/wiki/contents/articles/717.service-principal-names-spns-setspn-
syntax-setspn-exe.aspx).
You must be a domain administrator to run the utility on the domain controller.
Syntax
When you manipulate SPNs with the setspn, the SPN must be entered in the correct format. The format of an
HTTP SPN is http/host . The command syntax for using SetSPN utility to create an SPN for the report server
resembles the following:
SetSPN is available with Windows Server. The -s argument adds a SPN after validating no duplicate exists.
NOTE:-s is available in Windows Server starting with Windows Server 2008.
HTTP is the service class. The Report Server Web service runs in HTTP.SYS. A by-product of creating an SPN for
HTTP is that all Web applications on the same computer that run in HTTP.SYS (including applications hosted in
IIS) will be granted tickets based on the domain user account. If those services run under a different account, the
authentication requests will fail. To avoid this problem, be sure to configure all HTTP applications to run under
the same account, or consider creating host headers for each application and then creating separate SPNs for
each host header. When you configure host headers, DNS changes are required regardless of the Reporting
Services configuration.
The values that you specify for <computername> and <domainname> identify the unique network address of
the computer that hosts the report server. This can be a local host name or a fully qualified domain name
(FQDN). If you only have one domain, you can omit <domainname> from your command line. <domain-user-
account> is the user account under which the Report Server service runs and for which the SPN must be
registered.
See Also
Configure a Service Account (Report Server Configuration Manager)
Configure the Report Server Service Account (Report Server Configuration Manager)
Manage a Reporting Services Native Mode Report Server
Turn Reporting Services Features On or Off
11/2/2020 • 2 minutes to read • Edit Online
You can turn off report server features that you do not use as part of a lockdown strategy for reducing the
attack surface of a production report server. In most cases, you will want to run Reporting Services features
concurrently to use all of the functionality provided in Reporting Services. However, depending on your
deployment model, you can disable the features that you do not require. For example, you can enable only the
background processing if all report processing is configured as scheduled operations. Similarly, you can run just
the Report Server web service if you only want interactive, on-demand reporting.
The procedures in this article show you how to turn off native mode Reporting Services features. Features can
be configured in different ways, such as by editing the RsReportServer.config file directly or by using the
Surface Area Configuration for Repor ting Ser vices facet of Policy-Based Management in SQL Server
Management Studio. Use the links to locate the procedure or procedures that explain how to turn a feature on or
off:
Report server web service
Scheduled events and processing
Web portal
Windows integrated security for report data sources
<IsWebServiceEnabled>true</IsWebServiceEnabled>
3. To turn off the Report Server web service, set IsWebSer viceEnabled to false :
<IsWebServiceEnabled>false</IsWebServiceEnabled>
<IsSchedulingService>true</IsSchedulingService>
<IsNotificationService>true</IsNotificationService>
<IsEventService>true</IsEventService>
3. To turn off scheduled report processing and delivery, set IsSchedulingSer vice , IsNotificationSer vice ,
and IsEventSer vice to false :
<IsSchedulingService>false</IsSchedulingService>
<IsNotificationService>false</IsNotificationService>
<IsEventService>false</IsEventService>
NOTE
You cannot turn off background processing completely because it provides database maintenance functionality that is
required for server operations.
Web portal
As of SQL Server 2016 Reporting Services Cumulative Update 2, the web portal will always be enabled.
See also
Report Server Configuration Manager (Native Mode)
More questions? Try the Reporting Services forum
Enable a report server for Power BI Mobile access
11/2/2020 • 2 minutes to read • Edit Online
You can use the Power BI Mobile app to consume Mobile Reports. There are a few things that you need to
configure to allow the Power BI Mobile app to connect to Reporting Services.
Mobile Reports require Reporting Services Native Mode
Enable basic authentication for Reporting Services (for CTP 3.2)
Recommended to enable HTTPS along with a valid certificate trust for the client device
Review firewall settings
Enable HTTPS
It is recommended that you enable HTTPS in Reporting Services if you enable basic authentication. If you enable
HTTPS, make sure that the certificates used can be trusted with the client devices running the iOS Power BI
Mobile app. This means that the certification chain needs to be valid and available to the client device.
If you need to use a self-signed certificate for development or evaluation purposes, you can export the
certificate from the report server and install it on the mobile device. Please refer to your device documentation
on how to install it on that device.
For more information on enabling TLS, see Configure TLS Connections on a Native Mode Report Server.
## Review firewall settings It is recommended that you review your firewall settings to ensure that all devices can
connect successfully to Reporting Services. For more information on how to configure the Windows Firewall, see
[Configure a Firewall for Report Server Access](../../reporting-services/report-server/configure-a-firewall-for-
report-server-access.md). ## See also [Configure Basic Authentication on the Report Server](../../reporting-
services/security/configure-windows-authentication-on-the-report-server.md) [Configure TLS Connections on a
Native Mode Report Server](../../reporting-services/security/configure-ssl-connections-on-a-native-mode-report-
server.md) [Configure a Firewall for Report Server Access](../../reporting-services/report-server/configure-a-
firewall-for-report-server-access.md)
Report Server Content Management (SSRS Native
Mode)
11/2/2020 • 13 minutes to read • Edit Online
In Reporting Services, content management refers to the management of report server items. All items can be
managed independently of each other through properties and security settings. Any item can be moved to a
different location in the report server folder namespace. To manage items effectively, you need to know which
tasks a content manager performs. Starting in SQL Server 2016 Reporting Services or later (SSRS) CTP 3.2, the
Reporting Services web portal is available. This article will look at the web portal and the new web portal
experience.
NOTE
Content management is different from report server administration. For more information about how to manage the
environment in which a report server runs, see Reporting Services Report Server (Native Mode).
NOTE
For CTP 3.2, if you want to move the location of an item, you need to perform that action in the web portal.
In the web portal, the items that you can move are indicated in the folder hierarchy. The following image shows
the icon for each movable item.
Not all items that you work with can be moved. You cannot move items that are associated with a report, such
as subscriptions or report history. Those items move with their associated reports. Similarly, you cannot move
items, such as shared schedules, that exist outside of the folder hierarchy. You cannot move items if you lack
permission to do so. Permission to move an item is conveyed when the following tasks are selected in your role
assignment for the item in question: "Manage reports," "Manage folders," and "Manage data sources."
Folders
A folder hierarchy is used for addressing items that are stored and managed by a report server. By default, the
folder structure consists of a root node named Home, and reserved folders that support the optional My
Reports feature. Additional folders are user-defined. Report server folders are useful if you want to grant the
same level of access to multiple items. Permissions that you set on the folder can be inherited by items in the
folder and to additional folders that branch from that folder. For example, you can create a set of folders under
the Home folder, assign team permissions to each folder, and then let team members customize folders under
the team folder as needed.
If you are using a browser to connect directly to a report server, the root node of the folder structure is the name
of the report server virtual directory. From the root node, you can create, modify, and delete folders as
necessary to organize report server content. You can add content to a folder, move items between folders,
modify folder names or locations, and delete folders that are no longer required.
Folders are virtual containers for published items that you access through the web portal or a browser
connection to the report server. Neither the folders nor their contents actually exist in a file system. Instead, they
are stored in the report server database and accessed through the Report Server Web service endpoint. The
report server folder namespace is a hierarchy that includes a root node, predefined folders, and user-defined
folders. The namespace uniquely identifies items that are stored on a report server. It provides an addressing
scheme for specifying items in a URL. When you select or locate a report, the folder path becomes part of the
URL for that report.
How you work with folders depends on tasks that are part of your role assignment. If you are using default
security, Content Managers and Publishers can create and manage folders. If you use custom role assignments,
the role assignment must include tasks that support folder management. For more information about role
assignments and tasks, see Granting Permissions on a Native Mode Report Server and Tasks and Permissions.
Report server folders can contain the following items:
Reports
Shared data sources
Shared datasets
Report Parts
KPIs
Mobile Reports
Resources (items that are stored on but not processed by a report server)
Other folders
Reserved folders
Predefined folders are reserved by Reporting Services; they cannot be moved, renamed, or deleted. User-
defined folders include any folders created by a user or report server administrator with permission to add
items to a folder.
The following table describes predefined folders that anchor the folder hierarchy and provide a framework for
several features.
F O L DER P URP O SE
Users This folder appears when you enable the My Reports feature.
It contains subfolders for all users who use the My Reports
feature, and it is accessible only to report server
administrators. Each subfolder name matches the user's
name.
Creating folders
You can create a folder in any available folder in the hierarchy.
If you are creating folders for the purpose of restricting access to specific reports and models, you should
specify role assignments that allow users to browse, but not view the contents of, parent folders that are in the
folder path.
Modifying folder properties
After a folder is created, you can modify properties to rename the folder, add or modify the description, or move
the folder to another location. These properties are available on the General properties page for the folder. For
more information about setting properties that grant access to a folder, see Secure Folders.
Deleting folders and folder contents
When you delete a folder, you delete all the items that it contains. Before you delete a folder, you should inspect
its contents to determine whether it contains items that may be referenced or used by other items in another
part of the folder hierarchy. Referenced items include report definitions that support linked reports, shared data
sources, and resources.
If you delete a report that has one or more linked reports that reference it, the linked reports will become invalid
after you delete the report. You cannot determine in advance which linked reports are affected, because a report
does not retain information about linked reports that are based on it. You can, however, review the properties of
a linked report to find out which report it is based on. In contrast, shared data source items list all reports that
currently use the item so that you can easily determine whether the connection information is in use. For more
information, see Create, Modify, and Delete Shared Data Sources (SSRS). Finally, resources that are used by
reports do not identify those reports.
Before you delete a folder, consider whether you need to retain the report history of any report you are about to
delete or a report-specific construct (such as a data-driven subscription) that is part of a report. If you may need
any of this information, move the item out of the folder before you delete the folder.
The visibility of an item in a folder depends on both role assignments (that is, permission to view an item) and
viewing options in effect for a folder. In the web portal, you can set the Contents page to list view or details view.
In some cases, a report or item may be hidden in list view. Be sure to view a folder in details view before
deleting its contents.
Resources
A resource is a managed item that is stored on a report server, but is not processed by a report server. Typically,
a resource provides external content to report users. Examples include an image in a .jpg file, an ESRI shapefile
that contains spatial data, or an HTML file that describes the business rules used in a report. The JPG, SHP, or
HTML file is stored on the report server, but the report server passes the file directly to the browser rather than
processing it first. For more information, see Images (Report Builder and SSRS) and the section "Adding Data to
a Map" in Maps (Report Builder and SSRS).
Adding and viewing a resource
To add a resource to a report server, you upload or publish a file:
O P ERAT IO N F IL E T Y P E
Upload To upload a resource, you must use the web portal if the
report server runs in native mode or an application page on
a SharePoint site if the server runs in SharePoint integrated
mode. For more information, see Upload a File or Report in
the Report Server or Upload Documents to a SharePoint
Library (Reporting Services in SharePoint Mode).
Publish All files in a project that are not reports, report parts, data
sources, or datasets, are uploaded as resources. To publish a
resource, add an existing item to a project in Report
Designer and then publish the project to a report server.
All resources originate as files on a file system, which are subsequently uploaded to a report server. Except for
the 4 megabyte default file size limitations imposed by ASP.NET, there are no restrictions on the kinds of files
you can upload. However, when published to a report server as a resource, file types that have equivalent MIME
types are more optimal than others. For example, resources that are based on HTML and JPG files will open in a
browser window when the user clicks the resource, rendering the HTML as a Web page and the JPG as an image
that the user can see. In contrast, resources that do not have equivalent MIME types, such as desktop application
files, for example, may not be rendered in the browser window.
Whether a resource can be viewed by report users depends on the viewing capabilities of the browser. Because
resources are not processed by the report server, the browser must provide the viewing capability to render a
specific MIME type. If the browser cannot render the content, users who view the resource see only the general
properties of the resource.
Securing and managing a resource
Resources exist alongside reports, shared data sources, shared schedules, and folders as named items in the
report server folder hierarchy. You can search for, view, secure, and set properties on resources just as you
would any item stored on a report server. To view or manage a resource, you must have the View resources or
Manage resources tasks in your role assignment.
Referencing an image resource from a report
Resources can contain an image that you reference in a report. If report requirements include the use of external
images, consider the following advantages to storing the image as a resource:
Centralized storage in the report server database. If you move the report server database and its
contents to another computer, the external image stays with the report. You do not have to keep track of
image files that are stored on disk on different computers.
Secured through role assignments rather than file system security. The same permissions used to view a
report can be applied to the resource. In contrast, if you store the image on disk, you must ensure that
either the Anonymous user account or the unattended execution account have permission to access the
file.
To use an image resource in a report, add the image file to the project and publish it along with the report. Once
the image is published, you can update the image reference in the report so that it points to the resource on the
report server, and then republish just the report to save your changes. You can now subsequently update the
image independently of the report by republishing the resource. The report uses the most current version of the
image available on the report server.
For more information, see Update a Resource (web portal).
My Reports
The My Reports folder is a personal workspace for each user who logs in to a report server with a valid domain
account. This special-purpose folder provides storage for work-in-progress reports, reports that are not
intended for wide distribution, or reports that have been modified to fit a need. You cannot restrict the number
or size of items that are stored in a My Reports folder, or configure a My Reports folder to be shared among
users.
Technically, My Reports maps the name of a virtual folder that each user sees (My Reports) to a master Users
Folders folder and unique subfolder based on user name. When a user accesses his or her My Reports folder, the
user is actually redirected to his or her subfolder under Users Folders. Each subfolder provides storage for the
reports and items a user adds to his or her My Reports folder. In the web portal, you will not see My Reports at
the root level. You will need to drill into the Users folder.
The Users Folders folder is created when the report server is installed. Subsequent user-based subfolders are
created when a user opens My Reports for the first time (for example, by clicking My Reports in the web portal).
Each folder name is in the following format:
C H A RA C T ER ESC A P E VA L UE EXA M P L E
The My Reports feature is optional. When you install a report server, My Reports is disabled by default. For more
information about enabling this feature, see Enable and Disable My Reports. For more information, see Secure
My Reports.
Tasks
Upload Files to a Folder
Create, Delete, or Modify a Folder (web portal)
Update a Resource (web portal)
Upload Files to a Folder
See also
Reporting Services Tools
Roles and Permissions (Reporting Services)
Reporting Services Reports (SSRS)
Create, Delete, or Modify a Folder - Reporting
Services
3/5/2021 • 3 minutes to read • Edit Online
You can create folders to organize and manage the items you publish to a report server. Creating folders can
help users find reports of interest to them. For content managers, folders provide a framework for applying
permissions. You can create role assignments on specific folders to restrict access to reports that are in
development or that should not be widely distributed.
To create a folder
1. Start Report Manager (SSRS Native Mode).
2. In Report Manager, select the Home folder and click New Folder . Or, to create a folder under an existing
folder, navigate to that folder in the Contents page and click the folder to open it. Then click New
Folder .
The New Folder page opens.
3. Type a folder name. A folder name can include spaces, but cannot include reserved characters that are
used for URL encoding: ; ? : @ & = + , $ / * < > |. You cannot type a series of folder names to create
several folders at once.
4. Optionally type a description.
5. Select Hide in list view if you do not want to display the folder in the default view of the Contents
page. The folder will be visible to users only when they click Show Details on the Contents page.
6. Click OK .
To delete a folder
1. In Report Manager, navigate to the Contents page, and locate the item that you want to modify.
2. Hover over the item, and click the drop-down arrow.
3. In the drop-down menu, click Delete .
4. Click OK .
To create a folder
1. Open the web portal of a report server (SSRS Native Mode).
2. Navigate to folder or sub-folder where you want to locate the new folder. Select the Home folder by
selecting the Browse button on the toolbar at the top left of the page to create it at the top of the folder
hierarchy.
3. Select the New button on the top right of the report server toolbar, and then select Folder from the
drop-down menu.
4. In the Create a new folder in (current folder name) dialog box, enter the name of the new folder to
be created. A folder name can include spaces, but can't include reserved characters that are used for URL
encoding: ; ? : @ & = + , $ / * < > |. You also can't type a series of folder names to create several folders at
once.
5. Select Create to complete the action.
To delete a folder
1. In the web portal, navigate the folder hierarchy and locate the folder that you want to delete.
2. Right-click-the folder, and select Delete from the drop-down menu.
3. Select the Delete button in the Delete dialog box to confirm the deletion.
See also
Create, Delete, or Modify a Folder (web portal)
Report Server Content Management (SSRS Native Mode)
Finding, Viewing, and Managing Reports (Report Builder and SSRS )
Move or Delete an Item (Report Manager)
11/2/2020 • 2 minutes to read • Edit Online
Reports and report-related items that you publish to a report server are stored in folders. You can move items to
a different folder and references to those items are maintained automatically by the report server. Before you
delete an item, consider whether other items depend on it.
Move an Item
You can move report server items to different folder locations in the report server folder hierarchy. When you
move an item, all properties (including security settings) move with the item to the new location. When you
move a folder, all the items in the folder move with it.
In Report Manager, the items that you can move are indicated in the folder hierarchy. The following table shows
the icon for each movable item.
IC O N M O VEA B L E IT EM
Report
Linked report
Folder
Generic resource
Shared dataset
Not all items that you work with can be moved. You cannot move items that are associated with a report, such
as subscriptions or report history. Those items move with their associated reports. Similarly, you cannot move
items, such as shared schedules, that exist outside of the folder hierarchy. You cannot move items if you lack
permission to do so. Permission to move an item is conveyed when the following tasks are selected in your role
assignment for the item in question: "Manage reports," "Manage models", "Manage folders," and "Manage data
sources."
To move an item from within the Contents page
1. Start Report Manager (SSRS Native Mode).
2. In Report Manager, navigate to the Contents page, and locate the item that you want to move.
3. Hover over the item, and click the drop-down arrow.
4. In the drop-down menu, click Move .
5. Click OK .
6. For Location , specify the folder you want to move the item to. You can type the fully qualified folder
name or use the tree control to navigate to the folder.
7. Click OK .
Alternatively, you can navigate to the object you want to move, click Proper ties , and then click Move at the top
of the page.
Delete an item
Before you delete an item, determine if it is used by other items. For example, if you delete a shared data source,
reports and models that use that data source will no longer run. If you delete a report, subscriptions and report
history associated with that report are also deleted. To find dependent items for an item, see Dependent Items
Page (Report Manager).
To delete a report or item
1. Start Report Manager (SSRS Native Mode).
2. In Report Manager, navigate to the Contents page, and locate the item that you want to delete.
3. Hover over the item, and click the drop-down arrow.
4. In the drop-down menu, click Delete .
5. Click OK .
See Also
Contents Page (Report Manager)
Finding, Viewing, and Managing Reports (Report Builder and SSRS )
Upload Files to a Folder
11/2/2020 • 2 minutes to read • Edit Online
You can upload files from the file system and store them as managed items in a report server database. What
happens when you upload a file depends on the file type.
Uploading an .rdl file is equivalent to publishing a report.
Uploading any other file adds it to the report server database as a single binary object. These files are
published to a report server as a resource. Resources can be any file type. If the file extension matches a
known MIME type, an icon for that MIME type is used to identify the resource type. Otherwise, a generic
file icon indicates a resource.
NOTE
You cannot upload a report data source (.rds) file to create a shared data source. An .rds file is used only in Report
Designer. It cannot provide the content for a shared data source item that you define and manage through the
web portal. As an alternative to uploading, you can write a script that creates a shared data source based on a .rds
file.
The maximum file size for uploaded items is 2 GB, and can be set using the MaxFileSizeMb property in
Management Studio.
Visually, files that you upload to a report server database are represented in the folder hierarchy with the
following icons.
When you upload a file, it is always placed in the folder that is currently selected. You can navigate to the folder
that you want to contain the item first, or you can upload a file and then move it to a final location later.
To upload a file, use the web portal. Whether you can upload files to a report server depends on tasks that are
part of your role assignment. If you are using default security, local administrators can add items to a report
server. If My Reports is enabled, any user who has a My Reports folder has permission to upload items to that
folder. If you use custom role assignments, the role assignment must include tasks that support folder
management.
TO DO T H IS IN C L UDE T H ESE TA SK S
See also
The web portal of a report server (SSRS Native Mode)
Granting Permissions on a Native Mode Report Server
Tasks and Permissions
Upload a File or Report in the Report Server
Update a Resource (web portal)
11/2/2020 • 2 minutes to read • Edit Online
You can update a resource by replacing it with a newer version. Resources are items stored on a report server
that contain content from a file that you upload. You can replace an existing resource by importing new or
different file content into the existing resource. Updating a resource provides a way to update content while
preserving existing properties and security settings on the resource.
To update a resource
1. Start The web portal of a report server (SSRS Native Mode).
2. Navigate to or search for the resource you want to update.
3. Right-click the resource and select Manage from the drop-down menu.
4. Select the Proper ties page and then select Replace .
5. From the Open dialog box, navigate to the directory containing the file you want as the new resource.
6. Select the file that you want to use to replace the current resource. You can use an updated version of the
resource file, or specify a file with a different name or file type.
7. Select Open to upload the resource file, and save your changes to the report server.
If the resource you are updating contains an image that is used in a report, you need to refresh the report to see
the updated image.
See also
Report Server Content Management (SSRS Native Mode)
Upload Files to a Folder
Start and stop the report server service
4/5/2021 • 2 minutes to read • Edit Online
APPLIES TO: ✔
️ SQL Server 2016 Reporting Services and later ✔
️ Power BI Report Server
A report server is implemented as a Windows service that contains the Report Server web service, the web
portal, and a background processing application. The service must be running if you want to use any report
server functionality. Stopping the service stops all report server operations.
While the service is stopped, requests for scheduled report and subscription processing that would have
occurred had the service been running are added to the queue. This is because jobs that are run by SQL Server
Agent create the events. If you want to avoid a backlog of operations while the service is off, consider stopping
SQL Server Agent as well.
You can use a variety of tools to start or stop the Report Server service, including the Reporting Services
Configuration tool, SQL Server Configuration Manager, and the Services tool provided in Microsoft Windows.
NOTE
SQL Server Configuration Manager is only an option for SQL Server Reporting Services 2016 and earlier. It does not
include Reporting Services 2017 and later or Power BI Report Server.
If you're doing more than starting or stopping the service, such as changing the service account, you must use
the Reporting Services Configuration tool. Using other tools to change the service account can break your
Reporting Services installation and encryption key. For more information, see Configure the Report Server
Service Account (Report Server Configuration Manager).
You can't pause and resume the service. There aren't start parameters. Although there are no explicit
dependencies, SQL Server Agent must be running if you support any subscriptions or scheduled report
operations on the report server.
See also
Report Server Configuration Manager (Native Mode)
Start, Stop, or Pause the SQL Server Agent Service
Application Domains for Report Server Applications
11/2/2020 • 6 minutes to read • Edit Online
In Reporting Services, the report server is implemented as a single service that contains the Report Server Web
service, Report Manager, and a background processing application. Each application runs in its own application
domain within the single report server process. For the most part, application domains are created, configured,
and managed internally. However, knowing how recycle operations occur for report server application domains
can be helpful if you are investigating performance or memory issues or troubleshooting service disruptions.
NOTE
If you configure Report Builder access on a report server that uses Basic authentication, Report Builder will run in its own
application domain. This application domain is different from other application domains that run in the server process. It is
managed by the Service Controller and is not subject memory management features that re-adjust memory allocation in
response to memory pressure on the to report server.
The following list describes the events that cause application domain recycle operations for Reporting Services
applications:
Scheduled recycle operations that occur at predefined intervals.
Configuration changes on the report server.
ASP.NET configuration changes.
Memory allocation failures.
The following table summarizes application domain recycling behavior in response to these events:
REC Y C L E O P ERAT IO N
EVEN T EVEN T DESC RIP T IO N A P P L IES TO C O N F IGURA B L E DESC RIP T IO N
Scheduled recycle By default, Report server Web Yes. RecycleTime ASP.NET manages the
operations that occur application domains service configuration setting recycle operation for
at predefined are recycled every 12 in the the Web service and
intervals hours. Report Manager RSReportServer.confi Report Manager.
g file determines the
Scheduled recycle Background recycle interval. For the background
operations are a processing processing
common practice for application MaxAppDomainUn application, the
ASP.NET applications loadTime sets the report server creates
that promote overall wait time during a new application
process health. which background domain for new jobs
processing is allowed that are initiated
to complete. from schedules. Jobs
already in progress
are allowed to
complete in the
current application
domain until the wait
time expires.
REC Y C L E O P ERAT IO N
EVEN T EVEN T DESC RIP T IO N A P P L IES TO C O N F IGURA B L E DESC RIP T IO N
Configuration Reporting Services Report server Web No. You cannot stop
changes on the will recycle service recycle operations
report server application domains from occurring.
in response to Report Manager However, recycle
changes in the operations that occur
RSReportServer.confi Background in response to
g file. processing configuration
application changes are handled
the same way as the
scheduled recycle
operations. New
application domains
are created for new
requests while
current requests and
jobs complete in the
current application
domain.
ASP.NET ASP.NET will recycle Report server Web No. ASP.NET manages the
configuration application domains service operation.
changes if there are changes
to the files that it Report Manager Recycle operations
monitors (for that are initiated by
example, ASP.NET do not affect
machine.config and the background
Web.config files, and processing
ASP.NET program application domain.
files).
REC Y C L E O P ERAT IO N
EVEN T EVEN T DESC RIP T IO N A P P L IES TO C O N F IGURA B L E DESC RIP T IO N
Memory pressure SQL Server CLR will Report server Web No. Under high memory
and memory immediately recycle service pressure, the report
allocation failures application domains server will not accept
in the event of a Report Manager new requests in the
memory allocation current application
failure or when the Background domain. During the
server is under high processing period in which the
memory pressure application server denies new
conditions. requests, HTTP 503
errors occur. New
application domains
will not be created
until the old
application domain is
unloaded. This means
that if you make a
configuration file
change while the
server is under high
memory pressure,
requests and jobs
that are in progress
might not start or
complete.
In the event of
memory allocation
failure, all application
domains are
immediately
restarted. Jobs and
requests that were in
progress are
dropped. You must
restart those jobs
and requests
manually.
<MaxAppDomainUnloadTime>30</MaxAppDomainUnloadTime>
EL EM EN T A P P L IES TO DEF IN IT IO N
RecycleTime All three Reporting Services application Specifies how often the application
domains domains are recycled. The default
recycle schedule conforms to the 12-
hour pattern typically followed for
ASP.NET application domain recycling.
At the scheduled time, all new requests
are forwarded to a new instance of the
application domain. Requests that are
currently in progress in the original
instance are allowed to complete. Once
all processes are complete, the original
instance is deleted and the new
instance becomes the sole active
application domain instance.
NOTE
Although the Report Server Web service and Report Manager are ASP.NET applications, neither application responds to
scheduled application domain recycling that might be specified in machine.config for ASP.NET applications hosted in IIS.
See Also
RsReportServer.config Configuration File
Modify a Reporting Services Configuration File (RSreportserver.config)
Configure Available Memory for Report Server Applications
Enable and Disable Client-Side Printing for
Reporting Services
11/2/2020 • 3 minutes to read • Edit Online
The print button on the report viewer toolbar uses the Portable Document Format (PDF) format for client-side
printing of Reporting Services reports viewed in a browser. The new remote printing experience uses the PDF
rendering extension that is included with Reporting Services, to render the report in PDF format. You can
download a .PDF form of the report or if you have an application installed for viewing .PDF files, the print button
displays a print dialog box for page common configuration items such as page size an orientation and a preview
of the .PDF file. Although client-side printing is enabled by default, you can disable the feature to prevent it from
being used.
Previous versions of Reporting Services used an ActiveX control that required downloading to the client
computer from the report server. If you upgrade your report server to SQL Server 2016 or later, the print
control is not removed from the report server or client computers.
The first dialog is the same for all browsers and allows you
change basic layout properties such as orientation. When
you click Print , the experience will be slightly different
depending on the browser you are using.
IN T ERA C T IO N USER IN T ERFA C E
You are viewing the reporting in comparability mode, which uses the old SQL Server 2016 Reporting
Services or later (SSRS) HTML4 rendering engine. The PDF printing experience requires the HTML 5
rendering engine. Click the Tr y Preview button on the toolbar.
Imports System
Imports System.Web.Services.Protocols
Class Sample
Public Shared Sub Main()
Dim rs As New ReportingService()
rs.Credentials = System.Net.CredentialCache.DefaultCredentials
Dim props(0) As [Property]
Dim setProp As New [Property]
setProp.Name = "EnableClientPrinting"
setProp.Value = "False"
props(0) = setProp
Try
rs.SetSystemProperties(props)
Catch ex As System.Web.Services.Protocols.SoapException
Console.Write(ex.Detail.InnerXml)
Catch e as Exception
Console.Write(e.Message)
End Try
End Sub 'Main
End Class 'Sample
The My Reports feature allocates personal storage in the report server database so that users can save reports
that they own in a private folder. As a report server administrator, you can enable or disable this feature or
change how the feature works by modifying the security settings that control what users can do with this
workspace.
The My Reports feature is disabled by default. You can either enable or disable the feature for all users, but you
cannot enable it for a subset of users. Most users and organizations find this feature valuable; study the
advantages and disadvantages presented later in this topic to determine whether it is a good fit for your
organization.
See Also
Secure My Reports
Report Server Content Management (SSRS Native Mode)
Rename a Report Server Computer
11/2/2020 • 2 minutes to read • Edit Online
Renaming a computer causes a corresponding name change for the Web server and SQL Server instance (if it is
on the same computer). In some cases, SQL Server Reporting Services may not be accessible after a computer
name change. Use the steps provided in this article to reconfigure a report server after a computer name
change.
NOTE
If you are using Windows Internet Naming Service (WINS) on your corporate network, the report server and web
portal may continue to be available under the previous name for a period of time. WINS maps an IP address to
each computer it services. After WINS refreshes the IP address for the renamed computer, the old computer name
can no longer be used to access the report server or web portal.
See also
RsReportServer.config Configuration File
Report Server Configuration Manager (Native Mode)
Reporting Services Report Server (Native Mode)
Start and Stop the Report Server Service
rsconfig Utility (SSRS)
Report Server Database (SSRS Native Mode)
11/2/2020 • 3 minutes to read • Edit Online
A report server is a stateless server that uses the SQL Server Database Engine to store metadata and object
definitions. A native mode Reporting Services installation uses two databases to separate persistent data
storage from temporary storage requirements. The databases are created together and bound by name. By
default, the database names are Repor tSer ver and Repor tSer verTempDB , respectively.
A SharePoint mode Reporting Services installation will also create a database for the data alerting feature. The
three databases in SharePoint mode are associated with Reporting Services service applications. For more
information, see Manage a Reporting Services SharePoint Service Application
The databases can run on a local or remote Database Engine instance. Choosing a local instance is useful if you
have sufficient system resources or want to conserve software licenses, but running the databases on a remote
computer can improve performance.
You can port or reuse an existing report server database from previous installation or a different instance with
another report server instance. The schema of the report server database must be compatible with the report
server instance. If the database is in an older format, you will be prompted to upgrade it to the current format.
Newer versions cannot be down graded to an older version. If you have a newer report server database, you
can't use it with an earlier version of a report server instances. For more information about how report server
databases are upgraded to newer formats, see Upgrade a Report Server Database.
IMPORTANT
The table structure for the databases is optimized for server operations and should not be modified or tuned. Microsoft
might change the table structure from one release to the next. If you modify or extend the database, you might limit or
prevent the capability to perform future upgrades or apply service packs. You might also introduce changes that impair
report server operations. For example if you turn on READ_COMMITTED_SNAPSHOT on the ReportServer database, you
will break the interactive sorting feature.
All access to a report server database must be handled through the report server. To access content in a report
server database, you can use report server management tools, (such as the web portal and SQL Server
Management Studio), or programmatic interfaces such as URL access, Report Server Web service, or the
Windows Management Instrumentation (WMI) provider.
The connection to the report server database is usually defined through the Reporting Services Configuration
Manager. However, it can be defined during setup if you choose to install the default configuration. For more
information about the report server connection to the database, see Configure a Report Server Database
Connection (Report Server Configuration Manager).
See also
Host a Report Server Database in a SQL Server Failover Cluster
Store Encrypted Report Server Data (Report Server Configuration Manager)
Reporting Services Report Server
Administer a Report Server Database (SSRS Native Mode)
Create a Report Server Database (Report Server Configuration Manager)
Backup and Restore Operations for Reporting Services
Administer a Report Server Database (SSRS Native
Mode)
11/2/2020 • 4 minutes to read • Edit Online
A Reporting Services deployment uses two SQL Server relational databases for internal storage. By default, the
databases are named ReportServer and ReportServerTempdb. ReportServerTempdb is created with the primary
report server database and is used to store temporary data, session information, and cached reports.
In Reporting Services, database administration tasks include backing up and restoring the report server
databases and managing the encryption keys that are used to encrypt and decrypt sensitive data.
To administer the report server databases, SQL Server provides a variety of tools.
To back up or restore the report server database, move a report server database, or recover a report
server database, you can use SQL Server Management Studio, the Transact-SQL commands, or the
database command prompt utilities. For instructions, see Moving the Report Server Databases to Another
Computer (SSRS Native Mode).
To copy existing database content to another report server database, you can attach a copy of a report
server database and use it with a different report server instance. Or, you can create and run a script that
uses SOAP calls to recreate report server content in a new database. You can use the rs utility to run the
script.
To manage connections between the report server and report server database, and to find out which
database is used for a particular report server instance, you can use Database Setup page in the
Reporting ServicesConfiguration tool. To learn more about the report server connection to the report
server database, see Configure a Report Server Database Connection (Report Server Configuration
Manager).
See Also
Create a Native Mode Report Server Database (Report Server Configuration Manager)
Configure the Report Server Service Account (Report Server Configuration Manager)
Configure a Report Server Database Connection (Report Server Configuration Manager)
Create a Report Server Database (Report Server Configuration Manager)
Report Server Configuration Manager (Native Mode)
Backup and Restore Operations for Reporting Services
Report Server Database (SSRS Native Mode)
Reporting Services Report Server (Native Mode)
Store Encrypted Report Server Data (Report Server Configuration Manager)
Configure and Manage Encryption Keys (Report Server Configuration Manager)
Moving Report Server Databases to Another
Computer (SSRS Native Mode)
11/2/2020 • 8 minutes to read • Edit Online
You can move the report server databases that are used in an installation of SQL Server Database Engine to an
instance that is on a different computer. Both the reportserver and reportservertempdb databases must be
moved or copied together. A Reporting Services installation requires both databases; the reportservertempdb
database must be related by name to the primary reportserver database you are moving.
Applies to: Reporting Services Native mode.
Moving a database does not effect scheduled operations that are currently defined for report server items.
Schedules will be recreated the first time that you restart the Report Server service.
SQL Server Agent jobs that are used to trigger a schedule will be recreated on the new database instance.
You do not have to move the jobs to the new computer, but you might want to delete jobs on the
computer that will no longer be used.
Subscriptions, cached reports, and snapshots are preserved in the moved database. If a snapshot is not
picking up refreshed data after the database is moved, clear the snapshot options and select Apply to
save your changes, re-create the schedule, and select Apply again to save your changes.
Temporary report and user session data that is stored in reportservertempdb are persisted when you
move that database.
SQL Server provides several approaches for moving databases, including backup and restore, attach and detach,
and copy. Not all approaches are appropriate for relocating an existing database to a new server instance. The
approach that you should use to move the report server database will vary depending on your system
availability requirements. The easiest way to move the report server databases is to attach and detach them.
However, this approach requires that you take the report server offline while you detach the database. Backup
and restore is a better choice if you want to minimize service disruptions, but you must run Transact-SQL
commands to perform the operations. Copying the database is not recommended (specifically, by using the
Copy Database Wizard); it does not preserve permission settings in the database.
IMPORTANT
The steps provided in this article are recommended when relocation of the report server database is the only change you
are making to the existing installation. Migrating an entire Reporting Services installation (that is, moving the database
and changing the identity of the Report Server Windows service that uses the database) requires connection
reconfiguration and an encryption key reset.
-- To permit log backups, before the full database backup, alter the database
-- to use the full recovery model.
USE master;
GO
ALTER DATABASE ReportServerTempdb
SET RECOVERY FULL
The following examples include the FILE argument so that you can specify the file position of the log file to
restore. To find the file position, execute the following statement:
RESTORE HEADERONLY FROM DISK='C:\ReportServerData.bak';
When restoring the database and log files, you should run each RESTORE operation separately.
-- Restore the report server database and move to new instance folder
RESTORE DATABASE ReportServer
FROM DISK='C:\ReportServerData.bak'
WITH NORECOVERY,
MOVE 'ReportServer' TO
'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Data\ReportServer.mdf',
MOVE 'ReportServer_log' TO
'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Data\ReportServer_Log.ldf';
GO
NOTE
A Reporting Services installation requires that the SQL Server Database Engine instance include the RSExecRole role. Role
creation, login registration, and role assignments occur when you set the report server database connection through the
Reporting Services Configuration tool. If you use alternate approaches (specifically, if you use the rsconfig.exe command
prompt utility) to configure the connection, the report server will not be in a working state. You might have to write WMI
code to make the report server available. For more information, see Access the Reporting Services WMI Provider.
Next steps
Create the RSExecRole
Start and Stop the Report Server Service
Configure a Report Server Database Connection
Configure the Unattended Execution Account
Report Server Configuration Manager
rsconfig Utility
Configure and Manage Encryption Keys
Report Server Database
More questions? Try asking the Reporting Services forum
Reporting Services Configuration Files
11/2/2020 • 4 minutes to read • Edit Online
Reporting Services stores component information in the registry and in configuration files that are copied to the
file system during setup. Configuration files contain a combination of internal-use-only and user-defined values.
User-defined values are specified through Setup, the configuration tools, the command line utilities, and by
manually editing the configuration files.
Modifying the configuration files is only necessary if you are adding or configuring advanced settings.
Configuration settings are specified as either XML elements or attributes. If you understand XML and
configuration files, you can use a text or code editor to modify user-definable settings. For more information
about how to modify a configuration file or to learn more about how the report server reads new and updated
configuration settings, see Modify a Reporting Services Configuration File (RSreportserver.config).
NOTE
In previous releases, Report Manager had its own configuration file named RSWebApplication.config. That file is now
obsolete. If you upgraded from a previous installation, the file will not be deleted but the report server will not read any
settings from it. If the file exists on your computer, you should delete it. In SQL Server 2008 and later versions, all Report
Manager and web portal configuration settings are stored in and read from the RSReportServer.config file. To review a list
of which settings were deleted or moved, see Breaking Changes in SQL Server Reporting Services in SQL Server 2016.
In this article:
Summary of Configuration Files (Native Mode)
Summary of Configuration Files (SharePoint Mode)
Install Paths
C:\Program Files\Microsoft SQL Server\MSRSxx.MSSQLSERVER (where xx is the MS SQL version number)
or
C:\Program Files\Microsoft SQL Server Reporting Services\SSRS
depending on the SSRS version
RSSrvPolicy.config Stores the code access security policies <Installation directory> \Reporting
for the server extensions. For more Services \ReportServer
information about this file, see Using
Reporting Services Security Policy Files.
RSMgrPolicy.config Stores the code access security policies <Installation directory> \Reporting
for the web portal. For more Services \ReportManager
information about this file, see Using
Reporting Services Security Policy Files.
Web.config for the Report Server Web Includes only those settings that are <Installation directory> \Reporting
service required for ASP.NET. Services \ReportServer
Web.config for Report Manager Includes only those settings that are <Installation directory> \Reporting
required for ASP.NET if applicable for Services \ReportManager
the SSRS version.
RSPreviewPolicy.config Stores the code access security policies C:\Program Files\Microsoft Visual
for the server extensions used during Studio
report preview. For more information 10.0\Common7\IDE\PrivateAssemblies
about this file, see Using Reporting r
Services Security Policy Files.
RSSrvPolicy.config Stores the code access security policies <Installation directory> \Reporting
for the server extensions. For more Services \ReportServer
information about this file, see Using
Reporting Services Security Policy Files.
Web.config for the Report Server Web Includes only those settings that are <Installation directory> \Reporting
service required for ASP.NET if applicable for Services \ReportServer
the SSRS version.
HKEY_LOCAL_MACHINE\SOFTWARE\
Microsoft\Microsoft SQL
Server\Reporting Services\Service
Applications
See also
Reporting Services Report Server (Native Mode)
Reporting Services Extensions
rsconfig Utility (SSRS)
Start and Stop the Report Server Service
RsReportServer.config Configuration File
3/5/2021 • 38 minutes to read • Edit Online
The Reporting ServicesRsRepor tSer ver.config file stores settings that are used by the Report Server Web
service and background processing. All Reporting Services applications run within a single process that reads
configuration settings stored in the RSReportServer.config file. Both Native mode and SharePoint mode report
servers use the RSReportServer.config, however the two modes do not use all of the same settings in the
configuration file. The SharePoint mode version of the file is smaller as many of the settings for SharePoint
mode are stored in SharePoint configuration databases rather than the file. This topic describes the default
configuration file that is installed for Native mode and SharePoint mode and some of the important settings and
behaviors that are controlled by the configuration file.
In SharePoint mode, the configuration file contains those settings that apply to all service application instances
running on that computer. The SharePoint configuration database contains configuration settings that apply to
specific service applications. The settings that are stored in the Configuration database and managed through
the SharePoint management pages can be different for each Reporting Services service application.
The settings are presented in following content in the order in which they appear in the configuration file that is
installed by default. For instructions on how to edit this file, see Modify a Reporting Services Configuration File
(RSreportserver.config).
File Location
The RSReportServer.config is located in the following folders, depending on the report server mode:
Native mode report server
APPLIES TO: ✔
️ SQL Server Reporting Services (2016)
APPLIES TO: ✔
️ SQL Server Reporting Services (2017 and later)
APPLIES TO: ✔
️ Power BI Report Server
NOTE
Reporting Services integration with SharePoint is no longer available after SQL Server 2016.
For more information on editing the file, see Modify a Reporting Services Configuration File
(RSreportserver.config).
General Configuration Settings (rsreportserver.config)
The following table provides information about general configuration settings that appear in the first part of the
file. Settings are presented in the order in which they appear in the configuration file. The last column of the
table indicates if the setting applies to a Native mode report server (N) or a SharePoint mode report server (S)
or both.
NOTE
In this topic, "maximum integer" refers to INT_MAX value of 2147483647. For more information, see Integer Limits
(https://msdn.microsoft.com/library/296az74e(v=vs.110).aspx).
<InstanceId>MSRS12.@Sharepoint</InstanceId>
0x0428 =a minidump
0x0002 = no dump
WARNING
For SharePoint mode, URL reservations are configured in SharePoint Central Administration. For more information, see
Configure alternate access mapping (https://technet.microsoft.com/library/cc263208(office.12).aspx).
Do not modify URL reservations in the configuration file directly. Always use the Reporting Services
Configuration Manager or the Report Server WMI provider to create or modify URL reservations for a Native
mode report server. If you modify the values in the configuration file, you might corrupt the reservation, which
will cause server errors at run time or leave orphan reservations in HTTP.SYS that are not removed if you
uninstall the software. For more information, see Configure Report Server URLs (Report Server Configuration
Manager) and URLs in Configuration Files (Report Server Configuration Manager).
URLReser vations is an optional element. If it is not present in the RSReportServer.config file, the server might
not be configured. If it is specified, all child elements except for AccountName are required.
The last column of the table indicates if the setting applies to a Native mode report server (N) or a SharePoint
mode report server (S) or both.
<Authentication>
<AuthenticationTypes>
<RSWindowsNegotiate/>
<RSWindowsNTLM/>
</AuthenticationTypes>
<EnableAuthPersistence>true</EnableAuthPersistence>
</Authentication>
All other values must be added manually. For more information and examples, see Authentication with the
Report Server.
The last column of the following table indicates if the setting applies to a Native mode report server (N) or a
SharePoint mode report server (S) or both.
SET T IN G DESC RIP T IO N M O DE
RSWindowsNegotiate ,
RSWindowsKerberos ,
RSWindowsNTLM , and
RSWindowsBasic are cumulative and
can be used together, as illustrated in
the default value example earlier in this
section.
<FileShareStorageLocation>
<Path>
</Path>
</FileShareStorageLocation>
UI (RSReportServer.config file)
UI specifies configuration settings that apply to the web portal application.
The last column of the following table indicates if the setting applies to a Native mode report server (N) or a
SharePoint mode report server (S) or both.
Repor tSer verUrl Specifies the URL of the report server N,S
that the web portal connects to. Only
modify this value if you are configuring
the web portal to connect to a report
server in another instance or on a
remote computer.
SecondsBeforeRetr y Specifies the interval of time (in seconds) between each retry
attempt. The default value is 900.
HTMLOWC
RGDI
Null
SMTPSer verPor t Specifies an integer value indicating the port on which the
SMTP service uses to send outgoing mail. Port 25 is typically
used to send e-mail.
SMTPSer verPickupDirector y Specifies a string value indicating the pickup directory for the
local SMTP service. This value must be a fully qualified local
folder path (for example, d:\rs-emails).
0=No authentication.
1= (not supported).
PrivilegedUserRenderFormats Specifies rendering formats that a user can select from for a
report subscription when subscribing is enabled through the
"Manage all subscriptions" task. If this value is not set, all
render formats that are not intentionally excluded are
available to use.
ExcludedRenderFormats, RenderingExtension Purposely excludes formats that do not work well with a
given delivery extension. You cannot exclude multiple
instances of the same rendering extension. Excluding
multiple instances will result in an error when the report
server reads the configuration file. By default, the following
extensions are excluded for e-mail delivery:
HTMLOWC
Null
RGDI
<DeviceInfo><DataVisualizationFitSizing>Approximate</DataVisualizationFitSizing></DeviceInfo>
<Configuration>
<Dsn>AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAAR58DMGebHUeMvyR6HR04kQQAAAAiAAAAUgBlAHAAbwBy
AHQAaQBuAGcAIABTAGUAcgB2AGUAcgAAAANmAADAAAAAEAAAADczfLRgZ4GF44iBHkLrKY4AAAAA
BIAAAKAAAAAQAAAAJ9wQOmDNauH+LS30rboJ2OAAAAAp0kiFFBrc3r3ypKaldZJtjCORX9LTZRzt
0/JCSVIZc4GXx0peGKqd+f85UyrY/KOyUSHogOC/XoBp9Ppxv6ITbdunsS/LXEcMUBVqEdQD4ylh
x6K1NTC/u8hl9v0MgK+xMQKaiV7BuNYbgGgkaViABcNH0xVzcc5rMTHUkrABbGDFGKyAFniGQ1qu
/rqHibNNyvYbP/2uiqvgC0tQl6u8VkVbXpWrkvO+bFCqxlaJlCoDc2f3rIO321SZEvoFbsYNgPLd
+mIAkSCnH3Z3gm/bI8bqVkFaHblKyQuSfFsi6RQAAACb87b26dV0GjHmMJnE0Tk8CzNmhg==</Dsn>
<ConnectionType>Default</ConnectionType>
<LogonUser></LogonUser>
<LogonDomain></LogonDomain>
<LogonCred></LogonCred>
<InstanceId>MSRS13.MSSQLSERVER</InstanceId>
<InstallationID>{cd920604-a5c7-4554-b2a0-aadc04312fe5}</InstallationID>
<Add Key="SecureConnectionLevel" Value="0"/>
<Add Key="SecureConnectionLevel" Value="0"/>
<Add Key="DisableSecureFormsAuthenticationCookie" Value="false"/>
<Add Key="CleanupCycleMinutes" Value="10"/>
<Add Key="MaxActiveReqForOneUser" Value="20"/>
<Add Key="DatabaseQueryTimeout" Value="120"/>
<Add Key="RunningRequestsScavengerCycle" Value="60"/>
<Add Key="RunningRequestsDbCycle" Value="60"/>
<Add Key="RunningRequestsAge" Value="30"/>
<Add Key="MaxScheduleWait" Value="5"/>
<Add Key="DisplayErrorLink" Value="true"/>
<Add Key="WebServiceUseFileShareStorage" Value="false"/>
<!-- <Add Key="ProcessTimeout" Value="150" /> -->
<!-- <Add Key="ProcessTimeoutGcExtension" Value="30" /> -->
<!-- <Add Key="WatsonFlags" Value="0x0430" /> full dump-->
<!-- <Add Key="WatsonFlags" Value="0x0428" /> minidump -->
<!-- <Add Key="WatsonFlags" Value="0x0002" /> no dump-->
<Add Key="WatsonFlags" Value="0x0428"/>
<Add Key="WatsonDumpOnExceptions"
Value="Microsoft.ReportingServices.Diagnostics.Utilities.InternalCatalogException,Microsoft.ReportingService
s.Modeling.InternalModelingException,Microsoft.ReportingServices.ReportProcessing.UnhandledReportRenderingEx
ception"/>
<Add Key="WatsonDumpExcludeIfContainsExceptions"
Value="System.Threading.ThreadAbortException,System.Web.UI.ViewStateException,System.OutOfMemoryException,Sy
stem.Web.HttpException,System.IO.IOException,System.IO.FileLoadException,Microsoft.SharePoint.SPException,Mi
crosoft.ReportingServices.WmiProvider.WMIProviderException,System.AppDomainUnloadedException"/>
<URLReservations>
<Application>
<Name>ReportServerWebService</Name>
<VirtualDirectory>ReportServer</VirtualDirectory>
<URLs>
<URL>
<UrlString>https://+:80</UrlString>
<AccountSid>S-1-5-80-2885764129-887777008-271615777-1616004480-2722851051</AccountSid>
<AccountName>NT SERVICE\ReportServer</AccountName>
</URL>
</URLs>
</Application>
<Application>
<Name>ReportServerWebApp</Name>
<VirtualDirectory>Reports</VirtualDirectory>
<URLs>
<URL>
<UrlString>https://+:80</UrlString>
<AccountSid>S-1-5-80-2885764129-887777008-271615777-1616004480-2722851051</AccountSid>
<AccountName>NT SERVICE\ReportServer</AccountName>
</URL>
</URLs>
</Application>
</URLReservations>
<Authentication>
<AuthenticationTypes>
<RSWindowsNTLM/>
</AuthenticationTypes>
<RSWindowsExtendedProtectionLevel>Off</RSWindowsExtendedProtectionLevel>
<RSWindowsExtendedProtectionScenario>Proxy</RSWindowsExtendedProtectionScenario>
<EnableAuthPersistence>true</EnableAuthPersistence>
</Authentication>
<Service>
<IsSchedulingService>True</IsSchedulingService>
<IsNotificationService>True</IsNotificationService>
<IsEventService>True</IsEventService>
<PollingInterval>10</PollingInterval>
<WindowsServiceUseFileShareStorage>False</WindowsServiceUseFileShareStorage>
<MemorySafetyMargin>80</MemorySafetyMargin>
<MemoryThreshold>90</MemoryThreshold>
<RecycleTime>720</RecycleTime>
<MaxAppDomainUnloadTime>30</MaxAppDomainUnloadTime>
<MaxQueueThreads>0</MaxQueueThreads>
<UrlRoot>
</UrlRoot>
<UnattendedExecutionAccount>
<UserName></UserName>
<Password></Password>
<Domain></Domain>
</UnattendedExecutionAccount>
<PolicyLevel>rssrvpolicy.config</PolicyLevel>
<IsWebServiceEnabled>True</IsWebServiceEnabled>
<IsReportManagerEnabled>True</IsReportManagerEnabled>
<FileShareStorageLocation>
<Path>
</Path>
</FileShareStorageLocation>
<DefaultFileShareAccount>
<Domain></Domain>
<UserName></UserName>
<Password></Password>
</DefaultFileShareAccount>
</Service>
<UI>
<ReportServerUrl>
</ReportServerUrl>
<PageCountMode>Estimate</PageCountMode>
</UI>
<Extensions>
<Delivery>
<Extension Name="Report Server FileShare"
Type="Microsoft.ReportingServices.FileShareDeliveryProvider.FileShareProvider,ReportingServicesFileShareDeli
veryProvider">
<MaxRetries>3</MaxRetries>
<SecondsBeforeRetry>900</SecondsBeforeRetry>
<Configuration>
<FileShareConfiguration>
<ExcludedRenderFormats>
<RenderingExtension>HTMLOWC</RenderingExtension>
<RenderingExtension>NULL</RenderingExtension>
<RenderingExtension>RGDI</RenderingExtension>
</ExcludedRenderFormats>
</FileShareConfiguration>
</Configuration>
</Extension>
<Extension Name="Report Server Email"
Type="Microsoft.ReportingServices.EmailDeliveryProvider.EmailProvider,ReportingServicesEmailDeliveryProvider
">
<MaxRetries>3</MaxRetries>
<SecondsBeforeRetry>900</SecondsBeforeRetry>
<Configuration>
<RSEmailDPConfiguration>
<SMTPServer></SMTPServer>
<SMTPServerPort>
</SMTPServerPort>
<SMTPAccountName>
</SMTPAccountName>
<SMTPConnectionTimeout>
</SMTPConnectionTimeout>
<SMTPServerPickupDirectory>
</SMTPServerPickupDirectory>
<SMTPUseSSL>False</SMTPUseSSL>
<SendUsing>2</SendUsing>
<SMTPAuthenticate>0</SMTPAuthenticate>
<SendUserName></SendUserName>
<SendPassword></SendPassword>
<From></From>
<EmbeddedRenderFormats>
<RenderingExtension>MHTML</RenderingExtension>
</EmbeddedRenderFormats>
<PrivilegedUserRenderFormats>
</PrivilegedUserRenderFormats>
<ExcludedRenderFormats>
<ExcludedRenderFormats>
<RenderingExtension>HTMLOWC</RenderingExtension>
<RenderingExtension>NULL</RenderingExtension>
<RenderingExtension>RGDI</RenderingExtension>
</ExcludedRenderFormats>
<SendEmailToUserAlias>True</SendEmailToUserAlias>
<DefaultHostName>
</DefaultHostName>
<PermittedHosts>
</PermittedHosts>
</RSEmailDPConfiguration>
</Configuration>
</Extension>
<Extension Name="Report Server DocumentLibrary"
Type="Microsoft.ReportingServices.SharePoint.SharePointDeliveryExtension.DocumentLibraryProvider,ReportingSe
rvicesSharePointDeliveryExtension">
<MaxRetries>3</MaxRetries>
<SecondsBeforeRetry>900</SecondsBeforeRetry>
<Configuration>
<DocumentLibraryConfiguration>
<ExcludedRenderFormats>
<RenderingExtension>HTMLOWC</RenderingExtension>
<RenderingExtension>NULL</RenderingExtension>
<RenderingExtension>RGDI</RenderingExtension>
</ExcludedRenderFormats>
</DocumentLibraryConfiguration>
</Configuration>
</Extension>
<Extension Name="NULL"
Type="Microsoft.ReportingServices.NullDeliveryProvider.NullProvider,ReportingServicesNullDeliveryProvider"/>
<Extension Name="Report Server PowerBI"
Type="Microsoft.ReportingServices.PowerBIDeliveryProvider.PowerBIDeliveryProvider,ReportingServicesPowerBIDe
liveryProvider">
<MaxRetries>3</MaxRetries>
<SecondsBeforeRetry>900</SecondsBeforeRetry>
<Configuration>
<PowerBIDeliveryConfiguration>
</PowerBIDeliveryConfiguration>
</Configuration>
</Extension>
</Delivery>
<DeliveryUI>
<Extension Name="Report Server Email"
Type="Microsoft.ReportingServices.EmailDeliveryProvider.EmailDeliveryProviderControl,ReportingServicesEmailD
eliveryProvider">
<DefaultDeliveryExtension>True</DefaultDeliveryExtension>
<Configuration>
<RSEmailDPConfiguration>
<DefaultRenderingExtension>MHTML</DefaultRenderingExtension>
</RSEmailDPConfiguration>
</Configuration>
</Extension>
<Extension Name="Report Server FileShare"
Type="Microsoft.ReportingServices.FileShareDeliveryProvider.FileShareUIControl,ReportingServicesFileShareDel
iveryProvider"/>
<Extension Name="Report Server PowerBI"
Type="Microsoft.ReportingServices.PowerBIDeliveryProvider.PowerBIDeliveryUIControl,ReportingServicesPowerBID
eliveryProvider"/>
</DeliveryUI>
<Render>
<Extension Name="WORDOPENXML"
Type="Microsoft.ReportingServices.Rendering.WordRenderer.WordOpenXmlRenderer.WordOpenXmlDocumentRenderer,Mic
rosoft.ReportingServices.WordRendering"/>
<Extension Name="WORD"
Type="Microsoft.ReportingServices.Rendering.WordRenderer.WordDocumentRenderer,Microsoft.ReportingServices.Wo
rdRendering" Visible="false"/>
<Extension Name="EXCELOPENXML"
Type="Microsoft.ReportingServices.Rendering.ExcelOpenXmlRenderer.ExcelOpenXmlRenderer,Microsoft.ReportingSer
vices.ExcelRendering"/>
<Extension Name="EXCEL"
<Extension Name="EXCEL"
Type="Microsoft.ReportingServices.Rendering.ExcelRenderer.ExcelRenderer,Microsoft.ReportingServices.ExcelRen
dering" Visible="false"/>
<Extension Name="PPTX"
Type="Microsoft.ReportingServices.Rendering.PowerPointRendering.PptxRenderingExtension,Microsoft.ReportingSe
rvices.PowerPointRendering"/>
<Extension Name="PDF"
Type="Microsoft.ReportingServices.Rendering.ImageRenderer.PDFRenderer,Microsoft.ReportingServices.ImageRende
ring"/>
<Extension Name="IMAGE"
Type="Microsoft.ReportingServices.Rendering.ImageRenderer.ImageRenderer,Microsoft.ReportingServices.ImageRen
dering"/>
<Extension Name="MHTML"
Type="Microsoft.ReportingServices.Rendering.HtmlRenderer.MHtmlRenderingExtension,Microsoft.ReportingServices
.HtmlRendering">
<Configuration>
<DeviceInfo>
<DataVisualizationFitSizing>Approximate</DataVisualizationFitSizing>
</DeviceInfo>
</Configuration>
</Extension>
<Extension Name="CSV"
Type="Microsoft.ReportingServices.Rendering.DataRenderer.CsvReport,Microsoft.ReportingServices.DataRendering
"/>
<Extension Name="XML"
Type="Microsoft.ReportingServices.Rendering.DataRenderer.XmlDataReport,Microsoft.ReportingServices.DataRende
ring"/>
<Extension Name="ATOM"
Type="Microsoft.ReportingServices.Rendering.DataRenderer.AtomDataReport,Microsoft.ReportingServices.DataRend
ering"/>
<Extension Name="NULL"
Type="Microsoft.ReportingServices.Rendering.NullRenderer.NullReport,Microsoft.ReportingServices.NullRenderin
g" Visible="false"/>
<Extension Name="RGDI"
Type="Microsoft.ReportingServices.Rendering.ImageRenderer.RGDIRenderer,Microsoft.ReportingServices.ImageRend
ering" Visible="false"/>
<Extension Name="HTML4.0"
Type="Microsoft.ReportingServices.Rendering.HtmlRenderer.Html40RenderingExtension,Microsoft.ReportingService
s.HtmlRendering" Visible="false">
<Configuration>
<DeviceInfo>
<DataVisualizationFitSizing>Approximate</DataVisualizationFitSizing>
</DeviceInfo>
</Configuration>
</Extension>
<Extension Name="HTML5"
Type="Microsoft.ReportingServices.Rendering.HtmlRenderer.Html5RenderingExtension,Microsoft.ReportingServices
.HtmlRendering" Visible="false">
<Configuration>
<DeviceInfo>
<DataVisualizationFitSizing>Approximate</DataVisualizationFitSizing>
</DeviceInfo>
</Configuration>
</Extension>
<Extension Name="RPL"
Type="Microsoft.ReportingServices.Rendering.RPLRendering.RPLRenderer,Microsoft.ReportingServices.RPLRenderin
g" Visible="false" LogAllExecutionRequests="false"/>
</Render>
<!--
For the SQLPDW extension to work, install the SQL Server PDW Client Tools on the report server.
NOTE: The SQLPDW extension is deprecated. It supports old versions of SQL Server Parallel Data
Warehouse (PDW).
To connect to Analytics Platform System, use the SQL (SQL Server) extension.
For the ORACLE extension to work, install the Oracle Data Provider for NET (ODP.NET) on the report
server.
For TERADATA extension to work, install the .NET Provider for Teradata on the report server.
-->
<Data>
<Extension Name="SQL"
Type="Microsoft.ReportingServices.DataExtensions.SqlConnectionWrapper,Microsoft.ReportingServices.DataExtens
Type="Microsoft.ReportingServices.DataExtensions.SqlConnectionWrapper,Microsoft.ReportingServices.DataExtens
ions"/>
<Extension Name="SQLAZURE"
Type="Microsoft.ReportingServices.DataExtensions.SqlAzureConnectionWrapper,Microsoft.ReportingServices.DataE
xtensions"/>
<Extension Name="SQLPDW"
Type="Microsoft.ReportingServices.DataExtensions.SqlDwConnectionWrapper,Microsoft.ReportingServices.DataExte
nsions"/>
<Extension Name="OLEDB-MD"
Type="Microsoft.ReportingServices.DataExtensions.AdoMdConnection,Microsoft.ReportingServices.DataExtensions"
/>
<Extension Name="SHAREPOINTLIST"
Type="Microsoft.ReportingServices.DataExtensions.SharePointList.SPListConnection,Microsoft.ReportingServices
.DataExtensions"/>
<Extension Name="ORACLE"
Type="Microsoft.ReportingServices.DataExtensions.OracleClientConnectionWrapper,Microsoft.ReportingServices.D
ataExtensions"/>
<Extension Name="ESSBASE"
Type="Microsoft.ReportingServices.DataExtensions.Essbase.EssbaseConnection,Microsoft.ReportingServices.DataE
xtensions.Essbase"/>
<Extension Name="SAPBW"
Type="Microsoft.ReportingServices.DataExtensions.SapBw.SapBwConnection,Microsoft.ReportingServices.DataExten
sions.SapBw"/>
<Extension Name="TERADATA"
Type="Microsoft.ReportingServices.DataExtensions.TeradataConnectionWrapper,Microsoft.ReportingServices.DataE
xtensions"/>
<Extension Name="OLEDB"
Type="Microsoft.ReportingServices.DataExtensions.OleDbConnectionWrapper,Microsoft.ReportingServices.DataExte
nsions"/>
<Extension Name="ODBC"
Type="Microsoft.ReportingServices.DataExtensions.OdbcConnectionWrapper,Microsoft.ReportingServices.DataExten
sions"/>
<Extension Name="XML"
Type="Microsoft.ReportingServices.DataExtensions.XmlDPConnection,Microsoft.ReportingServices.DataExtensions"
/>
</Data>
<SemanticQuery>
<Extension Name="SQL"
Type="Microsoft.ReportingServices.SemanticQueryEngine.Sql.MSSQL.MSSqlSQCommand,Microsoft.ReportingServices.S
emanticQueryEngine">
<Configuration>
<EnableMathOpCasting>False</EnableMathOpCasting>
</Configuration>
</Extension>
<Extension Name="SQLAZURE"
Type="Microsoft.ReportingServices.SemanticQueryEngine.Sql.MSSQL.MSSqlSQCommand,Microsoft.ReportingServices.S
emanticQueryEngine">
<Configuration>
<EnableMathOpCasting>False</EnableMathOpCasting>
</Configuration>
</Extension>
<Extension Name="SQLPDW"
Type="Microsoft.ReportingServices.SemanticQueryEngine.Sql.MSSQLADW.MSSqlAdwSQCommand,Microsoft.ReportingServ
ices.SemanticQueryEngine">
<Configuration>
<EnableMathOpCasting>False</EnableMathOpCasting>
</Configuration>
</Extension>
<Extension Name="ORACLE"
Type="Microsoft.ReportingServices.SemanticQueryEngine.Sql.Oracle.OraSqlSQCommand,Microsoft.ReportingServices
.SemanticQueryEngine">
<Configuration>
<EnableMathOpCasting>True</EnableMathOpCasting>
<DisableNO_MERGEInLeftOuters>False</DisableNO_MERGEInLeftOuters>
<EnableUnistr>False</EnableUnistr>
<DisableTSTruncation>False</DisableTSTruncation>
</Configuration>
</Extension>
<Extension Name="TERADATA"
Type="Microsoft.ReportingServices.SemanticQueryEngine.Sql.Teradata.TdSqlSQCommand,Microsoft.ReportingService
Type="Microsoft.ReportingServices.SemanticQueryEngine.Sql.Teradata.TdSqlSQCommand,Microsoft.ReportingService
s.SemanticQueryEngine">
<Configuration>
<EnableMathOpCasting>True</EnableMathOpCasting>
<ReplaceFunctionName>oREPLACE</ReplaceFunctionName>
</Configuration>
</Extension>
<Extension Name="OLEDB-MD"
Type="Microsoft.AnalysisServices.Modeling.QueryExecution.ASSemanticQueryCommand,Microsoft.AnalysisServices.M
odeling"/>
</SemanticQuery>
<ModelGeneration>
<Extension Name="SQL"
Type="Microsoft.ReportingServices.SemanticQueryEngine.Sql.MSSQL.MsSqlModelGenerator,Microsoft.ReportingServi
ces.SemanticQueryEngine"/>
<Extension Name="SQLAZURE"
Type="Microsoft.ReportingServices.SemanticQueryEngine.Sql.MSSQL.MsSqlModelGenerator,Microsoft.ReportingServi
ces.SemanticQueryEngine"/>
<Extension Name="ORACLE"
Type="Microsoft.ReportingServices.SemanticQueryEngine.Sql.Oracle.OraSqlModelGenerator,Microsoft.ReportingSer
vices.SemanticQueryEngine"/>
<Extension Name="TERADATA"
Type="Microsoft.ReportingServices.SemanticQueryEngine.Sql.Teradata.TdSqlModelGenerator,Microsoft.ReportingSe
rvices.SemanticQueryEngine"/>
<Extension Name="OLEDB-MD"
Type="Microsoft.AnalysisServices.Modeling.Generation.ModelGeneratorExtention,Microsoft.AnalysisServices.Mode
ling"/>
</ModelGeneration>
<Security>
<Extension Name="Windows" Type="Microsoft.ReportingServices.Authorization.WindowsAuthorization,
Microsoft.ReportingServices.Authorization"/>
</Security>
<Authentication>
<Extension Name="Windows" Type="Microsoft.ReportingServices.Authentication.WindowsAuthentication,
Microsoft.ReportingServices.Authorization"/>
</Authentication>
<EventProcessing>
<Extension Name="SnapShot Extension"
Type="Microsoft.ReportingServices.Library.HistorySnapShotCreatedHandler,ReportingServicesLibrary">
<Event>
<Type>ReportHistorySnapshotCreated</Type>
</Event>
</Extension>
<Extension Name="Timed Subscription Extension"
Type="Microsoft.ReportingServices.Library.TimedSubscriptionHandler,ReportingServicesLibrary">
<Event>
<Type>TimedSubscription</Type>
</Event>
</Extension>
<Extension Name="Cache Refresh Plan Extension"
Type="Microsoft.ReportingServices.Library.CacheRefreshPlanHandler,ReportingServicesLibrary">
<Event>
<Type>RefreshCache</Type>
</Event>
</Extension>
<Extension Name="Shared Dataset Cache Update Extension"
Type="Microsoft.ReportingServices.Library.SharedDatasetCacheUpdatePlanHandler,ReportingServicesLibrary">
<Event>
<Type>SharedDatasetCacheUpdate</Type>
</Event>
</Extension>
<Extension Name="Cache Update Extension"
Type="Microsoft.ReportingServices.Library.ReportExecutionSnapshotUpdateEventHandler,ReportingServicesLibrary
">
<Event>
<Type>SnapshotUpdated</Type>
</Event>
</Extension>
</EventProcessing>
</Extensions>
</Extensions>
<MapTileServerConfiguration>
<MaxConnections>2</MaxConnections>
<Timeout>10</Timeout>
<AppID>(Default)</AppID>
<CacheLevel>Default</CacheLevel>
</MapTileServerConfiguration>
</Configuration>
<Configuration>
<Dsn />
<ConnectionType>Default</ConnectionType>
<LogonUser>
</LogonUser>
<LogonDomain>
</LogonDomain>
<LogonCred>
</LogonCred>
<InstanceId>MSRS12.@Sharepoint</InstanceId>
<Add Key="SecureConnectionLevel" Value="0" />
<Add Key="CleanupCycleMinutes" Value="10" />
<Add Key="MaxActiveReqForOneUser" Value="20" />
<Add Key="AlertingCleanupCycleMinutes" Value="20" />
<Add Key="AlertingDataCleanupMinutes" Value="360" />
<Add Key="AlertingExecutionLogCleanupMinutes" Value="10080" />
<Add Key="AlertingMaxDataRetentionDays" Value="180" />
<Add Key="RunningRequestsScavengerCycle" Value="60" />
<Add Key="RunningRequestsDbCycle" Value="60" />
<Add Key="RunningRequestsAge" Value="30" />
<Add Key="MaxScheduleWait" Value="5" />
<Add Key="DisplayErrorLink" Value="true" />
<Add Key="WebServiceUseFileShareStorage" Value="false" />
<!-- <Add Key="ProcessTimeout" Value="150" /> -->
<!-- <Add Key="ProcessTimeoutGcExtension" Value="30" /> -->
<!-- <Add Key="WatsonFlags" Value="0x0430" /> full dump-->
<!-- <Add Key="WatsonFlags" Value="0x0428" /> minidump -->
<!-- <Add Key="WatsonFlags" Value="0x0002" /> no dump-->
<Add Key="WatsonFlags" Value="0x0428" />
<Add Key="WatsonDumpOnExceptions"
Value="Microsoft.ReportingServices.Diagnostics.Utilities.InternalCatalogException,Microsoft.ReportingService
s.Modeling.InternalModelingException,Microsoft.ReportingServices.ReportProcessing.UnhandledReportRenderingEx
ception" />
<Add Key="WatsonDumpExcludeIfContainsExceptions"
Value="System.Threading.ThreadAbortException,System.Web.UI.ViewStateException,System.OutOfMemoryException,Sy
stem.Web.HttpException,System.IO.IOException,System.IO.FileLoadException,Microsoft.SharePoint.SPException,Mi
crosoft.ReportingServices.WmiProvider.WMIProviderException" />
<RStrace>
<add name="FileName" value="ReportServerService" />
<add name="FileSizeLimitMb" value="32" />
<add name="KeepFilesForDays" value="14" />
<add name="Prefix" value="tid, time" />
<add name="TraceListeners" value="file" />
<add name="TraceFileMode" value="unique" />
<add name="Components" value="all:3" />
</RStrace>
<URLReservations>
<Application>
<Name>ReportServerWebService</Name>
<VirtualDirectory>ReportServer</VirtualDirectory>
<VirtualDirectory>ReportServer</VirtualDirectory>
<URLs>
<URL>
<UrlString>https://+:80</UrlString>
<AccountSid>
</AccountSid>
<AccountName>
</AccountName>
</URL>
</URLs>
</Application>
<Application>
<Name>ReportManager</Name>
<VirtualDirectory>Reports</VirtualDirectory>
<URLs>
<URL>
<UrlString>https://+:80</UrlString>
<AccountSid>
</AccountSid>
<AccountName>
</AccountName>
</URL>
</URLs>
</Application>
</URLReservations>
<Authentication>
<AuthenticationTypes>
<RSWindowsNTLM />
</AuthenticationTypes>
<EnableAuthPersistence>true</EnableAuthPersistence>
</Authentication>
<Service>
<IsSchedulingService>True</IsSchedulingService>
<IsNotificationService>True</IsNotificationService>
<IsEventService>True</IsEventService>
<IsAlertingService>True</IsAlertingService>
<PollingInterval>10</PollingInterval>
<WindowsServiceUseFileShareStorage>False</WindowsServiceUseFileShareStorage>
<MemorySafetyMargin>80</MemorySafetyMargin>
<MemoryThreshold>90</MemoryThreshold>
<RecycleTime>720</RecycleTime>
<MaxAppDomainUnloadTime>30</MaxAppDomainUnloadTime>
<MaxQueueThreads>0</MaxQueueThreads>
<UrlRoot>
</UrlRoot>
<PolicyLevel>rssrvpolicy.config</PolicyLevel>
<IsWebServiceEnabled>True</IsWebServiceEnabled>
<FileShareStorageLocation>
<Path>
</Path>
</FileShareStorageLocation>
</Service>
<UI>
<ReportServerUrl>
</ReportServerUrl>
<PageCountMode>Estimate</PageCountMode>
</UI>
<MapTileServerConfiguration>
<MaxConnections>2</MaxConnections>
<Timeout>10</Timeout>
<AppID>(Default)</AppID>
<CacheLevel>Default</CacheLevel>
</MapTileServerConfiguration>
</Configuration>
See Also
Modify a Reporting Services Configuration File (RSreportserver.config)
Configure Available Memory for Report Server Applications
Reporting Services Configuration Files
Initialize a Report Server (Report Server Configuration Manager)
Store Encrypted Report Server Data (Report Server Configuration Manager)
Report Server Configuration Manager (Native Mode)
More questions? Try the Reporting Services forum
ReportingServicesService Configuration File
11/2/2020 • 2 minutes to read • Edit Online
APPLIES TO: ✔
️ SQL Server Reporting Services (2016)
The ReportingServicesService.exe.config file includes settings that configure tracing.
File location
This file could be located in either of the paths below:
Editing guidelines
You can modify this file to rename the log file or to increase or decrease trace levels. Do not modify any of the
other settings. For instructions, see Modify a Reporting Services Configuration File (RSreportserver.config). For
more information about trace logs, see Report Server Service Trace Log.
Example configuration
The following example shows the settings and default values found in the ReportingServicesService.exe.config
file.
<configSections>
<section name="RStrace"
type="Microsoft.ReportingServices.Diagnostics.RSTraceSectionHandler,Microsoft.ReportingServices.Diagnostics"
/>
</configSections>
\<system.diagnostics>
<switches>
<add name="DefaultTraceSwitch" value="3" />
</switches>
\</system.diagnostics>
<RStrace>
<add name="FileName" value="ReportServerService_" />
<add name="FileSizeLimitMb" value="32" />
<add name="KeepFilesForDays" value="14" />
<add name="Prefix" value="tid, time" />
<add name="TraceListeners" value="debugwindow, file" />
<add name="TraceFileMode" value="unique" />
<add name="Components" value="all" />
</RStrace>
<runtime>
<alwaysFlowImpersonationPolicy enabled="true"/>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Microsoft.ReportingServices.Interfaces"
publicKeyToken="89845dcd8080cc91"
culture="neutral" />
<bindingRedirect oldVersion="8.0.242.0"
newVersion="10.0.0.0"/>
<bindingRedirect oldVersion="9.0.242.0"
newVersion="10.0.0.0"/>
</dependentAssembly>
</assemblyBinding>
<gcServer enabled="true" />
</runtime>
Configuration settings
The following table provides information about specific settings. Settings are presented in the order in which
they appear in the configuration file.
0= Disables tracing
4= Verbose mode
SET T IN G DESC RIP T IO N
FileName Specifies the first portion of the log file name. The value
specified by Prefix completes the rest of the name. By
default, the name is ReportServerService_.
FileSizeLimitMb Specifies an upper limit on trace log size. The file is measured
in megabytes. Valid values are 0 to a maximum integer. The
default value is 32.
KeepFilesForDays Specifies the number of days after which a trace log file will
be deleted. Valid values are 0 to a maximum integer. The
default value is 14.
TraceListeners Specifies a target for outputting trace log content. You can
specify multiple targets using a comma to separate each
one. Valid values include:
DebugWindow (default)
File (default)
StdOut
Components Specifies the components for which trace logs are created.
The default value is all. Other valid values for this setting
include the names of internal components. Do not modify
this value.
See also
Reporting Services Configuration Files
Report Server Service Trace Log
RSReportDesigner Configuration File
11/2/2020 • 3 minutes to read • Edit Online
The RSReportDesigner.config file stores settings about the rendering and data processing extensions available to
Report Designer. Data processing extension information is stored in the Data element. Rendering extension
information is stored in the Render element. The Designer element enumerates the query builders that are
used in Report Designer.
Report Designer uses embedded report server functionality to preview reports. Server-related settings can be
specified to support local server-side processing for preview operations. For more information about report
server configuration settings, see RsReportServer.config Configuration File.
File Location
This file is located in the \Program Files\Microsoft Visual Studio 8\Common7\IDE\PrivateAssemblies.
Editing Guidelines
Do not modify the settings in this file unless you are deploying or removing a custom extension, disabling
caching during preview, or registering a new data processing extension after a Service Pack upgrade.
Specific instructions for editing configuration files are available if you are customizing rendering extension
settings. For more information, see Customize Rendering Extension Parameters in RSReportServer.Config.
For general instructions on how to edit configuration files, see Modify a Reporting Services Configuration File
(RSreportserver.config).
<Configuration>
<Add Key="SecureConnectionLevel" Value="0" />
<Add Key="InstanceName" Value="Microsoft.ReportingServices.PreviewServer" />
<Add Key="SessionCookies" Value="true" />
<Add Key="SessionTimeoutMinutes" Value="3" />
<Add Key="PolicyLevel" Value="rspreviewpolicy.config" />
<Add Key="CacheDataForPreview" Value="true" />
<Extensions>
<Render> . . . </Render>
<Data> . . . </Data>
<Designer> . . . </Designer>
Configuration Settings
SET T IN G DESC RIP T IO N
InstanceName An identifier for the preview server. Do not modify this value.
SessionTimeoutMinutes Specifies the period for which a session cookie is valid. The
default is 3 minutes.
PolicyLevel Specifies the security policy configuration file. The valid value
is Rspreviewpolicy.config. For more information, see Using
Reporting Services Security Policy Files.
PreviewProcessingSer viceStar tupTimeoutSeconds Specifies the period to wait for the preview processing
service to start up before showing an error message. The
default is 15 seconds.
See Also
Reporting Services Configuration Files
Query Design Tools (SSRS)
Modify a Reporting Services Configuration File
(RSreportserver.config)
11/2/2020 • 4 minutes to read • Edit Online
Reporting Services stores application settings in a set of configuration files. Setup creates the configuration files
for each report server instance you install. Within each file, values are either set during installation or when you
use tools and applications to configure a server for operation. In some cases, you must modify a file directly to
add or configure advanced settings. Configuration settings are specified as either XML elements or attributes. If
you understand XML and configuration files, you can use a text or code editor to modify user-definable settings.
Some configuration settings can be set only through a tool. Settings that contain encrypted values must be
modified through the Reporting Services Configuration tool, the Setup program, or the rsconfig command line
utility. You must be a member of the local Administrators group to run these tools.'
IMPORTANT
Use caution when modifying configuration files. If you modify a setting that is reserved for internal use, you may disable
your installation. Generally, modifying configuration settings is not recommended unless you are trying to solve a specific
problem. For more information about which settings are safe to change, see RsReportServer.config Configuration File or
RSReportDesigner Configuration File. For more information about configuration files, see the Microsoft.NET Framework
product documentation.
In this topic:
Reading and Using Configuration Values
About Default Values
Deleting Configuration Settings
To Edit a Reporting Services Configuration File
Applies to: January 2017 Technical Preview of Power BI reports in SQL Server Reporting Services
NOTE
This is not available with the January 2017 Technical Preview of Power BI reports in SQL Server Reporting
Services.
2. Save a copy of the file in case you need to roll back your changes.
3. Open the original file in Notepad or a code editor. Do not use Textpad; it sets the file length before the file
is saved, causing an invalid character error to be written to the trace log file.
4. Type the element or value that you want to add or use. Elements are case-sensitive. If you are adding an
element, be sure to use the correct upper and lower case letters. Specific instructions for editing
configuration files are available if you are customizing rendering extension, authentication extensions, or
data processing extensions:
Authentication with the Report Server
Configure the Web Portal to Pass Custom Authentication Cookies
Customize Rendering Extension Parameters in RSReportServer.Config
5. Save the file.
6. Check the trace log files to verify that errors did not occur. If you see error conditions, a setting or its
value is specified incorrectly. Review the RsReportServer.config Configuration File for valid values for any
setting that is causing an error. For more information about how to view the trace log, see Report Server
Service Trace Log.
See Also
RsReportServer.config Configuration File
ReportingServicesService Configuration File
RSReportDesigner Configuration File
Deploying a Data Processing Extension
Deploying a Delivery Extension
Deploying a Rendering Extension
Reporting Services Configuration Files
Reporting Services Log Files and Sources
11/2/2020 • 2 minutes to read • Edit Online
A report server and report server environment uses a variety of log destinations to record information about
server operations and status. There are two basic categories of logging, execution logging and trace logging.
Execution logging includes information about report execution statistics, auditing, performance diagnosis and
optimization. Trace logging is information about error messages and general diagnostics.
Applies to: Reporting Services SharePoint mode | Reporting Services Native mode
The following table provides links to additional information about each log, including the log location and how
to view the log contents.
LO G DESC RIP T IO N
Report Server ExecutionLog and the ExecutionLog3 View The execution log is a SQL Server view stored in the report
server database.
SharePoint trace log For report servers running in SharePoint, the SharePoint
trace logs contains Reporting Services information. You can
also configure SSRS specific information for the SharePoint
Unified Logging service. For more information, see Turn on
Reporting Services events for the SharePoint trace log (ULS)
Report Server Service Trace Log The service trace log contains very detailed information that
is useful if you are debugging an application or investigating
an issue or event. The trace log files are
ReportServerService_<timestamp>.log and are located in
the following folder:
Report Server HTTP Log The HTTP log file contains a record of all HTTP requests and
responses handled by the Report Server Web service.
Windows Application Log The Microsoft Windows Application log contains information
about report server events.
Windows Performance logs The Windows Performance logs contain report server
performance data. You can create performance logs, and
then choose counters that determine which data to collect.
For more information, see Monitoring Report Server
Performance.
LO G DESC RIP T IO N
SQL Server Setup log files Log files are also created during Setup. If Setup fails or
succeeds with warnings or other messages, you can examine
the log files to troubleshoot the problem. For more
information, see View and Read SQL Server Setup Log Files.
See Also
Reporting Services Report Server (Native Mode)
Errors and Events Reference (Reporting Services)
Report Server ExecutionLog and the ExecutionLog3
View
3/5/2021 • 9 minutes to read • Edit Online
The Reporting Services, report server execution log contains information about the reports that execute on the
server or on multiple servers in a native mode scale-out deployment or a SharePoint farm. You can use the
report execution log to find out how often a report is requested, what output formats are used the most, and
how many milliseconds of processing time is spent on each processing phase. The log contains information on
the length of time spent executing a report's dataset query and the time spent processing the data. If you are a
report server administrator, you can review the log information and identify long running tasks and make
suggestions to the report authors on the areas of the report (dataset or processing) they may be able to
improve.
Report servers configured for SharePoint mode, can also utilize the SharePoint ULS logs. For more information,
see Turn on Reporting Services events for the SharePoint trace log (ULS)
The following table describes the data that is captured in the report execution log
C O L UM N DESC RIP T IO N
Interactive
Subscription
Render
Sort
BookMarkNavigation
DocumentNavigation
GetDocumentMap
Findstring
Execute
RenderEdit
TimeStart Start and stop times that indicate the duration of a report
process.
C O L UM N DESC RIP T IO N
TimeEnd
Live
Snapshot
History
The following are some of the values you will see in the AdditionalInfo field:
ProcessingEngine
1=SQL Server 2005, 2=The new On-demand Processing Engine. If a majority of your reports are still
showing the value of 1, you may investigate how to redesign them so they utilize the newer and more
efficient on-demand processing engine.
<ProcessingEngine>2</ProcessingEngine>
ScalabilityTime
The number of milliseconds spent performing scale related operations in the processing engine. A value
of 0 indicates that no additional time was spent on scale operations and a 0 also indicates the request
was not under memory pressure.
<ScalabilityTime>
<Processing>0</Processing>
</ScalabilityTime>
EstimatedMemor yUsageKB
An estimate of the peak amount of memory, in kilobytes, consumed by each component during a
particular request.
<EstimatedMemoryUsageKB>
<Processing>38</Processing>
</EstimatedMemoryUsageKB>
DataExtension
The types of data extensions or data sources used in the report. The number is a count of the number of
occurrences of the particular data source.
<DataExtension>
<DAX>2</DAX>
</DataExtension>
ExternalImages
The value is in miliseconds. This data can be used to diagnose performance issues. The time needed to
retrieve images from an external webserver may slow the overall report execution.
<ExternalImages>
<Count>3</Count>
<ByteCount>9268</ByteCount>
<ResourceFetchTime>9</ResourceFetchTime>
</ExternalImages>
Connections
A multi-leveled structure
<Connections>
<Connection>
<ConnectionOpenTime>127</ConnectionOpenTime>
<DataSource>
<Name>DataSource1</Name>
<DataExtension>SQL</DataExtension>
</DataSource>
<DataSets>
<DataSet>
<Name>DataSet1</Name>
<RowsRead>16</RowsRead>
<TotalTimeDataRetrieval>655</TotalTimeDataRetrieval>
<QueryPrepareAndExecutionTime>94</QueryPrepareAndExecutionTime>
<ExecuteReaderTime>33</ExecuteReaderTime>
<DataReaderMappingTime>30</DataReaderMappingTime>
<DisposeDataReaderTime>1</DisposeDataReaderTime>
</DataSet>
<DataSet>
<Name>DataSet2</Name>
<RowsRead>3</RowsRead>
<TotalTimeDataRetrieval>16</TotalTimeDataRetrieval>
<QueryPrepareAndExecutionTime>2</QueryPrepareAndExecutionTime>
<ExecuteReaderTime>1</ExecuteReaderTime>
<DataReaderMappingTime>0</DataReaderMappingTime>
<DisposeDataReaderTime>0</DisposeDataReaderTime>
</DataSet>
</DataSets>
</Connection>
</Connections>
Use ReportServer
select * from ExecutionLog2 order by TimeStart DESC
The following table describes the data that is captured in the report execution log
C O L UM N DESC RIP T IO N
ReportPath The path structure to the report. A repost saved in the root
folder as "test", has a ReportPath of "/test".
ExecutionID
Use ReportServer
select * from ExecutionLog order by TimeStart DESC
The following table describes the data that is captured in the report execution log
C O L UM N DESC RIP T IO N
TimeStart Start and stop times that indicate the duration of a report
process.
TimeEnd
TimeProcessing
TimeRendering
See Also
Turn on Reporting Services events for the SharePoint trace log (ULS)
Reporting Services Log Files and Sources
Errors and Events Reference (Reporting Services)
Turn on Reporting Services events for the
SharePoint trace log (ULS)
3/5/2021 • 4 minutes to read • Edit Online
Starting with SQL Server 2008 R2, Reporting Services servers in SharePoint mode can write Reporting Services
events to the SharePoint Unified Logging Service (ULS) trace log. Reporting Services specific categories are
available on the Monitoring page of SharePoint Central Administration.
In this Topic:
General ULS Log Recommendations
To turn on and off Reporting Services events in the Reporting Services Category
Recommended Configuration
Reading the logs entries
List of SQL Server Reporting Services Events
View a Log file with PowerShell
Trace Log Location
NOTE
The option Least critical event to repor t to the event log is not supported by Reporting Services. The option is
ignored.
Recommended Configuration
The following logging options are recommended as a standard configuration:
HTTP Redirector
SOAP Client Proxy
If you are experiencing issues with configuration, add Configuration Pages .
You can review all of the current farm diagnostic log settings with the following PowerShell cmdlet:
Get-SPDiagnosticConfig
Configuration Pages
HTTP Redirector
UI Pages
MediumUpdating ReportingWebServiceApplication
There are also tools you can download which will allow you read ULS logs. For example, the SharePoint
LogViewer, available on GitHub.
For more information on how to use PowerShell to view log data, see View diagnostic logs (SharePoint Server
2010)
The Reporting Services report server trace logs are an ASCII text file that contains detailed information for
Report Server service operations. The information in the files includes operations performed by the Report
Server Web service, the web portal, and background processing. The trace log file includes redundant
information that is recorded in other log files, plus additional information that is not otherwise available. Trace
log information is useful if you are debugging an application that includes a report server or investigating a
specific problem that was written to the event log or execution log. For example, when trouble shooting issues
with subscriptions.
The trace logs are created daily, starting with the first entry that occurs after midnight (local time), and whenever
the service is restarted. The timestamp is based on Coordinated Universal Time (UTC). The file is in EN-US
format. By default, trace logs are limited to 32 megabytes and by default they are deleted after 14 days.
\<system.diagnostics>
<switches>
<add name="DefaultTraceSwitch" value="3" />
</switches>
\</system.diagnostics>
<RStrace>
<add name="FileName" value="ReportServerService_" />
<add name="FileSizeLimitMb" value="32" />
<add name="KeepFilesForDays" value="14" />
<add name="Prefix" value="appdomain, tid, time" />
<add name="TraceListeners" value="file" />
<add name="TraceFileMode" value="unique" />
<add name="Components" value="all:3" />
</RStrace>
4= Verbose mode
FileSizeLimitMb Specifies an upper limit on trace log Valid values are 0 to a maximum
size. The file is measured in megabytes. integer. The default value is 32. If you
specify 0 or a negative number, the
You can control file size by setting report server treats the value as 1.
tracing levels (0 through 4) to control
how much content is recorded. You
can also specify which components get
traced. If the log file maximum is
reached before the 14-day expiration
date, older entries will be replaced with
newer entries.
KeepFilesForDays Specifies the number of days after Valid values are 0 to a maximum
which a trace log file will be deleted. integer. The default value is 14. If you
specify 0 or a negative number, the
report server treats the value as 1.
File (default)
StdOut
SET T IN G DESC RIP T IO N VA L UES
TraceFileMode Specifies whether trace logs contain This value is set to "Unique (default)".
data for a 24-hour period. You should Do not modify this value.
have one unique trace log for each
component on each day.
Component Categor y Specifies the components for which Component categories can be set to:
trace log information is generated and
the trace level in this format:
trace level value for component <component category>:<tracelevel> Trace level valid values are:
categories
4= Verbose mode
For more information, see Knowledge Base Article 913046 on the Microsoft Web site.
Previous versions
In previous releases of Reporting Services, there were multiple trace log files, one for each application. The
following files are obsolete and are no longer created in SQL Server 2008 and later versions:
ReportServerWebApp_<timestamp>.log
ReportServer_<timestamp>.log
ReportServerService_main_<timestamp>.log
See also
Reporting Services Log Files and Sources
Errors and Events Reference (Reporting Services)
More questions? Try the Reporting Services forum
Report Server HTTP Log
11/2/2020 • 3 minutes to read • Edit Online
The Report Server HTTP log file keeps a record of every HTTP request and response handled by the report
server. Because request overflow and timeout errors do not reach the report server, they are not recorded in the
log file.
HTTP logging is not enabled by default. You must modify the ReportingServicesService.exe configuration file to
use this feature in your installation.
LO G F IL E IN F O RM AT IO N DESC RIP T IO N
File creation and retention The HTTP log is created after you enable it in the
configuration file, restart the service, and the report server
handles an HTTP request. If you configure the settings but
do not see the log file, open a report or start a report server
application (such as the web portal) to generate an HTTP
request to create the file.
<RStrace>
<add name="FileName" value="ReportServerService_" />
<add name="FileSizeLimitMb" value="32" />
<add name="KeepFilesForDays" value="14" />
<add name="Prefix" value="tid, time" />
<add name="TraceListeners" value="debugwindow, file" />
<add name="TraceFileMode" value="unique" />
<add name="HttpTraceFileName" value="ReportServerService_HTTP_" />
<add name="HttpTraceSwitches"
value="date,time,clientip,username,serverip,serverport,host,method,uristem,uriquery,protocolstatus,bytesrece
ived,timetaken,protocolversion,useragent,cookiereceived,cookiesent,referrer" />
<add name="Components" value="all:3,http:4" />
</RStrace>
See also
Report Server Service Trace Log
Reporting Services Log Files and Sources
Errors and Events Reference (Reporting Services)
Windows Application Log
11/2/2020 • 2 minutes to read • Edit Online
Reporting Services writes event messages to the Windows application log. You can use the message information
written to the application log to find out about events that are generated by the report server applications
running on the local system.
See Also
Reporting Services Log Files and Sources
Errors and Events Reference (Reporting Services)
Verifying a Report Run
11/2/2020 • 2 minutes to read • Edit Online
To view information about the status of report processing, you can use log files or refer to status information
that is displayed with the report in Report Manager.
NOTE
Report Manager does not show the processing times of reports that run on demand.
The following table describes how to view the processing date and time for various types of reports.
DAT E A N D T IM E IN F O RM AT IO N IS TO VIEW T H E IN F O RM AT IO N , DO T H E
F O R T H IS T Y P E O F REP O RT LO C AT ED H ERE F O L LO W IN G
A report that runs as a report On the Contents page. For more 1) Locate the folder that contains the
snapshot. information, see Contents Page report.
(Report Manager).
2) Set the folder in Details view.
A snapshot in report history. On the History Properties page. For 1) Open the report.
more information, see Snapshot
Options Properties Page (Report 2) Click the Proper ties page.
Manager).
3) Click the Histor y tab.
A cached report. In the schedule used to create and 1) Open the report.
refresh the cached report.
2) Click the Proper ties page.
See Also
Reporting Services Log Files and Sources
Set Report Processing Properties
Report Manager (SSRS Native Mode)
Performance, Snapshots, Caching (Reporting
Services)
3/5/2021 • 2 minutes to read • Edit Online
Report server performance is affected by a combination of factors that include hardware, number of concurrent
users accessing reports, the amount of data in a report, and output format. To understand the performance
factors that are specific to your installation and which remedies will produce the results you want, you will need
to get baseline data and run tests. For more information about tools and guidelines, see the following
publications on MSDN: Reporting Services Performance Optimization and Using Visual Studio 2005 to Perform
Load Testing on a SQL Server 2005 Reporting Services Report Server.
General principles to consider include the following:
Report processing and rendering are memory intensive operations. When possible, choose a computer
that has a lot of memory.
Hosting the report server and the report server database on separate computers tends to provide better
performance than hosting both on a single high-end computer.
If all reports are processing slowly, consider a scale-out deployment where multiple report server
instances support a single report server database. For best results, use load balancing software to
distribute requests evenly across the deployment.
If a single report is processing slowly, tune report dataset queries if the report must run on demand. You
might also consider using shared datasets that you can cache, caching the report, or running the report
as a snapshot.
If all reports process slowly in a specific format (for example, while rendering to PDF), consider file share
delivery, adding more memory, or choosing a different format.
To find out how long it takes to process a report and other usage metrics, review the report server
execution log. For more information, see Report Server ExecutionLog and the ExecutionLog3 View.
For more information about how to mitigate performance issues by tuning memory management
configuration settings, see Configure Available Memory for Report Server Applications.
In This Section
Monitoring Report Server Performance
Describes the performance objects you can use to track the processing load on your server.
Set Report Processing Properties
Describes ways of configuring a report to run on demand, from cache, or on a schedule as a report snapshot.
Configure Available Memory for Report Server Applications
Describes how you can override default memory management behavior.
Caching Reports (SSRS)
Describes report caching behavior on a report server.
Cache Shared Datasets (SSRS)
Describes shared dataset caching behavior on a report server.
Process Large Reports
Provides recommendations on how to configure and distribute a large report.
Setting Time-out Values for Report and Shared Dataset Processing (SSRS)
Explains how to set time outs on query and report processing.
See Also
Manage a Running Process
Verifying a Report Run
Monitoring Report Server Performance
3/5/2021 • 4 minutes to read • Edit Online
APPLIES TO: ✔
️ SQL Server 2016 Reporting Services and later ✔
️ Power BI Report Server
Use performance monitoring tools to monitor report server performance to evaluate server activity, watch
trends, diagnose system bottlenecks, and gather data that can help you determine whether the current system
configuration is sufficient. To tune server performance, you can specify how often to recycle the report server
application domain. For more information, see Configure Available Memory for Report Server Applications.
NOTE
Power BI Report Server and SQL Server Reporting Services 2017 and later do not include Reporting Services performance
objects. There are .NET Framework performance counters available to provide performance monitoring for the report
server.
P ERF O RM A N C E O B JEC T N OT ES
.NET CLR Data and .NET CLR Memor y The web portal uses ASP.NET performance counters. For
more information, download Improving .NET Application
Performance and Scalability.
SharePoint events
In addition to the Reporting Services performance objects, you might also want to configure SharePoint events
if you are running a report server in SharePoint integrated mode and have configured your reporting
environment to use a SharePoint product. In this section, use the Events for a Report Server in SharePoint
Integrated Mode to review diagnostic events that might provide useful information if your reporting
environment is integrated with SharePoint.
In this section
Performance Counters for the MSRS 2016 Web Service and MSRS 2016 Windows Service Performance Objects
(Native Mode)
Describes the performance counters used by the Report Server Web service.
Performance Counters for the MSRS 2016 Web Service SharePoint Mode and MSRS 2016 Windows Service
SharePoint Mode Performance Objects (SharePoint Mode)
Describes the performance counters used by the Report Server Windows service.
Performance Counters for the ReportServer:Service and ReportServerSharePoint:Service Performance Objects
Describes the HTTP-related and memory-related performance counters in Reporting Services.
See also
Configure Available Memory for Report Server Applications
Reporting Services Report Server (Native Mode)
Reporting Services Tools
Performance Counters MSRS 2016 Native Mode,
Performance Objects
3/5/2021 • 9 minutes to read • Edit Online
This topic describes performance counters for the MSRS 2016 Web Ser vice and MSRS 2016 Windows
Ser vice performance objects. These objects are part of a SQL Server 2016 Reporting Services Native Mode
deployment.
NOTE
These performance objects monitor events on the local report server. If you are running a report server in a scale-out
deployment, the counts apply to the current server and not the scale-out deployment.
The performance objects are available in the Windows Performance Monitor (Perfmon.exe ). For more
information, see the Windows documentation, Runtime Profiling
(https://msdn.microsoft.com/library/w4bz2147.aspx).
For information related to the SharePoint mode performance counters, see Performance Counters for the MSRS
2016 Web Service SharePoint Mode and MSRS 2016 Windows Service SharePoint Mode Performance Objects
(SharePoint Mode).
In this topic:
MSRS 2016 Web Service Performance Counters
MSRS 2016 Windows Service Performance Counters
Use PowerShell Cmdlets to return lists
C O UN T ER DESC RIP T IO N
Cache Hits/Sec Number of requests per second for cached reports. The
requests are for re-rendered reports, not requests for
reports processed directly from the cache. (See Total Cache
Hits later in this topic.)
Cache Hits/Sec (Semantic Models) Number of requests per second for cached model. The
requests for re-rendered reports, not requests for reports
processed directly from the cache.
Cache Misses/Sec Number of requests per second that failed to return a report
from cache. Use this counter to find out whether the
resources used for caching (disk or memory) are sufficient.
Cache Misses/Sec (Semantic Models) Number of requests per second that failed to return a model
from cache. Use this counter to find out whether the
resources used for caching (disk or memory) are sufficient.
First Session Requests/Sec Number of new user sessions that are started from the
report server cache each second.
Memor y Cache Hits/Sec Number of times per second that reports are retrieved from
the in-memory cache. In-memory cache is a part of the
cache that stores reports in CPU memory. When in-memory
cache is used, the report server does not query SQL Server
for cached content.
Memor y Cache Misses/Sec Number of times per second that reports could not be
retrieved from the in-memory cache.
Next Session Requests/Sec Number of requests per second for reports that are open in
an existing session (such as reports that are rendered from a
session snapshot).
Repor t Requests Number of reports that are currently active and managed by
the report server.
Total Cache Hits Total number of requests for reports from the cache after
the service started. This counter is reset whenever ASP.NET
stops the report server Web service.
Total Cache Hits (Semantic Models) Total number of requests for model from the cache after the
service started. This counter is reset whenever ASP.NET stops
the report server Web service.
C O UN T ER DESC RIP T IO N
Total Cache Misses Total number of times that a report could not be returned
from the cache after the service started. This counter is reset
whenever ASP.NET stops the report server Web service. Use
this counter to determine whether disk space and memory
are sufficient.
Total Cache Misses (Semantic Models) Total number of times that a model could not be returned
from the cache after the service started. This counter is reset
whenever ASP.NET stops the report server Web service. Use
this counter to determine whether disk space and memory
are sufficient.
Total Memor y Cache Hits Total number of cached reports returned from the in-
memory cache after the service started. This counter is reset
whenever ASP.NET stops the report server Web service. In-
memory cache is a part of the cache that stores reports in
CPU memory. When in-memory cache is used, the report
server does not query SQL Server for cached content.
Total Memor y Cache Misses Total number of cache misses against the in-memory cache
after the service started. This counter is reset whenever
ASP.NET stops the report server Web service.
Total Processing Failures Number of request processing errors for the report server
Web service.
Total Repor ts Executed Total number of reports that ran successfully after the
service started. This counter is reset whenever ASP.NET stops
the report server Web service.
Total Requests Total number of all requests made to the report server after
the service started. This counter is reset whenever ASP.NET
stops the report server Web service.
C O UN T ER DESC RIP T IO N
C O UN T ER DESC RIP T IO N
Cache Hits/Sec Number of requests per second for cached reports. The
requests are for re-rendered reports, not requests for
reports processed directly from the cache. (See Total Cache
Hits later in this topic.)
Cache Hits/Sec (Semantic Models) Number of requests per second for cached models.
Cache Misses/Sec Number of requests per second that failed to return a report
from cache. Use this counter to find out whether the
resources used for caching (disk or memory) are sufficient.
Cache Misses/Sec (Semantic Models) Number of requests per second that failed to return a model
from cache. Use this counter to find out whether the
resources used for caching (disk or memory) are sufficient.
First Session Requests/Sec Number of new report execution sessions created per
second.
Memor y Cache Hits/Sec Number of times per second that reports are retrieved from
the in-memory cache. In-memory cache is a part of the
cache that stores reports in CPU memory. When in-memory
cache is used, the report server does not query SQL Server
for cached content.
Memor y Cache Misses/Sec Number of times per second that reports cannot be
retrieved from the in-memory cache.
Next Session Requests/Sec Number of requests per second for reports that are open in
an existing session (such as reports that are rendered from a
session snapshot).
Repor t Requests Number of reports that are currently active and managed by
the report server. Use this counter to evaluate caching
strategy. There might be more requests than reports
generated.
Total App Domain Recycles Total number of application domain cycles after the Report
Server Windows service started.
Total Cache Flushes Total number of report server cache updates after the
service started. This counter resets when the application
domain recycles. See Cache Flushes/Sec.
Total Cache Hits Total number of requests for reports processed directly from
the cache after the Report Server Windows service started.
This counter resets when the application domain recycles.
See Cache Hits/Sec.
Total Cache Hits (Semantic Models) Total number of requests for models processed directly from
the cache after the Report Server Windows service started.
This counter resets when the application domain recycles.
See Cache Hits/Sec.
Total Cache Misses Total number of times that a report could not be returned
from cache after the Report Server Windows service started.
This counter resets when the application domain recycles.
See Cache Misses/Sec.
Total Cache Misses (Semantic Models) Total number of times that a model could not be returned
from cache after the Report Server Windows service started.
This counter resets when the application domain recycles.
Total Events Total number of events after the report server Windows
service started. This counter resets when the application
domain recycles.
Total Memor y Cache Hits Total number of cached reports returned from the in-
memory cache after the report server Windows service
started. This counter resets when the application domain
recycles.
Total Memor y Cache Misses Total number of cache misses against the in-memory cache
after the service started. This counter resets when the
application domain recycles.
Total Processing Failures Number request processing errors in the report server
Windows service.
Total Requests Total number of reports that ran successfully after the
service started. This counter resets when the application
domain recycles.
Total Snapshot Updates Total number of updates for report execution snapshots
The following Windows PowerShell script returns the list of performance counters for the CounterSetName.
See Also
Monitoring Report Server Performance
Performance Counters for the MSRS 2016 Web Service SharePoint Mode and MSRS 2016 Windows Service
SharePoint Mode Performance Objects (SharePoint Mode)
Performance Counters for the ReportServer:Service and ReportServerSharePoint:Service Performance Objects
Performance Counters MSRS 2016 SharePoint
Mode, Performance Objects
3/5/2021 • 9 minutes to read • Edit Online
This topic describes performance counters for the MSRS 2016 Web Ser vice SharePoint Mode and MSRS
2016 Windows Ser vice SharePoint Mode performance objects that are part of a SQL Server 2016
Reporting Services SharePoint mode deployment.
NOTE
These performance objects monitor events on the local report server. If you are running a report server in a scale-out
deployment, the counts apply to the current server and not the scale-out deployment as a whole.
The performance objects are available in the Windows Performance Monitor (Perfmon.exe ). For more
information, see the Windows documentation. Runtime Profiling
(https://msdn.microsoft.com/library/w4bz2147.aspx).
For information regarding performance counters and Native mode report servers, see Performance Counters
for the MSRS 2016 Web Service and MSRS 2016 Windows Service Performance Objects (Native Mode).
In this topic:
MSRS 2016 Web Service SharePoint Mode Performance Counters
MSRS 2016 Windows Service SharePoint Mode Performance Counters
Use PowerShell Cmdlets to return lists
C O UN T ER DESC RIP T IO N
Cache Hits/Sec Number of requests per second for cached reports. These
are requests for re-rendered reports, not requests for
reports processed directly from the cache. (See Total Cache
Hits later in this topic.)
Cache Hits/Sec (Semantic Models) Number of requests per second for cached model. These are
requests for re-rendered reports, not requests for reports
processed directly from the cache.
Cache Misses/Sec Number of requests per second that failed to return a report
from cache. Use this counter to find out whether the
resources used for caching (disk or memory) are sufficient.
Cache Misses/Sec (Semantic Models) Number of requests per second that failed to return a model
from cache. Use this counter to find out whether the
resources used for caching (disk or memory) are sufficient.
First Session Requests/Sec Number of new user sessions that are started from the
report server cache each second.
Memor y Cache Hits/Sec Number of times per second that reports are retrieved from
the in-memory cache. In-memory cache is a part of the
cache that stores reports in CPU memory. When in-memory
cache is used, the report server does not query SQL Server
for cached content.
Memor y Cache Misses/Sec Number of times per second that reports could not be
retrieved from the in-memory cache.
Next Session Requests/Sec Number of requests per second for reports that are open in
an existing session (such as reports that are rendered from a
session snapshot).
Repor t Requests Number of reports that are currently active and being
handled by the report server.
Total Cache Hits Total number of requests for reports from the cache after
the service started. This counter is reset whenever ASP.NET
stops the Report Server Web service.
Total Cache Hits (Semantic Models) Total number of requests for model from the cache after the
service started. This counter is reset whenever ASP.NET stops
the Report Server Web service.
C O UN T ER DESC RIP T IO N
Total Cache Misses Total number of times that a report could not be returned
from the cache after the service started. This counter is reset
whenever ASP.NET stops the Report Server Web service. Use
this counter to determine whether disk space and memory
are sufficient.
Total Cache Misses (Semantic Models) Total number of times that a model could not be returned
from the cache after the service started. This counter is reset
whenever ASP.NET stops the Report Server Web service. Use
this counter to determine whether disk space and memory
are sufficient.
Total Memor y Cache Hits Total number of cached reports returned from the in-
memory cache after the service started. This counter is reset
whenever ASP.NET stops the Report Server Web service. In-
memory cache is a part of the cache that stores reports in
CPU memory. When in-memory cache is used, the report
server does not query SQL Server for cached content.
Total Memor y Cache Misses Total number of cache misses against the in-memory cache
after the service started. This counter is reset whenever
ASP.NET stops the Report Server Web service.
Total Processing Failures Number of errors in report server web service request
processing.
Total Repor ts Executed Total number of reports that ran successfully after the
service started. This counter is reset whenever ASP.NET stops
the Report Server Web service.
Total Requests Total number of all requests made to the report server after
the service started. This counter is reset whenever ASP.NET
stops the Report Server Web service.
C O UN T ER DESC RIP T IO N
C O UN T ER DESC RIP T IO N
Cache Hits/Sec Number of requests per second for cached reports. These
are requests for re-rendered reports, not requests for
reports processed directly from the cache. (See Total Cache
Hits later in this topic.)
Cache Hits/Sec (Semantic Models) Number of requests per second for cached models.
Cache Misses/Sec Number of requests per second that failed to return a report
from cache. Use this counter to find out whether the
resources used for caching (disk or memory) are sufficient.
Cache Misses/Sec (Semantic Models) Number of requests per second that failed to return a model
from cache. Use this counter to find out whether the
resources used for caching (disk or memory) are sufficient.
First Session Requests/Sec Number of new report execution sessions created per
second.
Memor y Cache Hits/Sec Number of times per second that reports are retrieved from
the in-memory cache. In-memory cache is a part of the
cache that stores reports in CPU memory. When in-memory
cache is used, the report server does not query SQL Server
for cached content.
C O UN T ER DESC RIP T IO N
Memor y Cache Misses/Sec Number of times per second that reports cannot be
retrieved from the in-memory cache.
Next Session Requests/Sec Number of requests per second for reports that are open in
an existing session (such as reports that are rendered from a
session snapshot).
Repor t Requests Number of reports that are currently active and being
handled by the report server. Use this counter to evaluate
caching strategy. There might be significantly more requests
than reports generated.
Total App Domain Recycles Total number of application domain cycles after the Report
Server Windows service started.
Total Cache Flushes Total number of report server cache updates after the
service started. This counter resets when the application
domain recycles. See Cache Flushes/Sec.
Total Cache Hits Total number of requests for reports processed directly from
the cache after the Report Server Windows service started.
This counter resets when the application domain recycles.
See Cache Hits/Sec.
Total Cache Hits (Semantic Models) Total number of model requests processed directly from the
cache after the report server Windows service started. This
counter resets when the application domain recycles.
Total Cache Misses Total number of times that a report could not be returned
from cache after the Report Server Windows service started.
This counter resets when the application domain recycles.
See Cache Misses/Sec.
Total Cache Misses (Semantic Models) Total number of times that a model could not be returned
from cache after the Report Server Windows service started.
This counter resets when the application domain recycles.
Total Events Total number of events after the Report Server Windows
service started. This counter resets when the application
domain recycles.
C O UN T ER DESC RIP T IO N
Total Memor y Cache Hits Total number of cached reports returned from the in-
memory cache after the Report Server Windows service
started. This counter resets when the application domain
recycles.
Total Memor y Cache Misses Total number of cache misses against the in-memory cache
after the service started. This counter resets when the
application domain recycles.
Total Processing Failures Number of request processing errors for the report server
Windows service.
Total Requests Total number of reports that ran successfully after the
service started. This counter resets when the application
domain recycles.
The following Windows PowerShell script will return the list of performance counters for the CounterSetName
"MSRS 2016 Windows Service SharePoint Mode".
See Also
Monitoring Report Server Performance
Performance Counters for the MSRS 2016 Web Service and MSRS 2016 Windows Service Performance Objects
(Native Mode)
Performance Counters for the ReportServer:Service and ReportServerSharePoint:Service Performance Objects
Performance Counters - ReportServer Service,
Performance Objects
3/5/2021 • 4 minutes to read • Edit Online
This topic describes performance counters for the Repor tSer ver :Ser vice and
Repor tSer verSharePoint:Ser vice performance objects that are part of a SQL Server 2012 (11.x) deployment.
NOTE
The performance objects are used to monitor events on the local report server. If you are running a report server in a
scale-out deployment, the counts apply to the current server and not the scale-out deployment as a whole.
The performance objects are available in the Windows Performance Monitor (Perfmon.exe ). For more
information, see the Windows documentation. Runtime Profiling
(https://msdn.microsoft.com/library/w4bz2147.aspx).
In this topic:
ReportServer:Service Performance Counters (Native Mode Report Server)
ReportServerSharePoint:Service (SharePoint Mode Report Server)
Use PowerShell Cmdlets to return lists
Applies to: SQL Server 2012 (11.x).
Bytes Received Total The number of bytes received by the server. This counter
counts the raw bytes received in total by both Report
Manager and the report server.
Bytes Received/sec The number of bytes received per second by the server. This
counter is updated only when a transfer is completed. This
means that the counter remains at 0 and then the value
increases after a transfer is complete.
Bytes Sent Total The number of bytes sent from the server. This counter
counts the raw bytes sent in total by both Report Manager
and the report server.
Bytes Sent/sec The number of bytes sent per second from the server. This
counter is updated only when a transfer is completed. This
means that the counter remains at 0 and then the value
increases after a transfer is complete.
Errors Total The total number of errors that occur during the processing
of HTTP requests. These errors include HTTP status codes in
the 400s and 500s.
Errors/sec The total number of errors that occur per second during the
processing of HTTP requests. These errors include HTTP
status codes in the 400s and 500s.
Logon Attempts Total The number of logon attempts made from RSWindows
authentication types. RSWindows authentication types
include RSWindowsNegotiate, RSWindowsNTLM,
RSWindowsKerberos, and RSWindowsB asic. The value zero
(0) represents Custom authentication.
Memor y Pressure State One of the following numbers, from 1-5, which indicates the
current memory state of the server:
1: No pressure
2: Low pressure
3: Medium pressure
4: High pressure
5: Exceeded pressure
C O UN T ER DESC RIP T IO N
Memor y Shrink Amount The number of bytes that the server requested to shrink the
memory in use.
Memor y Shrink Notifications/sec The number of notifications that the server issued in the last
second to shrink the memory in use. This value indicates
how often the server experiences memory pressure.
Requests Not Authorized The number of requests that fail with an HTTP 401 status
code.
Requests Rejected The total number of requests that were not processed
because of insufficient server resources. This counter
represents the number of requests that return a HTTP 503
status code, which indicates that the server is too busy.
Requests Total The total number of requests that are received by the report
server service since startup. This counter counts requests
that are sent to Report Manager and requests that are sent
from Report Manager to the report server.
Requests/sec The number of requests that are processed per second. This
value represents the current throughput of the application.
Tasks Queued The number of tasks that are waiting for a thread to become
available for processing. Each request made to the report
server corresponds to one or more tasks. This counter
represents only the number of tasks that are ready for
processing; it does not include the number of tasks that are
currently running.
C O UN T ER DESC RIP T IO N
See Also
Monitoring Report Server Performance
Performance Counters for the MSRS 2011 Web Service and MSRS 2011 Windows Service Performance Objects
(Native Mode)
Performance Counters for the MSRS 2011 Web Service SharePoint Mode and MSRS 2011 Windows Service
SharePoint Mode Performance Objects (SharePoint Mode)
Set Report Processing Properties
11/2/2020 • 3 minutes to read • Edit Online
Report execution properties control how a report is processed. Execution properties must be set for each report
individually.
To set report execution properties, navigate to the report in the web portal, right-click the report, and select
Manage from the drop down menu.
See also
Set Processing Options (Reporting Services in SharePoint Integrated Mode)
Reporting Services Concepts (SSRS)
Create, Modify, and Delete Snapshots in Report History
Specify Credential and Connection Information for Report Data Sources
Configure Available Memory for Report Server
Applications
11/2/2020 • 7 minutes to read • Edit Online
Although Reporting Services can use all available memory, you can override default behavior by configuring an
upper limit on the total amount of memory resources that are allocated to Reporting Services server
applications. You can also set thresholds that cause the report server to change how it prioritizes and processes
requests depending on whether it is under low, medium, or heavy memory pressure. At low levels of memory
pressure, the report server responds by giving a slightly higher priority to interactive or on-demand report
processing. At high levels of memory pressure, the report server uses multiple techniques to remain operational
using the limited resources available to it.
This article describes the configuration settings that you can specify and how the server responds when
memory pressure becomes a factor in processing requests.
Although you cannot customize the report server responses to different memory pressure scenarios, you can
specify configuration settings that define the boundaries that separate high, medium, and low memory pressure
responses.
EL EM EN T DESC RIP T IO N
NOTE
Memor yLimit and MaximumMemor yLimit settings are obsolete in SQL Server 2008 and later versions. If you
upgraded an existing installation or using an RSReportServer.config file that includes those settings, the report server no
longer reads those values.
Config files
<MemorySafetyMargin>80</MemorySafetyMargin>
<MemoryThreshold>90</MemoryThreshold>
<WorkingSetMaximum>4000000</WorkingSetMaximum>
<WorkingSetMinimum>2400000</WorkingSetMinimum>
See also
RsReportServer.config Configuration File
Modify a Reporting Services Configuration File (RSreportserver.config)
Application Domains for Report Server Applications
Setting Time-out Values for Report and Shared
Dataset Processing (SSRS)
2/7/2020 • 3 minutes to read • Edit Online
In Reporting Services, you can specify time-out values to set limits on how system resources are used. Report
servers support two time-out values:
An embedded dataset query time-out value is the number of seconds that the report server waits for a
response from the database. This value is defined in a report.
A shared dataset query time-out value is the number of seconds that the report server waits for a
response from the database. This value is part of the shared dataset definition and can be changed when
you manage the shared dataset on the report server.
A report execution time-out value is the maximum number of seconds that report processing can
continue before it is stopped. This value is defined at the system level. You can vary this setting for
individual reports.
Most time-out errors occur during query processing. If you are encountering time-out errors, try increasing the
query time-out value. Make sure to adjust the report execution time-out value so that it is larger than the query
time-out. The time period should be sufficient to complete both query and report processing.
NOTE
For Paginated Repor ts in Power BI , the default value is set to 600 seconds .
Users who have permission to modify the properties of a published report can reset this value by editing the
report definition file.
You can also specify a query time-out value for data-driven subscriptions. The query time-out value is specified
in the Data-Driven Subscription pages. The value you specify determines how long the report server waits for
query processing to complete when retrieving data from the subscriber data source.
NOTE
You can set the RunningRequestsDbCycle setting in the RSReportServer.config file to change the frequency of how
often running jobs are evaluated.
See also
Set Processing Options (Reporting Services in SharePoint Integrated Mode)
Reporting Services Report Server (Native Mode)
Manage a Running Process
The web portal of a report server (SSRS Native Mode)
Process Large Reports
3/5/2021 • 4 minutes to read • Edit Online
Large reports present certain processing challenges and require certain configurations if they are to run
properly. Large reports should not be run on demand unless they are configured to support pagination.
NOTE
Page breaks are enabled by default. Do not disable page breaks if you think the report will contain a large amount of
data. The HTML rendering format that is used to initially render a report opens a report in a browser. If the report is not
paginated, all of the data is included in a single page, which cannot be accommodated by most browsers. For example, a
report that contains 5,000 rows of data almost certainly cannot be viewed in a browser in a single page.
If you are working with a large report, you should choose report execution, rendering, and delivery options that
can accommodate large documents. Report size is largely determined by the row set that comes back from the
query and the rendering extension that is used to present the report.
For reports that contain volatile data, report size can change dramatically from one report run to the next. In this
case, you should monitor the data source to determine how data volatility affects your report and whether you
need to follow the steps prescribed in this topic.
For more information and tips on how to diagnose time-out errors and out-of-memory errors, see the article
How to diagnose issues when running reports in the report server on blogs.msdn.microsoft.com.
Configuration recommendations
Recommendations for report execution, report rendering, and report access include the following items:
Design the report to support pagination. The report server sends a report one page at a time. If the
report includes pagination, you can control how much data is streamed to the browser. For more
information, see Preload the Cache (SSRS).
Configure the report to run as a scheduled report snapshot to prevent it from being run on demand. Do
not set a time-out value for report execution. Run the report during off-peak hours.
Configure the report to use a shared data source if you want to control whether the report is processed.
One advantage to using a shared data source is that you can disable it. Disabling the data source prevents
report processing.
Disable report history if you want to conserve disk space. To disable report history, clear all the check
boxes on the History properties page.
Limit access to the report. Configure the report to use item-level security and replace the default role
assignments with new ones that allow access to only those users that need it.
By default, users can open any report that they can view in the folder hierarchy. Even if you configure a
report to run as a snapshot, users who can view the report item in a folder can open the report. If the
report is very large, it might cause the browser to stop responding when a user opens the report in the
web portal.
Rendering recommendations
Before you configure report distribution, it is important to know which rendering clients can accommodate
large documents. The recommended format is the default HTML rendering extension with soft page breaks, but
you can choose from any format that supports pagination.
Performance and memory consumption varies for each rendering format. The same report will render at
different rates and require different amounts of memory depending on the format you select. The fastest and
least memory intensive formats include CSV, XML, and HTML. PDF and Excel have the slowest performance, but
for different reasons. PDF is CPU-intensive, while Excel is RAM-intensive. Image rendering falls in-between the
two groups. You can specify the format when you define how the report is distributed.
See also
Subscriptions and Delivery (Reporting Services)
Set Report Processing Properties
Specify Credential and Connection Information for Report Data Sources
Report Server Content Management (SSRS Native Mode)
Preload the Cache (SSRS)
Report and Snapshot Size Limits
3/5/2021 • 6 minutes to read • Edit Online
Administrators who manage a Reporting Services deployment can use the information in this topic to
understand report size limits when the report is published to a report server, rendered at run time, and saved to
the file system. This topic also provides practical guidance on how to measure the size of a report server
database, and describes the effect of snapshot size on server performance.
NOTE
Report processing and rendering occur in memory. If you have large reports or large number of users, be sure to do
some kind of capacity planning to make sure your report server deployment performs at a level that is satisfactory for
your users. For more information about tools and guidelines, see the following publications on MSDN: Planning for
Scalability and Performance with Reporting Services and Using Visual Studio 2005 to Perform Load Testing on a SQL
Server 2005 Reporting Services Report Server.
USE ReportServer
EXEC sp_spaceused
See Also
Set Report Processing Properties
Report Server Database (SSRS Native Mode)
Process Large Reports
Caching Reports (SSRS)
11/2/2020 • 4 minutes to read • Edit Online
A report server can cache a copy of a processed report and return that copy when a user opens the report. To a
user, the only evidence available to indicate the report is a cached copy is the date and time that the report ran. If
the date or time is not current and the report is not a snapshot, the report was retrieved from cache.
Caching can shorten the time required to retrieve a report if the report is large or accessed frequently. If the
server is rebooted, all cached instances are reinstated when the Report Server Web service comes back online.
Caching is a performance-enhancement technique. The contents of the cache are volatile and can change as
reports are added, replaced, or removed. If you require a more predictable caching strategy, you should create a
report snapshot. For more information, see Set Report Processing Properties.
NOTE
Reporting Services stores temporary files in a database to support user sessions and report processing. These files are
cached for internal use and to support a consistent viewing experience during a single browser session. For more
information about how internal-use temporary files are cached, see Report Server Database (SSRS Native Mode).
Cached Instances
A cached instance of a report is based on the intermediate format of a report. The report server generally
caches one instance of a report based on the report name. However, if a report can contain different data based
on query parameters, multiple versions of the report may be cached at any given time. For example, suppose
you have a parameterized report that takes a region code as a parameter value. If four different users specify
four unique region codes, four cached copies are created.
The first user who runs the report with a unique region code creates a cached report that contains data for that
region. Subsequent users who request the report using the same region code get the cached copy.
Not all reports can be cached. If a report includes user-dependent data, prompts users for credentials, or uses
Windows Authentication, it cannot be cached.
See also
Set Processing Options (Reporting Services in SharePoint Integrated Mode)
Set Report Processing Properties
Reporting Services Concepts (SSRS)
Preload the Cache
Schedules
Cache Shared Datasets (SSRS)
Cache Shared Datasets (SSRS)
11/2/2020 • 4 minutes to read • Edit Online
Query results for a shared dataset can be copied to a cache to provide consistent data for multiple reports and
to improve response time for the dataset query. Like reports, you can configure a shared dataset to be cached
on first use or by specifying a schedule.
A shared dataset can be included in multiple reports or as part of component definitions. By caching the shared
dataset, you provide a consistent set of data for all reports that use it, and also reduce the number of times that
the dataset query runs against the external data source.
The following list provides examples of when to cache a shared dataset:
The query takes a substantial amount of time to run.
The query takes parameters, but most of the time, the number of parameter combinations is small. Each
combination creates cached query results.
The query runs at predictable times of the day, week, or month.
The query runs as the result of a shared dataset reference in a report that is delivered via e-mail, where a
large number of people are likely to click the link in a short span of time.
The following list provides examples of when not to cache a shared dataset:
The query results must always include the most recent data.
The query runs quickly.
The query runs infrequently.
The query takes parameters, the number of parameter combinations is large, and no combination is
more likely than another.
The data source that the shared dataset is based on has Prompt or Windows Integrated credentials.
The shared dataset filter or the query contains an expression with a reference to the global collection
User.
If a user chooses report parameter values that differ from the default values that are specified for the cached
result set, the dataset query runs actively and the cached results are not used for that query.
See also
Manage Shared Datasets
Preload the cache
11/2/2020 • 7 minutes to read • Edit Online
You can preload the cache for a shared dataset by creating a cache refresh plan for the shared dataset.
You can preload the cache for a report in two ways:
1. Create a cache refresh plan for the report. This is the preferred method.
2. Use a data-driven subscription to preload the cache with instances of parameterized reports. This was the
only way to preload the cache in versions of Reporting Services earlier than SQL Server 2008 R2. For
more information, see Caching Reports (SSRS).
The following conditions must be met before you can cache a report or a shared dataset:
The shared dataset or the report must have caching enabled.
The shared data sources for the shared dataset or the report must be configured to use stored credentials
or no credentials.
The SQL Server Agent service must be running.
NOTE
If the item does not have caching enabled, you will be prompted to enable caching. To
enable caching, select OK .
Select Create cache refresh plan to create / save the cache plan.
The Cache Refresh Plans page opens on the screen. From here you can:
Add a new cache refresh plan.
Create a new cache refresh plan from an existing plan.
Refresh the cache refresh plans page.
Delete a plan.
Search for a plan by name.
If no cache refresh plans have been saved yet, the list will be empty, and the "Add" choice
will be the only available option. Select + New cache refresh plan to add a new one, and
the New Cache Refresh Plan page is displayed.
Type a Description in the first text box to name the refresh plan.
Select one of the following radio buttons in the Refresh the cache on the following
schedule
Shared schedule - select a shared schedule from the adjacent dropdown box.
Repor t-specific schedule - Edit the schedule as in step 2.2 above by selecting
the Edit schedule link if desired to display the Schedule details page.
Select Create cache refresh plan to save the plan if adding, or Apply if editing
the plan.
You are returned to the updated Cache Refresh Plans page.
10. In the Quer y section - specify the query that retrieves the desired subscriber data. For example:
Optionally increase the time-out period for queries that take a long time to process.
11. Select Validate . The query must be validated before you continue. When the Validation successful
message appears, a list of Dataset fields will be displayed below the Validate button. Select Apply to
create the custom data source.
12. You are returned to the New Subscription page. In the Repor t Parameters section, specify report
parameter values for the report parameters displayed if any.
13. Select Create subscription .
14. The Subscriptions page is displayed showing your new Data-driven subscription. From this page, you
can enable the subscription when you are ready by selecting the checkbox to the left of it, and selecting
NOTE
In order for the subscribers to receive the newest report, the schedule that you configure should be consistent
with the report delivery schedule that you have defined for the subscribers. For more information, see the web
portal of a report server.
16. Configure the Execution options for the report as follows. On the report page, select the Proper ties tab.
17. In the left frame, select the Execution tab.
18. On the page, select Render this repor t with the most recent data .
19. Choose one of the following two cache options and configure the expiration as follows:
To make the cached copy expire after a particular time period, select Cache a temporar y copy
of the repor t. Expire copy of repor t after a number of minutes. Type the number of
minutes for report expiration.
To make the cached copy expire on a schedule, select Cache a temporar y copy of the repor t.
Expire copy of repor t on the following schedule. Select Configure , or select a shared
schedule to set a schedule for report expiration.
20. Select Apply .
See also
Data-Driven Subscriptions
Create a Data-Driven Subscription (SSRS Tutorial)
Performance, Snapshots, Caching (Reporting Services)
Set Report Processing Properties
Caching Reports (SSRS)
Working with shared datasets
Cache a Shared Dataset
11/2/2020 • 2 minutes to read • Edit Online
One way to improve performance is to configure caching properties for a shared dataset. When a shared
dataset is cached, a copy of the query results is saved for a specified period of time. The first user who requests
a report that uses the shared dataset must wait for the query results and all processing to complete before
viewing the report. Subsequent users who request the report within the caching period will experience
improved performance because the query and processing has already occurred. You can also specify a cache
refresh plan to run the query and cache the results until the specified cache expiration.
Users running reports based on a shared dataset or cache refresh plans create the query cache and in both
cases, the cache is available based on the cache expiration options.
There are restrictions on the types of shared datasets that you can cache. For example, the query results cannot
be cached if the data varies based on the user identity or if data is retrieved using the security token of the user
who requests the report. For more information, see Cache Shared Datasets (SSRS) and Caching Reports (SSRS).
To schedule the expiration of a cached report
1. Start Report Manager (SSRS Native Mode).
2. In Report Manager, navigate to the shared dataset for which you want to set caching properties, hover
over the item, and click the drop-down arrow.
3. In the drop-down menu, click Manage .
4. In the left frame, click Caching .
NOTE
If you see the error Credentials used to run the shared dataset are not stored , the cache shared dataset
option will be disabled. You need modify the data source to store credentials or modify the shared dataset to use
a different data source that does store credentials.
See Also
Manage Shared Datasets
Cache a Report (Report Manager)
11/2/2020 • 2 minutes to read • Edit Online
One way to improve performance is to configure caching properties for a report. When a report is cached, a
copy of the rendered report is saved for a short period of time. The first user who requests the report must wait
for all processing to complete before viewing the report. Subsequent users who request the report within the
caching period can view it right away because processing has already occurred.
There are restrictions on the types of reports that you can cache. For example, a report cannot be cached if
report output varies based on the user identity or if data is retrieved using the security token of the user who
requests the report. For more information, see Caching Reports (SSRS).
To schedule the expiration of a cached report
1. Start Report Manager (SSRS Native Mode).
2. In Report Manager, navigate to the Contents page. Navigate to the report for which you want to set
caching properties, hover over the item, and click the drop-down arrow.
3. In the drop-down menu, click Manage .
4. In the left frame, click the Processing Options .
5. On the page, select Always run this repor t with the most recent data .
6. Select one of the following two cache options and configure expiration as follows:
To configure a cached copy to expire after a particular time period, click Cache a temporar y
copy of the repor t. Expire copy of repor t after a number of minutes . Type the number of
minutes for report expiration.
To configure a cached copy to expire on a schedule, click Cache a temporar y copy of the
repor t. Expire copy of repor t on the following schedule. Click Configure , or select a
shared schedule to control report expiration
7. Click Apply .
See Also
Set Report Processing Properties
Caching Reports (SSRS)
Create, Modify, and Delete Snapshots in Report
History
11/2/2020 • 2 minutes to read • Edit Online
Report history is a collection of report snapshots. You can maintain report history by adding and deleting
snapshots, or by modifying properties that affect report history storage. You can create report history manually
or on a schedule.
To create report history, your role assignment must include the "Manage report history" task. To view report
history, your role assignment must include the "View reports" task. Report history is available to all users who
have access to the report. You cannot selectively enable or disable report history for a subset of users.
Snapshots in report history are identified by the date and time that they were created. The date and time is
based on when the query executed.
See Also
Create Report History (Reporting Services in SharePoint Integrated Mode)
Report Manager (SSRS Native Mode)
Report Server Content Management (SSRS Native Mode)
Add a Snapshot to Report History (Report Manager)
Limit Report History (Report Manager)
Add a Snapshot to Report History
5/10/2021 • 4 minutes to read • Edit Online
Report history is a collection of report snapshots that you create over time. A report snapshot is a report that
contains layout information and query results that were retrieved at a specific point in time. Unlike on-demand
reports, which get up-to-date query results when you select the report, report snapshots are processed on a
schedule and then saved to a report server. When you select a report snapshot for viewing, the report server
retrieves the stored report from the report server database and shows the data and layout that were current for
the report at the time the snapshot was created.
Report snapshots are not saved in a particular rendering format. Instead, report snapshots are rendered in a
final viewing format (such as HTML) only when a user or an application requests it. Deferred rendering makes a
snapshot portable. The report can be rendered in the correct format for the requesting device or Web browser.
NOTE
To enable creating snapshots, the administrator must configure the report history to Allow histor y to be
created manually . For more information, see Limit Report History (Report Manager).
4. Click Apply .
See also
Configure Execution Properties for a Report (Report Manager)
Limit Report History (Report Manager)
Schedules
Report Manager (SSRS Native Mode)
1. In the web portal, navigate to the item that you want to view history for and right-click it.
2. In the drop-down menu, select Manage .
3. Select the Histor y snapshots tab.
4. On the Histor y snapshots page, select the New histor y snapshot . A new snapshot is created and
appears below with the current date and time in the Created column.
NOTE
To enable creating snapshots, the administrator must configure the report history to Allow histor y to be
created manually . For more information, see Limit Report History (web portal).
9. Click Apply .
See also
Configure Execution Properties for a Report (web portal)
Limit Report History (web portal)
Schedules
the web portal (SSRS Native Mode)
Create Report History (Reporting Services in
SharePoint Integrated Mode)
11/2/2020 • 2 minutes to read • Edit Online
Report history is a collection of report snapshots that you create over time. Each snapshot is a copy of the
report as it existed when it was created. It includes the layout and data that was current for the report when the
snapshot was created. Rendering information is not stored with the snapshot. When you open a snapshot in
report history, it opens in HTML in the Report Viewer Web Part. After it is rendered, you can export it to other
application formats.
To create report history, the report must be able to run unattended (that is, the report server must be able to run
the report without user interaction). You must have Edit Items permission on the library that contains the report.
To view or delete report history, you must have View Versions or Delete Versions permissions.
To create a snapshot or report history on demand
1. Point to the report.
2. Click to display the down arrow, and then select View Repor t Histor y .
3. Click New Snapshot . If the button is not visible, it is because you do not have permission to create
snapshots in report history.
4. To view the snapshot you just created, select it from the list. Each snapshot is identified by a timestamp
that shows when the snapshot was created. You cannot rename the snapshot, move it to another location,
or modify it.
To schedule report history
1. Point to the report.
2. Click to display the down arrow, and then select Manage Processing Options .
3. In Histor y Snapshot Options , click Create repor t histor y snapshots on a schedule .
4. If you have a shared schedule that contains the schedule information you want to use, click On a shared
schedule and select the schedule you want to use. Otherwise, click On a custom schedule , and then
click Configure to specify options to create report history on a recurring schedule.
To create report history when data is refreshed in a report
1. Point to the report.
2. Click to display the down arrow, and then select Manage Processing Options .
3. In Histor y Snapshot Options , click Store all repor t data snapshots in repor t histor y .
See Also
Set Processing Options (Reporting Services in SharePoint Integrated Mode)
Reporting Services Report Server (SharePoint
Mode)
3/5/2021 • 7 minutes to read • Edit Online
APPLIES TO: ✔
️ SQL Server Reporting Services (2016) ✔
️ SharePoint ❌ Power BI Report Server
For content related to previous versions of SQL Server Reporting Services (SSRS), see SQL Server 2014
Reporting Services.
A Reporting Services report server configured for SharePoint Mode can run within a deployment of a
SharePoint product. A report server in SharePoint mode can use the collaboration and management features of
SharePoint for reports and other Reporting Services content types. SharePoint mode requires installing the
appropriate version of the Reporting Services add-in for SharePoint products on your SharePoint Web Front
Ends.
NOTE
Reporting Services integration with SharePoint is no longer available after SQL Server 2016.
Feature summary
Configuring a report server to run in SharePoint integrated mode provides the following additional functionality
that is only available when you deploy a report server in this mode:
Use SharePoint document management and collaboration features, including alerts. A SharePoint site
provides a unified portal for accessing and managing all report items in one place.
Use SharePoint permissions and authentication providers to control access to reports, models, and other
items.
Use SharePoint deployment topologies to distribute reports over an Internet connection outside the
firewall. A report server provides report and data processing services in the context of a larger
SharePoint deployment that is configured for Internet access.
Manage reports, models, data sources, schedules, and report history in custom application pages on a
SharePoint site. You can set properties, define schedules and subscriptions, and create and manage report
history on a SharePoint site the same way you create and manage them from other tools in SQL Server.
Publish or upload reports, report models, resources, and shared data source files to a SharePoint library,
including Report Center in Office SharePoint Server.
Use Report Designer, Model Designer, and Report Builder to create reports and data sources to be
published directly to a SharePoint library. You can also use the Upload action on a SharePoint site to add
any report definitions and report models to a SharePoint library.
Because the report server processes report definitions in the same way regardless of the server mode
you use, the report data and layout is unaffected by server mode. Any report that you can run in a native
mode report server can run on a report server that is configured for SharePoint integrated mode.
Subscribe to and deliver reports to a SharePoint library using a new SharePoint delivery extension. You
can also deliver reports through e-mail or to a shared folder. The report server delivery extensions are
used to deliver reports. You can create data-driven subscriptions for large-scale report distribution using
subscriber data queried at run time.
A Report Viewer web part you can add to SharePoint pages to view a report inside your SharePoint web
application. The web part includes page navigation, search, print, and export features.
Program against a new SOAP endpoint to create custom applications that integrate with a SharePoint
site. You can also use the updated Windows Management Instrumentation (WMI) provider to
programmatically configure a report server instance that runs in SharePoint integrated mode.
Microsoft Access services reporting, in connected mode.
AAM zones, internet facing deployments, and SharePoint user tokens for SharePoint lists.
NOTE
The correct version of the Reporting Services add-in must be used with the corresponding version of SharePoint Products.
TIP
Not all features are supported in all combinations of report server, Reporting Services add-in for SharePoint, and
SharePoint Products. For more information see, Supported combinations of SharePoint and Reporting Services Server and
add-in.
On SharePoint, the Reporting Services Add-in provides the ReportServer proxy endpoint, a Report
Viewer web part, and application pages so that you can view, store, and manage report server content on
a SharePoint site or farm.
On Reporting Services provides updated program files, a SOAP endpoint, and custom security and
delivery extensions. The report server must be configured to run in SharePoint integrated mode,
dedicated exclusively to supporting report access and delivery through your SharePoint site.
After you install the Reporting Services Add-in on SharePoint and configure the two servers for integration, you
can upload or publish report server content types to a SharePoint library, and then view and manage those
documents from a SharePoint site. Uploading or publishing report server content is an important first step; the
web part and pages become available when you select report definitions (.rdl), report models (.smdl) and shared
data sources (.rsds) on a SharePoint site.
Language considerations
SharePoint Foundation 2010 and SharePoint Server 2010 products are available in many more languages than
SQL Server
When you configure a report server to run within a deployment of a SharePoint product, you might see a
combination of languages. The user interface, documentation, and messages will appear in the following
languages:
All application pages, tools, errors, warnings, and messages that originate from Reporting Services will
appear in the language used by the Reporting Services instance in one of the SQL Server languages.
Application pages that you open on a SharePoint site, the Report Viewer web part, and Report Builder will
appear in one of the supported languages for the Reporting Services Add-in. To view the list of supported
languages, go to SQL Server downloads and find the download page for the SQL Server 2016 Reporting
Services Add-in.
SharePoint sites, SharePoint Central Administration, online help, and messages are available in the
languages supported by Office Server products.
If the language of your SharePoint product or technology differs from the report server language, Reporting
Services will try to use a language from the same language family that provides the closest match. If a close
substitute is not available, the report server uses English.
Related tasks
The following table summarizes tasks related to a Reporting Services SharePoint mode report server:
TA SK L IN K
Detailed steps for installing and configuring Reporting Install Reporting Services SharePoint mode for SharePoint
Services in SharePoint mode. 2010 and Add an additional Report Server to a farm.
Scale-out your Reporting Services SharePoint deployment by Add an additional Report Server to a Farm and Deployment
adding additional report servers. topologies for SQL Server BI features in SharePoint.
Add additional SharePoint web front-ends that have the Add an additional Reporting Services web front-end to a
Reporting Services components installed for viewing and farm
report items.
Configure e-mail for your report server within SharePoint. Configure e-mail for a Reporting Services service application
Recent information for this release, found on the TechNet SQL Server 2012 Reporting Services tips, tricks, and
Wiki. troubleshooting.
Next steps
Install or uninstall the Reporting Services sdd-in for SharePoint Report Viewer web part on a SharePoint site
More questions? Try asking the Reporting Services forum
Reporting Services SharePoint service and service
applications
3/5/2021 • 2 minutes to read • Edit Online
APPLIES TO: ✔
️ SQL Server Reporting Services (2016) ✔
️ SharePoint ❌ Power BI Report Server
For content related to previous versions of SQL Server Reporting Services (SSRS), see SQL Server 2014
Reporting Services.
Reporting Services SharePoint mode is architected on the SharePoint service architecture and utilizes a
SharePoint service and one to many service applications. Creating a service application makes the service
available and generates the service application database. You can create multiple Reporting Services service
applications but one service application is sufficient for most deployment scenarios.
NOTE
Reporting Services integration with SharePoint is no longer available after SQL Server 2016.
2. Create the service application with a name and application pool name you provide.
3. Get the new service application object, and pipe the object into the Pipe the new proxy cmdlet.
Related tasks
TA SK L IN K
Manage the settings of your Service Application. Manage a Reporting Services SharePoint Service Application
Backup and restore the service application and related Backup and Restore Reporting Services SharePoint Service
components such as encryption keys and proxy. Applications
APPLIES TO: ✔
️ SQL Server Reporting Services (2016) ✔
️ SharePoint ❌ Power BI Report Server
For content related to previous versions of SQL Server Reporting Services (SSRS), see SQL Server 2014
Reporting Services.
Reporting Services service applications are managed from SharePoint Central Administration. The Management
and Properties pages allow you to update the configuration of the service application as well as common
administration tasks.
NOTE
Reporting Services integration with SharePoint is no longer available after SQL Server 2016.
Session settings
SET T IN G C O M M EN T S
Reporting Services all supports SharePoint ULS logging. For more information, see Turn on Reporting Services
events for the SharePoint trace log (ULS)
Security settings
SET T IN G C O M M EN T S
Client settings
SET T IN G C O M M EN T S
Report Builder Launch URL Specify a custom URL when the report server does not use
the default Report Builder URL. This setting is optional. If you
do not specify a value, the default URL will be used, which
launches Report Builder. To launch Report Builder 3.0 as a
Click-Once application, enter the following value:
https://<computername>/ReportServer/ReportBuilder/Repor
tBuilder_3_0_0_0.application.
Manage jobs
You can view and delete the running jobs, for example jobs that are created by report subscriptions and data-
driven subscriptions. The page is not used to manage subscriptions, but rather jobs that are triggered by a
subscription. For example a subscription that is scheduled to run once an hour will generate a job once an hour
that appears on the Manage Jobs page.
Key management
The following table summarizes the Kay Management pages
IMPORTANT
Periodically changing the Reporting Services encryption key is a security best practice. A recommended time to change
the key is immediately following a major version upgrade of Reporting Services. Changing the key after an upgrade
minimizes additional service interruption caused by changing the Reporting Services encryption key outside of the
upgrade cycle.
PA GE DESC RIP T IO N
Restore Encryption Key 1) Type or browse to the key file in the File Location box
3) Click OK
Change Encryption Key This operation will create a new key and re-encrypt your
encrypted content. If you have a lot of content, this
operation make take several hour.
Execution account
Use this page to configure an account to use for unattended processing. This account is used under special
circumstances when other sources of credentials are not available:
When the report server connects to a data source that does not require credentials. Examples of data
sources that might not require credentials include XML documents and some client-side database
applications.
When the report server connects to another server to retrieve external image files or other resources that
are referenced in a report.
Setting this account is optional, but not setting it limits your use of external images and connections to some
data sources. When retrieving external image files, the report server checks to see if an anonymous connection
can be made. If the connection is password protected, the report server uses the unattended report processing
account to connect to the remote server. When retrieving data for a report, the report server either
impersonates the current user, prompts the user to provide credentials, uses stored credentials, or uses the
unattended processing account if the data source connection specifies None as the credential type. The report
server does not allow its service account credentials to be delegated or impersonated when connecting to other
computers, so it must use the unattended processing account if no other credentials are available.
The account you specify should be different from the one used to run the service account. If you are running the
report server in a scale-out deployment, you must configure this account the same way on each report server.
You can use any Windows user account. For best results, choose an account that has read permissions and
network logon permissions to support connections to other computers. It must have read permissions on any
external image or data file that you want to use in a report. Do not specify a local account unless all report data
sources and external images are stored on the report server computer. Use the account only for unattended
report processing.
PowerShell command
The following is an example PowerShell command to return the list of Reporting Services service applications
with the UEAccount property:
For more information, see PowerShell cmdlets for Reporting Services SharePoint Mode.
Options
Specify an execution account
Select to specify an account.
Account
Enter a Windows domain user account. Use this format: <domain>\<user account>.
Password
Type the password.
Confirm password
Retype the password.
E-mail settings
Use this page to specify Simple Mail Transport Protocol (SMTP) settings that enable report server e-mail
delivery from the report server. You can use the Report Server E-Mail delivery extension to distribute reports or
report processing notifications through e-mail subscriptions. The Report Server E-Mail delivery extension
requires an SMTP server and an e-mail address to use in the From: field.
Options
Use SMTP Ser ver
Specifies that report server e-mail is routed through an SMTP server.
Outbound SMTP Ser ver
Specify the SMTP server or gateway to use. You can use a local server or an SMTP server on your network.
From Address
Specifies the e-mail address to use in the From: field of a generated e-mail. You must specify a user account that
has permission to send mail from the SMTP server.
Provision subscriptions and alerts
Use this page to verify if SQL Server Agent is running and to provision access for reporting services to use SQL
Server Agent. SQL Server Agent is required for Reporting Services subscriptions, schedules, and data alerts.
Provision Subscriptions and Alerts for SSRS Service Applications
Proxy association
When you created the Reporting Services service application you selected the web application to associate and
provision permissions for access by the Reporting Services service application. If you chose to not associate or
you want to change the association, you can use the following steps.
1. In SharePoint Central Administration, in the Application Management, click Configure Ser vice
Application Associations .
2. On the Service application Associations page, change the view to Ser vice Applications .
3. Find and click the name of your new Reporting Services Service application. You could also click the
application proxy group name default to add the proxy to default group rather than completing the
following steps.
4. Select Custom in the selection box Edit the following group of connections .
5. Check the box for your proxy and click Ok .
More questions? Try asking the Reporting Services forum
Back up and restore Reporting Services SharePoint
service applications
3/5/2021 • 5 minutes to read • Edit Online
APPLIES TO: ✔
️ SQL Server Reporting Services (2016) ✔
️ SharePoint ❌ Power BI Report Server
For content related to previous versions of SQL Server Reporting Services (SSRS), see SQL Server 2014
Reporting Services.
This topic describes how to back up and restore a Reporting Services services application using SharePoint
Central Administration or PowerShell.
NOTE
Reporting Services integration with SharePoint is no longer available after SQL Server 2016.
NOTE
Reporting Services service applications can partially be backed up and restored using the SharePoint backup and restore
functionality. Additional steps are required and the steps are documented in this topic. Currently the backup process
does not back up encryption keys and credentials for unattended execution accounts (UEA) or windows authentication
to the Reporting Services database.
Recommendations
Back up the encryption keys before starting the SharePoint backup. If you do not back up the encryption
keys, then you will not be able to access your encrypted data, following the restore of the service
application. You will need to delete your encrypted data.
Verify if your Reporting Services service application is using UEA or Windows authentication for database
access. If it is using either, verify what the proper credentials are so you can correctly configure the
service application after the restore process.
Review that the SharePoint backup log is created in the same folder as the backup file. The file is typically
named spbackup.log
APPLIES TO: ✔
️ SQL Server Reporting Services (2016) ✔
️ SharePoint ❌ Power BI Report Server
For content related to previous versions of SQL Server Reporting Services (SSRS), see SQL Server 2014
Reporting Services.
When you install SQL Server 2016 Reporting Services SharePoint mode, PowerShell cmdlets are installed to
support report Servers in SharePoint mode. The cmdlets cover three categories of functionality.
Installation of the Reporting Services SharePoint shared service and proxy.
Provisioning and management of Reporting Services service applications and associated proxies.
Management of Reporting Services features, for example extensions and encryption keys.
NOTE
Reporting Services integration with SharePoint is no longer available after SQL Server 2016.
Cmdlet summary
To run the cmdlets you need to open the SharePoint Management Shell. You can also use the graphical user
interface editor that is included with Microsoft Windows, Windows PowerShell Integrated Scripting
Environment (ISE) . For more information, see Starting Windows PowerShell on Windows Server. In the
following cmdlet summaries, the references to service application 'databases', refer to all of the databases
created and used by a Reporting Services service application. This includes the configuration, alerting, and temp
databases.
If you see an error message similar to the following when you type the PowerShell examples:
Install-SPRSService : The term 'Install-SPRSService' is not recognized as the
name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was
included, verify that the path is correct and try again.
One of the following issues is occurring:
Reporting Services SharePoint mode is not installed and therefore the Reporting Services cmdlets are not
installed.
You ran the PowerShell command in Windows PowerShell or Windows PowerShell ISE instead of the
SharePoint Management Shell. Use the SharePoint Management shell or add the SharePoint Snap-in to
the Windows PowerShell window with the following command:
Add-PSSnapin Microsoft.SharePoint.PowerShell
For more information see Use Windows PowerShell to administer SharePoint 2013.
Open the SharePoint Management Shell and run cmdlets
1. Click the Star t button
2. Click the Microsoft SharePoint Products group.
3. Click the SharePoint Management Shell .
To view command line help for a cmdlet use the PowerShell 'Get-Help' command at the PowerShell command
prompt. For example:
Get-Help Get-SPRSServiceApplicationServers
C M DL ET DESC RIP T IO N
If there are any other machines in the farm that have the
Reporting Services service installed, or if there are still
Reporting Services service applications running in the farm, a
warning message is displayed.
Get-SPRSProxyUrl Gets the URL(s) for accessing the Reporting Services service.
Get-SPRSServiceApplicationServers Gets all servers in the local SharePoint farm that contain an
installation of the Reporting Services shared service. This
cmdlet is useful for Reporting Services upgrades, to
determine which servers run the shared service and
therefore need to be upgraded.
0 Windows Authentication
1 SQL Server
Delivery
DeliveryUI
Render
Data
Security
Authentication
EventProcessing
ReportItems
Designer
ReportItemDesigner
ReportItemConverter
ReportDefinitionCustomization
Basic samples
Return a list of cmdlets that contain 'SPRS' in the name. This will be the full list of Reporting Services cmdlets.
Install-SPRSService
Install-SPRSServiceProxy
Type the following command from the SharePoint Management Shell to return a filtered list of rows from the a
log file. The command will filter for lines that contain "ssrscustomactionerror". This example is looking at the log
file created when the rssharepoint.msi was installed.
Detailed samples
In addition to the following samples, see the section "Windows PowerShell Script" in the topic Windows
PowerShell script for Steps 1-4.
Create a reporting services service application and proxy
This sample script completes the following tasks:
1. Create a Reporting Services service application and proxy. The script assumes the application pool "My
App Pool" already exists.
2. Add the proxy to the default proxy group
3. Grant the service app access to the port 80 web app's content database. The script assumes site
https://sitename already exists.
# Add service application proxy to default proxy group. Any web application that uses the default proxy
group will now be able to use this service application.
Get-SPServiceApplicationProxyGroup -default | Add-SPServiceApplicationProxyGroupMember -Member
$serviceAppProxy
# Grant application pool account access to the port 80 web application's content database.
$webApp = Get-SPWebApplication "https://sitename"
$appPoolAccountName = $appPool.ProcessAccount.LookupName()
$webApp.GrantAccessToProcessIdentity($appPoolAccountName)
The following script will return the current configuration values for the report server e-mail delivery extension
for the service application named "Reporting Services Application". The first step sets the value of the variable
$app to the object of the service application that has a name of " My RS Service App "
The second statement will Get the 'Report Server Email' delivery extension for the service application object in
variable $app, and select the configurationXML
The following is an example of the output. Determine the ID for the database you want to modify and use the ID
in the SET cmdlet.
Id : 56f8d1bc-cb04-44cf-bd41-a873643c5a14
QueryTimeout : 120
ConnectionTimeout : 15
Status : Online
ServiceInstance : SPDatabaseServiceInstance
Example output:
Name ExtensionType
---- -------------
SQL Data
SQLAZURE Data
SQLPDW Data
OLEDB Data
OLEDB-MD Data
ORACLE Data
ODBC Data
XML Data
SHAREPOINTLIST Data
Next steps
Use PowerShell to change and list Reporting Services subscription owners and run a subscription
CheckList: Use PowerShell to verify Power Pivot for SharePoint
Get help SQL Server PowerShell
More questions? Try asking the Reporting Services forum
Configuration and administration of a SQL Server
Reporting Services (SSRS) report server
3/5/2021 • 2 minutes to read • Edit Online
APPLIES TO: ✔
️ SQL Server Reporting Services (2016) ✔
️ SharePoint ❌ Power BI Report Server
For content related to previous versions of SQL Server Reporting Services (SSRS), see SQL Server 2014
Reporting Services.
SQL Server Reporting Services is a server-based reporting platform that provides a full range of ready-to-use
tools and services to help you create, deploy, and manage reports for your organization, as well as
programming features that enable you to extend and customize your reporting functionality. You can integrate
your reporting environment with a SharePoint product to experience the benefits of using the collaborative
environment provided by SharePoint sites.
NOTE
Reporting Services integration with SharePoint is no longer available after SQL Server 2016.
Use the following sections to help you understand concepts, deployment scenarios, procedures, and more for
integrating your Reporting Services environment with a SharePoint product or technology:
Menu options in a SharePoint document library
Data Alert Manager for SharePoint Users
Create and Manage Subscriptions for SharePoint Mode Report Servers
Update Credentials in Report Data Sources from a SharePoint Site
Manage Shared Datasets
Set Parameters on a Published Report (Reporting Services in SharePoint Integrated Mode)
Set Processing Options (Reporting Services in SharePoint Integrated Mode)
Reporting Services Site Collection Features
Activate the Report Server and Power View Integration Features in SharePoint
Reporting Services Site Settings and Site Features(SharePoint Mode)
Activate the Report Server File Sync Feature in SharePoint Central Administration
Add Reporting Services Content Types to a SharePoint Library
Local Mode vs. Connected Mode Reports in the Report Viewer (Reporting Services in SharePoint Mode)
Upload Documents to a SharePoint Library (Reporting Services in SharePoint Mode)
Set Processing Options (Reporting Services in SharePoint Integrated Mode)
More questions? Try asking the Reporting Services forum
Reporting Services site collection features
3/5/2021 • 2 minutes to read • Edit Online
APPLIES TO: ✔
️ SQL Server Reporting Services (2016) ✔
️ SharePoint ❌ Power BI Report Server
For content related to previous versions of SQL Server Reporting Services (SSRS), see SQL Server 2014
Reporting Services.
Reporting Services SharePoint mode provides three SharePoint site collection features. The features support the
general Reporting Services SharePoint mode reporting environment, Power View, a feature of the SQL Server
2016 Reporting Services Add-in, and management operations for Reporting Services in SharePoint Central
Administration.
NOTE
Reporting Services integration with SharePoint is no longer available after SQL Server 2016.
Repor t Ser ver Central Administration Feature Enables Features for managing integration with a Reporting
Services report server. This feature is only installed and used
in the SharePoint Central Administration site collection.
Repor t Ser ver Integration Feature Enables rich reporting using Microsoft Reporting Services
Power View Integration Feature Enables interactive data exploration and visual presentation
against Power Pivot work books and Analysis services
tabular databases.
.rdlx
.rsds
Next steps
Activate the Report Server and Power View Integration Features in SharePoint
Reporting Services Site Settings and Site Features(SharePoint Mode)
Activate the Report Server File Sync Feature in SharePoint Central Administration
More questions? Try asking the Reporting Services forum
Activate the report server and Power View
integration features in SharePoint
3/5/2021 • 2 minutes to read • Edit Online
APPLIES TO: ✔
️ SQL Server Reporting Services (2016) ✔
️ SharePoint ❌ Power BI Report Server
For content related to previous versions of SQL Server Reporting Services (SSRS), see SQL Server 2014
Reporting Services.
The Reporting Services site collection features are activated by default after you install the Microsoft SQL Server
2016 Reporting Services or later (SSRS) Add-in for SharePoint products. In some situations, you need to
manually activate the features.
NOTE
Reporting Services integration with SharePoint is no longer available after SQL Server 2016.
If you install the Reporting Services add-in for SharePoint 2010 Products after the installation of the SharePoint
product, then the Report Server integration feature and the Power View integration feature will only be activated
for root site collections. For other site collections, you need to manually activate the features. For example, if you
have a site collection of https://[my ser ver name]/sites/[site collection name] you need to manually
activate the Reporting Services site collection features.
When there is no root site collection, the Reporting Services add-in will log a message similar to the following.
"SharePoint web app 80 does not have root site collection"
The message is found in the add-in installation log, named "RS_SP_#.log" where # is an incrementing number.
The log file is found in the current users Temp folder, for example C:\Users\[user name]\AppData\Local\Temp.
For more information on logging options with the add-in, see Install or Uninstall the Reporting Services Add-in
for SharePoint.
Activate the Report Server and Power View integration site collection
features
1. Open your browser to the site where you want the Reporting Services features active.
2. Click Site Actions .
3. Click Site Settings .
4. Click Site Collection Features in the Site Collection Administration Group.
5. Find Repor t Ser ver Integration Feature or Power View Integration Feature in the list.
6. Click Activate .
To deactivate the features, you can use the same procedure, but click Deactivate rather than Activate.
Next steps
After the feature is activated, you can continue with server integration.
More questions? Try asking the Reporting Services forum
Reporting Services site settings and site features
(SharePoint mode)
3/5/2021 • 2 minutes to read • Edit Online
APPLIES TO: ✔
️ SQL Server Reporting Services (2016) ✔
️ SharePoint ❌ Power BI Report Server
For content related to previous versions of SQL Server Reporting Services (SSRS), see SQL Server 2014
Reporting Services.
Reporting Services SharePoint mode has several site level custom features and site feature that can be managed
from the SharePoint Site Settings page. The settings are site wide and affect all Reporting Services service
applications. You must have Content Manager and System Administrator permissions to view this page.
NOTE
Reporting Services integration with SharePoint is no longer available after SQL Server 2016.
Report Server File Sync A Site level feature that is deactivated by default.
Enable RSClientPrint ActiveX control download The control displays a custom print dialog box that supports
features common to other print dialog boxes, including print
preview, page selections for specifying specific pages and
ranges, page margins, and orientation. For more information
on the control, see Using the RSClientPrint Control in
Custom Applications
O P T IO N DESC RIP T IO N
Enable remote errors in local mode Show or hide detailed error messages on remote computers
when running in local mode. If you see an error message
similar to the following, then enabling remote errors may be
useful:
Enable accessibility metadata for repor ts Turn on accessibility metadata in the HTML output for
reports
Enable Exact Data Visualization Fit Sizing for Repor ts Configure data visualization fit behavior when inside a tablix,
to fix exactly. This includes chart, gauge, and map. When
disabled the behavior is for data visualizations to fit
approximately, which may leave some white space. This
setting only applies to rendering in the Report Viewer web
part. To manage this behavior for server-side rendering, you
need to modify the rsrepor tser ver.config file. For more
information, see the following:
See also
Manage a Reporting Services SharePoint Service Application
Activate the report server file sync feature in
SharePoint
3/5/2021 • 2 minutes to read • Edit Online
APPLIES TO: ✔
️ SQL Server 2016 Reporting Services and later ✔
️ SharePoint ❌ Power BI Report Server
The Reporting Services Report Server File Sync feature utilizes SharePoint event handlers to synchronize the
report server catalog with items in document libraries. This feature is beneficial when users frequently upload
published report items directly to SharePoint document libraries. If the file Sync feature is not activated, content
will still be synchronized but not as frequently.
NOTE
Reporting Services integration with SharePoint is no longer available after SQL Server 2016.
The File Sync feature can be activated in SharePoint Site Administration after you install the SQL Server 2016
Reporting Services or later (SSRS) Add-in for SharePoint products.
This feature can be manually activated and deactivated per site but not at the site collection level.
Prerequisites
The Reporting Services Add-in for SharePoint must be installed. If the add-in is not installed the file sync feature
will not be visible in the site feature list.
To verify installation, view the list of installed applications in Microsoft Windows Control Panel . If the Reporting
Services Add-in is installed, follow the instructions in this topic to activate the report server file sync feature.
To activate or deactivate the Reporting Services file sync feature on a site
1. From the main page of your site, click the Site Actions menu and click Site Settings ..
2. In the Site Actions click Manage Site Features .
3. Find Repor t Ser ver File Sync in the list.
4. Click Activate .
NOTE
To deactivate the Report Server file sync feature, you can use the same procedure but click Deactivate .
See also
Activate the Report Server and Power View Integration Features in SharePoint
Install or Uninstall the Reporting Services Add-in for SharePoint
Install or Uninstall the Reporting Services Add-in for SharePoint
More questions? Try asking the Reporting Services forum
Add Reporting Services content types to a
SharePoint library
3/5/2021 • 5 minutes to read • Edit Online
APPLIES TO: ✔
️ SQL Server Reporting Services (2016) ✔
️ SharePoint ❌ Power BI Report Server
For content related to previous versions of SQL Server Reporting Services (SSRS), see SQL Server 2014
Reporting Services.
Reporting Services provides predefined SharePoint content types that are used to manage shared data source
(.rsds) files, report models (.smdl), and Report Builder report definition (.rdl) files. Adding a Repor t Builder
Repor t , Repor t Model , and Repor t Data Source content type to a library enables the New command so that
you can create new documents of that type.
NOTE
Reporting Services integration with SharePoint is no longer available after SQL Server 2016.
To add content types to a library, you must be a site administrator or have Full Control level of permission.
The Reporting Services content types and content type management will automatically be enabled in all
document libraries for existing site collections created from the following site template types:
Business Intelligence Center
Sites created after the Reporting Services integration will not have the Reporting Services content types
enabled.
TIP
If you have not previously configured content types for a library, first enable management of content types, then enable
the Reporting Services content types. See the procedures on enabling content type management in a single document
library.
5. Refresh the browser then click Activate for the Repor t Ser ver Integration Feature .
3. On the Librar y ribbon, click Librar y Settings . If you do not see Librar y Settings or the button is
disabled, you do not have permission to configure library settings, including content types.
5. In the Content Types section, select Yes to allow management of content types.
6. Click OK .
NOTE
If the Reporting Services content type group SQL Ser ver Repor ting Ser vices Content Types is not visible on
the Add Content Types page, one of the following conditions is true:
The Reporting Services add-in for SharePoint products has not been installed. For more
information, see Install or Uninstall the Reporting Services Add-in for SharePoint. The topic
includes information on installing the add-in and stepping through a files only installation of the
add-in to work around issues.
The add-in is installed but the site collection feature Repor t Ser ver Integration Feature is not
active. Verify the site collection feature in Site Settings .
All of the Reporting Services content types have already been added to the library. If all the
content types are part of a library, then the group is removed from the Add Content Types page.
If you delete one or more of the Reporting Services content types, then the group SQL Ser ver
Repor ting Ser vices Content Types will be visible on the Add Content Types page.
4. Click Ok .
See also
SharePoint Site and List Permission Reference for Report Server Items
Start Report Builder
Local mode vs. connected mode reports in the
Report Viewer
3/5/2021 • 3 minutes to read • Edit Online
APPLIES TO: ✔
️ SQL Server Reporting Services (2016) ✔
️ SharePoint ❌ Power BI Report Server
For content related to previous versions of SQL Server Reporting Services (SSRS), see SQL Server 2014
Reporting Services.
Reporting Services reports can be configure to run in either local mode or connected mode, which leverages a
Reporting Services report server. Instead, you can use the Report Viewer to directly render reports from
SharePoint when the data extension supports local mode reporting. This approach is called local mode. In
previous versions of Reporting Services, the SharePoint farm was required to be connected to a Reporting
Services report server configured in SharePoint mode so the Report Viewer control could render reports. This
approach is called remote mode or connected mode.
NOTE
Reporting Services integration with SharePoint is no longer available after SQL Server 2016.
In local mode there is no Reporting Services report server. You must install the Reporting Services add-in for
SharePoint products, but no Reporting Services report server is required. With Local mode, users can view
reports but will not have access to server side features such as subscriptions and data alerts.
- Enable-SPSessionStateService
Connected mode
For the latest information on using ADS extension with Reporting Services connected mode, see Access Services
Report in SharePoint Site shows error in data extension 'ADS'.
See also
Data sources supported by Reporting Services
More questions? Try asking the Reporting Services forum
Upload documents to a SharePoint library
(Reporting Services in SharePoint mode)
3/5/2021 • 2 minutes to read • Edit Online
APPLIES TO: ✔
️ SQL Server Reporting Services (2016) ✔
️ SharePoint ❌ Power BI Report Server
For content related to previous versions of SQL Server Reporting Services (SSRS), see SQL Server 2014
Reporting Services.
You can upload report definitions and report models to a SharePoint library. When uploading a report server
item, you must select a library or a folder within a library. You cannot upload a report server item to a list or
page.
NOTE
Reporting Services integration with SharePoint is no longer available after SQL Server 2016.
You cannot upload a data source (.rds) file. However, you can publish .rds files from a design tool, such as Report
Designer, to a SharePoint library. During publication, a new .rsds file is created from the original .rds file in the
solution. You can also create a new .rsds file in a SharePoint library and then set data source connection
properties in the uploaded reports and models to use the new connection.
NOTE
The report server must be configured for SharePoint mode, and the instance of the SharePoint product must have the
Reporting Services Add-in that provides program files for storing and accessing report server items from a SharePoint
site.
To upload a document to a library, you must have the "Add Items" permission at the site level. If you are using
default security settings, this permission is granted to members of the Owners group who have the Full Control
level of permission and to the Members group who have the Contribute level of permission.
See also
Publish a Report to a SharePoint Library
Publish a Shared Data Source to a SharePoint Library
Granting Permissions on Report Server Items on a SharePoint Site
More questions? Try asking the Reporting Services forum
Set processing options (Reporting Services in
SharePoint integrated mode)
3/5/2021 • 4 minutes to read • Edit Online
APPLIES TO: ✔
️ SQL Server Reporting Services (2016) ✔
️ SharePoint ❌ Power BI Report Server
For content related to previous versions of SQL Server Reporting Services (SSRS), see SQL Server 2014
Reporting Services.
You can set processing options on a Reporting Services report to determine when data processing occurs. You
can also set a time-out value for report processing, and options that determine whether report history is
enabled for the current report.
You can run a report as a report snapshot to prevent the report from being run at arbitrary times (for
example, during a scheduled backup). A report snapshot is usually created and subsequently refreshed
on a schedule, allowing you to time exactly when report and data processing will occur. If a report is
based on queries that take a long time to run, or on queries that use data from a data source that you
prefer no one access during certain hours, you should run the report as a snapshot.
A report server can cache a copy of a processed report and return that copy when a user opens the
report. Caching is a performance-enhancement technique. Caching can shorten the time required to
retrieve a report if the report is large or accessed frequently.
Report history is a collection of previously run copies of a report. You can use report history to maintain
a record of a report over time. Report history is not intended for reports that contain confidential or
personal data. For this reason, report history can include only those reports that query a data source
using a single set of credentials (either stored credentials or credentials used for unattended report
execution) that are available to all users who run a report.
Reporting Services integration with SharePoint uses the check out and check in content management
features of SharePoint to save updates to Reporting Services content types. This includes the creation of
report snapshots. Therefore if you have enabled versioning on a document library, you will see the report
version updated when a new report history snapshot is created. This is a side-effect of updating
snapshots. When a snapshot is updated it causes the LastExecution property of the report to change and
that will cause a change in the version of the report.
You can specify time-out values to set limits on how system resources are used.
NOTE
Reporting Services integration with SharePoint is no longer available after SQL Server 2016.
Next steps
Set Report Processing Properties
Caching Reports
Setting Time-out Values for Report and Shared Dataset Processing
More questions? Try asking the Reporting Services forum
High availability in SQL Server Reporting Services
5/21/2020 • 2 minutes to read • Edit Online
A Reporting Services report server is a stateless server that stores application data, content, properties, and
session information in two SQL Server relational databases. As such, the best way to ensure the availability of
Reporting Services functionality is to do the following:
Use the high availability features of the SQL Server Database Engine to maximize the uptime of the
report server databases. If you configure a Database Engine instance to run in a failover cluster, you can
select that instance when you create a report server database.
Use SQL Server Always On availability groups with the Reporting Services databases and for data
sources, as possible. For more information, see Reporting Services with Always On Availability Groups.
Configure multiple report servers to run in a scale-out deployment, where all the servers share a single
report server database. Deploying multiple report server instances, preferably on different servers, in a
scale-out deployment can help provide uninterrupted service in the event one of the report server
instances goes down.
A scale-out deployment provides a way to share a database. If one report server goes down, other servers in the
same deployment will continue to work.
Reporting Services is not cluster-aware. By itself, a scale-out deployment does not provide load balancing; it
does not detect the processing loads on a report server and route new processing requests to the least busy
server. It does not re-route processing requests that failed before completion. To get load balancing features, you
must configure load balancing for the Web servers that host the report servers, and then configure the report
servers in a scale-out deployment so that they share the same report server database.
The Report Server Web service and Windows service are tightly integrated and run together as a single report
server instance. You cannot configure availability for one service separately from the other.
More questions? Try asking the Reporting Services forum
Enable and disable RDL sandboxing for Reporting
Services in SharePoint integrated mode
5/21/2020 • 7 minutes to read • Edit Online
APPLIES TO: ✔
️ SQL Server Reporting Services (2016) ✔
️ SharePoint ❌ Power BI Report Server
For content related to previous versions of SQL Server Reporting Services (SSRS), see SQL Server 2014
Reporting Services.
The RDL (Report Definition Language) sandboxing feature lets you detect and restrict the usage of specific types
of resources, by individual tenants, in an environment of multiple tenants that use a single web farm of report
servers. An example of this is a hosting services scenario where you might maintain a single web farm of report
servers that are used by multiple tenants, and perhaps different companies. As a report server administrator,
you can enable this feature to help achieve the following objectives:
Restrict external resource sizes. External resources include images, .xslt files, and map data.
At report publish time, limit types and members that are used in expression text.
At report processing time, limit the length of the text and the size of the return value for expressions.
NOTE
Reporting Services integration with SharePoint is no longer available after SQL Server 2016.
Example configuration
The following example shows the settings and example values for the <RDLSandboxing > element in the
RSReportServer.Config file.
<RDLSandboxing>
<MaxExpressionLength>5000</MaxExpressionLength>
<MaxResourceSize>5000</MaxResourceSize>
<MaxStringResultLength>3000</MaxStringResultLength>
<MaxArrayResultLength>250</MaxArrayResultLength>
<Types>
<Allow Namespace="System.Drawing" AllowNew="True">Bitmap</Allow>
<Allow Namespace="TypeConverters.Custom" AllowNew="True">*</Allow>
</Types>
<Members>
<Deny>Format</Deny>
<Deny>StrDup</Deny>
</Members>
</RDLSandboxing>
Configuration settings
The following table provides information about configuration settings. Settings are presented in the order in
which they appear in the configuration file.
Default: 1000
Default: 100
Default: 1000
Default: 100
Namespace Attribute for Allow that is the namespace that contains one
or more types that apply to Value. This property is case-
insensitive.
Value Value for Allow that is the name of the type to allow in RDL
expressions. The value * indicates that all types in the
namespace are allowed. This property is case-insensitive.
Members For the list of types that are include in the <Types>
element, the list of member names that are not allowed in
RDL expressions.
NOTE
In the report definition, a computer cannot know the type of each instances of an expression reference. When you add a
member to the block list, you are denying all members of that name across all types in the allow list.
RDL expression results are verified at run time. RDL expressions are verified in the report definition when the
report is published. Monitor the report server trace log for violations. For more information, see Report Server
Service Trace Log.
Working with types
When you add a type to the allow list, you are controlling the following entry points to access RDL expressions:
Static members of a type.
The Visual Basic New method.
The <Classes> element in the report definition.
Members that you have added to the block list for a type in the allow list.
The allow list does not control the following entry points:
Report datasets. Fields in report datasets that are returned from queries might contain any valid RDL
type.
Report parameters. User-supplied parameter values might contain any valid RDL type.
Members of an enabled type that are not in the block list. By default, all members of all types in the allow
list are enabled. When you add a member name to the block list, you are denying all members with that
name across all types that are in the allow list.
To enable a member of one type but deny a member with the same name for a different type, you must do the
following:
Add a <Deny> element for the member name.
Create a proxy member with a different name on a class in a custom assembly for the member that you
want to enable.
Add that new class to the allow list.
To add Visual Basic .NET Framework functions to the allow list, add the corresponding types from the
Microsoft.VisualBasic namespace to the allow list.
To add Visual Basic .NET Framework type keywords to the allow list, add the corresponding CLR type to the
allow list. For example, to use the Visual Basic .NET Framework keyword Integer , add the following XML
fragment to the <RDLSandboxing> element:
<Allow Namespace="System">Int32</Allow>
To add a generic or a Visual Basic .NET Framework nullable type to the allow list, you must do the following:
Create a proxy type for the generic or Visual Basic .NET Framework nullable type.
Add the proxy type to the allow list.
Adding a type from a custom assembly to the allow list does not implicitly grant execute permission on the
assembly. You must specifically modify the code access security file and provide execute permission to your
assembly. For more information, see Code Access Security in Reporting Services.
Maintaining the <Deny> list of members
When you add a new type to the allow list, use the following list to determine when you might have to update
the block list of members:
When you update a custom assembly with a version that introduces new types.
When you add members to the types in the allow list.
When you update the .NET Framework on the report server.
When you upgrade the report server to a later version of Reporting Services.
When you update a report server to handle a later RDL schema, because new members might have been
added to RDL types.
Working with operators and new
By default, Visual Basic .NET Framework language operators, except for New , are always allowed. The New
operator is controlled by the AllowNew attribute on the <Allow> element. Other language operators, such as
the default collection accessor operator ! and Visual Basic .NET Framework cast macros such as CInt , are always
allowed.
Adding operators to a block list, including custom operators, is not supported. To exclude operators for a type,
you must do the following:
Create a proxy type that does not implement the operators that you want to exclude.
Add the proxy type to the allow list.
To create a new array in an RDL expression, create the array in a method on a class that you define, and add that
class to the allow list.
To create a new array in an RDL expression, you must do the following:
Define a new class and create the array in a method on that class.
Add the class to the allow list.
See also
RsReportServer.config configuration file
Report Server Service trace log
More questions? Try asking the Reporting Services forum
Report Viewer web part on a SharePoint site -
Reporting Services
3/5/2021 • 2 minutes to read • Edit Online
Next steps
To get started with the updated Report Viewer web part, see Deploy the Report Viewer web part on a SharePoint
site.
Deploy the SQL Server Reporting Services Report
Viewer web part on a SharePoint site
11/2/2020 • 4 minutes to read • Edit Online
Requirements
IMPORTANT
Starting with version "15.X.X.X" you can install the ReportViewerWebPart side by side with your existing Reporting
Services SharePoint integrated mode shared service applications. With this update of the .wsp solution we introduced new
files and the previous solution must be retracted and the new .wsp redeployed by using the Uninstall-
SPSolution and Install-SPSolution cmdlets, respectively.
The cmdlet returns the name of the solution, its solution ID, and Deployed=False. In the next step, you will
deploy the solution.
3. Run the Install-SPSolution cmdlet to deploy the farm solution.
SharePoint 2013
Activate feature
1. In your SharePoint site, select the gear icon in the upper left and select Site Settings .
By default, SharePoint web applications are accessed through port 80. This means that you can often
access a SharePoint site by entering https:// to open the root site collection.
2. In Site Collection Administration , select Site collection features .
3. Scroll down the page until you find the Repor t Viewer web par t Feature.
4. Select Activate .
5. Repeat for additional site collections by opening each site and clicking Site Actions.
Optionally, you can also use PowerShell to enable this feature on all sites using the Enable-SPFeature cmdlet.
Get-SPWebApplication "<web application url>" | Get-SPSite -Limit ALL |
ForEach-Object {
Write-Host "Enabling feature for $($_.URL)"
Enable-SPFeature -identity "ReportViewerWebPart" -URL $_.URL -ErrorAction Continue
}
By default, SharePoint web applications are accessed through port 80. This means that you can often
access a SharePoint site by entering https:// to open the root site collection.
2. Under Web Designer Galleries , select web par ts .
3. Select the edit icon next to Repor tViewerNativeMode.dwp . It may not be listed on the first page of
results.
4. Select Delete Item .
Deletion of the web part can be attempted by using PowerShell, but there is not a direct command for it. For a
script example, see How to delete web parts from the web part Gallery.
Supported languages
The following languages are supported with the web part:
English (en)
German (de)
Spanish (sp)
French (fr)
Italian (it)
Japanese ( ja)
Korean (ko)
Portuguese (pt)
Russian (ru)
Chinese (Simplified - zh-HANS and zh-CHS)
Chinese (Traditional - zh-HANT and zh-CHT)
Troubleshoot
Error when uninstalling SSRS if you have SharePoint integrated mode configured:
Install-SPRSService : [A]
Microsoft.ReportingServices.SharePoint.SharedService.Service.ReportingWebService cannot be cast to
[B]Microsoft.ReportingServices.SharePoint.SharedService.Service.ReportingWebService. Type A
originates from 'Microsoft.ReportingServices.SharePoint.SharedService,Version=14.0.0.0,
Culture=neutral, PublicKeyToken=89845dcd8080cc91' in the context 'Default' at location
'C:\Windows\assembly\GAC_MSIL\Microsoft.Reporting Services.SharePoint.SharedService.dll'. Type B
originates from 'Microsoft.ReportingServices.SharePoint.SharedService,Version=12.0.0.0,
Culture=neutral, PublicKeyToken=89845dcd8080cc91' in the context 'Default' at location
'C:\Windows\assembly\GAC_MSIL\Microsoft.Reporting Services.SharePoint.SharedService.dll'.
Solution:
1. Remove the Report Viewer web part
2. Uninstall SSRS
3. Reinstall the Report Viewer web part
Error when trying to upgrade SharePoint if you have SharePoint integrated mode configured:
Could not load file or assembly 'Microsoft.ReportingServices.Alerting.ServiceContract, Version=14.0.0.0,
Culture=neutral, PublicKeyToken=89845dcd8080cc91' or one of its dependencies. The system cannot
find the file specified. 00000000-0000-0000-0000-000000000000
Solution:
1. Remove the Report Viewer web part
2. Uninstall SSRS
3. Reinstall the Report Viewer web part
Next steps
After the Report Viewer web part has been deployed and activated, you can add the web part to a SharePoint
page. For more information, see Add Report Viewer web part to a SharePoint page.
More questions? Try asking the Reporting Services forum
Add SQL Server Reporting Services Report Viewer
web part to a SharePoint page
3/5/2021 • 2 minutes to read • Edit Online
Prerequisites
For reports to load successfully, the Claims to Windows Token Service (C2WTS) needs to be configured
for Kerberos constrained delegation. For more information on how to configure C2WTS, see Claims to
Windows Token Service (C2WTS) and Reporting Services.
The Report Viewer web part must be deployed to your SharePoint farm. For information on how to
deploy the Report Viewer web part solution project, see Deploy the Report Viewer web part on a
SharePoint site.
To add a web part to a web page, you must have the Add and Customize Pages permission at the site
level. If you are using default security settings, this permission is granted to members of the Owners
group who have the Full Control level of permission.
4. Under Categories , select SQL Ser ver Repor ting Ser vices (Native mode) . Under Par ts , select
Repor t Viewer . Then select Add .
You may initially see an error. The error is because the default report server URL is set to https://localhost
and may not be available at that location.
2. Enter the Repor t Ser ver URL for the report server hosting your report. The URL should look similar to
https://myrsserver/reportserver.
3. Enter the path and name of the report you want to display within the web part. It will look similar to
/AdventureWorks Sample Reports/Company Sales. In this example, the report Company Sales is in a
folder called AdventureWorks Sample Reports.
4. If your report requires parameters, after you have supplied the report server URL and the name of the
report, select Load Parameters within the Parameters section.
5. Select Ok to save your changes to the web part configuration.
6. Select Save , within the Office ribbon, to save the changes to the SharePoint page.
NOTE
Reporting Services integration with SharePoint is no longer available after SQL Server 2016.
The Filter web part is used to send values to one or more parameters on a report. To use a Filter web part, the
report must have parameters defined for it that are compatible with the values, data type, and format sent by
the web part.
The Documents web part is associated with the Documents library of the Home site. To view, add, or remove
items from the Documents library, click View All Site Content . In Libraries, click Documents . You can use the
New , Upload , and Actions menu to manage the items in the Documents library.
See also
Add the Report Viewer web part to a web page
Report Viewer web part on a SharePoint Site
Customize the Report Viewer web part
More questions? Try asking the Reporting Services forum
Customize the Report Viewer web part
11/2/2020 • 9 minutes to read • Edit Online
NOTE
Although they have identical names, the Report Viewer web part that is installed through the Reporting Services Add-in is
different from the Report Viewer web part that is included in the RSWebParts.cab file. The instructions in this topic are
specifically for the Report Viewer web part that is installed through the Reporting Services Add-in.
You can customize the Report Viewer web part in the following ways:
Change the appearance of the web part by setting properties.
Choose which interactive reporting features are available on the report toolbar.
Specify which view areas are available. The Report Viewer web part has a report view area, a Parameters
area, and a Credentials area.
You cannot extend the Report Viewer web part to support different file types, and you cannot replace the report
toolbar with a custom toolbar or add new functionality to the existing toolbar. If you require customization of the
standard features, you should create a custom web part.
Hyperlink Target Standard HTML that specifies the target frame for displaying
linked content within the current document. For reports that
include hyperlinks to external Web sites, you can specify
whether a target document replaces the existing report
within the current window, or opens in a new browser
window. Valid values include _Top , _Blank , and _Self . _Top
uses the current window, _Blank loads the document in a
new browser window, and _Self opens the document within
the current frame. Although _Parent is a valid value for the
Target attribute in HTML, do not use it for a Report Viewer
web part that is embedded in a page.
Auto-Generate web part Title A generated title that includes the name of the Report
Viewer web part plus the name of the report, separated by a
dash. If the report does not have a title, the report file name
is used. The title is visible when you add a web part to a
page. If this check box is selected, the title will be generated
each time the page is refreshed.
Auto-Generate web part Title Detail Link A generated hyperlink that appears above the web part. You
can click the link to open the report in a new page, in full-
page mode.
Show report builder menu item Shows or hides the Actions menu option to open Report
Builder.
Show subscription menu item Shows or hides the Actions menu option to create a
subscription for the report.
Show print menu item Shows or hides the Actions menu option to print the
report.
P RO P ERT Y DESC RIP T IO N
Show export menu item Shows or hides the Actions menu option to export the
report.
Show refresh button Shows or hides the refresh button on the toolbar.
Show page navigation controls Shows or hides the report navigation buttons on the toolbar.
This option changes the visibility of all the navigation
controls.
Show back button Shows or hides the back button on the toolbar.
Show find controls Shows or hides the find controls on the toolbar. The find
controls allow a user to search for text in the rendered
report. This option changes the visibility of all the find
controls.
Show zoom control Shows or hides the zoom control on the toolbar.
Show ATOM feed button Shows or hides the ATOM feed button on the toolbar.
ToolBar location Determines the location of the toolbar within the report
viewer. Valid values include Top and Bottom .
Parameters Area Width You can choose the measurement and value. The default is
200 pixels. The only requirement for this property is that it is
greater than zero.
Document Map A report navigation control that is defined in the report and
used to provide one-click access to specific sections of a
report. It is available in HTML reports. The document map is
displayed in a collapsible area next to the report viewing
area. Valid values include Displayed , Collapsed , and
Hidden . If a document map is defined for a report, the area
is expanded by default unless marked as hidden or collapsed
in the web part properties. If the document map is
collapsed, you can click the arrow to expand it.
Document Map Area Width You can choose the measurement and value. The default is
200 pixels. The only requirement for this property is that it is
greater than zero.
P RO P ERT Y DESC RIP T IO N
Load Parameters Retrieve parameter properties for the report. Not all reports
have parameters. If the report does not have parameters, no
values will be returned. If you are setting properties for a
report that you just uploaded, you might get an error
indicating that the data source connection has been deleted.
If this occurs, reset the connection and then finish setting
parameter properties after the connection is specified. For
more information about how to set the connection, see
Create and Manage Shared Data Sources (Reporting Services
in SharePoint Integrated Mode).
After you load parameter properties, you can set them the
same way you would in the parameter property pages of the
report. For more information about how to set parameters,
see Set Parameters on a Published Report (Reporting
Services in SharePoint Integrated Mode).
See also
Report Viewer web part on a SharePoint Site
Add the Report Viewer web part to a web page
More questions? Try asking the Reporting Services forum
SharePoint site settings for the Report Viewer web
part - Reporting Services
3/5/2021 • 2 minutes to read • Edit Online
2. Clicking Repor t Viewer Web Par t Settings in the Repor ting Ser vices site settings group.
NOTE
The site settings can also be reached by navigating directly to
<site>/_layouts/15/ReportViewerWebPart/ReportViewerWebPartSettings.aspx
Collect usage data Enables error and usage information to be sent to Microsoft
to help improve our products. For the Microsoft error
reporting data collection policy, see the Microsoft SQL
Server Privacy Statement.
Enable Accessibility Metadata for Reports Sets the AccessibleTablix device info for rendered
reports.
Pin Reporting Services paginated report items to
dashboards in Power BI
11/2/2020 • 7 minutes to read • Edit Online
APPLIES TO: ✔
️ SQL Server 2016 Reporting Services and later ✔
️ Power BI Report Server
You can pin an on-premises Reporting Services paginated report item to a dashboard in the Power BI service, as
a new tile. To pin, your administrator needs to first integrate your report server with Azure Active Directory and
Power BI.
Requirements to Pin
The report server is configured for Power BI integration. For more information, see Power BI Report
Server Integration (Configuration Manager). If the report server has not been configured, you won't see
the Pin to Power BI Dashboard button on the report viewer toolbar.
You pin from the Reporting Services report viewer in the web portal, for example,
https://myserver/Reports . You can't pin from Report Builder, from report designer in SQL Server Data
Tools (SSDT), or from a report server URL. For example, https://myserver/ReportServer .
You need to configure your browser to allow pop-ups from your report server site.
You need to configure reports for stored credentials, if you want the pinned item to refresh. When you
pin an item, a Reporting Services subscription is automatically created to manage the data refresh of the
item to the dashboard. If the report does not use stored credentials, when the subscription runs you'll see
a message similar to this one on the My subscriptions page.
"Power BI Delivery error: dashboard: IT Spend Analysis Sample, visual: Chart2, error: The current action
cannot be completed. The user data source credentials do not meet the requirements to run this report or
shared dataset. Either the user data source credential."
See the section "Configure stored credentials for a report-specific data source (Native mode)" in Store
Credentials in a Reporting Services Data Source
2. Navigate to the web portal folder that contains your report, and then view the report.
3. While viewing the report, select the Pin to Power BI button the toolbar. You will be prompted to sign in,
if you are not already signed in. If the Power BI button is not visible, the report server has not been
integrated with Power BI. For more information, see Power BI Report Server Integration (Configuration
Manager).
4. Select the report item you want to pin to Power BI. You can only pin one item at a time. The report viewer
presents a shaded view of your report and the report items you can pin are highlighted while the items
that you can't pin, will be shaded dark.
(1) select the group that contains the dashboard you want to pin to, (2) select the dashboard you want to
pin the item too and (3) select how frequently you want the tile updated in the dashboard. The
refresh is managed by Reporting Services subscriptions and after the item is pinned, you can edit the
subscription and configure a different refresh schedule.
5. Select Pin
In the Pin Successful dialog, you can select the link See it in Power BI to navigate to the dashboard
and see the item you just pinned.
6. Select Close to return the report to the normal view.
In the Dashboard
After your report item is pinned in the dashboard, the tile looks like other dashboard tiles and there is no visible
indication the tile came from Reporting Services. The following list summarizes how tile properties are
populated from the report item.
From the Power BI dashboard the pinned report item behaves like other tiles:
(1) You can pin the tile to other dashboards.
(2) In the Tile Details you'll notice the Reporting Services report title is used for the default title of the tile.
(3) The tile subtitle is based on the date and time the tile was pinned or the data was last refreshed from
Reporting Services. The refresh schedule is managed by the Reporting Services subscription that was
automatically created when you pinned the report item.
(5) If you select the tile itself, Power BI uses the (4) custom link to navigate to the web portal page of the
registered report server. the link was set when the item was pinned from Reporting Services. If you do not have
internet connectivity to the report server, you will see an error in the browser.
Troubleshoot Issues
No Power BI button on the repor t viewer toolbar : This message indicates the report server has not
been integrated with Power BI. For more information, see Power BI Report Server Integration
(Configuration Manager).
Cannot Pin : When you attempt to pin an item, you see the following error message: See the section
Items You Can Pin.
"Cannot Pin: There are no report items on this page that you can pin to Power BI."
Pinned items show stale data in a Power BI dashboard and it did update for a period of time. The user
credentials token has expired and you need to sign in again. The user credential registration with Azure
and Power BI is good for 90 days. In the web portal, click My Settings . For more information, see My
Settings for Power BI Integration (web portal).
Pinned items show stale data in a Power BI dashboard and it has not refreshed even once. The issue is
the report is not configured to use stored credentials. A report must use stored credentials because the
action of pinning a report item creates a Reporting Services subscription to manage the refresh schedule
of the tiles. Reporting Services subscriptions require stored credentials. If you review the My
Subscriptions page, you see an error message similar to this one:
"Power BI Delivery error: dashboard: SSRS items, visual: Image3, error: The current action can't be
completed. The user data source credentials do not meet the requirements to run this report or shared
dataset. Either the user data source credentials are not stored in the report server database, or the user
data source is configured not to require credentials but the unattended execution account is not specified.
(rsInvalidDataSourceCredentialSetting)"
Expired Power BI credentials: You attempt to pin an item and see the following error message. In the
web portal, click My Settings and on the My Settings page, click Sign in . See My Settings for Power BI
Integration (web portal) for more information.
"Cannot Pin: Unexpected Server Error: Missing, invalid or expired Power BI credentials."
Cannot Pin : If you attempt to pin an item to a dashboard that is in a read-only state, you will see an
error message similar to this one:
"Server Error: The item 'Dashboard deleted 015cf022-8e2f-462e-88e5-75ab0a04c4d0' can't be found.
(rsItemNotFound)"
Tiles in Power BI apps show stale data: If you pin a Reporting Services report item to a dashboard,
and then distribute that dashboard in an app, the pinned report item in that dashboard won’t update.
Subscription Management
In addition to the subscription-related issues described in the troubleshooting section, the following information
will help you maintain Power BI related subscriptions.
Item name changed: If a pinned report item is renamed or deleted, the Power BI tile will no longer
update and you will see an error message similar to the following. If you rename the item back the
original name, the subscription will start working again and the tile will be refreshed on the subscriptions
schedule.
"Power BI Delivery error: dashboard: SSRS items, visual: Image1, error: Error: Report item 'Image1'
cannot be found."
You could also edit the subscription properties and change the Repor t Visual Name to the appropriate
report item name.
Delete a tile . If you delete a tile in Power BI, the associated subscription is not deleted in Reporting
Services and on the My subscriptions page, you see an error similar to the following. You can delete the
subscription.
"Power BI Delivery error: dashboard: SSRS items, visual: Image3, error: The item 'Tile deleted af7131d9-
5eaf-480f-ba45-943a07d19c9f' cannot be found."
Video
https://www.youtube.com/embed/QhPQObqmMPc
See Also
Power BI Report Server Integration (Configuration Manager)
My Settings for Power BI Integration (web portal)
Dashboards in Power BI
Report Builder is a tool for authoring paginated reports, for business users who prefer to work in a stand-alone
environment instead of using Report Designer in Visual Studio / SSDT. When you design a paginated report,
you're creating a report definition that specifies what data to retrieve, where to get it, and how to display it.
When you run the report, the report processor takes the report definition you have specified, retrieves the data,
and combines it with the report layout to generate the report. You can preview your report in Report Builder.
Then publish your report to a Reporting Services report server in native mode or in SharePoint integrated mode
(2016 and earlier).
You can also publish a paginated report to the Power BI service. Read more about paginated reports in Power BI
Premium (Preview).
This paginated report features a matrix with row and column groups, sparklines, indicators, and a summary pie
chart in the corner cell, accompanied by a map with two sets of geographic data represented by color and by
circle size.
NOTE
Published reports are managed on a report server or a report server in SharePoint integrated mode by a report server
administrator. Report server administrators can define security, set properties, and schedule operations such as report
history and e-mail report delivery. They can create shared schedules and shared data sources and make them available
for general use. Administrators also manage all of the report server folders. The ability to perform management tasks
depends on user permissions.
See Also
Start Report Builder
Install Report Builder
What's New in SQL Server Reporting Services and Report Builder
Describes the new features in this version of Reporting Services and Report Builder.
Tutorial: Creating a Quick Chart Report Offline
Introduces Report Builder and the wizards available to help you create reports. The tutorial provides a set of
data for you to work with so you do not need to connect to a data source to get started.
Planning a Report (Report Builder)
Provides information on what you should consider before you start to build your report.
Reporting Services Concepts (SSRS)
Defines key concepts used in throughout Report Builder documentation.
Report Design View (Report Builder)
Explains the different panes and regions of report design view.
Shared Dataset Design View (Report Builder)
Explains the different panes and regions of shared dataset design view.
Keyboard Shortcuts (Report Builder)
Outlines the shortcut keys available for navigating and designing reports in Report Builder.
Start Report Builder
11/2/2020 • 2 minutes to read • Edit Online
Report Builder is a stand-alone report authoring environment. With it, you can create paginated reports and
publish them to Reporting Services installed in native or SharePoint integrated mode.
NOTE
Reporting Services integration with SharePoint is no longer available after SQL Server 2016.
The first time you start Report Builder from the Reporting Services web portal or Reporting Services in
SharePoint integrated mode, you're prompted to download it from the Microsoft Download Center.
You or an administrator can also install Report Builder on your computer from the Microsoft Download Center.
See "Install Report Builder with Systems Manager Server" in Install Report Builder for more details.
Report Builder isn't installed when you install SQL Server Reporting Services; you need to download and install
it separately.
When you start Report Builder from the web portal or SharePoint site, if an earlier version of Report Builder
opens, contact your administrator, who can update the version on the web portal or SharePoint site.
Next steps
Report Builder in SQL Server
Set default options for Report Builder
More questions? Try asking the Reporting Services forum
Set default options for Report Builder
11/2/2020 • 2 minutes to read • Edit Online
In Report Builder, you can set a number of useful defaults to make report authoring easier and faster. For
example, if you can set or change the default report server, Report Builder saves your reports to the same report
server automatically, unless you specify otherwise.
In Report Builder, click File > Options .
UI element list
Use this repor t ser ver or SharePoint site by default
Your administrator may have configured this. The value can be a well-formed URL starting with http:// or
https://. This setting determines which data source connections appear by default in the Table/Matrix and Chart
wizards. In addition, your reports will be processed on this server and you can reference resources from this
server.
If you select a different report server, you may need to restart Report Builder in order for this change to take
affect.
Publish repor t par ts to this folder by default
Report Builder will save report parts that you publish to this folder. If the folder does not exist yet and you have
permissions to create folders on the report server, Report Builder will create this folder.
You do not need to restart Report Builder for this setting to take effect.
Show this number of recent sites and ser vers
Specify the number of recent sites and connections to show in the Open Repor t and Save As Repor t dialog
boxes.
Show this number of recent shared datasets and data source connections
Specify the number of recent shared datasets and data source connections to show in the Dataset Proper ties
dialog box and the Choose a connection to a data source page of the Data Regions Wizard.
Show this number of recent documents
Specify the number of recent documents to show when you click the Report Builder button.
Clear all recent item lists
Clear the current lists of recent sites and servers, shared datasets, shared data source connections, and
documents.
See Also
Start Report Builder
Configure Report Builder Access
3/23/2021 • 4 minutes to read • Edit Online
APPLIES TO: ✔
️ SQL Server 2016 Reporting Services and later ✔
️ Power BI Report Server
Microsoft Report Builder is an ad hoc reporting tool that can be used with a SQL Server Reporting Services
report server configured for either native mode or SharePoint integration mode.
Access to Report Builder depends on the following factors:
Role assignments or permissions that make Report Builder available to individual users or groups.
Authentication settings that determine whether user credentials can be passed through to the report
server.
Prerequisites
The client computer must have Microsoft .NET Framework 4.6.1 or higher installed.
See also
Authentication with the Report Server
Browser Support for Reporting Services and Power View
Start Report Builder
The web portal of a report server (SSRS Native Mode)
Connect to a Report Server in Management Studio
Report Server System Properties
Report Design View (Report Builder)
3/25/2020 • 9 minutes to read • Edit Online
The Report Builder window is designed to help you easily organize your report resources and quickly build the
paginated reports you need. The design surface is at the center of the window, with the ribbon and the panes
around it. The design surface is where you add and organize your report items. This article explains the panes
you use to add, select, and organize your report resources, and change report item properties.
1. Ribbon
2. Parameters pane
3. The Report Part Gallery
4. Properties pane
5. Report design surface
6. The Report Data pane
7. The Grouping Pane
8. Current report status bar
Parameters pane
With report parameters, you can control report data, connect related reports together, and vary report
presentation. The Parameters pane provides a flexible layout for the report parameters.
Read more about Report Parameters (Report Builder and Report Designer).
The Report Design Surface
The Report Builder report design surface is the main work area for designing your reports. To place report items
such as data regions, subreports, text boxes, images, rectangles, and lines in your report, you add them from the
ribbon or the Report Part Gallery to the design surface. There, you can add groups, expressions, parameters,
filters, actions, visibility, and formatting to your report items.
You can also change the following:
The report body properties, such as border and fill color, by right-clicking the white area of the design
surface, outside any report items, and clicking Body Proper ties .
The header and footer properties, such as border and fill color, by right-clicking the white area of the
design surface in the header or footer area, outside any report items, and clicking Header Proper ties or
Footer Proper ties .
The properties of the report itself, such as page setup, by right-clicking the gray area around the design
surface and clicking Repor t Proper ties .
The properties of report items by right-clicking them and clicking Proper ties .
For information about using the keyboard to manipulate items on the design surface, see Keyboard Shortcuts
(Report Builder)
Design Surface Size and Print Area
The design surface size might be different from the page size print area you specify to print the report.
Changing the size of the design surface will not change the print area of your report. No matter what size you
set for the print area of your report, the full design area size does not change. For more information, see
Rendering Behaviors (Report Builder and SSRS).
TIP
To display the ruler, on the View tab, select the Ruler check box.
TIP
If you drag a field from the Report Data pane directly to the report design surface instead of placing it in a data region
such as a table or chart, when you run the report, you will see only the first value from the data in that field.
You can also drag built-in fields from the Report Data pane to the report design surface. When rendered, these
fields provide information about the report, such as the report name, the total number of pages in the report,
and the current page number.
Some things are automatically added to the Report Data pane when you add something to the report design
surface. For example, if you add a report part from the Report Part Gallery, and the report part is a data region,
the dataset is automatically added to the Report Data pane. For more information, see Report Parts and Datasets
in Report Builder. Also, if you embed an image in your report, it will be added to the Images folder in the Report
Data pane.
NOTE
You can use the New button to add a new item to the Report Data pane. You can add multiple datasets from the same
data source or from other data sources to the report. You can add shared datasets from the report server. To add a new
dataset from the same data source, right-click a data source, and then click Add Dataset .
For more about items in the Report Data pane, see the following topics:
Built-in Globals and Users References (Report Builder and SSRS)
Report Parameters (Report Builder and Report Designer)
Images (Report Builder and SSRS)
Create data connection strings - Report Builder & SSRS
Report Embedded Datasets and Shared Datasets (Report Builder and SSRS)
Dataset Fields Collection (Report Builder and SSRS)
NOTE
To view the Report Part Gallery, you need to be connected to a server.
You can view the search results either as thumbnails or as a list, and sort the search results by name, created and
modified dates, and creator. For more information, see Report Parts (Report Builder and SSRS)..
You can create groups by dragging fields from the Report Data pane and dropping them on the design surface
or in the Grouping pane. In the Grouping pane, you can add parent, adjacent, and child groups, change group
properties, and delete groups.
The Grouping pane is displayed by default but you can close it by clearing the Grouping pane check box on the
View tab. The Grouping pane is not available for the Chart or Gauge data regions.
For more information, see Grouping Pane (Report Builder) and Understanding Groups (Report Builder and
SSRS).
See Also
Finding, Viewing, and Managing Reports (Report Builder and SSRS )
Report Builder in SQL Server
Previewing Reports in Report Builder
3/26/2020 • 5 minutes to read • Edit Online
While you create a Reporting Services paginated report, it is helpful to preview the report often to verify that
the report displays what you want. To preview your report, click Run . The report renders in preview mode.
Report Builder improves the preview experience by using edit sessions when connected to a report server. The
edit session creates a data cache and makes the datasets in the cache available for repeated report previews. An
edit session is not a feature that you interact with directly, but understanding when the cached dataset is
refreshed will help you improve performance when you preview a report and understand why the report
renders faster or slower.
Other benefits of edit sessions are the abilities to edit reports that use embedded data sources or reference
items such as images or subreports that are stored on the report server.
NOTE
There are some differences between previewing in Report Builder and viewing in a browser. For example, a calendar
control, which is added to a report when you specify a Date/Time type parameter, is different in Report Builder and in a
browser.
NOTE
If the dataset has a large number of fields that you do not expect to use, you should consider updating the
dataset to omit those fields. Although this creates a new edit session and the first preview of the report is slower,
there smaller cached dataset is overall beneficial to the performance of the report server.
Add, change, or delete a data source. This includes changing the name or properties of the data source,
the data extension of the data source, or the properties of the connection to the data source.
Change the shared data source that the report uses to a different data source.
Change the language of the report.
Change the assemblies or custom code that the report uses.
Add, change, or delete the query parameters in the report or parameter values.
Changes to the report layout and data formatting do not affect the cached dataset. You can do the following
actions without refreshing the cached dataset:
Add or remove data regions such as tables, matrices or charts.
Add or delete columns from the report. All the fields in the dataset are available to use in the report.
Adding or removing fields in the report has no effect on the dataset.
Change the order of fields in tables and matrices.
Add, change, or delete row and column groups.
Add, change, or delete formatting of data values in fields.
Add, change, or delete images, lines, or text boxes.
Change page breaks.
The edit session is created the first time that you preview a report. By default, an edit session lasts 7200 seconds
(2 hours). The session is reset to two hours every time you run the report. When the edit session expires, the
data cache is deleted. If the edit session expires, one is automatically created again the next time that you
preview the report. The expiration time for edit sessions is configurable. If you find that two hours is too long or
too short, contact the administrator of the report server.
By default, the data cache can hold up to five datasets. If you use many different combinations of parameter
values, the report might need more data. This requires the cache be refreshed and the report renders more
slowly the next time that you preview it. The number of entries in the cache is configurable by the administrator
of the report server.
See Also
Report Datasets (SSRS)
Formatting Report Items (Report Builder and SSRS)
Tables, Matrices, and Lists (Report Builder and SSRS)
Charts (Report Builder and SSRS)
Tables, Matrices, and Lists (Report Builder and SSRS)
Saving Reports (Report Builder)
Shared Dataset Design View (Report Builder)
3/25/2020 • 4 minutes to read • Edit Online
In a report, a dataset represents report data that is returned from running a query on an external data source.
Shared datasets are published on a report server and can be used by multiple reports. You can create datasets
to share with others. In the Shared Dataset Design window, you select a shared data source, specify properties
for the shared dataset, and create a query in the query designer.
For more information about working with data in a report, see Report Datasets (SSRS).
The Ribbon
The Ribbon helps you quickly find the commands that you need to complete a task. Commands are organized
into the following logical groups: Connection, Dataset, and Query Designer.
Connection
Use the Select button in the Connection group to select a shared data source in your report, or browse to a
shared data source on the report server.
NOTE
A shared dataset must be based on a shared data source. If the data source you need isn't available, you need to create
one on the report server. For more information, see Create, Modify, and Delete Shared Data Sources (SSRS) .
For more information, see Create data connection strings - Report Builder & SSRS.
Dataset
Use the Set Options button to set shared dataset properties. These include the following:
Fields. You can add a field or edit a field in the field collection.
Data options. You can set options that affect match criteria and sort order, such as case sensitivity and
collation.
Filters. You can define filters that limit the data in a report after it is retrieved from the data connection.
Parameters. You can add a parameter or edit parameter options. For example, you can specify a default
value for each parameter so that you can create a cache refresh plan for this shared dataset on the report
server.
The values that you set become part of the shared dataset definition on the report server. When a report author
includes this shared dataset in a report, the options that you specify apply to that dataset instance.
After a shared dataset is added to a report, a report author can override the following options: collation, case
sensitivity, accent sensitivity, kanatype sensitivity, width sensitivity, subtotals. They can also create additional
dataset filters to limit the data in the report.
For more information, see Report Embedded Datasets and Shared Datasets (Report Builder and SSRS).
For more information about cache refresh plans, see Cache Shared Datasets (SSRS).
Query Designer
Use the query designer toolbar to help build a query that specifies which data to retrieve from the data
connection. The toolbar that you see depends on the query designer that is associated with the data source type
from the data connection.
For more information, see the topic that corresponds to the data source type in Add Data from External Data
Sources (SSRS).
See Also
Report Datasets (SSRS)
Filter, Group, and Sort Data (Report Builder and SSRS)
Report Parameters (Report Builder and Report Designer)
Keyboard shortcuts for accessibility in Report
Builder
5/10/2021 • 3 minutes to read • Edit Online
APPLIES TO: ✔
️ Microsoft Report Builder (SSRS) ✔
️ Power BI Report Builder
When you create and edit paginated reports in Microsoft Report Builder for Reporting Services and in Power BI
Report Builder, you can use keyboard shortcuts for accessibility and navigation. You can select from several
standard keyboard mapping schemes.
You can navigate through the Report Builder window, or select and change options in dialog boxes, without
using the mouse.
Report Builder provides many right-click menus for quick access to frequently used dialog boxes and
commands. Right-click menus are dynamic and may contain different options, depending on the user
configuration and the current objects. As you explore Report Builder, make sure you right-click objects to explore
the menu options and learn about these shortcuts.
NOTE
Keyboard shortcuts can contain the SHIFT, ALT, and/or CTRL keys in combination with letters, or use function keys. For
example, F1 opens the Report Builder Help file.
Move between areas of Report Builder, such as the Ribbon, F6, SHIFT+F6
design surface, Grouping pane, Properties pane, and the
Data pane.
Activate the division lines between areas such as the line TAB
between the Grouping pane and the design surface.
DESC RIP T IO N K EY C O M B IN AT IO N
Move the division lines between areas. Any arrow key. Use the UP and DOWN arrows to move the
line between the Grouping pane and design surface. Use the
RIGHT and LEFT arrows to move the line between the Report
Data pane and the design surface.
Move a selected item on the design surface, in small CTRL with an arrow key
increments.
Resize a selected item on the design surface. SHIFT with an arrow key
Resize a selected item on the design surface, in small CTRL + SHIFT with an arrow key
increments.
Display the font family list, the font size list, or the border ALT+DOWN ARROW
point size list, on the Home tab.
DESC RIP T IO N K EY C O M B IN AT IO N
Display Help. F1
Pan map view area when a map viewport is selected. CTRL with an arrow key
Zoom in on map view area when a map viewport is selected. CTRL +Plus sign (+)
Zoom out on map view area when a map viewport is CTRL +Minus sign (-)
selected.
Accelerator mode for pan and zoom in map view area when CTRL +Left click
a map viewport is selected.
See also
Report Builder in SQL Server
Power BI Report Builder
Report Design View (Report Builder)
Saving Reports (Report Builder)
3/25/2020 • 3 minutes to read • Edit Online
In Report Builder you can save a paginated report to a Reporting Services report server, SharePoint library, file
share where you have write permission, or your computer.
When you save a report, what you are really saving is the report definition, which describes the report layout.
You are not saving the data. Every time you run the report, the report data is refreshed and is likely to be
different than the previous time you ran the report.
If you want to save the report to a different format or save the report definition with the data, use one of the
following Reporting Services features:
Export a rendered report to a different file format such as comma separated files (CSV) or Excel
workbooks and save the report in that format. You can also generate data feeds from reports and save
the report data.
Create report subscriptions to deliver and save reports to a file share.
Use report history to save versions of rendered reports as historical copies.
To learn more about viewing and managing reports directly on the report server, see Finding, Viewing, and
Managing Reports (Report Builder and SSRS ) and Reporting Services Report Server (Native Mode).
How-To Topics
Save Reports to a Report Server (Report Builder)
Save a Report to a SharePoint Library (Report Builder)
See Also
Reports, Report Parts, and Report Definitions (Report Builder and SSRS)
Install Report Builder
Finding, Viewing, and Managing Reports (Report Builder and SSRS )
Export Reports (Report Builder and SSRS)
Print Reports (Report Builder and SSRS)
Save Reports to a Report Server (Report Builder)
11/2/2020 • 2 minutes to read • Edit Online
In Report Builder, you can save a report definition to a report server (also known as publishing a report). When
the report is saved to a report server, other users can view the report. Each time you run the published report,
you will retrieve the most current data. To save a static copy of a rendered report, export the report to a different
file format and save it or use the report history feature to save versions of rendered reports.
NOTE
The location of the saved report definition does not affect whether the report is processed on the server or processed
locally when you preview the report.
NOTE
If you are resaving a report, it is automatically resaved to its previous location. Use the Save As option to change
location.
2. Optionally, click Recent Sites and Ser vers to show a list of recently used report servers and SharePoint
sites.
3. Browse to the report server location where you want to save the report.
4. In Name , type the name of the report.
5. In Items of type , select the type of report item you are saving. The type for reports is Reports(*.rdl).
To save a report as a different name
1. From the Report Builder button, click Save As . The Save As <Report Item> dialog box opens.
2. Browse to the report server location or to the file share where you want to save the report.
3. In Name , type the name of the report.
4. In Items of type , select the type of report item you are saving. The type for reports is Reports(*.rdl).
See Also
Finding, Viewing, and Managing Reports (Report Builder and SSRS )
Export Reports (Report Builder and SSRS)
Saving Reports (Report Builder)
Export a Report as Another File Type (Report Builder and SSRS)
Save a Report to a SharePoint Library (Report
Builder)
3/25/2020 • 2 minutes to read • Edit Online
To save a report to a report server configured for SharePoint integration, you must browse to the SharePoint
server and establish a connection to the report server. In the report definition, all references to items related to
the report must use values that are specific to a SharePoint report server. Related items include subreports,
drillthrough reports, and resources such as Web-based images. For more information, see Specifying Paths to
External Items (Report Builder and SSRS).
You must have Member or Owner permission on the SharePoint site to set the properties on the project.
To save a report to a SharePoint site
1. From the Report Builder button, click Save . The Save As <Report Item> dialog box opens.
NOTE
If you are resaving a report, it is automatically resaved to its previous location. Use the Save As option to change
location.
2. Optionally, click Recent Sites and Ser vers to show a list of recently used report servers and SharePoint
sites.
3. Browse to the SharePoint site, and then click Save .
NOTE
If you leave a changed report for more than 10 hours without saving it, it is disconnected from the server without
being saved. If that happens, in the lower-right status bar, click Disconnect , and then click Connect . The most
recent server will be in the list of available servers. Select it and the report will reconnect.
See Also
Finding, Viewing, and Managing Reports (Report Builder and SSRS )
Finding, Viewing, and Managing Reports (Report
Builder and SSRS )
12/17/2019 • 10 minutes to read • Edit Online
In Report Builder, you can browse folders on a report server or SharePoint site to find paginated reports, shared
data sources, models, and other related report items and browse your computer to find local reports. To make it
easier to find reports, Report Builder maintains a list of recently used servers and sites and provides direct
access to the Desktop, My Documents and My Computer folders in the file system of your computer.
In Report Designer, you can also browse your computer to find local paginated reports. After you deploy reports
to a report server or SharePoint site, you can browse the report server by using the web portal, or search the
SharePoint site to find reports. Reports and related items remain available locally after they are deployed.
NOTE
You can use Report Builder in local mode or connected to a report server. Certain limitations apply when you do not have
an active connection to a report server.
To locate a report on a report server or SharePoint site from Report Builder, you must provide the URL to the
report server or SharePoint site. When you first install Report Builder you can specify the URL to use. This is the
server or site that Report Builder connects to by default when you save or open reports.
Reports can be previewed in Report Builder and Report Designer when you create or update reports and viewed
and managed on a report server by using the web portal or on a SharePoint site that is integrated with
Reporting Services by using the built-in SharePoint tools and features after you publish the reports. For more
information, see Previewing Reports in Report Builder and Previewing Reports.
When you preview reports in Report Builder and Report Designer, or view reports in the web portal or a
SharePoint site, the data is refreshed and the reports display the current data from the data source that the
report uses. If you want to view a report without refreshing its data, you can use report history and cached data
with published reports. You cannot use these features when previewing reports in Report Builder and Report
Designer.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
After you run a report, you can export it to another format, such as Microsoft Excel or PDF. You can also export
the report using a data rendering extension such as the Comma-Separated Value (CSV) rendering extension and
then use the CSV data file as input to another application. For more information about exporting reports, see
Export Reports (Report Builder and SSRS).
The easiest way to select and run a report is to open the web portal and then search for or browse to the report
that you want to view.
After you run a report, you can refresh it to see new data.
Refreshing Reports
Report data frequently changes and you might want to refresh the report to view the newest data. You can
refresh a report in three different ways.
O P T IO N RESULT
Refresh button on the browser window Displays the report stored in the session cache. A session
cache is created when a user opens a report. Reporting
Services uses browser sessions to maintain a consistent
viewing experience while a report is open.
CTRL+F5 keyboard combination Produces the same result as clicking the Refresh button on
the report toolbar.
In This Section
The following articles provide additional information about viewing and managing reports.
Find, view, and manage reports
Finding and Viewing Reports with a Browser (Report Builder and SSRS)
Describes how to use a URL to find and view a report.
Previewing Reports in Report Builder
Describes how to preview reports while you create or update them.
See also
Saving Reports (Report Builder)
Report Builder in SQL Server
Finding and Viewing Reports in the web portal
(Report Builder and SSRS)
11/2/2020 • 3 minutes to read • Edit Online
Report Manager is a Web-based tool that includes features for viewing and managing reports. It is part of a
report server installation. To open Report Manager, type the Report Manager URL in a browser window. For
information on browser requirements, see Browser Support for Reporting Services and Power View. For more
information about how a Report Manager URL might be configured on your report server, contact your system
administrator. For more information, see Configure Report Manager (Native Mode).
The permissions that the system administrator set on the report server determine what you can see when you
use Report Manager. Permissions are granted via a role assignment. To find and view reports, your role
assignment must include the View Reports task. To find a report on a report server, search for it by name or
description, or browse report server folders. You can only search or browse for reports that have been
published or uploaded to the report server.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
Opening a Report
After you find a report, click the report name to open it. The report is rendered in HTML and appears in the
Contents page in Report Manager. Reports are always cached by the browser session, so if you open a report,
you can usually return to it by clicking the Back button. This is true even if you were required to supply a user
name and password to run the report. You cannot fully close a rendered report until you close the browser.
Not all reports that are visible in the folder hierarchy are immediately accessible. Some reports may prompt you
for your user name and password to determine whether you can access the data source for the report.
You can also browse to and open a report from the report server directly from Report Builder.
See Also
Finding, Viewing, and Managing Reports (Report Builder and SSRS )
Finding and Viewing Reports with a Browser
(Report Builder and SSRS)
3/26/2020 • 3 minutes to read • Edit Online
You can use any supported Web browser to view a report through a direct connection to a report server. Every
report has a URL address on a report server. You can enter the Web address of a report to open it in a browser
window independently of a Web application. The report opens in HTML format and includes the report toolbar
so that you can navigate pages or search on data values within the report. You can set parameters on the URL to
hide the toolbar or select the output format of the report.
Opening a report through its Web address is suitable for viewing a report, but not managing a report. You
cannot access an item's property pages or subscription definition pages. You must use Report Manager or a
SharePoint site for those tasks.
If you do not know the Web address of a report, you can open the Web address of the report server and then
browse the report server folder hierarchy to select the report you want to view. The following diagram
illustrates a folder hierarchy as it appears in a browser window.
Folders in a browser
NOTE
If you are accessing a report from a handheld device, you must use a browser to open a report. Report Manager is not
scaled for handheld devices.
For more information about types of browsers that you can use, see Browser Support for Reporting Services
and Power View.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
The maximum limit for a URL in Internet Explorer is 2,083 characters. For more information, see Maximum URL
length in Internet Explorer.
For more information about how to access a report through a URL, including information on how a URL is
constructed, see URL Access.
Convert CRI Dialog Box (Report Builder)
3/26/2020 • 2 minutes to read • Edit Online
This report contains custom report items (CRIs) with unsupported features. CRIs are extensions to the Report
Definition Language (RDL) that support custom objects that display data in a report. CRIs include design-time
and run-time components that are supplied by third-party software vendors.
NOTE
Choosing to support custom report items on a report server is a decision made by the system administrator. To view CRIs
in a report, the CRI components must be installed on the report authoring client to preview a report and on the report
server to view a published or uploaded report.
Some CRIs can be converted to report items in the new report definition format. When you open the report, you
are prompted whether to upgrade. Use the following information to decide whether to convert the CRIs in this
report:
Yes Choose Yes to convert all the CRIs in the report, where possible. Unsupported features in the CRIs
cannot be upgraded and are removed from the report definition file. For the list of unsupported features,
see Upgrade Reports. When you view the report, you might see differences in the way the CRI displays in
the report.
No Choose No when you do not want to convert the CRIs in the report. These CRIs cannot be displayed
by the report processor in their current version. If your system administrator is planning to install a new
version of the CRI from the third-party software vendor that is compatible with the new report definition
format, you should choose No . Until new versions are available, the CRIs display in the report as an
empty text box with a red X.
In either case, the report is upgraded to the new report definition format and a backup copy of the original
report is saved as <Report Name> - Backup.rdl. If you save the report in your report authoring tool, you are
saving the upgraded report in the new report definition format. If you publish the report, the report is first
saved on your computer, and then published to the report server. You are publishing the upgraded version of
the report to the report server.
If you do not save the report, the original report remains unchanged. However, you cannot edit this report in a
SQL Server 2008 later version of SQL Server Data Tools or a report authoring environment that uses this report
definition format. You can continue to run the original version of the report by uploading it to a SQL Server
2008 or later Reporting Services report server by using Report Manager. For more information, see Upload a
File or Report (Report Manager).
For reports that you upload instead of publish to a report server, the report processor determines whether the
report can be upgraded on first use. Reports that cannot be upgraded are processed in backward-compatibility
mode, and continue to display as they did in the earlier version of Reporting Services. For more information, see
Upgrade Reports.
To identify the current report definition format for a report, for a report server, or for your report authoring
environment, see Find the Report Definition Schema Version (SSRS).
Hide an Item (Report Builder and SSRS)
3/26/2020 • 2 minutes to read • Edit Online
Set the visibility of a report item when you want to conditionally hide an item based on a report parameter or
some other expression that you specify.
You can also design a report to allow the user to toggle the visibility of report items based on clicking text boxes
in the report, for example, for a drilldown report. For more information, see Add an Expand or Collapse Action to
an Item (Report Builder and SSRS).
The following procedures describe how to show or hide a report item in a rendered report based on a constant
or an expression.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
NOTE
To select an entire table or matrix data region, click in the data region to select it, right-click a row, column, or
corner handle, and then click Tablix Proper ties .
2. Click Visibility.
3. In When the repor t is initially run , specify whether to hide the item when you first view the report:
To display the item, click Show .
To hide the item, click Hide .
To specify an expression that is evaluated at run-time, click Show or hide based on an
expression . Type the expression or click the expression (fx ) button to create the expression in the
Expression dialog box.
NOTE
When you specify an expression for visibility, you are setting the Hidden property of the report item, as
shown in the following image. The evaluated expression shows the report item when the value is False,
and hides the report item when the value is True.
4. Click OK twice.
To hide static rows in a table, matrix, or list
1. In report design view, click the table, matrix, or list to display the row and column handles.
2. Right-click the row handle, and then click Row Visibility . The Row Visibility dialog box opens.
3. To set the visibility, follow steps 3 and 4 in the first procedure.
To hide static columns in a table, matrix, or list
1. In Design view, select the table, matrix, or list to display the row and column handles.
2. Right-click the column handle, and then click Column Visibility .
3. In the Column Visibility dialog box, follow steps 3 and 4 in the first procedure.
See Also
Drilldown Action (Report Builder and SSRS)
Add an Expand or Collapse Action to an Item (Report Builder and SSRS)
Expression Examples (Report Builder and SSRS)
Reports, Report Parts, and Report Definitions
(Report Builder and SSRS)
11/2/2020 • 4 minutes to read • Edit Online
Reporting Services uses a variety of terms to describe a paginated report in different states, including the initial
definition, the published report, and the viewed report as it appears to the user.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
Published Reports
After you create an .rdl file, you can save it locally, or save it to a personal folder (such as the My Reports folder)
on the report server. When the report is ready for others to see, you publish it by saving it from Report Builder
to a public folder on the report server, uploading it through the Reporting Services web portal, or deploying a
report project solution from Report Designer. A published report is an item that is stored in a report server
database and managed on a report server or SharePoint site.
A published report is secured through role assignments using the Reporting Services role-based security model.
Published reports are accessed through URLs, SharePoint Web parts, or the Reporting Services web portal, or
you can navigate to and open them in Report Builder.
Report Snapshots
A report can also be published as a snapshot that contains both layout information and data as of the time the
report was initially run. Report snapshots are not saved in a particular rendering format. Instead, report
snapshots are rendered in a final viewing format (such as HTML) only when a user or an application requests it.
For more information, see Finding and Viewing Reports in the web portal.
Rendered Reports
A rendered report is a fully processed report that contains both data and layout information in a format suitable
for viewing (such as HTML). Until a report is rendered into an output format, it cannot be viewed. You can render
a report by doing one of the following:
Create or open a report in Report Builder or Report Designer and run it.
Find and run a report in the Reporting Services web portal.
Find and run a report on a SharePoint site that is integrated with a Reporting Services report server.
Subscribe to a report, which is delivered to an e-mail inbox or a file share in an output format that you
specify.
Subscribe to a report, which is delivered to an e-mail inbox or a file share in an output format that you specify.
The default rendering format for a report is HTML 4.0. In addition to HTML, reports can be rendered in a variety
of output formats, including Excel, Word, XML, PDF, TIFF, and CSV. As with published reports, rendered reports
cannot be edited or saved back to a report server. For more information, see Export Reports (Report Builder and
SSRS).
See Also
Reporting Services Concepts (SSRS) Report Builder in SQL Server
Finding, Viewing, and Managing Reports (Report Builder and SSRS )
Export Reports (Report Builder and SSRS)
Data Regions and Maps (Report Builder and SSRS)
11/2/2020 • 4 minutes to read • Edit Online
A data region is an object in a report that displays data from a report dataset. Report data can be displayed as
numbers and text in a table, matrix, or list; graphically in a chart or gauge; and against a geographic background
in a map. Tables, matrices, and lists are all based on the tablix data region, which expands as needed to display
all the data from the dataset. A tablix data region supports multiple row and column groups and both static and
dynamic rows and columns. A chart displays multiple series and category groups in a variety of chart formats. A
gauge displays a single value or an aggregated value for a dataset. A map displays spatial data as map elements
that can vary in appearance based on aggregated data from a dataset.
You can save a data region or map as a report part. Read more about Report Parts.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
Table
A table is a data region that presents data row by row. Table columns are static: you determine the number of
columns when you design your report. Table rows are dynamic: they expand downwards to accommodate the
data. You can add groups to tables, which organize data by selected fields or expressions. For information about
adding a table to a report, see Tables (Report Builder and SSRS).
Matrix
A matrix is also known as a crosstab. A matrix data region contains both dynamic columns and rows: they
expand to accommodate the data. A matrix can have dynamic columns and rows and static columns and rows.
Columns or rows can contain other columns or rows, and can be used to group data. Read more about adding a
matrix to a report.
List
A list is a data region that presents data arranged in a freeform fashion. You can arrange report items to create a
form with text boxes, images, and other data regions placed anywhere within the list. Read more about adding a
list to a report.
Chart
A chart presents data graphically. Examples of charts include bar, pie, and line charts, but many more styles are
supported. Read more about adding a chart to a report.
Gauge
A gauge presents data as a range with an indicator pointing to a specific value within the range. Gauges are
used to display key performance indicators (KPIs) and other metrics. Examples of gauges include linear and
circular. Read more about adding a gauge to a report.
Map
A map enables you to present data against a geographical background. Map data can be spatial data from a SQL
Server query, an ESRI shapefile, or Microsoft Bing map tiles. Spatial data consists of sets of coordinates that
define polygons that represent shapes or areas, lines that represent routes or paths, and points represented by
markers. You can associate aggregate data with map elements to automatically vary their color and size. For
example, you can vary the marker type for a store based on sales amount or the color for a road based on speed
limit. For more information, see Maps (Report Builder and SSRS).
See Also
Reporting Services Concepts (SSRS) Reports, Report Parts, and Report Definitions (Report Builder and SSRS)
Page Layout and Rendering (Report Builder and SSRS)
Report Builder Tutorials
Reporting Services Tutorials (SSRS)
Tables, Matrices, and Lists (Report Builder and
SSRS)
3/5/2021 • 9 minutes to read • Edit Online
In Reporting Services, tables, matrices, and lists are data regions that display paginated report data in cells that
are organized into rows and columns. The cells typically contain text data such as text, dates, and numbers but
they can also contain gauges, charts, or report items such as images. Collectively, tables, matrices, and lists are
frequently referred to as tablix data regions.
The table, matrix, and list templates are built on the tablix data region, which is a flexible grid that can display
data in cells. In the table and matrix templates, cells are organized into rows and columns. Because templates are
variations of the underlying generic tablix data region, you can display data in combination of template formats
and change the table, matrix, or list on to include the features of another data region as you develop your report.
For example, if you add a table and find it does not serve your needs, you can add column groups to make the
table a matrix.
The table and matrix data regions can display complex data relationships by including nested tables, matrices,
lists, charts and gauges. Tables and matrices have a tabular layout and their data comes from a single dataset,
built on a single data source. The key difference between tables and matrices is that tables can include only row
groups, where as matrices have row groups and column groups.
Lists are a little different. They support a free-layout that and can include multiple peer tables or matrices, each
using data from a different dataset. Lists can also be used for forms, such as invoices.
The following pictures show simple reports with a table, matrix, or list.
To quickly get started with tables, matrices, and lists, see Tutorial: Creating a Basic Table Report (Report Builder),
Tutorial: Creating a Matrix Report (Report Builder), and Tutorial: Creating a Free Form Report (Report Builder).
NOTE
You can publish tables, matrices, and lists separately from a report as report parts. Read more about Report Parts.
Table
Use a table to display detail data, organize the data in row groups, or both. The Table template contains three
columns with a table header row and a details row for data. The following figure shows the initial table template,
selected on the design surface:
You can group data by a single field, by multiple fields, or by writing your own expression. You can create nested
groups or independent, adjacent groups and display aggregated values for grouped data, or add totals to
groups. For example, if your table has a row group called [Category], you can add a subtotal for each group as
well as a grand total for the report. To improve the appearance of the table and highlight data you want to
emphasize, you can merge cells and apply formatting to data and table headings.
You can initially hide detail or grouped data, and include drilldown toggles to enable a user to interactively
choose how much data to show.
For more information, see Tables (Report Builder and SSRS).
Matrix
Use a matrix to display aggregated data summaries, grouped in rows and columns, similar to a PivotTable or
crosstab. The number of rows and columns for groups is determined by the number of unique values for each
row and column groups. The following figure shows the initial matrix template, selected on the design surface:
You can group data by multiple fields or expressions in row and column groups. At run time, when the report
data and data regions are combined, a matrix grows horizontally and vertically on the page as columns for
column groups and rows for row groups are added. The matrix cells display aggregate values that are scoped to
the intersection of the row and column groups to which the cell belongs. For example, if your matrix has a row
group (Category) and two column groups (Territory and Year) that display the sum of sales, the report displays
two cells with sums of sales for each value in the Category group. The scope of the cells are the two
intersections are: Category and Territory and Category and Year. The matrix can include nested and adjacent
groups. Nested groups have a parent-child relationship and adjacent groups a peer relationship. You can add
subtotals for any and all levels of nested row and column groups within the matrix.
To make the matrix data more readable and highlight the data you want to emphasize, you can merge cells or
split horizontally and vertically and apply formatting to data and group headings.
You can also include drilldown toggles that initially hide detail data; the user can then click the toggles to display
more or less detail as needed.
For more information, see Create a Matrix.
List
Use a list to create a free-form layout. You are not limited to a grid layout, but can place fields freely inside the
list. You can use a list to design a form for displaying many dataset fields or as a container to display multiple
data regions side by side for grouped data. For example, you can define a group for a list; add a table, chart, and
image; and display values in table and graphic form for each group value, as you might for an employee or
patient record.
For more information, see Create Invoices and Forms with Lists.
Preparing Data
A table, matrix, and list data regions display data from a dataset. You can prepare the data in the query that
retrieves the data for the dataset or by setting properties in the table, matrix, or list.
The query languages such as Transact-SQL, that you use to retrieve the data for the report datasets can prepare
the data by applying filters to include only a subset of the data, replacing null values or blanks with constants
that make the report more readable, and sorting and grouping data.
If you choose to prepare the data in the table, matrix, or list data region of a report, you set properties on the
data region or cells within the data region. If you want to filter or sort the data, set the properties on the data
region. For example, to sort the data you specify the columns to sort on and the sort direction. If you want to
provide an alternative value for a field, you set the values of the cell text that displays the field. For example, to
display Blank when a field is empty or null, you use an expression to set the value.
For more information, see Preparing Data for Display in a Tablix Data Region (Report Builder and SSRS).
In This Section
The following topics provide additional information about working with the tablix data region.
Tablix Data Region (Report Builder and SSRS)
Explains key concepts related to the tablix data region such as areas of the tablix, detail and grouped data,
column and row groups, and static and dynamic rows and columns.
Adding Data to a Tablix Data Region (Report Builder and SSRS)
Provides detailed information about adding detail and grouped data, subtotals and totals, and labels to a tablix
data region.
Controlling the Tablix Data Region Display on a Report Page (Report Builder and SSRS)
Describes properties for a tablix data region that you can modify to change the way a tablix data region appears
when you view it in a report.
Controlling Row and Column Headings (Report Builder and SSRS)
Describes how to control row and column headings when a table, matrix, or list data region cans span multiple
pages horizontally or vertically.
Creating Recursive Hierarchy Groups (Report Builder and SSRS)
Describes how to display recursive data where the relationship between parent and child is represented by fields
in the dataset.
Understanding Groups (Report Builder and SSRS)
Explains what groups are and when you use them and describes the groups available for the different tablix data
regions.
See Also
Add Dataset Filters, Data Region Filters, and Group Filters (Report Builder and SSRS)
Nested Data Regions (Report Builder and SSRS)
Linking Multiple Data Regions to the Same Dataset (Report Builder and SSRS)
Expressions (Report Builder and SSRS)
Filter, Group, and Sort Data (Report Builder and SSRS)
Report Parameters (Report Builder and Report Designer)
Charts (Report Builder and SSRS)
Gauges (Report Builder and SSRS)
Tables (Report Builder and SSRS)
11/2/2020 • 7 minutes to read • Edit Online
In Reporting Services, you can use a table to display detail data or grouped data, or a combination of both in a
paginated report.
You can group data by a single field, by multiple fields, or by writing your own expression. You can create nested
groups or independent, adjacent groups. To display aggregated values for grouped data, add totals to groups.
Format the rows and columns to highlight the data you want to emphasize. You can initially hide detail or
grouped data, and include drilldown toggles to enable a user to interactively choose how much data to show.
To quickly get started with tables, see Tutorial: Creating a Basic Table Report (Report Builder) or Create a Basic
Table Report (SSRS Tutorial).
NOTE
You can publish tables separately from a report as report parts. Read more about Report Parts.
NOTE
The wizard is available only in Report Builder.
To describe how to configure a table from beginning to end, this topic uses the table template.
By default, a new table has a fixed number of columns with a header row for labels and a data row for detail
data. The following figure shows a new table added to the design surface.
When you select the table, row and column handles appear on the outside of the table and brackets appear
inside cells. Row handles display graphics that help you understand the purpose of each row. Brackets indicate
group membership for a selected cell. The following figure shows a selected empty cell in a default table.
The row handle for the Data row shows the details symbol ( ). To display data on these rows, drag fields from
the Report Data pane to the table cells in either the header or the details row. Both rows are filled in
simultaneously. To add additional columns, drag the field to the table until you see an insertion point. After you
add dataset fields to the table, you can change the default format for dates and currency to control the way they
display in the report. The following diagram shows a table data region with these fields: Date, Order, Product,
Qty, and Line Total.
Check your design by viewing the report in Preview. The table expands down the page as needed. The label row
and the details row each display once for every row in the dataset query result set. Each product sold in the
order is listed on a separate row, along with the quantity and the line total for the item, as shown in the
following figure:
The table that you start with is a template based on the tablix data region. You can enhance the design of your
table by adding features that are supported by the underlying tablix data region. For more information, see
Controlling the Tablix Data Region Display on a Report Page (Report Builder and SSRS). You can also continue to
develop your table by adding row groups, column groups, and by adding or removing detail groups. For more
information, see Exploring the Flexibility of a Tablix Data Region (Report Builder and SSRS).
Adding Totals for Detail Data
To add totals, select cells with numeric data, and then use the shortcut menu to automatically add labels and
totals for detail data for numeric fields. You can also specify other labels and totals manually. The following
figure shows a typical totals row that includes both automatic and manually specified totals:
In Preview, the report displays the header row and the details row once for every row in the dataset query result
set, and it displays the totals row. The follow figure shows the last few rows of the table including the total row.
For more information, see Add a Total to a Group or Tablix Data Region (Report Builder and SSRS).
An alternative way of displaying grouped data is to indent the group hierarchy to display the nested relationship
of groups instead of presenting each value in its own column. This style of formatting is called a stepped report.
For more information about how to format group information as a stepped report, see Create a Stepped Report
(Report Builder and SSRS).
Adding Totals to Row Groups
To show totals for a group, you can use the context-sensitive Add Total command. For a row group, the Add
Total command adds a row outside the group so that it repeats only once in relation to the group. For nested
groups, the total row for the child group is outside the child group but inside the parent group. In such a case, it
is useful to set the background color of the total row for the child group to distinguish it from the detail rows.
You can also use a different background color to distinguish the table header and footer rows. The following
figure shows the table with a total row added for the group based on order numbers.
When you view the report, the row displaying the order subtotals repeats once for every order number. The
table footer displays totals for all dates. In the following figure, the last few rows show the last three detail rows,
the subtotal for the last order number SO71952, and the totals for all dates in the table.
For more information, see Add a Total to a Group or Tablix Data Region (Report Builder and SSRS).
After you delete the details row, values are scoped to the row groups. The detail data no longer displays.
NOTE
Verify that after you remove a details row, the expression in each cell specifies an aggregate expression where appropriate.
If necessary, edit the expression to specify aggregate functions as needed.
To add or remove rows from the table, see Insert or Delete a Row (Report Builder and SSRS).
You can also hide the detail rows when the report is initially viewed. To do so, you can create a drilldown report,
in which only the parent group data is displayed. For each inner group (including the details group), add a
visibility toggle to the grouping cell of the containing group. For example, for the details group, add a toggle to
the text box that displays the order number group value. For the order number group, add a toggle to the text
box that displays the date group value. The following figure shows the row for September 01, 2001, expanded to
display the first few orders.
For more information, see Add an Expand or Collapse Action to an Item (Report Builder and SSRS).
See Also
Filter, Group, and Sort Data (Report Builder and SSRS)
Expressions (Report Builder and SSRS)
Expression Examples (Report Builder and SSRS)
Tables, Matrices, and Lists (Report Builder and SSRS)
Create a Matrix (Report Builder and SSRS)
11/2/2020 • 5 minutes to read • Edit Online
Use a matrix to display grouped data and summary information. You can group data by multiple fields or
expressions in row and column groups. Matrices provide functionality similar to crosstabs and pivot tables. At
run time, as the report data and data regions are combined, a matrix grows horizontally and vertically on the
page. Values in matrix cells display aggregate values scoped to the intersection of the row and column groups to
which the cell belongs. You can format the rows and columns to highlight the data you want to emphasize. You
can also include drilldown toggles that initially hide detail data; the user can then click the toggles to display
more or less detail as needed.
After your initial design, you can continue to develop a matrix to improve the viewing experience for the user.
For more information, see Controlling the Tablix Data Region Display on a Report Page (Report Builder and
SSRS).
To quickly get started with matrices, see Tutorial: Creating a Matrix Report (Report Builder).
NOTE
You can publish lists separately from a report as report parts. Read more about Report Parts (Report Builder and SSRS).
NOTE
The wizard is available only in SQL Server Report Builder for SQL Server 2012.
To describe how to configure a table from beginning to end, this topic uses the matrix template. The matrix
initially has a row group, a column group, a corner cell, and a data cell, as shown in the following figure.
When you select a matrix on the design surface, row and column handles appear, as shown in the following
figure.
Add groups by dragging dataset fields to the Row Groups and Column Groups areas of the Grouping pane. The
first field that you drag to the row groups or column groups pane replaces the initial empty default group. You
can then apply formatting for each cell, depending on the data.
In Preview, the matrix expands to show the row group and column group values. The cells display summary
values, as shown in the following figure.
The matrix you start with is a template based on the tablix data region. You can continue to develop your matrix
design by adding nested or adjacent row groups or column groups, or even adding detail rows. For more
information, see Exploring the Flexibility of a Tablix Data Region (Report Builder and SSRS).
For more information, see Expression Scope for Totals, Aggregates, and Built-in Collections (Report Builder and
SSRS).
In this example, the query has filtered data values to only include those values for Europe and for the years 2003
and 2004. However, you can set filters on each group independently. In preview, the report displays as in the
following figure.
To add a total column for an adjacent column group, click in the column group definition cell and use the Add
Total command. A new static column is added next to the column group, with a default aggregate sum for every
numeric field in the existing rows. To change the expression, manually edit the default aggregate, for example,
Avg([Sales]) . For more information, see Add a Total to a Group or Tablix Data Region (Report Builder and
SSRS).
See Also
Aggregate Functions Reference (Report Builder and SSRS)
Expression Examples (Report Builder and SSRS)
Create Invoices and Forms with Lists (Report Builder
and SSRS)
11/2/2020 • 3 minutes to read • Edit Online
A list data region repeats with each group or row in the Reporting Services paginated report dataset. A list can
be used to create free-form reports or forms, such as invoices, or in conjunction with other data regions. You can
define lists that contain any number of report items. A list can be nested wit
To quickly get started with lists, see Tutorial: Creating a Free Form Report (Report Builder).
NOTE
You can publish lists separately from a report as report parts. Read more about Report Parts (Report Builder and SSRS).
When you select a list on the design surface, row and column handles appear, as shown in the following figure.
The list you start with is a template based on the tablix data region. After you add a list, you can continue to
enhance the design by changing the content or appearance of the list by specifying filter, sort, or group
expressions, or changing the way the list displays across report pages. For more information, see Controlling the
Tablix Data Region Display on a Report Page (Report Builder and SSRS). Although the list starts with a single
column and row, you can further continue to develop your list design by adding nested or adjacent row groups
or column groups, or adding additional detail rows. For more information, see Exploring the Flexibility of a Tablix
Data Region (Report Builder and SSRS).
In Preview, the list repeats to display the field data in the free-form format, as shown in the following figure:
NOTE
The dotted lines displays in these figures are included to show the free-form layout for each field value. Typically, you
would not use dotted lines in a production report.
In Preview, the table displays total sales for all subcategories of bicycles, and the table beside it displays the
breakdown of sales per geographical area. By using an expression to specify the background color for the table
and a custom palette for the chart, the first table also provides the legend for the chart colors.
See Also
Aggregate Functions Reference (Report Builder and SSRS)
Expression Examples (Report Builder and SSRS)
Tablix Data Region (Report Builder and SSRS)
11/2/2020 • 6 minutes to read • Edit Online
In Reporting Services, the tablix data region is a generalized layout report item that displays paginated report
data in cells that are organized into rows and columns. Report data can be detail data as it is retrieved from the
data source, or aggregated detail data organized into groups that you specify. Each tablix cell can contain any
report item, such as a text box or an image, or another data region, such as a tablix region, chart, or gauge. To
add multiple report items to a cell, first add a rectangle to act as a container. Then, add the report items to the
rectangle.
The table, matrix, and list data regions are represented on the ribbon by templates for the underlying tablix data
region. When you add one of these templates to a report, you are actually adding a tablix data region that is
optimized for a specific data layout. By default, a table template displays detail data in a grid layout, a matrix
displays group data in a grid layout, and a list displays detail data in a free-form layout.
By default, each tablix cell in a table or matrix contains a text box. The cell in a list contains a rectangle. You can
replace a default report item with a different report item, such as an image.
When you define groups for a table, matrix, or list, Report Builder and Report Designer add rows and columns to
the tablix data region on which to display grouped data.
To understand the tablix data region, it helps to understand the following:
The difference between detail data and grouped data.
Groups, which are organized as members of group hierarchies on the horizontal axis as row groups and
on the vertical axis as column groups.
The purpose of tablix cells in the four areas of a tablix data region: the body, the row group headers, the
column group headers, and the corner.
Static and dynamic rows and columns, and how they relate to groups.
This article spells out these concepts to explain the structure that Report Builder and Report Designer add for
you when you add templates and create groups, so you can modify the structure to suit your own needs. Report
Builder and Report Designer provide multiple visual indicators to help you recognize tablix data region
structure. For more information, see Tablix Data Region Cells, Rows, and Columns (Report Builder) and SSRS.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
See Also
Linking Multiple Data Regions to the Same Dataset (Report Builder and SSRS)
Controlling the Tablix Data Region Display on a Report Page (Report Builder and SSRS)
Exploring the Flexibility of a Tablix Data Region (Report Builder and SSRS)
Tables, Matrices, and Lists (Report Builder and SSRS)
Tablix Data Region Areas (Report Builder and SSRS)
11/2/2020 • 3 minutes to read • Edit Online
In a Reporting Services paginated report, a tablix data region has four areas that contain tablix cells:
The corner
The row group area
The column group area
The body
Cells in each area have a distinct function. You add cells to the tablix body area to display detail and grouped
data. Report Builder and Report Designer add cells to the row group or column group area when you create a
group in order to display group instance values. Report Builder and Report Designer create tablix corner cells
when both row groups and column groups exist.
On the design surface, dotted lines denote the four areas of a selected tablix data region. The following figure
shows the areas for a tablix region with nested row groups based on category and subcategory, nested column
groups based on geography and country/region, and an adjacent column group based on year.
The row group area displays two category group instances for Clothing and Components. The column group are
displays a geography group instance for North America, with two nested country/region group instances for
Canada (CA) and the United States (US). In addition, the adjacent column displays two year group instances for
2003 and 2004. The Total column row displays the row totals; the totals row that repeats with the category
group shows subcategory totals, and the grand total row displays the category totals once for the data region.
See Also
Tables, Matrices, and Lists (Report Builder and SSRS)
Report Builder Tutorials
Tables (Report Builder and SSRS)
Create a Matrix
Create Invoices and Forms with Lists
Tablix Data Region (Report Builder and SSRS)
Cells, Rows, & Columns in a Tablix Data Region
(Report Builder) and SSRS
5/20/2020 • 8 minutes to read • Edit Online
To control how the rows and columns of a tablix data region display data in a Reporting Services paginated
report, you must understand how to specify rows and columns for detail data, for group data, and for labels and
totals. In many cases, you can use the default structures for a table, matrix, or list to display your data. For more
information, see Tables (Report Builder and SSRS), Matrixes, or Lists .
A tablix data region displays detail data on detail rows and detail columns and grouped data on group rows and
group columns. When you add row groups and column groups to a tablix data region, rows and columns on
which to display the data are automatically added. You can manually add and remove rows and columns to
customize a tablix data region and control the way your data displays in the report.
To understand how to customize a tablix data region, you should first understand how to interpret the visual
cues you see when you select a tablix data region on the design surface.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
IC O N DESC RIP T IO N
One outer group, one inner group, and the child details
group
One outer group with a footer row for totals and one inner
group
One outer group with a footer row for totals, one inner
group with a footer row for totals, and one details row
IC O N DESC RIP T IO N
One outer group with a header for labels and a footer for
totals, and an inner group; no details group
Group Rows
Rows inside a group repeat once per unique group value and are typically used for aggregate summaries. Rows
outside a group repeat once with respect to the group and are used for labels or subtotals. When you select a
tablix cell, row and column handles and brackets inside the tablix data region show the groups to which a cell
belongs. This figure displays the following visual cues:
Row and column handles that indicate group associations.
Highlighted group indicators that show the innermost group membership for a selected cell.
Group indicators that show all group memberships for a selected cell.
Total Rows
After you add row and column groups, you can add a row to display totals for columns and a column to display
totals for rows. The following figure shows a matrix with both row and column groups, and a total row and a
total column.
Grouping Pane
The Grouping pane displays the row and column groups for the currently selected tablix data region on the
design surface. The following figure shows the Grouping pane for this tablix data region.
The Row Groups pane shows the parent group Category and child group Subcat. The Column groups pane
shows the parent group Geography and child group CountryRegion, and also the Year group, which is an
adjacent group to the Geography group. When you select the Subcat group in the Row Groups pane, the group
bar turns a darker shade of orange, and the corresponding row group member cell is selected on the design
surface.
For a tablix data region that displays detail data, the details group is the innermost child group. Rows that you
add to a details group repeat once per row in the result set for the query for the dataset linked to this tablix data
region. The following figure shows the last page of the rendered report. In this figure, you can see the last detail
rows and the subtotal row for the last order.
For each column in a tablix data region, the same principles apply. For example, a column is either inside or
outside each column group; to display totals, add a column outside the group.
To remove rows and columns associated to a group, you can delete the group. When you delete a group, you
have the choice between deleting the group definition only or deleting the group and all its associated rows and
columns. By deleting just the group, you preserve the row and column layout on the data region. When you
delete the group and its related rows and columns, you are deleting all static rows and columns (including
group headers and footers) and dynamic rows and columns (including group instances) that are associated with
that group.
For step-by-step instructions about adding or deleting rows and columns, see Insert or Delete a Row (Report
Builder and SSRS) and Insert or Delete a Column (Report Builder and SSRS).
NOTE
The actual data that is displayed for each cell is the evaluated expression for the report item that the cell contains, which is
typically a text box. In a cell that belongs to a detail row or column, the expression defaults to the detail data (for example,
[LineTotal]) . In a cell that does not belong to a detail row or column, the expression defaults to an aggregate function
(for example, Sum[LineTotal]) . If an expression does not specify an aggregate function even though the cell belongs to a
group row or column, the first value in the group is displayed. For more information about aggregates, see Expression
Scope for Totals, Aggregates, and Built-in Collections (Report Builder and SSRS).
See Also
Tablix Data Region (Report Builder and SSRS)
Preparing Data for Display in a Tablix Data Region
(Report Builder and SSRS)
11/2/2020 • 2 minutes to read • Edit Online
A tablix data region displays data from a dataset. You can view all the data retrieved for the dataset or you can
create filters so that you see only a subset of the data. You can also add conditional expressions to fill in null
values or modify the query for a dataset to include columns that define the sort order for an existing column.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
=IIF(Fields!Size.Value IS NOTHING,"Null",Fields!Size.Value)
For more information about eliminating nulls in your data before retrieving the data from a SQL Server data
source using Transact-SQL queries, see NULL and UNKNOWN (Transact-SQL).
To sort a table data region according to this sort order, set the sort expression on the detail group to
=Fields!ColorSortOrder.Value . For more information, see Sort Data in a Data Region (Report Builder and SSRS).
See Also
Dataset Fields Collection (Report Builder and SSRS)
Expressions (Report Builder and SSRS)
Filter, Group, and Sort Data (Report Builder and SSRS)
Adding Data to a Tablix Data Region (Report
Builder and SSRS)
5/20/2020 • 4 minutes to read • Edit Online
In Reporting Services paginated reports, to display data from a report dataset in a table or matrix, in each data
cell, specify the name of a dataset field to display. You can display detail data or grouped data. If you add groups
to a table or matrix, rows and columns for group values and group data are added automatically. You can then
add subtotals and totals for your data.
All data in a data region belongs to at least one group. Detail data is a member of the details group. For more
information about detail and grouped data, see Understanding Groups (Report Builder and SSRS).
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
Adding Labels
To add labels for a group or for the data region, add a row or column outside the group that you want to label.
Label rows and columns are similar to rows and columns that you add to display totals. For more information,
see Insert or Delete a Row (Report Builder and SSRS) or Insert or Delete a Column (Report Builder and SSRS).
See Also
Expressions (Report Builder and SSRS)
Report Parameters (Report Builder and Report Designer)
Interactive Sort, Document Maps, and Links (Report Builder and SSRS)
Add Dataset Filters, Data Region Filters, and Group Filters (Report Builder and SSRS)
Add, Edit, Refresh Fields in the Report Data Pane (Report Builder and SSRS)
Add an Expression (Report Builder and SSRS)
Exploring the Flexibility of a Tablix Data Region
(Report Builder and SSRS)
11/2/2020 • 3 minutes to read • Edit Online
In a Reporting Services paginated report, when you add a table, matrix, or list data region from the Insert tab on
the ribbon, you start with an initial template for a tablix data region. But you are not limited by that template.
You can continue to develop how your data displays by adding or removing any tablix data region feature such
as groups, rows, and columns.
When you delete a row or column group, you have the option of deleting the rows and columns that are used to
display group values. You can also add or remove rows and columns manually. To understand how rows and
columns are used to display detail and group data, see Tablix Data Region (Report Builder and SSRS).
After you change the structure of the tablix data region, you can set properties to help control the way the
report renders the data region; for example, you can repeat column headers at the top of every page, or keep a
group header with the group. For more information, see Controlling the Tablix Data Region Display on a Report
Page (Report Builder and SSRS).
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
See Also
Tablix Data Region (Report Builder and SSRS)
Tables, Matrices, and Lists (Report Builder and SSRS)
Tables (Report Builder and SSRS)
Matrices (Report Builder and SSRS)
Lists (Report Builder and SSRS)
Controlling the Tablix Data Region Display on a
Report Page
11/2/2020 • 5 minutes to read • Edit Online
Read about properties you can set in a Reporting Services paginated report for a table, matrix, or list data
region, to change how it appears when you view the report.
The row group area and column group area contain group headers. When a tablix data region has group
headers, you control how rows and columns repeat by setting properties on the General page of the Tablix
Proper ties dialog Box.
If a tablix data region has only a tablix body area, there are no group headers. There are only static and dynamic
tablix members. A static member displays once in relation to a tablix row or column group. A dynamic member
repeats once for every unique group value. For example, in a tablix data region that displays a sales order, the
column names in the sales order can be displayed on a static row member. Each line in the sales order is
displayed on a dynamic row member.
You can help control how a tablix member renders by setting properties in the Properties pane. For more
information, see "Advanced mode" in Grouping Pane (Report Builder).
The following list describes ways that you can help control how a tablix data region appears in a report:
Repeating row and column headers on multiple pages .You can display row and column headers
on each page that a tablix data region spans. For more information, see Display Row and Column
Headers on Multiple Pages (Report Builder and SSRS).
Keeping row and column headers in view when scrolling . You can control whether to keep the
row and column headers in view when you scroll a report using a browser. For more information, see
Keep Headers Visible When Scrolling Through a Report (Report Builder and SSRS).
For more information about how exporting a report to different formats affects the way a tablix data region
renders on a page, see Rendering Behaviors (Report Builder and SSRS).
See Also
Linking Multiple Data Regions to the Same Dataset (Report Builder and SSRS)
Nested Data Regions (Report Builder and SSRS)
Expression Scope for Totals, Aggregates, and Built-in Collections (Report Builder and SSRS)
Controlling Page Breaks, Headings, Columns, and Rows (Report Builder and SSRS)
Tablix Data Region (Report Builder and SSRS)
Tables (Report Builder and SSRS)
Create a Matrix
Create Invoices and Forms with Lists
Tables, Matrices, and Lists (Report Builder and SSRS)
Control Row & Column Headings (Report Builder &
SSRS)
11/2/2020 • 8 minutes to read • Edit Online
A table, matrix, or list data region in a paginated report can span multiple pages horizontally or vertically. You
can specify whether to repeat row or column headings on each page. In an interactive renderer such as the web
portal or report preview, you can also specify whether to freeze row or column headings to keep them in view
when you scroll across or down a report. In a table or matrix, the first row usually contains column headings
that label data in each column; the first column usually contains row headings that label the data in each row.
For nested groups, you might want to repeat the initial set of row and column headings that contain group
labels. By default, a list data region does not include headings.
How you control whether headings repeat or freeze depends on the following:
For column headings that repeat at the top of each page:
Whether the table or matrix has a column group area that expands horizontally.
Whether you want to control all rows that are associated with column groups as a unit.
For row headings that repeat along the side of each page:
Whether the table or matrix has a row group area that expands vertically. Row headings are supported
only for row groups with a row group header.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
Examples
The most common examples of tablix data regions are for a matrix, a table with no groups, and a table with a
row group and a row group header, and a table with a row group but no row group header. To control how to
repeat or freeze headers, you must determine if the rows or columns that you want to control are associated
with a group header in the row groups or column groups area.
The following sections provide examples for common layouts for a tablix data region:
Matrix
Table with no groups
Table with row groups and row group area
Table with row groups but no row group area
Matrix
By default, a simple matrix has one row group and one column group. The following figure shows a matrix with
a row group that is based on Category and a column group that is based on Geography:
The dotted lines show the four tablix areas. The row group area has a row group header that controls the
category labels in the first column. Similarly, the column group area has a column group header that controls
the geography labels in the first row. In preview, as the matrix expands across the page, the first row displays the
column headings, as shown in the following figure:
To repeat or freeze column headings in the first row, set properties for column headers on the tablix data region.
Column headers for nested column groups are automatically included.
To repeat or freeze row headings in the first column, set properties for row headers on the tablix data region.
Row headers for nested row groups are automatically included.
Return to top
Table with no row groups
By default, a simple table with no groups does include the details group. The following figure shows a table that
displays category, order number, and sales data:
There are no dotted lines because the table consists only of the tablix body area. The first row displays column
headers, and represents a static tablix member that is not associated with a group. The second row displays
detail data, and represents a dynamic tablix member that is associated with the details group. The following
figure shows the table in preview:
To repeat or freeze column headings, set properties on the tablix member for static row that is part of the tablix
data region definition. To select the static row, you must use the Advanced mode of the Grouping pane. The
following figure shows the Row Groups pane:
In Advanced mode, the following figure shows the static and dynamic tablix members for the row groups in the
table:
To repeat or freeze column headings for the tablix member, select the static row that is labeled (Static ). The
properties pane displays the properties for the selected tablix member. By setting properties for this tablix
member, you can control how the first row repeats or stays in view.
Return to top
Table with row groups and a row group area
If you add a row group to a simple table, a row group area is added to the table on the design surface. The
following figure shows a table with a row group that is based on Category:
The dotted lines show the tablix row groups area and the tablix body area. The row group area has a row group
header but no column group header. The following figure shows this table in preview:
To repeat or freeze column headings, use the same approach as the previous example. The following figure
shows the default view of the Row Groups pane:
Use the Advanced mode of the Row Groups pane to display the tablix members, as shown in the following
figure:
For tablix members are listed: Static , (Static ), Category, and (Details ). A tablix member that includes
parentheses () indicates that there is no corresponding group header. To repeat or freeze column headings,
select the top Static tablix member, and set properties in the Properties pane.
Return to top
Table with row groups and no row group area
A table can have row groups but no row groups area in several ways. Two possible ways for this to happen
include:
Start with a table with row groups and a row group area and delete the columns for the row group area.
Delete the columns only and not the groups. For example, you might want to control the table format to
be a simple grid.
Upgrade a report that was created for a previous RDL version, before tablix data regions were introduced.
The following figure shows a table with a row group but no row group area on the design surface:
The table has three rows. The first row contains column headers. The second row contains the group value and
subtotals. The third row contains the detail data. There are no dotted lines because there is only a tablix body
area. The following figure shows this table in preview:
To control how the rows repeat or stay in view, you must set properties on the tablix member for each row. In
default mode, there is no difference between this example and the previous example for a table with a row
group and a group header. The following figure shows the Grouping pane in default mode for this table:
However, in advanced mode, this layout structure shows a different set of tablix members. The following figure
shows the Grouping pane in advanced mode for this table:
In the Row Groups pane, the following tablix members are listed: (Static ), (Category), (Static ), and (Details ). To
repeat or freeze column headings, select the top (Static ) tablix member, and set properties in the Properties
pane.
Return to top
See Also
Filter, Group, and Sort Data (Report Builder and SSRS)
Tables, Matrices, and Lists (Report Builder and SSRS)
Pagination in Reporting Services (Report Builder and SSRS)
Export Reports (Report Builder and SSRS)
Understanding Groups (Report Builder and SSRS)
11/2/2020 • 8 minutes to read • Edit Online
In a Reporting Services paginated report, a group is a named set of data from the report dataset that is bound
to a data region. Basically, a group organizes a view of a report dataset. All groups in a data region specify
different views of the same report dataset.
To help visualize what a group is, refer to the following figure that shows the tablix data region in Preview. In this
figure, the row groups categorize the dataset by product type and the column groups categorize the dataset by
geographic region and year.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
NOTE
If you change the name of a group, you must manually update any group expressions that refer to the previous name of
the group.
NOTE
Although groups have different names in different data regions, the principles behind how you create and use groups are
the same. When you create a group for a data region, you specify a way to organize the detail data from the dataset that
is linked to the data region. Each data region supports a group structure on which to display grouped data.
NOTE
The data in a Detail group can also include server aggregates, which are aggregates that are calculated on the
data source and retrieved in your query. By default, Report Builder and Report Designer treat server aggregates as
detail data unless your report includes an expression that uses the Aggregate function. For more information, see
Aggregate.
By default, when you add a table or list to your report, Report Builder and Report Designer automatically
create the Details group for you, and adds a row to display the detail data. By default, when you add
dataset fields to cells in this row, you see simple expressions for the fields, for example, [Sales]. When you
view the data region, the details row repeats once for every value in the result set.
Row groups and column groups You can organize data into groups by rows or columns. Row groups
expand vertically on a page. Column groups expand horizontally on a page. Groups can be nested, for
example, group first by [Year], then by [Quarter], then by [Month]. Groups can also be adjacent, for
example, group on [Territory] and independently on [ProductCategory].
When you create a group for a data region, Report Builder and Report Designer automatically add rows
or columns to the data region and use these rows or columns to display group data.
Recursive hierarchy groups A recursive hierarchy group organizes data from a single report dataset
that includes multiple levels. For example, a recursive hierarchy group could display an organization
hierarchy, for example, [Employee] that reports to [Employee]. Reporting Services provides group
properties and built-in functions to enable you to create groups for this kind of report data. For more
information, see Creating Recursive Hierarchy Groups (Report Builder and SSRS).
The following list summarizes the way you work with groups for each data region:
Table Define nested row groups, adjacent row groups, and recursive hierarchy row groups (such as for
an organizational chart). By default, a table includes a details group. Add groups by dragging dataset
fields to the Grouping pane for a selected table.
Matrix Define nested row and column groups, and adjacent row and column groups. Add groups by
dragging dataset fields to the Grouping pane for a selected matrix.
List By default, supports the details group. Typical use is to support one level of grouping. Add groups by
dragging dataset fields to the Grouping pane for a selected list.
After you add a group, the row and column handles of the data region change to reflect group membership.
When you delete a group, you have the choice between deleting the group definition only or deleting the group
and all its associated rows and columns. For more information, see Tablix Data Region Cells, Rows, and Columns
(Report Builder) and SSRS.
To limit the data to display or use in calculations for detail or group data, set filters on the group. For more
information, see Add Dataset Filters, Data Region Filters, and Group Filters (Report Builder and SSRS).
By default, when you create a group, the sort expression for the group is the same as the group expression. To
change the sort order, change the sort expression. For more information, see Filter, Group, and Sort Data (Report
Builder and SSRS).
Understanding Group Membership for Tablix Cells
Cells in a row or column of a tablix data region can belong to multiple row and column groups. When you
define an expression in the text box of a cell that uses an aggregate function (for example,
=Sum(Fields!FieldName.Value ), the default group scope for a cell is the inner most child group to which it
belongs. When a cell belongs to both row and column groups, the scope is both innermost groups. You can also
write expressions that calculate aggregate subtotals scoped to a group relative to another set of data. For
example, you can calculate the percent of a group relative to the column group or to all data for the data region
(such as =Sum(Fields!FieldName.Value)/Sum(Fields!FieldName.Value,"ColumnGroup") ). For more information, see
Tablix Data Region (Report Builder and SSRS) and Expression Scope for Totals, Aggregates, and Built-in
Collections (Report Builder and SSRS).
See Also
Add or Delete a Group in a Data Region (Report Builder and SSRS)
Add a Total to a Group or Tablix Data Region (Report Builder and SSRS)
Sort Data in a Data Region (Report Builder and SSRS)
Drilldown Action (Report Builder and SSRS)
Tables, Matrices, and Lists (Report Builder and SSRS)
Creating Recursive Hierarchy Groups (Report
Builder and SSRS)
11/2/2020 • 2 minutes to read • Edit Online
To display recursive data in Reporting Services paginated reports (where the relationship between parent and
child is represented by fields in the dataset), set the data region group expression based on the child field and
set the Parent property based on the parent field.
Displaying hierarchical data is a common use for recursive hierarchy groups, for example, employees in an
organizational chart. The dataset includes a list of employees and the managers, where the manager names also
appear in the list of employees.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
See Also
Tables, Matrices, and Lists (Report Builder and SSRS)
Tablix Data Region (Report Builder and SSRS)
Aggregate Functions Reference (Report Builder and SSRS)
Tables (Report Builder and SSRS)
Matrices (Report Builder and SSRS)
Lists (Report Builder and SSRS)
Tables, Matrices, and Lists (Report Builder and SSRS)
Add a Details Group (Report Builder and SSRS)
11/2/2020 • 2 minutes to read • Edit Online
In a Reporting Services paginated report, the detail data from a report dataset is specified as a group with no
group expression. Add a detail group to an existing tablix data region when you want to display the detail data
for a matrix, add back detail data that you have deleted from a table or list, or to add additional detail groups.
For more information about groups, see Understanding Groups (Report Builder and SSRS).
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
See Also
Add or Delete a Group in a Data Region (Report Builder and SSRS)
Understanding Groups (Report Builder and SSRS)
Tablix Data Region (Report Builder and SSRS)
Tables (Report Builder and SSRS) Matrices (Report Builder and SSRS)
Lists (Report Builder and SSRS)
Tables, Matrices, and Lists (Report Builder and SSRS)
Add a Total to a Group or Tablix Data Region
(Report Builder and SSRS)
11/2/2020 • 2 minutes to read • Edit Online
In a Reporting Services paginated report, you can add totals in a tablix data region for a group or for the entire
data region. By default, a total is the sum of the numeric, non-null data in a group or in the data region, after
filters are applied. To add totals for a group, click Add Total on the shortcut menu for the group in the Grouping
pane. To add totals for an individual cell in the tablix body area, click Add Total on the shortcut menu for the
cell. The Add Total command is context-sensitive and enabled only for numeric fields. Depending on the tablix
cell that you select, you can add a total for a single cell by selecting a cell in the tablix body area or for the entire
group by selecting a cell in the tablix row group area or the tablix column group area. For more information
about tablix areas, see Tablix Data Region (Report Builder and SSRS).
After you add a total, you can change the default function Sum to a different aggregate function from the list of
built-in report functions. For more information, see Aggregate Functions Reference (Report Builder and SSRS).
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in
SQL Server Data Tools. Each authoring environment provides different ways to create, open, and save reports
and related items.
See Also
Expression Scope for Totals, Aggregates, and Built-in Collections (Report Builder and SSRS)
Tablix Data Region (Report Builder and SSRS)
Tables, Matrices, and Lists (Report Builder and SSRS)
Change an Item Within a Cell (Report Builder and
SSRS)
11/2/2020 • 2 minutes to read • Edit Online
In Reporting Services paginated reports, only a non-container item, such as a text box, line, or image, can be
replaced by a new report item. For example, you can drag a table into a text box to replace the text box with a
table.
If the cell contains a container item such as a rectangle, list, table, or matrix, the new item is added to the
containing item instead of replacing it. To replace a container item with a new item, delete the container. Deleting
the container item replaces it with a text box, which you can then replace with another item.
By default, all cells in a table, matrix, or list data region contain a text box.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
NOTE
The Image Proper ties dialog box opens when you drag an image report item to a cell, where you can set properties
such as the source of the image before the image is added to the cell.
See Also
Images, Text Boxes, Rectangles, and Lines (Report Builder and SSRS)
Tables, Matrices, and Lists (Report Builder and SSRS)
Change Row Height or Column Width (Report
Builder and SSRS)
11/2/2020 • 2 minutes to read • Edit Online
When you set a row height, you are specifying the maximum height for the row in the rendered report.
However, by default, text boxes in the row are set to grow vertically to accommodate their data at run-time, and
this can cause a row to expand beyond the height that you specify. To set a fixed row height, you must change
the text box properties so they do not automatically expand.
When you set a column width, you are specifying the maximum width for the column in the rendered report.
Columns do not automatically adjust horizontally to accommodate text.
If a cell in a row or column contains a rectangle or data region, the minimum height and width of the cell is
determined by the height and width of the contained item. For more information, see Rendering Behaviors
(Report Builder and SSRS).
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
2. In the Proper ties pane that displays, modify the Height property, and then click anywhere outside the
Proper ties pane.
To prevent a row from automatically expanding vertically
1. In Design view, click anywhere in the tablix data region to select it. Gray row handles appear on the
outside border of the tablix data region.
2. Click the row handle to select the row.
3. In the Properties pane, set CanGrow to False .
NOTE
If you cannot see the Properties pane, from the View menu, click Proper ties .
See Also
Tablix Data Region (Report Builder and SSRS)
Tablix Data Region Cells, Rows, and Columns (Report Builder) and SSRS
Tables (Report Builder and SSRS)
Matrices (Report Builder and SSRS)
Lists (Report Builder and SSRS)
Tables, Matrices, and Lists (Report Builder and SSRS)
Insert or Delete a Column (Report Builder and
SSRS)
11/2/2020 • 2 minutes to read • Edit Online
You can add or delete columns in a tablix data region in a Reporting Services paginated report. The tablix data
region can be a table, a matrix, or a list. The following procedures do not apply to the chart and gauge data
regions.
In a tablix data region, you can add columns that are associated with a group (inside a group) or that are not
associated with a group (outside a group). A column that is inside a group repeats once per unique group value.
For example, a column inside a group based the value in a data column that contains color names, repeats once
per distinct color name. For nested groups, a column can be outside the child group but inside the parent group.
In this case, the row repeats once for each unique value in the parent group.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
To select a data region so that the row and column handles appear
In Design view, click the upper left corner of the tablix data region, so that column and row handles
appear above and next to it.
For more information about data region areas, see Tables, Matrices, and Lists (Report Builder and SSRS).
See Also
Understanding Groups (Report Builder and SSRS)
Tablix Data Region (Report Builder and SSRS)
Tables (Report Builder and SSRS)
Matrices (Report Builder and SSRS)
Lists (Report Builder and SSRS)
Tables, Matrices, and Lists (Report Builder and SSRS)
Insert or Delete a Row (Report Builder and SSRS)
11/2/2020 • 2 minutes to read • Edit Online
You can add or delete rows in a tablix data region in a Reporting Services paginated report. The tablix data
region can be a table, a matrix, or a list. The following procedures do not apply to the chart and gauge data
regions.
In a tablix data region, you can add rows that are associated with a group (inside a group) or that are not
associated with a group (outside a group). A row that is inside a group repeats once per unique group value. For
example, a row inside a group based on the value in a data column that contains color names, repeats once per
distinct color name. For nested groups, a row can be outside the child group but inside the parent group. In this
case, the row repeats once for each unique value in the parent group.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
See Also
Tablix Data Region (Report Builder and SSRS)
Understanding Groups (Report Builder and SSRS)
Tables (Report Builder and SSRS)
Matrices (Report Builder and SSRS)
Lists (Report Builder and SSRS)
Tables, Matrices, and Lists (Report Builder and SSRS)
Merge Cells in a Data Region (Report Builder and
SSRS)
11/2/2020 • 2 minutes to read • Edit Online
In a Reporting Services paginated report, you can merge cells in a data region to combine cells, improve data
region appearance, or provide spanning labels for column groups and row groups.
You can only merge cells within each area of a data region: corner, column headers, group definition (or row
headers), and body. You can't merge cells that cross area boundaries. For example, you can't merge a cell in the
data region corner area with a cell in the row group area. Read more about Tables, Matrices, and Lists (Report
Builder and SSRS).
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
See Also
Tablix Data Region
Tables (Report Builder and SSRS)
Create a Matrix
Create Invoices and Forms with Lists
Tables, Matrices, and Lists (Report Builder and SSRS)
Create a Recursive Hierarchy Group (Report Builder
and SSRS)
11/2/2020 • 2 minutes to read • Edit Online
In Reporting Services paginated reports, a recursive hierarchy group organizes data from a single report dataset
that includes multiple hierarchical levels, such as the report-to structure for manager-employee relationships in
an organizational hierarchy.
Before you can organize data in a table as a recursive hierarchy group, you must have a single dataset that
contains all the hierarchical data, You must have separate fields for the item to group and for the item to group
by. For example, a dataset where you want to group employees recursively under their manager might contain a
name, an employee name, an employee ID, and a manager ID.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
NOTE
If you do not see the Properties pane, click Proper ties on the View tab.
2. In the Properties pane, expand the Padding node, click Left , and from the drop-down list, select
<Expression...> .
3. In the Expression pane, type the following expression:
=CStr(2 + (Level()*10)) + "pt"
The Padding properties all require a string in the format nnyy, where nn is a number and yy is the unit of
measure. The example expression builds a string that uses the Level function to increase the size of the
padding based on recursion level. For example, a row that has a level of 1 would result in a padding of (2
+ (1*10))=12pt, and a row that has a level of 3 would result in a padding of (2 + (3*10))=32pt. For
information about the Level function, see Level.
4. Click OK .
Run the report. The report displays a hierarchical view of the grouped data.
See Also
Creating Recursive Hierarchy Groups (Report Builder and SSRS)
Filter, Group, and Sort Data (Report Builder and SSRS)
Aggregate Functions Reference (Report Builder and SSRS)
Tables (Report Builder and SSRS)
Matrices (Report Builder and SSRS)
Lists (Report Builder and SSRS)
Tables, Matrices, and Lists (Report Builder and SSRS)
Add or Delete a Group in a Data Region (Report
Builder and SSRS)
11/2/2020 • 5 minutes to read • Edit Online
In Reporting Services paginated reports, add a group to a data region when you want to organize data by a
specific value or set of expressions, for display and calculations. A group has a name and an expression that
identifies which data from a dataset belongs to the group. For more information about groups, see
Understanding Groups (Report Builder and SSRS).
In a tablix data region, click in the table, matrix, or list to display the Grouping pane. Drag dataset fields to the
Row Group and Column Group pane to create parent or child groups. Right-click an existing group to add an
adjacent group. By definition, the details group is the innermost group and can only be added as a child group.
Right-click an existing group to delete it. Rows and columns on which to display group values are automatically
added for you. For more information, see Tables, Matrices, and Lists (Report Builder and SSRS).
In a Chart data region, click in the chart to display the drop-zones. Create groups by dragging dataset fields to
the category and series drop zones. To add nested groups, add multiple fields to the drop-zone.
Groups are not defined in a gauge by default. The default behavior for the gauge is to aggregate all values in the
specified field into one value that is displayed on the gauge. For more information, see Gauges (Report Builder
and SSRS).
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
NOTE
If you do not see the Grouping pane, on the View tab, click Grouping .
2. Drop the field above or below the group hierarchy using the guide bar to place the group as a parent
group or a child group to an existing group.
The group is added with a default name, group expression, and sort expression that is based on the field
name.
NOTE
Verify that after you remove a details row, the expression in each cell specifies an aggregate expression where
appropriate. If necessary, edit the expression to specify aggregate functions as needed.
See Also
Report and Group Variables Collections References (Report Builder and SSRS)
Group Expression Examples (Report Builder and SSRS)
Filter, Group, and Sort Data (Report Builder and SSRS)
Tablix Data Region (Report Builder and SSRS)
Tables (Report Builder and SSRS)
Matrices (Report Builder and SSRS)
Lists (Report Builder and SSRS)
Tables, Matrices, and Lists (Report Builder and SSRS)
Display Headers and Footers with a Group (Report
Builder and SSRS)
5/20/2020 • 3 minutes to read • Edit Online
You can help control whether a static row, such as a group header or footer, renders with dynamic rows that are
associated with a group in a tablix data region.
To repeat all the column headings or row headings on multiple pages, you can set properties for the tablix data
region. For more information, see Display Row and Column Headers on Multiple Pages (Report Builder and
SSRS).
To control the rendering behavior for dynamic rows and columns that are associated with nested groups, or for
static rows and columns that are associated with labels or subtotals, you must set properties for the tablix
member. A tablix member represents a static or dynamic row or column. A static member repeats once. For
example, a grand total row is a static row. A dynamic member repeats once for each group instance. For
example, a row that is associated with a group that has the group expression [Territory] repeats once for each
unique value for territory. For more information about tablix members, see Tablix Data Region Cells, Rows, and
Columns (Report Builder) and SSRS.
You can select a tablix member in the Grouping pane and set the properties KeepWithGroup , KeepTogether ,
and RepeatOnNewPage in the Properties pane. Use KeepWithGroup to help display group headers and
footers on the same page as the group. Use KeepTogether to help display static members with the rows or
columns of a group. Use RepeatOnNewPage to repeat the group header or footer on every page that displays
at least one complete instance of the row group member designated by the KeepWithGroup value.
RepeatOnNewPage is not supported for column group members.
NOTE
KeepWithGroup , KeepTogether , and RepeatOnNewPage are group member properties that you can set by using
the Advanced Mode of the Grouping pane. For more information, see Grouping Pane (Report Builder).
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
To keep a static row with a set of dynamic rows associated with a row group
1. On the design surface, click anywhere in the tablix data region to select it. The Grouping pane displays the
row and column groups for the data region.
2. On the right side of the Grouping pane, click the down arrow, and then click Advanced Mode . The Row
Groups pane displays the hierarchical static and dynamic members for the row groups hierarchy.
3. Click the static member that corresponds to the row header or footer that you want to keep with the
group rows. The Properties pane displays the Tablix Member properties.
4. In the Properties pane, click KeepWithGroup , and then choose one of the following values from the
drop-down list:
None Select this option to indicate no preference for keeping this member with the members of
the selected row group.
Before Select this option to keep this member with the members of the previous group. You
might use this for group footer rows.
After Select this option to keep this member with the members of the following group. You might
use this for group header rows.
5. (Optional) Preview the report. Where possible, the report renderer keeps this member with the specified
row group members.
To keep a static column with a set of dynamic columns associated with a column group
1. On the design surface, click anywhere in the tablix data region to select it. The Grouping pane displays the
row and column groups for the data region.
2. On the right side of the Grouping pane, click the down arrow, and then click Advanced Mode . The
Column Groups pane displays the hierarchical static and dynamic members for the column group
hierarchy.
3. Click the static member that corresponds to the static column that you want to keep with the group
columns. The Properties pane displays the Tablix Member properties.
4. In the Properties pane, click KeepWithGroup , and then choose one of the following values from the
drop-down list:
None Select this option to indicate no preference for keeping this member with the members of
the selected column group.
Before Select this option to keep this member with the members of the previous group. You
might use this for column labels that display before the specified column group members.
After Select this option to keep this member with the members of the following group. You might
use this for column totals that display after the specified column group members.
5. (Optional) Preview the report. Where possible, the report renderer keeps this member with the specified
column group members.
See Also
Tablix Data Region Cells, Rows, and Columns (Report Builder) and SSRS
Create a Stepped Report (Report Builder and SSRS)
3/31/2021 • 4 minutes to read • Edit Online
A stepped report is a type of Reporting Services paginated report that shows detail rows or child groups
indented under a parent group in the same column, as shown in the example below:
Traditional table reports place the parent group in an adjacent column on the report. The new tablix data region
enables you to add a group and detail rows or child groups to the same column. To differentiate the group rows
from the detail or child group rows, you can apply formatting such as font color, or you can indent the detail
rows.
The procedures in this topic show you how to manually create a stepped report, but you can also use the New
Table and Matrix Wizard. It provides the layout for stepped reports, making it easy to create them. After you
complete the wizard, you can further enhance the report.
NOTE
The wizard is available only in Report Builder.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
The following figure shows how the rendered data region might look when you view the report.
3. For a stepped report, you do not need the first column that shows the group instance. Instead, copy the
value in the group header cell, delete the group column, and paste in the first text box in the group
header row. To remove the group column, right-click the group column or cell, and click Delete
Columns . The following figure shows what the data region might look like on the design surface.
4. To indent the detail rows under the group header row in the same column, change the padding of the
detail data cell.
a. Select the cell with the detail field that you want to indent. The text box properties for that cell
appear in the Properties pane.
b. In the Properties pane, under Alignment , expand the properties for Padding .
c. For Left , type a new padding value, such as .5in . Padding indents the text in the cell by the value
you specify. The default padding is 2 points. Valid values for the Padding properties are zero or a
positive number, followed by a size designator.
Size designators are:
cm Centimeters
mm Millimeters
DESIGN ATO R DESC RIP T IO N
NOTE
There are several ways to add groups to a data region. For more information, see Add or Delete a Group
in a Data Region (Report Builder and SSRS).
See Also
Page Headers and Footers (Report Builder and SSRS)
Formatting Report Items (Report Builder and SSRS)
Tablix Data Region (Report Builder and SSRS)
Tables (Report Builder and SSRS)
Matrices (Report Builder and SSRS)
Lists (Report Builder and SSRS)
Tables, Matrices, and Lists (Report Builder and SSRS)
Add, Move, or Delete a Table, Matrix, or List
(Report Builder and SSRS)
11/2/2020 • 2 minutes to read • Edit Online
In a Reporting Services paginated report, a data region displays data from a report dataset. Data regions include
table, matrix, list, chart, and gauge. To nest one data region inside another, add each data region separately, and
then drag the child data region onto the parent data region.
The simplest way to add a table or matrix data region to your report is to run the New Table or New Matrix
Wizard. These wizards will guide you through the process of choosing a connection to a data source, arranging
fields, and choosing the layout and style. The wizards are only available in Report Builder.
See Also
Tablix Data Region (Report Builder and SSRS)
Tables, Matrices, and Lists (Report Builder and SSRS)
Report Parts (Report Builder and SSRS)
11/2/2020 • 10 minutes to read • Edit Online
Report items such as tables, matrices, charts, and images can be published as report parts. Report parts are
paginated report items that have been published separately to a report server and that can be reused in other
paginated reports. Report parts have an .rsc file extension.
With report parts, work groups can now take advantage of the different strengths and roles of their team
members. For example, if you are responsible for creating charts, you can save your charts as separate parts
that you and your coworkers can reuse in other reports. You can publish report parts on a report server or
SharePoint site integrated with a report server. You can reuse them in multiple reports, and you can update
them on the server.
The report part that you add to your report maintains a relationship to the instance of the report part on the site
or server by means of a unique ID. After you add report parts from a site or server to a report, you can modify
them, independent of the original report part on the site or server. You can accept updates that others have
made to the report part on the site or server, and you can save the modified report part back to the site or
server, either adding a new report part or writing over the original, if you have sufficient permissions.
4. Person C adds the chart to a report and changes this chart in the report from a bar to a pie chart.
5. Person C has permissions to overwrite the chart on the server and does so, republishing it to the server.
This updates the published copy of the chart on the server. Person C does not choose to share the dataset
either, so it remains embedded in the chart.
6. Person B accepts the updated chart from the server. This overwrites the changes that Person B had made
to the chart in Person B's report.
Report Builder checks for differences between the date the report part was last updated on the server and the
date when you last synchronized the report part with the server. It does not check the date that you modified the
report part in your report. Thus, the report part in your report and the report part on the server could be quite
different, but when Report Builder checks for updates, it will not find any.
Accepting Updates
When you accept an update for a report part, it completely replaces the copy of the report part already in your
report. You cannot combine features of the report part in the report with features of the published report part
on the server. However, if you have changed one of the report part's dependencies, such as an embedded
dataset, Report Builder does not copy over the dependency already in your report. It downloads a new copy of
the dependency, and updates the report part to point to the new copy.
Reverting to a Previous Version of a Report Part
If you have changed a version of a report part in your report and decide you want to replace it with the version
that is on the server, you cannot use the Update dialog box to do that. Updating is only for report parts that
have changed on the server since you downloaded them.
To revert to the version on the server, just delete the version you have in your report and add it again.
How-to Topics
Publish and Republish Report Parts (Report Builder and SSRS)
Browse for Report Parts and Set a Default Folder (Report Builder and SSRS)
See Also
Report Parts and Datasets in Report Builder
Managing Report Parts
Publish and Republish Report Parts (Report Builder
and SSRS)
11/2/2020 • 2 minutes to read • Edit Online
Report parts are paginated report items that have been published separately to a report server and that can be
reused in other paginated reports. You can publish a report part with default settings in a default location, or
you can edit report part metadata such as name and description, and save it somewhere else on a report server.
You can also save it to a SharePoint site that is integrated with a report server if you have the correct
permissions.
You can publish just the report part, with the dataset that it depends on embedded in it, or you can publish the
dataset separately. If you publish the dataset separately, it becomes a shared dataset, and the report part links to
it. For more information, see Report Parts and Datasets in Report Builder.
You can republish an existing report part. If you have permissions, you can save over the original instance of the
report part on the server, even if you didn't create it. You can also publish it as a new report part and save it
either in the same or a different location.
NOTE
It is a good idea to give the report part name and description, to help people identify it when searching. The
maximum length for the name of a report part is 260 characters for the entire path, including the names of the
folders on the server, followed by the actual name of the report part.
4. To save your report part to a folder other than the default, click the Browse button.
5. When you have set the options for all the report parts in the report, click Publish .
After you publish the report parts, the dialog box shows which were successfully published and which
were not. You can view details in the Publish Repor t Par ts dialog box for the report parts that failed to
publish.
6. Click Close .
NOTE
If you publish it as a new report part, it will have a new unique ID. It will no longer receive updates if the original report
part changes.
See Also
Report Parts (Report Builder and SSRS)
Report Parts and Datasets in Report Builder
Browse for Report Parts and Set a Default Folder (Report Builder and SSRS)
Browse for Report Parts and Set a Default Folder
(Report Builder and SSRS)
11/2/2020 • 2 minutes to read • Edit Online
The easiest way to create a Reporting Services paginated report is to add existing report parts, such as tables
and charts, to your report from the Report Part Gallery. When you add a report part to your report, you are also
adding everything it must have to work. For example, any report part that displays data depends on a dataset,
that is, a query and a connection to a data source. After you add the report part to your report, you can modify it
as much as you need.
You can set a default folder to publish report parts to the report server or SharePoint site integrated with a
report server.
For more information, see Report Parts (Report Builder and SSRS).
NOTE
You must be connected to a report server to browse for report parts.
2. You can narrow your search by specifying details about the report part. Type all or part of the name and
description in the Search box, or click Add Criteria and add values for any or all of these fields:
Created by
Date created
Date last modified
Last modified by
Server folder
Type
For example, to find an image, click Add Criteria , and then click Type . In the dropdown box, select the
Image check box, press ENTER, and then click the Search magnifying glass.
NOTE
For the Created by and Last modified by values, search for the person's user name as it is represented on the
report server.
See Also
Report Parts (Report Builder and SSRS)
Report Parts and Datasets in Report Builder
Publish and Republish Report Parts (Report Builder and SSRS)
Report Parts in Report Designer (SSRS)
11/2/2020 • 4 minutes to read • Edit Online
In Report Designer, after you create tables, charts, and other paginated report items in a project, you can publish
them as report parts to a report server or SharePoint site integrated with a report server so that you and others
can reuse them in other reports.
In general, report parts function the same way in Report Designer and in Report Builder. To read about basic
functionality, see Report Parts (Report Builder and SSRS).
There are fundamental differences in the way report parts work in Report Designer. A main difference is the
work flow. Report Builder enables collaborative authoring: I create a report part and publish it. You can reuse,
modify, and republish it. In Report Designer, publishing is one-way: I can publish a report part from Report
Designer, and you can reuse it. But I cannot reuse an existing report part in a report in Report Designer. This
topic elaborates on these differences, after a quick overview of report parts.
1. In Report Designer, Person A creates a project that contains a report with a chart that depends on an
embedded dataset.
2. Person A flags the chart with its embedded dataset for publishing. Report Designer assigns it a unique ID.
Person A then deploys the report to the report server. Report Designer publishes the chart.
3. Person B creates a blank report in Report Builder and adds the chart to it. The chart is now part of Person
B's report, along with the embedded dataset. Person B can modify the instances of the chart and dataset
that are in the report. This will have no effect on the instances of the chart and dataset on the report
server, nor will it break the relationship between the instances in the report and on the report server.
Next steps
Managing Report Parts
More questions? Try asking the Reporting Services forum
Managing Report Parts
11/2/2020 • 6 minutes to read • Edit Online
Report parts can be reused in paginated reports, by multiple users and in multiple reports. Users can search for
report parts on the server and add them to a report. Users can also be informed of updates to the report part
on the server, and republish new versions of a report part. Those report authoring actions can be affected by
and controlled by reporting services security permissions. This topic reviews report part properties and
behavior after they are on the server.
REP O RT PA RT
Add, delete, edit item properties, manage security, and Content Manager
download report parts
My Reports
Report Builder
Add, delete, edit item properties, manage security, and Full Control
download report parts
Add, delete, edit item properties, and download report parts Design
Contribute
View Only
Security considerations
When report part definitions are re-used in a report, they are copied into the report definition in their
entirety, along with the identifying ComponentID. If a report part is updated on the server, users can
choose to download the updated report parts to their report. The updates are also complete copies of the
report part, replacing the existing version of the report part that was in their report.
IMPORTANT
In each of these steps, ensure that the report parts are being reused in reports from trusted locations and users.
Report parts use the same permission policies as the existing "Resource" item type. Within a folder, there
is no differentiation between traditional resource items and report parts from a security inheritance
perspective. The report part will inherit the same permission policy as the images in the same folder.
When this distinction is needed, item level security can be configured for the desired report parts. Or, you
can put report parts should be in separate folders that have the correct permissions configured.
See Also
Report Parts and Datasets in Report Builder
Report Server Content Management (SSRS Native Mode)
Report Parts in Report Designer (SSRS)
Charts (Report Builder and SSRS)
11/2/2020 • 8 minutes to read • Edit Online
Read about using chart data regions to help readers of your Reporting Services paginated reports understand
large volumes of aggregated data at a glance.
The more time you spend carefully preparing and understanding your data before you create a chart, the easier
it will be to design your charts quickly and efficiently. For help choosing which chart to use, see Chart Types To
start experimenting with charts immediately, see the bar, column, sparkline, and pie chart tutorials in Report
Builder Tutorials.
The following illustration shows many of the different elements used in the chart.
You can publish charts separately from a report as report parts. For more information, see Report Parts.
Designing a Chart
After you add a chart data region to the design surface, you can drag report dataset fields for numeric and non-
numeric data to the Chart Data pane of the chart. When you click the chart on the design surface, the Chart Data
pane appears, with three areas-Category Groups, Series Groups, and Values. If the report has a shared or
embedded dataset, the fields in the dataset appear in the Report Data pane. Drag fields from the dataset into the
appropriate area of the Chart Data pane. By default, when a field is added to one of the areas of the chart,
Reporting Services calculates an aggregate for the field. You can also use series grouping to dynamically
generate series. A chart is organized like a matrix.
NOTE
The data in the chart at design time is different from the data in the chart when the report is processed. It is not your real
data. It is generated data that has been added so that you can design your chart with an idea of what the chart will look
like.
For more information about aggregate expressions, see Aggregate Functions Reference (Report Builder and
SSRS).
In This Section
Add a Chart to a Report (Report Builder and SSRS)
Describes the first steps in adding a chart to your report.
Chart Types (Report Builder and SSRS)
Describes all of the chart types and sub-types available in Reporting Services, including considerations and best
practices for using various chart types.
Formatting a Chart (Report Builder and SSRS)
Use formatting to improve the overall appearance and highlight key data points of your chart.
Empty and Null Data Points in Charts (Report Builder and SSRS)
Describes considerations when working with charts based on fields with empty or null values.
Displaying a Series with Multiple Data Ranges on a Chart (Report Builder and SSRS)
Describes how to add scale breaks to a series that contains more than one range of data.
Multiple Series on a Chart (Report Builder and SSRS)
Describes several methods of showing multiple series on the same chart, including combining chart types, using
the secondary axis, specifying different chart types and using multiple chart areas.
Linking Multiple Data Regions to the Same Dataset (Report Builder and SSRS)
Provide different views of data from the same report dataset.
Add or Delete a Group in a Chart (Report Builder and SSRS)
Describes adding groups and nested groups to a chart.
Add a Moving Average to a Chart (Report Builder and SSRS)
Describes using the Moving Average formula to calculate the average of the data in your series.
Troubleshoot Charts (Report Builder and SSRS)
Describes tips for working with charts.
See Also
Images, Text Boxes, Rectangles, and Lines (Report Builder and SSRS)
Interactive Sort, Document Maps, and Links (Report Builder and SSRS)
Nested Data Regions (Report Builder and SSRS)
Tutorial: Add a Column Chart to Your Report (Report Builder)
Tutorial: Add a Pie Chart to Your Report (Report Builder)
Tutorial: Add a Bar Chart to Your Report (Report Builder)
Add a Chart to a Report (Report Builder and SSRS)
3/5/2021 • 2 minutes to read • Edit Online
When you want to summarize data in a visual format in a Reporting Services paginated report, use a Chart data
region. It is important to choose an appropriate chart type for the type of data that you are presenting. This
affects how well the data can be interpreted when put in chart form. For more information, see Charts (Report
Builder and SSRS).
The simplest way to add a Chart data region to your report is to run the New Chart Wizard. The wizard offers
column, line, pie, bar, and area charts. For these and other chart types, you can also add a chart manually.
After you add a Chart data region to the design surface, you can drag report dataset fields for numeric and non-
numeric data to the Chart Data pane of the chart. Click the chart to display the Chart Data pane with its three
areas: Series Groups, Category Groups, and Values.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
On the Inser t tab, click Char t , and then click Char t Wizard .
2. Follow the steps in the New Chart wizard.
3. On the Home tab, click Run to see the rendered report.
4. On the Run tab, click Design to continue working on the report.
See Also
Charts (Report Builder and SSRS)
Chart Types (Report Builder and SSRS)
Empty and Null Data Points in Charts (Report Builder and SSRS)
Tutorial: Adding a Bar Chart to Your Report (Report Builder)
Tutorial: Adding a Bar Chart to a Report (Report Designer)
Tutorial: Adding a Pie Chart to Your Report (Report Builder)
Tutorial: Adding a Pie Chart to a Report (Report Designer)
Chart Types (Report Builder and SSRS)
11/2/2020 • 2 minutes to read • Edit Online
It is important to choose an appropriate chart type for the type of data that you are presenting. This will
determine how well the data can be interpreted when put in chart form. For example, if your dataset contains a
lot of data points relative to the size of the chart, it may be better presented using an area, line, or scatter chart.
For discussion on how to prepare your data depending on the chart type selected, see Charts (Report Builder
and SSRS).
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
Data Bars
Column Charts
(Report Builder and
SSRS)
Scatter Charts
(Report Builder and
SSRS)
Sparklines
Next steps
Charts
Empty and Null Data Points in Charts
Add a Chart to a Report
More questions? Try asking the Reporting Services forum
Change a Chart Type (Report Builder and SSRS)
11/2/2020 • 2 minutes to read • Edit Online
When you first insert a chart into a Reporting Services paginated report, the Select Char t Type dialog
appears. If you cancel this dialog, a Column chart type is added by default.
At any point when designing the report, you can change the chart type to something more suitable to the
report. It is important to select the correct chart type for your data so that it can be interpreted correctly. You
should understand each chart type's characteristics to determine what chart type is best suited for your data. For
more information, see Chart Types (Report Builder and SSRS).
When multiple series are displayed on a chart, you may want to change the chart type of an individual series.
You can only change the chart type of an individual series if the chart type is Area, Column, Line, or Scatter. For
all other chart types, all series in your chart will be changed to the selected chart type.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
NOTE
When there are multiple series on a chart, you must right-click on the series, not the chart, which you want to
change.
2. In the SelectChar t Type dialog box, select a chart type from the list.
See Also
Charts (Report Builder and SSRS)
Gauges (Report Builder and SSRS)
Add a Chart to a Report (Report Builder and SSRS)
Area Charts (Report Builder and SSRS)
11/2/2020 • 2 minutes to read • Edit Online
An area chart displays a series as a set of points connected by a line, with all the area filled in below the line. For
more information on how to add data to an area chart, see Charts (Report Builder and SSRS).
The following illustration shows an example of a stacked area chart. The data is well suited for display on a
stacked area chart because the chart can display totals for all series as well as the proportion that each series
contributes to the total.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
Variations
Stacked area . An area chart where multiple series are stacked vertically. If there is only one series in
your chart, the stacked area chart will display the same as an area chart.
Percent stacked area . An area chart where multiple series are stacked vertically to fit the entire chart
area. If there is only one series in your chart, the stacked area chart will display the same as an area chart.
Smooth area . An area chart where the data points are connected by a smooth line instead of a regular
line. Use a smooth area chart instead of an area chart when you are more concerned with displaying
trends than with displaying the values of individual data points.
See Also
Charts (Report Builder and SSRS)
Chart Types (Report Builder and SSRS)
Line Charts (Report Builder and SSRS)
Change a Chart Type (Report Builder and SSRS)
Empty and Null Data Points in Charts (Report Builder and SSRS)
Bar Charts (Report Builder and SSRS)
3/5/2021 • 4 minutes to read • Edit Online
A bar chart displays series as sets of horizontal bars. The plain bar chart is closely related to the column chart,
which displays series as sets of vertical bars, and the range bar chart, which displays series as sets of horizontal
bars with varying beginning and end points.
The bar chart is the only chart type that displays data horizontally. For this reason, it is popular for representing
data that occurs over time, with a finite start and end date. It is also popular for showing categorical information
since the categories can be displayed horizontally. For more information about how to add data to a bar chart,
see Charts (Report Builder and SSRS).
The following illustration shows a bar chart. The bar chart is well suited for this data because all three series
share a common time period, allowing for valid comparisons to be made.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
See Also
Charts (Report Builder and SSRS)
Chart Types (Report Builder and SSRS)
Empty and Null Data Points in Charts (Report Builder and SSRS)
Column Charts (Report Builder and SSRS)
Range Charts (Report Builder and SSRS)
Formatting Series Colors on a Chart (Report Builder and SSRS)
Formatting Axis Labels on a Chart (Report Builder and SSRS)
Formatting the Legend on a Chart (Report Builder and SSRS)
Add Bevel, Emboss, and Texture Styles to a Chart (Report Builder and SSRS)
Tutorial: Adding a Bar Chart to a Report (Report Builder)
Tutorial: Adding a Bar Chart to a Report
Column Charts (Report Builder and SSRS)
11/2/2020 • 2 minutes to read • Edit Online
A column chart displays a series as a set of vertical bars that are grouped by category. Column charts are useful
for showing data changes over a period of time or for illustrating comparisons among items. The plain column
chart is closely related to the bar chart, which displays series as sets of horizontal bars, and the range column
chart, which displays series as sets of vertical bars with varying beginning and end points. For more
information, see Bar Charts (Report Builder and SSRS) and Range Charts (Report Builder and SSRS).
The column chart is well suited for this data because all three series share a common time period, allowing for
valid comparisons to be made.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
A line chart displays a series as a set of points connected by a single line. Line charts are used to representing
large amounts of data that occur over a continuous period of time. For more information about how to add data
to a line chart, see Charts (Report Builder and SSRS).
The following illustration shows a line chart that contains three series.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
Variations
Smooth line . A line chart that uses a curved line instead of a regular line.
Stepped line . A line chart that uses a stepped line instead of a regular line. The stepped line connects
points by using a line that makes it look like steps on a ladder or staircase.
Sparkline char ts . Variations of the line chart that show only the line series in the cell of a table or
matrix. For more information, see Sparklines and Data Bars (Report Builder and SSRS).
Pie charts and doughnut charts display data as a proportion of the whole. Pie charts are most commonly used
to make comparisons between groups. Pie and doughnut charts, along with pyramid and funnel charts,
comprise a group of charts known as shape charts. Shape charts have no axes. When a numeric field is dropped
on a shape chart, the chart calculates the percentage of each value to the total. For more information on shape
charts, see Shape Charts (Report Builder and SSRS).
The following illustration shows a 3-D pie chart with data labels formatted as percentages. The legend is
positioned in the right-center.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
Variations
Exploded pie . A pie chart where all of the slices are moved away from the center of the pie. In addition
to the exploded pie chart, in which all slices are separated, you can create an exploded slice chart, in
which only one slice is called out.
Doughnut . A pie chart that has an open space in the center.
Exploded doughnut . A doughnut chart where all of the slices are moved away from the center of the
doughnut.
3D Pie . A pie chart that has a 3-D style applied.
3D Exploded Pie . An exploded pie chart that has a 3-D style applied.
For more information, see Add Bevel, Emboss, and Texture Styles to a Chart (Report Builder and SSRS).
See Also
Display Data Point Labels Outside a Pie Chart (Report Builder and SSRS)
Collect Small Slices on a Pie Chart (Report Builder and SSRS)
Display Percentage Values on a Pie Chart (Report Builder and SSRS)
Tutorial: Add a Pie Chart to Your Report (Report Builder)
Formatting the Legend on a Chart (Report Builder and SSRS)
Empty and Null Data Points in Charts (Report Builder and SSRS)
Formatting Series Colors on a Chart (Report Builder and SSRS)
Polar Charts (Report Builder and SSRS)
5/20/2020 • 2 minutes to read • Edit Online
A polar chart displays a series as a set of points that are grouped by category on a 360-degree circle. Values are
represented by the length of the point as measured from the center of the circle. The farther the point is from
the center, the greater its value. Category labels are displayed on the perimeter of the chart. For more
information on how to add data to a polar chart, see Charts (Report Builder and SSRS).
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
Variations
Radar char t . A radar chart displays a series as a circular line or area. Unlike the polar chart, the radar chart
does not display data in terms of polar coordinates.
Example
The following example shows how a radar chart can be used. The table below provides sample data for the
chart.
NAME SA L ES
Shrubs 61
Seeds 78
Bulbs 60
Trees 38
Flowers 81
In this example, the Name field is placed in the Category Groups area. The Sales field is placed in the Values
area. The Sales field is automatically aggregated for the chart when you drop it. The radar chart calculates where
to place the labels based on the number of values in the Sales field, which contains five values and places labels
at five equidistant points on a circle. If the Sales field contained three values, the labels would be placed at three
equidistant points on a circle.
The following illustration shows an example of a radar chart based on the data presented.
See Also
Charts (Report Builder and SSRS)
Formatting a Chart (Report Builder and SSRS)
Chart Types (Report Builder and SSRS)
Line Charts (Report Builder and SSRS)
Empty and Null Data Points in Charts (Report Builder and SSRS)
Range Charts (Report Builder and SSRS)
11/2/2020 • 2 minutes to read • Edit Online
A range chart type displays a set of data points that are each defined by multiple values for the same category.
Values are represented by the height of the marker as measured by the value axis. Category labels are displayed
on the category axis. The plain range chart fills in the area between the top and bottom value for each data
point.
The following illustration shows a plain range chart with three series.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
Variations
Smooth range . A smooth range chart displays curved lines rather than straight.
Column range . A column range chart uses columns instead of areas to display the ranges.
Bar range . A bar range chart uses bars instead of areas to display the ranges.
See Also
Charts (Report Builder and SSRS)
Chart Types (Report Builder and SSRS)
Formatting a Chart (Report Builder and SSRS)
Scatter Charts (Report Builder and SSRS)
11/2/2020 • 2 minutes to read • Edit Online
A scatter chart displays a series as a set of points. Values are represented by the position of the points on the
chart. Categories are represented by different markers on the chart. Scatter charts are typically used to compare
aggregated data across categories. For more information on how to add data to a scatter chart, see Charts
(Report Builder and SSRS)
The following illustration shows an example of a scatter chart.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
Variations
Bubble. Bubble charts display the difference between two values of a data point based on the size of the
bubble. The larger the bubble, the larger the difference between the two values.
3-D Bubble . A bubble chart displayed in 3-D.
A shape chart displays value data as percentages of a whole. Shape charts are typically used to show
proportional comparisons between different values in a set. Categories are represented by individual segments
of the shape. The size of the segment is determined by the value. Shape charts are similar in use to pie charts,
except that they order categories from largest to smallest.
A funnel chart displays values as progressively decreasing proportions. The size of the area is determined by the
series value as a percentage of the total of all values. For example, you might use a funnel chart to display Web
site visitor trends. It is likely that the funnel chart will display a wide area at the top, indicating visitor page hits
to the homepage, and the other areas will be proportionally smaller. For more information about how to add
data to a funnel chart, see Charts (Report Builder and SSRS).
The following illustration shows an example of a funnel chart.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
Variations
Pyramid . A pyramid chart displays proportional data so that the chart looks like a pyramid.
See Also
Charts (Report Builder and SSRS)
Formatting a Chart (Report Builder and SSRS)
Empty and Null Data Points in Charts (Report Builder and SSRS)
Pie Charts (Report Builder and SSRS)
Stock Charts (Report Builder and SSRS)
11/2/2020 • 2 minutes to read • Edit Online
A stock chart is specifically designed for financial or scientific data that uses up to four values per data point.
These values align with the high, low, open and close values that are used to plot financial stock data. This chart
type displays opening and closing values by using markers, which are typically lines or triangles. In the following
example, the opening values are shown by the markers on the left, and the closing values are shown by the
markers on the right.
An example of a stock chart is available as a sample Report Builder report. For more information about
downloading this sample report and others, see Report Builder and Report Designer sample reports.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
Variations
Candlestick . The candlestick chart is a specialized form of the stock chart, wherein boxes are used to show
the range between the open and close values. Like the stock chart, the candlestick chart can display up to
four values per data point.
Next steps
Range Charts
Charts
Formatting a Chart
Axis Properties Dialog Box, Axis Options
More questions? Try asking the Reporting Services forum
Treemap and sunburst charts in Reporting Services
11/2/2020 • 5 minutes to read • Edit Online
The SQL Server Reporting Services treemap and sunburst visualizations are great for visually representing
hierarchical data. This article is an overview of how to add a treemap or sunburst chart to a Reporting Services
report. The article also includes an AdventureWorks sample query to help you get started.
Treemap chart
A treemap chart divides the chart area into rectangles that represent the different levels and relative sizes of the
data hierarchy. The map is similar to branches on a tree that start with a trunk and divide into smaller and
smaller branches. Each rectangle is broken into smaller rectangles that represent the next level in the hierarchy.
The top-level treemap rectangles are arranged with the largest rectangle in the upper left corner of the chart to
the smallest rectangle in the lower right corner. Within a rectangle, the next level of the higher is also arranged
with rectangles from the upper left to the lower right.
For example, in the following image of the sample treemap, the Southwest territory is the largest and Germany
is the smallest. Within the Southwest, Road Bikes are larger than Mountain Bikes.
NOTE
Before you add a chart to your report, create a data source and dataset. For sample data and a sample query, see Sample
AdventureWorks data.
1. Right-click the design surface, then select Inser t > Char t . Select the Treemap icon.
2. Reposition and resize the chart. To use with the sample data, a chart that is 5 inches wide is a good start.
3. Add the following fields from the sample data:
Values : LineTotal
Categor y Groups (in the following order):
a. CategoryName
b. SubcategoryName
Series Groups : TerritoryName
4. To optimize the page size for the general shape of a treemap, set the legend position to the bottom.
5. To add tooltips that display the subcategory and the line total, right-click LineTotal , and then select
Series Proper ties .
For more information, see Show ToolTips on a series (Report Builder and SSRS).
6. Change the default chart title to Categorized Sales by Territor y .
7. The number of label values that are displayed are affected by the size of the font, the size of the overall
chart area, and the size of specific rectangles. To see more labels, change the Label Font property of
LineTotal to 10pt from the default of 8pt .
Sunburst chart
In a sunburst chart, the hierarchy is represented by a series of circles. The highest level of the hierarchy is in the
center, and lower levels of the hierarchy are rings displayed outside the center. The lowest level of the hierarchy
is the outside ring.
To insert a sunburst chart and set up the sample AdventureWorks data
NOTE
Before you add a chart to your report, create a data source and dataset. For sample data and a sample query, see Sample
AdventureWorks data.
1. Right-click the design surface, and then select Inser t > Char t . Select the Sunburst icon.
2. Reposition and resize the chart. To use with the sample data, a chart that is 5 inches wide is a good start.
3. Add the following fields from the sample data:
Values : LineTotal
Categor y Groups (in the following order):
a. CategoryName
b. SubcategoryName
c. SalesReasonName
Series Groups : TerritoryName
4. To optimize the page size for the general shape of a sunburst chart, set the legend position to the bottom.
5. Change the default chart title to Categorized Sales by Territor y, with sales reason .
6. To add the values of the category groups to the sunburst as labels, set the label properties Visible=true
and UseValueAsLabel=false .
The label values that are displayed are affected by the size of the font, the size of the overall chart area,
and the size of specific rectangles. To see more labels, change the Label Font property of LineTotal to
10pt from the default of 8pt .
7. If you want a different range of colors, change the chart Palette property.
Sample AdventureWorks data
This section includes a sample query and the basic steps for creating a data source and dataset in Report Builder.
If your report already contains a data source and dataset, you can skip this section.
The query returns AdventureWorks sales order detail data with sales territory, product category, product
subcategory, and sales reason data.
1. Get the data .
The query in this section is based on the AdventureWorks database, which is available for download from
GitHub: AdventureWorks 2016 full database backup.
2. Create a data source .
a. Under Repor t Data , right-click Data Sources , and then select Add data source .
b. Select Use a connection embedded in my repor t .
c. For connection type, select Microsoft SQL Ser ver .
d. Enter the connection string to your server and database. For example:
e. To verify the connection, select the Test Connection button, and then select OK .
For more information about creating a data source, see Add and verify a data connection (Report Builder
and SSRS).
3. Create a dataset .
a. Under Repor t Data , right-click Datasets , and then select Add dataset .
b. Select Use a dataset embedded in my repor t .
c. Select the data source that you created.
d. Select the Text query type, and then copy and paste the following query into the Quer y text box:
SELECT Sales.SalesOrderHeader.SalesOrderID, Sales.SalesOrderHeader.OrderDate,
Sales.SalesOrderDetail.SalesOrderDetailID, Sales.SalesOrderDetail.ProductID,
Sales.SalesOrderDetail.LineTotal,
Sales.SalesOrderDetail.UnitPrice, Sales.SalesOrderDetail.OrderQty,
Production.Product.Name, Production.Product.ProductNumber, Sales.SalesTerritory.TerritoryID,
lower(Sales.SalesTerritory.Name) AS TerritoryName,
Production.ProductSubcategory.Name AS SubcategoryName,
Production.ProductCategory.Name AS CategoryName, Sales.SalesReason.SalesReasonID,
Sales.SalesReason.Name AS SalesReasonName
FROM Sales.SalesOrderDetail INNER JOIN
Sales.SalesOrderHeader ON Sales.SalesOrderDetail.SalesOrderID =
Sales.SalesOrderHeader.SalesOrderID INNER JOIN
Production.Product ON Sales.SalesOrderDetail.ProductID =
Production.Product.ProductID INNER JOIN
Sales.SalesTerritory ON Sales.SalesOrderHeader.TerritoryID =
Sales.SalesTerritory.TerritoryID AND Sales.SalesOrderHeader.TerritoryID =
Sales.SalesTerritory.TerritoryID AND
Sales.SalesOrderHeader.TerritoryID = Sales.SalesTerritory.TerritoryID
INNER JOIN
Production.ProductSubcategory ON
Production.Product.ProductSubcategoryID = Production.ProductSubcategory.ProductSubcategoryID
AND
Production.Product.ProductSubcategoryID =
Production.ProductSubcategory.ProductSubcategoryID AND
Production.Product.ProductSubcategoryID =
Production.ProductSubcategory.ProductSubcategoryID INNER JOIN
Production.ProductCategory ON
Production.ProductSubcategory.ProductCategoryID = Production.ProductCategory.ProductCategoryID
AND
Production.ProductSubcategory.ProductCategoryID =
Production.ProductCategory.ProductCategoryID AND
Production.ProductSubcategory.ProductCategoryID =
Production.ProductCategory.ProductCategoryID INNER JOIN
Sales.SalesOrderHeaderSalesReason ON
Sales.SalesOrderHeader.SalesOrderID = Sales.SalesOrderHeaderSalesReason.SalesOrderID AND
Sales.SalesOrderHeader.SalesOrderID =
Sales.SalesOrderHeaderSalesReason.SalesOrderID AND Sales.SalesOrderHeader.SalesOrderID =
Sales.SalesOrderHeaderSalesReason.SalesOrderID AND
Sales.SalesOrderHeader.SalesOrderID =
Sales.SalesOrderHeaderSalesReason.SalesOrderID INNER JOIN
Sales.SalesReason ON Sales.SalesOrderHeaderSalesReason.SalesReasonID
= Sales.SalesReason.SalesReasonID AND
Sales.SalesOrderHeaderSalesReason.SalesReasonID =
Sales.SalesReason.SalesReasonID AND Sales.SalesOrderHeaderSalesReason.SalesReasonID =
Sales.SalesReason.SalesReasonID AND
Sales.SalesOrderHeaderSalesReason.SalesReasonID =
Sales.SalesReason.SalesReasonID
e. Select OK .
For more information about creating a dataset, see Create a shared dataset or embedded dataset (Report
Builder and SSRS).
See also
Shared dataset design view (Report Builder)
Show ToolTips on a series (Report Builder and SSRS)
Tutorial: Treemaps in Power BI
Treemap: Microsoft Research Data Visualization Apps for Office
Formatting a Chart (Report Builder and SSRS)
11/2/2020 • 2 minutes to read • Edit Online
After you have defined the data for your chart and it is appearing the way you want, you can add formatting to
improve the overall appearance and highlight key data points. The most common formatting options can be
modified from the Properties dialog box that are found when you right-click a chart element to display its
shortcut menu. Each chart element has its own dialog box. For more information about chart elements, see
Charts (Report Builder and SSRS).
All properties that relate to the chart are located in the Properties pane, but many of these properties can also
be set from a dialog box. If you are formatting the series, you can specify series-specific properties using custom
attributes, which can only be found in the CustomAttributes category of properties, located in the Properties
pane.
To effectively format the chart using a minimal number of steps, change the default border style, palette and
drawing style. These three features produce the largest visible change on the chart. Drawing styles are only
applicable to pie, doughnut, bar and column charts.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
In This Section
Formatting Series Colors on a Chart (Report Builder and SSRS)
Discusses how colors are defined using a palette, how you can define your own color palette, and how to define
colors based on an expression.
Formatting Axis Labels on a Chart (Report Builder and SSRS)
Discusses how to display gridlines, tick marks, and titles, and how to format numbers and dates on the axis
scale.
Formatting the Legend on a Chart (Report Builder and SSRS)
Discusses how to re-order and format items in the chart legend.
Formatting Data Points on a Chart (Report Builder and SSRS)
Discusses how to position data point labels and format data point markers for every series on the chart.
3D, Bevel, and Other Effects in a Chart (Report Builder and SSRS)
Discusses various 3D effects that you can apply to a chart.
Add a Border Frame to a Chart (Report Builder and SSRS)
Explains how to add a border frame to a chart.
See Also
Charts (Report Builder and SSRS)
Add a Border Frame to a Chart (Report Builder and SSRS)
Define Colors on a Chart Using a Palette (Report Builder and SSRS)
Add Bevel, Emboss, and Texture Styles to a Chart (Report Builder and SSRS)
Formatting Series Colors on a Chart (Report Builder
and SSRS)
11/2/2020 • 2 minutes to read • Edit Online
Reporting Services provides several built-in palettes for charts, or you can define a custom palette. By default,
charts use the built-in Pacific color palette to fill each series. These colors also appear in the legend. When
multiple series are added to the chart, the chart assigns the series a color in the order that the colors have been
defined in the palette.
If there are a greater number of series than there are colors in the palette, the chart will begin reusing colors,
and two series may have the same color. This frequently occurs if you are using a Shape chart, where each data
point is assigned a color from the palette. To avoid confusion, define a custom palette with at least the same
number of colors as you have series on your chart.
You can select a new palette or define a custom palette from the Properties pane. For more information, see
Define Colors on a Chart Using a Palette (Report Builder and SSRS).
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
In This Section
Specify Consistent Colors across Multiple Shape Charts (Report Builder and SSRS)
Define Colors on a Chart Using a Palette (Report Builder and SSRS))
Highlight Chart Data by Adding Strip Lines (Report Builder and SSRS)
See Also
Formatting a Chart (Report Builder and SSRS)
Add Bevel, Emboss, and Texture Styles to a Chart (Report Builder and SSRS)
Charts (Report Builder and SSRS)
Formatting the Legend on a Chart (Report Builder and SSRS)
Specify Consistent Colors across Multiple Shape
Charts (Report Builder and SSRS)
5/20/2020 • 3 minutes to read • Edit Online
On non-shape charts in a paginated report, Reporting Services selects a new color from the palette based on
the index of series in the chart. For example, the first series on your chart will be mapped to the first color in the
palette. However, this behavior differs for shape charts. On shape charts, each color in the palette is mapped to a
data point in the dataset. For example, data point 1 is mapped to the first color in the palette, data point 2 is
mapped to the second color palette and so on.
If a data point has no value, it is omitted from display on a shape chart. This means that the data point is skipped
from being colored. For example, if point 2 has a value of zero, point 1 will be mapped to the first color in the
palette, and point 3 will be mapped to the second color in the palette. This approach is useful because the empty
points in the dataset of a pie chart do not unnecessarily use a palette color when the empty point does not need
to be drawn.
As a side effect, when multiple pie charts are displayed in a report, the pie charts may display different colors for
data points that have the same category grouping. To resolve this, you need to define individual colors that map
to a category group instead of individual data values. How you do this depends on if the shape charts are
sparklines in a table or matrix, or if they are shape charts in the report itself.
The legend is connected to the series, so any color you specify for the series will automatically be shown on the
legend.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
NOTE
You will need to replace the "Color1" strings with your own colors. You can use named colors, for example "Red", or
you can use six-digit hexadecimal value that represent the color, such as "#FFFFFF" for black. If you have more
than three colors defined, you will need to extend the array of colors so that the number of colors in the array
matches the number of points in your shape chart. You can add new colors to the array by specifying a comma-
separated list of string values that contain named colors or hexadecimal representations of colors.
3. Click OK .
4. Right-click on the shape chart and select Series Proper ties .
5. In Fill , click the Expression (fx) button to edit the expression for the Color property.
6. Type the following expression, where "MyCategoryField" is the field that is displayed in the Categor y
Groups area:
=Code.GetColor(Fields!MyCategoryField)
See Also
Formatting Series Colors on a Chart (Report Builder and SSRS)
Add Bevel, Emboss, and Texture Styles to a Chart (Report Builder and SSRS)
Define Colors on a Chart Using a Palette (Report Builder and SSRS)
Add Empty Points to a Chart (Report Builder and SSRS)
Shape Charts (Report Builder and SSRS)
Linking Multiple Data Regions to the Same Dataset (Report Builder and SSRS)
Nested Data Regions (Report Builder and SSRS)
Sparklines and Data Bars (Report Builder and SSRS)
Define Colors on a Chart Using a Palette (Report
Builder and SSRS)
5/20/2020 • 2 minutes to read • Edit Online
You can change the color palette for a chart by selecting a pre-defined palette or defining a custom palette.
Custom palettes are chart-specific.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
NOTE
You cannot change the colors or order in a pre-defined palette.
To define your own colors on the chart using a custom color palette
1. Open the Properties pane.
2. On the design surface, click the chart. The properties for the chart object are displayed in the Properties
pane.
3. In the Char t section, for the Palette property, select Custom .
4. In the CustomPaletteColors property, click the Edit Collection (...) button. The Repor tColorExpression
Collection Editor opens.
5. Click Add to add a color. Select a color from the drop-down list or select Expression and specify a hex
value for a specific color, such as ff6600 for "Orange".
For more information about hex values, see Color Table on MSDN.
6. Click Add to add more colors to the palette.
7. When you are done, click OK .
If you are using a custom palette, you can change the order of the colors to change the color of different series
in the chart.
See Also
Formatting Series Colors on a Chart (Report Builder and SSRS)
Charts (Report Builder and SSRS)
Specify Consistent Colors across Multiple Shape Charts (Report Builder and SSRS)
Highlight Chart Data by Adding Strip Lines (Report
Builder and SSRS)
11/2/2020 • 2 minutes to read • Edit Online
Strip lines, or strips, are horizontal or vertical ranges that shade the background of the chart in regular or
custom intervals. You can use strip lines to:
Improve readability for looking up individual values on the chart. Specify strip lines at regular intervals to
help separate data points when reading the chart.
Highlight dates that occur at regular intervals. For example, in a sales report you might use strip lines to
identify weekend data points.
Highlight a specific key range. Using the previous example, you can use one strip line to highlight the
highest range of sales that is between $80-100.
Strip lines are not applicable to Shape or Polar chart types.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
See Also
Formatting Axis Labels on a Chart (Report Builder and SSRS)
Formatting a Chart (Report Builder and SSRS)
Add a Moving Average to a Chart (Report Builder and SSRS)
Formatting Axis Labels on a Chart (Report Builder
and SSRS)
11/2/2020 • 7 minutes to read • Edit Online
Coordinate-based chart types (column, bar, area, point, line, and range) have two axes that are used to
categorize and display data relationships. Different types of formatting will be applied to each axis.
You can format axes by using the Axis Proper ties dialog box or by using the Properties pane. Right-click the
axis you want to format and click Axis Proper ties to change values for the axis text, numeric and date formats,
major and minor tick marks, auto-fitting for labels, and the thickness, color, and style of the axis line. To change
values for the axis title, right-click the axis title, and click Axis Title Proper ties .
Axis labels identify major intervals on the chart. By default, the chart uses an algorithm to determine how the
labels should be optimally placed on the axis to avoid overlapping text.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
Types of Axes
The chart has two primary axes: the value axis and the category axis.
When you drag a field from your dataset onto the chart surface, the chart will determine whether this field
belongs on the category or value axis.
The value axis is usually the vertical axis, or y-axis, of the chart. It is used to display numeric data values that are
being charted. A field that is dragged into the data fields region will be plotted on the value axis. The category
axis is usually the horizontal axis, or x-axis, of the chart. For bar charts, these axes are reversed. In bar chart
types, the category axis is the vertical axis and the value axis is the horizontal axis. For more information, see Bar
Charts (Report Builder and SSRS).
Strings Categories are plotted in the order it A sales report by region displays
first appears in the data source along region names along the x-axis.
the x-axis.
All chart types with two axes are designed to suppress some axis labels when there are too many categories to
fit in order to produce a cleaner image on the chart and avoid label collisions.
The application calculates where labels are placed on an axis according to the following steps:
1. Minimum and maximum values are identified based on the values in the result set.
2. An equidistant number of axis intervals, usually between four and six, are calculated based on these
minimum and maximum values.
3. Based on the axis label properties, labels are displayed at these intervals. Properties that affect label
placement include font size, the angle at which the labels are displayed, and text wrapping properties.
These axis label auto-fit options can be changed.
Example of How the Chart Calculates Axis Labels
The table shown here contains sample sales data to be plotted on a column chart. The Name field is added to
the Category Groups area, and the Quantity field is added to the Values area.
NAME Q UA N T IT Y
The Quantity field is plotted along the value -axis. The lowest value is 112 and the highest value is 494. In this
case, the chart calculates the scale to start at 0 and end at 500. The chart also calculates five equidistant intervals
of 100, and creates labels at 0, 100, 200, 300, 400, and 500.
The Name field is plotted along the category axis. The chart calculates between four and six labels and it
calculates auto-fit settings to determine how the labels can fit on the category axis without causing label
collisions. As a result, some category labels might be omitted. You can override auto-fitting options for each axis
independently.
NOTE
By superseding the automatic labeling features with a manual interval on an axis, the chart must resize all other elements
appropriately. As a result, you may encounter unpredictable results with the sizing and positioning of the labels, or the
size of other elements on the chart.
In This Section
Format Axis Labels as Dates or Currencies (Report Builder and SSRS)
Position Labels in a Chart (Report Builder and SSRS)
Specify an Axis Interval (Report Builder and SSRS)
Add or Remove Margins from a Chart (Report Builder and SSRS)
Specify a Logarithmic Scale (Report Builder and SSRS)
See Also
Formatting a Chart (Report Builder and SSRS)
Charts (Report Builder and SSRS)
Formatting Data Points on a Chart (Report Builder and SSRS)
Format Axis Labels as Dates or Currencies (Report
Builder and SSRS)
5/20/2020 • 2 minutes to read • Edit Online
When you show properly formatted DateTime values on an axis in a Reporting Services paginated report, a
chart will automatically display these values as days. To specify a date/time interval for the x-axis, such as an
interval of months or an interval of hours, you must format the axis labels and set the type of axis interval to a
valid date or time interval.
NOTE
In column and scatter charts, the horizontal, or x-axis, is the category axis. In bar charts, the vertical, or y-axis, is the
category axis.
In order to format time intervals correctly, the values displayed on the x-axis must evaluate to a DateTime data
type. If your field has a data type of String, the chart will not calculate intervals as dates or times. For more
information, see Charts (Report Builder and SSRS).
When a numeric value is added to the y-axis, by default, the chart does not format the number before displaying
it. If your numeric field is a sales figure, consider formatting the numbers as currencies to increase the
readability of the chart.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
NOTE
If you do not specify an interval type, the chart will calculate intervals in terms of days.
6. Click OK .
See Also
Formatting Axis Labels on a Chart (Report Builder and SSRS)
Formatting a Chart (Report Builder and SSRS)
Specify a Logarithmic Scale (Report Builder and SSRS)
Specify an Axis Interval (Report Builder and SSRS)
Position Labels in a Chart (Report Builder and SSRS)
5/20/2020 • 3 minutes to read • Edit Online
Because each chart type in a Reporting Services paginated report has a different shape, data point labels are
placed in an optimal location so as not to interfere on the chart. The default position of the labels varies with the
chart type:
On stacked charts, labels can only be positioned inside the series.
On funnel or pyramid charts, labels are placed on the outside in a column.
On pie charts, labels are placed inside the individual slices on a pie chart.
On bar charts, labels are placed outside of the bars that represent data points.
On polar charts, labels are placed outside of the circular area that represents data points.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
See Also
Pie Charts (Report Builder and SSRS)
Bar Charts (Report Builder and SSRS)
Formatting Axis Labels on a Chart (Report Builder and SSRS)
Format Axis Labels as Dates or Currencies (Report Builder and SSRS)
Display Data Point Labels Outside a Pie Chart (Report Builder and SSRS)
Formatting Data Points on a Chart (Report Builder and SSRS)
Specify an Axis Interval (Report Builder and SSRS)
11/2/2020 • 2 minutes to read • Edit Online
Learn to change the number of labels and tick marks on the category (x) axis in a chart by setting the axis
interval in a Reporting Services paginated report.
On the value axis (usually the y axis), axis intervals provide a consistent measure of the data points on the chart.
But on the category axis (usually the x axis), sometimes an automatic axis interval results in categories without
axis labels. You can specify the number of intervals you want in the axis Interval property. Reporting Services
calculates the number of intervals at run time, based on the data in the result set. For more information about
how axis intervals are calculated, see Formatting Axis Labels on a Chart.
To try setting the axis interval with sample data, see Tutorial: Add a Column Chart to Your Report (Report
Builder).
NOTE
The category axis is usually the horizontal or x-axis. However, for bar charts, the category axis is the vertical or y-axis.
This topic doesn't apply to:
Date or time values on the category axis. Be default, DateTime values appear as days. You can specify a different date
or time interval, such as a month or time interval. For more information, see Format Axis Labels as Dates or
Currencies.
Pie, doughnut, funnel or pyramid charts, which do not have axes.
1. Right-click the category axis and click Horizontal Axis Proper ties .
2. In the Horizontal Axis Proper ties dialog box > Axis Options tab, set Inter val to 1 to show every
category group label. To show every other category group label on the x-axis, type 2 .
3. Click OK .
Now the column chart displays all its horizontal axis labels.
NOTE
When you set an axis interval, all automatic labeling is disabled. If you specify a value for the axis interval, you may
see unpredictable labeling behavior, depending on how many categories are on the category axis.
Change the label interval in Properties pane
You can also set the label interval in the Properties pane.
1. In report design view, click the chart, then select the horizontal axis labels.
2. In the Properties pane, set LabelInterval to 1 .
For Column and Scatter chart types in Reporting Services paginated reports, the chart automatically adds side
margins on the ends of the x-axis. In Bar chart types, the chart automatically adds side margins on the ends of
the y-axis. In all other chart types, the chart does not add side margins. You cannot change the size of the
margin.
This topic does not apply to pie, doughnut, funnel, or pyramid chart types.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
See Also
Formatting Axis Labels on a Chart (Report Builder and SSRS)
Axis Properties Dialog Box, Axis Options (Report Builder and SSRS)
Specify an Axis Interval (Report Builder and SSRS)
Format Axis Labels as Dates or Currencies (Report Builder and SSRS)
Charts (Report Builder and SSRS)
Specify a Logarithmic Scale (Report Builder and
SSRS)
5/20/2020 • 2 minutes to read • Edit Online
If you have data that is logarithmically proportional, you may want to consider using a logarithmic scale on a
chart in a Reporting Services paginated report. This helps improve the appearance of the chart by making your
data more manageable. Most logarithmic scales use a base of 10.
This feature is only available on the value axis. The value axis is usually the vertical, or y-axis. On bar charts,
however, it is the horizontal, or x-axis.
If your axis is logarithmic, all other properties relating to the axis will be scaled logarithmically. For example, if
you specify a base-10 logarithmic scale on your axis, setting an axis interval of 2 will generate intervals in
magnitudes of 10 to the power of 2, or 100. This means your axis values will read 1, 100, 10000, instead of the
default result of 1, 10, 100, 1000, 10000.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
See Also
Formatting Axis Labels on a Chart (Report Builder and SSRS)
Formatting a Chart (Report Builder and SSRS)
Format Axis Labels as Dates or Currencies (Report Builder and SSRS)
Charts (Report Builder and SSRS)
Chart Legend - Formatting (Report Builder)
11/2/2020 • 5 minutes to read • Edit Online
The chart legend contains descriptions for each category in a chart. A legend always contains one or more
legend items, where each legend item consists of a colored box that represents the series, and a text string that
describes the series, as indicated in the following illustration.
A legend item is connected to an individual series on the chart, except for Shape charts, where the legend is
connected to individual data points. The chart automatically adds items into the legend based on the series that
are generated from your data.
You can format a legend by using the Legend Proper ties dialog box or by using the Properties pane. Right-
click the legend and click Legend Proper ties to change values for the legend text, background color, borders,
and 3D effects. To change values for the legend title, select the legend, right-click the legend title, and click
Legend Title Proper ties .
You cannot add images, extra columns or other supplementary items to the legend.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
See Also
Legend Properties Dialog Box, General (Report Builder and SSRS)
Change the Text of a Legend Item (Report Builder and SSRS)
Formatting a Chart (Report Builder and SSRS)
Formatting Series Colors on a Chart (Report Builder and SSRS)
Charts (Report Builder and SSRS)
Hide Legend Items on the Chart (Report Builder and SSRS)
Define Colors on a Chart Using a Palette (Report Builder and SSRS)
Chart Legend - Hide Items (Report Builder)
11/2/2020 • 2 minutes to read • Edit Online
By default, any series added to a non-Shape chart in a Reporting Services paginated report will be added as an
item in the legend. For pie, doughnut, funnel, and pyramid charts, any series added to the chart will add
individual data points in the legend.
You can hide any item on the legend. When you hide a legend item, it will still appear in the chart. This is useful
in situations where you do not want to show more information for a series that is added to the chart. For
example, if you have added a calculated series like a moving average to the chart, you may want to hide this
entry in the legend so that more information is only shown for the original series.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
NOTE
You cannot hide a series for one group and not for the others. If you have added a field to the Series Groups
area, all series belonging to this group will be hidden.
See Also
Formatting the Legend on a Chart (Report Builder and SSRS)
Formatting Data Points on a Chart (Report Builder and SSRS)
Change the Text of a Legend Item (Report Builder and SSRS)
Add a Moving Average to a Chart (Report Builder and SSRS)
Legend Properties Dialog Box, General (Report Builder and SSRS)
Chart Legend - Change Item Text (Report Builder)
11/2/2020 • 2 minutes to read • Edit Online
When a field is placed in the Values area of the chart, a legend item is automatically generated that contains the
name of this field. Every legend item is connected to an individual series on the chart, with the exception of
shape charts, where the legend is connected to individual data points instead of individual series.
On shape charts, you can change the text of a legend item to show more information about the individual data
points. For example, if you want to show the values of the data points as percentages in the legend, you can use
a keyword such as #PERCENT . You can append .NET Framework format codes in conjunction with keywords to
apply numeric and date formats. For more information about keywords, see Formatting Data Points on a Chart
(Report Builder and SSRS).
On non-shape charts, you can change the text of a legend item. For example, if your series name is "Series1",
you may want to change the text to something more descriptive like "Sales for 2008".
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
#AXISLABEL (#PERCENT{P0}) Displays the text representation of the Michael Blythe (85%)
category field, followed by the
percentage that each category displays
on the chart.
NOTE
The #AXISLABEL keyword can only be evaluated at run time when there is not a field specified in the Series Groups
area.
See Also
Formatting the Legend on a Chart (Report Builder and SSRS)
Formatting Series Colors on a Chart (Report Builder and SSRS)
Hide Legend Items on the Chart (Report Builder and SSRS)
Formatting Data Points on a Chart (Report Builder
and SSRS)
3/5/2021 • 6 minutes to read • Edit Online
In a Reporting Services paginated report, a data point is the smallest individual entity on the chart. On non-
Shape charts, data points are represented depending on their chart type. For example, a Line series consists of
one or more connected data points. On Shape charts, data points are represented by individual slices or
segments that add up to the whole chart. For example, on a pie chart, each piece is a data point. For more
information, see Chart Types (Report Builder and SSRS).
One or more data points form a series. By default, all formatting options are applied to all data points in the
series. If you want to specify properties for individual data points, you can specify a field or expression on the
series that formats individual data point at run time based on the dataset.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
In this example, the highest value for MyField will have the color Red and all other data points will have the
color Green. When you specify a color for the series using the Fill property on the series, the chart overrides the
colors that are specified in the palette. For more information, see Formatting Series Colors on a Chart (Report
Builder and SSRS).
Adding Keywords for Data Point Labels, ToolTips, and Legend Text
You can use case-sensitive, chart-specific keywords to represent an item that exists in the chart. These keywords
are only applicable to ToolTips, custom legend text, and data point label properties. In many cases, a chart
keyword has an equivalent simple expression, but the keyword is faster and easier to type. The following is a list
of chart keywords.
EXA M P L E O F A N
A P P L IC A B L E TO C H A RT EQ UIVA L EN T SIM P L E
C H A RT K EY W O RD DESC RIP T IO N TYPE EXP RESSIO N
To format the keyword, enclose a .NET Framework format string in parentheses. For example, to specify the
value of the data point in a ToolTip as a number with two decimal places, include the format string "N2" in
braces, such as "#VALY{N2}" for the ToolTip property on the series. For more information about .NET
Framework format strings, see Formatting Types on MSDN. For more information about formatting numbers in
Reporting Services, see Formatting Numbers and Dates (Report Builder and SSRS).
For more information about adding keywords to a chart, see Show ToolTips on a Series (Report Builder and
SSRS), Change the Text of a Legend Item (Report Builder and SSRS).
In This Section
Show ToolTips on a Series (Report Builder and SSRS)
Display Data Point Labels Outside a Pie Chart (Report Builder and SSRS)
Display Percentage Values on a Pie Chart (Report Builder and SSRS)
See Also
Formatting a Chart (Report Builder and SSRS)
Formatting Axis Labels on a Chart (Report Builder and SSRS)
Charts (Report Builder and SSRS)
Format Axis Labels as Dates or Currencies (Report Builder and SSRS)
Tutorial: Add a Pie Chart to Your Report (Report Builder)
Expression Examples (Report Builder and SSRS)
Expressions (Report Builder and SSRS)
Show ToolTips on a Series (Report Builder and
SSRS)
11/2/2020 • 2 minutes to read • Edit Online
You can add a ToolTip to each data point on the series of a chart to display information related to the data point,
such as the group name, the value of the data point, or the percentage of the data point relative to the series
total. When users hover over the data point in a rendered paginated report, they'll see this information.
You cannot add a ToolTip to a calculated series.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
See Also
Formatting Data Points on a Chart (Report Builder and SSRS)
Change the Text of a Legend Item (Report Builder and SSRS)
Formatting Series Colors on a Chart (Report Builder and SSRS)
Add a Drillthrough Action on a Report (Report Builder and SSRS)
Display Data Point Labels Outside a Pie Chart
(Report Builder and SSRS)
11/2/2020 • 2 minutes to read • Edit Online
In Reporting Services, pie chart labeling is optimized to display labels on only several slices of data. Labels may
overlap if the pie chart contains too many slices. One solution is to display the labels outside the pie chart, which
may create more room for longer data labels. If you find that your labels still overlap, you can create more space
for them by enabling 3D. This reduces the diameter of the pie chart, creating more space around the chart.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
See Also
Pie Charts (Report Builder and SSRS)
Collect Small Slices on a Pie Chart (Report Builder and SSRS)
Display Percentage Values on a Pie Chart (Report Builder and SSRS)
Display Percentage Values on a Pie Chart (Report
Builder and SSRS)
11/2/2020 • 2 minutes to read • Edit Online
In Reporting Services paginated reports, by default the legend shows categories. You may also want
percentages in the legend or the pie slices themselves.
The Tutorial: Add a Pie Chart to Your Report (Report Builder) walks you through adding percentages to pie slices,
if you'd like to try this with sample data first.
See Also
Tutorial: Add a Pie Chart to Your Report (Report Builder)
Pie Charts (Report Builder and SSRS)
Formatting the Legend on a Chart (Report Builder and SSRS)
Display Data Point Labels Outside a Pie Chart (Report Builder and SSRS)
Chart Effects - 3D, Bevel, and Other (Report
Builder)
11/2/2020 • 3 minutes to read • Edit Online
Three-dimensional (3D) effects can be used to provide depth and add visual impact to charts in your Reporting
Services paginated reports. For example, if you want to emphasize a particular slice of an exploded pie chart,
you can rotate and change the perspective of the chart so that people notice that slice first. When 3D effects are
applied to your chart, all gradient colors and hatching styles are disabled.
Three-dimensional effects can be applied to individual charts, and it is possible to display both two-dimensional
and three-dimensional charts on the same report.
For all chart types, you can add three-dimensional effects to a chart area in the Char t Area Proper ties dialog
box by selecting Enable 3D . For more information, see Add 3D Effects to a Chart (Report Builder and SSRS).
Another way to add visual impact to charts is by adding bevel, emboss and texture styles in bar, column, pie and
doughnut charts. For more information, see Add Bevel, Emboss, and Texture Styles to a Chart (Report Builder
and SSRS).
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
Clustering Data
In 2D charts, multiple series of data appear side-by-side. Clustering shows individual series in separate rows on
a 3D chart. For example, if you have a chart that contains three series of data points, clustering will display each
of the three series on a separate row along the z-axis. By default, all chart types shown in 3D are clustered.
Clustering can be disabled for bar and column charts. When clustering is disabled, multiple bar and column
series are displayed side-by-side in one row.
Rotations
Charts can be rotated horizontally and vertically from -90 to 90 degrees. A positive horizontal angle will rotate
the chart counter-clockwise around the x-axis, while a positive vertical angle will rotate the chart clockwise
around the y-axis.
Highlighting 3D Effects
You can add highlighting styles to a 3D chart via the Shading property, which appears under Area3DStyle in the
Properties pane when the chart area is selected. A simple lighting style applies the same hue to the chart area
elements. A realistic style changes the hues of the chart area elements depending on a specified lighting angle.
See Also
Formatting Axis Labels on a Chart (Report Builder and SSRS)
Formatting a Chart (Report Builder and SSRS)
Add 3D Effects to a Chart (Report Builder and SSRS)
Chart Effects - Add 3D Effects (Report Builder)
11/2/2020 • 2 minutes to read • Edit Online
Three-dimensional (3D) effects can be used to provide depth and add visual impact to charts in your Reporting
Services paginated reports. For example, if you want to emphasize a particular slice of an exploded pie chart,
you can rotate and change the perspective of the chart so that people notice that slice first. When 3D effects are
applied to your chart, all gradient colors and hatching styles are disabled.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
See Also
3D, Bevel, and Other Effects in a Chart (Report Builder and SSRS)
Formatting a Chart (Report Builder and SSRS)
Charts (Report Builder and SSRS)
Chart Effects - Add Bevel, Emboss, or Texture
(Report Builder)
11/2/2020 • 2 minutes to read • Edit Online
When using certain chart types, you can specify a drawing effect to increase the visual impact of your chart.
These drawing effects are only applied to the series of your chart. They have no effect on any other chart
element.
When you are using any variant of a pie or doughnut chart, you can specify a soft edge or concave drawing
style, similar to bevel or emboss effects that can be applied to an image.
When you are using any variant of a bar or column chart, you can apply texture styles, such as cylinder, wedge,
and light-to-dark, to the individual bars or columns.
In addition to these drawing styles, you can add borders and shadows to many chart elements to give the
illusion of depth. For more information on other ways to format the chart, see Formatting a Chart (Report
Builder and SSRS).
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
NOTE
You can't have 3D and bevel or emboss styles on the same chart. If you have enabled 3D for the chart, you will not see
the PieDrawingStyle property.
NOTE
You can't have 3D and bevel or emboss styles on the same chart. If you have enabled 3D for the chart, you will not see
the PieDrawingStyle property.
See Also
Bar Charts (Report Builder and SSRS)
Column Charts (Report Builder and SSRS)
Pie Charts (Report Builder and SSRS)
Formatting a Chart (Report Builder and SSRS)
Add a Border Frame to a Chart (Report Builder and
SSRS)
11/2/2020 • 2 minutes to read • Edit Online
To give a chart more visual impact, consider using a border frame around the outside of the chart. You can select
a border frame by using the Char t Proper ties dialog box or by using the Properties pane. The chart border
frames cannot be applied to any other data region.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
NOTE
If you do not see the Char t Proper ties , point to Char t on the shortcut menu and select Char t Proper ties .
2. Select Border , and click the type of border to apply to the chart.
3. (Optional) Select a value or type an expression that represents the style of the border.
4. (Optional) Specify the color of the line that will be drawn around the chart as the border.
NOTE
The Line color list contains common colors. If you want to select from a list of more colors, click More colors in
the list or click the expression (fx) button next to the list to bring up the Expression editor.
5. (Optional) Specify the width of the border. Valid values are between 0.25pt and 20pt. Consider keeping
the size of your border to between 1 and 3pt for the best visual effect.
6. (Optional) If your report contains a background color other than white, consider defining a page color
that is the same color. The page color is the background color outside of the border line.
7. (Optional) If you choose a Frame type, specify a style and color for the frame. The Frame fill color list
contains common colors.
See Also
Charts (Report Builder and SSRS)
Formatting a Chart (Report Builder and SSRS)
Add Bevel, Emboss, and Texture Styles to a Chart (Report Builder and SSRS)
Start Pie Chart Values at the Top of the Pie (Report
Builder and SSRS)
11/2/2020 • 2 minutes to read • Edit Online
In pie charts in Reporting Services paginated reports, by default the first value in the dataset starts at 90
degrees from the top of the pie.
See Also
Formatting a Chart (Report Builder and SSRS)
Pie Charts (Report Builder and SSRS)
Empty and Null Data Points in Charts (Report
Builder and SSRS)
11/2/2020 • 2 minutes to read • Edit Online
If you are displaying fields with empty or null values in a chart in your Reporting Services paginated report, the
chart may not look as you expect. Charts process empty values differently depending on the specified chart
type:
If the chart type is a linear chart type (bar, column, scatter, line, area, range), empty values are displayed as
empty spaces or "gaps" in the chart. If you want to indicate empty points, you must add empty point
placeholders. For more information, see Add Empty Points to a Chart (Report Builder and SSRS).
If the chart type is a contiguous, linear chart type (area, bar, column, line, scatter), empty data points are
added to the chart to maintain continuity in the series.
If the chart type is a nonlinear chart type (polar, pie, doughnut, funnel or pyramid), empty values are
omitted from display on the chart.
In shape chart types, null values are omitted.
An example of a chart with empty data points is available as a sample report. For more information about
downloading this sample report and others, see Report Builder and Report Designer sample reports.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
Next steps
Charts
Formatting a Chart
Add a Chart to a Report
Troubleshoot Charts
More questions? Try asking the Reporting Services forum
Add Empty Points to a Chart (Report Builder and
SSRS)
11/2/2020 • 2 minutes to read • Edit Online
Null values are shown on the chart as empty spaces or gaps between data points in a series. In Reporting
Services paginated reports, empty points are data points that can be inserted in the empty space created by null
values.
By default, empty points are calculated by taking the average of the previous and next data points that contain a
value. You can change this so that all empty points are inserted at zero.
For more information, see Empty and Null Data Points in Charts (Report Builder and SSRS).
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
NOTE
You must select a marker type to add empty points to a bar, column or scatter chart. However, for area, line and
radar charts, selecting a marker type is optional because the chart fills in the empty space or gap without
requiring a marker to be specified.
See Also
Add Dataset Filters, Data Region Filters, and Group Filters (Report Builder and SSRS)
Chart Types (Report Builder and SSRS)
Add Scale Breaks to a Chart (Report Builder and SSRS)
Charts (Report Builder and SSRS)
Displaying a Series with Multiple Data Ranges on a
Chart
11/2/2020 • 3 minutes to read • Edit Online
Chart will use the minimum and maximum values of a series to calculate the axis scale. When a series on your
chart contains more than one range of data, the data points can become obscured, and only a few data points to
be seen easily on the chart. For example, suppose a report displays daily sales totals over a period of 30 days.
For most of the month, the sales are between 10 and 40. However, a one-week sales marketing campaign has
caused a sudden sales increase at the beginning of April. This change in sales data produces an uneven
distribution of data points that reduces the overall readability of the chart.
There are different ways to improve readability:
Enable scale breaks . If your data forms two or more sets of data ranges, use a scale break to remove
the gap between the ranges. A scale break is a stripe drawn across the plotting area to denote a break
between the high and low values of a series.
Filter out unnecessar y values . If you have data points that are obscuring the important data range to
be displayed on the chart, remove the unwanted points using a report filter. For information on how to
add a filter to the chart in Reporting Services, see Add Dataset Filters, Data Region Filters, and Group
Filters (Report Builder and SSRS).
Plot each data range as a separate series for multiple series comparison . If you have more than
two data ranges, consider separating the data ranges into separate series. For more information, see
Multiple Series on a Chart (Report Builder and SSRS).
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
If you enable a scale break but it does not appear, even though there is sufficient distance between the data
ranges, you can set the CollapsibleSpaceThreshold property to a value less than 25. The
CollapsibleSpaceThreshold specifies the percent of collapsible space required between the data ranges. For
more information, see Add Scale Breaks to a Chart (Report Builder and SSRS).
Charts support up to five scale breaks per chart; however, displaying more than one scale break can cause the
chart to become unreadable. If you have more than two data ranges, consider using a different method for
displaying this data. For more information, see Multiple Series on a Chart (Report Builder and SSRS).
Next steps
Multiple Series on a Chart
Formatting a Chart
3D, Bevel, and Other Effects in a Chart
Charts
Axis Properties Dialog Box, Axis Options
Collect Small Slices on a Pie Chart
More questions? Try asking the Reporting Services forum
Add Scale Breaks to a Chart (Report Builder and
SSRS)
11/2/2020 • 2 minutes to read • Edit Online
A scale break is a stripe drawn across the plotting area of a chart to denote a break in continuity between the
high and low values on a value axis (usually the vertical, or y-axis). Use a scale break to display two distinct
ranges in the same chart area.
NOTE
You cannot specify where to place a scale break on your chart. The chart uses its own calculations based on the values in
your dataset to determine whether there is sufficient separation between data ranges to draw a scale break on the value
axis (y-axis) at run time.
An example of a chart with scale breaks is available as a sample report. For more information about
downloading this sample report and others, see Report Builder and Report Designer sample reports.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
When multiple series are present on a chart, you must determine the best way to compare the series. You can
use a stacked chart to show relative proportions of each series. If you are comparing only two series that share a
common category (x) axis, use the secondary axis. This is useful when showing two related series of data, for
example, price and volume, or income and tax. If the chart becomes unreadable, consider using multiple chart
areas to create more visual separation between each series.
In addition to using chart features, it is important to decide which chart type should be used for your data. If the
fields in your dataset are related, consider using a range chart.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
See Also
Charts (Report Builder and SSRS)
Displaying a Series with Multiple Data Ranges on a Chart (Report Builder and SSRS)
Chart Types (Report Builder and SSRS)
Specify a Chart Area for a Series (Report Builder
and SSRS)
11/2/2020 • 2 minutes to read • Edit Online
In Reporting Services paginated reports, the chart is the top-level container that includes the outer border, the
chart title, and the legend. By default, the chart contains one chart area. The chart area is not visible on the chart
surface, but you can think of the chart area as a container that encompasses only the axis labels, the axis title
and the plotting area of one or more series. The following illustration shows the concept of multiple chart areas
within a single chart.
By default, all series are added to the default chart area. When using area, column, line, and scatter charts, any
combination of these series can be displayed on the same chart area. If you have several series in the same
chart area, the readability of the chart is reduced. You may want to separate the chart types into multiple chart
areas. Using multiple chart areas will increase readability for easier comparisons. For example, price-volume
stock charts often have different ranges of values, but comparisons can be made between the price and volume
data over the same period of time.
The bar, polar, or shape series can only be combined with series of the same chart types in the same chart area.
If you are using a Polar or Shape chart, consider using a separate chart data region for each field that you wish
to show.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
The chart has two axis types: primary and secondary. The secondary axis is useful when comparing two value
sets with two distinct data ranges that share a common category.
For example, suppose you have a chart that calculates Revenue vs. Tax for the year 2008. In this case, the 2008
time period is common to both value sets. However, when both series are plotted on the same y-axis, we cannot
make a useful comparison because the scale of the y-axis is optimized for the largest values in the dataset. If we
show Revenue on the primary axis, and Tax on the secondary axis, we can display each series on its own y-axis
with its own scale of values. The series still share a common x-axis.
In situations where there are more than two series to be compared, consider a different approach for comparing
and displaying multiple series in a chart. For more information, see Multiple Series on a Chart.
An example of this chart is available as a sample report. For more information about downloading this sample
report and others, see Report Builder and Report Designer sample reports.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
Next steps
Formatting Axis Labels on a Chart
Specify an Axis Interval
More questions? Try asking the Reporting Services forum
Linking Multiple Data Regions to the Same Dataset
(Report Builder and SSRS)
11/2/2020 • 2 minutes to read • Edit Online
You can add multiple data regions to a Reporting Services paginated report to provide different views of data
from the same report dataset. For example, you might want to display data in a table and also display it visually
in a chart. To do so, you must use identical expressions and scopes for the appropriate filter expressions, sort
expressions, and group expressions.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
To use a chart and a table or matrix to display the same data, it helps to understand the similarities between a
table and shape charts, and a matrix and area, bar, and column charts. A table with a single row group can easily
be displayed as a pie chart. As you add multiple row groups, you can choose different types of charts to best
display the nested groups. Adding nested row groups to a pie chart increases the number of slices in the pie.
You must decide if the number of group instances for the parent group and child group combined is too many
to display in a single pie chart. For multiple group values that display as small slices on a pie chart, you can set a
property so that all values below a certain threshold display as one pie slice. For more information, see Collect
Small Slices on a Pie Chart.
A table with multiple row groups can be shown as a column chart with multiple category groups. For more
information, see Display the Same Data on a Matrix and a Chart. For an example of a table and chart that
present different views of the same report dataset, see the Product Line Sales report in AdventureWorks Report
Samples. Because both the table and the chart are linked to the same dataset in this report, when you click the
interactive sort button for Employee Name in the sort the Top Employees table, the Top Employees chart also
automatically shows the new sort order. For more information about downloading this sample report and
others, see Report Builder and Report Designer sample reports.
A matrix with multiple row and column groups can best be displayed by using an area, bar, or column chart with
both category and series groups. Use the same group expressions for column groups on the matrix and
category groups on the chart, and the same group expressions for row groups on the matrix and series groups
on the chart. You must keep in mind that the number of group instances affects the readability of the chart. You
can define groups based on range values to reduce the number of group instances in a report. For more
information, see Group Expression Examples.
Next steps
Charts
Tables, Matrices, and Lists
Nested Data Regions
More questions? Try asking the Reporting Services forum
Display the Same Data on a Matrix and a Chart
(Report Builder)
11/2/2020 • 4 minutes to read • Edit Online
When you want to show the same data in a matrix and a chart, you must set properties on both data regions to
specify the same dataset, and also the same expressions for filters, groups, sorts, and data.
Because both data regions will have the same ancestor for data (the report dataset), you can add an interactive
sort button to the matrix that, when the user clicks it, changes the sort order for both the matrix and the chart.
For more information, see Add Interactive Sort to a Table or Matrix (Report Builder and SSRS).
To use the matrix column group values as a legend for the chart, you must specify the colors for the series data
on the chart, and then use the same colors as the fill colors for the background of the text boxes in the matrix
cell that displays the group values. For more information, see Specify Consistent Colors across Multiple Shape
Charts (Report Builder and SSRS).
At run-time, your report may appear cluttered if there are too many group values for your group definitions.
You might need to filter values, combine groups, or adjust the threshold for the chart to combine groups for
you. For more information, see Linking Multiple Data Regions to the Same Dataset (Report Builder and SSRS)
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
See Also
Linking Multiple Data Regions to the Same Dataset (Report Builder and SSRS)
Add Dataset Filters, Data Region Filters, and Group Filters (Report Builder and SSRS)
Tables, Matrices, and Lists (Report Builder and SSRS)
Charts (Report Builder and SSRS)
Add or Delete a Group in a Chart (Report Builder
and SSRS)
11/2/2020 • 2 minutes to read • Edit Online
In Reporting Services paginated reports, click in the chart data region to display the Char t Data pane. Create
groups by dragging dataset fields to the Categor y Groups and Series Groups areas. To add nested groups,
add multiple fields to the area.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
See Also
Charts (Report Builder and SSRS)
Add a Moving Average to a Chart (Report Builder
and SSRS)
11/2/2020 • 2 minutes to read • Edit Online
A moving average is an average of the data in your series, calculated over a defined period of time. In Reporting
Services paginated reports, the moving average can be shown on the chart to identify significant trends.
The Moving Average formula is the most popular price indicator used in technical analyses. Many other
formulas, including mean, median and standard deviation, can also be derived from a series on the chart. When
specifying a moving average, each formula may have one or more parameters that must be specified.
The Tutorial: Add a Column Chart to Your Report (Report Builder) walks you through adding a moving average
to a chart, if you'd like to try it with sample data.
When a moving average formula is added in Design mode, the line series that is added is only a visual
placeholder. The chart will calculate the data points of each formula during report processing.
Built-in support for trend lines is not available in Reporting Services.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
See Also
Tutorial: Add a Column Chart to Your Report (Report Builder)
Formatting a Chart (Report Builder and SSRS)
Charts (Report Builder and SSRS)
Add Empty Points to a Chart (Report Builder and SSRS)
Collect Small Slices on a Pie Chart (Report Builder
and SSRS)
11/2/2020 • 2 minutes to read • Edit Online
Pie charts with too many slices can look cluttered. Learn to collect many small slices in a pie chart into one
single slice in Reporting Services paginated reports.
To collect small slices into one slice, first decide whether your threshold for collecting small slices is measured as
a percentage of the pie chart or as a fixed value.
The Tutorial: Add a Pie Chart to Your Report (Report Builder) walks you through collecting small slices into a
single slice, if you'd like to try this with sample data first.
You can also collect small slices into a second pie chart that is called out from a collected slice of the first pie
chart. The second pie chart is drawn to the right of the original pie chart.
You cannot combine slices of funnel or pyramid charts into one slice.
NOTE
If you set CollectedStyle to SingleSlice , CollectedThreshold to a value greater than 100 , and
CollectedThresholdUsePercent to True , the chart will throw an exception because it cannot calculate a
percentage. To resolve this issue, set CollectedThreshold to a value less than 100 .
By data value. For example, to collect any slice on your pie chart that is less than 5000 into a
single slice:
Set the CollectedThresholdUsePercent property to False .
Set the CollectedThreshold property to 5000 .
6. Set the CollectedLabel property to a string that represents the text label that will be shown on the
collected slice.
7. (Optional) Set the CollectedSliceExploded, CollectedColor, CollectedLegendText and CollectedToolTip
properties. These properties change the appearance, color, label text, legend text and tooltip aspects of
the single slice.
NOTE
The secondary pie chart is calculated based on the small slices in your data so it will only appear in Preview. It does not
appear on the design surface.
NOTE
You cannot format the secondary pie chart. For this reason, it is strongly recommended to use the first approach when
collecting pie slices.
See Also
Tutorial: Add a Pie Chart to Your Report (Report Builder)
Pie Charts (Report Builder and SSRS)
Formatting Data Points on a Chart (Report Builder and SSRS)
Display Data Point Labels Outside a Pie Chart (Report Builder and SSRS)
Display Percentage Values on a Pie Chart (Report Builder and SSRS)
Troubleshoot Charts (Report Builder and SSRS)
5/20/2020 • 2 minutes to read • Edit Online
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
Why does my chart count, not sum, the values on the value axis?
Most chart types require numeric values along the value axis, which is typically the y-axis, in order to draw
correctly. If the data type of your value field is String , the chart cannot display a numeric value, even if there are
numerals in the fields. Instead, the chart displays a count of the total number of rows that contain a value in that
field. To avoid this behavior, make sure that the fields that you use for value series have numeric data types, as
opposed to strings that contain formatted numbers.
See Also
Charts (Report Builder and SSRS)
Sparklines and Data Bars (Report Builder and SSRS)
3/5/2021 • 5 minutes to read • Edit Online
Sparklines and data bars are small, simple charts that convey a lot of information in a little space, often inline
with text.
In Reporting Services reports, sparklines and data bars are often used in tables and matrices. Their impact
comes from viewing many of them together and being able to quickly compare them one above the other,
rather than viewing them singly. They make it easy to see the outliers, the rows that are not performing like the
others. Although they are small, each sparkline often represents multiple data points, often over time. Data bars
can represent multiple data points, but typically illustrate only one. Each sparkline typically presents a single
series. You cannot add a sparkline to a detail group in a table. Because sparklines display aggregated data, they
must go in a cell associated with a group. Sparklines and data bars have the same basic chart elements of
categories, series, and values, but they have no legend, axis lines, labels, or tick marks.
To quickly get started with sparklines, see Tutorial: Add a Sparkline to Your Report (Report Builder) and the
videos How to: Create a Sparkline in a Table and Sparklines, Bar Charts, and Indicators in Report Builder .
NOTE
You can publish sparklines and data bars with their parent table, matrix, or list, separately from a report as a report part.
Read more about Report Parts.
Types of Sparklines
You can create almost as many types of sparklines as there are regular charts. In general, you cannot make 3D
sparklines. You can make sparkline versions of these full charts:
Column Charts (Report Builder and SSRS): The basic, stacked, and 100% stacked column charts.
Line Charts (Report Builder and SSRS): All except the 3D line chart.
Area Charts (Report Builder and SSRS): All except the 3D area charts
Pie Charts (Report Builder and SSRS): And doughnut charts, both flat and 3D, but not the other shapes
such as funnel and pyramid charts.
Range Charts (Report Builder and SSRS): The stock, candlestick, error bar, and box plot charts.
Data Bars
Data bars typically represent a single data point, though they can represent multiple data points, just like regular
bar charts. They often contain several series with no category, or have series grouping.
In this example using stacked data bars, each data bar, although only one bar, illustrates more than one data
point. For example, the three different colors of the bar could represent tasks of three levels of priority with the
length of the bar representing the total number of tasks assigned to each person. If you made these 100%
stacked data bars instead, each bar would fill the cell, and the different colors would represent the percentage of
the whole for each priority level.
You can make data bar versions of these full charts:
Bar Charts (Report Builder and SSRS): Basic, stacked, and 100% stacked bar charts.
Column Charts (Report Builder and SSRS): Basic, stacked, and 100% stacked column charts. Column
charts can be either sparklines or data bars.
In this image, the column chart shows daily sales for each employee. Note that for days that an employee has no
sales, the chart leaves a blank and aligns subsequent days. This is an example of horizontal alignment. Also note
that for some employees, every bar is short, and no bar reaches the top of the cell. This is an example of vertical
alignment; without it, in the rows with no tall bars, the short bars would expand to fill the height of the cell.
NOTE
You cannot convert a full chart to a sparkline or data bar with one click. However, you can make a sparkline or data bar
from a full chart just by deleting all the chart elements that are not in sparklines and data bars.
How-to Topics
Add Sparklines and Data Bars (Report Builder and SSRS)
Align the Data in a Chart in a Table or Matrix (Report Builder and SSRS)
Other how-to topics for charts
Because sparklines and data bars are a type of chart, you might also find the following how-to topics for charts
helpful and relevant:
Add a Chart to a Report (Report Builder and SSRS)
Add Empty Points to a Chart (Report Builder and SSRS)
Add or Remove Margins from a Chart (Report Builder and SSRS)
Change a Chart Type (Report Builder and SSRS)
Define Colors on a Chart Using a Palette (Report Builder and SSRS)
Show ToolTips on a Series (Report Builder and SSRS)
Specify a Logarithmic Scale (Report Builder and SSRS)
Specify an Axis Interval (Report Builder and SSRS)
Specify Consistent Colors across Multiple Shape Charts (Report Builder and SSRS)
See Also
Charts (Report Builder and SSRS)
Tutorial: Add a Sparkline to Your Report (Report Builder)
Add Sparklines and Data Bars (Report Builder and
SSRS)
11/2/2020 • 2 minutes to read • Edit Online
Sparklines and data bars are small, spare charts that convey a lot of information with little extraneous detail. For
more information about them, see Sparklines and Data Bars (Report Builder and SSRS).
In Reporting Services paginated reports, sparklines and data bars are most commonly placed in cells in a table
or matrix. Sparklines usually display only one series each. Data bars can contain one or more data points. Both
sparklines and data bars derive their impact from repeating the series information for each row in the table or
matrix.
NOTE
You cannot place sparklines in a detail group in a table. They must go in a cell associated with a group.
4. In the Change Sparkline/Data Bar Type dialog box, click the kind of sparkline or data bar you want,
and then click OK .
5. Click the sparkline or data bar.
The Char t Data pane opens.
6. In the Values area, click the Add Fields plus sign (+ ), and then click the field whose values you want
charted.
7. In the Categor y Groups area, click the Add Fields plus sign (+ ), and then click the field whose values
you want to group by.
Typically for sparklines and data bars, you will not add a field to the Series Group area because you only
want one series for each row.
See Also
Charts (Report Builder and SSRS)
Align the Data in a Chart in a Table or Matrix (Report Builder and SSRS)
Align the Data in a Chart in a Table or Matrix
(Report Builder and SSRS)
11/2/2020 • 2 minutes to read • Edit Online
Sparklines and data bars are small, simple charts that convey a lot of information with little extraneous detail. In
a Reporting Services paginated report, when you check this option the values in your sparklines and data bars
will align across the different cells in the table or matrix, even if there are missing values in the data they are
based on.
In this image, the column chart shows daily sales for each employee. Note that for days that an employee has no
sales, the chart leaves a blank and aligns subsequent days horizontally. It also aligns the charts vertically by
making the sizes of the different charts relative to each other. For more information, see Sparklines and Data
Bars (Report Builder and SSRS).
See Also
Charts (Report Builder and SSRS)
Add Sparklines and Data Bars (Report Builder and SSRS)
Gauges (Report Builder and SSRS)
11/2/2020 • 12 minutes to read • Edit Online
In Reporting Services paginated reports, a gauge data region displays a single value from your dataset. An
individual gauge is always positioned inside a gauge panel, where you can add child or adjacent gauges. Inside a
single gauge panel, you can create multiple gauges that share common functions such as filtering, grouping, or
sorting.
Gauges can perform many tasks in a report:
Display key performance indicators (KPIs) in a single radial or linear gauge.
Place a gauge inside a table or matrix to illustrate values inside each cell.
Use multiple gauges in a single gauge panel to compare data between fields.
There are two types of gauges: radial and linear. The following illustration shows the basic elements of a single
radial gauge in the gauge panel.
For more information about using gauges as KPIs, see Tutorial: Adding a KPI to Your Report (Report Builder).
NOTE
You can publish gauges separately from a report as report parts. Read more about Report Parts.
Gauge Types
Reporting Services provides two gauge types: radial and linear. The radial gauge is typically used when you want
to express the data as a velocity. The linear gauge is used to express the data as a temperature or scale value.
The key differences between the two types are the overall shape of the gauge and the available gauge pointers.
Radial gauges are circular, or degrees of circular, and resemble speedometers. The gauge pointers are often
needles, but can be markers or bars.
Linear gauges are rectangular, oriented horizontally or vertically, and resemble rulers. The gauge pointers are
often thermometers, but can be markers or bars. Because of its shape, this gauge type is useful for integrating
into the table or matrix data regions to show progress data.
Other than these differences, the two gauge types are interchangeable. However, if you have to use a simple
gauge in your report, you should consider using an indicator instead of a gauge. For more information, see
Indicators (Report Builder and SSRS).
The following illustrations show radial and linear gauges. The radial gauge is round and uses the needle pointer.
The linear gauge is horizontal and uses the thermometer pointer.
Radial Gauge
Radial gauge options: Radial, Radial with Mini Gauge, Two Scales, 90 Degrees Northeast, 90 Degrees Northwest,
90 Degrees Southwest, 90 Degrees Southeast,180 Degrees North, 180 Degrees South, 180 Degrees West180
Degrees East, and Meter.
Linear Gauge
Linear gauge options: Horizontal, Vertical, Multiple Bar Pointers, Two Scales, Three Color Range, Logarithmic,
Thermometer, Thermometer Fahrenheit/Celcius, and Bullet Graph.
NOTE
This approach is not applicable when there is no pointer on the gauge or the report contains more than one
dataset and the gauge panel is not associated with a dataset.
Right-click on the gauge pointer and select Pointer Proper ties . For Value , select a field from the drop-
down list or define a field expression by clicking the Expression (fx) button.
Aggregating Fields into a Single Value
When a field is added to a gauge, Reporting Services calculates an aggregate for the field by default. Numeric
data types are aggregated with the SUM function. Non-numeric data types are aggregated with the COUNT
function, which counts the number of instances for a particular value or field within the dataset or group. If the
data type of your value field is String, the gauge cannot display a numeric value, even if there are numerals in
the fields. Instead, the gauge aggregates string fields using the COUNT function. To avoid this behavior, make
sure that the fields you use have numeric data types, as opposed to strings that contain formatted numbers. You
can use a Visual Basic expression to convert String values to a numeric data type using the CDbl or CInt
constant. For example, the following expression converts a string field called MyField to numeric values.
=Sum(CDbl(Fields!MyField.Value))
For more information about aggregate expressions, see Aggregate Functions Reference (Report Builder and
SSRS).
Defining a Group on a Gauge
After you have added a field to the gauge, you can add one data group. The Gauge differs from all other data
regions in Reporting Services, which can display multiple groups in one data region. When you add a group by
defining a group expression on the gauge, it is the same as when you add a row group on the Tablix data region.
However, when the group is added, only the value of the last group is displayed as the pointer value on the
gauge. For example, if you add a grouping expression on Year, the pointer will point to the value that represents
the aggregate sales value for the last year in the dataset. For more information about groups, see Understanding
Groups (Report Builder and SSRS).
You might want to add a group on the gauge if, for example, you are displaying multiple gauges in a table or list
and you want to display data aggregated by group. For more information, see Add or Delete a Group in a Data
Region (Report Builder and SSRS).
Positioning Elements in a Gauge
The gauge panel is the top-level container that holds one or more gauges. You can view the Gauge Panel
Proper ties dialog box by clicking just outside the gauge. Each gauge, in turn, contains several gauge elements:
a gauge scale, a gauge range, and a gauge pointer. When you are using the gauge, you will need to understand
how elements are measured in the gauge panel in order to modify the size and location of these elements.
Understanding Size and Position Measurements
All size and position measurements on the gauge are calculated as a percentage of their parent element. When
parent elements have different width and height values, the size of the gauge element is calculated as a
percentage of the smaller of the two values. For example, on a linear gauge, all pointer measurements are
calculated as a percentage of the width or height of the linear gauge, whichever is smaller.
Position measurements are also calculated as a percentage of their parent element using a coordinate system.
The origin of this coordinate system is in the upper-left corner with the X axis pointing to the right and the Y axis
pointing down. Coordinate values should be between 0 and 100, and all measurements are represented as a
percentage. For example, when the X and Y positions of the linear gauge are set to 50 and 50, the linear gauge is
positioned in the middle of the gauge panel.
Positioning Multiple Gauges inside the Gauge Panel
There are two ways to add a new gauge to a gauge panel that already contains one gauge. You can add a gauge
as a child of the first one or you can add another gauge adjacent to the first one.
When a new gauge is added to a gauge panel, it is sized and positioned in equal proportion to all other gauges
in the gauge panel. For example, if a radial gauge is added to a gauge panel that already contains a radial gauge,
the two gauges will automatically be resized to each fit half of the panel.
You can add a new gauge to a gauge panel that already contains a gauge. To do this, right-click anywhere on the
gauge panel, hover over Add New Gauge and select Child . The Select Gauge Type dialog box will appear.
When the new gauge is added as a child, it is added in one of two ways. In a radial gauge, the child gauge is
positioned in the top-left corner of the first gauge. In a linear gauge, the child gauge is positioned in the middle
of the first gauge. You can position the child gauge, relative to the parent gauge, by using the Position
properties. As with all other elements, position measurements are calculated as a percentage of their parent
element.
Positioning Gauge Scale Labels and Gauge Ranges
There are two properties that determine the position of labels on a gauge scale. You can set the gauge scale's
Placement property to specify whether the labels are displayed inside, outside or across the scale bar. You can
also specify a numeric value for the Distance from scale property, which specifies the number of units that are
added or subtracted from the placement to determine the label position. For example, if Placement is set to
Outside and you have set Distance from scale to 10, the labels will be positioned 10 units from the outer
edge of the gauge scale, where 1 unit is either:
1% of the gauge diameter on a radial gauge, or
1% of the smallest value of the gauge height or width on a linear gauge.
The Position and Distance from scale properties also apply to gauge ranges.
Maintaining Aspect Ratio on a Linear Gauge
The radial gauge assumes a circular form, so this gauge type usually maintains the same width and height
values. However, on a linear gauge, which assumes a rectangular form, the proportion between the width and
height is usually uneven. The aspect ratio of a gauge determines the proportion of width to height that should
be maintained when the gauge is resized. For example, if this value is set to 2, the width of the gauge will always
be twice the height of the gauge, no matter how the gauge is resized. To set the aspect ratio, you can set the
AspectRatio property from the Linear Gauge Proper ties dialog box.
How-To Topics
This section lists procedures that show you, step by step, how to work with gauges in your reports; how to get
data to display effectively in gauges and how to add and configure gauges and their elements.
Add a Gauge to a Report (Report Builder and SSRS)
Set a Minimum or Maximum on a Gauge (Report Builder and SSRS)
Set a Snapping Interval on a Gauge (Report Builder and SSRS)
In This Section
The following topics provide additional information about working with gauges.
T ERM DEF IN IT IO N
Formatting Scales on a Gauge (Report Builder and SSRS) Provides general information about formatting scales on
gauges and detailed information about the formatting
options for scales on radial and linear gauges.
Formatting Pointers on a Gauge (Report Builder and SSRS) Provides general information about formatting pointers on
gauges and detailed information about the formatting
options for pointer styles available for radial and linear
gauges.
Formatting Ranges on a Gauge (Report Builder and SSRS) Provides information about formatting ranges on gauges to
indicate an important subsection of values on the gauge or
visually indicate when the pointer value has gone into a
certain span of values.
See Also
Expressions (Report Builder and SSRS)
Filter, Group, and Sort Data (Report Builder and SSRS)
Report Parameters (Report Builder and Report Designer)
Charts (Report Builder and SSRS)
Tables, Matrices, and Lists (Report Builder and SSRS)
Formatting Scales on a Gauge (Report Builder and
SSRS)
11/2/2020 • 7 minutes to read • Edit Online
In a Reporting Services paginated report, the gauge scale is the range of numbers, bound by a minimum and a
maximum, shown on a gauge. Typically, a gauge scale contains gauge labels and tick marks to give an accurate
reading of what the gauge pointer shows. A gauge scale is generally associated with one or more gauge
pointers. You can have more than one scale on the same gauge.
Unlike the chart, where multiple groups are defined, the gauge only shows one value. You must define the
minimum and maximum values of the scale. The interval numbers are calculated automatically based on the
values specified for the minimum and maximum.
When you add a second scale on a gauge that already contains one scale, the appearance properties of the first
scale are cloned on the second scale.
You can set properties on the scale by right-clicking on the scale labels or tick marks and selecting Radial Scale
Proper ties or Linear Scale Proper ties . Each gauge type contains at least one scale with the same set of
properties. There are also properties unique to each gauge type:
On a radial gauge, you can specify the radius, start angle, and sweep angle of the radial scale.
On a linear gauge, you can specify the width of the start and end margins relative to the endpoints on a
linear gauge.
To quickly get started with formatting scales, see Set a Minimum or Maximum on a Gauge (Report Builder and
SSRS).
NOTE
Using a multiplier does not multiply the actual value of the aggregated field that the gauge uses. It only multiplies the
values of the labels displayed on the gauge after the minimum, maximum, and intervals are defined. Consider keeping the
interval calculations as automatic when using a multiplier.
Specifying the Scale Bar Width, Radius, and Angles on a Radial Scale
Use the Layout page of the Radial Scale Proper ties dialog box to set the scale bar width, scale radius, start
angle, and sweep angle of the scale. You can use these properties to customize the size and format of the scale.
For example, if you position scale labels outside the scale, you will need to resize the radius of the scale so that
the labels fit inside the gauge.
NOTE
When you click the scale of a gauge, a dotted outline appears around the scale. This outline is not the scale bar, and it is
not used when calculating measurements on the gauge. It is available only at design time so that you can highlight the
scale in order to access the scale properties.
All measurements are based on the scale bar. When you select a gauge, the scale bar width is not shown. If you
specify a value for the scale bar, it will help you with all other measurements related to the scale. To view the
scale bar, set the Scale bar width property on the Layout page of the Radial Scale Proper ties dialog box to
a value greater than 0. On a radial gauge, the scale bar is measured as a percentage of the gauge diameter. On a
linear gauge, the scale bar is measured as a percentage of the gauge width or height, whichever is smallest.
The scale radius is the distance from the center of the gauge to the middle of the scale bar. The value of the scale
radius is measured as a percentage of the gauge diameter. It is a good practice to keep the scale radius below a
value of 35. If you specify a value higher than 35, the scale will likely be drawn outside the boundaries of the
gauge. The following illustration shows how the scale radius is measured, relative to the diameter of the gauge,
on the scale bar.
The start angle is the angle of rotation, between 0 and 360, at which the scale will begin. The zero (0) position is
located at the bottom of the gauge, and the start angle rotates clockwise. For example, a start angle of 90
degrees starts the scale at the 9 o'clock position.
The sweep angle is the number of degrees, between 0 and 360 that the scale will sweep in a circle. A sweep
angle of 360 degrees produces a scale that is a complete circle. This is useful if you want to design a gauge to
look like a clock.
See Also
Formatting Ranges on a Gauge (Report Builder and SSRS)
Formatting Pointers on a Gauge (Report Builder and SSRS)
Format Axis Labels as Dates or Currencies (Report Builder and SSRS)
Formatting Axis Labels on a Chart (Report Builder and SSRS)
Gauges (Report Builder and SSRS)
Formatting Pointers on a Gauge (Report Builder
and SSRS)
11/2/2020 • 4 minutes to read • Edit Online
In a Reporting Services paginated report, the gauge pointer indicates the current value of the gauge.
By default, when a field is added, the values that are contained in the field are aggregated into one value that is
shown by the pointer on the gauge. You can add multiple pointers to the gauge to point at multiple values on
the same scale, or add multiple scales and a pointer for every scale you have added. After you add a field to a
gauge, you must set the maximum and minimum values on the corresponding scale to give context to the
pointer value. You also have the option of setting the minimum and maximum values on a range, which shows a
critical area on the scale.
You can set appearance properties on the pointer by right-clicking on the pointer and selecting Radial Pointer
Proper ties or Linear Pointer Proper ties . Each gauge pointer contains the same set of properties. There are
also corresponding appearance properties unique to each gauge type:
On a radial gauge, you can specify a needle pointer and a needle cap.
On a linear gauge, you can specify a thermometer pointer, which is a variation of the bar pointer. The
thermometer pointer lets you specify the shape of the bulb.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
See Also
Formatting Scales on a Gauge (Report Builder and SSRS)
Formatting Ranges on a Gauge (Report Builder and SSRS)
Gauges (Report Builder and SSRS)
Formatting Ranges on a Gauge (Report Builder and
SSRS)
11/2/2020 • 2 minutes to read • Edit Online
In a Reporting Services paginated report, the gauge range is a zone or area on the gauge scale that indicates an
important subsection of values on the gauge. Using a gauge range, you can visually indicate when the pointer
value has gone into a certain span of values. Ranges are defined by a start value and an end value.
You can also use ranges to define different sections of a gauge. For example, on a gauge with values from 0 to
10, you can define a red range that has a value from 0 to 3, a yellow range that has a value from 4 to 7 and a
green range that has a value from 8 to 10. If the start value that you specified is greater than the end value that
you specified, the values are swapped so that the start value is the end value and the end value is the start value.
You can position the range in the same way that you position pointers on a scale. The Position and Distance
from scale properties determine the position of the range. For more information, see Gauges (Report Builder
and SSRS).
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
See Also
Formatting Scales on a Gauge (Report Builder and SSRS)
Formatting Pointers on a Gauge (Report Builder and SSRS)
Set a Minimum or Maximum on a Gauge (Report Builder and SSRS)
Tutorial: Adding a KPI to Your Report (Report Builder)
Gauges (Report Builder and SSRS)
Add a Gauge to a Report (Report Builder and
SSRS)
11/2/2020 • 2 minutes to read • Edit Online
In a Reporting Services paginated report, when you want to summarize data in a visual format, you can use a
gauge data region. After you add a gauge data region to the design surface, you can drag report dataset fields to
a data pane on the gauge.
NOTE
Unlike charts, gauges have only two types: linear and radial. The available gauges in the Select a Gauge Type
dialog box are templates for these two types of gauges. For this reason, you cannot change the gauge type after
you add the gauge to your report. You must delete and re-add a gauge to change its type.
If the report has no data source and dataset the Data Source Proper ties dialog box opens and takes
you through the steps to create both. For more information see, Add and Verify a Data Connection
(Report Builder and SSRS).
If the report has a data source, but no dataset the Dataset Proper ties dialog box opens and takes you
through the steps to create one. For more information, see Create a Shared Dataset or Embedded Dataset
(Report Builder and SSRS).
4. Click the gauge to display the data pane. By default, a gauge has one pointer corresponding to one value.
You can add additional pointers.
5. Add one field from the dataset to the data field drop-zone. You can add only one field. If you want to
display multiple fields, you must add additional pointers, one for each field.
Right-click the gauge scale, and select Scale Proper ties . Type a value for the Minimum and Maximum
of the scale. For more information, see Set a Minimum or Maximum on a Gauge (Report Builder and
SSRS).
See Also
Nested Data Regions (Report Builder and SSRS)
Gauges (Report Builder and SSRS)
Set a Minimum or Maximum on a Gauge (Report
Builder and SSRS)
11/2/2020 • 2 minutes to read • Edit Online
Unlike charts in a Reporting Services paginated report, where multiple groups are defined, gauges show only
one value. Because Report Builder and Report Designer determine the context or relative significance of the one
value that you are trying to show on the gauge, you must define the minimum and maximum of the scale.
For example, if your data values are rankings between 0 and 10, you will want to set the minimum to 0 and
maximum to 10. The interval numbers are calculated automatically based on the values specified for the
minimum and maximum. By default, the minimum and maximum are set to 0 and 100, but this is an arbitrary
value that you should change. The application does not calculate your value as a percentage.
If the range of your values is large, for example from 0 to 10000, consider using a multiplier to reduce the
number of zeroes on the gauge. The multiplier will only reduce the scale of the numbers on the gauge, not the
value itself.
You can use expressions to set the values of the Minimum and Maximum options. For more information, see
Expressions (Report Builder and SSRS).
See Also
Formatting Scales on a Gauge (Report Builder and SSRS)
Formatting Pointers on a Gauge (Report Builder and SSRS)
Gauges (Report Builder and SSRS)
Indicators (Report Builder and SSRS)
11/2/2020 • 10 minutes to read • Edit Online
In Reporting Services paginated reports, indicators are small gauges that convey the state of a single data value
at a glance. The icons that represent indicators and their states are simple and visually effective even when used
in small sizes.
You can use state indicators in your reports to show the following:
Trends by using trending-up, flat (no change), or trending-down arrows.
State by using commonly recognized symbols such as checkmarks and exclamation marks.
Conditions by using commonly recognized shapes such traffic lights and signs.
Ratings by using common recognized shapes and symbols that show progress such number of
quadrants in a square and stars.
You can use indicators by themselves in dashboards or free-form reports, but they are most commonly used in
tables or matrices to visualize data in rows or columns. The following diagram shows a table with a traffic light
indicator that conveys year to date sales by sales person and territory.
Reporting Services provides built-in indicator sets and indicator icons to use as is, and you can also customize
individual indicator icons and indicators sets to suit your needs.
For more information about using indicators as KPIs, see Tutorial: Adding a KPI to Your Report (Report Builder).
NOTE
You can publish indicators separately from a report as report parts. Read more about Report Parts.
After you choose a indicator set, you can customize the appearance of each indicator icon in the set by setting its
properties in the dialog boxes for indicators or the Properties pane. You can use the built-in colors, icons, and
sizes or expressions to configure indicators.
Customizing Indicators
Indicators can be customized to suit your needs. You can modify the indicators sets as well as individual
indicator icon within a set in the following ways:
Change the colors of indicator icons. For example, you might want the color scheme of an indicator set to
be monochromatic or use colors other than the default ones.
Change the icon in the indicator set. For example, you might want to use the star, circle, and square icons
in one indicator set.
Specify the start and end values for and indicator. For example, you might want to skew data display by
using one icon for 75 percent of the indicator values.
Add icons to the indicator set. For example, you might want to add additional icons to indicator sets to
differentiate the indicator values in a more detailed way.
Delete icons from the indicator set to make the data display simpler by using only a few icons.
For more information, see Change Indicator Icons and Indicator Sets (Report Builder and SSRS).
For more information about adding, changing, and deleting indicators, see Add or Delete an Indicator (Report
Builder and SSRS).
When you first add an indicator to a report, it is configured to use default values. You can then change the values
so the indicator depicts data the way you want. You can change the appearance of the indicator icons, the way
the indicator chooses which icon to use, and change the icons used by an indicator set. For more information,
see Change Indicator Icons and Indicator Sets (Report Builder and SSRS).
By default, indicators are configured to use percentages as the measurement unit and automatically detect the
minimum and maximum values in the data. Each icon in the indicator set has a percentage range. The number of
percentage ranges depends on the number of icons in the icon set, but the ranges are the same size and
sequential. For example, if the icon set has five icons, there are five percentage ranges, each 20 percent in size.
The first one starts at 0 and ends at 20, the second starts at 20 and ends at 40, and so forth. The indicator on the
report uses the icon from the indicator set that has a percentage range within which the indicator data value
falls. You can change the percentage range for each icon in the set. The minimum and maximum values can be
set explicitly by providing a value or an expression. You can change the measurement unit to be a numeric value
instead. In this situation, you do not specify minimum or maximum for the data. Instead, you provide only the
start and end values for each icon that the indicator uses. For more information, see Set and Configure
Measurement Units (Report Builder and SSRS).
Indicators convey data values by synchronizing across indicator data values within a specified scope. By default,
the scope is the parent container of the indicator such as the table or matrix that contains the indicator. You can
change the synchronization of the indicator by choosing a different scope, depending on the layout of your
report. The indicator can omit synchronization. For more information, see Set Synchronization Scope (Report
Builder and SSRS).
For general information about understanding and setting scope within reports, see Expression Scope for Totals,
Aggregates, and Built-in Collections (Report Builder and SSRS).
Indicators use only a single value. If you have to show multiple data values, use a sparkline or data bar instead of
an indicator. They can represent multiple data values but are also simple, easy to understand at small sizes, and
work well in tables and matrices. For more information, see Sparklines and Data Bars (Report Builder and SSRS).
For more information, see Include Indicators and Gauges in a Gauge Panel (Report Builder and SSRS).
For more information about using gauges, see Gauges (Report Builder and SSRS).
Red 0 3500
The red down arrow depicts the value 3500 and the yellow horizontal arrow 5000.
Red 0 3500
The yellow horizontal arrow depicts the value 3500 and the green up arrow 5000.
Red 0 3500
The red down arrow depicts the value 3500 and the green up arrow 5000.
Red 0 3500
The yellow down arrow now depicts both the value 3500 and 5000.
In summary, evaluation starts and the top of the indicator state list and the report displays the indicator icon
associated with the first one indicator state that has a value range that the data fits into. By changing the
sequence of the indicator states you can therefore affect the visualization of data values.
How-to Topics
This section lists procedures that show you how to add, change, and delete indicators; how to configure and
customize indicators; and how to use indicators in gauges.
Add or Delete an Indicator (Report Builder and SSRS)
Change Indicator Icons and Indicator Sets (Report Builder and SSRS)
Set and Configure Measurement Units (Report Builder and SSRS)
Set Synchronization Scope (Report Builder and SSRS)
Specify the Size of an Indicator Using an Expression (Report Builder and SSRS)
Include Indicators and Gauges in a Gauge Panel (Report Builder and SSRS)
See Also
Gauges (Report Builder and SSRS)
Sparklines and Data Bars (Report Builder and SSRS)
Charts (Report Builder and SSRS)
Add or Delete an Indicator (Report Builder and
SSRS)
11/2/2020 • 2 minutes to read • Edit Online
In a Reporting Services paginated report, indicators are minimal gauges that convey the state of a single data
value at a glance. For more information about them, see Indicators (Report Builder and SSRS).
Indicators are commonly placed in cells in a table or matrix, but you can also use indicators by themselves, side-
by-side with gauges, or embedded in gauges.
When you first add an indicator, it is by default configured to use percentages as measurement units. The
percentage ranges are evenly distributed across members of the indicator set, and the scope of values shown by
the indicator is the parent of the indicator such as a table or matrix.
You can update the values and states of indicators. For more information, see the following topics:
Change Indicator Icons and Indicator Sets (Report Builder and SSRS)
Set and Configure Measurement Units (Report Builder and SSRS)
Set Synchronization Scope (Report Builder and SSRS)
Because an indicator is positioned inside the gauge panel, you need to select the indicator instead of the panel
when you want to configure the indicator by using the Indicators Proper ties dialog box or the Proper ties
pane. The following picture shows a selected indicator in its gauge panel.
NOTE
Depending on column width and the length of data values, the text in table or matrix cells might wrap and display text on
multiple lines. When this occurs, the indicator icon might be stretched and change shape. This can make the indicator icon
less readable. Place the indicator inside a rectangle to ensure that the icon is never stretched.
NOTE
An indicator might be positioned inside a gauge panel that contains other indicators or gauges. If the gauge
panels contain multiple items, be sure to click the indicator to delete it, not the gauge panel. If you click and then
delete the gauge panel, the gauge panels and all the items in it are deleted.
2. Click Delete .
See Also
Indicators (Report Builder and SSRS)
Change Indicator Icons and Indicator Sets (Report
Builder and SSRS)
11/2/2020 • 2 minutes to read • Edit Online
The preconfigured indicators sets that Reporting Services provides for paginated reports might not always
depict your data effectively and work well in the delivered report. This topic provides procedures to change the
appearance of indicator icons and change the indicator sets to include different, more, or fewer indicator icons.
Options such as colors can be set by using expressions. For more information, see Expressions (Report Builder
and SSRS).
See Also
Indicators (Report Builder and SSRS)
Set and Configure Measurement Units (Report
Builder and SSRS)
11/2/2020 • 2 minutes to read • Edit Online
In a Reporting Services paginated report, indicators use one of two measurement units: percentage or numeric.
By default, indicators are configured to use percentages as the measurement unit. This means that the indicator
values assigned to each icon in the indicator set are determined by a percentage range. The percentage ranges
are evenly divided across the icons in the indicator set. Each icon represents an indicator state. You can change
the percentages for each icon in the indicator set by specifying different start and end percentages. Indicators
also automatically detect the minimum and maximum values in the data.
You can change the measurement unit to be a numeric value. In this case, you do not specify minimum or
maximum for the data; instead, you provide only the start and end values for each icon that the indicator uses.
Options such as measurement units can be set by using expressions. For more information, see Expressions
(Report Builder and SSRS).
NOTE
The values in the Star t and End text boxes must be numeric.
5. Click OK .
Optionally, click the Expression (fx) button to edit an expression that sets the values of the option.
5. For each icon in the indicator set, update the values in the Star t and End text boxes.
Optionally, click the Expression (fx) button to edit an expression that sets the values of the Star t and
End options.
NOTE
The values in the Star t and End text boxes must be numeric.
6. Click OK .
See Also
Indicators (Report Builder and SSRS)
Set Synchronization Scope (Report Builder and
SSRS)
11/2/2020 • 2 minutes to read • Edit Online
In a Reporting Services paginated report, indicators convey data values by synchronizing across the range of
indicator values within a specified scope.
By default, the scope is the parent container of the indicator such as the table or matrix that contains the
indicator. You can change the synchronization of the indicator depending on the layout of your report. For
example, if a data region such as a table has a row group, you can specify the group as the indicator scope. The
indicator can also omit synchronization.
Options such as measurement units can be set by using expressions. For more information, see Expressions
(Report Builder and SSRS).
For general information about understanding and setting scope within reports, see Expression Scope for Totals,
Aggregates, and Built-in Collections (Report Builder and SSRS).
See Also
Indicators (Report Builder and SSRS)
Specify the Size of an Indicator Using an Expression
(Report Builder and SSRS)
11/2/2020 • 2 minutes to read • Edit Online
In addition to color, direction, and shape, you can use size to maximize the visual impact of indicators.
An indicator has a collection of indicator states named IndicatorStates. The IndicatorStates collection typically
have multiple states. Each state is a member of the collection and is represented by an icon. Together the states
constitute the IndicatorsStates collection.
To dynamically configure the sizes of icons, you set properties of members of the IndicatorsStates collection in
the Properties pane of Report Builder. If the Proper ties pane is not visible, click the View tab and select
Proper ties .
NOTE
In SQL Server Data Tools (SSDT), you use the Proper ties window to set the member properties. If the Proper ties
window is not open, press the F4 key.
The Proper ties pane provides access to the properties of the IndicatorStates collection of an indicator. You
configure the icons to be different sizes by setting the ScaleFactor property of the IndicatorStates collection
members using an expression. For more information, see Expressions (Report Builder and SSRS).
The expression used in this procedure was also used to generate the report with different sizes of indicators,
shown in Indicators (Report Builder and SSRS).
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
For more information, see Expression Examples (Report Builder and SSRS).
6. Click OK .
7. Click OK .
See Also
Indicators (Report Builder and SSRS)
Include Indicators and Gauges in a Gauge Panel
(Report Builder and SSRS)
11/2/2020 • 3 minutes to read • Edit Online
The gauge panel is the top-level container that holds one or more gauges and indicators. Indicators can be
embedded in gauges or placed next to them in the gauge panel.
If the indicator and gauge are adjacent in the gauge panel and show data from different fields, you might want
to add labels to make it clear what data the gauge and indicator convey.
Gauge and indicator options can be set by using expressions. For more information, see Expressions (Report
Builder and SSRS).
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
See Also
Indicators (Report Builder and SSRS)
Maps (Report Builder and SSRS)
3/5/2021 • 17 minutes to read • Edit Online
To visualize business data against a geographical background, you can add a map to your Reporting Services
paginated report. The type of map that you select depends on what information that you want to communicate
in your report. You can add a map that displays locations only, or a bubble map that varies bubble size based on
number of households for an area, or a marker map that varies marker style based on the most profitable
product for each store, or a line map that displays routes between stores.
A map contains a title, a viewport that specifies the center point and scale, an optional Bing map tile background
for the viewport, one or more layers that display spatial data, and a variety of legends that help users interpret
the data visualizations. The following illustration shows the basic parts of a map.
To start to use a map immediately, see Tutorial: Map Report (Report Builder) or Report Samples (Report Builder
and SSRS).
NOTE
You can save maps separate from a report as report parts. Read more about Report Parts.
ESRI Shapefiles. ESRI Shapefiles contain data that complies with the Environmental Systems Research
Institute, Inc. (ESRI) Shapefile spatial data format. ESRI Shapefiles refer to a set of files. Data in the .shp file
specifies the geographical or geometrical shapes. Data in the .dbf file provides attributes for the shapes.
To view a map in design view or to run a map from the report server, both files must be in the same
folder. When you add spatial data from a .shp file on your local file system, the spatial data is embedded
in your report. To retrieve spatial data dynamically at run time, upload the Shapefiles to your report
server, and then specify them as the source for spatial data. For more information, see Finding ESRI
Shapefiles for a Map.
SQL Ser ver spatial data stored in a database. You can use a query that specifies SQLGeometr y or
SQLGeography data types from a SQL Server relational database. For more information, see Spatial
Data Types Overview.
In the result set that you see in the query designer, each row of spatial data is treated as a unit and stored
in a single map element. For example, if there are multiple points that are defined in one row in the result
set, display properties apply to all points in that map element.
Custom locations that you create. You can manually add locations as embedded points to an
embedded point layer. For more information, see Add Custom Locations to a Map (Report Builder and
SSRS).
Spatial Data in Design View
In Design view, the report processor displays sample spatial data to help you design the map layer. The data that
you see depends on the availability of the spatial data:
Embedded data. The sample data is retrieved from map elements embedded in map layers in your
report.
Link to ESRI Shapefile . If the ESRI Shapefile (.shp) and the support file (.dbf) are available, the sample
data is loaded from the Shapefile. Otherwise, the report processor generates sample data and displays
the message No spatial data available .
SQL Ser ver spatial data. If the data source is available and the credentials are valid, the sample data is
loaded from the spatial data in the database. Otherwise, the report processor generates sample data and
displays the message No spatial data available .
Embedding Spatial Data in the Report Definition
Unlike analytical data, you have the option to embed spatial data for a map layer in the report definition. When
you embed spatial data, you embed map elements that are used in the map layer.
Embedded elements increase the size of the report definition but ensure that the spatial data is always available
when the report runs, either in preview or on the report server. More data means more storage and longer
processing times. It is always a best practice to limit spatial data, in addition to other report data, to just the
information that is needed for your report.
Controlling Map Resolution at Run Time
When you change the resolution for spatial data, you are specifying how detailed you want the lines drawn on a
map. For example, for areas, do you need granularity down to a hundred meters of surface area on the earth, or
is one mile enough detail?
If the spatial data is embedded in the report, the resolution that you use affects the number of map elements in
the report definition. A higher resolution increases the number of elements that are required to draw borders at
that resolution. If the spatial data is not embedded in the report, the report server calculates the lines that are
required to draw the borders at that resolution every time you view the report. To design a report that balances
display resolution and acceptable report rendering time, simplify the map resolution to the level of detail that
you need in your report to visualize your analytical data.
Analytical Data
Analytical data is the data that you want to visualize on the map, for example, population for a city or sales total
for a store. Analytical data can come from one of the following sources:
Dataset field. A field from a dataset in the Report Data pane.
Spatial data source field. A field from the spatial data source that is included with the spatial data. For
example, an ESRI Shapefile frequently includes both spatial and analytical data. Field names from the
spatial data source begin with # and appear in the drop-down list of fields when you are specifying the
data field for rules for a layer.
Embedded data for a map element. After you embed polygons, lines, or points in a report, you can
override the data fields for individual map elements and set custom values.
When you specify rules for a layer and select the analytical data field, if the data type is numeric, the report
processor automatically uses the default function Sum to calculate aggregate values for the map element. If the
field is not numeric, no aggregate function is specified, and the implicit aggregate function First is used. To
change the default expression, change the options for the rules for the layer. For more information, see Vary
Polygon, Line, and Point Display by Rules and Analytical Data (Report Builder and SSRS).
Match Fields
To relate analytical data to map elements on a layer, you must specify match fields. Match fields are used to build
a relationship between map elements and analytical data. You can use one or more fields to match on as long as
they specify a unique analytical value for each spatial location.
For example, for a bubble map that varies bubble size by city population, the following data is needed:
From the spatial data source:
SpatialData. A field that has spatial data that specifies the latitude and longitude of the city.
Name. A field that has the name of the city.
Area. A field that has the name of the region.
From the analytical data source:
Population. A field that has the city population.
City. A field that has the name of the city.
Area. A field that has the name of the territory, state, or region.
In this example, the name of the city alone is not enough to uniquely identify the population. For example, there
are many cities named Albany in the United States. To name a specific city, you must specify the area in addition
to the city name.
Understanding the Map Viewport
After you specify map data for a report, you can limit the display area of the map by specifying a map viewport.
By default, the viewport is the same area as the whole map. To crop the map, you can specify the center, zoom
level, and maximum and minimum coordinates that define the area that you want to include in your report. To
improve the display of the map in the report, you can move the legends, distance scale, and color scale outside
the viewport. The following figure shows a viewport:
For more information about map layers, see Add, Change, or Delete a Map or Map Layer (Report Builder and
SSRS).
Varying Display Properties for Points, Lines, and Polygons
Display options for a map elements can be set at the layer level, by using rules for the layer, or on individual
elements. For example, you can set display properties for all points on a layer, or you can set rules that control
the display properties for all points on a layer whether or not they are embedded, or you can override display
property settings for specific embedded points.
When you view a report, the display values that you see are controlled by this hierarchy, listed in ascending
order. The higher numbers take precedence:
1. Layer proper ties. Properties that apply to the whole layer. For example, use layer properties to set the
source of analytical data or the visibility for the whole layer.
2. Polygon, Line, Point proper ties and Embedded Polygon, Line, Point proper ties. Properties that
apply to all map elements on a layer, whether the elements are from dynamic spatial data or embedded
spatial data. For example, use polygon center point properties to set the fill color for bubbles to a
gradient that fills bubble areas from dark blue to light blue and from top to bottom.
3. Color Rules, Size Rules, Width Rules, Marker Type Rules. Rules apply properties to a layer when
the layer has map elements that have a relationship to analytical data. The type of rules vary based on
layer type. For example, use point size rules to vary bubble size based on population.
4. Override for Embedded Polygon, Line, or Point proper ties . For embedded map elements, you can
select the override option and change any property or data value. Any changes that you make to override
rules for individual elements are irreversible. For example, you can highlight a specific store by using a
pushpin marker.
For more information, see Vary Polygon, Line, and Point Display by Rules and Analytical Data (Report Builder
and SSRS).
In addition to varying the appearance of map elements, you can add interactivity to points, lines, and polygons,
or to layers, in the following ways:
Create tooltips to provide additional details for a map element when the user hovers a pointer over the
map.
Add drillthrough actions to link to other locations in the report, to other reports, or to Web pages.
Add parameters in expressions that define layer visibility to enable a user to show or hide specific map
layers.
For more information, see Interactive Sort, Document Maps, and Links (Report Builder and SSRS).
Troubleshooting Maps
Map reports use spatial and analytical data from a variety of data sources. Each map layer can use different
sources of data. The display properties for each layer follow a specific precedence based on layer properties,
rules, map element properties.
If you do not see the result that you want when you view a map report, the root causes can come from a variety
of issues. To help you isolate and understand each issue, it helps to work with one layer at a time. Use the Map
pane to select a layer and easily toggle its visibility.
For more information about map report issues, see Troubleshoot Reports: Map Reports (Report Builder and
SSRS)
How-To Topics
This section lists procedures that show you, step by step, how to work with maps and map layers in your
reports.
Add, Change, or Delete a Map or Map Layer (Report Builder and SSRS)
Change Map Legends, Color Scale, and Associated Rules (Report Builder and SSRS)
Add Custom Locations to a Map (Report Builder and SSRS)
In This Section
Plan a Map Report (Report Builder and SSRS)
Map Wizard and Map Layer Wizard (Report Builder and SSRS)
Customize the Data and Display of a Map or Map Layer (Report Builder and SSRS)
Vary Polygon, Line, and Point Display by Rules and Analytical Data (Report Builder and SSRS)
Add, Change, or Delete a Map or Map Layer (Report Builder and SSRS)
Change Map Legends, Color Scale, and Associated Rules (Report Builder and SSRS)
Add Custom Locations to a Map (Report Builder and SSRS)
Troubleshoot Reports: Map Reports (Report Builder and SSRS)
Plan a Map Report (Report Builder and SSRS)
11/2/2020 • 9 minutes to read • Edit Online
Good reports present information that leads to actions or insights. To present analytical data such as sales totals
or demographics against a geographic background, you can add a map to your Reporting Services paginated
report. A map can contain multiple layers, where each layer displays map elements that are defined by a specific
type of spatial data: points that represent locations, lines that represent routes, or polygons that represent areas.
You can associate your analytical data with map elements on each layer.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
DESC RIP T IO N A N D
W IZ A RD IC O N L AY ER ST Y L E L AY ER T Y P E O P T IO N S
After you add a map with the Map wizard, you can create additional layers or change options for a layer by
using the Layer wizard. For more information about the wizards, see Map Wizard and Map Layer Wizard (Report
Builder and SSRS).
You can customize the display or data options for each layer independently. For more information about
customizing a map after you run a wizard, see Customize the Data and Display of a Map or Map Layer (Report
Builder and SSRS).
See Also
Customize the Data and Display of a Map or Map Layer (Report Builder and SSRS)
Tutorial: Map Report (Report Builder)
Maps (Report Builder and SSRS)
Troubleshoot Reports: Map Reports (Report Builder and SSRS)
Map Wizard and Map Layer Wizard (Report Builder
and SSRS)
3/5/2021 • 14 minutes to read • Edit Online
In Reporting Services paginated reports, the Map Wizard and Map Layer Wizard automate the task of creating a
map, adding a map layer, or changing map layer options on an existing layer.
Before you add a map to a report or a map layer to a map, gather the following information:
Spatial data source. The location or connection to a source that provides spatial data, for example, the
name of a SQL Server instance and a database that contains spatial data, or the name of an
Environmental Systems Research Institute, Inc. (ESRI) Shapefile.
Spatial data. From the spatial data source, a field that contains sets of coordinates that specify locations.
Analytical data. Analytical data to use to vary the map display, for example, annual store sales.
Match fields. Match fields that define the relationship between spatial data and analytical data, for
example, the name of a region and city to uniquely identify each city.
The following sections provide information about options that you specify when in the Map and Map Layer
Wizards.
When you first open Report Builder, click the Map wizard icon in the center of the design surface.
On the Inser t tab, click Map , and then click Map Wizard .
To open the Map Layer wizard, do the following action:
Click the map to display the Map pane and on the toolbar, click the New layer wizard button.
Click the title of the wizard page for the corresponding help content. The pages that you see vary depending on
your choices for the type of map, the source of spatial data, and the source of analytical data.
1. Choose a source of spatial data. Spatial data can come from the map gallery, an Environmental Systems
Research Institute, Inc. (ESRI) Shapefile, or from spatial data in a SQL Server relational database.
What is spatial data?
What is the Map gallery?
What is an ESRI Shapefile?
Where can I get ESRI shapefiles?
What is a SQL Server spatial query?
2. Choose spatial data and map view options. Set the map view, the map resolution, specify whether to
embed spatial data in the report, and specify whether to include a tile background of Microsoft Bing map
tiles.
What is the map view or viewport?
What is map resolution or optimization?
What does embedding spatial data do?
What is a Bing maps tile background?
3. Choose map visualization. Choose the type of map to create.
What is the difference between a Basic Map, a Bubble Map, and an Analytical Map?
Choose map visualization: Polygons
Choose map visualization: Lines
Choose map visualization: Points
4. Choose a connection to a data source Choose map visualization: Points. Choose a data source connection
or create one to an external data source that contains analytical data to display on the map.
5. Design a query. Build a query that specifies the analytical data.
6. Choose the analytical dataset. Specify a data source for the analytical data.
What is the difference between spatial data and analytical data?
7. Specify the match fields for spatial and analytical data. Build a relationship between the spatial data and
analytical data so that the appearance of map elements can vary based on data.
What is a match field?
8. Choose color theme and data visualization. To specify how to visualize your data against the map
background, specify the map theme, the fields to visualize, and what to vary: color, size, and/or marker
type.
What does the theme do?
What are the legends and scales in Map Preview for?
What are rules?
After you add a map or map layer and preview the report, you can change map and map layer options that you
set in the wizards. For more information, see Customize the Data and Display of a Map or Map Layer (Report
Builder and SSRS).
For more information about maps, see Maps (Report Builder and SSRS). For step-by-step instructions to add a
map to a report, see Tutorial: Map Report (Report Builder).
NOTE
This Reporting Services mapping feature uses data from TIGER/Line Shapefiles provided courtesy of the U.S. Census
Bureau (https://www.census.gov/). TIGER/Line Shapefiles are an extract of selected geographic and cartographic
information from the Census MAF/TIGER database. TIGER/Line Shapefiles are available without charge from the U.S.
Census Bureau. To obtain more information about the TIGER/Line Shapefiles go to TIGER/Line Shapefiles and TIGER/Line
Files Technical Documentation. The boundary information in the TIGER/Line Shapefiles are for statistical data collection
and tabulation purposes only; their depiction and designation for statistical purposes does not constitute a determination
of jurisdictional authority or rights of ownership or entitlement and they are not legal land descriptions. Census TIGER and
TIGER/Line are registered trademarks of the U.S. Bureau of the Census.
To extend the map gallery, you can add or remove reports from the map gallery directory, and add folders to
organize the maps. For more information, see Maps (Report Builder and SSRS).
What is an ESRI shapefile?
An ESRI Shapefile is a set of files with data that conforms to the Environmental Systems Research Institute, Inc.
(ESRI) shapefile spatial data format. The set of files typically includes the <filename>.shp file that contains the
spatial data and a support file, <filename>.dbf.
When you specify a shape file as a spatial data source and it is located on your local computer, the spatial data is
automatically embedded in the report. To use spatial data from an ESRI file dynamically, you must do the
following:
In Report Builder, upload both the .shp file and the .dbf file to the same folder on a report server, and then link to
the .shp file as the spatial data source.
In Report Designer in SQL Server Data Tools (SSDT), add both the .shp file and the .dbf file to the report project,
and then specify the name of the .shp file as the spatial data source.
Where can I get ESRI shapefiles?
ESRI shapefiles are available on the Web. For more information, see Finding ESRI Shapefiles for a Map.
What is a SQL Server spatial query?
A SQL Server spatial query is a dataset query that specifies data that is either a SQLGeometry or a
SQLGeography data type from a SQL Server relational database.
NOTE
When you define a data source in the wizard, you will see different query designers in the Design a Query page,
depending on what type of data source you are connecting to. For more information, see Query Design Tools (SSRS).
When you run the query in the query designer, the result set displays a column with spatial data that appears as
text. For example, one row might contain spatial data that is a single point and the next row might contain
spatial data that defines a set of points. Each row becomes one map element. You can vary the display of each
map element as an indivisible unit.
For more information, see Spatial Data Types.
Choose spatial data and map view options
On this page you can set the following options:
Set the view center and zoom level for the spatial data that you selected in the previous wizard page. The
view that you set applies to the whole map.
Set the map resolution.
Specify whether to embed the spatial data in the report.
For embedded data, specify whether to include all data or just the data in the current view.
Specify whether to include a Microsoft Bing map tiles background.
What is the map view or viewport?
The map viewport defines the map area to display for all layers in your report.
By default, color scale and distance scale appear inside the viewport, and the map legend appears outside the
viewport. You can change these options for the viewport after you complete the wizard.
What is map resolution and optimization?
When you change the resolution for spatial data that represents lines or polygons, you are specifying how
detailed you want the map to be drawn. For example, for aerial views of a region, do you need granularity down
to a hundred meters of surface area on the earth, or is one mile resolution enough?
When spatial data is embedded in the report, a higher resolution increases the number of elements that are
needed to draw details at that resolution. When the spatial data is not embedded in the report, a higher
resolution increases the amount of time required by the report processor to calculate the lines for the map at
that resolution every time you view the report.
When you lower the resolution, the report processor applies an algorithm to reduce the number of points
needed to draw the map elements. The lower the resolution, the less data is required to display the map
elements, which can lead to better display performance.
As you adjust the slider, the preview data in the wizard pane updates to give you an indication of the effect. After
you add the map to the report, you can adjust this value by changing map viewport options.
What does embedding spatial data do?
When you embed map elements or Bing map tiles in a report, the spatial data is stored in the report definition.
A report with a map can use spatial data or Bing map tiles that are retrieved dynamically either when the report
is processed or at design time and then embedded in the report definition. Embedded map elements can
significantly increase the size of the report definition, but reduce the time it takes to view the map in the report.
Dynamic map elements reduce the report definition size but increase the time it takes to process and view the
map.
Good report design requires that you assess the trade-offs for static or dynamic map data and find the balance
that works for your circumstances. In general, more data means the report definition and the compiled report
requires more storage on the report server and longer processing times. It is always a best practice to crop
spatial data, as well as limit other report data, to include just what is needed for the report.
What is a Bing map tile background?
To add a geographic image background to your map, select the Bing map tile background option. The report
processor downloads tiles from Bing Maps Web Services for the map area and resolution that you specify on
this wizard page. You can specify one of the following tile types:
Road. Display a road map style with white background.
Aerial. Display an aerial view only. No text is displayed in this mode.
Hybrid. Display the combination of Road and Aerial views.
For more information about tiles, see Bing Maps Tiles System. For more information about the use of Bing map
tiles in your report, see Additional Terms of Use.
To see a tile background in Design view, you must have Internet access. To see the tile background in preview
from a report on a report server, the report server must be configured to support Bing map tiles. For more
information, see Troubleshoot Reports: Map Reports (Report Builder and SSRS) and Plan a Map Report.
For more information on other ways to customize a tile layer, see Add, Change, or Delete a Map or Map Layer
(Report Builder and SSRS).
See Also
Troubleshoot Reports: Map Reports (Report Builder and SSRS)
Plan a Map Report (Report Builder and SSRS)
Maps (Report Builder and SSRS)
Customize the Data and Display of a Map or Map
Layer (Report Builder and SSRS)
11/2/2020 • 8 minutes to read • Edit Online
After you add a map or map layer to a Reporting Services paginated report by using a wizard, you might want
to change the way the map looks in the report. You can make improvements by considering the following ideas:
To help your users understand how to interpret the data display on a map, you can add legends and a
color scale, and add labels and tooltips.
To make the map easier to read, change the center and zoom level, add a distance scale, and display a
background grid.
To help control map drawing time when you run the report, you can adjust the resolution to simplify the
map elements.
You can embed map elements in the report definition, and then change how individual elements appear.
For example, you can display the primary office location with a pushpin and other office locations with
circles.
You can add customized regions by specifying your own data group expressions.
You can add a custom location at a point that you specify on a map layer that has embedded points. You
can set the value and display properties for custom points independently from other points on a point
layer.
To provide more detail, you can add links to map elements on each layer that a user can click to open
related reports.
For more ideas about improving a report, see Planning a Report (Report Builder).
Display options affect the way a map or the parts of a map appear when you view the report. Some options
control the appearance of the map, such as the borders and fonts or the area represented on the map. Other
options control the content of each layer, such as bubble sizes, marker types, labels, or tooltips.
A map report item includes the following parts: the map itself, a map viewport, a set of titles, a set of legends
(legend, color scale, and distance scale), a set of layers, a set of map elements on each layer (polygons or lines or
points). Use the information in the following sections to understand which property dialog box controls the
display options for different parts of a map.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
See Also
Map Wizard and Map Layer Wizard (Report Builder and SSRS)
Maps (Report Builder and SSRS)
Vary Polygon, Line, and Point Display by Rules and
Analytical Data
11/2/2020 • 7 minutes to read • Edit Online
The display options for polygons, lines, and points on a map layer are controlled by setting options for the layer,
by setting rules for the map elements on the layer, or by overriding options for specific embedded map
elements on a layer.
Display options apply in a specific precedence, listed from lowest to highest precedence:
1. Options set on a polygon layer, a line layer, and a point layer apply to all map elements on that layer,
whether or not the map elements are embedded in the report definition.
2. Options set for rules apply to all map elements on a layer. All data visualization options apply only to map
elements that are associated with spatial data. A data visualization option requires you to specify a data
field to base display variations on. You must have set the match fields for the analytical and spatial data
before you can apply data visualization rules. For more information, see Maps (Report Builder and SSRS).
3. Options that you set for selected embedded map elements. Note that, when you override the layer
options, the changes that you make to the report definition are permanent. You can change the data field
values as well as override display options to customize the way specific polygons, lines, and points
appear on a layer.
In addition to controlling the display of map elements on a layer, you can control the layer transparency to allow
layers that are drawn earlier to show through layers that are drawn later. For more information about changing
options that affect the map or the entire map layer, see Customize the Data and Display of a Map or Map Layer
(Report Builder and SSRS).
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
Understanding Rules
You can set four types of rules that enable the report processor to automatically adjust display properties for
map elements on a layer. Rules vary depending on the map element type: polygons, lines, or points.
Polygons. Vary polygon color.
Polygon Center Points. For markers that display at the center point of each polygon, vary marker
color, marker size, and marker type.
Lines. Vary line color and line width.
Points. For markers that display for each point, vary marker color, marker size, and marker type.
EXA M P L E O F W H AT A P P EA RS A S T EXT
K EY W O RD A N D F O RM AT DESC RIP T IO N IN T H E L EGEN D
See Also
Change Map Legends, Color Scale, and Associated Rules (Report Builder and SSRS)
Maps (Report Builder and SSRS)
Map Wizard and Map Layer Wizard (Report Builder and SSRS)
Add, Change, or Delete a Map or Map Layer
(Report Builder and SSRS)
11/2/2020 • 9 minutes to read • Edit Online
A map is a collection of layers. When you add a map to a Reporting Services paginated report, you define the
first layer. You can create additional layers by using the map layer wizard.
The easiest way to add, remove, or change options for a layer is to use the map layer wizard. You can also
change options manually from the Map pane. To display the Map pane, click in the map on the report design
surface. The following figure displays the parts of the pane:
Map layers are drawn from bottom to top in the order that they appear in the Map pane. In the previous figure,
the tile layer is drawn first and the polygon layer is drawn last. Layers that are drawn later might hide map
elements on layers that are drawn earlier. You can change the order of layers by using the arrow keys on the
Map pane toolbar. To show or hide layers, toggle the visibility icon. You can change the transparency of a layer
on the Visibility page of the Layer Data properties dialog box.
The following table displays the toolbar icons for the Map pane.
At the bottom of the Map pane is the Map view area. To change the center or zoom options for the map, use the
arrow keys to adjust the view center and the slider to adjust the zoom level.
For more information about layers, see Maps (Report Builder and SSRS).
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
To add a point, line, or polygon layer from the Map pane toolbar
1. Click the map until the Map pane appears.
2. On the toolbar, click the Add Layer button, and from the drop-down list, click the type of layer that you
want to add: Point , Line , or Polygon .
NOTE
Although you can add a map layer and configure it manually, we recommend that you use the map layer wizard
to add new layers. To launch the wizard from the Map pane toolbar, click the layer wizard button ( ).
NOTE
If you do not know the name of the field and you browsed to an ESRI Shapefile, use the Link to ESRI shape file
option instead of this option.
6. Click OK .
To specify an ESRI Shapefile as a source of spatial data
1. Click the map until the Map pane appears.
2. Right-click the layer, and then click Layer Data .
3. In Use spatial data from , select Link to ESRI Shapefile .
4. In File name , type the location of an ESRI Shapefile, or click Browse to select an ESRI Shapefile.
NOTE
If the Shapefile is on your local computer, the spatial data is embedded in the report definition. To retrieve the
data dynamically when the report is processed, you must upload the ESRI .shp file and its .dbf support file to the
report server. For more information, see Upload a File or Report.
5. Click OK .
NOTE
For more information about the use of Bing map tiles in your report, see Additional Terms of Use.
3. Right-click the tile layer in the Map pane, and then click Tile Proper ties .
4. In Tile options , select a tile style. If the Bing map tiles are available, the layer on the design surface
updates with the style that you select.
NOTE
A tile layer can also be added when you add a polygon, line, or point layer in the Map or Map Layer wizard. On
the Choose spatial data and map view options page, select the option Add a Bing Maps background
for this map view .
See Also
Maps (Report Builder and SSRS)
Troubleshoot Reports: Map Reports (Report Builder and SSRS)
Change Map Legends, Color Scale, and Associated
Rules (Report Builder and SSRS)
11/2/2020 • 8 minutes to read • Edit Online
In a Reporting Services paginated report, a map can contain map legends, a color scale, and a distance scale.
These parts of a map help users interpret the data visualization on the map.
Legends include the following parts of a map:
Map legend Displays a guide to help interpret the analytical data that varies the display of a map
elements on a map layer. A map can have multiple legends. For each map layer, you A specify which
legend to use. A legend can provide a guide to more than one map layer.
Color scale Displays a guide to help interpret colors on the map. A map has one color scale. Multiple
layers can provide the data for the color scale.
Distance scale Displays a guide to help interpret the scale of the map. A map has one distance scale. The
current map viewport zoom value determines the distance scale.
NOTE
In preview, map legends and the color scale appear only when there are results from the rules related to that
legend. If there are no items to display, the legend does not appear in the rendered report.
NOTE
If no fields appear in the drop-down list, right-click the layer, and then click Layer Data to open the Map Layer
Data Properties Dialog Box, Analytical Data page and verify that you have specified analytical data for this layer.
5. Click Legend .
6. In Show in this legend , select the map legend to use to display the rule results.
7. Click OK .
NOTE
If no fields appear in the drop-down list, right-click the layer, and then click Layer Data to open the Map Layer
Data Properties Dialog Box, Analytical Data page and verify that you have specified analytical data for this layer.
5. Click Legend .
6. In Color scale options , select Show in color scale to display the rule results in the color scale. You can
specify this option for more than one color rule.
7. Click OK .
See Also
Maps (Report Builder and SSRS)
Add, Change, or Delete a Map or Map Layer (Report Builder and SSRS)
Customize the Data and Display of a Map or Map Layer (Report Builder and SSRS)
Troubleshoot Reports: Map Reports (Report Builder and SSRS)
Map Wizard and Map Layer Wizard (Report Builder and SSRS)
Add Custom Locations to a Map (Report Builder
and SSRS)
11/2/2020 • 2 minutes to read • Edit Online
After you add a map to a Reporting Services paginated report, you can add your own point locations.
Display properties for all points on a layer are controlled by setting options for the point properties for the layer.
For a selected embedded point, you can override the display properties.
NOTE
When you override the layer display properties for the embedded point, the changes that you make are not reversible.
For more information, see Vary Polygon, Line, and Point Display by Rules and Analytical Data (Report Builder
and SSRS).
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
See Also
Maps (Report Builder and SSRS)
Vary Polygon, Line, and Point Display by Rules and Analytical Data (Report Builder and SSRS)
Troubleshoot Reports: Map Reports (Report Builder
and SSRS)
3/5/2021 • 14 minutes to read • Edit Online
Issues with maps in a Reporting Services paginated report might occur when you add a map or map layer to
your report, when you customize an existing map or map layer in your report, when you preview a map in a
report, or when you publish a report with a map. Use this topic to help troubleshoot these issues.
My layer that uses spatial data from an ESRI Shapefile always has
embedded data.
To ensure that reports with maps can run on a report server, ESRI Shapefiles must be available as resources on
the report server. If you add a layer to a map and specify a Shapefile that is on your local file system, the spatial
data is automatically embedded in the report.
To replace the embedded data with a link to the ESRI Shapefile, you must upload the .shp file and its matching
.dbf file to the report server, and then change the source of spatial data for the layer.
I set the map center and view in my report. When I reopen the
report, why isn't the map view the same?
If the user credentials that are needed to read spatial data are not available to the report when you open it,
placeholder spatial data is used. Depending on the center and zoom options set for the map viewport, the map
view might center on a different layer.
To reload the spatial data and use the map view center saved in the report, right-click the map viewport, and
then click Reload . After you enter the credentials for the spatial data source, the layer loads the spatial data and
the map view is restored.
The center and view for a map layer option does not work.
When the viewport is set to center on the spatial data for a specific layer, and the center of the view does not
appear to be the center for the layer, there are probably small islands or areas that are included in the spatial
data that are too small to be seen in the viewport. For example, spatial data for a country might include small
islands or other small territories as part of the territory. The viewport uses all spatial data to calculate the center
for the layer.
To override calculations for the layer, you can do one of the following:
Specify a custom center for the viewport.
Change the zoom level for the viewport to eliminate the locations that you do not want to include.
Embed the spatial data in the report and delete the locations that you do not want to include.
Layer Issues
Use this section to help solve issues that relate to layer options.
TIP
You can toggle visibility for each layer in the Map pane. When you are designing each layer, toggle all other layers
off to determine whether the issue is for an individual layer or is for transparency issues among layers.
The rules that I set do not give the results that I expect.
Rules apply to the analytical data that is associated with map elements on a layer. Use the following list to help
identify issues with all color rules, size rules, width rules, and marker type rules:
The precedence for applying style to each map element (polygon, line, point) is, from lowest to highest
precedence: layer properties; map element properties for all map elements on the layer; rules that you
specify; and then, for embedded map elements that you select the override option for, the values that you
specify. Once you select the override option for an embedded element, rules no longer apply, even if you
later change values back to their original setting.
Match field issues. Match fields enable data binding between map elements and analytical data. The
spatial data and analytical data fields that correspond to match fields must have the same data type and
the same format. If the match field does not exactly match the spatial data and analytical data, the rule
has no effect. For example, if the match field for spatial data has extra blanks or extra punctuation
compared to the match field for the analytical data, no match occurs.
For more information, see Vary Polygon, Line, and Point Display by Rules and Analytical Data (Report
Builder and SSRS).
Tile Issues
Use this section to help solve issues that relate to tile background options.
I cannot see the Bing maps tile background.
The following settings affect whether a Bing maps tile background displays in local preview or on a report that
runs from the report server:
The map tile layer must exist. In the Map wizard or Layer wizard, select Add a Bing Maps background
for this map view . This adds a tile layer for the current map viewport view center and zoom level. You
can also add a tile layer from the Map pane toolbar.
The map coordinate system for the viewport must be Geographic , not Planar .
The map projection must be Mercator .
For local preview, you must have internet access. For a report that runs from the report server, the report
server must be configure to support tile background. For more information, see Plan a Map Report.
For more information about adding a tile layer, see Add, Change, or Delete a Map or Map Layer (Report Builder
and SSRS).
See Also
Maps (Report Builder and SSRS)
Troubleshoot Report Builder
Images, Text Boxes, Rectangles, and Lines (Report
Builder and SSRS)
11/2/2020 • 2 minutes to read • Edit Online
In addition to data regions like tables, matrices, and charts, Reporting Services paginated reports use other
report items like images, text boxes, and rectangles to add visual interest, highlight key information, or provide
related information. You can change the formatting of a report item. For example, you can add a border or
padding, change the initial visibility or direction, or specify an exact size and location for the item.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
In This Section
Text Boxes (Report Builder and SSRS)
Text boxes can be placed anywhere on a report and can contain labels, fields, or calculated data. You use
expressions to define the value to display in a text box when you view a report.
Every cell in a table or matrix is also a text box, which you can format in the same way that you format stand-
alone text boxes.
Rectangles and Lines (Report Builder and SSRS)
Lines display horizontally, vertically, or diagonally. A line is defined with a start and end point and can have
various styles (for example, weight and color) assigned to it. A line has no data associated with it.
Rectangles can be used as a graphical element, or as a container for other report items. As a graphical element,
a rectangle has the same properties as a line. As a container, a rectangle acts as a parent container for all report
items inside it. Placing report items in a parent container helps control how they appear on each report page.
Images (Report Builder and SSRS)
Images display binary image data in a report. You provide the source for the image. The source can be a URL
reference to an image stored on a Web server, a reference to embedded image data, or a reference to binary
image data in a database. Report Builder and Report Designer support .bmp, .jpeg, .gif, and .png files.
See Also
Formatting Report Items (Report Builder and SSRS)
Text Boxes (Report Builder and SSRS)
11/2/2020 • 3 minutes to read • Edit Online
When you think of a text box, you probably think of a stand-alone box containing text on a surface like in
Microsoft Office PowerPoint. In Reporting Services paginated reports, some text boxes are like that, and they can
display static text for titles, descriptions, and labels, or dynamic text based on expressions. But every cell in a
table or matrix (a tablix data region) also contains a text box, which you can format the same way you format
stand-alone text boxes in your report.
NOTE
If you drag a report dataset field value directly to the report design surface, or to a text box on the report design surface,
you only see the first value in the result set when you run the report. To see all the values for a field, you need to create a
table, matrix, or list data region first, and drag the field to a cell in the data region. That way, when you run the report,
you will see all the values in that field.
To show repeating text in a free-form layout, create a list data region and place the text box in it. Use a list when
you want to repeat a form for multiple values, for example, a customer invoice form repeated once for each
customer. Read more about creating invoices and forms with lists.
Use a rectangle container when you want to control the text box layout and white space below the last text box.
For more information, see Rectangles and Lines (Report Builder and SSRS).
The expressions in a text box can contain literal text, point to a field in the database, or calculate data. All
expressions are shown as placeholder text so that you can format numbers, colors, and other appearance
properties. You can also combine placeholders with literal text in the same text box.
You can format text in any single text box with multiple fonts, colors, styles, and actions. For more information,
see Formatting Text and Placeholders (Report Builder and SSRS).
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
Orientation is set on the text box and applies to all the text in the box. You cannot specify a different orientation
for parts of the text box.
To get started, see the section on rotating text in the Tutorial: Format Text (Report Builder), and see Set Text Box
Orientation (Report Builder and SSRS).
How-To Topics
Add, Move, or Delete a Text Box (Report Builder and SSRS)
Format Text in a Text Box (Report Builder and SSRS)
Set Text Box Orientation (Report Builder and SSRS)
Allow a Text Box to Grow or Shrink (Report Builder and SSRS)
See Also
Formatting Text and Placeholders (Report Builder and SSRS)
Formatting Numbers and Dates (Report Builder and SSRS)
Add, Move, or Delete a Text Box (Report Builder
and SSRS)
11/2/2020 • 2 minutes to read • Edit Online
Text boxes are the most commonly used report item in Reporting Services paginated reports. You can add a text
box to the report body to display information such as titles, parameter choices, built-in fields, and dates.
Every cell in a table or matrix is really a text box. Almost all report data displayed in a report with tables and
matrices is the result of the report processor evaluating the contents of each text box in the report. As such, you
can format cells in the same way you would format other text boxes outside the data region.
To add a text box to a list data region, you must first add the text box and then drag it into the list.
NOTE
When you click a text box, you're immediately editing the text in the text box. To select the text box itself, not the text in it,
press ESC.
NOTE
If you click in the text box and are in edit mode, press ESC to select the text box.
6. In the Properties pane, verify that the Parent property is the rectangle that was automatically added to
the list data region.
NOTE
If the Properties pane is not visible, check Proper ties on the View tab.
NOTE
If you click in the text box and are in edit mode, press ESC to select the text box.
2. Click the text box handle and drag the text box to the new location.
Alternatively, use the arrow keys to move a selected text box horizontally or vertically. To move the text
box in smaller increments on the design surface, hold down CTRL plus the arrow keys.
NOTE
If you click in the text box and are in edit mode, press ESC to select the text box.
See Also
Text Boxes (Report Builder and SSRS)
Expressions (Report Builder and SSRS)
Keyboard Shortcuts (Report Builder)
Set Text Box Orientation (Report Builder and SSRS)
11/2/2020 • 2 minutes to read • Edit Online
In a Reporting Services paginated report, you can rotate a text box in different directions:
Horizontally
Vertically (rotated 90 degrees, with text reading from top to bottom, except East Asian text characters)
Rotated by 270 degrees (text reading from bottom to top).
Because you rotate the text box not the text, the rotation applies to all the text in the text box. You cannot specify
different directions for parts of the text. Size the column width and the row height manually to accommodate
the rotated text.
The WritingMode property, which you use to specify text orientation, isn't in the Text Box Proper ties dialog
box. It's in the Properties pane and set the property there.
To rotate text
1. Create a report or open an existing report, and add a text box to the design surface.
2. Select the text box that you want to rotate.
3. If the Properties pane is not open, on the View tab, select the Proper ties check box.
4. In the Properties pane, find the WritingMode property and select the text orientation to apply to the text
box.
NOTE
When the properties in the Properties pane are organized into categories, WritingMode is in the Localization
category.
See Also
Text Boxes (Report Builder and SSRS)
Tutorial: Format Text (Report Builder)
Allow a Text Box to Grow or Shrink (Report Builder
and SSRS)
11/2/2020 • 2 minutes to read • Edit Online
In a Reporting Services paginated report, text boxes aren't just the stand-alone boxes on the report design
surface. Every cell in a table or matrix (a tablix data region) also contains a text box, which can be formatted in
the same way as stand-alone text boxes. By default, text boxes are a fixed size. You can set options that let a text
box expand or shrink based on its contents. These options correspond to the CanGrow or CanShrink
properties in the Properties pane.
See Also
Text Boxes (Report Builder and SSRS)
Rectangles and Lines (Report Builder and SSRS)
11/2/2020 • 2 minutes to read • Edit Online
Rectangles and lines can create visual effects within a Reporting Services paginated report. You can set display
properties on these report items from the Border section of the Home tab, and set other properties in the
Properties pane. You can add features like a background color or image, a tooltip, or a bookmark to a rectangle.
NOTE
A rectangle is only a container for items that you either create in the rectangle or drag into the rectangle. If you draw a
rectangle around an item that already exists on the design surface, the rectangle will not act as its container. The rectangle
will not be listed in the item's Parent property.
When using rectangles to contain report items, consider how the items will be affected as a whole during report
rendering. Report items that contain repeated rows of data (for example, tables) will expand to accommodate
the data that is returned by a query, and this affects the positioning of other items in the rectangle. A table will
push items down if they are positioned below the data region. To anchor an item in place, you can place the
report item inside of a rectangle that has an upper edge above the lower edge of the table. For more
information, see Rendering Behaviors (Report Builder and SSRS).
How-To Topics
Add a Border to a Report (Report Builder and SSRS)
Add a Rectangle or Container (Report Builder and SSRS)
Add and Modify a Line (Report Builder and SSRS)
See Also
Add a Rectangle or Container (Report Builder and SSRS)
Add a Rectangle or Container (Report Builder and
SSRS)
11/2/2020 • 2 minutes to read • Edit Online
Add a rectangle to a Reporting Services paginated report when you want a graphical element to separate areas
of the report, emphasize areas of a report, or provide a background for one or more report items. Rectangles
are also used as containers to help control the way data regions render in a report. You can customize the
appearance of a rectangle by editing rectangle properties such as the background and border colors. For more
information about using a rectangle as a container, see Rectangles and Lines (Report Builder and SSRS) and
Display the Same Data on a Matrix and a Chart (Report Builder).
To add a rectangle
1. On the Inser t tab, in the Repor t Items group, click Rectangle.
2. On the design surface, click the location where you want the upper left corner of the rectangle, and drag
to where you want the lower-right corner.
Note that as you move the cursor, "snap lines" appear as the cursor lines up with other objects on the
design surface. These help you if you want objects to be aligned.
To create a container
1. Add a rectangle report item to the report.
2. Drag other report items into the rectangle.
NOTE
A rectangle is only a container for items that you either create in the rectangle or drag into the rectangle. If you
draw a rectangle around an item that already exists on the design surface, the rectangle will not act as its
container.
NOTE
If you set the line style to Double and the line width is 1 1/2 pt or narrower, the line may not appear double
when you run the report in Report Builder, Report Designer, or in the Reporting Services web portal. It appears
double when you export the report to other formats such as Microsoft Word and Acrobat PDF.
See Also
Rectangles and Lines (Report Builder and SSRS)
Rendering Behaviors (Report Builder and SSRS)
Add and Modify a Line (Report Builder and SSRS)
11/2/2020 • 2 minutes to read • Edit Online
You can add a line to a Reporting Services paginated report when you want a graphical element to separate
sections of the report. You can customize the appearance of the line by editing line properties such as color or
style. For example, you might want to incorporate company colors into the report.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
To add a line
1. On the Inser t tab, click Line .
2. On the design surface, click where you want one end of the line, and then click where you want the other
end.
Note that as you move the end of the line, "snap lines" appear as the end lines up with other objects on
the design surface. These help you if you want objects to be aligned.
3. To change the line properties, select the line on the design surface and then edit its properties in the
Border section of the Home tab.
NOTE
If you set the line style to Double and the line width is 1 1/2 pt or narrower, the line may not appear double
when you run the report in Report Builder, Report Designer, or a Reporting Services web portal. It appears double
when you export the report to other formats such as Microsoft Word and Acrobat PDF.
See Also
Rectangles and Lines (Report Builder and SSRS)
Add a Border to a Report (Report Builder and
SSRS)
11/2/2020 • 2 minutes to read • Edit Online
You can add a border to a Reporting Services paginated report by adding borders to the headers, footers, and
report body themselves, without adding lines or rectangles.
If you add a report border that appears on the page header and footer, do not suppress the header and footer
on the first and last pages of the report. If you do, the border might appear cut off at the top or bottom of the
first and last pages of the report. For more information, see Page Headers and Footers (Report Builder and
SSRS).
NOTE
If your report doesn't have headers, you can place borders around just the report body, or you can add headers
from the Inser t tab.
2. Right-click in the body outside any items on the design surface, and click Body Proper ties . On the
Border tab, add a left and right border with the style you want.
3. Right-click in the footer outside any items in the footer, and click Footer Proper ties . On the Border tab,
add a left, bottom, and right border with the style you want.
See Also
Rectangles and Lines (Report Builder and SSRS)
Images in paginated reports (Report Builder)
6/30/2021 • 4 minutes to read • Edit Online
APPLIES TO: ✔
️ Report Builder ✔
️ Power BI Report Builder ✔
️ Report Designer in SQL Server Data Tools
An image is a paginated report item that contains a reference to an image that is embedded in the report, stored
in a database, stored on the report server, or stored elsewhere on the Web. An image can be a picture that is
repeated with rows of data. You can also use an image as a background for certain report items.
Storing logos on a server is a good idea because you can use the same logo in many reports.
Embedding Images
You can embed images in a report so that all image data is stored within the report definition. When you embed
an image, the image is MIME-encoded and stored as text in the report definition. Using an embedded image
ensures that the image is always available to the report, but it also increases the size of the report definition.
For more information about embedding an image, see Embed an Image in a Report (Report Builder and SSRS).
External Images
You can include stored images in a report by specifying a URL to the image. When you use an external image in
a report, the image source is set to External and the value for the image is the URL address or path to the
image.
For more information, see Specifying Paths to External Items (Report Builder and SSRS).
When the report is run in Report Builder or Report Designer, preview uses the credentials of the user to display
the image. When the report is run on the report server, the image in the report may not be displayed if the
server credentials are not sufficient to access the image. In that case, contact your system administrator.
For more information about adding an external image to a report, see Add an External Image (Report Builder
and SSRS).
Background Images
You can use an image as a background image in the body of the report or in a rectangle, text box, list, matrix, or
table. A background image and an image have similar properties. You can also specify how the image is
repeated to fill the background of the item.
NOTE
Some rendering extensions, like the HTML rendering extension, render the background image for the report body in the
body, the page header, and the page footer. You can define a separate background image for the page header and footer,
but if no image is defined, the report uses the background image of the body. Other rendering extensions, like the Image
rendering extension, do not render the body background image in the page header and footer.
For more information about adding a background image, see Add a Background Image (Report Builder and
SSRS).
Data-bound Images
You can add images that are stored in a database to your report. You use the same image report item as the one
used for static images, but with a set of properties that indicate that the image is stored in a database. To view
instructions about working with data-bound images, see Add a Data-Bound Image (Report Builder and SSRS).
How-to Topics
Add an External Image (Report Builder and SSRS)
Embed an Image in a Report (Report Builder and SSRS)
Add a Background Image (Report Builder and SSRS)
Add a Data-Bound Image (Report Builder and SSRS)
See Also
Exporting to an Image File (Report Builder and SSRS)
Rendering Behaviors (Report Builder and SSRS)
Add an external image to a paginated report
(Report Builder)
6/30/2021 • 2 minutes to read • Edit Online
APPLIES TO: ✔
️ Report Builder ✔
️ Power BI Report Builder ✔
️ Report Designer in SQL Server Data Tools
External images can be on a report server in native mode or any other Web site, including a report server in
SharePoint integrated mode (SQL Server 2016 or before). When you include external images in your paginated
report, you must verify that the image exists and that the report reader has permissions to access the image. For
more information, see Images (Report Builder).
For more information, see Specifying Paths to External Items (Report Builder and SSRS).
6. (Optional) Click Size , Visibility , Action , or Border to set additional properties for the image report
item.
7. Click OK .
See Also
Embed an Image in a Report (Report Builder and SSRS)
Add a Background Image (Report Builder and SSRS)
Image Properties Dialog Box, General (Report Builder and SSRS)
Embed an image in a paginated report (Report
Builder)
6/30/2021 • 2 minutes to read • Edit Online
APPLIES TO: ✔
️ Report Builder ✔
️ Power BI Report Builder ✔
️ Report Designer in SQL Server Data Tools
A paginated report can include an embedded image. Embedding an image ensures that the image is always
available to a report, but can affect the size of the report definition, the file that defines the report. The images
embedded in a report are listed in the Report Data pane.
You might want to embed an image in the report definition before adding the image to the design surface. For
more information, see Add a Background Image (Report Builder).
NOTE
The MIME type (for example, bmp) is derived automatically when the image is imported. To change the MIME
type, see the next procedure.
NOTE
If the Properties pane is not visible, on the View tab, click Proper ties .
3. Click in the text box next to the MIMEType property and select a new MIME type from the drop-down
list.
See Also
Images (Report Builder and SSRS)
Add a Data-Bound Image (Report Builder and SSRS)
Image Properties Dialog Box, General (Report Builder and SSRS)
Add a background image to a paginated report
(Report Builder)
6/30/2021 • 2 minutes to read • Edit Online
APPLIES TO: ✔
️ Report Builder ✔
️ Power BI Report Builder ✔
️ Report Designer in SQL Server Data Tools
You can add a background image to a paginated report item such as a rectangle, text box, list, matrix, table, and
some parts of a chart, or a report section such as the page header, page footer, or report body. You can define a
background image for any selected item on the report design surface that displays BackgroundImage in the
Properties pane. Like other images, the background image can be a URL to an image on the report server, an
image from a dataset field, or an image embedded in the report definition. To use an image embedded in the
report, you must first add the image to the report definition before you can add the image to the design surface.
NOTE
If the Report Data pane is not visible, on the View tab, click Repor t Data .
2. Navigate to the image you want to embed in your report definition, and then click OK .
See Also
Images (Report Builder and SSRS)
Image Properties Dialog Box, General (Report Builder and SSRS)
Add a data-bound image to a paginated report
(Report Builder)
6/30/2021 • 2 minutes to read • Edit Online
APPLIES TO: ✔
️ Report Builder ✔
️ Power BI Report Builder ✔
️ Report Designer in SQL Server Data Tools
A paginated report can include a reference to an image that is stored in a database. Such an image is known as a
data-bound image. The pictures that appear alongside product names in a product list are examples of data-
bound images.
Adding a data-bound image to a page header or page footer requires additional steps. For more information,
see Page Headers and Footers (Report Builder and SSRS).
See Also
Images (Report Builder and SSRS)
Embed an Image in a Report (Report Builder and SSRS)
Add an External Image (Report Builder and SSRS)
Image Properties Dialog Box, General (Report Builder and SSRS)
Formatting Report Items (Report Builder and SSRS)
11/2/2020 • 2 minutes to read • Edit Online
Formatting the items in your report makes the report look more attractive and enhances its readability. You can
format the text boxes and individual items within text boxes, the images, the expressions, and the data while in
report design mode.
A. Text box with a double-line border and a variety of formatting styles, including a link.
B. Text box with a dashed border and raw HTML and rendered HTML.
C. Text box in with a text label and a placeholder.
You can change formatting options by selecting the item that you want to format and then opening the item's
Properties dialog box. For example, if you want to format the contents of an entire text box or a selected word
within the text box, right-click the item and select Text Box Proper ties . Then, you can apply the formatting
styles that you want.
To quickly get started, see Tutorial: Format Text (Report Builder).
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
In This Section
Formatting Text and Placeholders (Report Builder and SSRS)
Describes how to format text and customize format options for different blocks of text within a text box.
Importing HTML into a Report (Report Builder and SSRS)
Describes how to insert and use HTML in a report.
Formatting Numbers and Dates (Report Builder and SSRS)
Describes how to use standard and custom formatting strings that are supported by Reporting Services.
Formatting Lines, Colors, and Images (Report Builder and SSRS)
Describes how to format lines, gridlines, colors, and images within report items and data regions.
Set the Locale for a Report or Text Box (Reporting Services)
Describes how to change the setting for data display formats that differ by language and region, such as date,
currency, and number values.
See Also
Formatting a Chart (Report Builder and SSRS)
Formatting Text and Placeholders (Report Builder
and SSRS)
11/2/2020 • 4 minutes to read • Edit Online
A text box can be a report item or an individual cell within a data region that contains text, a calculated field, a
pointer to a field in a database, or a combination of all three items. You can mix fonts and colors, add bold and
italic styles, and use paragraph styles such as alignment and hanging indents. You can format an entire text box
or you can format specific text, numbers, expressions, or fields within the text box.
Font, size, color, and effects all contribute to the readability of a report. Font, font style, font size, and underline
effects can be applied to text within a text box or data region. By default, the report font that is used is Arial, 10
points, and black. By using the Text Box and Text Proper ties dialog boxes, you can specify how the text
appears when the report is rendered.
In this illustration, the text box itself has a border, and all the text is in the same text box, but the text has a variety
of formatting.
To quickly get started, see Tutorial: Format Text (Report Builder).
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
In this illustration, a text box in a list contains both a label with bold formatting and a placeholder with no
formatting.
Unlike placeholder text, you can align individual text in a text box separately, use multiple paragraphs within a
single text box, and define other behavior for any subset of text
You can define colors, fonts, actions, and other behavior on any subset of text within a single text box to create a
mail merge or template for text in your report. You can also use multiple paragraphs inside a single text box. For
example, if you have two separate paragraphs of text, you can separate the paragraphs by pressing ENTER in the
text box. You can also set an alignment value for any individual string of text. You can also define an action for
individual text in a text box. This can be useful if you want to add a hyperlink for a string of text that is contained
inside a text box.
NOTE
Actions defined on the text box have a higher priority than actions defined for individual text in a text box.
For more information about mixed formatting, see Format Text in a Text Box (Report Builder and SSRS).
See Also
Expressions (Report Builder and SSRS)
Formatting Axis Labels on a Chart (Report Builder and SSRS)
Formatting Scales on a Gauge (Report Builder and SSRS)
Tables, Matrices, and Lists (Report Builder and SSRS)
Placeholder Properties Dialog Box, General (Report Builder and SSRS)
Exporting to Microsoft Excel (Report Builder and SSRS)
Text Boxes (Report Builder and SSRS)
Format Text in a Text Box (Report Builder and SSRS)
11/2/2020 • 2 minutes to read • Edit Online
You can format any part of the text within a text box independently, and mix placeholder text and static text in
one text box. This ability to mix formats and add placeholder text enables you to create mail merges or
templates for text in your report. Any expression can be defined and formatted separately using a placeholder.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
See Also
Text Boxes (Report Builder and SSRS)
Formatting Text and Placeholders (Report Builder and SSRS)
Expression Uses in Reports (Report Builder and SSRS)
Expression Examples (Report Builder and SSRS)
Add HTML into a Report (Report Builder and SSRS)
Tables, Matrices, and Lists (Report Builder and SSRS)
Formatting Numbers and Dates (Report Builder and SSRS)
Placeholder Properties Dialog Box, General (Report Builder and SSRS)
Importing HTML into a Report (Report Builder and
SSRS)
2/7/2020 • 2 minutes to read • Edit Online
You can use a text box to insert HTML-formatted text that you have retrieved from a field in your dataset into a
report. The text can come from any simple or complex expression that evaluates to correctly formatted HTML.
Formatted text can be rendered to all supported output formats, including PDF.
This illustration shows text with HTML formatting in report design view, and the same text as it is rendered when
the report is run.
NOTE
When you import text that contains HTML markup, the data must always be parsed by the text box first. Because only a
subset of HTML tags is supported, the HTML that is shown in the rendered report may differ from your original HTML.
See Also
Rendering to HTML (Report Builder and SSRS)
Add HTML into a Report (Report Builder and SSRS)
11/2/2020 • 2 minutes to read • Edit Online
Using a placeholder, you can import HTML from a field in your dataset for use in the report. By default, a
placeholder represents plain text, so you will need to change the placeholder mark-up type to HTML. For more
information, see Importing HTML into a Report (Report Builder and SSRS).
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
See Also
Formatting Numbers and Dates (Report Builder and SSRS)
Formatting Lines, Colors, and Images (Report Builder and SSRS)
Placeholder Properties Dialog Box, General (Report Builder and SSRS)
Formatting Numbers and Dates (Report Builder and
SSRS)
3/5/2021 • 3 minutes to read • Edit Online
You can format numbers and dates in data regions by selecting a format from the Number page of the
corresponding data region's Proper ties dialog box.
To specify format strings within a text box report item, you need to select the item that you want to format, right-
click, select Text Box Proper ties , and then click Number . You can format individual cells in a table or matrix
data region in the same manner, because cells in a table or matrix are individual text boxes.
A chart data region commonly shows dates along the category (x) axis, and values along the value (y) axis. To
specify formatting in a chart, right-click an axis and select Axis Proper ties . On the value axis, you can specify
formats only for numbers. For more information, see Formatting Axis Labels on a Chart (Report Builder and
SSRS).
To specify formatting in a Gauge data region, right-click the scale of the gauge and select Radial Scale
Proper ties or Linear Scale Proper ties .
NOTE
If some formatting options you want to use are grayed out, it means that those formatting options are not compatible
the field's data type, which is set in the data source. For example, if the field contains number values but the field's data
type is String, you cannot apply numerical data formatting options such as currency or decimals.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
See Also
Formatting Text and Placeholders (Report Builder and SSRS)
Formatting Lines, Colors, and Images (Report Builder and SSRS)
Formatting a Chart (Report Builder and SSRS)
Format Axis Labels as Dates or Currencies (Report Builder and SSRS)
Formatting Scales on a Gauge (Report Builder and SSRS)
Formatting Lines, Colors, and Images (Report
Builder and SSRS)
11/2/2020 • 2 minutes to read • Edit Online
Reporting Services gives you the ability to format lines, colors, data regions, images, and other report items.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
The Language property on a report or a text box contains the locale setting, which determines the default
formats for displaying report data that differ by language and region, for example, date, currency, or number
values. The Language property on a text box overrides the Language property on the report. If no value is
specified for Language , Reporting Services uses the locale of the operating system on the report server for
published reports or of the report authoring computer for report preview.
For HTML reports, you can override the default Language value and use the language specified by the HTTP
header of the browser client by using the built-in field User!Language in an expression for the Language
property of a report or a text box.
You can also specify the Language property for a report in a URL. For more information, see Set the Language
for Report Parameters in a URL.
To set the locale for a report
1. In Design view, click outside the report design surface to select the report.
2. In the Properties pane, for the Language property, type or select the language that you want to use for
the report.
To set the locale for a text box
1. In Design view, select the text box to which you want to apply the locale settings.
2. In the Properties pane, do the following:
For the Calendar property, type or select the calendar that you want to use for dates.
For the Direction property, type or select the direction in which the text is written.
For the Language property, type or select the language that you want to use for the text box. This
value overrides the Language property for the Report.
For the NumeralLanguage property, type or select the format to use for numbers in the text box.
For the NumeralVariant property, type or select the variant of the format to use for numbers in
the text box.
For the UnicodeBiDi property, select the level of bidirectional embedding to use in the text box.
See Also
Expression Uses in Reports (Report Builder and SSRS)
Solution Design Considerations for Multi-Lingual or Global Deployments (Reporting Services)
Report Parameters (Report Builder and Report
Designer)
3/5/2021 • 16 minutes to read • Edit Online
APPLIES TO: ✔
️ SQL Server 2016 Reporting Services and later ✔
️ SharePoint
APPLIES TO: ✔
️ SQL Server 2016 Reporting Services and later
This topic describes the common uses for Reporting Services report parameters, the properties you can set, and
much more. Report parameters enable you to control report data, connect related reports together, and vary
report presentation. You can use report parameters in paginated reports you create in Report Builder and
Report Designer, and also in mobile reports you create in SQL Server Mobile Report Publisher. Read more about
Report Parameters Concepts.
To try adding a parameter to a report yourself, see Tutorial: Add a Parameter to Your Report (Report Builder).
1. Parameters pane The report viewer toolbar displays a prompt and default value for each parameter.
You can customize the layout of parameters in the parameters pane. For more information, see
Customize the Parameters Pane in a Report (Report Builder).
2. @SalesDate parameter The parameter @SalesDate is data type DateTime . The prompt Select the Date
appears next to the text box. To modify the date, type a new date in the text box or use the calendar
control.
3. @ShowAll parameter The parameter @ShowAll is data type Boolean . Use the radio buttons to specify
True or False .
4. Show or Hide Parameter Area handle On the report viewer toolbar, click this arrow to show or hide
the parameters pane.
5. @Categor yQuota parameter The parameter @CategoryQuota is data type Float , so it takes a numeric
value. @CategoryQuota is set to allow multiple values.
6. View Repor t After you enter parameter values, click View Repor t to run the report. If all parameters
have default values, the report runs automatically on first view.
Creating Parameters
You can create report parameters in a few different ways.
NOTE
Not all data sources support parameters.
NOTE
Because parameters are managed independently on the server, republishing a main report with new parameter settings
does not overwrite the existing parameters settings on the report.
Parameter Values
The following are options for selecting parameter values in the report.
Select a single parameter value from a drop-down list.
Select multiple parameter values from a drop-down list.
Select a value from a drop-down list for one parameter, which determines the values that are available in
the drop-down list for another parameter. These are cascading parameters. Cascading parameters
enables you to successively filter parameter values from thousands of values to a manageable number.
For more information, see Add Cascading Parameters to a Report (Report Builder and SSRS).
Run the report without having to first select a parameter value because a default value has been created
for the parameter.
Prompt The text that appears next to the parameter on the report
viewer toolbar.
P RO P ERT Y DESC RIP T IO N
Data type A report parameter must be one of the following data types:
For more information about report data types, see RDL Data
Types.
Allow blank value Select this option if the value of the parameter can be an
empty string or a blank.
Allow null value Select this option if the value of the parameter can be a null.
If you specify valid values for a parameter, and you want null
to be one of the valid values, you must include null as one of
the values that you specify. Selecting this option does not
automatically include a null for available values.
Allow multiple values Provide available values to create a drop-down list that your
users can choose from. This is a good way to ensure that
only valid values are submitted in the dataset query.
If the data that provides values changes rapidly, the list the
user sees might not be the most current.
Visible Select this option to display the report parameter at the top
of the report when it is run. This option allows users to
select parameter values at run time.
Available values If you have specified available values for a parameter, the
valid values always appear as a drop-down list. For example,
if you provide available values for a DateTime parameter, a
drop-down list for dates appears in the parameter pane
instead of a calendar control.
Default values Set default values from a query or from a static list.
Always refresh
Choose this option when the report parameter is used
directly or indirectly in a dataset query or parameter
expression. This option sets UsedInQuer y to True.
Never refresh
Choose this option when the report parameter is not used
directly or indirectly in a dataset query or parameter
expression. This option sets UsedInQuer y to False.
Dataset Query
To filter data in the dataset query, you can include a restriction clause that limits the retrieved data by specifying
values to include or exclude from the result set.
Use the query designer for the data source to help build a parameterized query.
For Transact-SQL queries, different data sources support different syntax for parameters. Support ranges
from parameters that are identified in the query by position or by name. For more information, see topics
for specific external data source types in Report Datasets (SSRS). In the relational query designer, you
must select the parameter option for a filter to create a parameterized query. For more information, see
Relational Query Designer User Interface (Report Builder).
For queries that are based on a multidimensional data source such as Microsoft SQL Server Analysis
Services, SAP NetWeaver BI, or Hyperion Essbase, you can specify whether to create a parameter based
on a filter that you specify in the query designer. For more information, see the query designer topic in
Query Design Tools (SSRS) that corresponds to the data extension.
NOTE
Data-driven subscriptions can use parameter values that are obtained from a subscriber data source. For more
information, see Use an External Data Source for Subscriber Data (Data-Driven Subscription).
Related Sections
Tutorial: Add a Parameter to Your Report (Report Builder)
Report Parameters Concepts
Report Samples (Report Builder and SSRS)
Expression Uses in Reports (Report Builder and SSRS)
Expressions (Report Builder and SSRS)
Filter, Group, and Sort Data (Report Builder and SSRS)
Security (Report Builder)
Interactive Sort, Document Maps, and Links (Report Builder and SSRS)
Drillthrough, Drilldown, Subreports, and Nested Data Regions (Report Builder and SSRS)
Report Parameters Concepts (Report Builder and
SSRS)
11/2/2020 • 2 minutes to read • Edit Online
You can add parameters to a report to link related reports, to control the report appearance, to filter report data,
or to narrow the scope of a report to specific users or locations.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
See Also
Reporting Services Concepts (SSRS) Report Embedded Datasets and Shared Datasets (Report Builder and SSRS)
Tutorial: Add a Parameter to Your Report (Report Builder)
Add, Change, or Delete a Report Parameter
(Report Builder and SSRS)
11/2/2020 • 2 minutes to read • Edit Online
A report parameter provides a way to choose report data, connect related reports together, and vary the report
presentation. You can provide a default value and a list of available values, and the user can change the selection.
After you publish a report, you can change the default values, the available values, and other properties for a
report parameter on the report server. You can provide multiple sets of default parameter values by creating
linked reports. For more information, see Report Parameters (Report Builder and Report Designer).
This article is about adding report parameters to a paginated report in Report Builder or Report Designer in SQL
Server Data Tools (SSDT). You can also add report parameters to mobile reports in SQL Server Mobile Report
Publisher. See Create mobile reports with SQL Server Mobile Report Publisher for more information.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
After you create a report parameter, you can specify a list of available values to display to the user. An available
values list limits the choices a user can make to only valid values for the parameter.
Available values appear in a drop-down list next to the report parameter on the toolbar when the report runs.
Report parameters can represent one value or multiple values. For multiple values, the top of list begins with a
Select All feature so the user can select or clear all values with a single click.
You can provide a static list of values or a list from a report dataset. You can optionally provide a friendly name
for values by specifying a label field. For example, for a parameter based on a ProductID field, you can display
the ProductName field in the parameter label. When the report runs, the user can choose from the product
names, but the actual chosen value is the corresponding ProductID .
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
After you publish a report, you can override the available values that you define in the report in the report
authoring tool, by setting parameter property values on the report server. For more information, see Report
Parameters (Report Builder and Report Designer).
To add or change the available values for a report parameter
1. In the Report Data pane, expand the Parameters node. Right-click the parameter and click Parameter
Proper ties . The Repor t Parameter Proper ties dialog box opens.
NOTE
If the Report Data pane is not visible, click View and then click Repor t Data .
See Also
Change the Order of a Report Parameter (Report Builder and SSRS)
Add, Change, or Delete a Report Parameter (Report Builder and SSRS)
Add Cascading Parameters to a Report (Report Builder and SSRS)
Add, Change, or Delete Default Values for a Report Parameter (Report Builder and SSRS)
Parameters Collection References (Report Builder and SSRS)
Tutorial: Add a Parameter to Your Report (Report Builder)
Expressions (Report Builder and SSRS)
Add, Change, or Delete Default Values for a Report
Parameter
5/20/2020 • 2 minutes to read • Edit Online
After you create a report parameter, you can provide a list of default values. If all parameters have a valid default
value, the report runs automatically when you first view or preview it.
Report parameters can represent one value or multiple values. For single values, you can provide a literal or
expression. For multiple values, you can provide a static list or a list from a report dataset.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
After you publish a report, you can override the default values that you define in the report in the report
authoring tool, by setting parameter property values on the report server. You can also provide multiple sets of
default parameter values by creating linked reports. For more information, see Report Parameters (Report
Builder and Report Designer)
To add or change the default values for a report parameter
1. In the Report Data pane, expand the Parameters node. Right-click the parameter and click Edit . The
Repor t Parameter Proper ties dialog box opens.
NOTE
If the Report Data pane is not visible, click View and then click Repor t Data .
See Also
Report Parameters (Report Builder and Report Designer)
Add Cascading Parameters to a Report (Report Builder and SSRS)
Tutorial: Add a Parameter to Your Report (Report Builder)
Add Dataset Filters, Data Region Filters, and Group Filters (Report Builder and SSRS)
Parameters Collection References (Report Builder and SSRS)
Change the Order of a Report Parameter (Report Builder and SSRS)
Add, Change, or Delete a Report Parameter (Report Builder and SSRS)
Expressions (Report Builder and SSRS)
Change the Order of a Report Parameter (Report
Builder and SSRS)
11/2/2020 • 2 minutes to read • Edit Online
Change the order of report parameters when you have a dependent parameter that is listed before the
parameter it is dependent on. Parameter order is important when you have cascading parameters, or when you
want to show users the default value for one parameter before they choose values for other parameters. A
dependent report parameter contains a reference, in either its default values query or valid values query, to a
query parameter that points to a report parameter that is after it in the parameter list in the Repor t Data pane.
The order that you see parameters display on the report viewer toolbar when you run the report, is determined
by the order of the parameters in the Repor t Data pane and the location of the parameters in the custom
parameters pane. For more information, see Customize the Parameters Pane in a Report (Report Builder)
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
In the parameters pane, drag the parameter to a new column or row in the pane. When you change the
location of the parameter in the pane, the parameter order changes in the Repor t Data pane. For more
information about moving parameters in the pane, see Customize the Parameters Pane in a Report
(Report Builder).
See Also
Report Parameters (Report Builder and Report Designer)
Add Cascading Parameters to a Report (Report Builder and SSRS)
Tutorial: Add a Parameter to Your Report (Report Builder)
Add Dataset Filters, Data Region Filters, and Group Filters (Report Builder and SSRS)
Parameters Collection References (Report Builder and SSRS)
Add Cascading Parameters to a Report (Report
Builder and SSRS)
3/5/2021 • 6 minutes to read • Edit Online
Cascading parameters provide a way of managing large amounts of report data. You can define a set of related
parameters so that the list of values for one parameter depends on the value chosen in another parameter. For
example, the first parameter is independent and might present a list of product categories. When the user
selects a category, the second parameter is dependent on the value of the first parameter. Its values are updated
with a list of subcategories within the chosen category. When the user views the report, the values for both the
category and subcategory parameters are used to filter report data.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
To create cascading parameters, you define the dataset query first and include a query parameter for each
cascading parameter that you need. You must also create a separate dataset for each cascading parameter to
provide available values. For more information, see Add, Change, or Delete Available Values for a Report
Parameter (Report Builder and SSRS).
Order is important for cascading parameters because the dataset query for a parameter later in the list includes
a reference to each parameter that is earlier in the list. At run time, the order of the parameters in the Report
Data pane determines the order in which the parameter queries appear in the report, and therefore, the order in
which a user chooses each successive parameter value.
For information about creating cascading parameters with multiple values and including the Select All feature,
see How to have a Select All Multivalue Cascading Parameter.
To create the main dataset with a query that includes multiple related
parameters
1. In the Report Data pane, right-click a data source, and then click Add Dataset .
2. In Name , type the name of the dataset.
3. In Data source , choose the name of the data source or click New to create one.
4. In Quer y type , choose the type of query for the selected data source. In this topic, query type Text is
assumed.
5. In Quer y , type the query to use to retrieve data for this report. The query must include the following
parts:
a. A list of data source fields. For example, in a Transact-SQL statement, the SELECT statement
specifies a list of database column names from a given table or view.
b. One query parameter for each cascading parameter. A query parameter limits the data retrieved
from the data source by specifying certain values to include or exclude from the query. Typically,
query parameters occur in a restriction clause in the query. For example, in a Transact-SQL SELECT
statement, query parameters occur in the WHERE clause.
6. Click Run (! ). After you include query parameters and then run the query, report parameters that
correspond to the query parameters are automatically created.
NOTE
The order of query parameters the first time you run a query determines the order that they are created in the
report. To change the order, see Change the Order of a Report Parameter (Report Builder and SSRS)
7. Click OK .
Next, you will create a dataset that provides the values for the independent parameter.
The SELECT DISTINCT command removes duplicate values from the result set so that you get each
unique value from the specified column in the specified table.
Click Run (! ). The result set shows the values that are available for this first parameter.
6. Click OK .
Next, you will set the properties of the first parameter to use this dataset to populate its available values at run-
time.
In the WHERE clause, Category is the name of a field from <table> and @Category is a query parameter.
This statement produces a list of subcategories for the category specified in @Category. At run time, this
value will be filled in with the value that the user chooses for the report parameter that has the same
name.
6. Click OK .
Next, you will set the properties of the second parameter to use this dataset to populate its available values at
run time.
See Also
Add, Change, or Delete a Report Parameter (Report Builder and SSRS)
Report Parameters (Report Builder and Report Designer)
Tutorial: Add a Parameter to Your Report (Report Builder)
Report Builder Tutorials
Add Dataset Filters, Data Region Filters, and Group Filters (Report Builder and SSRS)
Report Embedded Datasets and Shared Datasets (Report Builder and SSRS)
Add a multi-value parameter to a Report
11/2/2020 • 2 minutes to read • Edit Online
You can add a parameter to a report that allows the user to select more than one value for the parameter.
You can pass multiple parameter values to the report within the report URL. For a URL example includes a multi-
value parameter, see Pass a Report Parameter Within a URL.
For information on how to pass multiple parameter values to a stored procedure, see Working With Multi-Select
Parameters for SSRS Reports on mssqltips.com.
WHERE
Production.ProductInventory.ProductID IN (@ProductID)
IMPORTANT
The query text must not include the DECLARE statement for the query variable.
The text for the query variable must include the IN operator, as shown in the example above.
Be sure to include the parentheses around the variable as shown above. Otherwise, the report fails to render
and the "must declare the scalar variable" error is displayed.
A dataset parameter for an embedded dataset or a shared dataset is created automatically for the query
variable. A report parameter is created automatically for the dataset parameter.
4. In the Repor t Data pane, expand the Parameters node, right-click the report parameter that was
automatically created for the dataset parameter, and then click Parameter Proper ties .
5. In the General tab, select Allow multiple values to allow a user to select more than one value for the
parameter.
6. (Optionally) In the Available values tab, specify a list of available values to display to the user.
An available values list limits the choices a user can make to only valid values for the parameter. For
multiple values, the top of list begins with a Select All feature so the user can select or clear all values
with a single click. If you choose to get the available values for the report parameter from a dataset
query, be sure to select a dataset that does not contain the query variable that is associated with the same
report parameter.
For more information, see Add, Change, or Delete Available Values for a Report Parameter (Report
Builder and SSRS).
See Also
Add Cascading Parameters to a Report (Report Builder and SSRS)
Add, Change, or Delete a Report Parameter (Report Builder and SSRS)
Set Parameters on a Published Report - SharePoint
Integrated Mode
11/2/2020 • 4 minutes to read • Edit Online
A parameterized report is a report that accepts input values that are used to filter data when you run the report.
Parameters are defined when the report is created. Depending on how a report parameter is defined in the
report definition, it can accept a single value, multiple values, or dynamic values, which change in response to a
previous selection (for example, when you select product category, your next selection might be a specific
product from that category). A parameter can have a default value, which can be used to run a filtered version of
the report automatically or possibly be replaced with a different value.
These properties can be set in the report definition, or after the report is published. Although you can modify
some parameter properties in a published report to change the value and display properties, you cannot change
a parameter name or the data type. The parameter name and data type can only be changed by the report
author in the report definition.
To run a parameterized report, you typically must know which values to type, although a report might include
drop-down lists of valid values from which to choose.
To set parameter properties on a published report, you must have Edit Items permission for the report. You can
modify some or all of the parameter properties on a report that you run from a SharePoint site. You cannot
personalize a report by saving a combination of parameter values that you want to use repeatedly. Any default
values that you specify are used by all users who open the report.
If the report is embedded in a Report Viewer Web part that is configured to always show that report, set the
properties on the Report Viewer Web Part. For more information, see Add the Report Viewer Web Part to a Web
Page (Reporting Services in SharePoint Integrated Mode).
To run a parameterized report
1. Open the library that contains the report.
2. Click the report name. You must know in advance which reports have parameters. There is no visual
identifier on the report to indicate that it is parameterized.
3. When the report opens, specify the parameters you want to use. The Parameters area might be visible,
collapsed, or hidden depending on how properties are set on the Report Viewer Web Part.
a. If the Parameters area is visible, choose a value for each parameter.
b. If there is a thin strip of color that runs down the length of the report that has an arrow in the
middle of it, the Parameters area is collapsed. You can click the arrow to expand it.
c. If the Parameters area is hidden, you cannot specify a value.
4. Click Apply at the bottom of the Parameters area to run the report.
It is possible to specify a combination of values that do not give you the results you expect. The report
might need to be modified by the report author if you are not getting the information you require.
5. Click OK .
To set parameter properties
1. Open the library or folder that contains the report.
2. Point to the report and click the down arrow.
3. Click Manage Parameters . If the report contains parameters, each parameter will be listed on the page.
The list shows the parameter name, data type, data value that is used by default, and whether it is visible
in the parameter area when you open the report.
4. Click a parameter in the list to modify its settings.
5. In Default Value, enter a value for the parameter. The value will not be validated, so be sure that you are
providing a value that works for the report.
a. Choose Use value expression specified in repor t definition if you want to use the default
value that was defined when the report was created. If the report definition does not provide a
default value, this option will be unavailable.
b. Choose Override the repor t default value if you want to specify a replacement for the report
definition default value. Optionally, for report parameters that accept null values, you can select
the Null check box to prevent filtering based on that parameter.
c. Choose Parameter does not have a default value if you want each user to specify a value
before the report is processed. If you select this option, you should set display settings that prompt
the user to specify a value.
Note that if all parameter values have a default value, the report will automatically run with those values
when the user opens the report. However, if the parameter area is displayed, users can override the
default value and re-run the report.
6. Set display options to determine whether the parameter is visible.
a. Choose Prompt User to show the parameter on the page. You can specify prompt text that
appears within a field to provide a brief statement about the format or type of data that the user
must provide.
b. Choose Hidden if you are using a default value and you do not want the parameter to be visible in
the Parameters area.
c. Choose Internal if you are using a default value and you do not want the parameter to be visible
in the Parameters area or on subscription pages.
7. Click Apply .
See Also
SharePoint Site and List Permission Reference for Report Server Items
Customize the Parameters Pane in a Report (Report
Builder)
11/2/2020 • 2 minutes to read • Edit Online
When creating paginated reports with parameters in Report Builder, you can customize the Parameters pane. In
report design view, you can drag a parameter to a specific column and row in the Parameters pane. You can add
and remove columns to change the layout of the pane.
When you drag a parameter to a new column and row in the pane, the parameter order changes in the Repor t
Data pane. When you change the order of the parameter in the Repor t Data pane, the location of the
parameter in the pane is changed. For more information about why parameter order is important, see Change
the Order of a Report Parameter (Report Builder and SSRS).
Right click Parameters in the Repor t Data pane, and then click Add Parameter .
3. To move a parameter to a new location in the parameters pane, drag the parameter to a different cell in
the pane.
When you change the location of the parameter in the pane, the order of the parameter in the
Parameters list in the Repor t Data pane is automatically changed. For more information about the
impact of the parameter order, see Change the Order of a Report Parameter (Report Builder and SSRS)
4. To access the properties for a parameter, do one of the following.
Right click the parameter in the parameters pane, and then click Parameter Proper ties .
Right click the parameter in the Repor t Data pane, and then click Parameter Proper ties .
5. To add new columns and rows to the pane, or delete existing rows and columns, right click anywhere in
the parameters pane and then click a command on the menu that displays.
IMPORTANT
When you delete a column or row that contains parameters, the parameters are deleted from the report.
6. To delete a parameter from the pane and from the report, do one of the following.
Right click the parameter in the parameters pane, and then click Delete .
Right click parameter in the Repor t Data pane, and then click Delete .
This will result as an empty space during runtime because there are visible parameters in first column or first
row:
Then the first column is not rendered during runtime because the entire column is considered empty:
Default layout
For reports that were authored before SQL Server Reporting Services 2016, a default parameter layout grid of 2
columns and N rows will be used during runtime. To change the default layout, open the report in Microsoft
Report Builder and save the report. After saving the report, the customized parameter layout information will be
saved to the .rdl file.
See also
Report Parameters (Report Builder and Report Designer)
Filter, Group, and Sort Data (Report Builder and
SSRS)
11/2/2020 • 13 minutes to read • Edit Online
In a report, expressions are used to help control, organize, and sort report data. By default, as you create
datasets and design the report layout, properties of report items are set automatically to expressions based on
the dataset fields, parameters, and other items that appear in the Report Data pane. You can also add an
interactive sort button to a table or matrix cell to enable a user to interactively change the row sort order for
groups or rows within groups.
Filter expressions A filter expression tests data for inclusion or exclusion based on a comparison that
you specify. Filters are applied to data in a report after the data is retrieved from a data connection. You
can add any combination of filters to the following items: a shared dataset definition on the report server;
a shared dataset instance or embedded dataset in a report; a data region such as a table or a chart; or a
data region group, such as a row group in a table or a category group in a chart.
Group expressions A group expression organizes data based on a dataset field or other value. Group
expressions are created automatically as you build the report layout. The report processor evaluates
group expressions after filters are applied to the data, and as report data and data regions are combined.
You can customize a group expression after it is created.
Sor t expressions A sort expression controls the order in which data appears in a data region. Sort
expressions are created automatically as you build the report layout. By default, a sort expression for a
group is set to the same value as the group expression. You can customize a sort expression after it is
created.
Interactive sor t To enable a user to sort or reverse the sort order of a column, you can add an
interactive sort button to a column header or group header cell in a table or matrix.
To help your users customize filter, group, or sort expressions, you can change an expression to add a reference
to a report parameter. For more information, see Report Parameters (Report Builder and Report Designer).
For more information and examples, see the following topics:
Group Expression Examples (Report Builder and SSRS)
Filter Equation Examples (Report Builder and SSRS)
Report Builder Tutorials
Reporting Services Tutorials (SSRS)
Report Samples (Report Builder and SSRS)
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
NOTE
Not all data sources support the ability to specify sort order in the query.
SELECT Size,
CASE Size
WHEN 'S' THEN 1
WHEN 'M' THEN 2
WHEN 'L' THEN 3
WHEN 'XL' THEN 4
ELSE 0
END as SizeSortOrder
FROM Production.Product
In a table that has a row group based on [Size] , you can change the group sort expression to use a Lookup
function to find the numeric field that corresponds to the size value. The expression would be similar to this:
For more information, see Sort Data in a Data Region (Report Builder and SSRS) and Lookup Function (Report
Builder and SSRS).
Adding Interactive Sorting for the User
To enable a user to change the sort order of report data in a table or matrix, you can add interactive sort buttons
to column headers or group headers. Users can click the button to toggle the sort order. Interactive sort is
supported in rendering formats that allow user interaction, such as HTML.
You add interactive sort buttons to a text box in a tablix data region cell. By default, every cell contains a text box.
In the text box properties, you specify which part of a table or matrix data region to sort (the parent group
values, the child group values, or the detail rows), what to sort by, and whether to apply the sort expression to
other report items that have a peer relationship. For example, if a table and a chart that provide views on the
same dataset are contained in a rectangle, they are peer data regions. When a user toggles the sort order in the
table, the sort order for the chart also toggles. For more information, see Interactive Sort (Report Builder and
SSRS).
How-To Topics
Keep Headers Visible When Scrolling Through a Report (Report Builder and SSRS)
Display Headers and Footers with a Group (Report Builder and SSRS)
Add Interactive Sort to a Table or Matrix (Report Builder and SSRS)
Set a No Data Message for a Data Region (Report Builder and SSRS)
Create a Recursive Hierarchy Group (Report Builder and SSRS)
Add or Delete a Group in a Data Region (Report Builder and SSRS)
Display Headers and Footers with a Group (Report Builder and SSRS)
Add or Delete a Group in a Chart (Report Builder and SSRS)
Add a Total to a Group or Tablix Data Region (Report Builder and SSRS)
In This Section
Group Expression Examples (Report Builder and SSRS)
Filter Equation Examples (Report Builder and SSRS)
Add Dataset Filters, Data Region Filters, and Group Filters (Report Builder and SSRS)
Related Sections
Understanding Groups (Report Builder and SSRS)
Creating Recursive Hierarchy Groups (Report Builder and SSRS)
Expression Scope for Totals, Aggregates, and Built-in Collections (Report Builder and SSRS)
Report and Group Variables Collections References (Report Builder and SSRS)
Displaying a Series with Multiple Data Ranges on a Chart (Report Builder and SSRS)
Linking Multiple Data Regions to the Same Dataset (Report Builder and SSRS)
See Also
Expressions (Report Builder and SSRS)
Tables, Matrices, and Lists (Report Builder and SSRS)
Charts (Report Builder and SSRS)
Maps (Report Builder and SSRS)
Sparklines and Data Bars (Report Builder and SSRS)
Gauges (Report Builder and SSRS)
Indicators (Report Builder and SSRS)
Group Expression Examples (Report Builder and
SSRS)
11/2/2020 • 2 minutes to read • Edit Online
In a data region, you can group data by a single field, or create more complex expressions that identify the data
on which to group. Complex expressions include references to multiple fields or parameters, conditional
statements, or custom code. When you define a group for a data region, you add these expressions to the
Group properties. For more information, see Add or Delete a Group in a Data Region (Report Builder and
SSRS).
To merge two or more groups that are based on simple field expressions, add each field to the group
expressions list in the group definition.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
=Fields!FirstName.Value
Case 26 To 50
Case 51 to 75
Case Else
End Select
Return GetRangeValueByByAge
End Function
See Also
Filter, Group, and Sort Data (Report Builder and SSRS)
Expression Examples (Report Builder and SSRS)
Custom Code and Assembly References in Expressions in Report Designer (SSRS)
Filter Equation Examples (Report Builder and SSRS)
5/20/2020 • 2 minutes to read • Edit Online
To create a filter, you must specify one or more filter equations. A filter equation includes an expression, a data
type, an operator, and a value. This topic provides examples of commonly used filters.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
Filter Examples
The following table shows examples of filter equations that use different data types and different operators. The
scope for the comparison is determined by report item for which a filter is defined. For example, for a filter
defined on a dataset, TOP % 10 is the top 10 percent of values in the dataset; for a filter defined on a group,
TOP % 10 is the top 10 percent of values in the group.
Text
=LEFT(Fields!Subcat.Value,1) IN B, C, T All subcategory
values that begin
with the letters B, C,
or T.
See Also
Report Parameters (Report Builder and Report Designer)
Add Dataset Filters, Data Region Filters, and Group Filters (Report Builder and SSRS)
Data Types in Expressions (Report Builder and SSRS)
Expression Uses in Reports (Report Builder and SSRS)
Expression Examples (Report Builder and SSRS)
Add Dataset Filters, Data Region Filters, and Group
Filters
11/2/2020 • 6 minutes to read • Edit Online
In a report, a filter is a part of a dataset, a data region, or a data region group that you create to limit the data
that is used in the report. Filters are a way to help you control report data if you cannot change the dataset
query, for example, if you are using a shared dataset.
Filters help you control which data is displayed and processed in a report. You can specify filters for a dataset, a
data region, or a group, in any combination.
For more information, see Add a Filter to a Dataset (Report Builder and SSRS) and Filter Equation Examples
(Report Builder and SSRS).
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
Boolean Boolean
In cases where you must specify a data type, you can specify your own conversion in the Value part of the
expression.
Operator
The following table lists the operators that you can use in a filter equation, and what the report processor uses
to evaluate the filter equation.
O P ERATO R A C T IO N
Value
The Value expression specifies the final part of the filter equation. The report processor converts the evaluated
expression to the data type that you specified, and then evaluates the entire filter equation to determine if the
data specified in Expression passes through the filter.
To convert to a data type that is not a standard CLR data type, you must modify the expression to explicitly
convert to a data type. You can use the conversion functions listed in the Expression dialog box under
Common Functions , Conversion . For example, for a field ListPrice that represents data that is stored as a
money data type on a SQL Server data source, the data processing extension returns the field value as a
Decimal data type. To set a filter to use only values greater than $50000.00 in the report currency, convert the
value to Decimal by using the expression =CDec(50000.00) .
This value can also include a parameter reference to allow a user to interactively select a value on which to filter.
Back to Top
See Also
Expression Uses in Reports (Report Builder and SSRS)
Report Parameters (Report Builder and Report Designer)
Add a Filter (Report Builder and SSRS)
5/20/2020 • 5 minutes to read • Edit Online
Add a filter to a dataset, data region, or group when you want to include or exclude specific values for
calculations or display. Filters are applied at run time first on the dataset, and then on the data region, and then
on the group, in top-down order for group hierarchies. In a table, matrix, or list, filters for row groups, column
groups, and adjacent groups are applied independently. In a chart, filters for category groups and series groups
are applied independently.
To add a filter, you must specify one or more filter equations. A filter equation consists of an expression that
identifies the data that you want to filter, an operator, and the value to compare to. The data types of the filtered
data and the value must match. Filtering on aggregate values for a dataset or data region is not supported.
To filter data points in a chart, you can set a filter on a category group or a series group. By default, the chart
uses the built-in function Sum to aggregate values that belong to the same group into an individual data point
in the series. If you change the aggregate function of a series, you must change the aggregate function in the
filter expression.
For more information about filtering embedded and shared datasets, see Add a Filter to a Dataset (Report
Builder and SSRS).
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
NOTE
On a Tablix data region, right-click the corner cell or a row or column handle, and then click Tablix Proper ties .
3. Click Filters . This displays the current list of filter equations. By default, the list is empty.
4. Click Add . A new blank filter equation appears.
5. In Expression , type or select the expression for the field to filter. To edit the expression, click the
expression (fx) button.
6. From the drop-down box, select the data type that matches the type of data in the expression you created
in step 5.
7. In the Operator box, select the operator that you want the filter to use to compare the values in the
Expression box and the Value box. The operator you choose determines the number of values that are
used from the next step.
8. In the Value box, type the expression or value against which you want the filter to evaluate the value in
Expression .
For examples of filter equations, see Filter Equation Examples (Report Builder and SSRS).
9. Click OK .
To set a filter on a Tablix row or column group
1. Open a report in Design view.
2. Right-click the table, matrix, or list data region on the design surface to select it. The Grouping pane
displays the groups for the selected item.
3. In the Grouping pane, right-click the group, and then click Edit Group . The Tablix Group dialog box
opens.
4. Click Filters . This displays the current list of filter equations. By default, the list is empty.
5. Click Add . A new blank filter equation appears.
6. In Expression , type or select the expression for the field to filter. To edit the expression, click the
expression (fx) button.
7. From the drop-down box, select the data type that matches the type of data in the expression you created
in step 5.
8. In the Operator box, select the operator that you want the filter to use to compare the values in the
Expression box and the Value box. The operator you choose determines the number of values that are
used from the next step.
9. In the Value box, type the expression or value against which you want the filter to evaluate the value in
Expression .
For examples of filter equations, see Filter Equation Examples (Report Builder and SSRS).
10. Click OK .
To set a filter on a Chart category group
1. Open a report in Design view.
2. On the design surface, click the chart twice to bring up data, series and category field drop zones.
3. Right-click on a field contained in the category field drop zone and select Categor y Group Proper ties .
4. Click Filters . This displays the current list of filter equations. By default, the list is empty.
5. Click Add . A new blank filter equation appears.
6. In Expression , type or select the expression for the field to filter. To edit the expression, click the
expression (fx) button.
7. From the drop-down box, select the data type that matches the type of data in the expression you created
in step 5.
8. In the Operator box, select the operator that you want the filter to use to compare the values in the
Expression box and the Value box. The operator you choose determines the number of values that are
used from the next step.
9. In the Value box, type the expression or value against which you want the filter to evaluate the value in
Expression .
For examples of filter equations, see Filter Equation Examples (Report Builder and SSRS).
10. Click OK .
To set a filter on a Chart series group
1. Open a report in Design view.
2. On the design surface, click the chart twice to bring up data, series and category field drop zones.
3. Right-click on a field contained in the series field drop zone and select Series Group Proper ties .
4. Click Filters . This displays the current list of filter equations. By default, the list is empty.
5. Click Add . A new blank filter equation appears.
6. In Expression , type or select the expression for the field to filter. To edit the expression, click the
expression (fx) button.
7. From the drop-down box, select the data type that matches the type of data in the expression you created
in step 5.
8. In the Operator box, select the operator that you want the filter to use to compare the values in the
Expression box and the Value box. The operator you choose determines the number of values that are
used from the next step.
9. In the Value box, type the expression or value against which you want the filter to evaluate the value in
Expression .
For examples of filter equations, see Filter Equation Examples (Report Builder and SSRS).
10. Click OK .
See Also
Add Dataset Filters, Data Region Filters, and Group Filters (Report Builder and SSRS)
Expression Examples (Report Builder and SSRS)
Gauges (Report Builder and SSRS)
Tables, Matrices, and Lists (Report Builder and SSRS)
Charts (Report Builder and SSRS)
Sort Data in a Data Region (Report Builder and
SSRS)
11/2/2020 • 4 minutes to read • Edit Online
To change the sort order of data in a data region when a report first runs, you must set the sort expression on
the data region or group. By default, the sort expression for a group is automatically set to the same value as the
group expression.
In a tablix data region, set the sort expression for the data region or for each group, including the details
group. If you have only one details group in a tablix data region, you can define a sort expression in the
query, on the data region, or on the details group and they all have the same effect.
In a chart data region, set the sort expression for the Category and Series groups to control the sort
order for each group. The order for colors in a chart legend is determined by the sort expression for the
data points in the Category group.
In a gauge data region, you do not typically need to sort data because the gauge displays a single value
relative to a range. If you do need sort data in a gauge, you must first define a group, and then set the
sort expression for the group.
For more information, see Filter, Group, and Sort Data (Report Builder and SSRS).
For a tablix data region, you can also add an interactive sort button to the top of a column header to provide the
user with the ability to change the sort order of groups or detail rows. For more information, see Interactive Sort
(Report Builder and SSRS).
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
See Also
Charts (Report Builder and SSRS)
Formatting Axis Labels on a Chart (Report Builder and SSRS)
Specify Consistent Colors across Multiple Shape Charts (Report Builder and SSRS)
Commonly Used Filters (Report Builder and SSRS)
11/2/2020 • 2 minutes to read • Edit Online
To create a filter, you must specify one or more filter equations. A filter equation includes an expression, a data
type, an operator, and a value. This topic provides examples of commonly used filters.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
Filter Examples
The following table shows examples of filter equations that use different data types and different operators. The
scope for the comparison is determined by report item for which a filter is defined. For example, for a filter
defined on a dataset, TOP % 10 is the top 10 percent of values in the dataset; for a filter defined on a group,
TOP % 10 is the top 10 percent of values in the group.
Text
=LEFT(Fields!Subcat.Value,1) IN B, C, T All subcategory
values that begin
with the letters B, C,
or T.
See Also
Report Parameters (Report Builder and Report Designer)
Add Dataset Filters, Data Region Filters, and Group Filters (Report Builder and SSRS)
Expression Uses in Reports (Report Builder and SSRS)
Expression Examples (Report Builder and SSRS)
Data Types in Expressions (Report Builder and SSRS)
Grouping Pane (Report Builder)
11/2/2020 • 5 minutes to read • Edit Online
The Grouping pane displays the row groups and column groups for the currently selected tablix data region. The
Grouping pane is not available for the Chart or Gauge data regions. The Grouping pane contains a Row Groups
pane and a Column Groups pane. The Grouping pane has two modes: default and Advanced. Default mode
displays a hierarchical view of the dynamic members for row and column groups. Advanced mode displays both
dynamic and static members for row and column groups. A group is a named set of data from a report dataset
that is displayed on a data region. Groups are organized into hierarchies that include static and dynamic
members. For more information, see Understanding Groups (Report Builder and SSRS).
NOTE
If you do not see the Grouping pane, on the View tab, in the Show/Hid e group, click Grouping .
Cells in the row and column group areas can be static or dynamic members of a tablix row or column group.
Static members repeat once per group and typically contain labels or totals. Dynamic members repeat once per
group instance and typically contain the unique values of the group expression. As you select tablix cells in the
row group area or column group area, the corresponding group member is selected in the Row Groups or
Column Groups pane. Conversely, if you select groups in the Grouping pane, the corresponding cell associated
with the group member is selected on the design surface. For more information about tablix row and column
group areas, see Tablix Data Region Areas (Report Builder and SSRS).
The Grouping pane supports the following modes:
Default. Use the default mode to add, edit, or delete groups. You can add parent, child, and detail groups
by dragging fields from the Report Data pane and inserting them in the group hierarchy. To add an
adjacent group, you must use the Add Group shortcut. For more information, see Add or Delete a Group
in a Data Region (Report Builder and SSRS).
Advanced . Use the Advanced mode to view all members of row and column groups, and to set
properties on static members. When you create groups or add totals, the properties that control how the
tablix data region renders rows and columns on each report page are set automatically. To manually
adjust these properties, you must set them on the tablix member. For more information, see Controlling
the Tablix Data Region Display on a Report Page (Report Builder and SSRS).
Default Mode
In default mode, the Row Groups pane and the Column Groups pane display a hierarchical view for all parent
groups, child groups, and adjacent groups. A child group appears indented under its parent group. An adjacent
group appears at the same indent level as its sibling groups. The following figure shows a tablix data region with
nested row groups and nested and adjacent column groups.
The Grouping pane displays the corresponding row and column groups. In the following figure, the group based
on subcategory has been selected in the Row Groups pane, and the [Subcat] grouping cell is selected in the
tablix data region:
In the Row Groups pane, the group based on subcategory is a child of the group based on category. In the
Column Groups pane, the country/region group is a child of the geography group. The year group and the
country/region groups are adjacent groups.
For more information, see Tablix Data Region Cells, Rows, and Columns (Report Builder) and SSRS.
Advanced Mode
In Advanced mode, the Row Groups pane and the Column Groups pane display a hierarchical view for all
groups, including both static and dynamic members. When you select a member, the Properties pane displays
properties for the currently selected tablix member.
NOTE
To toggle Advanced mode , right-click the down arrow at the side of the Column Groups pane, and then click Advanced
Mode .
In most cases, properties that control the display of static and dynamic group rows and group columns are set
automatically when you create a group or add totals. To edit the default values, you must select the group
member in the Row or Column Groups pane, and change the property values in the Properties window. The
following properties are available:
FixedData . Boolean. For outer row and column headers. Freeze the row group area when scrolling
vertically or the column group area when scrolling horizontally in a renderer such as HTML.
HideIfNoRows . Boolean. For static members only. If set, Hidden and ToggleItem are ignored. Hide this
member if the tablix data region contains no rows of data.
KeepTogether . Boolean. Indicates that the entire tablix member and any nested members should be kept
together on one page, if possible.
KeepWithGroup . Boolean. For static row members only. Where possible, keep this row with the
previous or following sibling dynamic member, if it is not hidden. To keep a row header with its
associated group, set KeepWithGroup to After .
RepeatOnNewPage . Boolean. For static row members only and where KeepWithGroup is not None.
Where possible, repeat this static row on every page that has at least one instance of the dynamic
member specified by KeepWithGroup. To keep a row header with its associated group, set
RepeatOnNewPage to True .
Hidden . Boolean. Indicates whether the row or column should be initially hidden.
ToggleItem. String. The name of the text box to which to add the toggle image. The text box must be in
the same group scope or a containing scope.
For more information, see Controlling the Tablix Data Region Display on a Report Page (Report Builder and
SSRS), Display Headers and Footers with a Group (Report Builder and SSRS), and Display Row and Column
Headers on Multiple Pages (Report Builder and SSRS).
Not every static member has a header that corresponds to a cell on the design surface. In the Grouping pane,
the following convention indicates whether a static member has no header:
Static Indicates a static member with a header cell.
(Static) Indicates a static member with no header cell, known as a hidden static.
See Also
Filter, Group, and Sort Data (Report Builder and SSRS)
Tables, Matrices, and Lists (Report Builder and SSRS)
Drillthrough, Drilldown, Subreports, and Nested
Data Regions
5/20/2020 • 5 minutes to read • Edit Online
You can organize data in a variety of ways to show the relationship of the general to the detailed. You can put all
the data in the report, but set it to be hidden until a user clicks to reveal details; this is a drilldown action. You can
display the data in a data region, such as a table or chart, which is nested inside another data region, such as a
table or matrix. You can display the data in a subreport that is completely contained within a main report. Or,
you can put the detail data in drillthrough reports, separate reports that are displayed when a user clicks a link.
A. Drillthrough report
B. Subreport
C. Nested data regions
D. Drilldown action
All of these have commonalities, but they serve different purposes and have different features. Two of them,
drillthrough reports and subreports, are actually separate reports. Nesting is a means of putting one data region
inside another data region. Drilldown is an action you can apply to any report item to hide and show other
report items. They all are ways that you can organize and display data to help your users understand your
report better.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
Summary of Characteristics
This table summarizes these different traits. Details are in separate sections later in this topic. Drilldown isn't
included in these comparisons because you can apply its showing and hiding action to any report item.
Retrieves data Data retrieved at the same Data retrieved one Data retrieved all at the
time as main report drillthrough report at a same time as main report
time
Is processed and rendered With the main report When link is clicked With the main report.
Performs Slower (but retrieves all Faster (but does not Faster (and retrieves all data
data with main report) retrieve all data with main with main report)
report)
Is located External to main report, External to main report, Internal to main report
same or different report same report server
server
Details of Characteristics
Datasets They Use
Subreports and drillthrough reports can use the same dataset at the main report, or they can use a different
one. Nested data regions use the same dataset.
Retrieving Data
Subreports and nested data regions retrieve data at the same time as the main report. Drillthrough reports do
not. Each drillthrough report retrieves data when a user clicks each link. This is significant if the data for the
main report and the subordinate report must be retrieved at the same time.
Processing and Rendering
A subreport is processed as part of the main report. For example, if a subreport that displays order detail
information is added to a table cell in the detail row, the subreport is processed once per row of the table and
rendered as part of the main report. A drillthrough report is only processed and rendered when the user clicks
the drillthrough link in the summary main report.
Performance
When deciding which to use, consider using a data region instead a subreport, particularly if the subreport is
not used by multiple reports. Because the report server processes each instance of a subreport as a separate
report, performance can be impacted. Data regions provide much of the same functionality and flexibility as
subreports, but with better performance. Drillthrough reports have better performance than subreports, too,
because they don't retrieve all the data at the same time as the main report.
Use of Parameters
Drillthrough reports and subreports typically have report parameters that specify which report data to display.
For example, when you click a sales order number in a main report, a drillthrough report opens, which accepts
the sales order number as a parameter, and then displays all the data for that sales order. When you create the
link in the main report, you specify values to pass as parameters to the drillthrough report.
To create a drillthrough report or subreport, you must design the target drillthrough report or subreport first
and then create a drillthrough action or add the reference to the main report.
Reusability
Subreports and drillthrough reports are separate reports. Thus, they can be used in a number of reports, or
displayed as standalone reports. Nested data regions are not reusable. You cannot save them as report parts
because they are nested in a data region. You can save the data region that contains them as a report part, but
not the nested data region.
Location
Subreports and drillthrough reports are both separate reports, so they're stored external to the main report.
Subreports can be on the same or a different report server, but drillthrough reports must be on the same report
server. Nested data regions are part of the main report.
Display
Subreports and nested data regions are displayed in the main report. Drillthrough reports are displayed on their
own.
In This Section
Drillthrough Reports (Report Builder and SSRS)
Explains reports that open when a user clicks a link in a main report.
Subreports (Report Builder and SSRS)
Explains these reports that are displayed inside the body of a main report.
Nested Data Regions (Report Builder and SSRS)
Explains nesting one data region inside another, such as a chart nested inside a matrix.
Drilldown Action (Report Builder and SSRS)
Explains using the drilldown action to hide and show report items.
Specifying Paths to External Items (Report Builder and SSRS)
Explains how to refer to items that are external to the report definition file.
See Also
Report Parameters (Report Builder and Report Designer)
Drillthrough Reports (Report Builder and SSRS)
11/2/2020 • 3 minutes to read • Edit Online
A drillthrough report is a report that a user opens by clicking a link within another report. Drillthrough reports
commonly contain details about an item that is contained in an original summary report. For example, in this
illustration, the sales summary report lists sales orders and totals. When a user clicks an order number in the
summary list, another report opens that contains details about the order.
The data in the drillthrough report is not retrieved until the user clicks the link in the main report that opens the
drillthrough report. If the data for the main report and the drillthrough report must be retrieved at the same
time, consider using a subreport. For more information, see Subreports (Report Builder and SSRS).
NOTE
When you are working in Report Builder, you must be connected to a report server to view the drillthrough report that
opens when you click the drillthrough link in the main report.
To get started quickly with drillthrough reports, see Tutorial: Creating Drillthrough and Main Reports (Report
Builder).
See Also
Drillthrough, Drilldown, Subreports, and Nested Data Regions (Report Builder and SSRS)
Add a Drillthrough Action on a Report (Report
Builder and SSRS)
11/2/2020 • 2 minutes to read • Edit Online
The report that opens when you click the link in the main report is known as a drillthrough report. This
drillthrough link enables a drillthrough action.
Drillthrough reports must be published to the same report server as the main report, but they can be in
different folders. You can add a drillthrough link to any item that has an Action property, such as a text box, an
image, or data points on a chart.
To add a drillthrough link to a report, you must first create the drillthrough report that the main report will link
to. A drillthrough report commonly contains details about an item that is contained in the original summary
report, and often contains parameters that filter the drillthrough report based on parameters passed to it from
the main report. For more information on creating the drillthrough report, see Drillthrough Reports (Report
Builder and SSRS).
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
NOTE
The names in the parameter list must match the expected parameters in the target report exactly. For
example, parameter names must match by case. If the names do not match, or if an expected parameter is
not listed, the drillthrough report fails.
In Value , type or select the value to pass to the parameter in the drillthrough report.
NOTE
Values can contain an expression that evaluates to a value to pass to the report parameter. The
expressions in the value list include the field list for the current report.
For information on how to hide parameters in reports, see Add, Change, or Delete a Report Parameter
(Report Builder and SSRS).
6. (Optional) For text boxes, it is helpful to indicate to the user that the text is a link by changing the color
and effect of the text on the Home tab of the Ribbon.
7. To test the link, run the report and click the report item that you set this link on.
See Also
Action Properties Dialog Box (Report Builder and SSRS)
Formatting Data Points on a Chart (Report Builder and SSRS)
Show ToolTips on a Series (Report Builder and SSRS)
Subreports (Report Builder and SSRS)
11/2/2020 • 3 minutes to read • Edit Online
A subreport is a report item that displays another report inside the body of a main report. Conceptually, a
subreport in a report is similar to a frame in a Web page. It is used to embed a report within a report. Any
report can be used as a subreport. The report that is displayed as the subreport is stored on a report server,
usually in the same folder as the parent report. You can design the parent report to pass parameters to the
subreport. A subreport can be repeated within data regions, using a parameter to filter data in each instance of
the subreport.
NOTE
If you use a subreport in a tablix data region, the subreport and its parameters will be processed for every row. If there
are many rows, consider whether a drillthrough report is more appropriate.
In this illustration, the contact information displayed in the main Sales Order report actually comes from a
Contacts subreport.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
NOTE
The parameter that you select from the subreport is a report parameter, not a query parameter.
You can place a subreport in the main body of the report, or in a data region. If you place a subreport in a data
region, the subreport will repeat with each instance of the group or row in the data region. To pass a value from
the group or row to the subreport, in the subreport value property, use a field expression for the field containing
the value you want to pass to the subreport parameter.
For more information about working with subreports, see Add a Subreport and Parameters (Report Builder and
SSRS).
See Also
Drillthrough, Drilldown, Subreports, and Nested Data Regions (Report Builder and SSRS)
Add a Subreport and Parameters (Report Builder
and SSRS)
11/2/2020 • 3 minutes to read • Edit Online
Add subreports to a report when you want to create a main report that is a container for multiple related
reports. A subreport is a reference to another report. To relate the reports through data values (for example, to
have multiple reports show data for the same customer), you must design a parameterized report (for example,
a report that shows the details for a specific customer) as the subreport. When you add a subreport to the main
report, you can specify parameters to pass to the subreport.
You can also add subreports to dynamic rows or columns in a table or matrix. When the main report is
processed, the subreport is processed for each row. In this case, consider whether you can achieve the desired
effect by using data regions or nested data regions.
To add a subreport to a report, you must first create the report that will act as the subreport. For more
information on creating the subreport, see Subreports (Report Builder and SSRS).
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
To add a subreport
1. On the Inser t tab, click Subrepor t .
2. On the design surface, click a location on the report and then drag a box to the desired size of the
subreport. Alternatively, click the design surface to create a subreport of default size.
3. Right-click the subreport, and then click Subrepor t Proper ties .
4. In the Subrepor t Proper ties dialog box, type a name in the Name text box or accept the default. The
name must be unique within the report. By default, a general name such as Subreport1 or Subreport2 is
assigned.
5. In the Use this repor t as a subrepor t box, click Browse , or type the name of the report. Clicking
Browse is preferred because the path to the subreport will be specified automatically. You can specify the
report in the several ways. For more information, see Specifying Paths to External Items (Report Builder
and SSRS).
6. (Optional) Click Yes for Omit border on page break to prevent a border from being rendered in the
middle of the subreport if the subreport spans more than one page.
7. Click OK .
To specify parameters to pass to a subreport
1. In Design view, right-click the subreport and then click Subrepor t Proper ties .
2. In the Subrepor t Proper ties dialog box, click Parameters .
3. Click Add . A new row is added to the parameter grid.
4. In the Name text box, type the name of a parameter in the subreport or choose it from the list box. This
name must match a report parameter, not a query parameter, in the subreport.
5. In the Value list box, type or select a value to pass to the subreport. This value can be static text or an
expression that references a field or other object in the main report.
NOTE
In Report Builder, if a parameter is missing from the Parameters list and the subreport has a default value
defined, the subreport will be processed correctly.
In Report Designer, all parameters that are required by the subreport must be included in the Parameters list. If
a required parameter is missing, the subreport is not displayed correctly in the main report.
6. Repeat steps 3-5 to specify a name and value for each subreport parameter.
7. To delete a subreport parameter, click the parameter in the parameter grid, and then click Delete .
8. To change the order of a subreport parameter, click the parameter, and then click the up button or the
down button.
Changing the order of a subreport parameter does not affect the processing of the subreport.
See Also
Subreports (Report Builder and SSRS)
Rendering Behaviors (Report Builder and SSRS)
Drilldown Action (Report Builder and SSRS)
11/2/2020 • 2 minutes to read • Edit Online
By providing plus and minus icons on a text box, you can enable users to hide and display items interactively.
This is called a drilldown action. For a table or matrix, you can show or hide static rows and columns, or rows
and columns that are associated with groups.
In this illustration, the user clicks the plus signs (+) in the report to show detail data.
For example, you can initially hide all the rows except the outer group summary row for a table with row
groups. For each inner group (including the details group), add an expand/collapse icon to the grouping cell of
the containing group. When the report is rendered, the user can click the text box to expand and collapse the
detail data. For more information, see Tables (Report Builder and SSRS).
To allow users to expand or collapse an item, you set the visibility properties for that item.
NOTE
When you create a report with a drilldown action, the visibility information must be set on the group, column, or row that
you want to hide, not just a single text box in the row or column. In addition, the text box that you use for the toggle
must be in a containing scope that controls the item that you want to show or hide.
For example, to hide a row associated with a nested group, the text box must be in a row associated with the parent
group or higher in the containment hierarchy.
For information on setting visibility information on the group, column or row, see Add an Expand or Collapse Action to an
Item (Report Builder and SSRS)
For more information about hiding report items, see Hide an Item (Report Builder and SSRS).
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
See Also
Drillthrough, Drilldown, Subreports, and Nested Data Regions (Report Builder and SSRS)
Interactive Sort, Document Maps, and Links (Report Builder and SSRS)
Expression Examples (Report Builder and SSRS)
Add an Expand or Collapse Action to an Item
(Report Builder & SSRS)
11/2/2020 • 4 minutes to read • Edit Online
You can enable a user to interactively expand or collapse items in a paginated report, or expand or collapse rows
and columns associated with a group for a table or matrix. To allow users to expand or collapse an item, you set
the visibility properties for that item. Setting visibility works in an HTML report viewer, and is sometimes called a
drilldown action.
In report design view, you specify the name of the text box where you want to display the expand and collapse
toggle icons. In the rendered report, the text box displays a plus (+) or minus (-) sign in addition to its contents.
When the user clicks the toggle, the report display is refreshed to show or hide the report item, based on the
current visibility settings for items in the report.
Typically, the expand and collapse action is used to initially display only summary data and to enable the user to
click the plus sign to show detail data. For example, you can initially hide a table that displays values for a chart,
or hide child groups for a table with nested row or column groups, as in a drilldown report.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
If the Grouping pane does not appear, click the View menu and then click Grouping .
2. Right-click anywhere in the title bar of the Grouping pane, and then click Advanced . The Grouping pane
mode toggles to show the underlying display structure for rows and columns on the design surface.
3. In the appropriate group pane, click the name of the row group or column group for which you want to
hide the associated rows or columns. The group is selected and the Properties pane shows the Tablix
Member properties.
NOTE
If you do not see the Properties pane, click View on the Ribbon and then click Proper ties .
4. In Hidden , choose one of the following options to set the visibility of this report item the first time you
run a report:
Select False to display the report item.
Select True to hide the report item.
Select <Expression> to open the Expression dialog box to create an expression that is evaluated
at run time to determine the visibility.
5. In ToggleItem , from the drop-down box, select the name of a text box to which to add the toggle image.
In the following image, the Color row group is configured enable users to expand and collapse associated
rows.
NOTE
The text box with the toggle image cannot be the row or column group for which you want to hide the associated
rows or columns. It must either be in the same group as the item that is being hidden or in an ancestor group.
For example, to toggle visibility of rows associated with a child group, select a text box in a row associated with the
parent group.
6. To test the toggle, run the report and click the text box with the toggle image. The report display refreshes
to show row groups and column groups with their toggled visibility.
NOTE
When you specify an expression for visibility, you are setting the Hidden property of the report item. The
expression evaluates to a Boolean value of True to hide the item and False to show the item.
4. In Display can be toggled by this repor t item , from the drop-down box, type or select the name of a
text box in the report in which to display a toggle image; for example, Textbox1.
In the following image, the table is configured to enable users to expand and collapse it. The display of
the table is toggled by the Products Table text box.
NOTE
The text box that you choose must be in the current or containing scope for this report item (up to and including
the report body). For example, to toggle visibility of a chart, select a text box that is in the same containing scope
as the chart; for example, the report body or a rectangle. The text box must be in the same container hierarchy or
higher.
5. To test the toggle, run the report and click the text box with the toggle image. The report display refreshes
to show report items with their toggled visibility.
See Also
Drilldown Action (Report Builder and SSRS)
Hide an Item (Report Builder and SSRS)
Nested Data Regions (Report Builder and SSRS)
11/2/2020 • 6 minutes to read • Edit Online
You can nest one data region, such as a chart, inside another data region, such as a matrix, typically to display
data summaries in a concise manner or to provide a visual display as well as a table or matrix display.
For example, for a matrix (also called a tablix) that contains sales orders grouped by Store on rows and by
Quarter on columns, you can add a table or chart to the corner cell to summarize the sales for all stores, or add
a chart to a matrix column header to show the sales contribution of the data in the column as a percentage of all
sales.
In this illustration, the pie chart in the corner cell and the sparkline charts in the rows are nested data regions.
By definition, nested data regions are based on the same report dataset. You cannot nest data regions that are
based on different datasets. To display data from different datasets, consider using drillthrough reports or
subreports. For more information, see Drillthrough, Drilldown, Subreports, and Nested Data Regions (Report
Builder and SSRS).
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
NOTE
To have more control over the size of a chart in a tablix cell, add the chart to a rectangle first, and then add the rectangle
to the tablix cell.
By default, the chart legend colors are determined by the color of the data points in the chart series. To control
colors so that nested chart data regions all use the same color for the same category of data, you must use
custom colors and set sort expressions on the data. For more information, see Specify Consistent Colors across
Multiple Shape Charts (Report Builder and SSRS) and Sort Data in a Data Region (Report Builder and SSRS).
NOTE
By default, when you add a List data region to the design surface, the list includes a detail row. You can change this
default by adding a group row and removing the detail row. For more information, see Exploring the Flexibility of a Tablix
Data Region (Report Builder and SSRS).
For more information, see Understanding Groups (Report Builder and SSRS) and Add, Move, or Delete a Table,
Matrix, or List (Report Builder and SSRS).
See Also
Filter, Group, and Sort Data (Report Builder and SSRS)
Tables, Matrices, and Lists (Report Builder and SSRS)
Charts (Report Builder and SSRS)
Gauges (Report Builder and SSRS)
Expressions (Report Builder and SSRS)
Formatting Report Items (Report Builder and SSRS)
Tutorial: Adding a KPI to Your Report (Report Builder)
Formatting Scales on a Gauge (Report Builder and SSRS)
Specifying Paths to External Items (Report Builder
and SSRS)
11/2/2020 • 2 minutes to read • Edit Online
You specify paths in report item properties to reference items such as drillthrough reports, subreports, and
image files that are external to the report definition file and are stored on a report server.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
NOTE
In Report Builder, paths to items must specify items on a report server. Paths to items on a file system are not supported.
You can preview a report that uses these items only if you are connected to the report server where the items are
located.
When you specify a path for an external item in a dialog box for actions, subreports, or images, you can browse
directly to the report server and select the item. Browsing to an item and selecting it directly is the
recommended way to specify a drillthrough report or subreport. That way the correct parameter names will be
available in a drop-down list when you specify report or subreport parameters. When you change an item path
to point to a different item, you must manually update the correct parameter names and values as needed.
On a report server configured in native mode, specify a drillthrough report name without the file extension .rdl.
On a report server configured in SharePoint integrated mode, you must include the file extension .rdl. The path
can be one of the following:
A relative path to the item from the main repor t. For example, ../AllSubreports/Subreport1. In this
example, the .. indicates the folder above the folder where the main report is located.
NOTE
Relative paths are not supported when the report is run inside Report Builder. To view a report that uses relative
paths to external items, save the report to the report server, and run the report from there
See Also
Add an External Image (Report Builder and SSRS)
Add a Subreport and Parameters (Report Builder and SSRS)
Add a Drillthrough Action on a Report (Report Builder and SSRS)
Expressions (Report Builder and SSRS)
11/2/2020 • 6 minutes to read • Edit Online
Expressions are widely used throughout Reporting Services paginated reports to retrieve, calculate, display,
group, sort, filter, parameterize, and format data.
Many report item properties can be set to an expression. Expressions help you control the content, design, and
interactivity of your report. Expressions are written in Microsoft Visual Basic, saved in the report definition, and
evaluated by the report processor when you run the report.
Unlike applications such as Microsoft Office Excel where you work with data directly in a worksheet, in a report,
you work with expressions that are placeholders for data. To see the actual data from the evaluated expressions,
you must preview the report. When you run the report, the report processor evaluates each expression as it
combines report data and report layout elements such as tables and charts.
As you design a report, many expressions for report items are set for you. For example, when you drag a field
from the data pane to a table cell on the report design surface, the text box value is set to a simple expression
for the field. In the following figure, the Report Data pane displays the dataset fields ID, Name, SalesTerritory,
Code, and Sales. Three fields have been added to the table: [Name], [Code], and [Sales]. The notation [Name] on
the design surface represents the underlying expression =Fields!Name.Value .
When you preview the report, the report processor combines the table data region with the actual data from the
data connection and displays a row in the table for every row in the result set.
To enter expressions manually, select an item on the design surface, and use shortcut menus and dialog boxes to
set the properties of the item. When you see the (fx) button or the value <Expression> in a drop-down list, you
know that you can set the property to an expression. For more information, see Add an Expression (Report
Builder and SSRS).
To develop complex expressions or expressions that use custom code or custom assemblies, we recommend
that you use Report Designer in SQL Server Data Tools (SSDT). For more information, see Custom Code and
Assembly References in Expressions in Report Designer (SSRS).
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
Understanding Simple and Complex Expressions
Expressions begin with an equal sign (=) and are written in Microsoft Visual Basic. Expressions can include a
combination of constants, operators, and references to built-in values (fields, collections, and functions), and to
external or custom code.
You can use expressions to specify the value of many report item properties. The most common properties are
values for text boxes and placeholder text. Typically, if a text box contains only one expression, the expression is
the value of the text box property. If a text box contains multiple expressions, each expression is the value of
placeholder text in the text box.
By default, expressions appear on the report design surface as simple or complex expressions.
Simple A simple expression contains a reference to a single item in a built-in collection, for example, a
dataset field, a parameter, or a built-in field. On the design surface, a simple expression appears in
brackets. For example, [FieldName] corresponds to the underlying expression =Fields!FieldName.Value .
Simple expressions are created for you automatically as you create the report layout and drag items from
the Report Data pane to the design surface. For more information about the symbols that represent
different built-in collections, see Understanding Prefix Symbols for Simple Expressions.
Complex A complex expression contains references to multiple built-in references, operators, and
function calls. A complex expression appears as <<Expr>> when the expression value includes more than
a simple reference. To view the expression, hover over it and use the tooltip. To edit the expression, open it
in the Expression dialog box.
The following figure shows typical simple and complex expressions for both text boxes and placeholder text.
To display sample values instead of text for expressions, apply formatting to the text box or placeholder text. The
following figure shows the report design surface toggled to show sample values:
For more information, see Formatting Text and Placeholders (Report Builder and SSRS).
[SUM(Sales)] =Sum(Fields!Sales.Value)
[FIRST(Store)] =First(Fields!Store.Value)
IT EM DISP L AY T EXT EXA M P L E EXP RESSIO N T EXT EXA M P L E
[@Param.Label] =Parameters!Param.Label
NOTE
To develop complex expressions or expressions that use custom code or custom assemblies, we recommend that you use
Report Designer in SQL ServerSQL Server Data Tools (SSDT). For more information, see Custom Code and Assembly
References in Expressions in Report Designer (SSRS).
The following table lists the kinds of references you can include in an expression:
Operators Describes the operators you can use to ="The report ran at: " &
combine references in an expression. Globals!ExecutionTime & "."
For example, the & operator is used
for concatenating strings.
Built-in Report and Aggregate Describes the built-in functions, such =Previous(Sum(Fields!Sales.Value))
Functions as Sum or Previous , that you can
access from an expression.
Custom Code and Assembly Describes how you can access the =Sum(Fields!Sales.Value)
References in Expressions in Report built-in CLR classes Math and Convert,
Designer (SSRS) other CLR classes, Visual Basic run- =CDate(Fields!SalesDate.Value)
time library functions, or methods
from an external assembly. =DateAdd("d",3,Fields!BirthDate.Value)
In This Section
Add an Expression (Report Builder and SSRS)
Expression Uses in Reports (Report Builder and SSRS)
Expression Scope for Totals, Aggregates, and Built-in Collections (Report Builder and SSRS)
Expression Reference (Report Builder and SSRS)
See Also
For more information and examples, see the following topics:
Expression Uses in Reports (Report Builder and SSRS)
Expression Examples (Report Builder and SSRS)
Filter Equation Examples (Report Builder and SSRS)
Group Expression Examples (Report Builder and SSRS)
Tutorial: Introducing Expressions
Report Samples (Report Builder and SSRS)
Add an Expression (Report Builder and SSRS)
11/2/2020 • 2 minutes to read • Edit Online
Expressions are used throughout a report for defining report item properties, filters, groups, sort order,
connection strings, and parameter values. Expressions begin with an equal sign (=) and are written in Microsoft
Visual Basic. They are evaluated at run time by the report processor, which combines the evaluation result with
report layout elements.
Expressions can be simple or complex. Simple expression refer to a single item in a built-in collection. Complex
expressions can contain constants, operators, global collection items, and function calls. For more information,
see Expressions (Report Builder and SSRS).
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
See Also
Formatting Text and Placeholders (Report Builder and SSRS)
Text Boxes (Report Builder and SSRS)
Expression Uses in Reports (Report Builder and SSRS)
Filter Equation Examples (Report Builder and SSRS)
Group Expression Examples (Report Builder and SSRS)
Expression Dialog Box (Report Builder)
Expression Examples (Report Builder and SSRS)
Add Code to a Report (SSRS)
Expression Examples (Report Builder and SSRS)
3/5/2021 • 20 minutes to read • Edit Online
Expressions are used frequently in Reporting Services paginated reports to control content and report
appearance. Expressions are written in Microsoft Visual Basic, and can use built-in functions, custom code, report
and group variables, and user-defined variables. Expressions begin with an equal sign (=). For more information
about the expression editor and the types of references that you can include, see Expression Uses in Reports
(Report Builder and SSRS), and Add an Expression (Report Builder and SSRS).
IMPORTANT
When RDL Sandboxing is enabled, only certain types and members can be used in expression text at report publish time.
For more information, see Enable and Disable RDL Sandboxing.
This topic provides examples of expressions that can be used for common tasks in a report.
Visual Basic Functions Examples for date, string, conversion and conditional Visual Basic functions.
Report Functions Examples for aggregates and other built-in report functions.
Appearance of Report Data Examples for changing the appearance of a report.
Properties Examples for setting report item properties to control format or visibility.
Parameters Examples for using parameters in an expression.
Custom Code Examples of embedded custom code.
For expression examples for specific uses, see the following topics:
Group Expression Examples (Report Builder and SSRS)
Filter Equation Examples (Report Builder and SSRS)
Commonly Used Filters (Report Builder and SSRS)
Report and Group Variables Collections References (Report Builder and SSRS)
For more information about simple and complex expressions, where you can use expressions, and the types of
references that you can include in an expression, see topics under Expressions (Report Builder and SSRS). For
more information about the context in which expressions are evaluated for calculating aggregates, see
Expression Scope for Totals, Aggregates, and Built-in Collections (Report Builder and SSRS).
To learn how to write expressions that use many of the functions and operators also used by expression
examples in this topic, but in the context of writing a report, see Tutorial: Introducing Expressions.
Functions
Many expressions in a report contain functions. You can format data, apply logic, and access report metadata
using these functions. You can write expressions that use functions from the Microsoft Visual Basic run-time
library, and from the Convert and Math namespaces. You can add references to functions from other assemblies
or custom code. You can also use classes from the Microsoft .NET Framework, including
System.Text.RegularExpressions.
= Round(1.3)
You can also write an expression to round a value to a multiple that you specify, similar to the MRound
function in Excel. Multiply the value by a factor that creates an integer, round the number, and then divide
by the same factor. For example, to round 1.3 to the nearest multiple of .2 (1.4), use the following
expression:
= Round(1.3*5)/5
Date Functions
The Today function provides the current date. This expression can be used in a text box to display the
date on the report, or in a parameter to filter data based on the current date.
=Today()
Use the DateInter val function to pull out a specific part of a date. Here are some valid DateInter val
parameters:
DateInterval.Second
DateInterval.Minute
DateInterval.Hour
DateInterval.Weekday
DateInterval.Day
DateInterval.DayOfYear
DateInterval.WeekOfYear
DateInterval.Month
DateInterval.Quarter
DateInterval.Year
For example, this expression will show the number of the week in the current year for today's date:
=DatePart(DateInterval.WeekOfYear, today())
The DateAdd function is useful for supplying a range of dates based on a single parameter. The following
expression provides a date that is six months after the date from a parameter named StartDate.
=DateAdd(DateInterval.Month, 6, Parameters!StartDate.Value)
The Year function displays the year for a particular date. You can use this to group dates together or to
display the year as a label for a set of dates. This expression provides the year for a given group of sales
order dates. The Month function and other functions can also be used to manipulate dates. For more
information, see the Visual Basic documentation.
=Year(Fields!OrderDate.Value)
You can combine functions in an expression to customize the format. The following expression changes
the format of a date in the form month-day-year to month-week-week number. For example, 12/23/2009
to December Week 3:
When used as a calculated field in a dataset, you can use this expression on a chart to aggregate values
by week within each month.
The following expression formats the SellStartDate value as MMM-YY. SellStartDate field is a datetime
data type.
=FORMAT(Fields!SellStartDate.Value, "MMM-yy")
The following expression formats the SellStartDate value as dd/MM/yyyy. The SellStartDate field is a
datetime data type.
=FORMAT(Fields!SellStartDate.Value, "dd/MM/yyyy")
The CDate function converts the value to a date. The Now function returns a date value containing the
current date and time according to your system. DateDiff returns a Long value specifying the number of
time intervals between two Date values.
The following example displays the start date of the current year
=DateAdd(DateInterval.Year,DateDiff(DateInterval.Year,CDate("01/01/1900"),Now()),CDate("01/01/1900"))
The following example displays the start date for the previous month based on the current month.
=DateAdd(DateInterval.Month,DateDiff(DateInterval.Month,CDate("01/01/1900"),Now())-
1,CDate("01/01/1900"))
The following expression generates the interval years between SellStartDate and LastReceiptDate. These
fields are in two different datasets, DataSet1 and DataSet2. The First Function (Report Builder and SSRS),
which is an aggregate function, returns the first value of SellStartDate in DataSet1 and the first value of
LastReceiptDate in DataSet2.
The DatePar t function returns an Integer value containing the specified component of a given Date
value.The following expression returns the year for the first value of the SellStartDate in DataSet1. The
dataset scope is specified because there are multiple datasets in the report.
The DateSerial function returns a Date value representing a specified year, month, and day, with the time
information set to midnight. The following example displays the ending date for the prior month, based
on the current month.
The following expressions display various dates based on a date parameter value selected by the user.
Yesterday =DateSerial(Year(Parameters!TodaysDate.Value),Month(Parameters!TodaysDate.Value),Day(Parameters!To
1)
String Functions
Combine more than one field by using concatenation operators and Visual Basic constants. The following
expression returns two fields, each on a separate line in the same text box:
Format dates and numbers in a string with the Format function. The following expression displays values
of the StartDate and EndDate parameters in long date format:
If the text box contains only a date or number, you should use the Format property of the text box to
apply formatting instead of the Format function within the text box.
The Right , Len , and InStr functions are useful for returning a substring, for example, trimming
DOMAIN\username to just the user name. The following expression returns the part of the string to the
right of a backslash (\) character from a parameter named User:
The following expression results in the same value as the previous one, using members of the .NET
Framework String class instead of Visual Basic functions:
=Parameters!User.Value.Substring(Parameters!User.Value.IndexOf("\")+1, Parameters!User.Value.Length-
Parameters!User.Value.IndexOf("\")-1)
Display the selected values from a multivalue parameter. The following example uses the Join function to
concatenate the selected values of the parameter MySelection into a single string that can be set as an
expression for the value of a text box in a report item:
= Join(Parameters!MySelection.Value)
The following example does the same as the above example, as well as displays a text string prior to the
list of selected values.
The Regex functions from the .NET Framework System.Text.RegularExpressions are useful for changing
the format of existing strings, for example, formatting a telephone number. The following expression uses
the Replace function to change the format of a ten-digit telephone number in a field from
"nnn-nnn-nnnn" to "(nnn) nnn-nnnn":
NOTE
Verify that the value for Fields!Phone.Value has no extra spaces and is of type String.
Lookup
By specifying a key field, you can use the Lookup function to retrieve a value from a dataset for a one-to-
one relationship, for example, a key-value pair. The following expression displays the product name from
a dataset ("Product"), given the product identifier to match on:
LookupSet
By specifying a key field, you can use the LookupSet function to retrieve a set of values from a dataset
for a one-to-many relationship. For example, a person can have multiple telephone numbers. In the
following example, assume the dataset PhoneList contains a person identifier and a telephone number in
each row. LookupSet returns an array of values. The following expression combines the return values
into a single string and displays the list of telephone numbers for the person specified by ContactID:
Conversion Functions
You can use Visual Basic functions to convert a field from the one data type to a different data type. Conversion
functions can be used to convert the default data type for a field to the data type needed for calculations or to
combine text.
The following expression converts the constant 500 to type Decimal in order to compare it to a Transact-
SQL money data type in the Value field for a filter expression.
=CDec(500)
The following expression displays the number of values selected for the multivalue parameter
MySelection.
=CStr(Parameters!MySelection.Count)
Decision Functions
The Iif function returns one of two values depending on whether the expression is true or not. The
following expression uses the Iif function to return a Boolean value of True if the value of LineTotal
exceeds 100. Otherwise it returns False :
Use multiple IIF functions (also known as "nested IIFs") to return one of three values depending on the
value of PctComplete . The following expression can be placed in the fill color of a text box to change the
background color depending on the value in the text box.
Values greater than or equal to 10 display with a green background, between 1 and 9 display with a blue
background, and less than 1 display with a red background.
A different way to get the same functionality uses the Switch function. The Switch function is useful
when you have three or more conditions to test. The Switch function returns the value associated with
the first expression in a series that evaluates to true:
=Switch(Fields!PctComplete.Value >= 10, "Green", Fields!PctComplete.Value >= 1, "Blue",
Fields!PctComplete.Value = 1, "Yellow", Fields!PctComplete.Value <= 0, "Red")
Values greater than or equal to 10 display with a green background, between 1 and 9 display with a blue
background, equal to 1 display with a yellow background, and 0 or less display with a red background.
Test the value of the ImportantDate field and return "Red" if it is more than a week old, and "Blue"
otherwise. This expression can be used to control the Color property of a text box in a report item:
=IIF(DateDiff("d",Fields!ImportantDate.Value, Now())>7,"Red","Blue")
Test the value of the PhoneNumber field and return "No Value" if it is null (Nothing in Visual Basic);
otherwise return the phone number value. This expression can be used to control the value of a text box
in a report item.
Test the value of the Department field and return either a subreport name or a null (Nothing in Visual
Basic). This expression can be used for conditional drillthrough subreports.
Test if a field value is null. This expression can be used to control the Hidden property of an image report
item. In the following example, the image specified by the field [LargePhoto] is displayed only if the value
of the field is not null.
=IIF(IsNothing(Fields!LargePhoto.Value),True,False)
The MonthName function returns a string value containing the name of the specified month. The
following example displays NA in the Month field when the field contains the value of 0.
IIF(Fields!Month.Value=0,"NA",MonthName(IIF(Fields!Month.Value=0,1,Fields!Month.Value)))
Report Functions
In an expression, you can add a reference to additional report functions that manipulate data in a report. This
section provides examples for two of these functions. For more information about report functions and
examples, see Aggregate Functions Reference (Report Builder and SSRS).
Sum
The Sum function can total the values in a group or data region. This function can be useful in the header
or footer of a group. The following expression displays the sum of data in the Order group or data region:
=Sum(Fields!LineTotal.Value, "Order")
You can also use the Sum function for conditional aggregate calculations. For example, if a dataset has a
field that is named State with possible values Not Started, Started, Finished, the following expression,
when placed in a group header, calculates the aggregate sum for only the value Finished:
RowNumber
The RowNumber function, when used in a text box within a data region, displays the row number for
each instance of the text box in which the expression appears. This function can be useful to number rows
in a table. It can also be useful for more complex tasks, such as providing page breaks based on number
of rows. For more information, see Page Breaks in this topic.
The scope you specify for RowNumber controls when renumbering begins. The Nothing keyword
indicates that the function will start counting at the first row in the outermost data region. To start
counting within nested data regions, use the name of the data region. To start counting within a group,
use the name of the group.
=RowNumber(Nothing)
The following expression, placed in a text box in the footer of a report, provides page number and total
pages in the report:
The following examples describe how to display the first and last values from a page in the page header, similar
to what you might find in a directory listing. The example assumes a data region that contains a text box named
LastName .
The following expression, placed in a text box on the left side of the page header, provides the first value
of the LastName text box on the page:
=First(ReportItems("LastName").Value)
The following expression, placed in a text box on the right side of the page header, provides the last value
of the LastName text box on the page:
=Last(ReportItems("LastName").Value)
The following example describes how to display a page total. The example assumes a data region that contains a
text box named Cost .
The following expression, placed in the page header or footer, provides the sum of the values in the Cost
text box for the page:
=Sum(ReportItems("Cost").Value)
NOTE
You can refer to only one report item per expression in a page header or footer. Also, you can refer to the text box name,
but not the actual data expression within the text box, in page header and footer expressions.
Page Breaks
In some reports, you may want to place a page break at the end of a specified number of rows instead of, or in
addition to, on groups or report items. To do this, create a group that contains the groups or detail records you
want, add a page break to the group, and then add a group expression to group by a specified number of rows.
The following expression, when placed in the group expression, assigns a number to each set of 25 rows.
When a page break is defined for the group, this expression results in a page break every 25 rows.
=Ceiling(RowNumber(Nothing)/25)
To allow the user to set a value for the number of rows per page, create a parameter named RowsPerPage
and base the group expression on the parameter, as shown in the following expression:
=Ceiling(RowNumber(Nothing)/Parameters!RowsPerPage.Value)
For more information about setting page breaks for a group, see Add a Page Break (Report Builder and
SSRS).
Properties
Expressions are not only used to display data in text boxes. They can also be used to change how properties are
applied to report items. You can change style information for a report item, or change its visibility.
Formatting
The following expression, when used in the Color property of a text box, changes the color of the text
depending on the value of the Profit field:
The following expression, when used in the BackgroundColor property of a report item in a data region,
alternates the background color of each row between pale green and white:
If you are using an expression for a specified scope, you may have to indicate the dataset for the
aggregate function:
NOTE
Available colors come from the .NET Framework KnownColor enumeration.
Chart Colors
To specify colors for a Shape chart, you can use custom code to control the order that colors are mapped to data
point values. This helps you use consistent colors for multiple charts that have the same category groups. For
more information, see Specify Consistent Colors across Multiple Shape Charts (Report Builder and SSRS).
Visibility
You can show and hide items in a report using the visibility properties for the report item. In a data region such
as a table, you can initially hide detail rows based on the value in an expression.
The following expression, when used for initial visibility of detail rows in a group, shows the detail rows
for all sales exceeding 90 percent in the PctQuota field:
The following expression, when set in the Hidden property of a table, shows the table only if it has more
than 12 rows:
=IIF(CountRows()>12,false,true)
The following expression, when set in the Hidden property of a column, shows the column only if the
field exists in the report dataset after the data is retrieved from the data source:
URLs
You can customize URLs by using report data and also conditionally control whether URLs are added as an
action for a text box.
The following expression, when used as an action on a text box, generates a customized URL that
specifies the dataset field EmployeeID as a URL parameter.
For more information, see Add a Hyperlink to a URL (Report Builder and SSRS).
The following expression conditionally controls whether to add a URL in a text box. This expression
depends on a parameter named IncludeURLs that allows a user to decide whether to include active URLs
in a report. This expression is set as an action on a text box. By setting the parameter to False and then
viewing the report, you can export the report Microsoft Excel without hyperlinks.
=IIF(Parameters!IncludeURLs.Value,"https://adventure-works.com/productcatalog",Nothing)
Report Data
Expressions can be used to manipulate the data that is used in the report. You can refer to parameters and other
report information. You can even change the query that is used to retrieve data for the report.
Parameters
You can use expressions in a parameter to vary the default value for the parameter. For example, you can use a
parameter to filter data to a particular user based on the user ID that is used to run the report.
The following expression, when used as the default value for a parameter, collects the user ID of the
person running the report:
=User!UserID
To refer to a parameter in a query parameter, filter expression, text box, or other area of the report, use
the Parameters global collection. This example assumes that the parameter is named Department:
=Parameters!Department.Value
Parameters can be created in a report but set to hidden. When the report runs on the report server, the
parameter does not appear in the toolbar and the report reader cannot change the default value. You can
use a hidden parameter set to a default value as custom constant. You can use this value in any
expression, including a field expression. The following expression identifies the field specified by the
default parameter value for the parameter named ParameterField:
=Fields(Parameters!ParameterField.Value).Value
Custom Code
You can use custom code in a report. Custom code is either embedded in a report or stored in a custom
assembly which is used in the report. For more information about custom code, see Custom Code and Assembly
References in Expressions in Report Designer (SSRS).
Using Group Variables for Custom Aggregation
You can initialize the value for a group variable that is local to a particular group scope and then include a
reference to that variable in expressions. One of the ways that you can use a group variable with custom code is
to implement a custom aggregate. For more information, see Using Group Variables in Reporting Services 2008
for Custom Aggregation.
For more information about variables, see Report and Group Variables Collections References (Report Builder
and SSRS).
Use a custom code function to return the value for the expression. The following example returns the
percentage difference between a current value and a previous value. This can be used to calculate the
difference between any two successive values and it handles the edge case of the first comparison (when
there is no previous value) and cases whether either the previous value or the current value is null
(Nothing in Visual Basic).
The following expression shows how to call this custom code from a text box, for the
"ColumnGroupByYear" container (group or data region).
=Code.GetDeltaPercentage(Previous(Sum(Fields!Sales.Value),"ColumnGroupByYear"),
Sum(Fields!Sales.Value))
This helps to avoid run-time exceptions. You can now use an expression like
=IIF(Me.Value < 0, "red", "black") in the Color property of the text box to conditionally the display text
based on whether the values are greater than or less than 0.
See Also
Filter Equation Examples (Report Builder and SSRS)
Group Expression Examples (Report Builder and SSRS)
Expression Uses in Reports (Report Builder and SSRS)
Expressions (Report Builder and SSRS)
Commonly Used Filters (Report Builder and SSRS)
Expression Uses in Reports (Report Builder and
SSRS)
11/2/2020 • 6 minutes to read • Edit Online
In Reporting Services paginated reports, expressions are used throughout the report definition to specify or
calculate values for parameters, queries, filters, report item properties, group and sort definitions, text box
properties, bookmarks, document maps, dynamic page header and footer content, images, and dynamic data
source definitions. This topic provides examples of the many places you can use expressions to vary the content
or appearance of a report. This list is not comprehensive. You can set an expression for any property in a dialog
box that displays the expression (fx ) button or in a drop-down list that displays <Expression...> .
Expressions can be simple or complex. Simple expressions contain a reference to a single dataset field,
parameter, or built-in field. Complex expressions can contain multiple built-in references, operators, and function
calls. For example, a complex expression might include the Sum function applied to the Sales field.
Expressions are written in Microsoft Visual Basic. An expression begins with an equal sign (=) followed by a
combination of references to built-in collections such as dataset fields and parameters, constants, functions, and
operators.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
Specify a dataset field to display in a Value property for a placeholder inside [Sales]
text box. a text box. Use Placeholder
Proper ties Dialog Box, General.
Aggregate values for a group. Value property for a placeholder inside [Sum(Sales)]
a row associated with a tablix group.
Use Textbox Proper ties Dialog
Box.
Display a selected parameter value. Value property for a placeholder inside [@SalesThreshold]
a text box on the design surface. Use
Textbox Proper ties Dialog Box,
General.
Specify a group definition for a data Group expression on the tablix group. [Category]
region. Use Tablix Group Proper ties
Dialog Box, General.
Exclude a specific field value from a Filter equation on the tablix. Use For data type, select Integer .
table. Tablix Proper ties Dialog Box,
Filters . [Quantity]
>
100
P RO P ERT Y, C O N T EXT, A N D DIA LO G
F UN C T IO N A L IT Y BOX P RO P ERT Y VA L UE
Include only a specific value for a Filter equation on the tablix group. Use [Category]
group filter. Tablix Group Proper ties Dialog
Box, Filters . =
Clothing
Exclude specific values for more than Filter equation for a group in a tablix. =[Color]
one field from a dataset. Use Tablix Proper ties Dialog Box,
Filters . <>
Red
=[Color]
<>
Blue
Specify sort order based on an existing Sort expression on the tablix. Use [SizeSortOrder]
field in a table. Tablix Proper ties Dialog Box,
Sor ting .
Calculate aggregate values for a Value property for a placeholder inside =First(Fields!Sales.Value,"DataSet1")
dataset. of a text box. Use Placeholder
Proper ties Dialog Box, General.
Concatenate text and expressions in Value for a placeholder inside of a text ="This report began processing
the same text box. box that is placed in a page header or at " & Globals!ExecutionTime
page footer. Use Placeholder
Proper ties Dialog Box, General.
Calculate an aggregate value for a Value for a placeholder inside of a text =Max(Fields!Total.Value,"DataSet2")
dataset in a different scope. box that is placed in a tablix group.
Use Placeholder Proper ties Dialog
Box, General.
Format data in a text box depending Color for a placeholder inside of a text =IIF(Fields!TotalDue.Value <
on value. box in the details row for a tablix. Use 10000,"Red","Black")
Text Box Proper ties Dialog Box,
Font .
Calculate a value once to refer to Value for a report variable. Use =Variables!MyCalculation.Value
throughout the report. Repor t Proper ties Dialog Box,
Variables .
Include specific values for more than Filter equation for a group in a tablix. For data type, select Boolean .
one field from a dataset. Use Tablix Proper ties Dialog Box,
Filters . =IIF(InStr(Fields!Subcat.Value,"Shorts")=0
AND (Fields!Size.Value="M" OR
Fields!Size.Value="S"),TRUE, FALSE)
TRUE
P RO P ERT Y, C O N T EXT, A N D DIA LO G
F UN C T IO N A L IT Y BOX P RO P ERT Y VA L UE
Hide a text box on the design surface, Hiddenproperty on a text box. Use =Not Parameters! Show<boolean
that can be toggled by the user using Text Box Proper ties Dialog Box, parameter> .Value
a Boolean parameter named Show. Visibility .
Specify dynamic page header or footer Value for a placeholder inside of a text ="Page " & Globals!PageNumber &
content. box that is placed in the page header " of " & Globals!TotalPages
or footer.
Specify a data source dynamically by Connection string on the Data source. ="Data Source=" &
using a parameter. Use Data Source Proper ties Parameters!ServerName.Value &
";initial
Dialog Box, General. catalog=AdventureWorks2012"
Identify all the values for a multivalue Value for a placeholder inside of a text =Join(Parameters!MyMultivalueParameter.Value,",
parameter chosen by the user. box. Use Tablix Proper ties Dialog ")
Box, Filters .
Specify page breaks for every 20 rows Group expression for a group in a =Ceiling(RowNumber(Nothing)/20)
in a tablix with no other groups. tablix. Use Group Proper ties Dialog
Box, Page Breaks . Select the option
Between each instance of a
group .
Specify conditional visibility based on a Hidden property for a tablix. Use =Not Parameters!< boolean
parameter. Tablix Proper ties Dialog Box, parameter >.Value
Visibility .
Specify a date formatted for a specific Value for a placeholder inside of a text =Fields!OrderDate.Value.ToString(System.Globalization.CultureInfo.CreateSpecif
culture. box in a data region. Use Textbox DE"))
Proper ties Dialog Box, General.
Concatenate a string and a number Value for a placeholder inside of a text ="Growth Percent: " &
formatted as a percentage to two box in a data region. Use Textbox Format(Fields!Growth.Value,"p2")
decimal places. Proper ties Dialog Box, General.
See Also
Expressions (Report Builder and SSRS)
Expression Examples (Report Builder and SSRS)
Report Parameters (Report Builder and Report Designer)
Filter Equation Examples (Report Builder and SSRS)
Filter, Group, and Sort Data (Report Builder and SSRS)
Page Headers and Footers (Report Builder and SSRS)
Formatting Text and Placeholders (Report Builder and SSRS)
Hide an Item (Report Builder and SSRS)
Expression Scope for Totals, Aggregates, and Built-in
Collections
11/2/2020 • 12 minutes to read • Edit Online
When you write expressions, you will find that the term scope is used in multiple contexts. Scope can specify the
data to use for evaluating an expression, the set of text boxes on a rendered page, the set of report items that
can be shown or hidden based on a toggle. You will see the term scope in topics that relate to expression
evaluation, aggregate function syntax, conditional visibility, and also in error messages related to these areas.
Use the following descriptions to help differentiate which meaning of scope applies:
Data scope Data scope is a hierarchy of scopes that the report processor uses as it combines report data
and report layout, and builds out data regions such as tables and charts on which to display the data.
Understanding data scope helps you to get the results that you want when you do the following:
Write expressions that use aggregate functions Specify which data to aggregate. The
location of the expression in the report influences which data is in scope for aggregate
calculations.
Add sparklines to a table or matrix Specify a minimum and maximum range for chart axes to
align nested instances in a table or matrix.
Add indicators to a table or matrix Specify a minimum and maximum scale for the gauge to
align nested instances in a table or matrix.
Write sor t expressions Specify a containing scope that you can use to synchronize sort order
among multiple related report items.
Cell scope Cell scope is the set of row and column groups in a tablix data region to which a cell belongs.
By default, each tablix cell contains a text box. The value of the text box is the expression. The location of
the cell indirectly determines which data scopes you can specify for aggregate calculations in the
expression.
Repor t item scope Report item scope refers to the collection of items on a rendered report page. The
report processor combines data and report layout elements to produce a compiled report definition.
During this process, data regions such as tables and matrices expand as needed to display all of the
report data. The compiled report is then processed by a report renderer. The report renderer determines
which report items appear on each page. On a report server, each page is rendered as you view it. When
you export a report, all pages are rendered. Understanding report item scope helps you get the results
that you want when you do the following:
Add toggle items Specify a text box to add the toggle that controls the visibility of a report item.
You can only add a toggle to text boxes that are in the scope of the report item that you want to
toggle.
Write expressions in page headers and footers Specify values in expressions in text boxes or
other report items that appear on the rendered page.
Understanding scopes helps you to successfully write expressions that give you the results that you want.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
Domain scope Also called synchronization scope. A type of data scope that applies to expression
evaluation for nested data regions. Domain scope is used to specify aggregates across all instances of a
group so that nested instances can be aligned and easily compared. For example, you can align the range
and height for sparklines embedded in a table so that the values line up.
In some locations of a report, you must specify a scope. For example, for a text box on the design surface, you
must specify the name of the dataset to use: =Max(Fields!Sales.Value,"Dataset1") . In other locations, there is an
implicit default scope. For example, if you do not specify an aggregate for a text box in a group scope, the default
aggregate First is used.
Each aggregate function topic lists the scopes that are valid for its use. For more information, see Aggregate
Functions Reference (Report Builder and SSRS).
T EXT O R P L A C EH O L DER
C EL L DEFA ULT SC O P E P L A C EH O L DER L A B EL S VA L UES
=Sum(Fields!Qty.Value)
([YearQty]) =Sum(Fields!Qty.Value)
=Sum(Fields!Qty.Value)
([QtrQty]) =Fields!Qtr.Value
=Sum(Fields!Qty.Value)
[Pct] =FormatPercent(Sum(Fields!Qty.Value,"Territory")/Sum(Fields!Qty.Value,"
& " of " & Sum(Fields!Qty.Value,"Tablix1")
[Sum(Qty)] =Sum(Fields!Qty.Value)
C11 Outer row group "Cat" and <<Expr>> =Sum(Fields!Qty.Value) & ": " &
column group "Territory" FormatPercent(Sum(Fields!Qty.Value)/Sum(Fields!Qty.Value,"Territory"),0
& " of " & Sum(Fields!Qty.Value,"Territory")
[Sum(Qty)] =Sum(Fields!Qty.Value)
C14 Inner row group "Subcat" <<Expr>> =Sum(Fields!Qty.Value) & ": " &
FormatPercent(Sum(Fields!Qty.Value)/Sum(Fields!Qty.Value,"Cat"),0)
& " of " & Sum(Fields!Qty.Value,"Cat")
C15 Inner row group "Subcat" <<Expr>> =Sum(Fields!Qty.Value) & ": " &
and column group FormatPercent(Code.CalcPercentage(Sum(Fields!Qty.Value),Sum(Fields!Qty.
& " of " & Sum(Fields!Qty.Value,"Cat")
"Territory"
For more information about interpreting visual cues on tablix data regions, see Tablix Data Region Cells, Rows,
and Columns (Report Builder) and SSRS. For more information about the tablix data region, see Tablix Data
Region Cells, Rows, and Columns (Report Builder) and SSRS. For more information about expressions and
aggregates, see Expression Uses in Reports (Report Builder and SSRS) and Aggregate Functions Reference
(Report Builder and SSRS).
See Also
Expression Examples (Report Builder and SSRS)
Group Expression Examples (Report Builder and SSRS)
Creating Recursive Hierarchy Groups (Report Builder and SSRS)
Tables, Matrices, and Lists (Report Builder and SSRS)
Formatting Text and Placeholders (Report Builder and SSRS)
Custom Code and Assembly References in
Expressions in Report Designer (SSRS)
3/5/2021 • 9 minutes to read • Edit Online
You can add references to custom code embedded in a report or to custom assemblies that you build and save
to your computer and deploy to the report server. Use embedded code for custom constants, complex functions
or functions that are used multiple times in a single report. Use custom code assemblies to maintain code in a
single place and share it for use by multiple reports. Custom code can include new custom constants, variables,
functions, or subroutines. You can include read-only references to built-in collections such as the Parameters
collection. However, you cannot pass sets of report data values to custom functions; specifically, custom
aggregates are not supported.
IMPORTANT
For time-sensitive calculations that are evaluated once at run-time and that you want to remain the same value
throughout report processing, consider whether to use a report variable or group variable. For more information, see
Report and Group Variables Collections References (Report Builder and SSRS).
Report Designer is the preferred authoring environment to use to add custom code to a report. Report Builder
supports processing reports that have valid expressions, or that include references to custom assemblies on a
report server. Report Builder does not provide a way to add a reference to a custom assembly.
NOTE
Be aware that during an upgrade of a report server, reports that depend on custom assemblies might require additional
steps to complete the upgrade.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
=Code.ToUSD(Fields!StandardCost.Value)
To reference built-in collections in your custom code, include a reference to the built-in Repor t object:
=Report.Parameters!Param1.Value
The following examples show how to define some custom constants and variables.
Public Const MyNote = "Authored by Bob"
Public Const NCopies As Int32 = 2
Public Dim MyVersion As String = "123.456"
Public Dim MyDoubleVersion As Double = 123.456
Although custom constants do not appear in the Constants category in the Expression dialog box (which only
displays built-in constants), you can add references to them from any expression, as shown in the following
examples. In an expression, a custom constant is treated as a Variant .
=Code.MyNote
=Code.NCopies
=Code.MyVersion
=Code.MyDoubleVersion
The following example includes both the code reference and the code implementation of the function
FixSpelling , which substitutes the text "Bicycle" for all occurrences of the text "Bike" in the SubCategory field.
=Code.FixSpelling(Fields!SubCategory.Value)
The following code, when embedded in a report definition code block, shows an implementation of the
FixSpelling method. This example shows you how to use a fully qualified reference to the Microsoft .NET
Framework StringBuilder class.
For more information about built-in object collections and initialization, see Built-in Globals and Users
References (Report Builder and SSRS) and Initializing Custom Assembly Objects.
This example returns the value of the parameter passed in. If the parameter is a multivalue parameter, the return
string is a concatenation of all the values.
Custom Code definition
=CurrencyConversion.DollarCurrencyConversion.ToGBP(Fields!StandardCost.Value)
Instance-based methods are available through a globally defined Code member. You access these by referring
to the Code member, followed by the instance and method name. The following example calls the instance
method ToEUR , which converts the value of StandardCost from dollar to euro:
=Code.m_myDollarCoversion.ToEUR(Fields!StandardCost.Value)
NOTE
In Report Designer, a custom assembly is loaded once and is not unloaded until you close Visual Studio. If you preview a
report, make changes to a custom assembly used in the report, and then preview the report again, the changes will not
appear in the second preview. To reload the assembly, close and reopen Visual Studio and then preview the report.
For more information about accessing your code, see Accessing Custom Assemblies Through Expressions.
Passing Built-in Collections into Custom Assemblies
If you want to pass built-in collections, such as the Globals or Parameters collection, into a custom assembly for
processing, you must add an assembly reference in your code project to the assembly that defines the built-in
collections and access the correct namespace. Depending on whether you are developing the custom assembly
for a report that is run on a report server (server report) or a report that is run locally in a .NET application
(local report), the assembly you need to reference is different. See below for details.
Namespace: Microsoft.ReportingServices.ReportProcessing.ReportObjectModel
Assembly (local repor t): Microsoft.ReportingServices.ProcessingObjectModel.dll
Assembly (ser ver repor t): Microsoft.ReportViewer.ProcessingObjectModel.dll
Since the content of the Fields and ReportItems collections can change dynamically at runtime, you should not
hold onto them across calls into the custom assembly (for example, in a member variable). The same
recommendation applies generally to all built-in collections.
See Also
Add Code to a Report (SSRS)
Using Custom Assemblies with Reports
Add an Assembly Reference to a Report (SSRS)
Reporting Services Tutorials (SSRS)
Expression Examples (Report Builder and SSRS)
Report Samples (Report Builder and SSRS)
Add an Assembly Reference to a Report (SSRS)
11/2/2020 • 2 minutes to read • Edit Online
When you embed custom code that contains references to Microsoft .NET Framework classes that are not in
Math or Convert, you must provide an assembly reference to the report so that the report processor can resolve
the names. For more information, see Add Code to a Report (SSRS).
To add an assembly reference to a report
1. In Design view, right-click the design surface outside the border of the report and click Repor t
Proper ties .
2. Click References .
3. In Add or remove assemblies , click Add and then click the ellipsis button to browse to the assembly.
4. In Add or remove classes , click Add and then type name of the class and provide an instance name to
use within the report.
NOTE
Specify a class and instance name only for instance-based members. Do not specify static members in the Classes
list. For more information, see Custom Code and Assembly References in Expressions in Report Designer (SSRS).
5. Click OK .
See Also
Using Custom Assemblies with Reports
Report Properties Dialog Box, References
Add Code to a Report (SSRS)
11/2/2020 • 2 minutes to read • Edit Online
In any expression, you can call your own custom code. You can provide code in the following two ways:
Embed code written in Visual Basic directly in your report. If your code refers to a Microsoft .NET
Framework that is not Math or Convert, you must add the reference to the report. For more information,
see Add an Assembly Reference to a Report (SSRS). For more information about other references you can
make from your code, see Custom Code and Assembly References in Expressions in Report Designer
(SSRS).
Provide a custom code assembly by using the .NET Framework. If you provide a custom assembly, you
must install it on both the computer where you author the report and the report server where you view
the report. For more information, see Using Custom Assemblies with Reports.
To add embedded code to a report
1. In Design view, right-click the design surface outside the border of the report and click Repor t
Proper ties .
2. Click Code .
3. In Custom code , type the code. Errors in the code produce warnings when the report runs. The
following example creates a custom function named ChangeWord that replaces the word " Bike " with "
Bicycle ".
4. The following example shows how to pass a dataset field named Category to this function in an
expression:
=Code.ChangeWord(Fields!Category.Value)
If you add this expression to a table cell that displays category values, whenever the word "Bike" is in the
dataset field for that row, the table cell value displays the word "Bicycle" instead.
See Also
Report Properties Dialog Box, Code
Expression Examples (Report Builder and SSRS)
Parameters Collection References (Report Builder and SSRS)
Expression Reference (Report Builder and SSRS)
11/2/2020 • 2 minutes to read • Edit Online
Report expressions support a variety of references to built-in functions and built-in collections. Expressions must
have valid Visual Basic syntax before a report can be published or processed.
To develop complex expressions or expressions that use custom code or custom assemblies, we recommend
that you use Report Designer in SQL Server Data Tools (SSDT). For more information, see Custom Code and
Assembly References in Expressions in Report Designer (SSRS).
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
Use the topics in this section to help write simple expressions in a report.
In This Section
Data Types in Expressions (Report Builder and SSRS)
Constants in Expressions (Report Builder and SSRS)
Operators in Expressions (Report Builder and SSRS)
Built-in Collections in Expressions (Report Builder and SSRS)
Built-in Globals and Users References (Report Builder and SSRS)
Parameters Collection References (Report Builder and SSRS)
Dataset Fields Collection References (Report Builder and SSRS)
DataSources and DataSets Collection References (Report Builder and SSRS)
Report and Group Variables Collections References (Report Builder and SSRS)
ReportItems Collection References (Report Builder and SSRS)
See Also
Expressions (Report Builder and SSRS)
Report Builder Functions - Aggregate Functions
Reference
11/2/2020 • 8 minutes to read • Edit Online
To include aggregated values in your report, you can use built-in aggregate functions in expressions. The default
aggregate function for numeric fields is SUM. You can edit the expression and use a different built-in aggregate
function or specify a different scope. Scope identifies which set of data to use for the calculation.
As the report processor combines report data and the report layout, the expressions for each report item are
evaluated. As you view each page of the report, you see the results for each expression in the rendered report
items.
The following table lists categories of built-in functions that you can include in an expression:
Built-in Aggregate Functions
Restrictions on Built-in Fields, Collections, and Aggregate Functions
Restrictions on Nested Aggregates
Calculating Running Values
Retrieving Row Counts
Looking Up Values from Another Dataset
Retrieving Sort-Dependent Values
Retrieving Server Aggregates
Retrieving Recursive Level
Testing for Scope
To determine the valid scopes for a function, see the individual function reference topic. For more information
and for examples, see Expression Scope for Totals, Aggregates, and Built-in Collections (Report Builder and
SSRS).
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
F UN C T IO N DESC RIP T IO N
Sum Returns the sum of all the non-null numeric values specified
by the expression, evaluated in the given scope.
Union Returns the union of all the non-null spatial data values of
type SqlGeometr y or SqlGeography that are specified by
the expression, evaluated in the given scope.
Back to Top
PA GEN UM B
ER DATA SO UR
CE
LO C AT IO N PA RA M ET E REP O RT IT E TOTA L PA GE REN DERF O
IN REP O RT F IEL DS RS MS S DATA SET VA RIA B L ES RM AT
Page Note 1
Footer
PA GEN UM B
ER DATA SO UR
CE
LO C AT IO N PA RA M ET E REP O RT IT E TOTA L PA GE REN DERF O
IN REP O RT F IEL DS RS MS S DATA SET VA RIA B L ES RM AT
Note 3
Report No Only No No No No No
Parameter parameters
earlier in
the list
Note 4
Query No Yes No No No No No
Parameter
Code No Yes No No No No No
Note 7
Report.Lan No Yes No No No No No
guage
Note 1. ReportItems must exist in the rendered report page, or their value is Null. If the visibility of a
report item depends on an expression that evaluates to False, the report item does not exist on the page.
Note 2. If a field reference is used in a group scope, and the field reference is not included in the group
expression, then the value for the field is undefined, unless there is only one value in the scope. To specify
a value, use First or Last and the group scope.
Note 3. Expressions that include a reference to ReportItems can specify values for other ReportItems in
the same group scope or in a containing group scope.
Note 4. Property values for earlier parameters might be null.
Note 5. In Member sorts only. Cannot use in data region sort expressions.
Note 6. In Member filters only. Cannot use in data region or dataset filter expressions.
Note 7. The Parameters collection is not initialized until after the Code block is processed, so methods
cannot be used to control parameters on initialization.
Note 8. Data type for all aggregates except Count and CountDistinct must be the same data type, or null,
for all values.
Back to Top
SUM A N D
OT H ER REP O RT IT A GGREGA
F IRST P RESO RT EM LO O K UP TE
RUN N IN G RO W N UM F UN C T IO A GGREGA F UN C T IO F UN C T IO
C O N T EXT VA L UE B ER L A ST P REVIO US NS T ES NS N
First No No No No Yes No No No
Last
ReportIte No No No No No No No No
m
aggregat
es
Aggregat No No No No No No No No
e
Function
Note 1. Aggregate functions are only allowed inside the Source expression of a Lookup function if the
Lookup function is not contained in an aggregate. Aggregate functions are not allowed inside the Destination
or Result expressions of a Lookup function.
Back to Top
F UN C T IO N DESC RIP T IO N
Back to Top
F UN C T IO N DESC RIP T IO N
Back to Top
F UN C T IO N DESC RIP T IO N
Multilookup Function Returns the set of first-match values for a set of names from
a dataset that contains name/value pairs.
Back to Top
F UN C T IO N DESC RIP T IO N
First Returns the first value in the given scope of the specified
expression.
Last Returns the last value in the given scope of the specified
expression.
Previous Returns the value or the specified aggregate value for the
previous instance of an item within the specified scope.
Back to Top
F UN C T IO N DESC RIP T IO N
Back to Top
F UN C T IO N DESC RIP T IO N
Back to Top
F UN C T IO N DESC RIP T IO N
Back to Top
See Also
Expression Uses in Reports (Report Builder and SSRS)
Expression Examples (Report Builder and SSRS)
Expression Scope for Totals, Aggregates, and Built-in Collections (Report Builder and SSRS)
Report Builder Functions - Aggregate Function
11/2/2020 • 3 minutes to read • Edit Online
Returns a custom aggregate of the specified expression, as defined by the data provider.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
Syntax
Aggregate(expression, scope)
Parameters
expression
The expression on which to perform the aggregation. The expression must be a simple field reference.
scope
(String ) The name of a dataset, group, or data region that contains the report items to which to apply the
aggregate function. Scope must be a string constant andcannot be an expression. If scope is not specified, the
current scope is used.
Return Type
Return type is determined by the data provider. Returns Nothing if the data provider does not support this
function or data is not available.
Remarks
The Aggregate function provides a way to use aggregates that are calculated on the external data source.
Support for this feature is determined by the data extension. For example, the SQL Server Analysis Services data
processing extension retrieves flattened rowsets from an MDX query. Some rows in the result set can contain
aggregate values calculated on the data source server. These are known as server aggregates. To view server
aggregates in the graphical query designer for Analysis Services, you can use the Show Aggregate button on
the toolbar. For more information, see Analysis Services MDX Query Designer User Interface (Report Builder).
When you display the combination of aggregate and detail dataset values on detail rows of a Tablix data region,
server aggregates would not typically be included because they are not detail data. However, you may want to
display all values retrieved for the dataset and customize the way aggregate data is calculated and displayed.
Reporting Services detects the use of the Aggregate function in expressions in your report in order to
determine whether to display server aggregates on detail rows. If you include Aggregate in an expression in a
data region, server aggregates can only appear on group total or grand total rows, not on detail rows. If you
want to display server aggregates on detail rows, do not use the Aggregate function.
You can change this default behavior by changing the value of the Interpret subtotals as details option on
the Dataset Proper ties dialog box. When this option is set to True , all data, including server aggregates,
appears as detail data. When set to False , server aggregates appear as totals. The setting for this property
affects all data regions that are linked to this dataset.
NOTE
All containing groups for the report item that references Aggregate must have simple field references for their group
expressions, for example, [FieldName] . You cannot use Aggregate in a data region that uses complex group
expressions. For the SQL ServerAnalysis Services data processing extension, your query must include MDX fields of type
LevelProper ty (not MemberProper ty ) to support aggregation using the Aggregate function.
Expression can contain calls to nested aggregate functions with the following exceptions and conditions:
Scope for nested aggregates must be the same as, or contained by, the scope of the outer aggregate. For
all distinct scopes in the expression, one scope must be in a child relationship to all other scopes.
Scope for nested aggregates cannot be the name of a dataset.
Expression must not contain First , Last , Previous , or RunningValue functions.
Expression must not contain nested aggregates that specify recursive.
For more information, see Aggregate Functions Reference (Report Builder and SSRS) and Expression Scope for
Totals, Aggregates, and Built-in Collections (Report Builder and SSRS).
For more information about recursive aggregates, see Creating Recursive Hierarchy Groups (Report Builder and
SSRS).
Example
The following code example shows an expression that retrieves a server aggregate for the field LineTotal . The
expression is added to a cell in a row that belongs to the group GroupbyOrder .
=Aggregate(Fields!LineTotal.Value, "GroupbyOrder")
See Also
Expression Uses in Reports (Report Builder and SSRS)
Expression Examples (Report Builder and SSRS)
Data Types in Expressions (Report Builder and SSRS)
Expression Scope for Totals, Aggregates, and Built-in Collections (Report Builder and SSRS)
Report Builder Functions - Avg Function
3/5/2021 • 2 minutes to read • Edit Online
In Reporting Services paginated reports, returns the average of all non-null numeric values specified by the
expression, evaluated in the given scope.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
Syntax
Avg(expression, scope, recursive)
Parameters
expression
(Float ) The expression on which to perform the aggregation.
scope
(String ) Optional. The name of a dataset, group, or data region that contains the report items to which to apply
the aggregate function. If scope is not specified, the current scope is used.
recursive
(Enumerated Type ) Optional. Simple (default) or RdlRecursive . Specifies whether to perform the
aggregation recursively.
Return Type
Returns a Decimal for decimal expressions and a Double for all other expressions.
Remarks
The set of data specified in the expression must have the same data type. To convert data that has multiple
numeric data types to the same data type, use conversion functions like CInt , CDbl or CDec . For more
information, see Type Conversion Functions.
The value of scope must be a string constant and cannot be an expression. For outer aggregates or aggregates
that do not specify other aggregates, scope must refer to the current scope or a containing scope. For
aggregates of aggregates, nested aggregates can specify a child scope.
Expression can contain calls to nested aggregate functions with the following exceptions and conditions:
Scope for nested aggregates must be the same as, or contained by, the scope of the outer aggregate. For
all distinct scopes in the expression, one scope must be in a child relationship to all other scopes.
Scope for nested aggregates cannot be the name of a dataset.
Expression must not contain First , Last , Previous , or RunningValue functions.
Expression must not contain nested aggregates that specify recursive.
For more information, see Aggregate Functions Reference (Report Builder and SSRS) and Expression Scope for
Totals, Aggregates, and Built-in Collections (Report Builder and SSRS).
For more information about recursive aggregates, see Creating Recursive Hierarchy Groups (Report Builder and
SSRS).
Example
The following two code examples provide an average of all values in the Cost field contained in a dataset
named Inventory .
=Avg(Fields!Cost.Value, "Inventory")
OR
=Avg (CDbl(Fields!Cost.Value), "Inventory")
See Also
Expression Uses in Reports (Report Builder and SSRS)
Expression Examples (Report Builder and SSRS)
Data Types in Expressions (Report Builder and SSRS)
Expression Scope for Totals, Aggregates, and Built-in Collections (Report Builder and SSRS)
Report Builder Functions - Count Function
11/2/2020 • 2 minutes to read • Edit Online
Returns a count of non-null values specified by the expression, evaluated in the context of the given scope.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
Syntax
Count(expression, scope, recursive)
Parameters
expression
(Variant or Binar y ) The expression on which to perform the aggregation, for example,
=Fields!FieldName.Value .
scope
(String ) The name of a dataset, group, or data region that contains the report items to which to apply the
aggregate function. If scope is not specified, the current scope is used.
recursive
(Enumerated Type ) Optional. Simple (default) or RdlRecursive . Specifies whether to perform the
aggregation recursively.
Return Type
Returns an Integer .
Remarks
The value of scope must be a string constant and cannot be an expression. For outer aggregates or aggregates
that do not specify other aggregates, scope must refer to the current scope or a containing scope. For
aggregates of aggregates, nested aggregates can specify a child scope.
Expression can contain calls to nested aggregate functions with the following exceptions and conditions:
Scope for nested aggregates must be the same as, or contained by, the scope of the outer aggregate. For
all distinct scopes in the expression, one scope must be in a child relationship to all other scopes.
Scope for nested aggregates cannot be the name of a dataset.
Expression must not contain First , Last , Previous , or RunningValue functions.
Expression must not contain nested aggregates that specify recursive.
For more information, see Aggregate Functions Reference (Report Builder and SSRS) and Expression Scope for
Totals, Aggregates, and Built-in Collections (Report Builder and SSRS).
For more information about recursive aggregates, see Creating Recursive Hierarchy Groups (Report Builder and
SSRS).
Example
Description
The following code example shows an expression that calculates the number of non-null values of Size for the
default scope and for a parent group scope. The expression is added to a cell in a row that belongs to the child
group GroupbySubcategory . The parent group is GroupbyCategory . The expression displays the results for
GroupbySubcategory (the default scope) and then for GroupbyCategory (the parent group scope).
NOTE
Expressions should not contain actual carriage returns and line breaks; these are included in the example to support
documentation renderers. If you copy the following example, remove carriage returns from each line.
Code
="Count (Subcategory): " & Count(Fields!Size.Value) &
"Count (Category): " & Count(Fields!Size.Value,"GroupbyCategory")
See Also
Expression Uses in Reports (Report Builder and SSRS)
Expression Examples (Report Builder and SSRS)
Data Types in Expressions (Report Builder and SSRS)
Expression Scope for Totals, Aggregates, and Built-in Collections (Report Builder and SSRS)
Report Builder Functions - CountDistinct Function
5/20/2020 • 2 minutes to read • Edit Online
Returns a count of all distinct non-null values specified by the expression, evaluated in the context of the given
scope.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
Syntax
CountDistinct(expression, scope, recursive)
Parameters
expression
(Variant ) The expression on which to perform the aggregation.
scope
(String ) Optional. The name of a dataset, group, or data region that contains the report items to which to apply
the aggregate function. If scope is not specified, the current scope is used.
recursive
(Enumerated Type ) Optional. Simple (default) or RdlRecursive . Specifies whether to perform the
aggregation recursively.
Return Type
Returns an Integer .
Remarks
The value of scope must be a string constant and cannot be an expression. For outer aggregates or aggregates
that do not specify other aggregates, scope must refer to the current scope or a containing scope. For
aggregates of aggregates, nested aggregates can specify a child scope.
Expression can contain calls to nested aggregate functions with the following exceptions and conditions:
Scope for nested aggregates must be the same as, or contained by, the scope of the outer aggregate. For
all distinct scopes in the expression, one scope must be in a child relationship to all other scopes.
Scope for nested aggregates cannot be the name of a dataset.
Expression must not contain First , Last , Previous , or RunningValue functions.
Expression must not contain nested aggregates that specify recursive.
For more information, see Aggregate Functions Reference (Report Builder and SSRS) and Expression Scope for
Totals, Aggregates, and Built-in Collections (Report Builder and SSRS).
For more information about recursive aggregates, see Creating Recursive Hierarchy Groups (Report Builder and
SSRS).
Example
The following code example shows an expression that calculates the number of unique non-null values of Size
for the default scope and for a parent group scope. The expression is added to a cell in a row that belongs to the
child group GroupbySubcategory . The parent group is GroupbyCategory . The expression displays the results for
GroupbySubcategory (the default scope) and then for GroupbyCategory (the parent group scope).
NOTE
Expressions should not contain actual carriage returns and line breaks; these are included in the example code to support
documentation renderers. If you copy the following example, remove carriage returns from each line.
See Also
Expression Uses in Reports (Report Builder and SSRS)
Expression Examples (Report Builder and SSRS)
Data Types in Expressions (Report Builder and SSRS)
Expression Scope for Totals, Aggregates, and Built-in Collections (Report Builder and SSRS)
Report Builder Functions - CountRows Function
11/2/2020 • 2 minutes to read • Edit Online
Returns the number of rows in the specified scope, including rows with null values.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
Syntax
CountRows(scope, recursive)
Parameters
scope
(String ) The name of a dataset, data region, or group that contains the report items to count.
recursive
(Enumerated Type ) Optional. Simple (default) or RdlRecursive . Specifies whether to perform the
aggregation recursively.
Return Type
Returns an Integer .
Remarks
CountRows counts all rows in the specified scope, including rows that have null values.
The value of scope cannot be an expression and must refer to the current scope or a containing scope.
For more information, see Aggregate Functions Reference (Report Builder and SSRS) and Expression Scope for
Totals, Aggregates, and Built-in Collections (Report Builder and SSRS).
For more information about recursive aggregates, see Creating Recursive Hierarchy Groups (Report Builder and
SSRS).
Example
The following code example shows an expression that calculates the number of rows in a row group named
GroupbyCategory (based on the expression [Category] ).
See Also
Expression Uses in Reports (Report Builder and SSRS)
Expression Examples (Report Builder and SSRS)
Data Types in Expressions (Report Builder and SSRS)
Expression Scope for Totals, Aggregates, and Built-in Collections (Report Builder and SSRS)
Report Builder Functions - First Function
11/2/2020 • 2 minutes to read • Edit Online
Returns the first value in the given scope of the specified expression.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
Syntax
First(expression, scope)
Parameters
expression
(Variant or Binar y ) The expression on which to perform the aggregation, for example,
=Fields!FieldName.Value .
scope
(String ) Optional. The name of a dataset, group, or data region that contains the report items to which to apply
the aggregate function. If scope is not specified, the current scope is used.
Return Type
Determined by the type of expression.
Remarks
The First function returns the first value in a set of data after all sorting and filtering have been applied at the
specified scope.
The First function cannot be used in group filter expressions with anything except the current (default) scope.
You can also use First in a page header to return the first value from the Repor tItems collection for a page in
order to produce dictionary-style headings that display the first and last entries on a page.
The value of scope must be a string constant and cannot be an expression. For outer aggregates or aggregates
that do not specify other aggregates, scope must refer to the current scope or a containing scope. For
aggregates of aggregates, nested aggregates can specify a child scope.
Expression can contain calls to nested aggregate functions with the following exceptions and conditions:
Scope for nested aggregates must be the same as, or contained by, the scope of the outer aggregate. For
all distinct scopes in the expression, one scope must be in a child relationship to all other scopes.
Scope for nested aggregates cannot be the name of a dataset.
Expression must not contain First , Last , Previous , or RunningValue functions.
Expression must not contain nested aggregates that specify recursive.
For more information, see Aggregate Functions Reference (Report Builder and SSRS) and Expression Scope for
Totals, Aggregates, and Built-in Collections (Report Builder and SSRS).
For more information about recursive aggregates, see Creating Recursive Hierarchy Groups (Report Builder and
SSRS).
Example
The following code example returns the first product number in the Category group of a data region:
=First(Fields!ProductNumber.Value, "Category")
See Also
Expression Uses in Reports (Report Builder and SSRS)
Expression Examples (Report Builder and SSRS)
Data Types in Expressions (Report Builder and SSRS)
Expression Scope for Totals, Aggregates, and Built-in Collections (Report Builder and SSRS)
Report Builder Functions - InScope Function
11/2/2020 • 2 minutes to read • Edit Online
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
Syntax
InScope(scope)
Parameters
scope
(String ) The name of a dataset, data region, or group that specifies a scope.
Return Type
Returns a Boolean .
Remarks
The InScope function tests the scope of the current instance of a report item for membership in the scope
specified by the scopeparameter.
Scope cannot be an expression.
A typical use for the InScope function is in data regions that have dynamic scoping. For example, InScope can
be used in a drillthrough link in a data region cells to provide a different report name and different sets of
parameters depending on which cell is clicked. An example of this is as follows:
The following expression, used as the report name in a drillthrough link, opens the ProductDetail report
if the clicked cell is in the Month group, and the ProductSummary report if it is not.
The following expression, used in the Omit property of a drillthrough report parameter, will pass the
parameter to the target report only if the clicked cell is in the Product group.
=Not(InScope("Product"))
For more information, see Aggregate Functions Reference (Report Builder and SSRS) and Expression Scope for
Totals, Aggregates, and Built-in Collections (Report Builder and SSRS).
Example
The following code example indicates whether the current instance of the item is in the Product dataset, data
region, or group scope.
=InScope("Product")
See Also
Expression Uses in Reports (Report Builder and SSRS)
Expression Examples (Report Builder and SSRS)
Data Types in Expressions (Report Builder and SSRS)
Expression Scope for Totals, Aggregates, and Built-in Collections (Report Builder and SSRS)
Report Builder Functions - Last Function
11/2/2020 • 2 minutes to read • Edit Online
Returns the last value in the given scope of the specified expression.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
Syntax
Last(expression, scope)
Parameters
expression
(Variant or Binar y ) The expression on which to perform the aggregation, for example,
=Fields!Fieldname.Value .
scope
(String ) (Optional) The name of a dataset, data region, or group that contains the report items to which to apply
the function. If scope is not specified, the current scope is used.
Return Type
Determined by the type of expression.
Remarks
The Last function returns the final value in a set of data after all sorting and filtering have been applied at the
specified scope.
The Last function cannot be used in group filter expressions with anything except the current (default) scope.
You can also use Last in a page header to return the last value from the Repor tItems collection for a page in
order to produce dictionary-style headings that display the first and last entries on a page.
The value of scope must be a string constant and cannot be an expression. For outer aggregates or aggregates
that do not specify other aggregates, scope must refer to the current scope or a containing scope. For
aggregates of aggregates, nested aggregates can specify a child scope.
Expression can contain calls to nested aggregate functions with the following exceptions and conditions:
Scope for nested aggregates must be the same as, or contained by, the scope of the outer aggregate. For
all distinct scopes in the expression, one scope must be in a child relationship to all other scopes.
Scope for nested aggregates cannot be the name of a dataset.
Expression must not contain First , Last , Previous , or RunningValue functions.
Expression must not contain nested aggregates that specify recursive.
For more information, see Aggregate Functions Reference (Report Builder and SSRS) and Expression Scope for
Totals, Aggregates, and Built-in Collections (Report Builder and SSRS).
For more information about recursive aggregates, see Creating Recursive Hierarchy Groups (Report Builder and
SSRS).
Example
The following code example returns the last product number in the Category group of a data region.
=Last(Fields!ProductNumber.Value, "Category")
See Also
Expression Uses in Reports (Report Builder and SSRS)
Expression Examples (Report Builder and SSRS)
Data Types in Expressions (Report Builder and SSRS)
Expression Scope for Totals, Aggregates, and Built-in Collections (Report Builder and SSRS)
Report Builder Functions - Level Function
11/2/2020 • 2 minutes to read • Edit Online
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
Syntax
Level(scope)
Parameters
scope
(String ) (Optional). The name of a dataset, group, or data region that contains the report items to which to
apply the aggregate function. If scope is not specified, the current scope is used.
Return Type
Returns an Integer . If scope specifies a dataset or data region, or specifies a nonrecursive grouping (that is, a
grouping with no Parent element), Level returns 0. If scope is omitted, it returns the level of the current scope.
Remarks
The value returned by the Level function is zero based; that is, the first level in a hierarchy is 0.
The Level function can be used to provide indentation in a recursive hierarchy, such as an employee list.
For more information about recursive hierarchies, see Creating Recursive Hierarchy Groups (Report Builder and
SSRS).
Example
The following code example provides the level of row in the Employees group:
=Level("Employees")
See Also
Expression Uses in Reports (Report Builder and SSRS)
Expression Examples (Report Builder and SSRS)
Data Types in Expressions (Report Builder and SSRS)
Expression Scope for Totals, Aggregates, and Built-in Collections (Report Builder and SSRS)
Report Builder Functions - Lookup Function
11/2/2020 • 2 minutes to read • Edit Online
Returns the first matching value for the specified name from a dataset that contains name/value pairs.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
Syntax
Lookup(source_expression, destination_expression, result_expression, dataset)
Parameters
source_expression
(Variant ) An expression that is evaluated in the current scope and that specifies the name or key to look up. For
example, =Fields!ProdID.Value .
destination_expression
(Variant ) An expression that is evaluated for each row in a dataset and that specifies the name or key to match
on. For example, =Fields!ProductID.Value .
result_expression
(Variant ) An expression that is evaluated for the row in the dataset where source_expression =
destination_expression, and that specifies the value to retrieve. For example, =Fields!ProductName.Value .
dataset
A constant that specifies the name of a dataset in the report. For example, "Products".
Return
Returns a Variant , or Nothing if there is no match.
Remarks
Use Lookup to retrieve the value from the specified dataset for a name/value pair where there is a 1-to-1
relationship. For example, for an ID field in a table, you can use Lookup to retrieve the corresponding Name
field from a dataset that is not bound to the data region.
Lookup does the following:
Evaluates the source expression in the current scope.
Evaluates the destination expression for each row of the specified dataset after filters have been applied,
based on the collation of the specified dataset.
On the first match of source expression and destination expression, evaluates the result expression for
that row in the dataset.
Returns the result expression value.
To retrieve multiple values for a single name or key field where there is a 1-to-many relationship, use LookupSet
Function (Report Builder and SSRS). To call Lookup for a set of values, use Multilookup Function (Report Builder
and SSRS).
The following restrictions apply:
Lookup is evaluated after all filter expressions are applied.
Only one level of lookup is supported. A source, destination, or result expression cannot include a
reference to a lookup function.
Source and destination expressions must evaluate to the same data type. The return type is the same as
the data type of the evaluated result expression.
Source, destination, and result expressions cannot include references to report or group variables.
Lookup cannot be used as an expression for the following report items:
Dynamic connection strings for a data source.
Calculated fields in a dataset.
Query parameters in a dataset.
Filters in a dataset.
Report parameters.
The Report.Language property.
For more information, see Aggregate Functions Reference (Report Builder and SSRS) and Expression Scope for
Totals, Aggregates, and Built-in Collections (Report Builder and SSRS).
Example
In the following example, assume that a table is bound to a dataset that includes a field for the product identifier
ProductID. A separate dataset called "Product" contains the corresponding product identifier ID and the product
name Name.
In the following expression, Lookup compares the value of ProductID to ID in each row of the dataset called
"Product" and, when a match is found, returns the value of the Name field for that row.
See Also
Expression Uses in Reports (Report Builder and SSRS)
Expression Examples (Report Builder and SSRS)
Data Types in Expressions (Report Builder and SSRS)
Expression Scope for Totals, Aggregates, and Built-in Collections (Report Builder and SSRS)
Report Builder Functions - LookupSet Function
3/5/2021 • 4 minutes to read • Edit Online
Returns the set of matching values for the specified name from a dataset that contains name/value pairs.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
Syntax
LookupSet(source_expression, destination_expression, result_expression, dataset)
Parameters
source_expression
(Variant ) An expression that is evaluated in the current scope and that specifies the name or key to look up. For
example, =Fields!ID.Value .
destination_expression
(Variant ) An expression that is evaluated for each row in a dataset and that specifies the name or key to match
on. For example, =Fields!CustomerID.Value .
result_expression
(Variant ) An expression that is evaluated for the row in the dataset where source_expression =
destination_expression, and that specifies the value to retrieve. For example, =Fields!PhoneNumber.Value .
dataset
A constant that specifies the name of a dataset in the report. For example, "ContactInformation".
Return
Returns a VariantArray , or Nothing if there is no match.
Remarks
Use LookupSet to retrieve a set of values from the specified dataset for a name/value pair where there is a 1-
to-many relationship. For example, for a customer identifier in a table, you can use LookupSet to retrieve all the
associated phone numbers for that customer from a dataset that is not bound to the data region.
LookupSet does the following:
Evaluates the source expression in the current scope.
Evaluates the destination expression for each row of the specified dataset after filters have been applied,
based on the collation of the specified dataset.
For each match of source expression and destination expression, evaluates the result expression for that
row in the dataset.
Returns the set of result expression values.
To retrieve a single value from a dataset with name/value pairs for a specified name where there is a 1-to-1
relationship, use Lookup Function (Report Builder and SSRS). To call Lookup for a set of values, use Multilookup
Function (Report Builder and SSRS).
The following restrictions apply:
LookupSet is evaluated after all filter expressions are applied.
Only one level of lookup is supported. A source, destination, or result expression cannot include a
reference to a lookup function.
Source and destination expressions must evaluate to the same data type.
Source, destination, and result expressions cannot include references to report or group variables.
LookupSet cannot be used as an expression for the following report items:
Dynamic connection strings for a data source.
Calculated fields in a dataset.
Query parameters in a dataset.
Filters in a dataset.
Report parameters.
The Report.Language property.
For more information, see Aggregate Functions Reference (Report Builder and SSRS) and Expression Scope for
Totals, Aggregates, and Built-in Collections (Report Builder and SSRS).
Examples
In the following examples, assume the table is bound to a dataset that includes a sales territory identifier
TerritoryGroupID. A separate dataset called "Stores" contains the list of all stores in a territory and includes the
territory identifier ID and the name of the store StoreName.
A. Use LookupSet
In the following expression, LookupSet compares the value TerritoryGroupID to ID for each row in the dataset
called "Stores". For each match, the value of the StoreName field for that row is added to the result set.
Return builder.ToString()
End Function
See Also
Expression Uses in Reports (Report Builder and SSRS)
Expression Examples (Report Builder and SSRS)
Data Types in Expressions (Report Builder and SSRS)
Expression Scope for Totals, Aggregates, and Built-in Collections (Report Builder and SSRS)
Report Builder Functions - Max Function
3/5/2021 • 2 minutes to read • Edit Online
Returns the maximum value of all non-null numeric values specified by the expression, in the context of the
given scope.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
Syntax
Max(expression, scope, recursive)
Parameters
expression
(Variant ) The expression on which to perform the aggregation.
scope
(String ) Optional. The name of a dataset, group, or data region that contains the report items to which to apply
the aggregate function. If scope is not specified, the current scope is used.
recursive
(Enumerated Type ) Optional. Simple (default) or RdlRecursive . Specifies whether to perform the
aggregation recursively.
Return Type
Determined by the type of the expression.
Remarks
The set of data specified in the expression must have the same data type. To convert data that has multiple
numeric data types to the same data type, use conversion functions like CInt , CDbl or CDec . For more
information, see Type Conversion Functions.
The value of scope must be a string constant and cannot be an expression. For outer aggregates or aggregates
that do not specify other aggregates, scope must refer to the current scope or a containing scope. For
aggregates of aggregates, nested aggregates can specify a child scope.
Expression can contain calls to nested aggregate functions with the following exceptions and conditions:
Scope for nested aggregates must be the same as, or contained by, the scope of the outer aggregate. For
all distinct scopes in the expression, one scope must be in a child relationship to all other scopes.
Scope for nested aggregates cannot be the name of a dataset.
Expression must not contain First , Last , Previous , or RunningValue functions.
Expression must not contain nested aggregates that specify recursive.
For more information, see Aggregate Functions Reference (Report Builder and SSRS) and Expression Scope for
Totals, Aggregates, and Built-in Collections (Report Builder and SSRS).
For more information about recursive aggregates, see Creating Recursive Hierarchy Groups (Report Builder and
SSRS).
Example
The following code example provides the highest total in the Year group or data region.
=Max(Fields!OrderTotal.Value, "Year")
See Also
Expression Uses in Reports (Report Builder and SSRS)
Expression Examples (Report Builder and SSRS)
Data Types in Expressions (Report Builder and SSRS)
Expression Scope for Totals, Aggregates, and Built-in Collections (Report Builder and SSRS)
Report Builder Functions - Min Function
3/5/2021 • 2 minutes to read • Edit Online
Returns the minimum value of all non-null numeric values specified by the expression, in the context of the
given scope.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
Syntax
Min(expression, scope, recursive)
Parameters
expression
(Variant ) The expression on which to perform the aggregation.
scope
(String ) Optional. The name of a dataset, group, or data region that contains the report items to which to apply
the aggregate function. If scope is not specified, the current scope is used.
recursive
(Enumerated Type ) Optional. Simple (default) or RdlRecursive . Specifies whether to perform the
aggregation recursively.
Return Type
Determined by the type of the expression.
Remarks
The set of data specified in the expression must have the same data type. To convert data that has multiple
numeric data types to the same data type, use conversion functions like CInt , CDbl or CDec . For more
information, see Type Conversion Functions.
The value of scope must be a string constant and cannot be an expression. For outer aggregates or aggregates
that do not specify other aggregates, scope must refer to the current scope or a containing scope. For
aggregates of aggregates, nested aggregates can specify a child scope.
Expression can contain calls to nested aggregate functions with the following exceptions and conditions:
Scope for nested aggregates must be the same as, or contained by, the scope of the outer aggregate. For
all distinct scopes in the expression, one scope must be in a child relationship to all other scopes.
Scope for nested aggregates cannot be the name of a dataset.
Expression must not contain First , Last , Previous , or RunningValue functions.
Expression must not contain nested aggregates that specify recursive.
For more information, see Aggregate Functions Reference (Report Builder and SSRS) and Expression Scope for
Totals, Aggregates, and Built-in Collections (Report Builder and SSRS).
For more information about recursive aggregates, see Creating Recursive Hierarchy Groups (Report Builder and
SSRS).
Example
The following code example provides the lowest total in the current scope.
=Min(Fields!OrderTotal.Value)
See Also
Expression Uses in Reports (Report Builder and SSRS)
Expression Examples (Report Builder and SSRS)
Data Types in Expressions (Report Builder and SSRS)
Expression Scope for Totals, Aggregates, and Built-in Collections (Report Builder and SSRS)
Report Builder Functions - Multilookup Function
3/5/2021 • 3 minutes to read • Edit Online
Returns the set of first-match values for the specified set of names from a dataset that contains name/value
pairs.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
Syntax
Multilookup(source_expression, destination_expression, result_expression, dataset)
Parameters
source_expression
(VariantArray ) An expression that is evaluated in the current scope and that specifies the set of names or keys
to look up. For example, for a multivalue parameter, =Parameters!IDs.value .
destination_expression
(Variant ) An expression that is evaluated for each row in a dataset and that specifies the name or key to match
on. For example, =Fields!ID.Value .
result_expression
(Variant ) An expression that is evaluated for the row in the dataset where source_expression =
destination_expression, and that specifies the value to retrieve. For example, =Fields!Name.Value .
dataset
A constant that specifies the name of a dataset in the report. For example, "Colors".
Return
Returns a VariantArray , or Nothing if there is no match.
Remarks
Use Multilookup to retrieve a set of values from a dataset for name-value pairs where each pair has a 1-to-1
relationship. MultiLookup is the equivalent of calling Lookup for a set of names or keys. For example, for a
multivalue parameter that is based on primary key identifiers, you can use Multilookup in an expression in a
text box in a table to retrieve associated values from a dataset that is not bound to the parameter or to the table.
Multilookup does the following:
Evaluates the source expression in the current scope and generates an array of variant objects.
For each object in the array, calls Lookup Function (Report Builder and SSRS) and adds the result to the
return array.
Returns the set of results.
To retrieve a single value from a dataset with name-value pairs for a specified name where there is a 1-to-1
relationship, use Lookup Function (Report Builder and SSRS). To retrieve multiple values from a dataset with
name-value pairs for a name where there is a 1-to-many relationship, use LookupSet Function (Report Builder
and SSRS).
The following restrictions apply:
Multilookup is evaluated after all filter expressions are applied
Only one level of look-up is supported. A source, destination, or result expression cannot include a
reference to a lookup function.
Source and destination expressions must evaluate to the same data type.
Source, destination, and result expressions cannot include references to report or group variables.
Multilookup cannot be used as an expression for the following report items:
Dynamic connection strings for a data source.
Calculated fields in a dataset.
Query parameters in a dataset.
Filters in a dataset.
Report parameters.
The Report.Language property.
For more information, see Aggregate Functions Reference (Report Builder and SSRS) and Expression Scope for
Totals, Aggregates, and Built-in Collections (Report Builder and SSRS).
Examples
A. Use MultiLookup function
Assume a dataset called "Category" contains the field CategoryList, which is a field that contains a comma-
separated list of category identifers, for example, "2, 4, 2, 1".
The dataset CategoryNames contains the category identifier and category name, as shown in the following
table.
ID NAME
1 Accessories
2 Bikes
3 Clothing
4 Components
To look up the names that correspond to the list of identifiers, use Multilookup . You must first split the list into
a string array, call Multilookup to retrieve the category names, and concatenate the results into a string.
The following expression, when placed in a text box in a data region bound to the Category dataset, displays
"Bikes, Components, Bikes, Accessories":
=Join(MultiLookup(Split(Fields!CategoryList.Value,","),
Fields!CategoryID.Value,Fields!CategoryName.Value,"Category")),
", ")
C O LO RID C O LO R
1 Red
2 Blue
3 Green
Assume the multivalue parameter MyColors is not bound to a dataset for its available values. The default values
for the parameter are set to 2 and 3. The following expression, when placed in a text box in a table, concatenates
the multiple selected values for the parameter into a comma-separated list and displays "Blue, Green".
=Join(MultiLookup(Parameters!MyColors.Value,Fields!ColorID.Value,Fields!Color.Value,"ProductColors"),", ")
See Also
Expression Uses in Reports (Report Builder and SSRS)
Expression Examples (Report Builder and SSRS)
Data Types in Expressions (Report Builder and SSRS)
Expression Scope for Totals, Aggregates, and Built-in Collections (Report Builder and SSRS)
Report Builder Functions - Previous Function
11/2/2020 • 2 minutes to read • Edit Online
Returns the value or the specified aggregate value for the previous instance of an item within the specified
scope.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
Syntax
Previous(expression, scope)
Parameters
expression
(Variant or Binar y ) The expression to use to identify the data and for which to retrieve the previous value, for
example, Fields!Fieldname.Value or Sum(Fields!Fieldname.Value) .
scope
(String ) Optional. The name of a group or data region, or null (Nothing in Visual Basic), that specifies the scope
from which to retrieve the previous value specified by expression.
Return Type
Returns a Variant or Binar y .
Remarks
The Previous function returns the previous value for the expression evaluated in the specified scope after all
sorting and filtering have been applied.
If expression does not contain an aggregate, the Previous function defaults to the current scope for the report
item.
In a details group, use Previous to specify the value of a field reference in the previous instance of the detail
row.
NOTE
The Previous function only supports field references in the details group. For example, in a text box in the details group,
=Previous(Fields!Quantity.Value) returns the data for the field Quantity from the previous row. In the first row,
this expression returns a null (Nothing in Visual Basic).
If expression contains an aggregate function that uses a default scope, Previous aggregates the data within the
previous instance of the scope specified in the aggregate function call.
If expression contains an aggregate function that specifies a scope other than the default, the scope parameter
for the Previous function must be a containing scope for the scope specified in the aggregate function call.
The functions Level , InScope , Aggregate and Previous cannot be used in the expressionparameter.
Specifying the recursive parameter for any aggregate function is not supported.
For more information, see Aggregate Functions Reference (Report Builder and SSRS) and Expression Scope for
Totals, Aggregates, and Built-in Collections (Report Builder and SSRS).
Examples
Description
The following code example, when placed in the default data row of a data region, provides the value for the
field LineTotal in the previous row.
Code
=Previous(Fields!LineTotal.Value)
Description
The following example shows an expression that calculates the sum of sales on a specific day of the month and
the previous value for that day of the month in a previous year. The expression is added to a cell in a row that
belongs to the child group GroupbyDay . Its parent group is GroupbyMonth , which has a parent group
GroupbyYear . The expression displays the results for GroupbyDay (the default scope) and then for GroupbyYear
(the parent of the parent group GroupbyMonth ).
For example, for a data region with a parent group named Year , its child group named Month , and its child
group named Day (3 nested levels). The expression =Previous(Sum(Fields!Sales.Value,"Day"),"Year") in a row
associated with the group Day returns the sales value for the same day and month for the previous year.
Code
See Also
Expression Uses in Reports (Report Builder and SSRS)
Expression Examples (Report Builder and SSRS)
Data Types in Expressions (Report Builder and SSRS)
Expression Scope for Totals, Aggregates, and Built-in Collections (Report Builder and SSRS)
Report Builder Functions - RowNumber Function
11/2/2020 • 2 minutes to read • Edit Online
Returns a running count of the number of rows for the specified scope.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
Syntax
RowNumber(scope)
Parameters
scope
(String ) The name of a dataset, data region, or group, or null (Nothing in Visual Basic), that specifies the
context in which to evaluate the number of rows. Nothing specifies the outermost context, usually the report
dataset.
Remarks
RowNumber returns a running value of the count of rows within the specified scope, just as RunningValue
returns the running value of an aggregate function. When you specify a scope, you specify when to reset the
row count to 1.
scope cannot be an expression. scope must be a containing scope. Typical scopes, from the outermost to the
innermost containment, are report dataset, data region, row groups or column groups.
To increment values across columns, specify a scope that is the name of a column group. To increment numbers
down rows, specify a scope that is the name of a row group.
NOTE
Including aggregates that specify both a row group and a column group in a single expression is not supported.
For more information, see Aggregate Functions Reference (Report Builder and SSRS) and Expression Scope for
Totals, Aggregates, and Built-in Collections (Report Builder and SSRS).
Code Example
The following is an expression that you can use for the BackgroundColor property of a Tablix data region
detail row to alternate the color of detail rows for each group, always beginning with White.
Returns a running aggregate of all non-null numeric values specified by the expression, evaluated for the given
scope.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
Syntax
RunningValue(expression, function, scope)
Parameters
expression
The expression on which to perform the aggregation, for example, [Quantity] .
function
(Enum ) The name of the aggregate function to apply to the expression, for example, Sum . This function cannot
be RunningValue , RowNumber , or Aggregate .
scope
(String ) A string constant that is the name of a dataset, data region, or group, or null (Nothing in Visual Basic),
that specifies the context in which to evaluate the aggregation. Nothing specifies the outermost context, usually
the report dataset.
Return Type
Determined by the aggregate function that is specified in the function parameter.
Remarks
The value for RunningValue resets to 0 for each new instance of the scope. If a group is specified, the running
value is reset when the group expression changes. If a data region is specified, the running value is reset for
each new instance of the data region. If a dataset is specified, the running value is not reset throughout the
entire dataset.
RunningValue cannot be used in a filter or sort expression.
The set of data for which the running value is calculated must have the same data type. To convert data that has
multiple numeric data types to the same data type, use conversion functions like CInt , CDbl or CDec . For more
information, see Type Conversion Functions.
Scope cannot be an expression.
Expression can contain calls to nested aggregate functions with the following exceptions and conditions:
Scope for nested aggregates must be the same as, or contained by, the scope of the outer aggregate. For
all distinct scopes in the expression, one scope must be in a child relationship to all other scopes.
Scope for nested aggregates cannot be the name of a dataset.
Expression must not contain First , Last , Previous , or RunningValue functions.
Expression must not contain nested aggregates that specify recursive.
To calculate the running value of the number of rows, use RowNumber . For more information, see RowNumber
Function (Report Builder and SSRS).
For more information, see Aggregate Functions Reference (Report Builder and SSRS) and Expression Scope for
Totals, Aggregates, and Built-in Collections (Report Builder and SSRS).
For more information about recursive aggregates, see Creating Recursive Hierarchy Groups (Report Builder and
SSRS).
Examples
The following code example provides a running sum of the field named Cost in the outermost scope, which is
the dataset.
The following code example provides a running sum of the field named Score in the dataset named DataSet1 .
=RunningValue(Fields!Score.Value,sum,"DataSet1")
The following code example provides a running sum of the field named Traffic Charges in the outermost
scope.
See Also
Expression Uses in Reports (Report Builder and SSRS)
Expression Examples (Report Builder and SSRS)
Data Types in Expressions (Report Builder and SSRS)
Expression Scope for Totals, Aggregates, and Built-in Collections (Report Builder and SSRS)
Report Builder Functions - StDev Function
3/5/2021 • 2 minutes to read • Edit Online
Returns the standard deviation of all non-null numeric values specified by the expression, evaluated in the given
scope.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
Syntax
StDev(expression, scope, recursive)
Parameters
expression
(Integer or Float ) The expression on which to perform the aggregation.
scope
(String ) Optional. The name of a dataset, group, or data region that contains the report items to which to apply
the aggregate function. If scope is not specified, the current scope is used.
recursive
(Enumerated Type ) Optional. Simple (default) or RdlRecursive . Specifies whether to perform the
aggregation recursively.
Return Type
Returns a Decimal for decimal expressions and a Double for all other expressions.
Remarks
The set of data specified in the expression must have the same data type. To convert data that has multiple
numeric data types to the same data type, use conversion functions like CInt , CDbl or CDec . For more
information, see Type Conversion Functions.
The value of scope must be a string constant and cannot be an expression. For outer aggregates or aggregates
that do not specify other aggregates, scope must refer to the current scope or a containing scope. For
aggregates of aggregates, nested aggregates can specify a child scope.
Expression can contain calls to nested aggregate functions with the following exceptions and conditions:
Scope for nested aggregates must be the same as, or contained by, the scope of the outer aggregate. For
all distinct scopes in the expression, one scope must be in a child relationship to all other scopes.
Scope for nested aggregates cannot be the name of a dataset.
Expression must not contain First , Last , Previous , or RunningValue functions.
Expression must not contain nested aggregates that specify recursive.
For more information, see Aggregate Functions Reference (Report Builder and SSRS) and Expression Scope for
Totals, Aggregates, and Built-in Collections (Report Builder and SSRS).
For more information about recursive aggregates, see Creating Recursive Hierarchy Groups (Report Builder and
SSRS).
Example
The following code example provides the standard deviation of line item totals in the Order group or data
region.
=StDev(Fields!LineTotal.Value, "Order")
See Also
Expression Uses in Reports (Report Builder and SSRS)
Expression Examples (Report Builder and SSRS)
Data Types in Expressions (Report Builder and SSRS)
Expression Scope for Totals, Aggregates, and Built-in Collections (Report Builder and SSRS)
Report Builder Functions - StDevP Function
3/5/2021 • 2 minutes to read • Edit Online
Returns the population standard deviation of all non-null numeric values specified by the expression, evaluated
in the context of the given scope.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
Syntax
StDevP(expression, scope, recursive)
Parameters
expression
(Integer or Float ) The expression on which to perform the aggregation.
scope
(String ) Optional. The name of a dataset, group, or data region that contains the report items to which to apply
the aggregate function. If scope is not specified, the current scope is used.
recursive
(Enumerated Type ) Optional. Simple (default) or RdlRecursive . Specifies whether to perform the
aggregation recursively.
Return Type
Returns a Decimal for decimal expressions and a Double for all other expressions.
Remarks
The set of data specified in the expression must have the same data type. To convert data that has multiple
numeric data types to the same data type, use conversion functions like CInt , CDbl or CDec . For more
information, see Type Conversion Functions.
The value of scope must be a string constant and cannot be an expression. For outer aggregates or aggregates
that do not specify other aggregates, scope must refer to the current scope or a containing scope. For
aggregates of aggregates, nested aggregates can specify a child scope.
Expression can contain calls to nested aggregate functions with the following exceptions and conditions:
Scope for nested aggregates must be the same as, or contained by, the scope of the outer aggregate. For
all distinct scopes in the expression, one scope must be in a child relationship to all other scopes.
Scope for nested aggregates cannot be the name of a dataset.
Expression must not contain First , Last , Previous , or RunningValue functions.
Expression must not contain nested aggregates that specify recursive.
For more information, see Aggregate Functions Reference (Report Builder and SSRS) and Expression Scope for
Totals, Aggregates, and Built-in Collections (Report Builder and SSRS).
For more information about recursive aggregates, see Creating Recursive Hierarchy Groups (Report Builder and
SSRS).
Example
The following code example provides the population standard deviation of line item totals in the Order group
or data region.
=StDevP(Fields!LineTotal.Value, "Order")
See Also
Expression Uses in Reports (Report Builder and SSRS)
Expression Examples (Report Builder and SSRS)
Data Types in Expressions (Report Builder and SSRS)
Expression Scope for Totals, Aggregates, and Built-in Collections (Report Builder and SSRS)
Report Builder Functions - Sum Function
3/5/2021 • 2 minutes to read • Edit Online
Returns the sum of all the non-null numeric values specified by the expression, evaluated in the given scope.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
Syntax
Sum(expression, scope, recursive)
Parameters
expression
(Integer or Float ) The expression on which to perform the aggregation.
scope
(String ) Optional. The name of a dataset, group, or data region that contains the report items to which to apply
the aggregate function. If scope is not specified, the current scope is used.
recursive
(Enumerated Type ) Optional. Simple (default) or RdlRecursive . Specifies whether to perform the
aggregation recursively.
Return Type
Returns a Decimal for decimal expressions and a Double for all other expressions.
Remarks
The set of data specified in the expression must have the same data type. To convert data that has multiple
numeric data types to the same data type, use conversion functions like CInt , CDbl or CDec . For more
information, see Type Conversion Functions.
The value of scope must be a string constant andcannot be an expression. For outer aggregates or aggregates
that do not specify other aggregates, scope must refer to the current scope or a containing scope. For
aggregates of aggregates, nested aggregates can specify a child scope.
Expression can contain calls to nested aggregate functions with the following exceptions and conditions:
Scope for nested aggregates must be the same as, or contained by, the scope of the outer aggregate. For
all distinct scopes in the expression, one scope must be in a child relationship to all other scopes.
Scope for nested aggregates cannot be the name of a dataset.
Expression must not contain First , Last , Previous , or RunningValue functions.
Expression must not contain nested aggregates that specify recursive.
For more information, see Aggregate Functions Reference (Report Builder and SSRS) and Expression Scope for
Totals, Aggregates, and Built-in Collections (Report Builder and SSRS).
For more information about recursive aggregates, see Creating Recursive Hierarchy Groups (Report Builder and
SSRS).
Examples
A. Sum of line item totals
The following two code examples provide a sum of line item totals in the Order group or data region.
=Sum(Fields!LineTotal.Value, "Order")
' or
=Sum(CDbl(Fields!LineTotal.Value), "Order")
=Max(Sum(Fields!Sales.Value))
See Also
Expression Uses in Reports (Report Builder and SSRS)
Expression Examples (Report Builder and SSRS)
Data Types in Expressions (Report Builder and SSRS)
Expression Scope for Totals, Aggregates, and Built-in Collections (Report Builder and SSRS)
Report Builder Functions - Union Function
5/20/2020 • 2 minutes to read • Edit Online
Returns the union of all the non-null numeric values specified by the expression, evaluated in the given scope.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
Syntax
Union(expression, scope, recursive)
Parameters
expression
(SqlGeometr y or SqlGeography ) The expression on which to perform the aggregation.
scope
(String ) Optional. The name of a dataset, group, or data region that contains the report items to which to apply
the aggregate function. If scope is not specified, the current scope is used.
recursive
(Enumerated Type ) Optional. Simple (default) or RdlRecursive . Specifies whether to perform the
aggregation recursively.
Return
Returns a spatial object, either SqlGeometr y or SqlGeography , based on the expression type. For more
information about SqlGeometr y and SqlGeography spatial data types, see Spatial Data Types Overview.
Remarks
The set of data specified in the expression must have the same data type.
The value of scope must be a string constant and cannot be an expression. For outer aggregates or aggregates
that do not specify other aggregates, scope must refer to the current scope or a containing scope. Dataset
scopes are not supported. For aggregates of aggregates, nested aggregates can specify a child scope.
Expression can contain calls to nested aggregate functions with the following exceptions and conditions:
Scope for nested aggregates must be the same as, or contained by, the scope of the outer aggregate. For
all distinct scopes in the expression, one scope must be in a child relationship to all other scopes.
Scope for nested aggregates cannot be the name of a dataset.
Expression must not contain First , Last , Previous , or RunningValue functions.
Expression must not contain nested aggregates that specify recursive.
For more information, see Aggregate Functions Reference (Report Builder and SSRS) and Expression Scope for
Totals, Aggregates, and Built-in Collections (Report Builder and SSRS).
For more information about recursive aggregates, see Creating Recursive Hierarchy Groups (Report Builder and
SSRS).
Example
The following table shows examples of SqlGeometr y expressions and Union result expression, shown in WKT
(Well Known Text) format for spatial data.
POINT(3 4)
LINESTRING(5 6, 7 8)
=Union(Fields!PointLocation.Value)
=Union(Fields!PathDefinition.Value)
=Union(Fields!PolygonDefinition.Value, "Group1")
See Also
Expression Uses in Reports (Report Builder and SSRS)
Expression Examples (Report Builder and SSRS)
Data Types in Expressions (Report Builder and SSRS)
Expression Scope for Totals, Aggregates, and Built-in Collections (Report Builder and SSRS)
Report Builder Functions - Var Function
3/5/2021 • 2 minutes to read • Edit Online
Returns the variance of all non-null numeric values specified by the expression, evaluated in the given scope.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
Syntax
Var(expression, scope, recursive)
Parameters
expression
(Integer or Float ) The expression on which to perform the aggregation.
scope
(String ) Optional. A constant that is the name of a dataset, group, or data region that contains the report items
to which to apply the aggregate function. If scope is not specified, the current scope is used.
recursive
(Enumerated Type ) Optional. Simple (default) or RdlRecursive . Specifies whether to perform the
aggregation recursively.
Return Type
Returns a Decimal for decimal expressions and a Double for all other expressions.
Remarks
The set of data specified in the expression must have the same data type. To convert data that has multiple
numeric data types to the same data type, use conversion functions like CInt , CDbl or CDec . For more
information, see Type Conversion Functions.
The value of scope must be a string constant and cannot be an expression. For outer aggregates or aggregates
that do not specify other aggregates, scope must refer to the current scope or a containing scope. For
aggregates of aggregates, nested aggregates can specify a child scope.
Expression can contain calls to nested aggregate functions with the following exceptions and conditions:
Scope for nested aggregates must be the same as, or contained by, the scope of the outer aggregate. For
all distinct scopes in the expression, one scope must be in a child relationship to all other scopes.
Scope for nested aggregates cannot be the name of a dataset.
Expression must not contain First , Last , Previous , or RunningValue functions.
Expression must not contain nested aggregates that specify recursive.
For more information, see Aggregate Functions Reference (Report Builder and SSRS) and Expression Scope for
Totals, Aggregates, and Built-in Collections (Report Builder and SSRS).
For more information about recursive aggregates, see Creating Recursive Hierarchy Groups (Report Builder and
SSRS).
Example
The following code example provides the variance of line item totals in the Order group or data region:
=Var(Fields!LineTotal.Value, "Order")
See Also
Expression Uses in Reports (Report Builder and SSRS)
Expression Examples (Report Builder and SSRS)
Data Types in Expressions (Report Builder and SSRS)
Expression Scope for Totals, Aggregates, and Built-in Collections (Report Builder and SSRS)
Report Builder Functions - VarP Function
3/5/2021 • 2 minutes to read • Edit Online
Returns the population variance of all non-null numeric values specified by the expression, evaluated in the
context of the given scope.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
Syntax
VarP(expression, scope, recursive)
Parameters
expression
(Integer or Float ) The expression on which to perform the aggregation.
scope
(String ) Optional. The name of a dataset, group, or data region that contains the report items to which to apply
the aggregate function. If scope is not specified, the current scope is used.
recursive
(Enumerated Type ) Optional. Simple (default) or RdlRecursive . Specifies whether to perform the
aggregation recursively.
Return Type
Returns a Decimal for decimal expressions and a Double for all other expressions.
Remarks
The set of data specified in the expression must have the same data type. To convert data that has multiple
numeric data types to the same data type, use conversion functions like CInt , CDbl or CDec . For more
information, see Type Conversion Functions.
The value of scope must be a string constant and cannot be an expression. For outer aggregates or aggregates
that do not specify other aggregates, scope must refer to the current scope or a containing scope. For
aggregates of aggregates, nested aggregates can specify a child scope.
Expression can contain calls to nested aggregate functions with the following exceptions and conditions:
Scope for nested aggregates must be the same as, or contained by, the scope of the outer aggregate. For
all distinct scopes in the expression, one scope must be in a child relationship to all other scopes.
Scope for nested aggregates cannot be the name of a dataset.
Expression must not contain First , Last , Previous , or RunningValue functions.
Expression must not contain nested aggregates that specify recursive.
For more information, see Aggregate Functions Reference (Report Builder and SSRS) and Expression Scope for
Totals, Aggregates, and Built-in Collections (Report Builder and SSRS).
For more information about recursive aggregates, see Creating Recursive Hierarchy Groups (Report Builder and
SSRS).
Example
The following code example provides a population variance of line item totals in the Order group or data
region.
=VarP(Fields!LineTotal.Value, "Order")
See Also
Expression Uses in Reports (Report Builder and SSRS)
Expression Examples (Report Builder and SSRS)
Data Types in Expressions (Report Builder and SSRS)
Expression Scope for Totals, Aggregates, and Built-in Collections (Report Builder and SSRS)
Data Types in Expressions (Report Builder and
SSRS)
3/5/2021 • 8 minutes to read • Edit Online
Data types represent different kinds of data so that it can be stored and processed efficiently. Typical data types
include text (also known as strings), numbers with and without decimal places, dates and times, and images.
Values in a report must be an Report Definition Language (RDL) data type. You can format a value according to
your preference when you display it in a report. For example, a field that represents currency is stored in the
report definition as a floating point number, but can be displayed in a variety of formats depending on the
format property you choose.
For more information about display formats, see Formatting Report Items (Report Builder and SSRS).
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
RDL T Y P E C L R T Y P ES
DateTimeOffset
Single, Decimal
T Y P E O F C O N VERSIO N EXA M P L E
-- or --
=Year(Fields!TimeinDateTimeFormat.Value)
You can also use the Format function to control the display format for value. For more information, see
Functions (Visual Basic).
Advanced Examples
When you connect to a data source with a data provider that does not provide conversion support for all the
data types on the data source, the default data type for unsupported data source types is String. The following
examples provide solutions to specific data types that are returned as a string.
Concatenating a String and a CLR DateTimeOffset Data Type
For most data types, the CLR provides default conversions so that you can concatenate values that are different
data types into one string by using the & operator. For example, the following expression concatenates the text
"The date and time are: " with a dataset field StartDate, which is a DateTime value:
="The date and time are: " & Fields!StartDate.Value .
For some data types, you may need to include the ToString function. For example, the following expression
shows the same example using the CLR data type DateTimeOffset, which include the date, the time, and a time-
zone offset relative to the UTC time zone: ="The time is: " & Fields!StartDate.Value.ToString() .
Converting a String Data Type to a CLR DateTime Data Type
If a data processing extension does not support all data types defined on a data source, the data may be
retrieved as text. For example, a datetimeoffset(7) data type value may be retrieved as a String data type. In
Perth, Australia, the string value for July 1, 2008, at 6:05:07.9999999 A.M. would resemble:
2008-07-01 06:05:07.9999999 +08:00
This example shows the date (July 1, 2008), followed by the time to a 7-digit precision (6:05:07.9999999 A.M.),
followed by a UTC time zone offset in hours and minutes (plus 8 hours, 0 minutes). For the following examples,
this value has been placed in a String field called MyDateTime.Value .
You can use one of the following strategies to convert this data to one or more CLR values:
In a text box, use an expression to extract parts of the string. For example:
The following expression extracts just the hour part of the UTC time zone offset and converts it to
minutes: =CInt(Fields!MyDateTime.Value.Substring(Fields!MyDateTime.Value.Length-5,2)) * 60
The result is 480 .
The following expression converts the string to a date and time value:
=DateTime.Parse(Fields!MyDateTime.Value)
If the MyDateTime.Value string has a UTC offset, the DateTime.Parse function first adjusts for the
UTC offset (7 A.M. - [ +08:00 ] to the UTC time of 11 P.M. the night before). The DateTime.Parse
function then applies the local report server UTC offset and, if necessary, adjusts the time again for
Daylight Saving Time. For example, in Redmond, Washington, the local time offset adjusted for
Daylight Saving Time is [-07:00] , or 7 hours earlier than 11 PM. The result is the following
DateTime value: 2007-07-06 04:07:07 PM (July 6, 2007 at 4:07 P.M).
For more information about converting strings to DateTime data types, see Parsing Date and Time Strings,
Formatting Date and Time for a Specific Culture, and Choosing Between DateTime, DateTimeOffset, and
TimeZoneInfo on MSDN.
Add a new calculated field to the report dataset that uses an expression to extract parts of the string. For
more information, see Add, Edit, Refresh Fields in the Report Data Pane (Report Builder and SSRS).
Change the report dataset query to use Transact-SQL functions to extract the date and time values
independently to create separate columns. The following example shows how to use the function
DatePar t to add a column for the year and a column for the UTC time zone converted to minutes:
SELECT
MyDateTime,
FROM MyDates
The result set has three columns. The first column is the date and time, the second column is the year, and
the third column is the UTC offset in minutes. The following row shows example data:
2008-07-01 06:05:07 2008 480
For more information about SQL Server database data types, see Data Types (Transact-SQL), and Date and Time
Data Types and Functions (Transact-SQL).
For more information about SQL Server Analysis Services data types, see Data Types in Analysis Services.
See Also
Formatting Report Items (Report Builder and SSRS)
Constants in Expressions (Report Builder and SSRS)
11/2/2020 • 2 minutes to read • Edit Online
A constant consists of literal text or predefined text. The report processor has access to predefined constants so
that when you include them in an expression, the values they represent are substituted in the expression before
it is evaluated.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
Literal Text
In an expression, literal text is text that is in double quotation marks. You can also type text directly into a text box
without double quotation marks if it is not part of an expression. If the text box value does not begin with an
equal sign (=), the text is treated as literal text. The following table shows several examples of literal text in an
expression.
RDL Constants
You can use constants defined in Report Definition Language (RDL) in an expression. In the Expression dialog
box, constants appear when you create an expression for a report property that only accepts certain valid
values, also known as enumerated types. The following table shows two examples.
TextAlign Valid values for aligning text in a text General, Left, Center, Right
box.
BorderStyle Valid values for a line added to a Default, None, Dotted, Dashed, Solid,
report. Double, DashDot, DashDotdot
See Also
Expression Dialog Box
Expressions (Report Builder and SSRS)
Expression Examples (Report Builder and SSRS)
Data Types in Expressions (Report Builder and SSRS)
Expression Dialog Box (Report Builder)
Operators in Expressions (Report Builder and SSRS)
11/2/2020 • 2 minutes to read • Edit Online
An operator is a symbol that represents actions applied to one or more terms in an expression. The following
categories of operators are supported in an expression: arithmetic, comparison, concatenation, logical or bitwise,
and bit shift.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
Arithmetic
Arithmetic operators perform mathematical operations on two numeric terms in an expression.
Comparison
Comparison operators test whether two expressions are the same.
= Equal to.
[^]: Any single character not within the specified range (for
example, [^a-f]) or set (for example, [^aeiou])
String Concatenation
String concatenation appends the second string to the first string in an expression. For other string operations,
use built-in functions.
Bit Shift
Bitwise operators perform bit manipulations between two integer terms in an expression.
See Also
Expression Dialog Box
Expressions (Report Builder and SSRS)
Expression Examples (Report Builder and SSRS)
Data Types in Expressions (Report Builder and SSRS)
Expression Dialog Box (Report Builder)
Built-in Collections in Expressions (Report Builder)
11/2/2020 • 2 minutes to read • Edit Online
In an expression in a report, you can include references to the following built-in collections: ReportItems,
Parameters, Fields, DataSets, DataSources, Variables, and built-in fields for global information such as the report
name. Not all collections appear in the Expression dialog box. The DataSets and DataSources collections are
available only at run-time for published reports on a report server. The ReportItems collection is a collection of
text boxes in a report region, for example, the text boxes on a page or in a page header.
For more information, see Expressions (Report Builder and SSRS).
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
C AT EGO RY IN T H E
B UILT - IN C O L L EC T IO N EXP RESSIO N DIA LO G B O X EXA M P L E DESC RIP T IO N
SY N TA X EXA M P L E
Collection!ObjectName.Property =Fields!Sales.Value
Collection!ObjectName("Property") =Fields!Sales("Value")
Collection("ObjectName").Property =Fields("Sales").Value
Collection("Member") =User("Language")
Collection.Member =User.Language
See Also
Add an Expression (Report Builder and SSRS)
Expression Examples (Report Builder and SSRS)
Built-in Collections - Built-in Globals and Users
References (Report Builder)
11/2/2020 • 5 minutes to read • Edit Online
The Built-in fields collection, which includes both the Globals and the User collections, represent global values
provided by Reporting Services when a report is processed. The Globals collection provides values such as the
name of the report, the time when report processing began, and current page numbers for the report header or
footer. The User collection provides the user identifier and language settings. These values can be used in
expressions to filter results in a report.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
Members of the Globals collection return a variant. If you want to use a member of this collection in an
expression that requires a specific data type, you must first cast the variable. For example, to convert the
execution time variant into a Date format, use =CDate(Globals!ExecutionTime) . For more information, see Data
Types in Expressions (Report Builder and SSRS).
RenderFormat
The following table describes the members for RenderFormat .
M EM B ER TYPE DESC RIP T IO N
Examples
The following examples show how to use a reference to the Globals collection in an expression:
This expression, placed in a text box in the footer of a report, provides the page number and total pages
in the report:
=Globals.PageNumber & " of " & Globals.TotalPages
This expression provides the name of the report and the time it was run. The time is formatted with the
Microsoft .NET Framework formatting string for short date:
=Globals.ReportName & ", dated " & Format(Globals.ExecutionTime, "d")
This expression, placed in the Column Visibility dialog box for a selected column, displays the column
only when the report is exported to Excel. Otherwise, the column is hidden.
EXCELOPENXML refers to the format of Excel that is included in Office 2007. EXCEL refers to the format of
Excel that is included in Office 2003.
=IIF(Globals!RenderFormat.Name = "EXCELOPENXML" OR Globals!RenderFormat.Name = "EXCEL", false, true)
NOTE
While you can change the language settings of a report, you must be careful about any display issues this may cause. For
example, changing the locale setting of the report can change the date format in the report, but it can also change the
currency format. Unless there is a conversion process for the currency, this may cause the incorrect currency symbol to be
displayed in the report. To avoid this, set the language information about the individual items that you want to change, or
set the item with the currency data to a specific language.
See Also
Expressions (Report Builder and SSRS)
Expression Dialog Box (Report Builder)
Data Types in Expressions (Report Builder and SSRS)
Formatting Numbers and Dates (Report Builder and SSRS)
Expression Examples (Report Builder and SSRS)
Built-in Collections - Parameters Collection
References (Report Builder)
11/2/2020 • 3 minutes to read • Edit Online
Report parameters are one of the built-in collections you can reference from an expression. By including
parameters in an expression, you can customize report data and appearance based on choices a user makes.
Expressions can be used for any report item property or text box property that provides the (Fx) or
<Expression > option. Expressions are also used to control report content and appearance in other ways. For
more information, see Expression Examples (Report Builder and SSRS).
When you compare parameter values with dataset field values at run time, the data types for the two items you
are comparing must be the same. Report parameters can be one of the following types: Boolean, DateTime,
Integer, Float, or Text, which represents the underlying data type String. If necessary, you might have to convert
the data type of the parameter value to match the dataset value. For more information, see Data Types in
Expressions (Report Builder and SSRS).
In order to include a parameter reference in an expression, you must understand how to specify the correct
syntax for the parameter reference, which varies depending on whether the parameter is a single-value or
multivalue parameter.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
=Parameters! <ParameterName> .Count Returns the integer value 1. For a single-value parameter,
the count is always 1.
=Parameters! <ParameterName> .Label Returns the parameter label, frequently used as the display
name in a drop-down list of available values.
=Parameters! <ParameterName> .Value Returns the parameter value. If the Label property has not
been set, this value appears in the drop-down list of
available values.
=Fields(Parameters! <ParameterName> Returns the value for the field that has the same name as
.Value).Value the parameter.
For more information about using parameters in a filter, see Add Dataset Filters, Data Region Filters, and Group
Filters (Report Builder and SSRS).
For more information about using parameters in a filter, see Report Parameters (Report Builder and Report
Designer).
See Also
Expressions (Report Builder and SSRS)
Commonly Used Filters (Report Builder and SSRS)
Add, Change, or Delete a Report Parameter (Report Builder and SSRS)
Tutorial: Add a Parameter to Your Report (Report Builder)
Report Builder Tutorials
Built-in Collections in Expressions (Report Builder and SSRS)
Built-in Collections - Dataset Fields Collection
References (Report Builder)
5/20/2020 • 5 minutes to read • Edit Online
Each dataset in a report contains one Fields collection. The Fields collection is the set of fields specified by the
dataset query plus any additional calculated fields that you create. After you create a dataset, the field collection
appears in the Repor t Data pane.
A simple field reference in an expression displays on the design surface as a simple expression. For example,
when you drag the field Sales from the Report Data pane to a table cell on the design surface, [Sales] is
displayed. This represents the underlying expression =Fields!Sales.Value that is set on the text box Value
property. When the report runs, the report processor evaluates this expression and displays the actual data from
the data source in the text box in the table cell. For more, see Expressions (Report Builder and SSRS) and Dataset
Fields Collection (Report Builder and SSRS).
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
When you use the Expression dialog box to define a simple field reference, you can select the Fields collection
in the Category pane and see the list of available fields in the Field pane. Each field has several properties,
including Value and IsMissing. The remaining properties are predefined extended field properties that may be
available to the dataset depending on the data source type.
Detecting Nulls for a Dataset Field
To detect a field value that is null (Nothing in Visual Basic), you can use the function IsNothing . When placed in
a text box in a table details row, the following expression tests the field MiddleName and substitutes the text "No
Middle Name" when the value is null, and the field value itself when the value is not null:
=IIF(IsNothing(Fields!MiddleName.Value),"No Middle Name",Fields!MiddleName.Value)
NOTE
IsMissing detects changes in the dataset schema between design time and run time for any type of data source. IsMissing
cannot be used to detect empty members in a multidimensional cube and is not related to the MDX query language
concepts of EMPTY and NON EMPTY .
You can test the IsMissing property in custom code to determine if a field is present in the result set. You cannot
test for its presence using an expression with a Visual Basic function call such as IIF or SWITCH , because Visual
Basic evaluates all parameters in the call to the function, which results in an error when the reference to the
missing is evaluated.
Example for Controlling the Visibility of a Dynamic Column for a Missing Field
To set an expression that controls the visibility of a column that displays a field in a dataset, you must first define
a custom code function that returns a Boolean value based on whether the field is missing. For example, the
following custom code function returns true if the field is missing and false if the field exists.
To use this function to control visibility of a column, set the Hidden property of the column to the following
expression:
=Code.IsFieldMissing(Fields!FieldName)
To use this function in a text box, add the following expression to the Value property:
=Code.IsFieldMissingThenString(Fields!FieldName,"Missing")
The text box displays either the field value or the text that you specified.
Using Extended Field Properties
Extended field properties are additional properties defined on a field by the data processing extension, which is
determined by the data source type for the dataset. Extended field properties are predefined or specific to a data
source type. For more information, see Extended Field Properties for an Analysis Services Database (SSRS).
If you specify a property that is not supported for that field, the expression evaluates to null (Nothing in Visual
Basic). If a data provider does not support extended field properties, or if the field is not found when the query is
executed, the value for the property is null (Nothing in Visual Basic) for properties of type String and Object ,
and zero (0) for properties of type Integer . A data processing extension may take advantage of predefined
properties by optimizing queries that include this syntax.
See Also
Expression Examples (Report Builder and SSRS)
Report Datasets (SSRS)
Built-in Collections - DataSources and DataSets
References (Report Builder)
11/2/2020 • 2 minutes to read • Edit Online
The DataSources collection represents all the data sources used in a report. Similarly, the DataSets collection
represents all the datasets for all the data sources in a report. Use the Repor t Data pane for a hierarchical view
of report datasets organized under the data source they reference. If you include references to these collections,
you will not see values when previewing your report. These collections are only available after the report has
been published to a report server.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
DataSources
The DataSources collection represents the data sources referenced in a published report definition. You may
choose to include this information in your report to document the source of the report data. This collection is
not available in Preview mode. The following table describes the variables within the DataSources collection.
/DataSources/AdventureWorks2012 .
DataSets
The DataSets collection represents the datasets referenced in a report definition. You may choose to include the
query in the report in a text box, so a user interested in exactly which data is in the report can see the original
command text. This collection is not available in Preview mode. The following table describes the members of
the DataSets collection.
See Also
Expressions (Report Builder and SSRS)
Expression Examples (Report Builder and SSRS)
Built-in Collections - Report and Group Variables
References (Report Builder)
5/20/2020 • 3 minutes to read • Edit Online
When you have a complex calculation that is used more than once in expressions in a report, you might want to
create a variable. You can create a report variable or a group variable. Variable names must be unique in a
report.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
Report Variables
Use a report variable to hold a value for time-dependent calculations, such as currency rates or time stamps, or
for a complex calculation that is referenced multiple times. By default, a report variable is calculated once and
can be used in expressions throughout a report. Report variables are read-only by default. You can change the
default to enable a report variable as read-write. The value in a report variable is preserved throughout a
session, until the report is processed again.
To add a report variable, open the Repor tProper ties dialog box, click Variables , and provide a name and a
value. Names are case-sensitive strings that begin with a letter and have no spaces. A name can include letters,
numbers, or underscores (_).
To refer to the variable in an expression, use the global collection syntax, for example,
=Variables!CustomTimeStamp.Value . On the design surface, the value appears in a text box as <<Expr>> .
You can use report variables in the following ways:
Read-only use Set a value once to create a constant for the report session, for example, to create a time
stamp.
Because expressions in text boxes are evaluated on-demand as a user pages through a report, dynamic
values (for example, an expression that includes the Now() function, which returns the time of day) can
return different values if you page forward and backward by using the Back button. By setting a the
value of a report variable to the expression =Now() , and then adding the variable to your expression, you
ensure the same value is used throughout report processing.
Read-write use Set a value once and serialize the value within a report session. The read-write option
for variables provides a better alternative than using a static variable in the Code block in the report
definition.
When you clear the Read-Only option for a variable, the Writable property for the variable is set to true .
To update the value from an expression, use the SetValue method, for example,
=Variables!MyVariable.SetValue("123") .
NOTE
You cannot control when the report processor initializes a variable or evaluates an expression that updates a
variable. The order of execution for variable initialization is undefined.
For more information about sessions, see Previewing Reports in Report Builder.
Group Variables
Use a group variable to calculate a complex expression once in the scope of a group. A group variable is valid
only in the scope of the group and its child groups.
For example, suppose a data region displays inventory data for items that are in different tax categories and you
want to apply different tax rates for each category. You would group the data on Category and define a Tax
variable on the parent group. Then you would define a group variable for ItemTax for each tax category and
assign each of the different Category subgroups to the correct group variable. For example:
For the parent group based on [Category] , define the variable Tax with a value [Tax] . Assume the
category values are Food and Clothing.
For the child group based on , define the variable ItemsTax as
[Subcategory]
=Variables!Tax.Value * Sum(Fields!Price.Value) . Assume the subcategory values for the category Food
are Beverages and Bread. Assume the subcategory values for Clothing are Shirts and Hats.
For a text box in a row in the child group, add the expression =Variables!ItemsTax.Value .
The text box displays the total tax for Beverages and Bread using the Food tax and for Shirts and Hats
using the Clothing tax.
To add a group variable, open the Tablix Group Proper ties dialog box, click Variables , and provide a name
and a value. The group variable is calculated once per unique group value.
To refer to the variable in an expression, use the global collection syntax, for example,
=Variables!GroupDescription.Value . On the design surface, the value appears in a text box as <<Expr>> .
See Also
Filter, Group, and Sort Data (Report Builder and SSRS)
Built-in Collections in Expressions (Report Builder and SSRS)
Expression Examples (Report Builder and SSRS)
Built-in Collections - ReportItems Collection
References (Report Builder)
11/2/2020 • 2 minutes to read • Edit Online
The Repor tItems built-in collection is the set of text boxes from report items such as rows of a data region or
text boxes on the report design surface. The Repor tItems collection includes text boxes that are in the current
scope of a page header, page footer, or report body. This collection is determined at run time by the report
processor and the report renderer. The current scope changes as the report processor successively combines
report data and the report item layout elements as the user views pages of a report. You can use the
Repor tItems built-in collection to produce dictionary-style page headers that show the first and last items on
each page.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
This expression, placed in a Repor tItem text box Color property, displays the text in black when the value
is > 0; otherwise, the value is displayed in red:
=IIF(Me.Value > 0,"Black","Red")
This expression, placed in a text box in the page header or page footer, displays the first value per page of
the rendered report, for a text box named LastName :
=First(ReportItems("LastName").Value)
In a page header or page footer section, only text boxes on the current page are available as a member of the
Repor tItems collection. For example, if ReportItems!textboxLastName.Value refers to a text box that only
appears on the first page for a multipage data region, you see a value for the first page, but all other pages
display #Error to show the expression could not be evaluated as written.
See Also
Built-in Collections in Expressions (Report Builder and SSRS)
Expression Examples (Report Builder and SSRS)
Pagination in Reporting Services (Report Builder and SSRS)
Filter, Group, and Sort Data (Report Builder and SSRS)
Interactive Sort, Document Maps, and Links (Report
Builder and SSRS)
11/2/2020 • 2 minutes to read • Edit Online
In Web-based environments, you can add a number of features that let your users interact with reports. Your
users can change the sort order of values in your report, show or hide items in the report, or click links that go
to other reports or Web pages. You can also add a table of contents or document map. Your report users can
click items in the table of contents or document map to jump to areas within a report.
Report Builder and Report Designer support three types of links with the following actions:
Bookmark links Jump to other areas within the report.
Hyperlinks Jump to URLs that specify the address of Web pages or reports on a report server by using
URL access.
Drillthrough repor t links Jump to other reports on the same report server. For more information, see
Drillthrough Reports (Report Builder and SSRS).
NOTE
Links that are bound to dataset fields can be vulnerable to tampering for malicious purposes. For more information, see
Secure Reports and Resources.
You can also let your users control report display and content by designing expressions that include parameter
references for sort, filter, and visibility. For more information, see Report Parameters (Report Builder and Report
Designer), Filter, Group, and Sort Data (Report Builder and SSRS), and Add Dataset Filters, Data Region Filters,
and Group Filters (Report Builder and SSRS).
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
In This Section
Interactive Sort (Report Builder and SSRS)
Explains how to add interactive sort buttons to column headers.
Create a Document Map (Report Builder and SSRS)
Explains how to add a table of contents to support navigation in a large report.
Add a Bookmark to a Report (Report Builder and SSRS)
Explains how to add bookmarks to create links within a report.
Add a Hyperlink to a URL (Report Builder and SSRS)
Explains how to add a link from your report to a URL
See Also
Drillthrough, Drilldown, Subreports, and Nested Data Regions (Report Builder and SSRS)
Interactive Sort (Report Builder and SSRS)
5/20/2020 • 3 minutes to read • Edit Online
You can add interactive sort buttons to enable a user to toggle between ascending and descending order for
rows in a table or for rows and columns in a matrix. The most common use of interactive sort is to add a sort
button to every column header. The user can then choose which column to sort by.
However, you can add an interactive sort button to any text box, not just column headers. For example, for a text
box in a row outside a row group, you can specify a sort for the parent group rows or columns, for child group
rows or columns, or for the detail rows or columns. You can also combine fields into a single group expression,
and then sort by multiple fields.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
When you add an interactive sort, you must specify the following items:
What to sor t: Rows or columns?
What to sor t by: A field that is displayed in a table column? A field that is not displayed?
What context to sor t in: For example, you can sort on rows associated with row groups; columns
associated with column groups; detail rows; child groups within a parent group; or parent and child
group together.
Which text box to add the sor t button to: In the column header or in the group row header?
Whether to synchronize the sor t for multiple data regions: You can design a report so that when
the user toggles the sort order, other data regions with the same ancestor also sort.
For step-by-step instructions, see Add Interactive Sort to a Table or Matrix (Report Builder and SSRS).
The following table summarizes the effects you can achieve by using interactive sort buttons.
W H ERE TO A DD T H E
A C T IO N W H AT TO SO RT SO RT B UT TO N W H AT TO SO RT O N SO RT SC O P E
Sort detail rows for a Details Column header Dataset field bound Data region
table with no groups to this column
Sort top-level group Groups Column header Group expression for Data region
instances for a matrix parent group
Sort detail rows for a Details Child group header Dataset field to sort Child group
child group in a table row by
Sort rows for Groups, but you Column header Aggregate of dataset Data region
multiple row groups must redefine the field to sort by
and detail rows in a group expression
table
W H ERE TO A DD T H E
A C T IO N W H AT TO SO RT SO RT B UT TO N W H AT TO SO RT O N SO RT SC O P E
The report processor applies interactive sort after all data region and group sort expressions are applied. For
more information, see Filter, Group, and Sort Data (Report Builder and SSRS).
See Also
Sort Data in a Data Region (Report Builder and SSRS)
Filter, Group, and Sort Data (Report Builder and SSRS)
Add Interactive Sort to a Table or Matrix (Report Builder and SSRS)
Add Interactive Sort to a Table or Matrix (Report
Builder and SSRS)
11/2/2020 • 10 minutes to read • Edit Online
Add interactive sort buttons to enable users to change the sort order of rows and columns in tables and
matrices. This feature is supported only in rendering formats that support user interaction, such as HTML.
When you create an interactive sort button, you must specify what to sort, what to sort by, and the scope to
which to apply the sort. For example, you can sort detail rows by customer last name, subcategory group values
within a category group by sales, or category and subcategory group values combined by totals.
When you view the report, columns that support interactive sorting have arrow icons that change to indicate
the sort order. The first time you click an interactive sort button, items are sorted in ascending order. Subsequent
clicks toggle the sort order between ascending and descending order.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
In this Article
Sorting Detail Rows for a Table with No Groups
Sorting a Top Level Parent Row Group for a Table or Matrix
Sorting Child Groups or Detail Rows for a Group
Sorting Rows Based on a Complex Group Expression
Synchronizing Sort Order for Multiple Data Regions
6. Click OK .
7. Repeat steps 1-6 for every column to which you want to add an interactive sort button.
To verify the sort action, click Run to preview the report, and then click the interactive sort buttons.
Back to Top
NOTE
For complex group expressions, manually set the Sor t by expression to the same value as the group expression.
6. Click OK .
To verify the sort action, click Run to preview the report, and then click the interactive sort buttons.
Back to Top
8. Click OK .
You have now defined the group. Next, drag the fields to display to the tablix body area of the matrix. Add
the fields that you chose to group by in step 7 to the tablix body area, each in its own column.
For this scenario, the first column in the tablix row groups area is not needed. To delete the column, right-
click the column header, and then click Delete Columns . A dialog box asks whether to delete the
associated groups. Click No . The row group area is deleted and only the tablix body area remains.
Next, you will remove the default column group.
9. In the Column Groups pane, right-click the default column group, and then click Delete Group . A dialog
box asks whether to delete the group and related rows and columns or the group only. Click Delete
group only . The column group is deleted, and the column group area is deleted. Only the tablix body
area remains.
Next, you will add an interactive sort button to the text box that spans the matrix.
10. Click in the text box in the first row and then click Text Box Proper ties .
11. Click Interactive Sor ting .
12. Select Enable interactive sor ting on this text box .
13. In Choose what to sor t , click Groups .
14. From the drop-down list, select the name of the group you created in step 5. The group expression is
automatically copied to the Sor t by text box.
15. Click OK .
You have added the sort button to the text box.
16. (Optional) You can suppress duplicate values in the columns that display group values. On the report
design surface, click the text box that displays the value for which you want to hide repeating values. In
the Properties pane, scroll to HideDuplicates , and from the drop-down list, select the name of the
dataset that is linked to this matrix.
To verify the sort action, click Run to preview the report, and then click the interactive sort button. The matrix
sorts by the combined values of the group expression, although each individual value displays in its own
column.
Back to Top
See Also
Filter, Group, and Sort Data (Report Builder and SSRS)
Interactive Sort (Report Builder and SSRS)
Sort Data in a Data Region (Report Builder and SSRS)
Exploring the Flexibility of a Tablix Data Region (Report Builder and SSRS)
Add a Hyperlink to a URL (Report Builder and
SSRS)
11/2/2020 • 3 minutes to read • Edit Online
Learn how to add hyperlink actions to text boxes, images, charts, and gauges in Reporting Services paginated
reports. Links can go to other reports, to bookmarks in a report, or to static or dynamic URLs.
You can add a hyperlink action to any item that has an Action property, for example, a text box, an image, or a
calculated series in a chart. When the user clicks that report item, the action that you define takes place.
You can add a hyperlink that will open a browser with a URL that you specify. The hyperlink can be
a static URL or an expression that evaluates to a URL. If you have a field in a database that contains URLs,
the expression can contain that field, resulting in a dynamic list of hyperlinks in the report. Make sure
your report readers have access to the URL that you provide.
You can also specify URLs to create drillthroughs to reports on any report server that you and your
users have permission to view using URL requests to the report server. For example, you can specify a
report and hide the document map for the user when they first view the report. For more information,
see URL Access (SSRS) and Specifying Paths to External Items (Report Builder and SSRS).
And you can add a bookmark to a specific place in the same report.
Try adding hyperlinks with sample data in Tutorial: Format Text (Report Builder).
NOTE
Links that are bound to dataset fields can be vulnerable to tampering for malicious purposes. For more information, see
Secure Reports and Resources.
See Also
Interactive Sort, Document Maps, and Links (Report Builder and SSRS)
Create a Document Map (Report Builder and SSRS)
Add a Bookmark to a Report (Report Builder and
SSRS)
11/2/2020 • 2 minutes to read • Edit Online
Add bookmarks and bookmark links to a report when you want to provide a customized table of contents or to
provide customized internal navigation links in the report. Typically, you add bookmarks to locations in the
report to which you want to direct users, such as to each table or chart or to the unique group values displayed
in a table or matrix. You can create your own strings to use as bookmarks, or, for groups, you can set the
bookmark to the group expression.
After you create bookmarks, you can add report items that the user can click to go to each bookmark. These
items are typically text boxes or images.
For example, if your report displays a table grouped by color, you would add a bookmark based on the group
expression to the group header. Then you would add a table with a single text box at the beginning of the report
that displayed the color values, and set the bookmark link on that text box. When you click the color, the report
jumps to the page that displays the group header row for that color.
You can add a bookmark to any report item and add a bookmark link to any item that has an Action property,
for example, a text box, an image, or a calculated series in a chart. For more information, see the Action
Properties Dialog Box (Report Builder and SSRS).
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
To add a bookmark
1. In report design view, select the text box, image, chart, or other report item to which you want to add a
bookmark. The properties for the selected item appear in the Properties pane.
2. In the text box next to Bookmark , type a string that is the label for this bookmark. For example, you
could type BikePhoto as the bookmark for an image in your report. Alternatively, click the Expression
(fx ) button to open the Expression dialog box to specify an expression that evaluates to a label. For a
group, the expression you type should be the group expression.
NOTE
The bookmark can be any string, but it must be unique in the report. If the bookmark is not unique, a link to the
bookmark finds the first matching bookmark.
See Also
Interactive Sort, Document Maps, and Links (Report Builder and SSRS)
Expressions (Report Builder and SSRS)
Filter, Group, and Sort Data (Report Builder and SSRS)
Create a Document Map (Report Builder and SSRS)
3/5/2021 • 4 minutes to read • Edit Online
A document map provides a set of navigational links to report items in a rendered report. When you view a
report that includes a document map, a separate side pane appears next to the report. A user can click links in
the document map to jump to the report page that displays that item. Report sections and groups are arranged
in a hierarchy of links. Clicking items in the document map refreshes the report and displays the area of the
report that corresponds to the item in the document map.
To add links to the document map, you set the DocumentMapLabel property of the report item to text that
you create or to an expression that evaluates to the text that you want display in the document map. You can
also add the unique values for a table or matrix group to the document map. For example, for a group based on
color, each unique color is a link to the report page that displays the group instance for that color.
You can also create a URL to a report that overrides the display of the document map, so that you can run the
report without displaying the document map, and then click the Show/Hide Document Map button on the
report viewer toolbar to toggle the display.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
NOTE
To select a tablix data region, click in any cell to display the row and column handles, and then click the corner
handle.
2. In the Properties pane, type the text that you want to appear in the document map in the
DocumentMapLabel property, or enter an expression that evaluates to a label. For example, type Sales
Char t .
NOTE
If you do not see the Properties pane, on the View tab, in the Show/Hide group, select Proper ties .
3. Repeat steps 1 and 2 for every report item that you want to appear in the document map.
4. Click Run . The report runs and the document map displays the labels you created. Click any link to jump
to the report page with that item.
https://localhost/Reports/Pages/Report.aspx?
ItemPath=%2fAdventureWorks2012+Sample+Reports%2fProduct+Catalog
2. Copy the report path on the server. In the example, the report path is
%2fAdventureWorks2012+Sample+Reports%2fProduct+Catalog .
The device information parameters that specify hiding the document map:
&rs%3aCommand=Render&rc%3aFormat=HTML4.0&rc%3aDocMap=False
The following URL consists of these three components appended in the order they are listed.
https://localhost/ReportServer/Pages/ReportViewer.aspx?
%2fAdventureWorks2012+Sample+Reports%2fProduct+Catalog
&rs%3aCommand=Render&rc%3aFormat=HTML4.0&rc%3aDocMap=False
NOTE
For more information about downloading sample reports, see Report Builder and Report Designer sample reports.
For more information, see URL Access.
Read about Reporting Services rendering extensions for paginated reports so you're sure your report looks the
way you want, including page layout, page breaks, and paper size.
When you view reports in a Reporting Services report server or the preview pane of Report Builder or Report
Designer, the report is first rendered by the HTML renderer. You can then export the report to different formats
such as Excel or comma-delimited (CSV) files. The exported report can then be used for further analysis in Excel
or as a data source for applications that can import and use CSV files.
Reporting Services includes a set of renderers for exporting reports to different formats. Each renderer applies
rules when rendering reports. When you export a report to a different file format, especially for renderers such
as the Adobe Acrobat (PDF) renderer that uses pagination based on the physical page size, you might need to
change the layout of your report to have the exported report look and print correctly after the rendering rules
are applied.
Getting the best results for exported reports is often an iterative process; you author and preview the report in
Report Builder or Report Designer, export the report to the preferred format, review the exported report, and
then make changes to the report.
Report Items
Report items are layout elements that are associated with different types of report data.
Table, Matrix, List, Chart, and Gauge are data region report items that each link to a report dataset. When the
report is processed, the data region expands across and down the report page to display data.
Other report items link to and display a single item.
An Image report item links to a picture.
A Text Box report item contains either simple text like a title or an expression that can include references to
built-in fields, report parameters, or dataset fields.
The Line and Rectangle report items provide simple graphical elements on the report page. The Rectangle
can also be a container for other report items.
A report can also contain subreports.
Page Layout
With Reporting Services, you can place report items anywhere on the design surface. You can interactively
position, expand, and contract the initial shape of the report item using snap lines and resizing handles. You can
place data regions with different sets of data, or even the same data in different formats, side-by-side. When you
place a report item on the design surface, it has a default size and shape and an initial relationship to all other
report items.
You can place report items inside other report items to create more complex report designs. For example, charts
or images in table cells, tables in table cells, and multiple images in a rectangle. In addition to providing the
organization and look you want in the report, placing report items in containers such as rectangles help control
the way the report items are displayed on the report page.
A report can span multiple pages, with a page header and page footer that are repeated on each page. A report
can contain graphical elements such as images and lines, and it can have multiple fonts, colors, and styles, which
can be based on expressions.
Report Sections
A report consists of three main sections: an optional page header, an optional page footer, and a report body.
The report header and footer are not separate sections of the report, but rather comprise the report items that
are placed at the top and bottom of the report body. The page header and page footer repeat the same content
at the top and bottom of each page of the report. You can place images, text boxes, and lines in headers and
footers. You can place all types of report items in the report body.
You can set properties on report items to initially hide or show them on the page. You can set visibility
properties on rows or columns or groups for data regions and provide toggle buttons to allow the user to
interactively show or hide report data. You can set visibility or initial visibility by using expressions, including
expressions based on report parameters.
When a report is processed, report data is combined with the report layout elements and the combined data is
sent to a report renderer. The renderer follows predefined rules for report item expansion and determines how
much data fits on each page. To design an easy-to-read report that is optimized for the renderer that you plan to
use, you should understand the rules used to control pagination in Reporting Services. For more information,
see Pagination in Reporting Services (Report Builder and SSRS).
Renderers
Reporting Services includes a set of renderers, also referred to as rendering extensions, that you can use to
export reports to different formats. There are three types of renderers:
Data renderers Data renderers strip all formatting and layout information from the report and display
only the data. The resulting file can be used to import the raw report data into another file type, such as
Excel, or another database, an XML data message, or a custom application. The available data renders are
CSV and XML.
NOTE
Although it does not provide direct export to a different format, Atom rendering generates data files from reports.
Soft page-break renderers Soft page-break renderers maintain the report layout and formatting. The
resulting file is optimized for screen-based viewing and delivery, such as on a Web page. The available
soft page-break renderers are Microsoft Excel, Microsoft Word, Web archive (MHTML), and HTML.
Hard page-break renderers Hard page-break renderers maintain the report layout and formatting.
The resulting file is optimized for a consistent printing experience, or for viewing the report online in a
book format. The available hard page-break renderers are TIFF and PDF.
When you preview a report in Report Builder or Report Designer or run a report on a Reporting Services report
server, the report is always first rendered in HTML. After you run the report, you can export it to different file
formats. For more information, see Export Reports (Report Builder and SSRS).
Rendering Behaviors
Depending on the renderer you select, certain rules are applied when rendering the report. How report items fit
together on a page is determined by the combination of these factors:
Rendering rules.
The width and height of report items.
The size of the report body.
The width and height of the page.
Renderer-specific support for paging.
For example, reports rendered to HTML and MHTML formats are optimized for a computer screen-based
experience where pages can be various lengths.
For more information, see Rendering Behaviors (Report Builder and SSRS).
Pagination
Pagination refers to the number of pages within a report and how report items are arranged on these pages.
Pagination in Reporting Services varies depending on the rendering extension you use to view and deliver the
report and the page break and keep-together options you configure the report to use.
To successfully design an easy-to-read report for your users that is optimized for the renderer that you plan to
use to deliver your report, you need to understand the rules used to control pagination in Reporting Services.
Reports exported by using the data and soft page rendering extensions are typically not affected by
pagination. When you use a data rendering extension the report is rendered as tabular rowset in an XML or CSV
format. To ensure the exported report data is usable you should understand the rules applied to rendered a
flattened tabular rowset from a report.
When you use a soft page rendering extension such as the HTML rendering extension, you might want to know
how the report looks printed and also how well it renders using a hard page renderer such as PDF. During the
creation or updating of a report you can preview and export it in Report Builder and Report Designer.
Hard page renderers have the most impact on report layout and physical page size. To learn more, see
Pagination in Reporting Services (Report Builder and SSRS).
How-To Topics
This section lists procedures that show you, step by step, how to work with pagination in reports.
Add a Page Break (Report Builder and SSRS)
Display Row and Column Headers on Multiple Pages (Report Builder and SSRS)
Add or Remove a Page Header or Footer (Report Builder and SSRS)
Keep Headers Visible When Scrolling Through a Report (Report Builder and SSRS)
Display Page Numbers or Other Report Properties (Report Builder and SSRS)
Hide a Page Header or Footer on the First or Last Page (Report Builder and SSRS)
In This Section
The following topics provide additional information about page layout and rendering.
Page Headers and Footers (Report Builder and SSRS)
Provides information about using headers and footers in reports and how to control pagination using them.
Controlling Page Breaks, Headings, Columns, and Rows (Report Builder and SSRS)
Provides information about using page breaks.
See Also
Interactive Functionality for Different Report Rendering Extensions (Report Builder and SSRS)
Export Reports (Report Builder and SSRS)
Rendering Behaviors (Report Builder and SSRS)
11/2/2020 • 7 minutes to read • Edit Online
Depending on the renderer you select, certain rules are applied to the report body and its contents when
rendering a report. How report items fit together on a page is determined by the combination of these factors:
Rendering rules.
The width and height of report items.
The size of the report body.
The width and height of the page.
Renderer-specific support for paging.
This topic discusses the general rules that are applied by Reporting Services. For more information, see
Rendering Report Items (Report Builder and SSRS), Rendering Data Regions (Report Builder and SSRS), and
Rendering Data (Report Builder and SSRS).
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
General Behaviors for HTML, MHTML, Word, and Excel (Soft Page-
Break Renderers)
Reports exported using HTML and MHTML formats are optimized for a computer screen-based experience
where pages can be various lengths. Page breaks are inserted vertically only at approximate locations within the
report body. These approximate locations are determined by the interactive height setting in the Properties
pane. For example, suppose the interactive height is set to 5 inches. When the report is rendered, the page
height is approximately 5 inches in length. Word and Excel paginate based on logical page breaks and ignore the
interactive height setting.
NOTE
To determine how a report will appear in a soft page-break renderer, use Report Preview. The report appears as it would
in a HTML, MHTML, Word, or Excel format.
When exporting a report to HTML, MHTML, Word, or Excel, the following general rules are followed:
Logical page breaks, the page breaks that you explicitly insert, are applied to report items. For example, if
you insert a page break between each group, they are applied when the report is rendered.
An approximate layout is created using the page height and the number of times that the report item
appears. For example, if a text box is .5 inches in height and repeats five times in the report, 2.5 inches are
reserved.
Multiple soft page breaks are inserted based on the interactive height setting. To suppress in HTML and
the ReportViewer controls, and control pagination only with explicit page breaks, set the interactive
height value to 0 or an extremely large number.
NOTE
The interactive width setting is not used in the soft page break renderers.
Report pages can grow to accommodate widows, orphans and report items that need to be kept together.
This means that the report can extend beyond the screen width and can be viewed by using slider bars.
Pagination is applied to reports vertically only.
Page margins are not applied.
NOTE
To determine how a report will appear in a hard page-break renderer, use Print Preview. The report appears as it would in
a PDF or Image format.
Pages are numbered sequentially from left to right, then top to bottom.
Logical page breaks, the page breaks that you explicitly insert, are applied to report items. These page
breaks can cause report items to push other items to the next page.
If a physical page break occurs through report items that must be kept together, the items that must be
kept together are moved to the next page.
Because of page size constraints, it may not be possible to keep all the items together or to repeat items.
If that occurs, the renderer might ignore certain rules for repeating with another item in order to allow
the report item to fit on the page.
If an item cannot be kept together, for example a text box that grows too large to fit within the vertical
usable page area, then the item will be clipped at the physical page boundary and will continue on the
next page.
Pagination is applied to reports vertically and horizontally.
NOTE
The interactive width setting is not used in the hard page break renderers.
NOTE
For information about how Excel renders headers and footers, see Exporting to Microsoft Excel (Report Builder and SSRS).
For information about how Word renders headers and footers, see Exporting to Microsoft Word (Report Builder and
SSRS).
When present, the header and footer is rendered at the top and bottom of every page within the usable
page area.
On pages where the header or footer is hidden, the height of the header or footer is still reserved within
the usable page area, even though the header or footer is not rendered.
If the contents of the header or footer grows beyond the boundaries of the header or footer, the header
or footer increases in size to accommodate the contents.
The following rules apply to page headers and footers when rendered in the PDF or Image rendering format:
The header or footer is rendered at the top and bottom of every page within the usable page area.
On pages where the header or footer is hidden, the height of the header or footer is still reserved within
the usable page area, even though the header or footer is not rendered.
The header and footer do not grow or shrink. They are rendered on every page at the height specified
when you created the header or footer.
Regardless of the number of columns within the report, there is only one header and footer per page.
If the contents of the header or footer grow beyond the boundaries of the header or footer, the contents
are clipped.
Headers and footers that are defined in the original RDL file are not rendered when the report is
rendered as a subreport.
See Also
Interactive Functionality for Different Report Rendering Extensions (Report Builder and SSRS)
Rendering to HTML (Report Builder and SSRS)
Page Layout and Rendering (Report Builder and SSRS)
Rendering Data Regions (Report Builder and SSRS)
11/2/2020 • 3 minutes to read • Edit Online
In addition to the general rendering behaviors that apply to all report items, data regions have additional
pagination and rendering behaviors that they follow. Data region-specific rendering rules include how a data
region grows, how special cells such as the corner cell or header cells are rendered, and how a data region for
right-to-left reading is rendered. This topic discusses how the various parts of a data region are rendered.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
See Also
Pagination in Reporting Services (Report Builder and SSRS)
Rendering Behaviors (Report Builder and SSRS)
Interactive Functionality for Different Report Rendering Extensions (Report Builder and SSRS)
Rendering Report Items (Report Builder and SSRS)
Tables, Matrices, and Lists (Report Builder and SSRS)
Charts (Report Builder and SSRS)
Gauges (Report Builder and SSRS)
Rendering Report Items (Report Builder and SSRS)
11/2/2020 • 5 minutes to read • Edit Online
The number, size, and location of report items affect how the renderers paginate the report body. Below is a
description of how various report items are rendered.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
See Also
Pagination in Reporting Services (Report Builder and SSRS)
Rendering Behaviors (Report Builder and SSRS)
Interactive Functionality for Different Report Rendering Extensions (Report Builder and SSRS)
Tables, Matrices, and Lists (Report Builder and SSRS)
Rendering Data (Report Builder and SSRS)
3/5/2021 • 2 minutes to read • Edit Online
When using layout renderers, such as HTML, MHTML, Word, Excel, PDF or Image, the data and its organization
remains unchanged. When exporting using a data renderer format, such as Comma-Separated Value (CSV) or
XML, no visual layout elements are rendered. CSV and XML apply certain rules to the report body and its
contents when rendering the report. These rules determine how the data is rendered in these formats.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
Pagination refers to the number of pages within a paginated report and how report items are arranged on these
pages. Pagination in Reporting Services varies depending on the rendering extension you use to view and
deliver the report. When you run a report on the report server, the report uses the HTML renderer. HTML
follows a specific set of pagination rules. If you export the same report to PDF, for example, the PDF renderer is
used and a different set of rules are applied; therefore, the report paginates differently. To successfully design an
easy-to-read report for your users that is optimized for the renderer that you plan to use to deliver your report,
you need to understand the rules used to control pagination in Reporting Services.
This topic discusses the impact of the physical page size and the report layout on how hard page break
renderers render the report. You can set properties to modify the physical page size and margins, and divide the
report into columns, by using the Repor t Proper ties pane, the Proper ties pane, or the Page Setup dialog
box. You access the Repor t Proper ties pane by clicking the blue area outside the report body. You access the
Page Setup dialog box by clicking Run on the Home tab, and then clicking Page Setup on the Run tab.
NOTE
If you have designed a report to be one page wide, but it renders across multiple pages, check that the width of the
report body, including margins, is not larger than the physical page size width. To prevent empty pages from being added
to your report, you can reduce the container size by dragging the container corner to the left.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
Newsletter-Style Columns
Your report can be divided into columns, such as columns in a newspaper, that are treated as logical pages
rendered on the same physical page. They are arranged from left to right, top to bottom, and are separated by
white space between each column. If the report is divided into more than one column, each physical page is
divided vertically into columns, each of which is considered a logical page. For example, suppose you have two
columns on a physical page. The content of your report fills the first column and then the second column. If the
report does not fit entirely within the first two columns, the report fills the first column and then the second
column on the next page. Columns continue to be filled, from left to right, top to bottom until all report items
are rendered. If you specify column sizes that cause the horizontal width or vertical width to equal zero, the
column spacing defaults to zero.
Columns are specified using the Repor t Proper ties pane, Page Setup dialog box or by changing the
TopMargin, BottomMargin, LeftMargin and RightMargin properties in the Proper ties pane. If you want to use a
margin size that is not defined, you can specify the margin size using the Device Information settings for the
specific renderer that you are using to export the report. Columns are only applied when you render and print
reports in PDF or Image formats. The following image indicates the usable page area of a page containing
columns.
See Also
Page Layout and Rendering (Report Builder and SSRS)
Page Headers and Footers (Report Builder and
SSRS)
11/2/2020 • 8 minutes to read • Edit Online
A report can contain a header and footer that run along the top and bottom of each page, respectively. Headers
and footers can contain static text, images, lines, rectangles, borders, background color, background images, and
expressions. Expressions include dataset field references for reports with exactly one dataset and aggregate
function calls that include the dataset as a scope.
NOTE
Each rendering extension processes pages differently. For more information about report pagination and rendering
extensions, see Pagination in Reporting Services (Report Builder and SSRS).
By default, reports have page footers, but not page headers. For more information about how to add or remove
them, see Add or Remove a Page Header or Footer (Report Builder and SSRS).
Headers and footers commonly contain page numbers, report titles, and other report properties. For more
information about how to add these items to your report header or footer, see Display Page Numbers or Other
Report Properties (Report Builder and SSRS).
After you create a page header or footer, it is displayed on each report page. For more information about how to
suppress page headers and footers on the first and last pages, see Hide a Page Header or Footer on the First or
Last Page (Report Builder and SSRS).
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
&PageNumber Yes No
&TotalPages Yes No
=First(ReportItems!TXT_LastName.Value) =Max(Quantity.Value,"DataSet1")
Fields collection for items on the page Indirectly. For example, Yes. For example,
=Sum(ReportItems!Textbox1.Value) =Sum(Fields!Quantity.Value,"DataSet1")
The following sections in this topic show ready-to-use expressions that get variable data commonly used in
headers and footers. There is also a section on how the Excel rendering extension processes headers and footers.
For more information about expressions, see Expressions (Report Builder and SSRS).
Adding Calculated Page Totals to a Header or Footer
For some reports, it is useful to include a calculated value in the header or footer of each report; for example, a
per-page sum total if the page includes numeric values. Because you cannot reference the fields directly, the
expression that you put in the header or footer must reference the name of the report item (for example, a text
box) rather than the data field:
=Sum(ReportItems!Textbox1.Value)
If the text box is in a table or list that contains repeated rows of data, the value that appears in the header or
footer at run time is a sum of all values of all TextBox1 instance data in the table or list for the current page.
When calculating page totals, you can expect to see differences in the totals when you use different rendering
extensions to view the report. Paginated output is calculated differently for each rendering extension. The same
page that you view in HTML might show different totals when viewed in PDF if the amount of data on the PDF
page is different. For more information, see Rendering Behaviors (Report Builder and SSRS).
For Reports with Multiple Datasets
For reports with more than one dataset, you cannot add fields or data-bound images directly to a header or
footer. However, you can write an expression that indirectly references a field or data-bound image that you
want to use in a header or footer.
To put variable data in a header or footer:
Add a text box to the header or footer.
In the text box, write an expression that produces the variable data that you want to appear.
In the expression, include references to report items on the page; for example, you can reference a text
box that contains data from a particular field. Do not include a direct reference to fields in a dataset. For
example, you cannot use the expression [LastName] . You can use the following expression to display the
contents of the first instance of a text box named TXT_LastName :
=First(ReportItems!TXT_LastName.Value)
You cannot use aggregate functions on fields in the page header or footer. You can only use an aggregate
function on report items in the report body. For common expressions in page headers and footers, see
Expression Examples (Report Builder and SSRS).
Adding a Data-Bound Image to a Header or Footer
You can use image data stored in a database in a header or footer. However, you cannot reference database
fields from the Image report item directly. Instead, you must add a text box in the body of the report and then
set the text box to the data field that contains the image (note that the value must be base64 encoded). You can
hide the text box in the body of the report to avoid showing the base64-encoded image. Then, you can reference
the value of the hidden text box from the Image report item in the page header or footer.
For example, suppose you have a report that consists of product information pages. In the header of each page,
you want to display a photograph of the product. To print a stored image in the report header, define a hidden
text box named TXT_Photo in the body of the report that retrieves the image from the database and use an
expression to give it a value:
=Convert.ToBase64String(Fields!Photo.Value)
In the header, add an Image report item which uses the TXT_Photo text box, decoded to show the image:
=Convert.FromBase64String(ReportItems!TXT_Photo.Value)
See Also
Embed an Image in a Report (Report Builder and SSRS)
Rectangles and Lines (Report Builder and SSRS)
Controlling Page Breaks, Headings, Columns, and
Rows (Report Builder and SSRS)
11/2/2020 • 2 minutes to read • Edit Online
A page break divides a report into separate pages for viewing and printing. Page breaks determine how the
content is fitted to a report page for optimal viewing when you preview a report or export it to a different file
format.
Adding page breaks also improves the performance of large reports when they are processed. A rendered page
is displayed while the rest of the pages are rendered in the background. This allows you to begin viewing the
initial pages of the report while waiting for additional pages to become available.
Page breaks can be added to report items such as a table, matrix, list, chart, gauge, or image. You can also add
page breaks to groups in a table, matrix, or list. Page breaks can be added before, after, and between groups.
Page breaks between groups are not added to the report by default.
For more information, see Display Row and Column Headers on Multiple Pages (Report Builder and SSRS) and
Keep Headers Visible When Scrolling Through a Report (Report Builder and SSRS).
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
See Also
Tables, Matrices, and Lists (Report Builder and SSRS)
Controlling the Tablix Data Region Display on a Report Page (Report Builder and SSRS)
Grouping Pane (Report Builder)
Display Headers and Footers with a Group (Report Builder and SSRS)
Add a Page Break (Report Builder and SSRS)
11/2/2020 • 2 minutes to read • Edit Online
You can add a page break to rectangles, data regions, or groups within data regions to control the amount of
information on each page. Adding page breaks can improve the performance of published reports because only
the items on each page have to be processed as you view the report. When the whole report is a single page, all
items must be processed before you can view the report.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
NOTE
Page breaks are ignored on column groups.
2. On the Page Breaks tab, select Between each instance of a group to add a page break between each
instance of a group in the table.
3. Optionally, select Also at the star t of a group or Also at the end of a group to specify that a page
break be added when a group starts or ends in the table.
See Also
Pagination in Reporting Services (Report Builder and SSRS)
Rendering Behaviors (Report Builder and SSRS)
Page Headers and Footers (Report Builder and SSRS)
Display Row and Column Headers on Multiple
Pages (Report Builder and SSRS)
11/2/2020 • 2 minutes to read • Edit Online
You can control whether to repeat row and column headers on every page of a Reporting Services paginated
report for a tablix data region (a table, matrix, or list) that spans multiple pages.
How you control the rows and columns depends on whether the tablix data region has group headers. When
you click in a tablix data region that has group headers, a dotted line shows the tablix areas, as shown in the
following figure:
Row and column group headers are created automatically when you add groups by using the New Table or
Matrix wizard or the New Chart wizard, by adding fields to the Grouping pane, or by using context menus. If the
tablix data region has only a tablix body area and no group headers, the rows and columns are tablix members.
For static members, you can display the top adjacent rows or the side adjacent columns on multiple pages.
See Also
Finding, Viewing, and Managing Reports (Report Builder and SSRS )
Export Reports (Report Builder and SSRS)
Controlling Page Breaks, Headings, Columns, and Rows (Report Builder and SSRS)
Display Headers and Footers with a Group (Report Builder and SSRS)
Keep Headers Visible When Scrolling Through a Report (Report Builder and SSRS)
Add or Remove a Page Header or Footer (Report
Builder and SSRS)
11/2/2020 • 2 minutes to read • Edit Online
You can add static text, images, lines, rectangles, and borders to page headers or footers. You can place
expressions and data-bound images in a textbox if you want variable or computed data in a header or footer.
NOTE
Each rendering extension processes page headers and footers differently. For more information, see Page Headers and
Footers (Report Builder and SSRS) and Pagination in Reporting Services (Report Builder and SSRS).
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
NOTE
The Header and Footer options appear only when a header or footer is not already part of the report.
See Also
Page Headers and Footers (Report Builder and SSRS)
Keep Headers Visible When Scrolling Through a
Report (Report Builder and SSRS)
11/2/2020 • 2 minutes to read • Edit Online
To prevent row and column labels from scrolling out of view after rendering a report, you can freeze the row or
column headings.
How you control the rows and columns depends on whether you have a table or a matrix. If you have a table,
you configure static members (row and column headings) to remain visible. If you have a matrix, you configure
row and column group headers to remain visible.
If you export the report to Excel, the header will not be frozen automatically. You can freeze the pane in Excel. For
more information see the Page Headers and Footers section of Exporting to Microsoft Excel (Report Builder
and SSRS).
NOTE
Even if a table has row and column groups, you cannot keep those group headers visible while scrolling
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
To keep matrix group headers visible while scrolling
1. Right-click the row, column, or corner handle of a tablix data region, and then click Tablix Proper ties .
2. On the General tab, under Row Headers or Column Headers , select Header should remain visible
while scrolling .
3. Click OK .
To keep a static tablix member (row or column) visible while scrolling
1. On the design surface, click anywhere in the table to display static members, as well as groups, in the
grouping pane.
The Row Groups pane displays the hierarchical static and dynamic members for the row groups
hierarchy, and the Column groups pane shows a similar display for the column groups hierarchy.
2. On the right side of the grouping pane, click the down arrow, and then click Advanced Mode .
3. Click the static member (row or column) that you want to remain visible while scrolling. The Properties
pane displays the Tablix Member properties.
It's easy to add page numbers, a report title, file name, and other report properties to the page headers or
footers of your report. These properties are stored as fields in the Built-in Fields folder in the Report Data pane:
Execution time
Page number
Report folder
Report name
Report server URL
Total pages
User ID
Language
For a page number, you may want to add the word "Page" before the number. You may also want to show the
total number of pages.
NOTE
Adding the total number of pages to the footer may slow performance when you run or preview your report.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
NOTE
If you don't see the Report Data pane, on the View tab, check Repor t Data .
2. Drag the Page Number field from the Report Data pane to the report header or footer.
NOTE
The page footer is added to the report automatically. To add a page header, on the Inser t tab, click Header , and
then click Add Header .
A text box that contains the simple expression [&PageNumber] is added.
To add the word "Page" before the page number
1. Right-click the text box that contains [&PageNumber] and click Expressions .
The Set Expression for : Value text box contains the expression =Globals!PageNumber.
2. Place the cursor after the = sign and type "Page " & .
The expression is now ="Page "&Globals!PageNumber
3. Click OK .
To add total number of pages after the page number
1. Right click the text box with the expression and click Expressions .
2. Type &" of "& at the end of the expression.
3. In the Category pane, expand Built-in Fields and double-click TotalPages .
The expression is now ="Page "&Globals!PageNumber &" of "&Globals!TotalPages
4. Click OK .
See Also
Page Headers and Footers (Report Builder and SSRS)
Format Text in a Text Box (Report Builder and SSRS)
Hide a Page Header or Footer on the First or Last
Page (Report Builder and SSRS)
11/2/2020 • 2 minutes to read • Edit Online
A report can contain a page header and page footer that run along the top and bottom of each page,
respectively. After you a add a header or footer, you can selectively hide it on the first and last pages of a report.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
See Also
Page Headers and Footers (Report Builder and SSRS)
Pagination in Reporting Services (Report Builder and SSRS)
Add or Remove a Page Header or Footer (Report Builder and SSRS)
Reporting Services Reports (SSRS)
3/18/2020 • 9 minutes to read • Edit Online
SQL Server Reporting Services paginated reports are XML-based report definitions that include report data and
report layout elements. On a client file system, report definitions have the file extension .rdl. After you publish a
paginated report, it is a report item stored on the report server or SharePoint site. Paginated reports are one
part of the server-based reporting platform provided by Reporting Services. You can also Create mobile reports
with SQL Server Mobile Report Publisher.
If you are new to Reporting Services, be sure to review the information in Reporting Services Concepts (SSRS).
Preview reports
Each report authoring tool supports previewing a report. For more information, see the Preview section of
Design Reports with Report Designer (SSRS), and Previewing Reports in Report Builder.
View reports
In addition to previewing a report saved locally or published to a report server, you can provide a variety of
viewing experiences for your report readers. To view a report:
Browser. Use the Report Server Web Service or SharePoint site to view published reports. On a
SharePoint site, you can also configure a Web part to view published reports. For more information, see
the following articles:
Browser Support for Reporting Services and Power View
The web portal of a report server (SSRS Native Mode)
URL Access (SSRS)
Deliver y. Configure a subscription to deliver reports to report readers in e-mail or to a shared file folder.
For more information, see Subscriptions and Delivery (Reporting Services).
Expor t. From the report viewer toolbar, a report reader can export a report to a different file format.
Export file formats can be configured by the report server administrator. For more information, see
Export Reports (Report Builder and SSRS)
Print. A report reader can print a report or pages of a report depending on the way in which it is viewed.
For more information, see Print Reports (Report Builder and SSRS).
Web or Windows Form application. Use Visual Studio to develop an application that facilitates
reporting via SSRS. For more information, see [Integrating Reporting Services into Applications.
Manage reports
To manage a published report:
Data sources. Shared and embedded data sources are managed independently from the report
definition.
Datasets. Shared datasets are managed independently from the report definition.
Parameters. Parameters are managed independently from the report definition. After parameters are
changed on the report server, report authoring clients cannot publish over the changes made on the
server.
Resources. Images and spatial data in ESRI shapefiles are resources that can be published and managed
independently from the report definition.
Repor t cache. By scheduling large reports to run during off-peak hours, you can reduce processing
impact on the report server during core business hours.
Snapshots. Use report snapshots when you want to provide consistent results for multiple users who
must work with identical sets of data. With volatile data, an on-demand report can produce different
results from one minute to the next. A report snapshot, by contrast, allows you to make valid
comparisons against other reports or analytical tools that contain data from the same point in time.
Repor t histor y. By creating a series of report snapshots, you can build a history of a report that shows
how data changes over time.
For more information about performance, see Performance, Snapshots, Caching (Reporting Services).
Secure reports
To secure a report:
As the report server administrator, identify the authorization and authentication system that is used for your
Reporting Services installation. By default, Reporting Services uses Windows authentication, integrated security,
and role assignment to help control access to published reports. For more information, see Roles and
Permissions (Reporting Services) and Reporting Services Security and Protection.
Upgrade reports
Reporting Services supports multiple versions of report definitions, report servers, and SharePoint sites. To
upgrade a report:
Upgrade a report server installation. Compiled reports stored on the report server are upgraded
automatically on first use. The report definition (.rdl) is not changed. For more information, see Upgrade
and Migrate Reporting Services.
Open a report in a report authoring environment. The report definition is upgraded in most
circumstances. For more information, see Upgrade Reports and Deployment and Version Support in SQL
Server Data Tools (SSRS).
Troubleshoot reports
To troubleshoot a report:
Determine where the issue is occurring. Review the information in Stages of a Report.
Determine where you can find more information. For example, for report design that includes
expressions, the Report Designer tool provides more information about expression evaluation issues than
the Report Builder tool. For report processing errors, the log files contain detailed information.
See also
Reporting Services Tools
Extensions (SSRS)
Comparing native and SharePoint Reporting Services report servers
Publishing Data Sources and Reports
3/18/2020 • 2 minutes to read • Edit Online
Before publishing your report, you should preview the report to see how it will look when it is run. You can
continue to refine the design until you are satisfied with the results.
After you design and test your report, you may want to share it with other individuals. To share your report, you
need to publish, or deploy, it to a report server or SharePoint site. After it has been published, individuals who
have permissions to the report server or the SharePoint site can run your report. In addition, a person with
administrator permissions on the report server can create subscriptions to your report so that the report can be
updated and sent to users on a regular schedule.
If you used a shared data source to create your report, you need to publish it to the same location as the report.
Like reports, shared data sources can be managed separately on the report server.
In This Section
Previewing Reports
Describes how to preview a report before you publish it.
Publishing Reports to a Report Server
Describes how to publish a report to a report server.
URL Examples for Published Report Items on a Report Server in SharePoint Mode (SSRS)
Describes how to publish a report to a SharePoint site.
See Also
Create data connection strings - Report Builder & SSRS
Report Datasets (SSRS)
Page Layout and Rendering (Report Builder and SSRS)
Report Datasets (SSRS)
Finding, Viewing, and Managing Reports (Report Builder and SSRS )
Export Reports (Report Builder and SSRS)
Print Reports (Report Builder and SSRS)
Preview Reports in SQL Server Reporting Services
(SSRS)
11/2/2020 • 2 minutes to read • Edit Online
When you design a Reporting Services report, you may want to view it before publishing it to a production
environment. You can do this in several ways: by switching to Preview mode in Report Designer, by using the
preview window in Report Designer, and by publishing the report to a report server in a test environment.
NOTE
When you preview a report, the data for the report is cached to a file on the local computer. When you preview the same
report again using the same query, parameters, and credentials, Report Designer retrieves the cached copy rather than
rerunning the query. The data file is saved as <reportname>.rdl.data in the same directory as the report definition file.
The file is not deleted when you close Report Designer.
Preview Mode
You can preview a report in Report Designer by clicking . This runs the report locally,
using the same report processing and rendering functionality that is provided with the report server. The report
that is displayed is an interactive image; you can select parameters, click links, view the document map, and
expand and collapse hidden areas of the report. You can also export the report to any of the installed rendering
formats.
Standalone Preview
Another way to preview a report is to run the report project in a debug configuration, for example, to debug
custom assemblies that you write. The report is opened in your default browser. There are three ways to run a
project:
By clicking Star t Debugging on the Debug menu.
NOTE
Before debugging a report, you must set a start item. For example, if you run debug mode and the browser opens the
main report server page and not your report in preview mode. To set a start item, in Solution Explorer, right-click the
report project, click Proper ties , and then in Star tItem , select the name of the report to display.
If you wish to preview a particular report that is not the start item for the project, select a configuration that
builds the report but does not deploy it (for example, the DebugLocal configuration), right-click the report, and
then click Run . You must choose a configuration that does not deploy the report; otherwise, the report will be
published to the report server instead of displayed locally in a preview window.
Next steps
Print Reports (Report Builder and SSRS)
Print a Report (Report Builder and SSRS)
Publish Reports
Using Custom Assemblies with Reports
Publishing Reports to a Report Server
3/18/2020 • 3 minutes to read • Edit Online
After you have designed and tested a report or set of reports, you can use the deployment features in SQL
Server Data Tools (SSDT) to publish the reports to a report server. You can publish individual reports or a Report
Server project which can include multiple reports and data sources. Publishing a Report Server project is the
easiest way to publish multiple reports. SQL Server Data Tools (SSDT) uses the term deploy, instead of the term
publish. The two terms are interchangeable.
SQL Server Data Tools (SSDT) provides project configurations for managing report publication. The
configuration specifies the location of the report server, the version of SQL Server Reporting Services installed
on the report server, whether the data sources published to the report server are overwritten and so forth. For
example, the "Debug" configuration can publish to a different server than the "release" configuration. In addition
to using the configurations that SQL Server Data Tools (SSDT) provides, you can create additional
configurations.
Requirements to Publish
Permission is determined through role-based security that is defined by your report server administrator.
Publishing operations are typically granted through the Publisher role .
Project Configurations
Your reporting environment might have multiple report servers and different versions of Reporting Services
installed. You can create multiple configurations and then use a different one depending the deployment
scenario. Project configurations include properties for building reports, such as the folder in which to
temporarily store the built reports, and how to handle build issues. The configurations also have properties that
you use to specify the location and version of the report server, the folders on the report server.
By default, SQL Server Data Tools (SSDT) provides three project configurations: DebugLocal , Debug , and
Release . The default configuration is DebugLocal. You typically use the DebugLocal configuration to view
reports in a local preview window, the Debug configuration to publish reports to a test server, and the Release
configuration to publish reports to a production server. The solution configurations drop-down list on the
Standard toolbar shows the active configuration. To use a different configuration, select it from the list.
For more information, see the following
Project Property Pages Dialog Box
Deployment and Version Support in SQL Server Data Tools
Set Deployment Properties for Reporting Services projects in SSDT
See Also
Project Property Pages Dialog Box
Report Server Content Management (SSRS Native Mode)
Upgrade Reports
Publish a Report to a SharePoint Library
3/18/2020 • 2 minutes to read • Edit Online
To publish a report to a SharePoint site configured for SharePoint integration, you must set the project
properties in Report Designer. In the project properties, all references to servers, reports, and shared data
sources must be fully qualified URLs. In the report definition, all references to subreports, drillthrough reports,
and resources such as Web-based images, must be fully qualified URLS.
You must have Member or Owner permission on the SharePoint site to set the properties on the project. For
more information, see URL Examples for Published Report Items on a Report Server in SharePoint Mode (SSRS).
To publish a report to a SharePoint site
1. In SQL Server Data Tools (SSDT), open an existing or new Report Server project.
2. From the Project menu, click Proper ties . The <project>Proper ty Pages dialog box opens.
3. In the Configuration list, select the name of a solution build configuration to use to build and publish
your report. The current configuration is listed as Active (<configuration>).
4. If you want to publish the shared data sources in your project and overwrite previously published shared
data sources, set Over writeDataSources to True .
5. (Optional) For TargetDataSourceFolder , type a URL to a SharePoint library or library folder (for
example, https://TestServer/TestSite/Documents/DataSources ).
If you do not specify a value, the TargetRepor tFolder value is used.
6. For TargetRepor tFolder , type a URL to a library or library folder (for example,
https://TestServer/TestSite/Documents/Reports ).
7. For TargetSer verURL , type a URL to a SharePoint top-level site or subsite. If you do not specify a site,
the default top-level site is used (for example, https://servername , https://servername/site , or
https://servername/site/subsite ).
8. Click OK .
9. In Solution Explorer, right-click the report you want to publish, and click Deploy . The report is published
to the location specified in TargetRepor tFolder . Deployment errors appear in the Output window.
See Also
Project Property Pages Dialog Box
Set Deployment Properties (Reporting Services)
Publishing Reports to a Report Server
URL Examples for Published Report Items on a Report Server in SharePoint Mode (SSRS)
Use an Office Data Connection (.odc) with Reports (Reporting Services in SharePoint Integrated Mode)
Publish a Shared Data Source to a SharePoint
Library
11/2/2020 • 2 minutes to read • Edit Online
To publish a shared data source to a report server that is running in SharePoint integrated mode, you must set
the report project properties in Report Designer. In the project properties, all references to servers, reports, and
shared data sources must be fully qualified URLs.
You must have Member or Owner permission on the SharePoint site. For more information, see URL Examples
for Published Report Items on a Report Server in SharePoint Mode (SSRS).
To publish a shared data source to a SharePoint site
1. In SQL Server Data Tools (SSDT), open your existing or new Report Server project.
2. On the Project menu, click Proper ties . The <project>Proper ty Pages dialog box opens.
3. Choose the Configuration you use to publish to a SharePoint site.
4. If you want to publish the shared data sources in your project and overwrite previously published shared
data sources, set Over writeDataSources to True .
5. (Optional) For TargetDataSourceFolder , type a URL to a SharePoint library or library folder. For
example, https://TestServer/TestSite/Documents/DataSources .
If you do not specify a value, the TargetRepor tFolder value is used.
6. For TargetRepor tFolder , type a URL to a library or library folder. For example,
https://TestServer/TestSite/Documents/Reports .
7. For TargetSer verURL , type a URL to a SharePoint top-level site or subsite. If you do not specify a site,
the default top-level site is used. For example, https://servername , https://servername/site , or
https://servername/site/subsite .
8. Click OK .
9. In Solution Explorer, right-click the shared data source you want to publish, and click Deploy . The data
source is published to the location specified in TargetDataSourceFolder . Deployment errors appear in
the Output window.
NOTE
After you publish a shared data source to a SharePoint site, the file name extension is changed to .rsds. You can
edit and manage a shared data source directly on the SharePoint site. For more information, see Create and
Manage Shared Data Sources (Reporting Services in SharePoint Integrated Mode).
See Also
Publish a Report to a SharePoint Library
URL Examples for Published Report Items on a Report Server in SharePoint Mode (SSRS)
Project Property Pages Dialog Box
Set Deployment Properties (Reporting Services)
Publishing Reports to a Report Server
Use an Office Data Connection (.odc) with Reports (Reporting Services in SharePoint Integrated Mode)
Report Definition Language (SSRS)
3/5/2021 • 4 minutes to read • Edit Online
Report Definition Language (RDL) is an XML representation of a SQL Server Reporting Services report
definition. A report definition contains data retrieval and layout information for a report. RDL is composed of
XML elements that match an XML grammar created for Reporting Services. You can add your own custom
functions for controlling report item values, styles, and formatting by accessing code assemblies within report
definition files.
RDL promotes the interoperability of commercial reporting products by defining a common schema that
enables the interchange of report definitions. Any protocol or programmatic interface that works with XML can
be used with RDL. RDL is:
An XML schema for report definitions.
An interchange format for businesses and third parties.
An extensible and open schema that supports additional namespaces and custom elements.
RDL Specifications
To download specifications for specific schema versions, see Report Definition Language Specification.
Creating RDL
Because of the open and extensible nature of RDL, a variety of tools and applications can be built that generate
RDL based on its XML schema.
Reporting Services provides multiple tools to build RDL files. For more information, see Reporting Services
Tools.
One of the easiest ways to generate RDL from an application is to use the Microsoft .NET Framework classes of
the System.Xml namespace and System.Linq namespace. One class in particular, the XmlTextWriter class, can
be used to write RDL. With XmlTextWriter , you can generate a complete report definition from start to finish in
any .NET Framework application. Developers can also extend RDL by adding custom report items with custom
properties. For more on the XmlTextWriter class and the System.Xml namespace, see the Microsoft .NET
Framework Developer's Guide. For more information about Language-Integrated Query (LINQ), search for
"LINQ to XML" on MSDN.
The standard file extension for report definition files is .rdl. You can also develop client report definition files,
which have the extensions .rdlc. The MIME type for both extensions is text/xml. For more information about
reports, see Reporting Services Reports (SSRS).
RDL Types
The following table lists types used in RDL elements and attributes.
Enum A property with a string text value that must be one of a list
of designated values.
NormalizedString A property with a string text value that has been normalized.
In RDL, the maximum value for Size is 160 in. The minimum
size is 0 in.
TYPE DESC RIP T IO N
Boolean Boolean
See Also
Find the Report Definition Schema Version (SSRS)
Using Custom Assemblies with Reports
Custom Report Items
Find the Report Definition Schema Version (SSRS)
3/18/2020 • 2 minutes to read • Edit Online
A report definition file specifies the RDL namespace for the version of the report definition schema that is used
to validate the rdl file. When you open an .rdl file in a report authoring environment such as Report Designer in
SQL Server Data Tools (SSDT), Visual Studio, or Report Builder. If the report was created for a previous
namespace, a backup file is automatically created, and the report is upgraded to the current namespace. If you
save the upgraded report definition, you have saved the converted .rdl file. This is the only way to upgrade a
report definition. The report definition itself is not upgraded on a report server. The compiled report is
upgraded on a report server. For more information, see Upgrade Reports.
<Report xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner"
xmlns="http://schemas.microsoft.com/sqlserver/reporting/2016/01/reportdefinition"
xmlns:df="http://schemas.microsoft.com/sqlserver/reporting/2016/01/reportdefinition/defaultfontfamily
" MustUnderstand="df">
The most recent report definition namespace is 2016. However, the most recent published report
definition namespace is 2010, specified by the following URL:
https://schemas.microsoft.com/sqlserver/reporting/2010/01/reportdefinition ..
<Report xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner"
xmlns="http://schemas.microsoft.com/sqlserver/reporting/*year*/01/reportdefinition"
xmlns:df="http://schemas.microsoft.com/sqlserver/reporting/*year*/01/reportdefinition/defaultfontfami
ly" MustUnderstand="df">
How to: Identify the RDL schema version on the Report Server
In the web portal, type the URL for the report server. For example, the following URL specifies a report
server on the local computer:
https://localhost/reportserver/reportdefinition.xsd
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://schemas.microsoft.com/sqlserver/reporting/*year*/01/reportdefinition"
targetNamespace="http://schemas.microsoft.com/sqlserver/reporting/*year*/01/reportdefinition"
elementFormDefault="qualified">
Next steps
Upgrade Reports
Report Definition Language
More questions? Try asking the Reporting Services forum
Find Text, Numbers, or Dates in a Report
3/18/2020 • 2 minutes to read • Edit Online
You can search for content in a report by typing a word or phrase that you want to find (the maximum value of a
search term is 256 characters). Search is a navigation technique that finds a matching value in the report and
puts focus on the part of the report that contains that value.
Search is case-insensitive and begins at the page or section that is currently selected. Only content that is visible
in the report is included in the search operation. If the report contains areas that you expand or collapse, values
that are in a collapsed area are skipped during the search. You can only search for text, numbers, or dates that
are in the current report. If you are using an autogenerated clickthrough report to explore data, you cannot
search for a term that you saw on a previously generated report, nor can you use search to find a term that
might appear in a report further down the data path.
When entering a value to search on, type the value as you expect it to appear in the report. Do not pose a
question, such as "what is the average profit for this month," unless you expect every word in the sentence to be
in the report.
You can only search for one term or value at a time. You cannot use search operators (such as AND or OR), or
symbols and wildcards. You cannot perform a search on a cross-section of the data (for example, searching for
net sales for specific month for a particular product). For that kind of analysis, use Report Builder to create or
use clickthrough reports.
Database and model security settings that restrict access to report data apply to search operations. If you are
searching for a value in a clickthrough report that uses a model as a data source, and you do not have access to
part of the model, data that is represented by the part of the model will be excluded from the search.
To find data in a report
1. Open the report.
2. In the report toolbar, enter the text, number, or date that you want to find.
If the report toolbar is not visible, it has been hidden on purpose and you cannot use the functionality it
provides. Properties on the Report Viewer Web Part determine whether the toolbar is visible.
3. Click Find .
4. To search for subsequent occurrences of the same value, click Next .
See Also
Add the Report Viewer Web Part to a Web Page (Reporting Services in SharePoint Integrated Mode)
Configure Execution Properties for a Report
3/5/2021 • 2 minutes to read • Edit Online
You can set report processing options to specify when data is retrieved for a report. It is useful to schedule data
processing for a report if the external data source is refreshed at specific times (for example, a data warehouse
that is refreshed daily or weekly) and you want to avoid the overhead of retrieving the same data each time a
report is requested. Scheduling data processing is also useful if you want to control the processing load on the
external database server or when you want to provide consistent results for multiple users who must work with
identical sets of data. With volatile data, an on-demand report can produce different results from one minute to
the next. A report snapshot, by contrast, allows you to make valid comparisons against other reports or
analytical tools that contain data from the same point in time.
A report snapshot is a report that contains layout instructions and query results that were retrieved at a specific
point in time. Unlike on-demand reports, which get up-to-date query results when you select the report, report
snapshots are processed on a schedule and then saved to a report server. When you select a report snapshot for
viewing, the report server retrieves the stored report from the report server database and shows the data and
layout that were current for the report at the time the snapshot was created.
Report snapshots are not saved in a particular rendering format. Instead, report snapshots are rendered in a
final viewing format (such as HTML) only when a user or an application requests it. Deferred rendering makes a
snapshot portable. The report can be rendered in the correct format for the requesting device or Web browser.
See Also
Set Report Processing Properties
Contents Page (Report Manager)
Report Server Content Management (SSRS Native Mode)
Processing Options Properties Page (Report Manager)
NOTE
If you want to create a snapshot immediately, select the New histor y snapshot button instead of the
Schedules and settings button, and a report snapshot will be created immediately.
See also
Set Report Processing Properties
Report Server Content Management (SSRS Native Mode)
Set Report Processing Properties
Limit Report History - Reporting Services
3/5/2021 • 2 minutes to read • Edit Online
Report history is a collection of report snapshots that you create over time. You can create report history on
demand, or schedule how often a snapshot is created and added to report history.
Report history is stored in the report server database. If report snapshots contain a large amount of data, you
might consider limiting report history to minimize the effect of snapshot retention on database size.
See Also
Add a Snapshot to Report History (Report Manager)
Report Manager (SSRS Native Mode)
See Also
Add a Snapshot to Report History
Upload a File or Report in the report server
3/18/2020 • 2 minutes to read • Edit Online
The web portal of the report server provides an upload feature so that you can add reports and other files to a
report server without having to publish those items from a client application. Files that you upload from the file
system are stored as items on the report server. The type of file you upload determines how it is stored:
.rdl files are stored as paginated reports.
All other files, including shared data source (.rds) files, are uploaded as resources. Resources are not
processed by a report server, but can be viewed in the web portal if the report server supports the MIME
type of the file.
To upload a file or report
1. In the web portal, click Upload .
2. Browse to the file you want to upload. You can upload a report definition file, an image, a document, or
any file that you want to make available on the report server.
3. Type a name for the new item. An item name can include spaces, but cannot include the reserved
characters: ; ? : @ & = + , $ / * < > |.
4. If you want to replace an existing item with the new item, select Over write item if it exists .
5. Click OK .
See Also
Create, Modify, and Delete Shared Data Sources Upload Files to a Folder
Create a Linked Report
3/18/2020 • 2 minutes to read • Edit Online
A linked report is a report server item that provides an access point to an existing report. Conceptually, it is
similar to a program shortcut that you use to run a program or open a file.
A linked report is derived from an existing report and retains the original's report definition. A linked report
always inherits report layout and data source properties of the original report. All other properties and settings
can be different from those of the original report, including security, parameters, location, subscriptions, and
schedules.
You can create a linked report when you want to create additional versions of an existing report. For example,
you could use a single regional sales report to create region-specific reports for all of your sales territories.
Although linked reports are typically based on parameterized reports, a parameterized report is not required.
You can create linked reports whenever you want to deploy an existing report with different settings.
See also
Reporting Services Concepts (SSRS)
The web portal of a report server (SSRS Native Mode)
Export paginated reports (Report Builder and SSRS)
6/8/2021 • 11 minutes to read • Edit Online
You can export a Reporting Services paginated report to another file format, such as PowerPoint, Image, PDF,
Accessible PDF, Microsoft Word, or Microsoft Excel or export the report by generating an Atom service
document, listing the Atom-compliant data feeds available from the report. You can export your report from
Report Builder, Report Designer ( SQL Server Data Tools (SSDT)), or the report server.
Export a report to do the following:
Work with the repor t data in another application. For example, you can export your report to Excel
and then continue to work with the data in Excel.
Print the repor t in a different format. For example, you can export the report to the PDF file format
and then print it.
Save a copy of the repor t as another file type. For example, you can export a report to Word and
save it, creating a copy of the report.
Use repor t data as data feeds in applications. For example, you can generate Atom-compliant data
feeds that Power Pivot, or Power BI, can consume, and then work with the data in Power Pivot, or Power
BI. For more information, see Generate Data Feeds from a Report
Rendering the report on the report server is useful when you set up subscriptions or deliver your reports
via e-mail, or if you want to save a report that is available on the report server. For more information, see
Subscriptions and Delivery (Reporting Services).
Reporting Services provides many rendering extensions, supporting exports of reports to common file formats.
The rendering extensions support file formats with soft breaks (for example, Word or Excel), hard-page breaks
(for example, PDF or TIFF), or data only (for example, CSV or Atom compliant XML).
Report pagination might be affected when you export a report to a different format. When you preview a report,
you are viewing the report as it is rendered by the HTML rendering extension, which follows soft-page break
rules. When you export a report to a different file format, such as Adobe Acrobat (PDF), pagination is based on
the physical page size, which follows hard-page break rules. Pages can also be separated by logical page breaks
that you add to a report, but the actual length of a page varies based on the renderer type that you use. To
change the pagination of your report, you must understand the pagination behavior of the rendering extension
you choose. You might need to adjust the design of your report layout for this rendering extension. For more
information see, Page Layout and Rendering.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
Acrobat (PDF) file Hard page-break The PDF rendering extension renders a
report to files that can be opened in
Adobe Acrobat and other third-party
PDF viewers that support PDF 1.3.
Although PDF 1.3 is compatible with
Adobe Acrobat 4.0 and later, Reporting
Services supports Adobe Acrobat 6 or
later. The rendering extension does not
require Adobe software to render the
report. However, PDF viewers such as
Adobe Acrobat are required for
viewing or printing a report in PDF
format.
Next steps
Controlling Page Breaks, Headings, Columns, and Rows (Report Builder and SSRS)
Finding, Viewing, and Managing Reports (Report Builder and SSRS )
Print Reports (Report Builder and SSRS)
Saving Reports (Report Builder)
More questions? Try asking the Reporting Services forum
Interactive Functionality - Different Report
Rendering Extensions
3/26/2020 • 5 minutes to read • Edit Online
Reporting Services provides features for interacting with a paginated report at run time. Not all of the report
rendering formats support the full range of interactive features. Use the following table to understand how each
interactive feature works in specific formats.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
Other (for example, TIFF, XML, and CSV) Not available in MHTML, XML, CSV, or Image.
Preview/Report Viewer, HTML Users click on data values in the report to view related data
in another report.
Preview/Report Viewer, HTML Users click expand and collapse icons to view sections of a
report.
PDF The report server exports the current show or hide state of
the report to PDF. Interactive toggling is not supported
Excel Drilldown links and items that can be toggled are rendered
as collapsible outlines in Excel. You can expand and collapse
sections of the report in Excel. For more information about
Excel-imposed limitations, see Exporting to Microsoft Excel
(Report Builder and SSRS).
Word The report server exports the current show or hide state of
the report to PDF. Interactive toggling is not supported
Interactive sorting
EXP O RT O P T IO N SUP P O RT IN F O RM AT IO N
Preview/Report Viewer, HTML For tabular reports, users click sort arrows on column to
change how the data is sorted.
Preview/Report Viewer, HTML Users click links to open external Web pages in a new
browser window.
Bookmark or anchor
EXP O RT O P T IO N SUP P O RT IN F O RM AT IO N
Preview/Report Viewer, HTML Users click links to navigate to another section of the same
report.
Preview/Report Viewer, HTML A parameter input area appears at the top of the report.
This area is part of the HTML Viewer used to display reports
in a browser.
PDF The report server exports the report to PDF using the
parameter values currently in effect for the report.
Excel The report server exports the report to Excel using the
parameter values currently in effect for the report.
Word The report server exports the report to Word using the
parameter values currently in effect for the report.
Other The report server exports the report to other formats using
the parameter values currently in effect for the report.
Preview/Report Viewer, HTML The filtered data is displayed to the user at run time.
PDF The report server exports the report to PDF using filtered
data in the current report.
Excel The report server exports the report to Excel using filtered
data in the current report.
Word The report server exports the report to Word using filtered
data in the current report.
Other The report server exports the report to other formats using
filtered data in the current report.
See Also
Export Reports (Report Builder and SSRS)
Interactive Sort, Document Maps, and Links (Report Builder and SSRS)
Tables, Matrices, and Lists (Report Builder and SSRS)
Charts (Report Builder and SSRS)
Exporting to a CSV File (Report Builder and SSRS)
3/26/2020 • 5 minutes to read • Edit Online
The Comma-Separated Value (CSV) rendering extension renders paginated reports as a flattened representation
of data from a report in a standardized, plain-text format that is easily readable and exchangeable with many
applications.
The CSV rendering extension uses a string character delimiter to separate fields and rows, with the string
character delimiter configurable to be a character other than a comma. The resulting file can be opened in a
spreadsheet program like Microsoft Excel or used as an import format for other programs. The exported report
becomes a .csv file, and returns a MIME type of text/csv .
If you want to work with data related to charts, data bars, sparklines, gauges, and indicators in Microsoft Excel,
export the report to a CSV file, and then open the file in Microsoft Excel.
See Export Reports (Report Builder and SSRS) for details on how to export to CSV format.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
CSV Rendering
When rendered using the default settings, a CSV report has the following characteristics:
The default field delimiter string is a comma (,).
NOTE
You can change the field delimiter to any character that you want, including TAB, by changing the device
information settings. For more information, see CSV Device Information Settings.
The record delimiter string is the carriage return and line feed (<cr><lf>).
The text qualifier string is a quotation mark (").
The CSV renderer does not add qualifiers around all text strings. Text qualifiers are added only when the
value contains the delimiter character or when the value has a line break.
If the text contains an embedded delimiter string or qualifier string, the text qualifier is placed around the
text, and the embedded qualifier strings are doubled.
Formatting and layout are ignored.
The following items are ignored during rendering:
Page header
Page footer
Custom report items
Line
Image
Rectangle
Automatic subtotals
The remaining report items are sorted, from top to bottom, then left to right. Each item is then rendered to a
column. If the report has nested data items like lists or tables, the parent items are repeated in each record.
The following table indicates the appearance of report items when rendered:
Text box Renders the contents of the text box. In default mode, items
are formatted based on the item's formatting properties. In
compliant mode, formatting can be changed by device
information settings. For more information about CSV
rendering modes, see below.
List Renders a record for each detail row or instance in the list.
Chart Renders by creating a row for each chart value and member
labels. Labels from series and categories in hierarchies are
flattened and included in the row for a chart value.
Data bar Renders like a chart. Typically, a data bar does not include
hierarchies or labels.
Map Renders a row with the labels and values for each map
member of a map layer.
If the map has multiple layers the values in the rows varies
depending on whether the map layers use the same or
different map data regions. If multiple map layers use the
same data region, the rows contain data from all layers.
Hierarchical and Grouped Data
Hierarchical and grouped data must be flattened in order to be represented in the CSV format.
The rendering extension flattens the report into a tree structure that represents the nested groups within the
data region. To flatten the report:
A row hierarchy is flattened before a column hierarchy.
Columns are ordered as follows: text boxes in body order left-to-right, top-to-bottom followed by data
regions ordered left-to-right, top-to-bottom.
Within a data region, the columns are ordered as follows: corner members, row hierarchy members,
column hierarchy members, and then cells.
Peer data regions are data regions or dynamic groups that share a common data region or dynamic
ancestor. Peer data is identified by branching of the flattened tree.
For more information, see Tables, Matrices, and Lists (Report Builder and SSRS).
Renderer Modes
The CSV rendering extension can operate in two modes: one is optimized for Excel and the other is optimized for
third-party applications that require strict CSV compliance to the CSV specification in RFC 4180. Depending on
which mode you use, peer data regions are handled differently.
Default Mode
The default mode is optimized for Excel. When rendered in default mode, the report is rendered as a CSV file
with multiple sections of CSV-rendered data. Each peer data region is delimited by an empty line. Peer data
regions within the report body are rendered as separate blocks of data within the CSV file. The result is a CSV
file in which:
Individual text boxes within the report body are rendered once as the first block of data within the CSV
file.
Each top-level peer data region in the report body is rendered in its own data block.
Nested data regions are rendered diagonally into the same data block.
Formatting
Numeric values are rendered in their formatted state. Excel can recognize formatted numeric values, such as
currency, percentage and date, and format the cells appropriately when importing the CSV file.
Compliant Mode
Compliant mode is optimized for third-party applications.
Data Regions
Only the first row of the file contains the column headers and each row has the same number of columns.
Formatting
Values are unformatted.
Interactivity
Interactivity is not supported by either CSV formats generated by this renderer. The following interactive
elements are not rendered:
Hyperlinks
Show or Hide
Document Map
Drillthrough or clickthrough links
End user sort
Fixes headers
Bookmarks
See Also
Pagination in Reporting Services (Report Builder and SSRS)
Rendering Behaviors (Report Builder and SSRS)
Interactive Functionality for Different Report Rendering Extensions (Report Builder and SSRS)
Rendering Report Items (Report Builder and SSRS)
Tables, Matrices, and Lists (Report Builder and SSRS)
Exporting to Microsoft Excel (Report Builder and
SSRS)
3/5/2021 • 18 minutes to read • Edit Online
The Reporting Services Excel rendering extension renders a Reporting Services paginated report to the
Microsoft Excel format (.xlsx). With the Excel rendering extension, the width of columns in Excel more accurately
reflects the width of columns in reports.
The format is Office Open XML. The content type of files generated by this renderer is
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet and the file extension is .xlsx.
You can change some default settings for this renderer by changing the device information settings. For more
information, see Excel Device Information Settings.
See Export Reports (Report Builder and SSRS) for details on how to export to Excel.
IMPORTANT
When you define a parameter of type String , the user is presented with a text box that can take any value. If a report
parameter is not tied to a query parameter and the parameter values are included in the report, it is possible for a report
user to type expression syntax, script, or a URL into the parameter value, and render the report to Excel. If another user
then views the report and clicks the rendered parameter contents, the user may inadvertently execute the malicious script
or link.
To mitigate the risk of inadvertently running malicious scripts, open rendered reports only from trusted sources. For more
information about securing reports, see Secure Reports and Resources.
Excel Limitations
Microsoft Excel places limitations on exported reports due to the capabilities of Excel and its file formats. The
most significant are the following:
The maximum column width is limited to 255 characters or 1726.5 points. The renderer does not verify
that the column width is less than the limit.
The maximum number of characters in a cell is limited to 32,767. If this is exceeded, the renderer displays
an error message.
The maximum row height is 409 points. If the contents of the row cause the row height to increase
beyond 409 points, the Excel cell shows a partial amount of text up to 409 points. The rest of the cell
contents is still within the cell (up to Excel's max number of characters of 32,767).
Because the maximum row height is 409 points, if the defined height of the cell in the report is
something larger than 409 points, Excel splits the cell contents into multiple rows.
The maximum number of worksheets is not defined in Excel, but external factors, such as memory and
disk space, might causes limitations to be applied.
In outlines, Excel permits up to seven nested levels only.
If the report item that controls whether another item is toggled is not in the previous or next row or
column of the item being toggled, the outline is disabled also.
For more details about Excel limitations, see Excel specifications and limits.
Sizes of Excel 2003 (.xls) Files
IMPORTANT
The Microsoft Excel 2003 rendering extension is deprecated. For more information, see Deprecated Features in SQL Server
Reporting Services in SQL Server 2016.
When reports are first exported and saved to Excel 2003, they do not benefit from the file optimization that
Excel automatically applies to its *.xls workbook files. The larger file size can cause problems for e-mail
subscriptions and attachments. To reduce the size of the *.xls files for exported reports, open the *.xls files and
then resave the workbooks. Resaving the workbooks typically reduces their file sizes by 40 to 50 percent.
NOTE
In Excel 2003, approximately 1000 characters are displayed in an Excel cell on the worksheet but up to the maximum
number of characters can be edited in the formula bar. This limitation does not apply to current (.xlsx) Excel files.
NOTE
To work around this issue, increase the width of the text box in the report.
Images
The following limitations apply to images:
Background images for report items are ignored because Excel does not support background images for
individual cells.
The Excel rendering extension only supports the background image of the report body. If a report body
background image is displayed in the report, the image is rendered as a worksheet background image.
Rectangles
The following limitation apply to rectangles.
Rectangles in report footers are not exported to Excel. However, rectangles in the report body, tablix cells, and
so forth are rendered as a range of Excel cells.
Report Headers and Footers
The following limitations apply to report headers and footers:
Excel headers and footers support a maximum of 256 characters including markup. The rendering
extension truncates the string at 256 characters.
Reporting Services does not support margins on report headers and footers. When exported to Excel,
these margin values are set to zero and any header or footer that contains multiple rows of data might
not print multiple rows, depending on the printer settings.
Text boxes in a header or footer maintain their formatting but not their alignment when exported to Excel.
This occurs because leading and trailing spaces are trimmed when the report is rendered to Excel.
Merging Cells
The following limitation applies to merging cells:
If cells are merged, word-wrap does not work correctly. If any merged cells exist on a row where a text box is
rendered with the AutoSize property, autosize will not work.
The Excel renderer is primarily a layout renderer. Its goal is to replicate the layout of the rendered report as
closely as possibly in an Excel worksheet and consequently cells might be merged in the worksheet to preserve
the report layout. Merged cells can cause problems because the sort functionality in Excel requires cells to be
merged in a very specific way for sort to work properly. For example, Excel requires that the ranges of merged
cells have the same size in order to be sorted.
If it is important that reports exported to Excel worksheets can be sorted, then the following can help you
reduce the number of merged cells in your Excel worksheets, which is the common cause for difficulties with
Excel sort functionality.
Not aligning items left and right is the most common cause of merged cells. Make sure the left and right
edges of all report items line up with one another. Making items align and the same width will solve the
problem in the majority of cases.
Although you align all items precisely, you might find in some rare cases that some columns continue to
be merged. This could be caused by internal unit conversion and rounding when the Excel worksheet is
rendered. In the report definition language (RDL), you can specify position and size in different
measurement units such as inches, pixels, centimeters, and points. Internally the Excel uses points. To
minimize conversion and the potential inaccuracy of rounding when converting inches and centimeters
to points, consider specifying all measurements in whole points for the most direct results. One inch is 72
points.
Report Row Groups and Column Groups
Reports that include row groups or column groups contain empty cells when exported to Excel. Imagine a report
that groups rows on commute distance. Each commute distance can contain more than one customer. The
following picture shows the report.
When the report is exported to Excel, the commute distance appears only in one cell of the Commute Distance
column. Depending on the alignment of the text in the report (top, middle, or bottom) the value is in the first,
middle, or last cell. The other cells are empty. The Name column that contains customer names has no empty
cells. The following picture shows the report after it is exported to Excel. The red cell borders were added for
emphasis. The gray boxes are the empty cells. (Neither the red lines nor the gray boxes are part of the exported
report.)
This means that reports with row groups or column groups require modification after exporting to Excel and
before you can display the exported data in pivot table. You must add the group value to cells in which they are
missing to make the worksheet a flat table with values in all cells. The following picture shows the updated
worksheet.
So if you create a report for the specific purpose of exporting it to Excel for further analysis of the report data,
consider not grouping on rows or columns in your report.
Excel Renderer
Current (.xlsx) Excel File Renderer
In SQL ServerReporting Services, the default Excel renderer is the version compatible with current (.xlsx)
Microsoft Excel files. This is the Excel option on the Expor ting menus in the Reporting Services web portal and
SharePoint list.
When you use the default Excel renderer, instead of the earlier Excel 2003 (.xls) renderer, you can install the
Microsoft Office Compatibility Pack for Word, Excel, and PowerPoint to allow earlier versions of Excel to open the
files that are exported.
Excel 2003 (.xls) Renderer
IMPORTANT
The Microsoft Excel 2003 rendering extension is deprecated. For more information, see Deprecated Features in SQL Server
Reporting Services in SQL Server 2016.
The earlier version of the Excel renderer, compatible with Excel 2003, is now named Excel 2003 and is listed on
menus using that name. The content type of files generated by this renderer is application/vnd.ms-excel and
the file name extension of files is .xls.
By default, the Excel 2003 menu option is not visible. An administrator can make it visible under certain
circumstances by updating the RSReportServer configuration file. To export reports from SQL Server Data Tools
(SSDT) using the Excel 2003 renderer, you update the RSReportDesigner configuration file.
The Excel 2003 menu option extension is never visible in the following scenarios:
Report Builder in disconnected mode and you preview a report in Report Builder. Because the
RSReportServer configuration file resides on the report server, the tools or products from where you
export reports must be connected to a report server to read the configuration file.
Report Viewer Web Part in local mode and the SharePoint farm is not integrated with a Reporting
Services report server. For more information, see Local Mode vs. Connected Mode Reports in the Report
Viewer (Reporting Services in SharePoint Mode)
If the Excel 2003 menu option renderer is configured to be visible, both the Excel and Excel 2003 options are
available in the following scenarios:
Reporting Services web portal native mode.
SharePoint site when Reporting Services is installed in SharePoint integrated mode.
SQL Server Data Tools (SSDT) and you preview reports.
Report Builder connected to a report server.
The Report Viewer Web Part in remote mode.
The following XML shows the elements for the two Excel rendering extensions in the RSReportServer and
RSReportDesigner configuration files:
<Extension Name="EXCELOPENXML"
Type="Microsoft.ReportingServices.Rendering.ExcelOpenXmlRenderer.ExcelOpenXmlRenderer,Microsoft.ReportingServices.ExcelRendering"/>
<Extension Name="EXCEL"
Type="Microsoft.ReportingServices.Rendering.ExcelRenderer.ExcelRenderer,Microsoft.ReportingServices.ExcelRendering"
Visible="false"/>
The EXCELOPENXML extension defines the Excel renderer for current (.xlsx) Excel files. The EXCEL extension
defines the Excel 2003 version. Visible = "false" indicates the Excel 2003 renderer is hidden. For more
information, see RsReportServer.config Configuration File and RSReportDesigner Configuration File.
Differences Between the current (.xlsx) Excel and Excel 2003 Renderers
Reports, rendered by using the current (.xlsx) Excel or the Excel 2003 renderers are typically identical and only
under rare circumstances will you notice differences between the two formats. The following table compares the
Excel and the Excel 2003 renderers.
Because the report explicitly sets the row height, the default row height affects only rows that are sized
automatically upon export to Excel.
Document Properties
The Excel renderer writes the following metadata to the Excel file.
Author Report.Author
Description Report.Description
Interactivity
Some interactive elements are supported in Excel. The following is a description of specific behaviors.
Show and Hide
Microsoft Excel has limitations with how it manages hidden and displayed report items when they are exported.
Groups, rows, and columns that contain report items that can be toggled are rendered as Excel outlines. Excel
creates outlines that expand and collapse rows and columns across the entire row or column which can cause
the collapse of report items that are not intended to be collapsed. In addition, Excel's outlining symbols can
become cluttered with overlapping outlines. To address these issues, the following outlining rules are applied
when using the Excel rendering extension:
The report item in the top-left corner that can be toggled can continue to be toggled in Excel. Report
items that can be toggled and share vertical or horizontal space with the report item that can be toggled
in the top-left corner cannot be toggled in Excel.
To determine whether a data region will be collapsible by rows or columns, the position of the report
item that controls the toggling and the position of the report item that is toggled are determined. If the
item controlling the toggling appears before the item to be toggled, the item is collapsible by rows.
Otherwise, the item is collapsible by columns. If the item controlling the toggling appears beside and
above the area to be toggled equally, the item is rendered with row collapsible by rows.
To determine where the subtotals are placed in the rendered report, the rendering extension examines
the first instance of a dynamic member. If a peer static member appears immediately above it, the
dynamic member is assumed to be the subtotals. Outlines are set to indicate that this is summary data. If
there are no static siblings of a dynamic member, the first instance of the instance is the subtotal.
Due to an Excel limitation, outlines can be nested up to 7 levels only.
Document Map
If any document map labels exist in the report, a document map is rendered. The document map is rendered as
an Excel cover worksheet inserted at the first tab position in the workbook. The worksheet is named Document
map .
The text displayed in the document map is determined by the report item's or group's DocumentMapLabel
property. Document map labels are listed in the order that they appear in the report, starting at the first row, in
the first column. Each document map label cell is indented the number of levels deep it appears in the report.
Each level of indentation is represented by placing the label in a subsequent column. Excel supports up to 256
levels of outline nesting.
The document map outline is rendered as a collapsible Excel outline. The outline structure matches the nested
structure of the document map. The expand and collapse state of the outline starts at the second level.
The root node of the map is the report name, the <reportname>.rdl, and it is not interactive. The document map
links font is Arial, 10pt.
Drillthrough Links
Drillthrough links that appear in text boxes are rendered as Excel hyperlinks in the cell in which the text is
rendered. Drillthrough links for images and charts are rendered as Excel hyperlinks on the image when
rendered. When clicked, the drillthrough link opens the client's default browser and navigates to the HTML view
of the target.
Hyperlinks
Hyperlinks that appear in text boxes are rendered as Excel hyperlinks in the cell in which the text is rendered.
Hyperlinks for images and charts are rendered as Excel hyperlinks on the image when rendered. When clicked,
the hyperlink opens the client's default browser and navigates to the target URL.
Interactive Sorting
Excel does not support interactive sort.
Bookmarks
Bookmark links in text boxes are rendered as Excel hyperlinks in the cell in which the text is rendered. Bookmark
links for images and charts are rendered as Excel hyperlinks on the image when rendered. When clicked, the
bookmark goes to the Excel cell in which the bookmarked report item is rendered.
See Also
Pagination in Reporting Services (Report Builder and SSRS)
Rendering Behaviors (Report Builder and SSRS)
Interactive Functionality for Different Report Rendering Extensions (Report Builder and SSRS)
Rendering Report Items (Report Builder and SSRS)
Tables, Matrices, and Lists (Report Builder and SSRS)
Exporting to Microsoft Word (Report Builder and
SSRS)
11/2/2020 • 13 minutes to read • Edit Online
The Word rendering extension renders paginated reports to the Microsoft Word format (.docx). The format is
Office Open XML.
The content type of files generated by this renderer is application/vnd.openxmlformats-
officedocument.wordprocessingml.document and the file extension is .docx.
See Export Reports (Report Builder and SSRS) for details on how to export to Word.
After you export the report to a Word document, you can change the contents of your report and design
document-style reports such as mailing labels, purchase orders, or form letters.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
Pagination
After the report is opened in Word, Word repaginates the entire report again based on the page size.
Repagination may cause page breaks to be inserted in locations where you did not intend to add them and, in
some instances, may cause the exported report to have two successive page breaks in a row or add blank pages.
You can try to change Word's pagination by adjusting the page margins.
This renderer supports only logical page breaks.
Page Sizing
When the report is rendered, the Word page height and width are set by the following RDL properties: paper
size height and width, left and right page margins, and the top and bottom page margins.
Page Width
Word supports page widths that are up to 22 inches wide. If the report is wider than 22 inches, the renderer will
still render the report; however, Word will not display the report contents while in print layout view or reading
layout view. To view the data, switch to normal view or Web layout view. In these views, Word reduces the
amount of whitespace, thereby displaying more of your report contents.
When rendered, the report grows as wide as required, up to 22 inches, to display the contents. The minimum
width of the report is based on the RDL Width property in the Properties pane.
Document Properties
The Word renderer writes the following metadata to the DOCX file.
Report.Author Author
Report.Description Comments
This occurs because Word renderer parses the report for fields related to pagination such as PageNumber and
TotalPages and handles only simple reference, not calls to a function. In this case, the expression calls the
ToString function. The following two expressions are equivalent and both render correctly when you preview
the report in Report Builder or Report Designer or render the published report in a Reporting Services web
portal or a SharePoint library. However, the Word renderer parses only the second expression successfully and
renders the correct page numbers.
Complex expression: Expression is
="Average Sales " & Avg(Fields!YTDPurchase.Value, "Sales") & " Page Number " & Globals!PageNumber
To avoid this problem, use multiple text runs instead of one complex expression when you use expressions in
footers and headers. The following two expressions are equivalent. The first one is a complex expression the
second one uses text runs. The Word renderer parses only the second expression successfully.
Interactivity
Some interactive elements are supported in Word. The following is a description of specific behaviors.
Show and Hide
The Word renderer renders report items based on their state when rendered. If a report item's state is hidden,
the report item is not rendered in the Word document. If a report item's state is shown, the report item is
rendered in the Word document. Toggle functionality is not supported in Word.
Document Map
If any document map labels exist in the report, they are rendered as Word Table of Contents (TOC) labels on the
respective report items and groups. The document map label is used as the label text for the TOC labels. The
target link is positioned near the item on which the label is set. While a TOC is not created for you in the Word
document, you can build your own TOC using the document map labels that are rendered in the report.
Hyperlink and Drillthrough Links
Hyperlinks and drillthrough links on text box and image report items are rendered as hyperlinks in the Word
document. When you click the hyperlink, the default Web browser opens and navigates to the URL. When you
click the drillthrough hyperlink, the originating report server is accessed.
Interactive Sorting
The report contents are rendered based on how they are currently sorted within the report data region. Word
does not support interactive sorting. After the report is rendered, you can apply table sorting within Word.
Bookmarks
Bookmarks in the report are rendered as Word bookmarks. Bookmark links are rendered as hyperlinks that
connect to the bookmark labels within the document. Bookmark labels must be less than 40 characters long. The
only special character that can be used in a bookmark label is an underscore (_). Unsupported special characters
are stripped from the bookmark label name and, if the name is longer than 40 characters, the name is truncated.
If there are duplicate bookmark names in the report, the bookmarks are not rendered in Word.
NOTE
When you change the editing language in Microsoft Office Language Preferences or the Word Options dialog box
in Word, the change applies to all Office programs.
Word Limitations
The following limitations are applied by Microsoft Word:
Word tables support a maximum of 63 columns. If your report has more than 63 columns and you try to
render it, Word splits the table. The additional columns are placed adjacent to the 63 columns displayed
in the report body. Therefore, the report columns may not line up as expected.
Word supports a maximum page width of 22 inches wide and 22 inches high. If your content is wider
than 22 inches, some data may not be displayed in Print Layout view.
Word ignores page header and footer height settings.
After the report is exported, Word paginates the report again. This may cause additional page breaks to
be added to the rendered report.
Word does not repeat header rows on page two and greater, although you set the RepeatOnNewPage
property of the static header row in a tablix (table, matrix, or list) to True . You can define explicit page
breaks in your report to force header rows to appear on new pages. However, because Word applies its
own pagination to the rendered report exported to Word, results might vary and the header row might
not repeat predictably. The static header row is the row that contains the column headings.
Text boxes grow when they contain non-breaking spaces.
When text is exported to Word, text with font decoration in certain fonts may generate unexpected or
missing glyphs in the rendered report.
The Word renderer is compatible with Microsoft Word 2003 with the Microsoft Office Compatibility Pack for
Word, Excel, and PowerPoint installed. For more information, see Microsoft Office Compatibility Pack for Word,
Excel, and PowerPoint.
The previous version of the Word rendering extension, compatible with Microsoft Word 2003, is renamed to
Word 2003. Only the Word rendering extension is available by default. You must update the Reporting Services
configuration files to make the Word 2003 rendering extension available. The content type of files generated by
the Word 2003 renderer is application/vnd.ms-word and the file name extension of files is .doc.
In SQL Server Reporting Services, the default Word renderer is the version that renders to the Microsoft Word
format (.docx). This is the Word option that the Expor t menus in a Reporting Services web portal and
SharePoint list. The earlier version, compatible only with Microsoft Word 2003, is now named Word 2003 and is
listed on menus using that name. The Word 2003 menu option is not visible by default, but an administrator
can make it visible by updating the RSReportServer configuration file. To export reports from SQL Server Data
Tools (SSDT) using the Word 2003 renderer, you update the RSReportDesigner configuration file. However,
making the Word 2003 renderer visible does not make it available in all scenarios. Because the RSReportServer
configuration file resides on the report server, the tools or products from where you export reports must be
connected to a report server to read the configuration file. If you use tools or products in disconnected or local
mode, making the Word 2003 renderer visible has no effect. The Word 2003 menu option remains unavailable.
If you make the Word 2003 renderer visible in the RSReportDesigner configuration file, the Word 2003 menu
option is always available in SQL Server Data Tools (SSDT) report preview.
The Word 2003 menu option is never visible in the following scenarios:
Report Builder in disconnected mode and you preview a report in Report Builder.
Report Viewer Web Part in local mode and the SharePoint farm is not integrated with a Reporting
Services report server. For more information, see Local Mode vs. Connected Mode Reports in the Report
Viewer (Reporting Services in SharePoint Mode)
If the Word 2003 renderer is configured to be visible, both the Word and Word 2003 menu options are
available in the following scenarios:
Reporting Services web portal when Reporting Services is installed in native mode.
SharePoint site when Reporting Services is installed in SharePoint integrated mode.
SQL Server Data Tools (SSDT) and you preview reports.
Report Builder connected to a report server.
The Report Viewer Web Part in remote mode.
The following XML shows the elements for the two Word rendering extensions in the RSReportServer and
RSReportDesigner configuration files:
<Extension Name="WORDOPENXML"
Type="Microsoft.ReportingServices.Rendering.WordRenderer.WordOpenXmlRenderer.WordOpenXmlDocumentRenderer,Microsoft.ReportingServices.WordRenderi
<Extension Name="WORD"
Type="Microsoft.ReportingServices.Rendering.WordRenderer.WordDocumentRenderer,Microsoft.ReportingServices.WordRendering"
Visible="false"/>
The WORDOPENXML extension defines the Word renderer for Microsoft Word .docx files. The WORD extension
defines the Microsoft Word 2003 version. Visible = "false" indicates the Word 2003 renderer is hidden. For
more information, see RsReportServer.config Configuration File and RSReportDesigner Configuration File.
Differences Between the Word and Word 2003 Renderers
Reports, rendered by using the Word or Word 2003 renderers tend to be visually indistinguishable. However,
you might notice minor differences between the two the Word or Word 2003formats.
Next steps
Pagination in Reporting Services
Rendering Behaviors
Interactive Functionality for Different Report Rendering Extensions
Rendering Report Items
Tables, Matrices, and Lists
More questions? Try asking the Reporting Services forum
Rendering to HTML (Report Builder and SSRS)
3/25/2020 • 4 minutes to read • Edit Online
The HTML rendering extension renders a paginated report in HTML format. The rendering extension can also
produce fully formed HTML pages or fragments of HTML to embed in other HTML pages. All HTML is generated
with UTF-8 encoding.
The HTML rendering extension is the default rendering extension for reports that are viewed in a browser,
including when run in the SQL Server 2016 Reporting Services or later (SSRS) web portal. The HTML rendering
extension can render HTML as a fragment or as a full HTML document. If the HTML is a fragment, the HEAD ,
HTML , and BODY tags of the HTML document are removed. Only the contents of the BODY tag are rendered.
This is useful for embedding the HTML in the HTML produced by another application.
In some scenarios, report parameters can be used to launch script injection attacks when rendering reports to
HTML. For more information about securing reports, see Secure Reports and Resources.
For more information about browsers, see Browser Support for Reporting Services and Power View.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
Rendering in MHTML
The HTML rendering extension can also render reports in MHTML (MIME Encapsulation of Aggregate HTML
Documents). MHTML extends HTML to embed encoded objects, such as images, in the HTML document. Using
the MHTML rendering extension, you can embed resources such as images, documents, or other binary files as
MIME structures within the report HTML, into a single file. MHTML reports are also useful for embedding within
e-mail messages because all resources are included with the report. Although it is actually the HTML rendering
extension that renders MHTML, this functionality may also be referred to as the MHTML rendering extension.
Browser Support
This rendering extension supports the following browser versions:
Internet Explorer 5.5 and later
Firefox 1.5 and later
Safari 3.0 and later
Due to cross browser considerations, the rendered report may vary slightly from browser to browser. For
example, the text box contains a property called WritingMode. This property is not supported in Firefox.
Interactivity
Some interactive elements are supported in HTML. The following is a description of specific behaviors.
Show and Hide
A report item whose visibility can be toggled is rendered with a +/- toggle image and is clickable. When the
item is clicked, a call back to the server takes place in order to re-render the output with the changed show or
hide state.
Document Map
Document map labels are rendered and can be navigated to by using the document map in the viewer control.
For omitted data region headers, labels are rendered on the first child cell. If there is no child cell present, the
label is rendered on the child that precedes it.
Bookmarks
Bookmark links are rendered and appear as hyperlinks. Bookmark targets are rendered and can be navigated to
by clicking the bookmark links. When a bookmark link is clicked, the report goes to the first occurrence of the
target bookmark label and, when possible, the browser is scrolled so that the bookmark link is at the top of the
window. HTML anchor (<a>) tags are used to mark bookmark targets.
Interactive Sorting
If a text box has user sort defined, the HTML rendering extension renders the sort icons in the text box to the
right of its contents. If a report contains any text box where user sort is defined, JavaScript is rendered that
causes a postback to the server when the sort image is clicked.
Hyperlinks and Drillthrough
Hyperlinks and drillthrough links are rendered as hyperlinks on report items using the HTML anchor (<a>) tags
around the item on which they are defined.
Search
The Search feature allows users to search for a string of text within the report.
Additional search and find functionality is provided by the ReportViewer Web Forms control.
See Also
Pagination in Reporting Services (Report Builder and SSRS)
Rendering Behaviors (Report Builder and SSRS)
Interactive Functionality for Different Report Rendering Extensions (Report Builder and SSRS)
Rendering Report Items (Report Builder and SSRS)
Tables, Matrices, and Lists (Report Builder and SSRS)
Exporting to an Image File (Report Builder and
SSRS)
3/26/2020 • 2 minutes to read • Edit Online
The Image rendering extension renders a paginated report to a bitmap or metafile. By default, the Image
rendering extension produces a TIFF file of the report, which can be viewed in multiple pages. When the client
receives the image, it can be displayed in an image viewer and printed. This topic provides Image renderer-
specific information and describes exceptions to the rendering rules.
The Image rendering extension can generate files in any of the formats supported by GDI+: BMP, EMF, EMFPlus,
GIF, JPEG, PNG, and TIFF. For TIFF format, the file name of the primary stream is ReportName.tif. For all other
formats, which render as a single page per file, the file name is ReportName_Page.ext where. ext is the file
extension for the chosen format. To produce a file in another Image-supported format, specify any of the above
listed strings in the OutputFormatDeviceInfo setting.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
Interactivity
Interactivity is not supported in any Image formats generated by this renderer. The following interactive
elements are not rendered:
Hyperlinks
Show or Hide
Document Map
Drillthrough or clickthrough links
End user sort
Fixed headers
Bookmarks
See Also
Pagination in Reporting Services (Report Builder and SSRS)
Rendering Behaviors (Report Builder and SSRS)
Interactive Functionality for Different Report Rendering Extensions (Report Builder and SSRS)
Rendering Report Items (Report Builder and SSRS)
Tables, Matrices, and Lists (Report Builder and SSRS)
Exporting to a PDF File (Report Builder and SSRS)
6/8/2021 • 6 minutes to read • Edit Online
The PDF rendering extension renders Reporting Services paginated reports to files that can be opened in Adobe
Acrobat and other third-party PDF viewers that support PDF 1.3. Although PDF 1.3 is compatible with Adobe
Acrobat 4.0 and later versions, Reporting Services supports Adobe Acrobat 11.0 or later. The rendering
extension does not require Adobe software to render the report. However, PDF viewers such as Adobe Acrobat
are required to view or print a report in PDF format.
The PDF rendering extension supports ANSI characters and can translate Unicode characters from Japanese,
Korean, Traditional Chinese, Simplified Chinese, Cyrillic, Hebrew, and Arabic with certain limitations. For more
information about the limitations, see Export Reports (Report Builder and SSRS). The PDF rendering extension
also conforms to ISO 14289-1 (PDF/UA) standards for Accessible PDF. See PDF Rendering Extension
conformance to ISO 14289-1, Power BI Report Server & SSRS for details.
The PDF renderer is a physical page renderer and, therefore, has pagination behavior that differs from other
renderers such as HTML and Excel. This topic provides PDF renderer-specific information and describes
exceptions to the rules.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
Font Embedding
When possible, the PDF rendering extension embeds the subset of each font that is needed to display the report
in the PDF file. Fonts that are used in the report must be installed on the report server. When the report server
generates a report in PDF format, it uses the information stored in the font referenced by the report to create
character mappings within the PDF file. If the referenced font is not installed on the report server, the resulting
PDF file might not contain the correct mappings and might not display correctly when viewed.
Fonts are embedded in the PDF file when the following conditions apply:
Font embedding privileges are granted by the font author. Installed fonts include a property that indicates
whether the font author intends to allow embedding a font in a document. If the property value is
EMBED_NOEMBEDDING, the font is not embedded in the PDF file. For more information, see
"TTGetEmbeddingType" on msdn.microsoft.com.
The Font is TrueType.
Fonts are referenced by visible items in a report. If a font is referenced by an item that has the Hidden
property set to True, the font is not needed to display rendered data and will not be included in the file.
Fonts are embedded only when they are needed to display the rendered report data.
If all of these conditions are met for a font, the font is embedded in the PDF file. If one or more of these
conditions is not met, the font is not embedded in the PDF file.
NOTE
Although the conditions are met, there is one circumstance under which fonts are not embedded in the PDF file. If the
fonts used are the ones in the PDF specification that are commonly known as standard type 1 fonts or the base fourteen
fonts, then fonts are not embedded for ANSI content.
Metadata
In addition to the report layout, the PDF rendering extension writes the following metadata to the PDF
Document Information Dictionary.
P DF P RO P ERT Y C REAT ED F RO M
Interactivity
Some interactive elements are supported in PDF. The following is a description of specific behaviors.
Show and Hide
Dynamic show and hide elements are not supported in PDF. The PDF document is rendered to match the current
state of any items in the report. For example, if the item is displayed when the report is run initially, then the
item is rendered. Images that can be toggled are not rendered, if they are hidden when the report is exported.
Document Map
If there are any document map labels present in the report, a document outline is added to the PDF file. Each
document map label appears as an entry in the document outline in the order that it appears in the report. In
Acrobat, a target bookmark is added to the document outline only if the page it is on is rendered.
If only a single page is rendered, no document outline is added. The document map is arranged hierarchically to
reflect the level of nesting in the report. The document outline is accessible in Acrobat under the Bookmarks tab.
Clicking an entry within the document outline causes the document to go to the bookmarked location.
Bookmarks
Bookmarks are not supported in PDF rendering.
Drillthrough Links
Drillthrough links are not supported in PDF rendering. The drillthrough links are not rendered as clickable links
and drillthrough reports cannot connect to the target of the drillthrough.
Hyperlinks
Hyperlinks in reports are rendered as clickable links in the PDF file. When clicked, Acrobat will open the default
client browser and navigate to the hyperlink URL.
Compression
Image compression is based on the original file type of the image. The PDF rendering extension compresses PDF
files by default.
To preserve any compression for images included in the PDF file when possible, JPEG images are stored as JPEG
and all other image types are stored as BMP.
NOTE
PDF files don't support embedding PNG images.
See Also
Pagination in Reporting Services (Report Builder and SSRS)
Rendering Behaviors (Report Builder and SSRS)
Interactive Functionality for Different Report Rendering Extensions (Report Builder and SSRS)
Rendering Report Items (Report Builder and SSRS)
Tables, Matrices, and Lists (Report Builder and SSRS)
Exporting to XML (Report Builder and SSRS)
3/26/2020 • 7 minutes to read • Edit Online
The XML rendering extension returns a paginated report in XML format. The schema for the report XML is
specific to the report, and contains data only. Layout information is not rendered and pagination is not
maintained by the XML rendering extension. The XML generated by this extension can be imported into a
database, used as an XML data message, or sent to a custom application.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
Report Items
The following table describes how report items are rendered.
Data regions Renders as an element within the element for its container.
Data regions include table, matrix, and list that display data
as text and chart, data bars, sparklines, gauges, and
indicators that visualize data.
Group and detail sections Each instance renders as an element within the element for
its container.
Data bar Renders as an element within the element for its container,
similar to a chart. Typically, a data bar does not include
hierarchies or labels, only values.
IT EM REN DERIN G B EH AVIO R
Reports that are rendered using the XML rendering extension also follow these rules:
XML elements and attributes are rendered in the order that they appear in the report definition.
Pagination is ignored.
Page headers and footers are not rendered.
Hidden items that cannot be made visible by toggling are not rendered. Initially visible items and hidden
items that can be made visible through a toggle are rendered.
Images, lines, and custom repor t items are ignored.
Data Types
The text box element or attribute is assigned an XSD data type based on the values that the text box displays.
Decimal (or Decimal and any integer or byte data type) xsd:decimal
Float (or Decimal and any integer or byte data type) xsd:float
Double (or Decimal and any integer or byte data type) xsd:double
Time xsd:string
Boolean xsd:boolean
Other xsd:string
NAME VA L UE
Report Report.DataElementName
Text boxes
Text boxes are rendered as elements or attributes according to the DataElementStyle RDL property. The name of
the element or attribute comes from the TextBox.DataElementName RDL property.
Charts, Data Bars, and Sparklines
Charts ,data bars, and sparklines are rendered in XML. The data is structured.
Gauges and Indicators
Gauges and indicators are rendered in XML. The data is structured.
Subreports
A subreport is rendered as an element. The name of the element is taken from the DataElementName RDL
property. The TextBoxesAsElements property setting of the report overrides that of the subreport. Namespace
and XSLT attributes are not added to the subreport element.
Rectangles
A rectangle is rendered as an element. The name of the element is taken from the DataElementName RDL
property.
Custom Report Items
CustomReportItems (CRI) are not visible to the rendering extension. If a custom report item exists in the report,
the rendering extension renders it as a conventional report item.
Images
Images are not rendered.
Lines
Lines are not rendered.
Tables, Matrices, and Lists
Tables, matrices, and lists, are rendered as an element. The name of the element comes from the Tablix
DataElementName RDL property.
Rows and Columns
Columns are rendered within rows.
Tablix Corner
The corner is not rendered. Only the contents of the corner are rendered.
Tablix Cells
Tablix cells are rendered as elements. The name of the element is taken from the cell's DataElementName RDL
property.
Automatic Subtotals
Tablix automatic subtotals are not rendered.
Row and Column Items that Do Not Repeat with a Group
Items that do not repeat with a group, such as labels, subtotals and totals, are rendered as elements. The name
of the element comes from the TablixMember.DataElementName RDL property.
The TablixMember.DataElementOutput RDL property controls whether a non-repeating item is rendered.
If the DataElementName property of the Tablix member is not provided, a name for the non-repeating item is
dynamically generated in this form:
RowX For non-repeating rows, where X is a zero-based row index within the current parent.
ColumnY For non-repeating columns, where Y ix a zero-based column index within the current parent.
A non-repeating header is rendered as a child of the row or column that does not repeat with a group.
If a non-repeating member has no corresponding Tablix cells, it is not rendered. This may occur in the case of a
Tablix cell where it spans more than one column.
Rows and Columns that Repeat with a Group
Rows and columns that repeat within a group are rendered according to Tablix.DataElementOutput rules. The
name for the element is taken from the DataElementName property.
Each unique value within a group is rendered as a child element of the group. The name for the element is taken
from the Group.DataElementName property.
If the DataElementOutput property value equals Output, a repeating item's header is rendered as a child of the
detail element.
Duplicate Names
If there are duplicate data element names within the same scope, the renderer displays an error message.
XSLT Transformations
The XML renderer can apply a server-side XSLT transformation to the original XML data. When an XSLT is
applied, the renderer outputs the transformed content instead of the original XML data. The transformation
occurs on the server, not on the client.
The XSLT to apply to the output is defined either in the report definition file with the DataTransform property of
the report or with the XSLT DeviceInfo parameter. If either of these values are set, the transform occurs each
time the XML renderer is used. When using subscriptions, the XSLT must be defined in the RDL DataTransform
property.
If an XSLT file is specified, by both the DataTransform definition property and the device information setting, the
XSLT specified in DataTransform occurs first, followed by the XSLT set by the device information settings.
Device Information Settings
You can change some default settings for this renderer by changing the device information settings, including
the following:
A transformation (XSLT) to apply to the XML.
The MIME type of the XML document.
Whether to apply format strings to data.
Whether to indent the XML output.
Whether to include the XML schema name.
The encoding for the XML document.
The file extension of the XML document.
For more information, see XML Device Information Settings.
See Also
Pagination in Reporting Services (Report Builder and SSRS)
Rendering Behaviors (Report Builder and SSRS)
Interactive Functionality for Different Report Rendering Extensions (Report Builder and SSRS)
Rendering Report Items (Report Builder and SSRS)
Tables, Matrices, and Lists (Report Builder and SSRS)
Generating Data Feeds from Reports (Report
Builder and SSRS)
3/26/2020 • 10 minutes to read • Edit Online
The Reporting Services Atom rendering extension generates an Atom service document that lists the data feeds
available from a paginated report and the data feeds from the data regions in a report. You use this extension to
generate Atom-compliant data feeds that are readable and exchangeable with applications that can consume
data feeds generated from reports. For example, you can use the Atom rendering extension to generated data
feeds that you can then use in Power Pivot or Power BI.
The Atom service document lists at least one data feed for each data region in a report. Depending on the type
of data region and the data that the data region displays, Reporting Services might generate multiple data feeds
from a data region. For example, a matrix or chart can provide multiple data feeds. When the Atom rendering
extension creates the Atom service document, a unique identifier is created for each data feed and you use the
identifier in the URL to access the content of the data feed.
The way that the Atom rendering extension generates data for a data feed is similar to how the Comma-
Separated Value (CSV) rendering extension renders data to a CSV file. Like a CSV file, a data feed is a flattened
representation of the report data. For example, a table with a row group that sums the sales within a group
repeats the sum in every data row and there is no separate row that contains only the sum.
You can generate Atom service documents and data feeds using the Reporting Services web portal, Report
Server, or a SharePoint site that is integrated with Reporting Services.
Atom applies to a pair of related standards. The Atom service document conforms to the RFC 5023 Atom
publishing protocol specification and the data feeds conform to the RFC 4287 Atom syndication format protocol
specification.
The following sections provide additional information about how to use the Atom rendering extension:
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in
SQL Server Data Tools. Each authoring environment provides different ways to create, open, and save reports
and related items.
The Atom service document generated from this report includes three data feeds, one for each table and one for
the chart.
The matrix data regions might have more than one data feed, depending on the structure of the matrix. The
following diagram shows a report that uses a matrix that generates two data feeds.
The Atom service document generated from this report includes two data feeds, one for each of the dynamic
peer columns: Territory and Year. The following diagram shows the content of each data feed.
Data Feeds
The data feed is an XML file that has a consistent tabular format that does not change over time and variable
data that can be different each time the report is run. The data feeds generated by Reporting Services are in the
same format as those generated by that ADO.NET Data Services.
A data feed contains two sections: header and data. The Atom specification defines the elements in each section.
The header includes information such as the character encoding schema to use with the data feeds.
Header Section
The following XML code shows the header section of a data feed.
<?xml version="1.0" encoding="utf-8" standalone="yes"?><feed
xmlns:d="https://schemas.microsoft.com/ado/2007/08/dataservices"
xmlns:m="https://schemas.microsoft.com/ado/2007/08/dataservices/metadata"
xmlns="http://www.w3.org/2005/Atom">
<title type="text"></title>
<id>uuid:1795992c-a6f3-40ec-9243-fbfd0b1a5be3;id=166321</id>
<updated>2009-05-08T23:09:58Z</updated>
Data Section
The data section of the data feeds contains one <entr y > element for each row in the flattened rowset generated
by the Atom rendering extension.
The following diagram shows a report that uses groups and totals.
The following XML shows an <entr y > element from that report in a data feed. Notice that the <entr y >
element includes the totals of the sales and orders for the group and the totals of sales and orders for all the
groups. The <entr y > element includes all values on the report.
<entry><id>uuid:1795992c-a6f3-40ec-9243-fbfd0b1a5be3;id=166322</id><title type="text"></title><updated>2009-
05-08T23:09:58Z</updated><author /><content type="application/xml"><m:properties>
<d:ProductCategory_Value>Accessories</d:ProductCategory_Value>
<d:OrderYear_Value m:type="Edm.Int32">2001</d:OrderYear_Value>
<d:SumLineTotal_Value m:type="Edm.Decimal">20235.364608</d:SumLineTotal_Value>
<d:SumOrderQty_Value m:type="Edm.Int32">1003</d:SumOrderQty_Value>
<d:SumLineTotal_Total_2_1 m:type="Edm.Decimal">1272072.883926</d:SumLineTotal_Total_2_1>
<d:SumOrderQty_Total_2_1 m:type="Edm.Double">61932</d:SumOrderQty_Total_2_1>
<d:SumLineTotal_Total_2_2 m:type="Edm.Decimal">109846381.399888</d:SumLineTotal_Total_2_2>
<d:SumOrderQty_Total_2_2 m:type="Edm.Double">274914</d:SumOrderQty_Total_2_2></m:properties></content>
</entry>
List Renders a record for each detail row or instance in the list.
Chart Renders a record with all chart labels for each chart value.
Labels from series and categories in hierarchies are flattened
and included in the row for a chart value.
Data bar Renders like a chart. Typically, a data bar does not include
hierarchies or labels.
Map Generates a data feed for each map data region. If multiple
map layers use the same data region, the data feed includes
all of them. The data feed includes a record with the labels
and values for each map member of the map layer.
Device Information Settings
You can change some default settings for this renderer, including the encoding schema to use. For more
information, see ATOM Device Information Settings.
Next steps
Exporting to a CSV File
Export Reports
More questions? Try asking the Reporting Services forum
Generate Data Feeds from a Report (Report Builder
and SSRS)
3/26/2020 • 2 minutes to read • Edit Online
You can generate Atom-compliant data feeds from paginated reports, and then use the data feeds in
applications, such as Power Pivot, or Power BI, that can consume data feeds.
The Reporting Services Atom rendering extension generates an Atom service document that lists the data feeds
available from a report. The document lists at least one data feed for each data region in the report. Depending
on the type of data region and the data that the data region displays, Reporting Services might generate
multiple data feeds from a data region.
Atom service document contains a unique identifier for each the data feed and you use the identifier in a URL to
view the content of the data feed.
For more information, see Generating Data Feeds from Reports (Report Builder and SSRS).
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
NOTE
By default, the document name is the report name.
7. Verify the document type is ATOMSVC File , and then click Save .
8. Optionally, open the .atomsvc file in a browser or text or XML editor.
To view an Atom-compliant data feed
1. If the Atom service document is not already open, locate it and open it in a browser such as Internet
Explorer.
2. Copy the URL of the data feed that you want to view from the Atom service document to the browser.
The format of the URL is the following:
https://<server name>/ReportServer?%2f<ReportName>rs%3aCommand=Render&rs%3aFormat=ATOM&rc%3aDataFeed=
<Identifier>
3. Press ENTER.
A message appears asking you if you want to save or open the atom document that contains the data
feed.
4. Click Save to save the document to the file system, or click Open to view the data feed before saving.
5. Browse to the location to save the document.
6. Optionally, change the name of the document.
NOTE
By default the document name is the report name. If the Atom service document has multiple feeds, by default all
use the same name, the report name. To differentiate them, rename them to use meaningful names.
7. Verify the document type is ATOM File , and then click Save .
8. Optionally, open the .atom file in a browser or text editor or XML editor.
Next steps
Export Reports
More questions? Try asking the Reporting Services forum
Work Around the Excel 2003 Row Limitation
3/25/2020 • 2 minutes to read • Edit Online
This topic explains how to work around the Excel 2003 row limitation when you export paginated reports to
Excel. The workaround is for a report that contains only a table.
IMPORTANT
The Microsoft Excel 2003 (.xls) rendering extension is deprecated. For more information, see Deprecated Features in SQL
Server Reporting Services in SQL Server 2016.
Excel 2003 supports a maximum of 65,536 rows per worksheet. You can work around this limitation by forcing
an explicit page break after a certain number of rows. The Excel renderer creates a new worksheet for each
explicit page break.
To create an explicit page break
1. Open the report in SQL Server Data Tools - Business Intelligence or the Reporting Services web portal.
2. Right click the Data row in the table, and then click Add Group > Parent Group to add an outer table
group.
3. Enter the following formula in the Group by expression box, and then click OK to add the parent group.
=Int((RowNumber(Nothing)-1)/65000)
The formula assigns a number to each set of 65000 rows in the dataset. When a page break is defined for
the group, the expression results in a page break every 65000 rows.
Adding the outer table group adds a group column to the report.
4. Delete the group column by right-clicking on the column header, clicking Delete Columns , selecting
Delete columns only , and then click OK .
5. Right click Group 1 in the Row Groups section, and then click Group Proper ties .
6. On the Sor ting page of the Group Proper ties dialog box, select the default sorting option and click
Delete .
7. On the Page Breaks page, click Between each instance of a group and then click OK .
8. Save the report. When you export it to Excel, it exports to multiple worksheets and each worksheet
contains a maximum of 65000 rows.
Print Reports - Reporting Services (SSRS)
3/25/2020 • 2 minutes to read • Edit Online
After you save a report to a report server, you can view and print the report from the web portal or any
application that you use to view an exported report. Before saving a report, you can print it when you preview it.
All print processing is performed on demand and on the client computer. There is no server-side print
functionality that enables you to route a print job directly from a report server to a printer that is attached to the
Web server. Printers and print options are selected by individual report users by using a standard Print dialog
box.
Report authors who design reports specifically for print output can use page breaks, page headers and footers,
expressions, and background images to create a print-based design. Examples of report design elements
intended for print output might include terms and conditions that you print on the back of every report, or
graphic and text elements that mimic letterhead.
Due to the way pagination is implemented for different rendering formats, you might not be able to achieve
optimum print output results for every report in every rendering format. The following list provides examples:
1. Report pages are designed to accommodate variable amounts of data. Reports that include a matrix, for
example, can cause a page to grow both horizontally and vertically depending on whether a user
interactively toggles rows and columns. A user who does not expand a matrix will get different print
results than a user who does.
2. You cannot combine landscape and portrait mode pages in the same report, nor is there a way to create a
print-based layout that replaces or exists alongside the layout of a report as rendered in a browser or
other application.
3. For most exported reports, report printouts include everything that is visible on the report, as viewed by
the user on a computer monitor. White space from the report design surface is preserved. To add or
remove extra blank pages horizontally, change the report page width.
NOTE
HTML report printouts may contain only the content on the first page if you are using the browser's Print command. You
can achieve better results if you print HTML reports using the Reporting Services client printing functionality. For more
information, see Print Reports from a Browser with the Print Control (Report Builder and SSRS).
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
In This Section
Print Reports from a Browser with the Print Control (Report Builder and SSRS)
Describes how to use client-side printing to print reports from the web portal.
Print Reports from Other Applications (Report Builder and SSRS)
Describes how to print reports exported to another application.
Print a Report (Report Builder and SSRS)
Provides step-by-step instructions on how to print a report, how to control the margins on a page, and on how
to specify the paper size for reports that will be rendered by hard-page break renderers: PDF, Image, or Print.
See Also
Export Reports (Report Builder and SSRS)
Page Headers and Footers (Report Builder and SSRS)
Images (Report Builder and SSRS)
Pagination in Reporting Services (Report Builder and SSRS)
Print Reports from a Browser with the Print Control
(Report Builder and SSRS)
3/25/2020 • 2 minutes to read • Edit Online
Although a browser is the most common client application used to view a report, browser print functionality is
not ideal for printing reports. Print functionality in a browser is designed for printing Web pages. Typically,
pages that you print from a browser include all of the visual elements that are on a Web page, plus header and
footer information that identifies the page or Web site. Printing from a browser prints the contents of the
current window. For a multipage report, the browser prints the first page at most, and possibly less if the report
page extends beyond the dimensions of a printed page.
To improve the print quality of reports that you view in a browser and to print multiple pages, you can use the
client-side print functionality provided in SQL Server Reporting Services. Client-side printing provides a
standard Print dialog box that can be used to select a printer, specify pages and margins, and preview the report
before you print. Client-side printing is intended to be used in place of the Print command on the browser's File
menu. When you use client-side printing, the report is printed as it was designed, without the extra elements
you see in a Web page print out.
To use client-side printing, you need to install a Microsoft ActiveX control. For more information, see Enable and
Disable Client-Side Printing for Reporting Services.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
Print Options
To configure print properties for your report, in the Print dialog box, click the Proper ties button. Paper size is
determined by the default height and width of the report page size as defined in the report definition. The
available values are dependent on the printer type and its capabilities. Width and height display default values
as determined by the print drivers that are configured on the computer. Changing these values causes the report
to print using the new dimensions. Page width and height are each determined by Orientation , which is set to
either Por trait or Landscape . The default orientation displayed is dependent on the page width and page
height of the report.
NOTE
The Print dialog box and the default printer settings for width, height, and page orientation are determined by the report
definition.
Print Preview
To preview a report, in the Print dialog box, click the Preview button. Clicking preview opens the first page of
the report in a separate preview window. Additional pages are made available as the report is rendered on the
report server. A previewed report is rendered in EMF format. You can navigate to the previous or next page until
the last page is reached, and the Next button is disabled.
Adjusting Print Margins
You can modify the print margins in the rendered EMF report prior to printing the report. To do this, in the Print
dialog box, click the Preview button. At the top of the preview page, click the Margins button. The Margins
dialog box is displayed. Configure the top, bottom, right, and left margins as desired. Click OK . The dialog box
closes and the settings are stored for rendering preview and printing.
See Also
Print Reports (Report Builder and SSRS)
Print a Report (Report Builder and SSRS)
Print Reports from Other Applications (Report
Builder and SSRS)
11/2/2020 • 2 minutes to read • Edit Online
Report Builder provides an export option that allows you to easily view a report in other applications. The
Expor t command is available on the report toolbar that appears at the top of a report when you open it in a
browser or Web-based application. Exporting a report displays it in a different application (for example,
exporting a report to Excel opens the report in Microsoft Excel). For printing purposes, exporting a report is
recommended only if the application has specific printing features that you want to use.
To export a report to another application, you must have that application installed. For example, you must have
Adobe Acrobat Reader installed on your computer before you can export to the Acrobat (PDF) format. If you
choose to export a report to TIFF format, the report server places the report in a viewing application that is
associated with the TIFF file type. Although the application used depends on which version of Microsoft
Windows you have, typically this tool is Windows Picture and Fax Viewer. The default resolution corresponds to
a screen resolution of 96 dots per inch (DPI). You can increase the resolution in Windows Picture and Fax Viewer
to 300 DPI or 600 DPI to match the capabilities of your printer. For more information about adjusting the
resolution, see the Windows product documentation.
If you choose Web archive (also known as MHTML), the report is exported to your default browser. Printing
from the browser may result in report path information being added at the bottom of every page. In most cases,
you can set browser options to omit path information on a printed page. For more information, see the product
documentation for the browser you are using.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
See Also
Print a Report (Report Builder and SSRS)
Print Reports from a Browser with the Print Control (Report Builder and SSRS)
Export Reports (Report Builder and SSRS)
Export a Report as Another File Type (Report Builder and SSRS)
Finding, Viewing, and Managing Reports (Report Builder and SSRS )
Print a Report (Report Builder and SSRS)
11/2/2020 • 3 minutes to read • Edit Online
After you save a report to a report server, you can view and print the report from a browser, the Reporting
Services web portal, or any application that you use to view an exported report. Before saving a report, you can
print it when you preview it.
When you print a report, you can specify the size of the paper to use. The size of the paper determines the
number of pages in a report and which report data fits on each page. Paper size affects only reports that are
rendered with hard page-break renders: PDF, Image, and Print. Setting the paper size has no effect on other
renderers. For more information, see Rendering Behaviors (Report Builder and SSRS).
From the report viewer toolbar in the Reporting Services web portal or in preview in Report Builder, you can
export a report to a hard page-break renderer or click the Print button to print a copy of the report. You might
need to set the paper size or other page setup properties. Use the Repor t Proper ties dialog box to change
page setup properties, including paper size.
You can specify print page margins in two different locations: in design mode and in run mode.
Design mode. When you set page margins in design mode, these settings are saved in the report
definition when you save the report.
Run mode. When you set page margins in run mode, this information is not saved in the report
definition. The next time you print the report, you will get the settings from the report definition, unless
you indicate your print margins again.
NOTE
Print margins are not displayed in design or run modes. There is no relationship between the design surface area
and the print area of your report. To see print margins, in run mode, click Print Layout on the Run tab on the
Ribbon.
For more information about report paging, see Pagination in Reporting Services (Report Builder and SSRS).
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
5. Click Print .
6. In the Print dialog box, select a printer and specify other printing options.
To print a report from a Web browser application
1. In the Reporting Services web portal, navigate to the report that you want to print. Open the report.
2. On the toolbar at the top of the report, click Print .
NOTE
The first time you print an HTML report, the report server prompts you to install an ActiveX control used for
printing. You must install and configure the control to print.
3. In the Print dialog box, select a printer, and then click Prin t.
To print a report from other applications
1. In the Reporting Services web portal, navigate to the report that you want to print. Open the report.
2. On the toolbar at the top of the report, select a rendering format, and then click Expor t . The report opens
in a viewer application that corresponds to the rendering format.
For example, if you select PDF, the report opens in Adobe Acrobat Reader.
3. On the File menu in that program, click Print .
To change paper size
1. Right-click outside of the report body and click Repor t Proper ties .
2. In Page Setup , select a value from the Paper Size list. Each option populates the Width and Height
properties. You can also specify a custom size by typing numeric values in the Width and Height boxes.
Click OK .
NOTE
Size values have a default unit based on the user's locale settings. To designate a different unit, type a physical unit
designator such as cm, mm, pt, or pc after the numeric value.
See Also
Print Reports (Report Builder and SSRS)
Export Reports (Report Builder and SSRS)
Report Properties Dialog Box, Page Setup (Report Builder)
Report Design View (Report Builder)
Print a Report (Reporting Services in SharePoint
Mode)
3/5/2021 • 3 minutes to read • Edit Online
For a report server that runs in SharePoint mode, there are three ways to print a report from a SharePoint Web
application:
From a SharePoint site Choose Print from the Actions menu that appears in the report toolbar when
you open the report. This provides Reporting Services print functionality, which includes a standard Print
dialog box used to select a printer, specify pages and margins, and preview the report. This print feature is
intended to be used in place of the Print command on a browser's File menu. When you print reports this
way, the report is printed as it was designed, without the extra elements you see in a Web page print out.
From a browser The print features of a browser work best for HTML reports that fit on a single page.
Typically, pages that you print from a browser include all of the visual elements that are on a Web page,
plus header and footer information that identifies the page or Web site. When you print from a browser,
only the contents of the current window are printed. If the report is long, the browser prints only a
portion of the report (typically just the first page).
From a target application You can export a report to use the print features of a target application, such
as Microsoft Office Excel or Adobe Acrobat Reader. Some application formats, such as TIFF or PDF, are
ideally suited for printing multipage reports. When you export a report to a desktop application, you can
use any specialized print features that the application provides. To export a report, choose Expor t from
the Actions menu that appears in the report toolbar when you open the report.
NOTE
To print a report, you must have permission to view it.
For best results when printing a report from a Web page, use Print on the Actions menu. The Print action is
tied to a client print control that is downloaded from the report server. The download occurs once, the first time
you select Print .
Report authors can design reports specifically for print output or for a specific application format. Recognize
that due to the way pagination is implemented for different application formats, you may not be able to achieve
optimum print output results for every report in every export format. In contrast with reports that are designed
for print output, on-screen report pages are designed to accommodate variable amounts of data. For example,
reports that include a matrix can cause a page to grow both horizontally and vertically depending on how you
expand the rows and columns. When printing a variable sized report, a user who does not expand a matrix will
get different print results than a user who does. For most exported reports, report printouts include everything
that is visible on the report, as viewed by the user on a computer monitor.
How to print reports from the Actions menu
1. Open the report.
2. On the Actions menu, click Print . If you do not see the Actions menu, the report toolbar has been
hidden and you cannot use the features it provides. If you have an Actions menu but Print is not on it,
the print functionality has been disabled on the report server and you cannot use it.
3. In the Print dialog box, select the printer and settings you want to use and click OK .
To modify the default settings, click the Proper ties button. Page size is determined by the default height
and width of the report page size as defined in the report definition. The extent to which you can change
page dimensions depends on the capabilities of the printer you are using.
To view the report before you print it, click the Preview button. This opens the first page of the report in
a separate preview window. Additional pages are made available as the report is rendered on the report
server. A previewed report is rendered in EMF format. You can navigate to the previous or next page until
the last page is reached, and the Next button is disabled. To modify the print margins in the preview
page, click the Margins button. The Margins dialog box is displayed. Configure the top, bottom, right,
and left margins and click OK . The dialog box closes and the settings are stored for rendering preview
and printing.
See Also
Enable and Disable Client-Side Printing for Reporting Services
Intro to Report Data in SQL Server Reporting
Services (SSRS)
11/2/2020 • 7 minutes to read • Edit Online
Report data can come from multiple sources of data in your organization. Your first step in designing a report is
to create data sources and datasets that represent the underlying report data. Each data source includes data
connection information. Each dataset includes a query command that defines the set of fields to use as data
from a data source. To visualize data from each dataset, add a data region, such as a table, matrix, chart, or map.
When the report is processed, the queries run on the data source, and each data region expands as needed to
display the query results for the dataset.
NOTE
Reporting Services integration with SharePoint is no longer available after SQL Server 2016.
1. Data sources in the Repor t Data pane A data source appears in the Report Data pane after you
create an embedded data source or add a shared data source.
2. Connection Dialog Box Use the Connection Dialog Box to build a connection string or to paste a
connection string.
3. Data connection information The connection string is passed to the data extension.
4. Credentials Credentials are managed separately from the connection string.
5. Data Extension/Data Provider Connecting to the data can be through multiple data access layers.
6. External data sources Retrieve data from relational databases, multidimensional databases, SharePoint
lists, or Web services.
Defining terms
Data connection. Also known as a data source. A data connection includes a name and connection
properties that are dependent on the connection type. By design, a data connection does not include
credentials. A data connection does not specify which data to retrieve from the external data source. To do
that, you specify a query when you create a dataset.
Data source definition. A file that contains the XML representation of a report data source. When you
publish a report, its data sources are saved on the report server or SharePoint site as data source
definitions, independent of the report definition. For example, a report server administrator might update
the connection string or credentials. On a native report server, the file type is .rds. On a SharePoint site,
the file type is .rsds.
Connection string. A connection string is a string version of the connection properties that are needed
to connect to a data source. Connection properties differ based on data connection type. For examples,
see Create data connection strings - Report Builder & SSRS.
Shared data source. A data source that is available on a report server or SharePoint site to be used by
multiple reports.
Embedded data source. Also known as a report-specific data source. A data source that is defined in a
report and used only by that report.
Credentials. Credentials are the authentication information that must be provided to allow you access to
external data.
Related Tasks
Tasks related to creating data connections, adding data from external sources, datasets, and queries.
C O M M O N TA SK S L IN K S
Create data connections Create data connection strings - Report Builder & SSRS
Create datasets and queries Report Embedded Datasets and Shared Datasets (Report
Builder and SSRS)
C O M M O N TA SK S L IN K S
Manage data sources after they are published Manage Report Data Sources
Manage shared datasets after they are published Manage Shared Datasets
Reporting Services retrieves report data from data sources through a modular and extensible data layer that
uses data processing extensions. To retrieve report data from a data source, you must select a data processing
extension that supports the type of data source, the version of software running on the data source, and the data
source platform (32-bit or 64-bit x64).
When you deploy Reporting Services, a set of data processing extensions are automatically installed and
registered on both the report authoring client and on the report server to provide access to a variety of data
source types. Reporting Services installs the following data source types:
Microsoft SQL Server
Microsoft SQL Server Analysis Services for MDX, DMX, Microsoft Power Pivot, and tabular models
Microsoft Azure SQL Database
Oracle
SAP BW
Hyperion Essbase
Microsoft SharePoint List
Teradata
OLE DB
ODBC
XML
In addition, custom data processing extensions and standard Microsoft .NET Framework data providers can be
installed and registered by system administrators. To process and view a report, the data processing extensions
and data providers must be installed and registered on the report server; to preview a report, they must be
installed and registered on the report authoring client. Data processing extensions and data providers must be
natively compiled for the platform where they are installed. If you deploy a data source programmatically by
using the SOAP Web service, you must define the data source extension. Use data extension values from the
RSRepor tDesigner.config file. By default, the file is located in the following folder:
For more information about custom data processing extensions, see Implementing a Data Processing Extension.
For more information about standard .NET Framework data providers, see the System.Data namespace.
See Note.
Teradata-
based
models
require
.NET Data
Provider
for
Teradata
from
Teradata.
See
Teradata
documen
tation for
platform
support.
See
Teradata
documen
tation for
platform
support.
For information about using external data sources, see Add Data from External Data Sources (SSRS).
Many standard .NET Framework data providers are available from third parties. For more information, search
the third-party Web sites or forums.
To install and register a custom data processing extension or standard .NET Framework data provider, you will
need to refer to the data provider reference documentation. For more information, see Register a Standard .NET
Framework Data Provider (SSRS).
Return to Data sources table
NOTE
The SQL ServerIntegration Services data processing extension is not supported at this time.
For more information about data processing extensions supported by Report Builder, see Create data
connection strings - Report Builder & SSRS.
Microsoft SQL Server Data Processing Extension
The data source type Microsoft SQL Ser ver wraps and extends the .NET Framework Data Provider for SQL
Server. This data processing extension is natively compiled for and runs on x86 and x64-based platforms.
In SQL Server Data Tools - Business Intelligence, the query designer associated with this data extension is the
Visual Database Tool Designer. If you use the query designer in graphical mode, the query is analyzed and
possibly rewritten. Use the text-based query designer when you want to control the exact Transact-SQL syntax
that is used for a query. For more information, see Graphical Query Designer User Interface.
For more information, see SQL Server Connection Type (SSRS).
In Report Builder, the query designer associated with this data extension is the Relational Query Designer.
Return to Data sources table
Microsoft Azure SQL Database Processing Extension
The data source type Microsoft Azure SQL Database wraps and extends the .NET Framework Data Provider
for SQL Server.
In SQL Server Data Tools - Business Intelligence, the graphical query designer associated with this data
extension is the Relational Query Designer not the Visual Database Tool Designer that you use with the
Microsoft SQL Ser ver data source type.
SQL Server Data Tools - Business Intelligence automatically differentiates between Microsoft Azure SQL
Database and Microsoft SQL Ser ver data source types and opens the graphical query designer associated
with the data source type.
If you use the query designer in graphical mode, the query is analyzed and possibly rewritten. A text-based
query designer is also available for writing queries. Use the text-based query designer when you want to control
the exact Transact-SQL syntax that is used for a query.
Retrieving data from SQL Database, Azure Synapse Analytics and SQL Server is similar, but there are a few
requirements that apply only to SQL Database. For more information, see Azure SQL Connection Type (SSRS).
Return to Data sources table
Microsoft SQL Server Parallel Data Warehouse Processing Extension
This data source has been deprecated. Use the SQL Server data source type to connect to Microsoft Analytics
Platform (APS).
Return to Data sources table
Microsoft SQL Server Analysis Services Data Processing Extension
When you select data source type Microsoft SQL Ser ver Analysis Ser vices , you are selecting a Reporting
Services data processing extension that extends the .NET Framework Data Provider for Microsoft Analysis
Services. This data processing extension is natively compiled for and runs on x86 and x64-based platforms.
This data provider uses the ADOMD.NET object model to create queries using XML for Analysis (XMLA) version
1.1. Results are returned as a flattened rowset. For more information, see Analysis Services Connection Type for
MDX (SSRS), Analysis Services Connection Type for DMX (SSRS), Analysis Services MDX Query Designer User
Interface, and Analysis Services DMX Query Designer User Interface.
For Azure Analysis Services and Power BI Premium dataset data sources, please note you must have multi-factor
authentication disabled for the credentials being used to connect to the data source. If you need multi-factor
authentication enabled for your environment, review Azure Active Directory Conditional Access as an option to
disable multi-factor authentication for the credentials used in the data source.
When using a Power BI Premium dataset as a data source, only Import mode and DirectQuery are supported.
When connecting to an Analysis Services data source, the Microsoft SQL Server Analysis Services data
processing extension supports multivalue parameters and maps cell and member properties to extended
properties supported by Reporting Services. For more information, see Extended Field Properties for an
Analysis Services Database (SSRS).
You can also create models from SQL Server Analysis Services data sources.
OLE DB Data Processing Extension
The OLE DB data processing extension requires the choice of an additional data provider layer based on the
version of the data source you want to use in your report. If you do not select a specific data provider, a default
is provided. Choose a specific data provider through the Connection Proper ties dialog box, accessed through
the Edit button on the Data Source or Shared Data Source dialog boxes.
For more information about the OLE DB associated query designer, see Graphical Query Designer User
Interface. For more information about specific support for OLE DB providers, see Visual Studio .NET Designer
Tool Supports Specific OLE DB Providers in the Microsoft Knowledge Base.
Return to Data sources table
OLE DB for SQL Server
When you select data source type OLE DB , you are selecting a Reporting Services data processing extension
that extends the .NET Framework Data Provider for OLE DB. This data processing extension is natively compiled
for and runs on x86 and x64 platforms.
For more information, see OLE DB Connection Type (SSRS).
Return to Data sources table
OLE DB for OLAP 7.0
OLE DB Provider for OLAP Services 7.0 is not supported.
Return to Data sources table
OLE DB for Oracle
The data processing extension OLE DB for Oracle does not support the following Oracle data types: BLOB, CLOB,
NCLOB, BFILE, UROWID.
Unnamed parameters that are position-dependent are supported. Named parameters are not supported by this
extension. To use named parameters, use the Oracle data processing extension.
For more information about configuring Oracle as a data source, see How to use Reporting Services to
configure and to access an Oracle data source. For more information about additional permissions
configuration, see How to add permissions for the NETWORK SERVICE security principal in the Microsoft
Knowledge Base.
Return to Data sources table
OLE DB Standard .NET Framework data provider
To retrieve data from a data source that supports OLE DB .NET Framework data providers, use the OLE DB data
source type and select the default data provider, or select from the installed data providers in the Connection
String dialog box.
NOTE
Although a data provider may support previewing a report on your report authoring client, not all OLE DB data providers
are designed to support reports published on a report server.
NOTE
Although a data provider may support previewing a report on your report authoring client, not all ODBC data providers
are designed to support reports published on a report server.
Return to Data sources table
ODBC Standard .NET Framework data provider
To retrieve data from a data source that supports a standard ODBC .NET Framework data provider, use the
ODBC data source type and select the default data provider, or select from the installed data providers in the
Connection String dialog box.
NOTE
Although a data provider may support previewing a report on your report authoring client, not all ODBC data providers
are designed to support reports published on a report server.
Multivalue parameters are supported by this extension. Macros can be specified in a query by using the
EXECUTE command in query mode TEXT.
For more information, see Teradata Connection Type (SSRS).
Return to Data sources table
SharePoint List Data Extension
Reporting Services includes the Microsoft SQL Server Reporting Services SharePoint List Data Extension so that
you can use SharePoint lists as a source of data in a report. You can retrieve list data from the following:
SharePoint Server 2016
SharePoint Server 2013
There are three implementations of the SharePoint List data provider.
1. From a report authoring environment such as Report Builder or Report Designer in SQL Server Data
Tools - Business Intelligence, or for a report server that is configured in native mode, list data comes from
the Lists.asmx Web service for the SharePoint site.
2. On a report server that is configured in SharePoint integrated mode, list data comes from either the
corresponding Lists.asmx Web service or from programmatic calls to the SharePoint API. In this mode,
you can retrieve list data from a SharePoint farm.
3. For SharePoint Server 2013 and SharePoint Server 2016, the Microsoft SQL Server Reporting Services
Add-in for Microsoft SharePoint Technologies enables you to retrieve list data from a Lists.asmx Web
service for a SharePoint site, or from SharePoint site that is part of a SharePoint farm. This scenario is also
known as local mode because a report server is not required.
The credentials that you can specify depend on the implementation that the client application uses. For more
information, see SharePoint List Connection Type (SSRS).
XML Data Processing Extension
Reporting Services includes an XML data processing extension so that you can use XML data in a report. The
data can be retrieved from an XML document, a Web service, or a Web-based application that can be accessed
by way of a URL. For more information, see XML Connection Type (SSRS). For more information about the
associated query designer, see the text-based query designer section in Graphical Query Designer User
Interface.
Return to Data sources table
SAP BW Data Processing Extension
Reporting Services includes a data processing extension that allows you to use data from an SAP BW data
source in a report.
Return to Data sources table
Hyperion Essbase Business Intelligence Data Processing Extension
Reporting Services includes a data processing extension that allows you to use data from a Hyperion Essbase
data source in a report.
For more information, see Hyperion Essbase Connection Type (SSRS). For more information about the
associated query designer, see Hyperion Essbase Query Designer User Interface.
For more information about Hyperion Essbase, see Using SQL Server Reporting Services with Hyperion Essbase.
Return to Data sources table
See Also
Create data connection strings - Report Builder & SSRS
Report Datasets (SSRS)
More questions? Try the Reporting Services forum
Create data connection strings - Report Builder &
SSRS
11/2/2020 • 6 minutes to read • Edit Online
APPLIES TO: ✔
️ SQL Server 2016 Reporting Services and later ✔
️ Power BI Report Server ✔
️ SharePoint
To include data in Report Builder and Reporting Services paginated reports, you must first create a connection
string to your data source. This article explains how to create data connection strings and important information
related to data source credentials. A data source includes the data source type, connection information, and the
type of credentials to use. For more background, see Intro to Report Data in SQL Server Reporting Services
(SSRS).
NOTE
Connectionstrings.com is another resource to get examples for connection strings.
SQL Server database on the local data source="(local)";initial Set data source type to Microsoft
server catalog=AdventureWorks SQL Ser ver . For more information,
see SQL Server Connection Type
(SSRS).
SQL Server Instance Data Source=localhost\MSSQL13. Set data source type to Microsoft
<InstanceName>; Initial SQL Ser ver .
Catalog=AdventureWorks
database
Azure SQL Database Data Source=<host>;Initial Set data source type to Microsoft
Catalog=AdventureWorks; Azure SQL Database . For more
Encrypt=True
information, see Azure SQL
Connection Type (SSRS).
SQL Server Parallel Data Warehouse HOST=<IP address>;database= Set data source type to Microsoft
AdventureWorks; port=<port> SQL Ser ver Parallel Data
Warehouse . For more information,
see SQL Server Parallel Data
Warehouse Connection Type (SSRS).
DATA SO URC E EXA M P L E DESC RIP T IO N
Analysis Services database on the local data source=localhost;initial Set data source type to Microsoft
server catalog=Adventure Works DW SQL Ser ver Analysis Ser vices . For
more information, see Analysis
Services Connection Type for MDX
(SSRS) or Analysis Services Connection
Type for DMX (SSRS).
Analysis Services tabular model Data source=<servername>;initial Set data source type to Microsoft
database with Sales perspective catalog= Adventure Works SQL Ser ver Analysis Ser vices .
DW;cube='Sales'
Specify perspective name in cube=
setting. For more information, see
Perspectives (SSAS Tabular).
Oracle server data source=myserver Set the data source type to Oracle .
The Oracle client tools must be
installed on the Report Designer
computer and on the report server.
For more information, see Oracle
Connection Type (SSRS).
SAP NetWeaver BI data source Set the data source type to SAP
DataSource=https://mySAPNetWeaverBIServer:8000/sap/bw/xml/soap/xmla
NetWeaver BI . For more information,
see SAP NetWeaver BI Connection
Type (SSRS).
Hyperion Essbase data source Data Set the data source type to Hyperion
Source=https://localhost:13080/aps/XMLA;
Essbase . For more information, see
Initial Catalog=Sample
Hyperion Essbase Connection Type
(SSRS).
Teradata data source data source= <NNN>.<NNN>. Set the data source type to Teradata .
<NNN>.<NNN> ; The connection string is an Internet
Protocol (IP) address in the form of
four fields, where each field can be
from one to three digits. For more
information, see Teradata Connection
Type (SSRS).
XML data source, Web service data source=https://adventure- Set the data source type to XML . The
works.com/results.aspx connection string is a URL for a web
service that supports Web Services
Definition Language (WSDL). For more
information, see XML Connection Type
(SSRS).
XML data source, XML document https://localhost/XML/Customers.xml Set the data source type to XML . The
connection string is a URL to the XML
document.
DATA SO URC E EXA M P L E DESC RIP T IO N
XML data source, embedded XML Empty Set the data source type to XML . The
document XML data is embedded in the report
definition.
Power BI Premium dataset (Starting Data Set data source type to Microsoft
with Reporting Services 2019 and Source=powerbi://api.powerbi.com/v1.0/myorg/<workspacename>;Initial
SQL Ser ver Analysis Ser vices .
Catalog=<datasetname>
Power BI Report Server January 2020)
If you fail to connect to a report server using localhost , check that the network protocol for TCP/IP protocol is
enabled. For more information, see Configure Client Protocols.
For more information about the configurations needed to connect to these data source types, see the specific
data connection article under Add Data from External Data Sources (SSRS) or Data Sources Supported by
Reporting Services (SSRS).
Data source expressions are processed at run time or when a report is previewed. The expression must be
written in Visual Basic. Use the following guidelines when defining a data source expression:
Design the report using a static connection string. A static connection string refers to a connection string
that is not set through an expression (for example, when you follow the steps for creating a report-
specific or shared data source, you are defining a static connection string). Using a static connection
string allows you to connect to the data source in Report Designer so that you can get the query results
you need to create the report.
When defining the data source connection, do not use a shared data source. You cannot use a data source
expression in a shared data source. You must define an embedded data source for the report.
Specify credentials separately from the connection string. You can use stored credentials, prompted
credentials, or integrated security.
Add a report parameter to specify a data source. For parameter values, you can either provide a static list
of available values (in this case, the available values should be data sources you can use with the report)
or define a query that retrieves a list of data sources at run time.
Be sure that the list of data sources shares the same database schema. All report design begins with
schema information. If there is a mismatch between the schema used to define the report and the actual
schema used by the report at run time, the report might not run.
Before publishing the report, replace the static connection string with an expression. Wait until you are
finished designing the report before you replace the static connection string with an expression. Once
you use an expression, you cannot execute the query in Report Designer. Furthermore, the field list in the
Report Data pane and the Parameters list will not update automatically.
Next steps
Intro to Report Data in SQL Server Reporting Services (SSRS) Create and Modify Shared Data Sources
Create and Modify Embedded Data Sources
Set Deployment Properties
Specify Credential and Connection Information for Report Data Sources
More questions? Try asking the Reporting Services forum
Add and Verify a Data Connection (Report Builder
and SSRS)
3/5/2021 • 2 minutes to read • Edit Online
In Report Builder, you can add a shared data source from the report server or create an embedded data source
for your report. In Report Designer, you can create a shared data source or an embedded data source and
deploy it to a report server.
To add a shared data source to your report, browse to a report server and select a shared data source. The
shared data source in your report points to the shared data source definition on the report server.
To create an embedded data source, you must have connection information to the external source of data and
you must know which permissions you need to access the data. This information usually comes from the owner
of the data source. You can test the connection to verify that the credentials that are specified are sufficient.
For more information, see Create data connection strings - Report Builder & SSRS and Specify Credentials in
Report Builder
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
NOTE
This name is saved in the local report definition. This name is not the name of the shared data source on the
report server.
3. Select Use a shared connection or repor t model . The list of recently used shared data sources and
report models appears. To select one from a report server, click Browse and browse to the folder on the
report server where shared data sources are available.
4. Select the shared data source and then click Open .
5. Click OK .
The data source appears in the Report Data pane.
To verify a data connection
1. On the toolbar in the Report Data pane, double-click the data source. The Data Source Proper ties
dialog box opens.
2. Click Test Connection .
3. If the connection is successful, the following message appears: "Connection created successfully". Click
OK .
4. If the connection is not successful, the following message appears: "Unable to connect to the data source."
5. Click Details , and use the information to correct the issue.
For more information, see Specify Credentials in Report Builder.
6. Click OK .
See also
Report Datasets (SSRS)
Report Embedded Datasets and Shared Datasets (Report Builder and SSRS)
Finding, Viewing, and Managing Reports (Report Builder and SSRS )
Create data connection strings - Report Builder & SSRS
Specify Credential and Connection Information for
Report Data Sources
11/2/2020 • 10 minutes to read • Edit Online
A report server uses credentials to connect to external data sources that provide content to reports or recipient
information to a data-driven subscription. You can specify credentials that use Windows Authentication,
database authentication, no authentication, or custom authentication. When sending a connection request over
the network, the report server will either impersonate a user account or the unattended execution account. For
more information about the security context under which a connection request is made, see Data Source
Configuration and Network Connections further on in this topic.
NOTE
Credentials are also used to authenticate users who access a report server. Information about authenticating users to a
report server is provided in another topic.
The connection to an external data source is defined when you create the report. It can be managed separately
after the report is published. You can specify a static connection string or an expression that allows users to
select a data source from a dynamic list. For more information about how to specify a data source type and
connection string, see Create data connection strings - Report Builder & SSRS.
IMPORTANT
Do not use impersonation for reports that support subscriptions or that use schedules to generate report history or
refresh a report execution snapshot.
No Credentials
You can configure a data source connection to use no credentials. Microsoft recommends that you always use
credentials to access a data sources; using no credentials is not advised. However, you may choose to run a
report with no credentials in the following cases:
The remote data source does not require credentials.
The credentials are passed in the connection string (recommended only for secure connections).
The report is a subreport that uses the credentials of the parent report.
Under these conditions, the report server connects to a remote data source using the unattended execution
account that you must define in advance. Because the report server does not connect to a remote server using
its service credentials, you must specify an account that the report server can use to make the connection. For
more information about creating this account, see Configure the Unattended Execution Account (Report Server
Configuration Manager).
DATA SO URC E T Y P ES
( SQ L SERVER, O RA C L E, O DB C , O L E DB ,
C O N T EXT F O R N ET W O RK A N A LY SIS SERVIC ES, XM L , SA P
TYPE C O N N EC T IO N N ET W EAVER B I, H Y P ERIO N ESSB A SE)
Integrated security Impersonate the current user For all data source types, connect
using the current user account.
Windows credentials Impersonate the specified user For SQL Server, Oracle, ODBC, and
OLE DB: connect using the
impersonated user account.
DATA SO URC E T Y P ES
( SQ L SERVER, O RA C L E, O DB C , O L E DB ,
C O N T EXT F O R N ET W O RK A N A LY SIS SERVIC ES, XM L , SA P
TYPE C O N N EC T IO N N ET W EAVER B I, H Y P ERIO N ESSB A SE)
Database credentials Impersonate the unattended execution For SQL Server, Oracle, ODBC, and
account or the service account. OLE DB:
For XML:
None Impersonate the unattended execution For SQL Server, Oracle, ODBC, and
account. OLE DB:
For XML:
See Also
Data Sources Supported by Reporting Services (SSRS)
Create data connection strings - Report Builder & SSRS
Manage Report Data Sources
Configure Data Source Properties for a Report
Compare shared and embedded data sources -
Report Builder & Reporting Services (SSRS)
11/2/2020 • 2 minutes to read • Edit Online
APPLIES TO: ✔
️ SQL Server 2016 Reporting Services and later ✔
️ Power BI Report Server ✔
️ SharePoint
You can connect to data with either a shared or an embedded data source. A shared data source is defined
independent of any report. You can use it in multiple reports on a report server or SharePoint site. An
embedded data source is defined in a report. You can only use it in that report.
Shared data sources are useful when you have data sources that you use often. We recommend that you create
and use shared data sources as much as possible. They make reports and report access easier to manage, and
help to keep reports and the data sources they access more secure. If you need a shared data source, you may
need to ask your system administrator to create one for you.
An embedded data source, also known as a report-specific data source, is a data connection that's saved in the
report definition. Embedded data source connection information can be used only by the report in which it's
embedded. To define and manage embedded data sources, use the Data Source Proper ties dialog box.
The difference between embedded and shared data sources is in how they are created, stored, and managed.
In Report Designer, create embedded or shared data sources as part of a SQL Server Data Tools (SSDT)
project. You can control whether to use them locally for preview or to deploy them as part of the project
to a report server or SharePoint site. You can use custom data extensions that have been installed on your
computer and on the report server or SharePoint site where you deploy your reports.
System administrators can install and configure additional data processing extensions and .NET
Framework data providers. For more information, see Data Processing Extensions and .NET Framework
Data Providers (SSRS).
Developers can use the Microsoft.ReportingServices.DataProcessing API to create data processing
extensions to support additional types of data sources.
In Report Builder, browse to a report server or SharePoint site and select shared data sources or create
embedded data sources in the report. You can't create a shared data source in Report Builder. You can't
use custom data extensions in Report Builder.
Summary of differences
The following table summarizes the differences between embedded and shared data sources.
EM B EDDED SH A RED
Next steps
Create and Manage Shared Data Sources
Create and Modify Embedded Data Sources
Set Deployment Properties
Specify Credential and Connection Information for Report Data Sources
More questions? Try asking the Reporting Services forum
Create, Modify, and Delete Shared Data Sources
(SSRS)
11/2/2020 • 13 minutes to read • Edit Online
A shared data source is a set of data source connection properties that can be referenced by multiple reports,
models, and data-driven subscriptions that run on a Reporting Services report server. Shared data sources
provide an easy way to manage data source properties that often change over time. If a user account or
password changes, or if you move the database to a different server, you can update the connection information
in one place.
Shared data sources are optional for reports and data-driven subscriptions, but required for report models. If
you plan to use report models for ad hoc reporting, you must create and maintain a shared data source item to
provide connection information to the model.
A shared data source consists of the following parts:
PA RT DESC RIP T IO N
Name A name that identifies the item within the report server
folder hierarchy.
Description A description that appears with the item in the web portal
when you view the contents of the folder.
Connection type The data processing extension used with the data source.
You can only use data processing extensions that are
deployed on the report server. For more information about
data processing extensions included with Reporting Services,
see Data Sources Supported by Reporting Services (SSRS).
Connection string The connection string for the database. For more
information and to view examples of connection strings to
frequently used data sources, see Create data connection
strings - Report Builder & SSRS.
Credential type Specifies how credentials are obtained for the connection
and whether they are to be used after the connection is
made. For more information, see Specify Credential and
Connection Information for Report Data Sources.
A shared data source does not contain query information used to retrieve data. The query is always kept within
a report definition.
NOTE
If the Report Data pane is not visible, click Repor t Data on the View menu.
2. In the Name text box, type a name for the data source or accept the default. The data source name is
used internally within the report. For clarity, we recommend that the name of the data source contain the
name of the database specified in the connection string.
3. Verify that Use shared data source reference is selected and then do the following.
a. Click New . In the Shared Data Source properties dialog box, follow steps 2 and 3 to create a
new data source.
b. Click OK .
The new shared data source appears in the Shared Data Sources folder in Solution Explorer.
4. Click Credentials .
Specify the credentials to use for this data source. The owner of the data source chooses the type of
credentials that are supported.
To create a shared data source in the web por tal
1. In the web portal, select New > Data Source .
2. Type a name for the item. A name must contain at least one character and it must start with a letter. It can
also include certain symbols, but not spaces or the characters ; ? : @ & = + , $ / * < > | " /.
3. Optionally type a description to provide users with information about the connection..
4. In the Data source type list, specify the data processing extension that is used to process data from the
data source.
5. For Connection string , specify the connection string that the report server uses to connect to the data
source. We recommend not specifying credentials in the connection string.
The following example illustrates a connection string for connecting to the local SQL Server
AdventureWorks2016 database:
6. For Connect using , specify how credentials are obtained when the report runs:
If you want to prompt the user for a logon name and password, click Credentials supplied by
the user running the repor t . To use the credentials that the user enters as Windows credentials,
click Use as Windows credentials when connecting to the data source . If the user name
and password are database credentials, do not select this option.
If you intend to use the data source as a shared data source with saved credentials that are
managed by the owner of the data source, or for reports that support subscriptions or other
scheduled operations (such as automated report history generation), click Credentials stored
securely in the repor t ser ver . If the database server supports impersonation or delegation, you
can select Impersonate the authenticated user after a connection has been made to the
data source .
If you want the report server to pass the credentials of the user accessing the report to the server
hosting the external data source, click Windows Integrated Security . In this case, the user is not
prompted to type a user name or password.
If the data source does not use credentials (for example, if the data source is an XML file that is
accessed from the file system), click Credentials are not required . You should only specify this
credential type if it is valid for the data source. If you select this option for a data source that
requires authentication, the connection will fail. If you select this option, be sure to configure the
unattended execution account that allows the report server to connect to other computers to
retrieve data or files when user credentials are not available.
For more information about configuring credentials, see Specify Credential and Connection
Information for Report Data Sources. For more information about the unattended execution
account, see Configure the Unattended Execution Account (Report Server Configuration Manager).
7. Click the Test Connection button to validate the data source configuration.
NOTE
The Test Connection button is not supported for the XML data source type.
8. Click OK
To modify a shared data source in the web por tal
1. In the web portal, navigate to the shared data source.
2. Select the ellipsis (...) in the upper-right corner of the shared data source > Manage .
The Proper ties page opens.
3. Modify the data source, and then click Apply .
NOTE
The Test Connection button is not supported for the XML data source type.
Dependent Items
To view a list of reports and models that use the data source, open the Dependent Items page for the shared
data source. You can access this page when you open the data source in the web portal or a SharePoint
application page. Note that the Dependent Items page does not show data-driven subscriptions. If a shared data
source is used by a subscription, the subscription will not appear in the dependent items list.
To view dependent items in SharePoint
1. Open the library that contains the .rsds file.
2. Point to the shared data source.
3. Click to display a down arrow, and select View Dependent Items .
For report models, the list of dependent items shows the reports that were created in Report Builder. For
shared data sources, the dependent items list can include both reports and report models.
See Also
Create data connection strings - Report Builder & SSRS
Manage Report Data Sources
Configure Data Source Properties for a Paginated Report
Create and Modify Embedded Data Sources
11/2/2020 • 3 minutes to read • Edit Online
An embedded data source is defined in a report definition and used only by that report.
NOTE
If the Report Data pane is not visible, click Repor t Data on the View menu.
2. In the Name text box, type a name for the data source or accept the default. The data source name is
used internally within the report. For clarity, we recommend that the name of the data source contain the
name of the database specified in the connection string.
3. Verify that Embedded connection is selected, and do the following.
a. From the Type drop-down list, select a data source type; for example, Microsoft SQL Ser ver or
OLE DB .
b. Specify a connection string using one of the following alternatives:
Type the connection string directly in the Connection string text box. For a list of example
connection strings, see Create data connection strings - Report Builder & SSRS.
Click the expression (fx) button to create an expression that evaluates to a connection
string. In the Expression dialog box, type the expression in the Expression pane. Click OK .
Click Edit to open the Connection Proper ties dialog box for the data source type you
chose in step 2.
Fill in the fields in the Connection Proper ties dialog box as appropriate for the data
source type. Connection properties include the type of data source, the name of the data
source, and the credentials to use. After you specify values in this dialog box, click Test
Connection to verify that the data source is available and that the credentials you specified
are correct. For more information about specific data source types, see topics in Add Data
from External Data Sources (SSRS).
c. Click Credentials .
Specify the credentials to use for this data source. The owner of the data source chooses the type
of credentials that are supported.
4. The new embedded data source appears in the Report Data pane.
See Also
Report Embedded Datasets and Shared Datasets (Report Builder and SSRS)
Specify Credential and Connection Information for Report Data Sources
Convert Data Sources (Report Builder and SSRS)
11/2/2020 • 2 minutes to read • Edit Online
Each data source in the Report Data pane is embedded and specific to the report or is shared. In Report Builder,
a shared data source points to a published shared data source on a report server or SharePoint site. In Report
Designer, a shared data source points to a shared data source in the Shared Data Sources folder in Solution
Explorer.
For more information about the differences between embedded and shared data sources, see Embedded and
Shared Data Connections or Data Sources (Report Builder and SSRS).
For more information on how to create a shared data source, see Create an Embedded or Shared Data Source
(SSRS).
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
Report Designer
To convert a data source from embedded to shared
In the Report Data pane, right-click the data source, and then click Conver t to Shared Data Source .
NOTE
If the Report Data pane is not visible, on the View menu, click Repor t Data . If the pane opens as a floating
window, you can dock it. For more information, see Dock the Report Data Pane in Report Designer (SSRS).
In the Report Data pane, the data source icon changes to the shared data source icon. In Solution Explorer,
a shared data source with the same name appears under the Shared Data Source folder.
To convert a data source from shared to embedded
In the Report Data pane, right-click the data source, open the Data Source Proper ties dialog box, and
then click Embedded Connection . Enter the required information.
In the Report Data pane, the data source icon changes to the shared data source icon.
Report Builder
To convert a data source from embedded to shared
In the Report Data pane, right-click the data source to open the Data Source Proper ties dialog box, and
then click Embedded Connection . Enter the required information.
In the Report Data pane, the data source icon changes to the shared data source icon.
To convert a data source from shared to embedded
In the Report Data pane, right-click the data source, open the Data Source Proper ties dialog box, and
then click Embedded Connection . Enter the required information.
In the Report Data pane, the data source icon changes to the shared data source icon.
See Also
Manage Report Data Sources
Create data connection strings - Report Builder & SSRS
Add Data from External Data Sources (SSRS)
11/2/2020 • 5 minutes to read • Edit Online
To retrieve data from an external data source, you use a data connection. Data connection information is usually
provided by the owner of the external data source, who is responsible for granting permissions and specifying
which types of credentials to use. Data connection information is saved as a report data source. The data source
type specifies which data extension to use to retrieve the data.
For more information about data source types, see In This Section.
NOTE
When you are not connected to a report server, you can choose from data extensions that are installed with Report
Builder. You access the data as a single user using credentials from your computer. When you are connected to a report
server, you can choose from data extensions that are installed on the report server. You access the data as one of multiple
users who run the report and you are using credentials on the report server. For more information, see Specify Credential
and Connection Information for Report Data Sources.
How-To Topics
This section contains step-by-step instructions for working with data connections, data sources, and datasets.
Add and Verify a Data Connection (Report Builder and SSRS)
Create a Shared Dataset or Embedded Dataset (Report Builder and SSRS)
Add a Filter to a Dataset (Report Builder and SSRS)
In This Section
The following topics provide information about each built-in data extension.
TO P IC DATA SO URC E T Y P E
Analysis Services Connection Type for MDX (SSRS) Microsoft SQL Server Analysis Services
Power Pivot Connection Type (SSRS) Microsoft SQL Server Analysis Services
TO P IC DATA SO URC E T Y P E
SQL Server Parallel Data Warehouse Connection Type (SSRS) Microsoft SQL Server 2008 R2 Parallel Data Warehouse
Related Sections
These sections of the documentation provide in-depth conceptual information about report data, as well as
procedural information about how to define, customize, and use parts of a report that are related to data.
TO P IC DESC RIP T IO N
Report Datasets (SSRS) Provides an overview of accessing data for your report.
Create data connection strings - Report Builder & SSRS Provides information about data connections and data
sources.
Report Embedded Datasets and Shared Datasets (Report Provides information about embedded and shared datasets.
Builder and SSRS)
Dataset Fields Collection (Report Builder and SSRS) Provides information about the dataset field collection
generated by the query.
Data Sources Supported by Reporting Services (SSRS) Provides in-depth information about platform and version
support for each data extension.
Data Processing Extensions Overview Provides in-depth information for advanced users about
data extensions.
See Also
Report Datasets (SSRS)
Query Design Tools (SSRS)
SQL Server Connection Type (SSRS)
11/2/2020 • 6 minutes to read • Edit Online
To include data from a SQL Server database in your report, you must have a dataset that is based on a report
data source of type Microsoft SQL Server. This built-in data source type is based on the Microsoft SQL Server
data extension. Use this data source type to connect to and retrieve data from the current version and earlier
versions of SQL Server databases.
This data extension supports multivalue parameters, server aggregates, and credentials managed separately
from the connection string.
Use the information in this topic to build a data source. For step-by-step instructions, see Add and Verify a Data
Connection (Report Builder and SSRS).
Connection String
When you connect to a SQL Server database, you are connecting to the database object in an instance of SQL
Server on a server. The database might have multiple schemas that have multiple tables, views, and stored
procedures. You specify the database object to use in the query designer. If you do not specify a database in the
connection string, you connect to the default database that the database administrator assigned to you.
Contact your database administrator for connection information and for the credentials to use to connect to the
data source. The following connection string example specifies a sample database on the local client:
For more information about connection string examples, see Create data connection strings - Report Builder &
SSRS.
Credentials
Credentials are required to run queries, to preview the report locally, and to preview the report from the report
server.
After you publish your report, you may need to change the credentials for the data source so that when the
report runs on the report server, the permissions to retrieve the data are valid.
From a report authoring client, the following options are available to specify credentials:
Current Windows user (also known as integrated security).
Use a stored user name and password.
Prompt the user for credentials. This option supports Windows integrated security only.
No credentials are required. To use this option, you must have the unattended execution account
configured on the report server. For more information, see Configure the Unattended Execution Account
(Report Server Configuration Manager).
For more information, see Create data connection strings - Report Builder & SSRS or Specify Credential and
Connection Information for Report Data Sources.
Queries
A query specifies which data to retrieve for a report dataset. The columns in the result set for a query populate
the field collection for a dataset. A report processes only the first result set that a query retrieves.
By default, if you create a new query or open an existing query that can be represented in the graphical query
designer, the relational query designer is available. You can specify a query in the following ways:
Build a query interactively. Use the relational query designer that displays a hierarchical view of tables,
views, stored procedures, and other database items, organized by database schema. Select columns from
tables or views, or specify stored procedures or table-valued functions. Limit the number of rows of data
to retrieve by specifying filter criteria. Customize the filter when the report runs by setting the parameter
option.
Type or paste a query. Use the text-based query designer to enter Transact-SQL text directly, to paste
query text from another source, to enter complex queries that cannot be built by using the relational
query designer, or to enter query-based expressions.
Import an existing query from a file or report. Use the Impor t query button from either query designer
to browse to a .sql file or .rdl file and import a query.
For more information, see Relational Query Designer User Interface (Report Builder) and Text-based Query
Designer User Interface (Report Builder).
The following query modes are supported:
Text Type in Transact-SQL commands.
Stored Procedure Choose from a list of stored procedures.
Using Query Type Text
In the text-based query designer, you can type Transact-SQL commands to define the data in a dataset. For
example, the following Transact-SQL query selects the names of all employees who are marketing assistants:
SELECT
HumanResources.Employee.BusinessEntityID
,HumanResources.Employee.JobTitle
,Person.Person.FirstName
,Person.Person.LastName
FROM
Person.Person
INNER JOIN HumanResources.Employee
ON Person.Person.BusinessEntityID = HumanResources.Employee.BusinessEntityID
WHERE HumanResources.Employee.JobTitle = 'Marketing Assistant'
Click the Run button (! ) on the toolbar to run the query and display a result set.
To parameterize this query, add a query parameter. For example, change the WHERE clause to the following:
WHERE HumanResources.Employee.JobTitle = (@JobTitle)
When you run the query, report parameters that correspond to query parameters are automatically created. For
more information, see Query Parameters later in this topic.
Using Query Type StoredProcedure
You can specify a stored procedure for a dataset query in one of the following ways:
In the Dataset Proper ties dialog box, set the Stored Procedure option. Choose from the drop-down
list of stored procedures and table-valued functions.
In the relational query designer, in the Database view pane, select a stored procedure or table-valued
function.
In the text-based query designer, select StoredProcedure from the toolbar.
After you select a stored procedure or table-valued function, you can run the query. You will be prompted for
input parameter values. When you run the query, report parameters that correspond to input parameters are
automatically created. For more information, see Query Parameters later in this topic.
Only the first result set that is retrieved for a stored procedure is supported. If a stored procedure returns
multiple result sets, only the first one is used.
If a stored procedure has a parameter that has a default value, you can access that value by using the DEFAULT
keyword as a value for the parameter. If the query parameter is linked to a report parameter, the user can type
or select the word DEFAULT in the input box for the report parameter.
For more information, see Stored Procedures (Database Engine).
Parameters
When query text contains query variables or stored procedures that have input parameters, the corresponding
query parameters for the dataset and report parameters for the report are automatically generated. The query
text must not include the DECLARE statement for each query variable.
For example, the following SQL query creates a report parameter named EmpID :
Report parameters are created with default property values that you might need to modify. For example:
By default, each report parameter is data type Text . If the underlying data is a different data type, you
must change the parameter data type.
If you select the option for multivalued parameters, you must manually change the query to test whether
values are part of a set by using the IN operator, for example, WHERE EmployeeID IN (@EmpID) .
For more information, see Report Parameters (Report Builder and Report Designer).
Remarks
You can also retrieve data from a SQL Server database by using an OLE DB or ODBC data source type. For more
information, see OLE DB Connection Type (SSRS) or ODBC Connection Type (SSRS).
P l a t f o rm a n d V e rs i o n I n f o rma t i o n
For more information about platform and version support, see Data Sources Supported by Reporting Services
(SSRS).
How-To Topics
This section contains step-by-step instructions for working with data connections, data sources, and datasets.
Add and Verify a Data Connection (Report Builder and SSRS)
Create a Shared Dataset or Embedded Dataset (Report Builder and SSRS)
Add a Filter to a Dataset (Report Builder and SSRS)
Related Sections
These sections of the documentation provide in-depth conceptual information about report data, and
procedural information about how to define, customize, and use parts of a report that are related to data.
Report Datasets (SSRS)
Provides an overview of accessing data for your report.
Create data connection strings - Report Builder & SSRS
Provides information about data connections and data sources.
Report Embedded Datasets and Shared Datasets (Report Builder and SSRS)
Provides information about embedded and shared datasets.
Dataset Fields Collection (Report Builder and SSRS)
Provides information about the dataset field collection generated by the query.
Data Sources Supported by Reporting Services (SSRS).
Provides in-depth information about platform and version support for each data extension.
See Also
Report Parameters (Report Builder and Report Designer)
Filter, Group, and Sort Data (Report Builder and SSRS)
Expressions (Report Builder and SSRS)
Analysis Services Connection Type for MDX (SSRS)
11/2/2020 • 5 minutes to read • Edit Online
To include data from an Analysis Services cube in your report, you must have a dataset that is based on a report
data source of type Microsoft SQL Server Analysis Services. This built-in data source type is based on the
Microsoft SQL Server Analysis Services data extension. You can retrieve metadata about dimensions,
hierarchies, levels, key performance indicators (KPIs), measures, and attributes from a Microsoft SQL Server
Analysis Services cube for use as report data.
This data processing extension supports multivalue parameters, server aggregates, and credentials that are
managed separately from the connection string.
Use the information in this topic to build a data source. For step-by-step instructions, see Add and Verify a Data
Connection (Report Builder and SSRS).
Connection String
When you connect to a Analysis Services cube, you are connecting to the database object in an Analysis Services
instance on a server. The database might have multiple cubes. You specify the cube in the query designer when
you build the query. The following example shows a connection string:
For more connection string examples, see Create data connection strings - Report Builder & SSRS.
Credentials
Credentials are required to run queries, to preview the report locally, and to preview the report from the report
server.
After you publish your report, you may need to change the credentials for the data source so that when the
report runs on the report server, the permissions to retrieve the data are valid.
From a report authoring client, the following options are available to specify credentials:
Current Windows user (also known as integrated security).
Use a stored user name and password.
Prompt the user for credentials. This option only supports Windows integrated security.
No credentials are required. To use this option, you must have the unattended execution account
configured on the report server. For more information, see Configure the Unattended Execution Account
(Report Server Configuration Manager)
For more information, see Create data connection strings - Report Builder & SSRS or Specify Credential and
Connection Information for Report Data Sources.
Queries
After you have a data connection to an Analysis Services data source, you create a dataset and define a
Multidimensional Expression (MDX) query that specifies which data to retrieve from the cube. Use the MDX
graphical query designer browse and selecting from the underlying data structures on the data source.
You can specify a query in the following ways:
Build a query interactively. The Analysis Services MDX Query Designer supports the following views:
Design View Drag dimensions, members, member properties, measures, and KPIs from the
metadata browser to the Data pane to build an MDX query. Drag calculated members from the
CalculatedMembers pane to the Data pane to define additional dataset fields.
Quer y View Drag dimensions, members, member properties, measures, and KPIs from the
metadata browser to the Query pane to build an MDX query. You can edit MDX text directly in the
Query pane. Drag calculated members from the CalculatedMembers pane to the Query pane to
define additional dataset fields.
For more information, see Analysis Services MDX Query Designer User Interface (Report Builder).
Import an existing MDX query from a report. Use the Impor t query button to browse to an .rdl file and
import a query. You can import a query from a report that contains an embedded dataset that is based
on a Analysis Services data source. Importing an MDX query directly from an .mdx file is not supported.
At design time, run the query to view a result set. The query results are automatically retrieved as a flattened
rowset. The columns in the result set for a query populate the field collection for a dataset. After you build the
query, view the dataset field collection that is generated from the metadata in the Report Data pane. When the
report runs, the actual data is returned from the external data source.
The Analysis Services data processing extension supports extended dataset field properties. These are values
that are available from the external data source but that do not appear in the Report Data pane. You can use
extended field properties supported by the Analysis Services data processing extension in your report through
the built-in Fields collection. For properties that have values on the data source, you can access predefined
property values such as FormattedValue , Color , or UniqueName . For more information, see Extended Field
Properties for an Analysis Services Database (SSRS)).
Parameters
To include query parameters, create a filter in the filter area in the query designer, and mark the filter as a
parameter. For each filter, a dataset is automatically created to provide the available values. By default, these
datasets do not appear in the Report Data pane. For more information, see Define Parameters in the MDX Query
Designer for Analysis Services (Report Builder and SSRS) and Show Hidden Datasets for Parameter Values for
Multidimensional Data (Report Builder and SSRS).
By default, each report parameter has data type Text . After the report parameters are created, you might have to
change default values. For more information, see Report Parameters (Report Builder and Report Designer).
Remarks
The Analysis Services data extension is based on the XMLA (XML for Analysis) protocol. Result sets from cubes
are retrieved through the XMLA protocol as a flattened row set. Ragged hierarchies are not supported. For more
information, see Ragged Hierarchies.
You can also retrieve data from an Analysis Services cube from the OLE DB data source type. For more
information, see OLE DB Connection Type (SSRS).
For more information about version support, see Data Sources Supported by Reporting Services (SSRS).
Related Sections
These sections of the documentation provide in-depth conceptual information about report data, as well as
procedural information about how to define, customize, and use parts of a report that are related to data.
Report Datasets (SSRS)
Provides an overview of accessing data for your report.
Create data connection strings - Report Builder & SSRS
Provides information about data connections and data sources.
Report Embedded Datasets and Shared Datasets (Report Builder and SSRS)
Provides information about embedded and shared datasets.
Dataset Fields Collection (Report Builder and SSRS)
Provides information about the dataset field collection generated by the query.
Extended Field Properties for an Analysis Services Database (SSRS)
Provides information about extra fields that are available through the XMLA data provider.
Data Sources Supported by Reporting Services (SSRS).
Provides in-depth information about platform and version support for each data extension.
See Also
Report Parameters (Report Builder and Report Designer)
Filter, Group, and Sort Data (Report Builder and SSRS)
Expressions (Report Builder and SSRS)
Extended Field Properties for an Analysis Services
Database (SSRS)
11/2/2020 • 6 minutes to read • Edit Online
The SQL Server Analysis Services data processing extension supports extended field properties. Extended field
properties are properties in addition to the field properties Value and IsMissing that are available on the data
source and supported by the data processing extension. Extended properties do not appear in the Report Data
pane as part of the field collection for a report dataset. You can include extended field property values in your
report by writing expressions that specify them by name using the built-in Fields collection.
Extended properties include predefined properties and custom properties. Predefined properties are properties
common to multiple data sources that are mapped to specific field property names and can be accessed
through the built-in Fields collection by name. Custom properties are specific to each data provider and can be
accessed through the built-in Fields collection only through syntax using the extended property name as a
string.
When you use the Analysis Services MDX query designer in graphical mode to define your query, a predefined
set of cell properties and dimension properties are automatically added to the MDX query. You can only use
extended properties that are specifically listed in the MDX query in your report. Depending on your report, you
may want to modify the default MDX command text to include other dimension or custom properties defined in
the cube. For more information about extended fields available in Analysis Services data sources, see Creating
and Using Property Values (MDX).
NOTE
Values exist for these extended field properties only if the data source (for example, the Analysis Services cube) provides
these values when your report runs and retrieves the data for its datasets. You can then refer to those field property
values from any expression using the syntax described in the following section. However, because these fields are specific
to this data provider, changes that you make to these values are not saved with the report definition.
Example Extended Properties
To illustrate extended properties, the following MDX query and result set include several member properties
available from a dimension attribute defined for a cube. The member properties included are
MEMBER_CAPTION, UNIQUENAME, Properties("Day Name"), MEMBER_VALUE, PARENT_UNIQUE_NAME, and
MEMBER_KEY.
This MDX query runs against the AdventureWorks2012 cube in the AdventureWorks2012 DW database,
included with the AdventureWorks2012 sample databases.
When you run this query in an MDX query pane, you get a result set with 1158 rows. The first four rows are
shown in the following table.
Default MDX queries built using the MDX Query Designer in graphical mode only include MEMBER_CAPTION
and UNIQUENAME for dimension properties. By default, these values always are data type String .
If you need a member property in its original data type, you can include an additional property MEMBER_VALUE
by modifying the default MDX statement in the text-based query designer. In the following simple MDX
statement, MEMBER_VALUE has been added to the list of dimension properties to retrieve.
SELECT NON EMPTY {[Measures].[Order Count]} ON COLUMNS,
NON EMPTY { ([Date].[Month of Year].[Month of Year] ) }
DIMENSION PROPERTIES
MEMBER_CAPTION, MEMBER_UNIQUE_NAME, MEMBER_VALUE ON ROWS
FROM [Adventure Works]
CELL PROPERTIES
VALUE, BACK_COLOR, FORE_COLOR,
FORMATTED_VALUE, FORMAT_STRING,
FONT_NAME, FONT_SIZE, FONT_FLAGS
The first four rows of the result in the MDX Results pane appear in the following table.
M O N T H O F Y EA R O RDER C O UN T
January 2,481
February 2,684
March 2,749
April 2,739
Even though the properties are part of the MDX select statement, they do not appear in the result set columns.
Nevertheless, the data is available for a report by using the extended properties feature. In an MDX query result
pane in SQL Server Management Studio, you can double-click on the cell and see the cell property values if they
are set in the cube. If you double-click on the first Order Count cell that contains 1,379, you will see a pop-up
window with the following cell properties:
P RO P ERT Y VA L UE
CellOrdinal 0
VALUE 2481
BACK_COLOR (null)
FORE_COLOR (null)
FORMATTED_VALUE 2,481
FORMAT_STRING #,#
FONT_NAME (null)
FONT_SIZE (null)
FONT_FLAGS (null)
If you create a report dataset with this query and bind the dataset to a table, you can see the default VALUE
property for a field, for example, =Fields!Month_of_Year!Value . If you set this expression as the sort expression
for the table, your results will be to sort the table alphabetically by month because the Value field uses a String
data type. To sort the table in so that the months are in the order they occur in the year with January first and
December last, use the following expression:
=Fields!Month_of_Year("MEMBER_VALUE")
This sorts the value of the field in its original integer data type from the data source.
See Also
Expressions (Report Builder and SSRS)
Built-in Collections in Expressions (Report Builder and SSRS)
Dataset Fields Collection (Report Builder and SSRS)
Power Pivot Connection Type (SSRS)
11/2/2020 • 3 minutes to read • Edit Online
You can use SQL Server Analysis Services data processing extension to retrieve data from a Power Pivot
workbook that is published in a SharePoint Power Pivot Gallery.
Use the information in this topic to build a data source. For step-by-step instructions, see Add and Verify a Data
Connection (Report Builder and SSRS).
Prerequisites
The Power Pivot data source must be published in a Power Pivot Gallery on a SharePoint site.
To support connections from Report Builder to a Power Pivot workbook, you must have SQL Server 2008 R2
ADOMD.NET on your workstation computer. This client library is installed with Power Pivot for Excel, but if you
are using a computer that does not have this application, you must download and install ADOMD.NET from the
SQL Server 2008 R2 Feature Pack.
Connection String
The connection string is the URL to Power Pivot workbook published on SharePoint in the Power Pivot Gallery
or other library, for example, https://contoso-srv/subsite/PowerPivotLibrary/ContosoSales.xlsx .
Credentials
Specify the credentials that you need to access the Power Pivot workbook and SharePoint site, for example,
Windows Authentication (Integrated Security). For more information, see Create data connection strings -
Report Builder & SSRS or Specify Credential and Connection Information for Report Data Sources.
Queries
After you connect to the Power Pivot data source, use the MDX graphical query to build a query by browsing
and selecting from the underlying data structures. After you build a query, run the query to see sample data in
the results pane.
The query designer analyzes the query to determine the dataset fields. You can also manually edit the dataset
field collection in the Repor t Data pane. For more information, see Add, Edit, Refresh Fields in the Report Data
Pane (Report Builder and SSRS).
Filters
In the Filters pane, specify dimensions and members to filter out or to include in the query results.
Parameters
In the Filters pane, select the Parameters option for a filter to automatically create a report parameter with
available values that correspond to the filter selections.
Remarks
If you open Report Builder from the Power Pivot workbook in a Power Pivot Gallery, the PivotTables, PivotCharts,
slicers, and other layout and analytical features from the Power Pivot workbook are not re-created in the report.
Instead, the blank report includes a preconfigured data source that points to the data in the Power Pivot
workbook. Designing reports based on a Power Pivot workbook can be labor-intensive and time-consuming
depending on the number of slicers, filters, and tables or charts that you want to re-create in the report. A better
approach is to envision the presentation of the data that you want in a report independently from the Power
Pivot design.
The data in a Power Pivot workbook is highly compressed; data retrieved from the Power Pivot workbook for a
report is not compressed. Use the query designer to specify filters and parameters to limit the data to just what
is needed in the report.
Unlike connecting to an Analysis Services cube, a Power Pivot model has no hierarchies. To provide similar
functionality to related slicers in the workbook, you must create cascading parameters in the report. For more
information, see Add Cascading Parameters to a Report (Report Builder and SSRS).
In some cases, you might need to adjust expressions to accommodate the underlying data values from the
Power Pivot model. You might need to modify expressions to convert data to the right data type or to add or
remove an aggregate function. For example, to convert data type from String to Integer, use =CInt . Always
verify that the report displays the expected values from the data in the Power Pivot model before you publish
the report.
Preview images of a report in a Power Pivot Gallery are generated only if the following conditions are met:
The report and the Power Pivot workbook that provides the data must be stored together in the same
Power Pivot Gallery.
The report contains only Power Pivot data from a Power Pivot data source.
See Also
Analysis Services MDX Query Designer User Interface (Report Builder)
Expressions (Report Builder and SSRS)
SharePoint List Connection Type (SSRS)
11/2/2020 • 8 minutes to read • Edit Online
Connection String
The connection string to a SharePoint list is the URL to the SharePoint site or subsite, for example,
https://MySharePointWeb/MySharePointSite or https://MySharePointWeb/MySharePointSite/Subsite .
The query designer automatically displays the SharePoint lists that you have sufficient permissions to access.
For more connection string examples, see Create data connection strings - Report Builder & SSRS.
Credentials
Credentials are required to run queries, to preview the report locally, and to preview the report from the report
server. After you publish your report, you may need to change the credentials for the data source so that when
the report runs on the report server, the permissions to retrieve the data are valid. The types of credentials that
can be used with this data extension depend on the SharePoint technology configuration for the SharePoint list
that you are using as a data source.
The following tables outline credential retrieval behavior for the SharePoint list extension, when connecting to a
local farm SharePoint list and to a remote SharePoint list.
Table 1 is for reports deployed to a legacy Windows SharePoint Site. A legacy Windows site supports only
Kerberos, NTLM, and Forms Based Authentication (FBA). Table 2 is for reports deployed to a Claims-based
SharePoint site.
Table 1
C L A SSIC M O DE W IN DO W S
RET RIEVA L T Y P E SUP P O RT ED C REDEN T IA L S A UT H EN T IC AT IO N *C L A IM S A UT H EN T IC AT IO N
*Windows authentication, Forms Based authentication (FBA), Secure Application Markup Language (SAML)
tokens, other identity providers or a combination of more than one of the above mentioned authentication
providers.
Table 2
C L A SSIC M O DE W IN DO W S
RET RIEVA L T Y P E SUP P O RT ED C REDEN T IA L S A UT H EN T IC AT IO N *C L A IM S A UT H EN T IC AT IO N
*Windows authentication, Forms Based authentication (FBA), Secure Application Markup Language (SAML)
tokens, other identity providers or a combination of more than one of the above mentioned authentication
providers.
Windows Authentication
For a SharePoint technology that is configured to work with a report server in Trusted Account mode, this option
is not supported. This applies only to releases prior to SQL Server 2012 Reporting Services.
For a SharePoint technology that is configured to work with a report server in Windows Integrated mode, this
option applies to both the current Windows user and the current SharePoint user.
For a SharePoint technology that is configured to work without a Report Server (local mode), this option is not
supported. For more information on local mode, see Local Mode vs. Connected Mode Reports in the Report
Viewer (Reporting Services in SharePoint Mode).
Credentials are not required (Do not use credentials):
To use this option, the unattended execution account must be configured on the report server. For more
information, see Configure the Unattended Execution Account (Report Server Configuration Manager).
For information about Claims authentication support across the Microsoft BI stack, see Using Claims
Authentication across the Microsoft BI Stack.
For more information, see Create data connection strings - Report Builder & SSRS, Specify Credential and
Connection Information for Report Data Sources, and Data Sources Supported by Reporting Services (SSRS).
Queries
To design a query, create a new dataset based on the data source, and then open the associated query designer.
For more information, see Create a Shared Dataset or Embedded Dataset (Report Builder and SSRS).
The SharePoint List graphical query designer displays four panes:
SharePoint Lists Displays a list of all the SharePoint lists on the site for this data source. Select a list and then
select the fields that you want in your query. The names of fields in this pane are the SharePoint friendly names,
also known as display names. Hover over an item to display the following properties in the tooltip:
Name The unique name of the field.
Identifier The unique identifier of the field.
Field Type The data type of the field.
Hidden Whether the field displays in the SharePoint list view.
Selecting fields from multiple lists is not supported. You can create a dataset for each list and select fields from
each dataset. If the lists have a common field, you can use the Lookup function in a tablix data region that is
bound to one dataset to retrieve a value from the other dataset that is not bound to the data region. For more
information, see Lookup Function (Report Builder and SSRS).
Selected Fields Displays the fields that you have selected. The names of fields in this pane are friendly
names that a SharePoint user has specified. When you close the query designer, you see these names in
the dataset field collection in the Report Data pane. The relationship between unique names and friendly
names is available in the Dataset Properties Dialog Box, Fields (Report Builder) page.
Applied Filters Limits the data that is returned from the SharePoint list, before the data is returned to
the report. Select the field name, operator, and value to use to limit the data that is retrieved in the list.
The operators vary depending on the data type of the value that you select.
You cannot change the sort order or specify groups in the graphical query designer. To do that, set sort
expressions on the report dataset, and group expressions on the data regions in the report. Query
parameters are not supported. To filter data in the report, use report filters or report parameters that you
create. For more information, see Filter, Group, and Sort Data (Report Builder and SSRS) and Report
Parameters (Report Builder and Report Designer).
Quer y Results Displays example rows that are returned when the query runs. If the SharePoint list
values change frequently on the SharePoint site, the values that you see in the query results pane might
differ from the values that you see in the report.
Selected Fields Displays the fields that you have selected. The names of fields in this pane are friendly
names that a SharePoint user has specified. When you close the query designer, you see these names in
the dataset field collection in the Report Data pane. The relationship between unique names and friendly
names is available in the Dataset Properties Dialog Box, Fields (Report Builder) page.
Applied Filters Limits the data that is returned from the SharePoint list, before the data is returned to
the report. Select the field name, operator, and value to use to limit the data that is retrieved in the list.
The operators vary depending on the data type of the value that you select.
You cannot change the sort order or specify groups in the graphical query designer. To do that, set sort
expressions on the report dataset, and group expressions on the data regions in the report. Query
parameters are not supported. To filter data in the report, use report filters or report parameters that you
create. For more information, see Filter, Group, and Sort Data (Report Builder and SSRS) and Report
Parameters (Report Builder and Report Designer).
Quer y Results Displays example rows that are returned when the query runs. If the SharePoint list
values change frequently on the SharePoint site, the values that you see in the query results pane might
differ from the values that you see in the report.
For more information, see SharePoint List Query Designer (Report Builder).
Query Text
To view the query that is generated by the graphical query designer, switch to the text-based query designer. In
this view, you can see the XML that is created by the graphical query designer. The XML includes elements for
the list name, the field collection, and the filter.
Example 1. Specified fields for a list
The following example shows a well-formed SharePoint query:
<RSSharePointList>
<listName>MyList</listName>
<viewFields>
<FieldRef Name="Field1"/>
<FieldRef Name="Field4"/>
</viewFields>
<Query>
<Where>
<And>
<Gt>
<FieldRef Name="Field1"/>
<Value Type="Integer">1</Value>
</Gt>
<IsNotNull>
<FieldRef Name="Field2"/>
<Value Type="string"/>
</IsNotNull>
</And>
</Where>
</Query>
</RSSharePointList>
You can edit this view of the query as long as it remains well-formed XML text.
Example 2. All fields for a list
You can also specify only the name of a list, and all fields, including hidden fields, are returned. The following
example retrieves all the fields from a list that is named Tasks:
<RSSharePointList>
<listName>Tasks</listName>
</RSSharePointList>
All fields for the list Tasks are returned in the query results.
Parameters
Parameters are not supported by this data extension.
How-To Topics
This section contains step-by-step instructions for working with data connections, data sources, and datasets.
Add and Verify a Data Connection (Report Builder and SSRS)
Create a Shared Dataset or Embedded Dataset (Report Builder and SSRS)
Add a Filter to a Dataset (Report Builder and SSRS)
Related Sections
These sections of the documentation provide in-depth conceptual information about report data, as well as
procedural information about how to define, customize, and use parts of a report that are related to data.
Report Datasets (SSRS)
Provides an overview of accessing data for your report.
Create data connection strings - Report Builder & SSRS
Provides information about data connections and data sources.
Report Embedded Datasets and Shared Datasets (Report Builder and SSRS)
Provides information about embedded and shared datasets.
Dataset Fields Collection (Report Builder and SSRS)
Provides information about the dataset field collection generated by the query.
Data Sources Supported by Reporting Services (SSRS).
Provides in-depth information about platform and version support for each data extension.
See Also
Report Parameters
Filter, Group, and Sort Data
Expressions (Report Builder and SSRS)
More questions? Try asking the Reporting Services forum
Azure SQL Connection Type (SSRS)
3/5/2021 • 8 minutes to read • Edit Online
Microsoft Azure SQL Database is a cloud-based, hosted relational database built on SQL Server technologies. To
include data from SQL Database in your report, you must have a dataset that is based on a report data source of
type SQL Database. This built-in data source type is based on the SQL Database data extension. Use this data
source type to connect to and retrieve data from SQL Database.
This data extension supports multivalued parameters, server aggregates, and credentials managed separately
from the connection string.
SQL Database is similar to an instance of SQL Server on your premises and getting data from SQL Database is,
with a few exceptions, identical to getting data from SQL Server.
NOTE
When opening a connection to a SQL Database, set the connection timeout to 30 seconds.
Connection String
When you connect to SQL Database, you're connecting to a database object in the cloud. Just like onsite
databases, the hosted database might have multiple schemas that have multiple tables, views, and stored
procedures. You specify the database object to use in the query designer. If you don't specify a database in the
connection string, you connect to the default database that the administrator assigned to you.
Contact your database administrator for connection information and for the credentials to use to connect to the
data source. The following connection string example specifies a hosted sample database named
AdventureWorks.
Also, you use the Data Sources Proper ties dialog box to provide credentials such as user name and
password. The User Id and Password options are automatically appended to the connection string; you don't
need to type them as part of the connection string.
For more information and connection string examples, see Create data connection strings - Report Builder &
SSRS.
Credentials
Windows Authentication (integrated security) isn't supported. If you attempt to connect to SQL Database using
Windows Authentication an error occurs. SQL Database supports only SQL Server Authentication (user name
and password) and users must provide credentials (login and password) every time they connect to SQL
Database.
Credentials must be sufficient to access the database. Depending on your query, you might need other
permissions, such as sufficient permissions to run stored procedures and access tables and views. The owner of
the external data source must configure credentials that are sufficient to provide read-only access to the
database objects that you need.
From a report authoring client, the following options are available to specify credentials:
Use a stored user name and password. To negotiate the double hop that occurs when the database that
contains the report data is different than the report server, select options to use credentials as Windows
credentials. You can also choose to impersonate the authenticated user after connecting to the data
source.
No credentials are required. To use this option, you must have the unattended execution account
configured on the report server. For more information, see Configure the Unattended Execution Account
(Report Server Configuration Manager).
For more information, see Create data connection strings - Report Builder & SSRS or Specify Credential and
Connection Information for Report Data Sources.
Queries
A query specifies which data to retrieve for a report dataset. The columns in the result set for a query populate
the field collection for a dataset. If the query returns multiple result sets, the report processes only the first result
set that the query retrieves. Although there are some differences between SQL Server and SQL Databases such
as the sizes of databases supported, writing queries against SQL Databases is similar to writing queries against
SQL Server databases. Some Transact-SQL statements such as BACKUP aren't supported in SQL Database, but
they aren't ones that you use in report queries. For more information, see SQL Server Connection Type (SSRS).
By default, if you create a new query or open an existing query that can be represented in the graphical query
designer, the relational query designer is available. You can specify a query in the following ways:
Build a query interactively. Use the relational query designer that displays a hierarchical view of tables,
views, stored procedures, and other database items, organized by the database schema. Select columns
from tables or views, or specify stored procedures or table-valued functions. Limit the number of rows of
data to retrieve by specifying filter criteria. Customize the filter when the report runs by setting the
parameter option.
Type or paste a query. Use the text-based query designer to enter Transact-SQL text directly, to paste
query text from another source, to enter complex queries that cannot be built by using the relational
query designer or to enter query-based expressions.
Import an existing query from a file or report. Use the Impor t query button from either query designer
to browse to a .sql file or .rdl file and import a query.
The text-based query designer supports the following two modes:
Text Type Transact-SQL commands that select data from the data source.
Stored Procedure Choose from a list of stored procedures.
For more information, see Relational Query Designer User Interface (Report Builder) and Text-based Query
Designer User Interface (Report Builder).
The graphical query designer that SQL Database uses provides built-in support for grouping and aggregates to
help you write queries that retrieve only summary data. The Transact-SQL language features are: the GROUP BY
clause, DISTINCT keyword, and aggregates such as SUM and COUNT. The text-based query designer provides
full support for the Transact-SQL language, including grouping and aggregates. For more information about
Transact-SQL, see Transact-SQL Reference (Database Engine).
Using Query Type Text
In the text-based query designer, you type Transact-SQL commands to define the data in a dataset. For example,
the following Transact-SQL query selects the names of all employees who are marketing assistants:
SELECT
HumanResources.Employee.BusinessEntityID
,HumanResources.Employee.JobTitle
,Person.Person.FirstName
,Person.Person.LastName
FROM
Person.Person
INNER JOIN HumanResources.Employee
ON Person.Person.BusinessEntityID = HumanResources.Employee.BusinessEntityID
WHERE HumanResources.Employee.JobTitle = 'Marketing Assistant'
Click the Run button (! ) on the toolbar to run the query and display a result set.
To parameterize this query, add a query parameter. For example, change the WHERE clause to the following:
When you run the query, report parameters that correspond to query parameters are automatically created. For
more information, see Query Parameters later in this topic.
Using Query Type StoredProcedure
You can specify a stored procedure for a dataset query in one of the following ways:
In the Dataset Proper ties dialog box, set the Stored Procedure option. Choose from the drop-down
list of stored procedures and table-valued functions.
In the relational query designer, in the Database view pane, select a stored procedure or table-valued
function.
In the text-based query designer, select StoredProcedure from the toolbar.
After you select a stored procedure or table-valued function, you can run the query. You then are prompted for
input parameter values. When you run the query, report parameters that correspond to input parameters are
automatically created. For more information, see Query Parameters later in this topic.
Only the first result set that is retrieved for a stored procedure is supported. If a stored procedure returns
multiple result sets, only the first one is used.
If a stored procedure has a parameter that has a default value, you can access that value by using the DEFAULT
keyword as a value for the parameter. If the query parameter is linked to a report parameter, the user can type
or select the word DEFAULT in the input box for the report parameter.
For more information about stored procedures, see Stored Procedures (Database Engine).
Parameters
When query text contains query variables or stored procedures that have input parameters, the corresponding
query parameters for the dataset and report parameters for the report are automatically generated. The query
text must not include the DECLARE statement for each query variable.
For example, the following SQL query creates a report parameter named EmpID :
SELECT FirstName, LastName FROM HumanResources.Employee E INNER JOIN
Person.Contact C ON E.ContactID=C.ContactID
WHERE EmployeeID = (@EmpID)
By default, each report parameter has data type Text and an automatically created dataset to provide a drop-
down list of available values. After the report parameters are created, you might have to change default values.
For more information, see Report Parameters (Report Builder and Report Designer).
Remarks
A l t e rn a t e Da t a E x t e n s i o n s
You can also retrieve data from a SQL Server database by using an ODBC data source type. Connecting to SQL
Database by using OLE DB isn't supported.
For more information, see ODBC Connection Type (SSRS).
P l a t f o rm a n d V e rs i o n I n f o rma t i o n
For more information about platform and version support, see Data Sources Supported by Reporting Services
(SSRS).
How-To Topics
This section contains step-by-step instructions for working with data connections, data sources, and datasets.
Add and Verify a Data Connection (Report Builder and SSRS)
Create a Shared Dataset or Embedded Dataset (Report Builder and SSRS)
Add a Filter to a Dataset (Report Builder and SSRS)
Related Sections
These sections of the documentation provide in-depth conceptual information about report data, and
procedural information about how to define, customize, and use parts of a report that are related to data.
Report Datasets (SSRS)
Provides an overview of accessing data for your report.
Create data connection strings - Report Builder & SSRS
Provides information about data connections and data sources.
Report Embedded Datasets and Shared Datasets (Report Builder and SSRS)
Provides information about embedded and shared datasets.
Dataset Fields Collection (Report Builder and SSRS)
Provides information about the dataset field collection generated by the query.
Data Sources Supported by Reporting Services (SSRS).
Provides in-depth information about platform and version support for each data extension.
See Also
Microsoft Azure SQL Database on docs.microsoft.com
Report Parameters (Report Builder and Report Designer)
Filter, Group, and Sort Data (Report Builder and SSRS)
Expressions (Report Builder and SSRS)
OLE DB Connection Type (SSRS)
11/2/2020 • 4 minutes to read • Edit Online
To include data from an OLE DB data provider, you must have a dataset that is based on a report data source of
type OLE DB. This built-in data source type is based on the Microsoft SQL Server Reporting Services OLE DB
data processing extension.
OLE DB is a data access technology that enables clients to connect to a variety of data providers. After you select
the data source type OLE DB, you must select a specific data provider. Support for features such as parameters
and credentials are dependent on the data provider that you select.
Use the information in this topic to build a data source. For step-by-step instructions, see Add and Verify a Data
Connection (Report Builder and SSRS).
Connection String
The connection string for the OLE DB data processing extension depends on the data provider that you want. A
typical connection string contains name/value pairs that are supported by the data provider. For example, the
following connection string specifies the OLE DB provider for SQL Server Native Client and the AdventureWorks
database:
The connection string that you use depends on the external data source that you are connecting to. To set
connection string properties specific to a data provider, from the General page of the Data Source
Proper ties dialog box, click the Build button to open the Connection Proper ties dialog box. Set extended
data source properties through the Data Link Proper ties dialog box.
For examples of connection strings, see Create data connection strings - Report Builder & SSRS.
Credentials
Credentials are required to run queries, to preview the report locally, and to preview the report from the report
server.
After you publish your report, you may need to change the credentials for the data source so that when the
report runs on the report server, the permissions to retrieve the data are valid.
For more information, see Specify Credential and Connection Information for Report Data Sources.
Sp e c i a l C h a ra c t e rs i n a P a s s w o rd
If you configure the OLE DB data source to prompt for a password or to include the password in the connection
string, and a user enters the password with special characters such as punctuation marks, some underlying data
source drivers cannot validate the special characters. When you process the report, the message "Not a valid
password" may indicate this problem.
NOTE
It is recommended that you do not add login information such as passwords to the connection string. Report Builder
provides a separate tab on the Data Source dialog box that you can use to enter credentials.
Parameters
Some OLE DB providers support unnamed parameters and not named parameters. Parameters are passed by
position by using a placeholder in the query. The placeholder character is determined by the syntax that is
supported by the data provider.
Remarks
OLEDB is a native technology for building data providers for specific data sources. OLEDB is based on COM
(Component Object Model) interfaces. OLEDB is a later technology than ODBC and earlier than ADO.NET data
providers. OLEDB data providers are registered with the operating system like any other COM component.
OLEDB data providers are available from Microsoft and third party vendors. Microsoft also provides MSDASQL,
an OLEDB data provider that bridges communication to ODBC drivers. For more information, see ODBC
Connection Type (SSRS).
To successfully retrieve the data that you want, you must provide query syntax that is supported by the data
provider. Parameter support varies by data provider. For more information, see topics that are specific to the
data provider that you select. For example:
Analysis Services OLE DB Provider (Analysis Services - Multidimensional Data)
SQL Server Native Client (OLE DB)
For more information about specific OLE DB data providers, see Data Sources Supported by Reporting Services
(SSRS).
How-To Topics
This section contains step-by-step instructions for working with data connections, data sources, and datasets.
Add and Verify a Data Connection (Report Builder and SSRS)
Create a Shared Dataset or Embedded Dataset (Report Builder and SSRS)
Add a Filter to a Dataset (Report Builder and SSRS)
Related Sections
These sections of the documentation provide in-depth conceptual information about report data, as well as
procedural information about how to define, customize, and use parts of a report that are related to data.
Report Datasets (SSRS)
Provides an overview of accessing data for your report.
Create data connection strings - Report Builder & SSRS
Provides information about data connections and data sources.
Report Embedded Datasets and Shared Datasets (Report Builder and SSRS)
Provides information about embedded and shared datasets.
Dataset Fields Collection (Report Builder and SSRS)
Provides information about the dataset field collection generated by the query.
Data Sources Supported by Reporting Services (SSRS).
Provides in-depth information about platform and version support for each data extension.
See Also
Report Parameters (Report Builder and Report Designer)
Filter, Group, and Sort Data (Report Builder and SSRS)
Expressions (Report Builder and SSRS)
SQL Server Parallel Data Warehouse Connection
Type (SSRS)
11/2/2020 • 7 minutes to read • Edit Online
Microsoft SQL Server 2016 Parallel Data Warehouse is a scalable data warehouse appliance that delivers
performance and scalability through massively parallel processing. Microsoft Azure Synapse Analytics uses SQL
Server databases for distributed processing and data storage.
The appliance partitions large database tables across multiple physical nodes, with each node running its own
instance of SQL Server. When a report connects to Microsoft Azure Synapse Analytics to retrieve report data, it
connects to the control node, which manages query processing, in the Microsoft Azure Synapse Analytics
appliance. After the connection is made, there are no differences between working with an instance of SQL
Server that is and is not within a Microsoft Azure Synapse Analytics environment.
To include data from Microsoft Azure Synapse Analytics in your report, you must have a dataset that is based on
a report data source of type Microsoft SQL Server Parallel Data Warehouse. This built-in data source type is
based on the Microsoft SQL Server Parallel Data Warehouse data extension. Use this data source type to connect
to and retrieve data from Microsoft Azure Synapse Analytics.
This data extension supports multivalued parameters, server aggregates, and credentials managed separately
from the connection string.
Use the information in this topic to build a data source. For step-by-step instructions, see Add and Verify a Data
Connection (Report Builder and SSRS).
Connection String
When you connect to Microsoft Azure Synapse Analytics, you are connecting to a database object within a
Microsoft Azure Synapse Analytics appliance. You specify the database object to use in the query designer. If you
do not specify a database in the connection string, you connect to the default database that the administrator
assigned to you. Contact your database administrator for connection information and for the credentials to use
to connect to the data source. The following connection string example specifies the sample database,
CustomerSales , in the Microsoft Azure Synapse Analytics appliance:
In addition, you use the Data Sources Proper ties dialog box to provide credentials such as user name and
password, The User Id and Password options are automatically appended to the connection string, you do not
need to type them as part of the connection string. The user interface also provides options to specify the IP
address of the control node in the Microsoft Azure Synapse Analytics appliance and the port number. By default,
the port is 17000. The port is configurable by an administrator and your connection string might use a different
port number.
For more information about connection string examples, see Create data connection strings - Report Builder &
SSRS.
Credentials
Microsoft Azure Synapse Analytics provides its own security technology to implement and store user names and
passwords. You cannot use Windows Authentication. If you attempt to connect to Microsoft Azure Synapse
Analytics using Windows Authentication an error occurs.
Credentials must be sufficient to access the database. Depending on your query, you might need other
permissions, such as sufficient permissions to access tables and views. The owner of the external data source
must configure credentials that are sufficient to provide read-only access to the database objects that you need.
From a report authoring client, the following options are available to specify credentials:
Use a stored user name and password. To negotiate the double hop that occurs when the database that
contains the report data is different than the report server, select options to use credentials as Windows
credentials. You can also chose to impersonate the authenticated user after connecting to the data source.
No credentials are required. To use this option, you must have the unattended execution account
configured on the report server. For more information, see Configure the Unattended Execution Account
(Report Server Configuration Manager).
For more information, see Create data connection strings - Report Builder & SSRS or Specify Credential and
Connection Information for Report Data Sources.
Queries
A query specifies which data to retrieve for a report dataset.
The columns in the result set for a query populate the field collection for a dataset. If the query returns multiple
result sets, the report processes only the first result set that a query retrieves. By default, if you create a new
query or open an existing query that can be represented in the graphical query designer, the relational query
designer is available. You can specify a query in the following ways:
Build a query interactively. Use the relational query designer that displays a hierarchical view of tables,
views, and other database items, organized by database schema. Select columns from tables or views.
Limit the number of rows of data to retrieve by specifying filter criteria, grouping, and aggregates.
Customize the filter when the report runs by setting the parameter option.
Type or paste a query. Use the text-based query designer to enter SQL text directly, to paste query text
from another source, to enter complex queries that cannot be built by using the relational query designer,
or to enter query-based expressions.
Import an existing query from a file or report. Use the Impor t query button from either query designer
to browse to a .sql file or .rdl file and import a query.
For more information, see Relational Query Designer User Interface (Report Builder) and Text-based Query
Designer User Interface (Report Builder).
The text-based query designer supports the Text mode in which you type SQL commands that select data from
the data source.
Text
You use SQL with Microsoft Azure Synapse Analytics and Transact-SQL with SQL Server. The two dialects of the
SQL language are very similar. Queries written for the SQL Server data source connection type can typically be
used for the SQL Server 2016 Parallel Data Warehouse data source connection type.
A query that retrieves report data from a large database, including a data warehouse such as Microsoft Azure
Synapse Analytics, might generate a result set that has a very large number of rows unless you aggregate and
summarize data to reduce the number of rows that the query returns. You can write queries that include
aggregates and grouping by using either the graphical or text-based query designer.
SQL support the clause, keyword, and aggregates that the query designer provides to summarize data.
The graphical query designer used by Microsoft Azure Synapse Analytics provides built-in support for grouping
and aggregates to help you write queries that retrieve only summary data. The SQL language features are: the
GROUP BY clause, DISTINCT keyword, and aggregates such as SUM and COUNT. The text-based query designer
provides full support for the SQL language, including grouping and aggregates.
For more information about Transact-SQL, see Transact-SQL Reference (Database Engine).
Using Query Type Text
In the text-based query designer, you type SQL commands to define the data in a dataset. The queries that you
use to retrieve data from Microsoft Azure Synapse Analytics are the same as ones you use to retrieve data from
instances of SQL Server that are not running within a Microsoft Azure Synapse Analytics application. For
example, the following SQL query selects the names of all employees who are marketing assistants:
SELECT
HumanResources.Employee.BusinessEntityID
,HumanResources.Employee.JobTitle
,Person.Person.FirstName
,Person.Person.LastName
FROM
Person.Person
INNER JOIN HumanResources.Employee
ON Person.Person.BusinessEntityID = HumanResources.Employee.BusinessEntityID
WHERE HumanResources.Employee.JobTitle = 'Marketing Assistant'
Click the Run button (! ) on the toolbar to run the query and display a result set.
To parameterize this query, add a query parameter. For example, change the WHERE clause to the following:
WHERE HumanResources.Employee.JobTitle = (@JobTitle)
When you run the query, report parameters that correspond to query parameters are automatically created. For
more information, see Query Parameters later in this topic.
Parameters
When query text contains query variables or stored procedures that have input parameters, the corresponding
query parameters for the dataset and report parameters for the report are automatically generated. The query
text must not include the DECLARE statement for each query variable.
For example, the following SQL query creates a report parameter named EmpID :
By default, each report parameter has data type Text and an automatically created dataset to provide a drop-
down list of available values. After the report parameters are created, you might have to change default values.
For more information, see Report Parameters (Report Builder and Report Designer).
Remarks
P l a t f o rm a n d V e rs i o n I n f o rma t i o n
For more information about platform and version support, see Data Sources Supported by Reporting Services
(SSRS).
How-To Topics
This section contains step-by-step instructions for working with data connections, data sources, and datasets.
Add and Verify a Data Connection (Report Builder and SSRS)
Create a Shared Dataset or Embedded Dataset (Report Builder and SSRS)
Add a Filter to a Dataset (Report Builder and SSRS)
Related Sections
These sections of the documentation provide in-depth conceptual information about report data, and
procedural information about how to define, customize, and use parts of a report that are related to data.
Report Datasets (SSRS)
Provides an overview of accessing data for your report.
Create data connection strings - Report Builder & SSRS
Provides information about data connections and data sources.
Report Embedded Datasets and Shared Datasets (Report Builder and SSRS)
Provides information about embedded and shared datasets.
Dataset Fields Collection (Report Builder and SSRS)
Provides information about the dataset field collection generated by the query.
Data Sources Supported by Reporting Services (SSRS).
Provides in-depth information about platform and version support for each data extension.
Next steps
Report Parameters
Filter, Group, and Sort Data
Expressions
More questions? Try asking the Reporting Services forum
Teradata Connection Type (SSRS)
11/2/2020 • 2 minutes to read • Edit Online
To include data from Teradata in your report, you must have a dataset that is based on a report data source of
type Teradata. This built-in data source type is based on the .NET Managed Provider for Teradata data processing
extension.
Use the information in this topic to build a data source. For step-by-step instructions, see Add and Verify a Data
Connection (Report Builder and SSRS).
Connection String
Contact your database administrator for connection information and for the credentials to use to connect to the
data source. The following connection string example specifies a Teradata data source on the server specified
with an IP address:
For more connection string examples, see Create data connection strings - Report Builder & SSRS.
Credentials
Credentials are required to run queries, to preview the report locally, and to preview the report from the report
server.
After you publish your report, you may need to change the credentials for the data source so that when the
report runs on the report server, the permissions to retrieve the data are valid.
For more information, see Create data connection strings - Report Builder & SSRS or Specify Credential and
Connection Information for Report Data Sources.
Remarks
Before you can connect a Teradata data source, the system administrator must have installed the version of the
.NET Data Provider for Teradata that supports retrieving data from Teradata. This data provider must be installed
on the same computer as Report Builder and also on the report server.
Not all report delivery modes are supported by this data provider. Delivering reports through data-driven
subscriptions is not supported for this data processing extension. For more information, see Use an External
Data Source for Subscriber Data (Data-Driven Subscription).
Report Models
To create a dataset from a report model that is based on a Teradata data source, the model must be designed in
Model Designer in SQL Server SQL Server Data Tools (SSDT) and published on a report server.
Related Sections
These sections of the documentation provide in-depth conceptual information about report data, as well as
procedural information about how to define, customize, and use parts of a report that are related to data.
Report Datasets (SSRS)
Provides an overview of accessing data for your report.
Create data connection strings - Report Builder & SSRS
Provides information about data connections and data sources.
Report Embedded Datasets and Shared Datasets (Report Builder and SSRS)
Provides information about embedded and shared datasets.
Dataset Fields Collection (Report Builder and SSRS)
Provides information about the field collection that is generated by the dataset query.
Data Sources Supported by Reporting Services (SSRS) Provides in-depth information about platform and
version support for each data extension.
See Also
Report Parameters (Report Builder and Report Designer)
Filter, Group, and Sort Data (Report Builder and SSRS)
Expressions (Report Builder and SSRS)
Oracle Connection Type (SSRS & Power BI Report
Server)
8/10/2021 • 5 minutes to read • Edit Online
APPLIES TO: ✔
️ SQL Server 2016 Reporting Services and later ✔
️ Power BI Report Server
To use data from an Oracle database in your report, you must have a dataset that's based on a report data
source of type Oracle. This built-in data source type uses the Oracle Data Provider directly and requires an
Oracle client software component. This article explains how to download and install drivers for Reporting
Services, Power BI Report Server, Report Builder, and Power BI Desktop.
Use the information in this article to build a data source. For step-by-step instructions, see Add and Verify a Data
Connection (Report Builder and SSRS).
IMPORTANT
The following commands that use Oracle's OraProvCfg.exe tool to register Oracle's Managed and Unmanaged ODP.NET
drivers are provided as examples for use with the above Microsoft products. For the configuration of the ODP.NET drivers
specific to your environment, you may need to contact Oracle support or reference Oracle's documentation for
Configuring Oracle Data Provider for .NET.
C:\oracle64\product\18.0.0\client_1\odp.net\bin\4\OraProvCfg.exe /action:gac
/providerpath:C:\oracle64\product\18.0.0\client_1\odp.net\managed\common\Oracle.ManagedDataAccess.dll
C:\oracle32\product\18.0.0\client_1\odp.net\bin\4\OraProvCfg.exe /action:gac
/providerpath:C:\oracle32\product\18.0.0\client_1\odp.net\managed\common\Oracle.ManagedDataAccess.dll
Power BI Report Builder uses Managed ODP.NET for authoring paginated (RDL) reports. You only need the
following steps when using Oracle ODAC drivers 12.2 and later. Otherwise, they install by default to a non-
machine-wide configuration for a new Oracle home installation. These steps assume you've installed the ODAC
18.x files to the c:\oracle64 folder where Power BI Report Builder is installed. Follow these steps to register
Managed ODP.NET:
1. On the Oracle download site, install the Oracle 64-bit ODAC Oracle Universal Installer (OUI).
2. Register ODP.NET Managed Client to GAC:
C:\oracle64\product\18.0.0\client_1\odp.net\bin\4\OraProvCfg.exe /action:gac
/providerpath:C:\oracle64\product\18.0.0\client_1\odp.net\managed\common\Oracle.ManagedDataAccess.dll
C:\oracle64\product\18.0.0\client_1\odp.net\bin\4\OraProvCfg.exe /action:gac
/providerpath:C:\oracle64\product\18.0.0\client_1\odp.net\bin\4\Oracle.DataAccess.dll
C:\oracle32\product\18.0.0\client_1\odp.net\bin\4\OraProvCfg.exe /action:gac
/providerpath:C:\oracle32\product\18.0.0\client_1\odp.net\bin\4\Oracle.DataAccess.dll
Connection String
Contact your database administrator for connection information and for the credentials to use to connect to the
data source. The following connection string example specifies an Oracle database on the server named
"Oracle18" using Unicode. The server name must match what is defined in the Tnsnames.ora configuration file
as the Oracle server instance name.
For more connection string examples, see Create data connection strings - Report Builder & SSRS.
Credentials
Credentials are required to run queries, to preview the report locally, and to preview the report from the report
server.
After you publish your report, you may need to change the credentials for the data source so that when the
report runs on the report server, the permissions to retrieve the data are valid.
For more information, see Specify Credential and Connection Information for Report Data Sources.
Queries
To create a dataset, you can either select a stored procedure from a drop-down list or create an SQL query. To
build a query, you must use the text-based query designer. For more information, see Text-based Query
Designer User Interface (Report Builder).
You can specify stored procedures that return only one result set. Using cursor-based queries aren't supported.
Parameters
If the query includes query variables, corresponding report parameters are automatically generated. Named
parameters are supported by this extension. For Oracle version 9 or later, multivalue parameters are supported.
Report parameters are created with default property values that you might need to modify. For example, each
report parameter is data type Text . After the report parameters are created, you might have to change default
values. For more information, see Report Parameters (Report Builder and Report Designer).
Remarks
Before you can connect an Oracle data source, the system administrator must have installed the version of the
.NET Data Provider for Oracle that supports retrieving data from the Oracle database. This data provider must
be installed on the same computer as Report Builder and also on the report server.
For more information, see the following articles:
How to use Reporting Services to configure and to access an Oracle data source
How to add permissions for the NETWORK SERVICE security principal
Alternate Data Extensions
You can also retrieve data from an Oracle database by using an OLE DB data source type. For more information,
see OLE DB Connection Type (SSRS).
Report Models
You can also create models based on an Oracle database.
Platform and Version Information
For more information about platform and version support, see Data Sources Supported by Reporting Services
(SSRS).
See Also
Report Parameters (Report Builder and Report Designer)
Filter, Group, and Sort Data (Report Builder and SSRS)
Expressions (Report Builder and SSRS)
SAP NetWeaver BI Connection Type (SSRS)
3/5/2021 • 5 minutes to read • Edit Online
To include data from a SAP NetWeaver® Business Intelligence external data source in your report, you must
have a dataset that is based on a report data source of type SAP NetWeaver Business Intelligence. This built-in
data source type is based on the data extension for the Microsoft .NET Framework Data Provider 1.0 for SAP
NetWeaver Business Intelligence.
This data extension enables you to retrieve multidimensional data from InfoCubes, MultiProviders (virtual
InfoCubes), and Web-enabled queries that are defined on a SAP NetWeaver Business Intelligence external data
source.
Use the information in this topic to build a data source. For step-by-step instructions, see Add and Verify a Data
Connection (Report Builder and SSRS).
Connection String
Contact the database administrator for connection information and for the credentials to use to connect to the
data source. The following connection string example specifies an SAP NetWeaver Business Intelligence data
source on a server using port 8000 and XML for Analysis Services (XMLA) over the Internet using SOAP:
DataSource=https://mySAPNetWeaverBIServer:8000/sap/bw/xml/soap/xmla
For more connection string examples, see Create data connection strings - Report Builder & SSRS.
Credentials
Credentials are required to run queries, to preview the report locally, and to preview the report from the report
server.
After you publish your report, you may need to change the credentials for the data source so that when the
report runs on the report server, the permissions to retrieve the data are valid.
For more information, see Specify Credential and Connection Information for Report Data Sources.
Queries
You can use the graphical query designer in Design or Query mode to build a Multidimensional Expression
(MDX) query by browsing the underlying data structures on the data source. At design time, you can
interactively run a query from the query designer to see the results. The query you build defines fields in the
dataset. At run time, the actual data is returned from the data source. Use the graphical query designer to
perform the following actions:
In Design mode, drag dimensions, members, member properties, and key figures from the data source
onto a Data pane to build a Multidimensional Expression (MDX) query. Drag calculated members from
the Calculated Members pane to the Data pane to define additional dataset fields.
In Query mode, drag dimensions, members, member properties, and key figures onto the Query pane or
type MDX text directly into the Query pane. Drag calculated members from the Calculated Members pane
to the Data pane to define additional dataset fields.
As you build queries, the query designer automatically adds default properties to the MDX query. To include
properties other than default properties, you must manually modify the MDX query.
For more information about working with this query designer, see SAP NetWeaver BI Query Designer User
Interface (Report Builder).
The name for an extended field property appears in the ToolTip when you hover over a field in the Metadata
pane. For more information about the query designers you can use to explore the underlying data, see SAP
NetWeaver BI Query Designer User Interface.
NOTE
Values exist for extended field properties only if the data source provides these values when your report runs and
retrieves the data for its datasets. You can then refer to those Field property values from any expression using the syntax
described below. However, because these fields are specific to this data provider and not part of the report definition
language, changes that you make to these values are not saved with the report definition.
Use either of the following syntaxes to refer to predefined extended properties in an expression:
Fields!FieldName.PropertyName
Fields!FieldName("PropertyName")
Use the following syntax to refer to custom extended properties in an expression:
Fields!FieldName("PropertyName")
Predefined Field Properties
The following table provides a list of predefined field properties that you can use for an SAP NetWeaver
Business Intelligence data source.
For more information about using fields and field properties in an expression, see Built-in Collections in
Expressions (Report Builder and SSRS).
Remarks
Not all report delivery modes are supported by this data provider. Delivering reports through data-driven
subscriptions is not supported for this data processing extension. For more information, see Use an External
Data Source for Subscriber Data (Data-Driven Subscription).
For more information, see Using SQL Server 2008 Reporting Services with SAP NetWeaver Business
Intelligence.
How-To Topics
This section contains step-by-step instructions for working with data connections, data sources, and datasets.
Add and Verify a Data Connection (Report Builder and SSRS)
Create a Shared Dataset or Embedded Dataset (Report Builder and SSRS)
Add a Filter to a Dataset (Report Builder and SSRS)
Related Sections
These sections of the documentation provide in-depth conceptual information about report data, as well as
procedural information about how to define, customize, and use parts of a report that are related to data.
Report Datasets (SSRS)
Provides an overview of accessing data for your report.
Create data connection strings - Report Builder & SSRS
Provides information about data connections and data sources.
Report Embedded Datasets and Shared Datasets (Report Builder and SSRS)
Provides information about embedded and shared datasets.
Dataset Fields Collection (Report Builder and SSRS)
Provides information about the dataset field collection generated by the query.
Data Sources Supported by Reporting Services (SSRS)
Provides in-depth information about platform and version support for each data extension.
See Also
Report Parameters (Report Builder and Report Designer)
Filter, Group, and Sort Data (Report Builder and SSRS)
Expressions (Report Builder and SSRS)
Hyperion Essbase Connection Type (SSRS)
11/2/2020 • 7 minutes to read • Edit Online
To include data from a Hyperion Essbase external data source in your report, you must have a dataset that is
based on a report data source of type Hyperion Essbase. This built-in data source type is based on the data
extension for Hyperion Essbase, which enables you to retrieve multidimensional data from a Hyperion Essbase
external data source.
Use the information in this topic to build a data source. For step-by-step instructions, see Add and Verify a Data
Connection (Report Builder and SSRS).
Connection String
The following connection string example specifies a Hyperion Essbase data source on a server that uses port
13080 and XML for Analysis Services (XMLA) over the Internet using SOAP, connecting to a sample catalog:
For more information about connection string examples, see Create data connection strings - Report Builder &
SSRS.
Credentials
Credentials are required to run queries, to preview the report locally, and to preview the report from the report
server.
After you publish your report, you may need to change the credentials for the data source so that when the
report runs on the report server, the permissions to retrieve the data are valid.
For more information, see Specify Credential and Connection Information for Report Data Sources.
Queries
You can specify a query in the following ways:
Build a query interactively. Use the graphical query designer in Design or Query mode to browse the
metadata on the external data source and generate a query in Multidimensional Expression (MDX) syntax.
Design View Drag dimensions, members, member properties, measures, and KPIs from the
metadata browser to the Data pane to build an MDX query. Drag calculated members from the
CalculatedMembers pane to the Data pane to define additional dataset fields.
Quer y View Drag dimensions, members, member properties, measures, and KPIs from the
metadata browser to the Query pane to build an MDX query. You can edit MDX text directly in the
Query pane. Drag calculated members from the CalculatedMembers pane to the Query pane to
define additional dataset fields.
For more information, see Hyperion Essbase Query Designer User Interface (Report Builder).
Import an existing MDX query from a report. Use the Impor t query button to browse to an .rdl file and
import a query. You can import a query from a report that contains an embedded dataset that is based
on a Hyperion Essbase data source. Importing an MDX query directly from an .mdx file is not supported.
At design time, run the query to view a result set. After you build the query, view the dataset field collection that
is generated from the metadata in the Report Data pane. When the report runs, the actual data is returned from
the external data source.
The Hyperion Essbase data processing extension supports extended dataset field properties. These are values
that are available from the external data source but that do not appear in the Report Data pane. For more
information, see Extended Field Properties later in this topic.
Query Parameters
To include query parameters, create a filter in the filter area in the query designer, and mark the filter as a
parameter. For each filter, a dataset is automatically created to provide the available values. By default, these
datasets do not appear in the Report Data pane. For more information, see Show Hidden Datasets for Parameter
Values for Multidimensional Data (Report Builder and SSRS).
By default, each report parameter has data type Text . After the report parameters are created, you might have to
change default values. For more information, see Report Parameters (Report Builder and Report Designer).
NOTE
Values exist for extended field properties only if they are included in the MDX expression and the data source provides
these values when your report runs and retrieves the data for its datasets. You can then refer to those Field property
values from any expression using the syntax described in the following section. However, because these fields are specific
to this data provider and not part of the report definition language, changes that you make to these values are not saved
with the report definition.
Mapped from
MEMBER_UNIQUE_NAME in the MDX
expression.
For more information about how to use fields and field properties in an expression, see Built-in Collections in
Expressions (Report Builder and SSRS).
Custom Properties
Custom field properties that are supported by a data provider and that appear in the underlying MDX query for
a report dataset, but do not appear in the report Datasets pane as fields under that dataset. For example, Long
Names is a member property defined for a dimension level. To include the value in a text box, you use the
expression =Fields! <FieldName> ("Long Names") . Field names in the expression are case-sensitive.
Use the following syntax to refer to custom extended properties in an expression:
Fields!FieldName("PropertyName")
The following table shows the custom field property that you can use for a Hyperion Essbase data source.
How-To Topics
This section contains step-by-step instructions for working with data connections, data sources, and datasets:
Add and Verify a Data Connection (Report Builder and SSRS)
Create a Shared Dataset or Embedded Dataset (Report Builder and SSRS)
Add a Filter to a Dataset (Report Builder and SSRS)
Related Sections
These sections of the documentation provide in-depth conceptual information about report data, as well as
procedural information about how to define, customize, and use parts of a report that are related to data.
Report Datasets (SSRS)
Provides an overview of accessing data for your report.
Create data connection strings - Report Builder & SSRS
Provides information about data connections and data sources.
Report Embedded Datasets and Shared Datasets (Report Builder and SSRS)
Provides information about embedded and shared datasets.
Dataset Fields Collection (Report Builder and SSRS)
Provides information about the field collection that is generated by the dataset query.
Data Sources Supported by Reporting Services (SSRS) Provides in-depth information about platform and
version support for each data extension.
Using SQL Server 2005 Reporting Services with Hyperion Essbase
Provides detailed information about working with this data extension.
See Also
Report Parameters (Report Builder and Report Designer)
Filter, Group, and Sort Data (Report Builder and SSRS)
Expressions (Report Builder and SSRS)
ODBC Connection Type (SSRS)
11/2/2020 • 3 minutes to read • Edit Online
To include data from an ODBC data provider, you must have a dataset that is based on a report data source of
type ODBC. This built-in data source type is based on the Microsoft SQL Server Reporting Services ODBC data
processing extension.
Use the information in this topic to build a data source. For step-by-step instructions, see Add and Verify a Data
Connection (Report Builder and SSRS).
Connection String
The connection string for the ODBC data processing extension depends on the ODBC driver that you want. A
typical connection string contains name/value pairs that are supported by the driver. For example, the following
connection string specifies the ODBC driver for SQL Server Native Client and the AdventureWorks database:
Credentials
Credentials are required to run queries, to preview the report locally, and to preview the report from the report
server.
After you publish your report, you may need to change the credentials for the data source so that when the
report runs on the report server, the permissions to retrieve the data are valid.
If you configure your ODBC data source to prompt for a password or to include the password in the connection
string, and a user enters the password with special characters such as punctuation marks, some underlying data
source drivers cannot validate the special characters. When you process the report, the message "Not a valid
password" might indicate this problem. If changing the password is impractical, you can work with your
database administrator to store the appropriate credentials on the report server as part of a system ODBC data
source name (DSN). For more information, see "OdbcConnection.ConnectionString" in the .NET Framework SDK
documentation.
NOTE
It is recommended that you do not add login information such as passwords to the connection string. Report Builder
provides a separate tab on the Data Source dialog box that you can use to enter credentials.
For more information, see Create data connection strings - Report Builder & SSRS or Specify Credential and
Connection Information for Report Data Sources.
Remarks
ODBC is an early data access technology that preceded OLEDB. ODBC supports only relational data sources.
ODBC data providers are called drivers. ODBC drivers are provided by Microsoft and third party vendors. For
example, Microsoft Office installs ODBC drivers that connect to Office file formats.
Before you can build an ODBC connection string, you must have ODBC drivers installed and build a machine or
system DSN. To successfully retrieve the data that you want, you must provide query syntax that is supported by
the driver. Parameter support varies by driver. For more information, see topics that are specific to the driver that
you select, for example, SQL Server Native Client (ODBC).
P l a t f o rm a n d V e rs i o n I n f o rma t i o n
For more information about specific ODBC data providers, see Data Sources Supported by Reporting Services
(SSRS).
How-To Topics
This section contains step-by-step instructions for working with data connections, data sources, and datasets.
Add and Verify a Data Connection (Report Builder and SSRS)
Create a Shared Dataset or Embedded Dataset (Report Builder and SSRS)
Add a Filter to a Dataset (Report Builder and SSRS)
Related Sections
These sections of the documentation provide in-depth conceptual information about report data, as well as
procedural information about how to define, customize, and use parts of a report that are related to data.
Report Datasets (SSRS)
Provides an overview of accessing data for your report.
Create data connection strings - Report Builder & SSRS
Provides information about data connections and data sources.
Report Embedded Datasets and Shared Datasets (Report Builder and SSRS)
Provides information about embedded and shared datasets.
Dataset Fields Collection (Report Builder and SSRS)
Provides information about the dataset field collection generated by the query.
Data Sources Supported by Reporting Services (SSRS). Provides in-depth information about platform and
version support for each data extension.
See Also
Report Parameters (Report Builder and Report Designer)
Filter, Group, and Sort Data (Report Builder and SSRS)
Expressions (Report Builder and SSRS)
XML Connection Type (SSRS)
3/5/2021 • 6 minutes to read • Edit Online
To include data from an XML data source in your report, you must have a dataset that is based on a report data
source of type XML. This built-in data source type is based on the XML data extension. Use this data source type
to connect to and retrieve data from XML documents, Web services, or XML that is embedded in the query.
This data extension supports parameters and credentials managed separately from the connection string.
Use the information in this topic to build a data source. For step-by-step instructions, see Add and Verify a Data
Connection (Report Builder and SSRS).
Connection String
The connection string must be a URL that points to the Web service, Web-based application, or XML document
available through HTTP. XML documents must have the XML extension. You can also use an empty connection
string for XML data embedded in the dataset query.
The following examples illustrate the connection string syntax for a Web service and XML document,
respectively. The file:// protocol is not supported.
XM L DO C UM EN T T Y P E C O N N EC T IO N ST RIN G EXA M P L E
For more connection string examples, see Data Connections, Data Sources, and Connection Strings in Report
Builder.
Credentials
Credentials are required to run queries, to preview the report locally, and to preview the report from the report
server.
After you publish your report, you may need to change the credentials for the data source so that when the
report runs on the report server, the permissions to retrieve the data are valid.
From a report authoring client, the following options are available to specify credentials:
Current Windows user (also known as integrated security).
No credentials are required. If you select no credentials, Anonymous access is used. Make sure that you
have defined the unattended execution account for the report server to connect to an external data
source. The XML data processing extension does not pass credentials to the target URL or the Web
service; the connection will be unsuccessful unless you have defined the unattended execution account.
For more information, see Configure the Unattended Execution Account (Report Server Configuration
Manager).
Stored and prompted credentials are not supported. Remember that if you disable Windows integrated security,
you cannot use it to retrieve data. If you specify stored or prompted credentials, an error will occur at run time.
For more information, see Create data connection strings - Report Builder & SSRS or Specify Credential and
Connection Information for Report Data Sources.
Queries
A query specifies which data to retrieve for a report dataset. The columns in the result set for a query populate
the field collection for a dataset. A report processes only the first result set retrieved by a query.
You must use the text-based query designer to create the query. The query must return XML data.
For more information about the text-based query designer, see Text-based Query Designer User Interface
(Report Builder).
The possible values for a dataset query for a data source that is type XML are shown below.
Empty
Use an empty query to create a default result set. The default query is created by reading the data source
and traversing the XML node hierarchy to the first leaf collection. The result set includes all nodes with
text values and all node attributes along that path. Columns in the result set are mapped to fields for the
dataset.
An element path
Specifies the sequence of nodes to use when retrieving XML data from the data source.
An XML Query element
An XML query specification with the following optional elements:
XML data source is a Web ser vice
Required XML elements:
<Method Namespace= "namespace" Name="MethodName" />
-- or --
-- or --
-- or --
For more information about query syntax, see XML Query Syntax for XML Report Data (SSRS).
For examples, see Reporting Services: Using XML and Web Service Data Sources.
Requirements for Retrieving XML Web Service Data
The XML data processing extension does not detect the schema for you. Therefore, you must have some way of
discovering which SOAP methods will retrieve the data that you want. You must also understand the addressing
scheme or namespace that the Web service uses for its data.
For a Web service, you can provide a <Quer y > element that specifies a method to call or SOAP action. You can
leave the query empty and use the default query if the XML data source has a hierarchical structure that
produces the data that you want to use for your report. XML element node values and attributes retrieved when
the query runs map to the dataset fields you use in your report.
Requirements for Retrieving XML Document Data
Using the http protocol, the server must return XML data or the XML data must be embedded in the XML Quer y
element. If you refer to an XML document directly using the http protocol, the extension must be .xml.
You must know how to create an XML query that retrieves all the data you need. If you do not specify an
element path, the default behavior for parsing an XML document is to select the first available path to a leaf-
node collection in the XML document. If the XML document includes additional paths to other sibling leaf-node
collections, those nodes will be ignored unless you specify a path in your query.
You can provide an element path using XML syntax similar to XQuery.
For more information, see Element Path Syntax for XML Report Data (SSRS).
Parameters
The query is not analyzed to identify parameters.
To add parameters, you must create them manually through the Parameter page on the Dataset Properties
dialog box.
Remarks
The XML data extension supports reporting from XML data that is tabular and not hierarchical. For more
information, see Add Data from External Data Sources (SSRS).
There is no built-in support for retrieving XML documents from a SQL Server database.
How-To Topics
This section contains step-by-step instructions for working with data connections, data sources, and datasets.
Add and Verify a Data Connection (Report Builder and SSRS)
Create a Shared Dataset or Embedded Dataset (Report Builder and SSRS)
Add a Filter to a Dataset (Report Builder and SSRS)
Related Sections
These sections of the documentation provide in-depth conceptual information about report data, as well as
procedural information about how to define, customize, and use parts of a report that are related to data.
Report Datasets (SSRS)
Provides an overview of accessing data for your report.
Create data connection strings - Report Builder & SSRS
Provides information about data connections and data sources.
Report Embedded Datasets and Shared Datasets (Report Builder and SSRS)
Provides information about embedded and shared datasets.
Dataset Fields Collection (Report Builder and SSRS)
Provides information about the dataset field collection generated by the query.
Data Sources Supported by Reporting Services (SSRS).
Provides in-depth information about platform and version support for each data extension.
See Also
Report Parameters (Report Builder and Report Designer)
Filter, Group, and Sort Data (Report Builder and SSRS)
Expressions (Report Builder and SSRS)
XML Query Syntax for XML Report Data (SSRS)
11/2/2020 • 3 minutes to read • Edit Online
In Reporting Services, you can create datasets for XML data sources. After you define a data source, you create a
query for the dataset. Depending on the type of XML data pointed to by the data source, you create the dataset
query by including an XML Quer y or an element path. An XML Quer y starts with a <Quer y> tag and includes
namespaces and XML elements that vary depending on the data source. An element path is namespace-
independent and specifies which nodes and node attributes to use from the underlying XML data with an XPath-
like syntax. For more information about element paths, see Element Path Syntax for XML Report Data (SSRS).
You can create an XML data source for the following types of XML data:
Xml documents pointed to by a URL using http protocol
Web service endpoints that return XML data
Embedded XML data
How you specify an XML Quer y or an element path depends on the type of XML data.
For an XML document, the XML Quer y is optional. If it is included, it can contain an optional XML ElementPath .
The value of the XML ElementPath uses the element path syntax. You include the XML Quer y and XML
ElementPath to process namespaces correctly when it is needed by the XML data from the data source.
For a Web service endpoint pointed to by a connection string URL, the XML Quer y defines either the Web
service method, the SOAP action, or both. The XML data provider creates a Web service request that retrieves
XML data to use for the report.
NOTE
When a Web service namespace includes a forward slash (/) character, include both the Web service method and the
SOAP action so that the XML data processing extension can derive the namespace correctly.
For an embedded XML document, the XML Quer y defines the embedded XML data to use, includes optional
namespaces, and contains an optional XML ElementPath ..
<Method Name="ListChildren"
Namespace="https://schemas.microsoft.com/sqlserver/2005/06/30/reporting/reportingservices"
/>
</Query>
<SoapAction>https://schemas/microsoft.com/sqlserver/2005/03/23/reporting/reportingservices/ListChil
</Query>
</Query>
XM L DATA SO URC E Q UERY EXA M P L E
<XmlData>
<Customers>
<Customer ID="1">Bobby</Customer>
</Customers>
</XmlData>
<ElementPath>Customer {@}</ElementPath>
</Query>
NOTE
The first Web service example lists the contents of the report server that uses the ListChildren method. To run this query,
you must create a new data source and set the connection string to
https://localhost/reportserver/reportservice2006.asmx . The ListChildren method takes two parameters: Item and
Recursive . Set the default value for Item to / and Recursive to 1 .
Specifying Namespaces
Use the XML Quer y element to specify the namespaces that are used in the XML data from the data source. The
following XML query uses the namespace sales . The XML ElementPath nodes for sales:LineItems and
sales:LineItem use the namespace sales .
<Query xmlns:sales=
"https://schemas.microsoft.com/StandardSchemas/ExtendedSales">
<SoapAction>
https://schemas.microsoft.com/SalesWebService/ListOrders
</SoapAction>
<ElementPath>
Customers/Customer/Orders/Order/sales:LineItems/sales:LineItem
</ElementPath>
</Query>
To specify the data provider namespace so that the default namespace remains empty, use xmldp . This is shown
in the following example.
Example
The following examples use the XML document DPNamespace.xml, which is provided for illustration after the
table. This table shows two examples of XML ElementPath syntax that includes namespace prefixes.
Value B: https://schemas.microsoft.com/...
Value C: https://schemas.microsoft.com/...
<xmldp:Query Value D
xmlns:xmldp="https://schemas.microsoft.com/sqlserver/2005/02/reporting/XmlDPQuery"
xmlns:ns="https://schemas.microsoft.com/...">
Value E
<xmldp:ElementPath>Root
{}/ns:Element2/Node</xmldp:ElementPath>
Value F
</xmldp:Query>
See Also
XML Connection Type (SSRS)
Reporting Services Tutorials (SSRS)
Element Path Syntax for XML Report Data (SSRS)
11/2/2020 • 5 minutes to read • Edit Online
In Report Designer, you specify the data to use for a report from an XML data source by defining a case-sensitive
element path. An element path indicates how to traverse the XML hierarchical nodes and their attributes in the
XML data source. To use the default element path, leave the dataset query or the XML ElementPath of the XML
Quer y empty. When data is retrieved from the XML data source, element nodes that have text values and
element node attributes become columns in the result set. The values of the nodes and attributes become the
row data when you run the query. The columns appear as the dataset field collection in the Report Data pane.
This topic describes the element path syntax.
NOTE
Element path syntax is namespace-independent. To use namespaces in an element path, use the XML query syntax that
includes an XML ElementPath element described in XML Query Syntax for XML Report Data (SSRS).
C O N VEN T IO N USED F O R
| (vertical bar) Separates syntax items. You can choose only one of the
items.
Syntax
Element path ::=
ElementNode[/Element path]
ElementNode ::=
XMLName[(Encoding)][{[FieldList]}]
XMLName ::=
[NamespacePrefix:]XMLLocalName
Encoding ::=
HTMLEncoded | Base64Encoded
FieldList ::=
Field[,FieldList]
Field ::=
Attribute | Value | Element | ElementNode
Attribute ::=
@XMLName[(Type)]
Value ::=
@[(Type)]
Element ::=
XMLName[(Type)]
Type ::=
String | Integer | Boolean | Float | Decimal | Date | XML
NamespacePrefix ::=
Identifier that specifies the namespace.
XMLLocalName :: =
Identifier in the XML tag.
Remarks
The following table summarizes element path terms. Examples in the table refer to the example XML document
Customers.xml, which is included in the Examples section of this topic.
NOTE
XML tags are case-sensitive. When you specify an ElementNode in the element path, you must exactly match the XML
tags in the data source.
T ERM DEF IN IT IO N
Element path Defines the sequence of nodes to traverse within the XML
document in order to retrieve field data for a dataset with an
XML data source.
ElementNode The XML node in the XML document. Nodes are designated
by tags and exist in a hierarchical relationship with other
nodes. For example, <Customers> is the root element node.
<Customer> is a subelement of <Customers>.
XMLName The name of the node. For example, the name of the
Customers node is Customers. An XMLName can be
prefixed with a namespace identifier to uniquely name every
node.
Encoding Indicates that the Value for this element is encoded XML
and needs to be decoded and included as a subelement of
this element.
T ERM DEF IN IT IO N
Value The value of the element. Value can only be used on the last
ElementNode in the element path. For example, because
<Return> is a leaf node, if you include it at the end of an
element path, the value of Return {@} is Chair .
Type The optional data type to use for the field created from this
element.
Example - No Namespaces
The following examples use the XML document Customers.xml. This table shows examples of element path
syntax and the results of using the element path in a query that defines a dataset, based on the XML document
as a data source.
NOTE
When the element path is empty, the query uses the default element path: the first path to a leaf node collection. In the
first example, leaving the element path empty is equivalent to specifying the element path
/Customers/Customer/Orders/Order. All node value and attributes along the path are returned in the result set, and the
node names and attributes names appear as dataset fields.
Example #1 : Empty
O RDER QT Y ID F IRST N A M E L A ST N A M E C USTO M ER. ID XM L N S
F IRST N A M E L A ST N A M E ID
Bobby Moore 11
Crystal Hu 20
Wyatt Diaz 33
L A ST N A M E
Moore
Hu
Diaz
O RDER QT Y
Chair 6
Table 1
Sofa 2
EndTables 2
1 Bobby Moore 11
2 Bobby Moore 11
8 Crystal Hu 20
15 Wyatt Diaz 33
<?xml version="1.0"?>
<Customers xmlns="https://www.adventure-works.com">
<Customer ID="11">
<FirstName>Bobby</FirstName>
<LastName>Moore</LastName>
<Orders>
<Order ID="1" Qty="6">Chair</Order>
<Order ID="2" Qty="1">Table</Order>
</Orders>
<Returns>
<Return ID="1" Qty="2">Chair</Return>
</Returns>
</Customer>
<Customer ID="20">
<FirstName>Crystal</FirstName>
<LastName>Hu</LastName>
<Orders>
<Order ID="8" Qty="2">Sofa</Order>
</Orders>
<Returns/>
</Customer>
<Customer ID="33">
<FirstName>Wyatt</FirstName>
<LastName>Diaz</LastName>
<Orders>
<Order ID="15" Qty="2">EndTables</Order>
</Orders>
<Returns/>
</Customer>
</Customers>
Alternatively, you can create an XML data source that has no connection string and embed Customers.XML in
the query, using the following procedure:
To e mb e d C u s t o me rs .X M L i n a q u e ry
5. Copy Customers.XML and paste the text in the query pane after <XmlData> .
6. In the query pane, delete the first line that you copied from Customers.XML: <?xml version="1.0"?>
<Query>
9. Click OK .
See Also
XML Connection Type (SSRS)
Reporting Services Tutorials (SSRS)
Add, Edit, Refresh Fields in the Report Data Pane (Report Builder and SSRS)
Analysis Services Connection Type for DMX (SSRS)
11/2/2020 • 2 minutes to read • Edit Online
When you create a dataset using a SQL Server Analysis Services data source, Report Designer displays the
Multidimensional Expression (MDX) query designer if it detects a valid cube. If no cube is detected, but a data
mining model is available, Report Designer displays the Data Mining Extensions (DMX) query designer. To switch
between the MDX and DMX designers, click the Command Type DMX ( ) button on the toolbar. Use the DMX
Query Designer to interactively build a DMX query using graphical elements. To use DMX Query Designer, the
data source that you specify must already have a data mining model that provides the data. Query results are
converted to a flattened rowset for use in the report.
NOTE
You must train your model before designing your report. For more information, see Data Mining Solutions.
Design Mode
The DMX query designer opens in Design mode. Design mode includes a graphical design surface used for
selecting a single data mining model and input table, and a grid used for specifying the prediction query. There
are two other modes in DMX query designer: Query mode and Result mode. In Query mode, the grid from
Design mode is replaced with a Query pane, which you can use to type DMX queries. In Result mode, the result
set returned by the query appears in a data grid.
To change modes for the DMX query designer, right-click on the query design surface and select Design ,
Quer y , or Result . For more information, see Analysis Services DMX Query Designer User Interface and Retrieve
Data from a Data Mining Model (DMX) (SSRS).
Using Parameters
You can pass report parameters to a DMX query parameter. To do this, you must add a parameter to your DMX
query, define the query parameters in the Quer y Parameters dialog box, and then modify the associated
report parameters. To define a query parameter, click the Quer y Parameters ( ) button on the toolbar. To
view instructions about defining parameters in a DMX query, see Define Parameters in the MDX Query Designer
for Analysis Services (Report Builder and SSRS).
For more information about how to manage the relationship between report parameters and query parameters,
see Associate a Query Parameter with a Report Parameter (Report Builder and SSRS). For more information
about parameters, see Report Parameters (Report Builder and Report Designer).
See Also
Data Mining Solutions
Query Design Tools (SSRS)
Create data connection strings - Report Builder & SSRS
Retrieve Data from a Data Mining Model (DMX)
(SSRS)
11/2/2020 • 3 minutes to read • Edit Online
To use data from a SQL Server Analysis Services data mining model in your report, you must define a SQL
Server Analysis Services data source and one or more report datasets. When you create the data source
definition, you must specify a connection string and credentials so that you can access the data source from
your client computer.
You can create an embedded data source definition for use by a single report or a shared data source definition
that can be used by multiple reports. The procedures in this topic describe how to create an embedded data
source. For more information about shared data sources, see Embedded and Shared Data Connections or Data
Sources (Report Builder and SSRS) and Create, Modify, and Delete Shared Data Sources (SSRS).
After you create a SQL Server Analysis Services data source, you can create one or more datasets. For each
dataset, you use a Data Mining Prediction Expression (DMX) query designer to create a DMX query that specifies
the field collection. For more information, see Analysis Services DMX Query Designer User Interface.
After you create a dataset, the name of the dataset appears in the Report Data pane as a node under its data
source.
After you publish your report, you may need to change the credentials for the data source so that when the
report runs on the report server, the permissions to retrieve the data are valid.
To create an embedded Microsoft SQL Server Analysis Services data source
1. On the toolbar in the Report Data pane, click New , and then click Data Source .
2. In the Data Source Proper ties dialog box, type a name in the Name text box, or accept the default
name.
3. Verify that Embedded connection is selected.
4. From the Type drop-down list, select Microsoft SQL Ser ver Analysis Ser vices .
5. Specify a connection string that works with your Analysis Services data source.
Contact your database administrator for connection information and for the credentials to use to connect
to the data source. The following connection string example specifies the sample
AdventureWorksDW2012 database on the local client.
6. Click Credentials .
Set the credentials to use to connect to the data source. For more information, see Specify Credential and
Connection Information for Report Data Sources.
NOTE
To test the data source connection, click Edit . In the Connection Proper ties dialog box, click Test Connection .
If the test is successful, you will see the information message "Test connection succeeded." If the test fails, you will
see a warning message with more information about why the test was not successful.
7. Click OK .
The data source appears in the Report Data pane.
To create a dataset for a Microsoft SQL Server Analysis Services
1. In the Repor t Data pane, right-click the name of the data source that connects to a SQL Server Analysis
Services data source, and then click Add Dataset .
2. In the Dataset Proper ties dialog box, type a name in the Name text box.
3. In the Data source box , verify that the name is the name of a data source that connects to an Analysis
Services data source.
4. Click Quer y Designer to open the graphical query designer to build a query interactively. If the query
designer opens in MDX mode, click Command Type DMX ( ) on the toolbar to switch to the data
mining query designer. For more information, see Analysis Services DMX Query Designer User Interface.
Alternatively, to import an existing DMX query from another report, click Impor t , and then navigate to
the .rdl file with the DMX query. Importing a query from an .dmx file is not supported.
5. After you create and run your query to see sample results, click OK .
6. Click OK .
The dataset and its field collection appear in the Report Data pane under the data source node.
See Also
Analysis Services Connection Type for DMX (SSRS)
Create data connection strings - Report Builder & SSRS
Dataset Fields Collection (Report Builder and SSRS)
Report Embedded Datasets and Shared Datasets (Report Builder and SSRS)
Data Processing Extensions and .NET Framework
Data Providers (SSRS)
11/2/2020 • 2 minutes to read • Edit Online
A Reporting Services data processing extension is a component installed with Reporting Services, designed to
retrieve data from a specific type of data source and to provide extra functionality to support report design and
report processing. A .NET Framework data provider is a component available from Microsoft or third-party
sources that supports System.Data interfaces that allow you to retrieve and to modify data from a specific type
of data source.
NOTE
A .NET Framework data provider or custom data processing extension must be installed and registered before it can be
used to access data from a data source. The data processing extension must be installed and registered both on the
reporting client to author the report and on the report server to view the published report. Not all data providers are
designed to work in a server environment. For more information, see Register a Standard .NET Framework Data Provider
(SSRS).and Deploying a Data Processing Extension.
See Also
Data Processing Extensions Overview
Report Embedded Datasets and Shared Datasets (Report Builder and SSRS)
Register a Standard .NET Framework Data Provider
(SSRS)
3/5/2021 • 8 minutes to read • Edit Online
To use a third-party .NET Framework data provider to retrieve data for a Reporting Services report dataset, you
need to deploy and register the .NET Framework data provider assembly in two locations: on the report
authoring client and on the report server. On the report authoring client, you must register the data provider as
a data source type and associate it with a query designer. You can then select this data provider as a type of data
source when you create a report dataset. The associated query designer opens to help you create queries for
this data source type. On the report server, you must register the data provider as a data source type. You can
then process published reports that retrieve data from a data source using this data provider.
Third-party data providers do not necessarily provide all the functionality available with the Reporting Services
data processing extensions. For more information, see Data Sources Supported by Reporting Services (SSRS). To
learn about extending the functionality of a . .NET Framework data provider, see Implementing a Data Processing
Extension.
You need administrator credentials to install and register data providers.
<Extensions>
<Data>
<Extension Your data provider configuration information goes here />
</Data>
</Extensions>
For example, the entry might resemble the following for a DLL deployed to the report server bin
directory:
If you load your assembly into the global assembly cache (GAC), you must provide the strong name
properties. For example:
<CodeGroup class="UnionCodeGroup"
version="1"
PermissionSetName="FullTrust"
Name="ThisDataProviderCodeGroup"
Description="Code group for the .NET data provider">
<IMembershipCondition class="UrlMembershipCondition"
version="1"
Url=
"C:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting
Services\ReportServer\bin\DataProviderAssembly.dll"
/>
</CodeGroup>
URL membership is only one of many membership conditions you might select for the data provider.
Verifying the Deployment and Registration
You can verify whether the data provider was deployed successfully to the report server by opening the web
portal and verifying that the data provider is included in the list of available data sources. For more information
about the web portal and data sources, see Create, Modify, and Delete Shared Data Sources (SSRS).
<Extensions>
<Data>
<Extension Your data provider configuration information goes here />
</Data>
</Extensions>
For example, the entry might resemble the following for a DLL deployed to the Visual Studio
PrivateAssemblies directory:
<Extension Name="MyNETDataProvider" Type="CompanyName.ExtensionName.DataProviderConnectionClass,
DataProviderAssembly" />
If you load your assembly into the GAC, you must provide the strong name properties. For example:
5. Locate the Designer element in the RSReportDesigner.config file. An entry for the .NET Framework data
provider should be made in the following location:
<Extensions>
<Designer>
<Your data provider configuration information goes here>
</Designer>
</Extensions>
6. Add the following entry to the RSReportDesigner.config file under the Designer element. You need to
replace only the Name attribute with the name that you provided in previous entries.
<Extension Name="MyNETDataProvider"
Type="Microsoft.ReportingServices.QueryDesigners.GenericQueryDesigner,Microsoft.ReportingServices.Que
ryDesigners"/>
To set the code group policy for a .NET data provider on the Report Designer client
1. Make a backup copy of the RSPreviewPolicy.config file in the PrivateAssemblies directory.
2. Open RSPreviewPolicy.config with Visual Studio or a simple text editor, such as Notepad.
3. Locate the CodeGroup element in the RSPreviewPolicy.config file.
4. Add a code group for the .NET Framework data provider assembly that grants FullTrust permission. Your
code group might resemble the following:
<CodeGroup class="UnionCodeGroup"
version="1"
PermissionSetName="FullTrust"
Name="ThisDataProviderCodeGroup"
Description="Code group for the .NET data provider">
<IMembershipCondition class="UrlMembershipCondition"
version="1"
Url=
" C:\Program Files\Microsoft Visual Studio 9\Common7\IDE\PrivateAssemblies\DataProviderAssembly.dll"
/>
</CodeGroup>
URL membership is only one of many membership conditions you might select for the data provider.
Verifying the Deployment and Registration on the Report Designer Client
Before you can verify deployment, you must close all instances of Visual Studio on your local computer. After
you have ended all current sessions, you can verify whether your data provider was deployed successfully to
Report Designer by creating a new report project in Visual Studio. The data provider should be included in the
list of available data source types when you create a new data set for your report.
Platform Considerations
On a 64-bit (x64) platform, SQL Server Data Tools (SSDT) runs in 32-bit WOW mode. When you author reports
on an x64 platform, you need 32-bit data providers installed on the report authoring client in order to preview
your reports. If you publish the report on the same system, you need x64 data providers to view the report in
the web portal.
SQL Server Data Tools (SSDT) is not supported for Itanium-based platforms.
The data processing extensions that are installed with Reporting Services must be compiled natively for each
platform and installed in the correct locations. If you register a custom data provider or a standard .NET
Framework data provider, it needs to be compiled natively for the appropriate platform and installed the
appropriate locations. If you are running on a 32-bit platform, the data provider must be compiled for a 32-bit
platform. If you are running on a 64-bit platform, the data provider must be compiled for the 64-bit platform.
You cannot use a 32-bit data provider wrapped with 64-bit interfaces on a 64 bit platform. Check your third-
party software for information about whether the data provider will work on the installed platform. For more
information about data providers and platform support, see Data Sources Supported by Reporting Services
(SSRS).
See Also
Configure and Administer a Report Server (SSRS Native Mode)
Implementing a Data Processing Extension
Reporting Services Configuration Files
Code Access Security in Reporting Services
Report Datasets (SSRS)
11/2/2020 • 8 minutes to read • Edit Online
To add data to a report, you create datasets. Each dataset represents the result set from running a query
command on a data source. The columns in the result set are the field collection. The rows in the result set are
the data. A dataset does not contain the actual data. A dataset contains the information that is needed to retrieve
a specific set of data from a data source.
There are two types of datasets: embedded and shared. An embedded dataset is defined in a report and used
only by that report. A shared dataset is defined on the report server or SharePoint site and can be used by
multiple reports. In Report Builder, you can create shared datasets in Shared Dataset mode or embedded
datasets in Report Designer mode. In Report Designer in SQL Server Data Tools (SSDT), you can create shared
datasets as part of a project or embedded datasets as part of a report.
Embedded datasets. Unlike applications such as Microsoft Office Excel where you work with data
directly in a worksheet, in Report Builder or Report Designer you work with metadata that represents the
data that will be retrieved when the report is processed. To create an embedded dataset, select the source
of data and specify a query. After you create the dataset, use the Report Data pane to view the field
collection. You can display data from a dataset in a data region like a table or chart. In each data region,
you can group, filter, and sort the data to organize it. After you design the report layout, you run the
report to see the actual data.
In the following figure, the Report Data pane displays a data source named AdventureWorks2012 , a
dataset named DataSet1, and five fields in the dataset field collection. The Layout pane shows a table with
the top row of column headings and the bottom row with table cells that contain text. The placeholder
text [Name] is the metadata for the field Name. When the report runs, the placeholder text is replaced by
the actual data values. The table expands as required to display all the data.
Shared datasets. Create a shared dataset when you want to use a dataset in more than one report. To
create and save a shared dataset to a report server or SharePoint site, use Report Builder in shared
dataset design view. To create a shared dataset as part of a project that can be deployed to a server or
site, use Report Designer.
The following illustration shows Shared Dataset Design view in Report Builder. You can select or modify
the data connection, the dataset properties, the query, filters, and optionally mark filters as parameters,
and view the query results. You then save the changes back to the server or site.
For more information, see Embedded and Shared Datasets (Report Builder and SSRS) and Embedded and
Shared Data Connections or Data Sources (Report Builder and SSRS).
You can also add datasets to a report by adding report parts that include the datasets they depend on. Report
parts are self-contained report items that are stored on the report server and can be included in other reports.
Use Report Builder to browse and select parts from the Report Part Gallery to add to your reports. Use Report
Designer or Report Builder to save report parts for use in the Report Part Gallery. For more information, see
Repor t Par ts (Repor t Builder and SSRS) and Repor t Par ts in Repor t Designer (SSRS) on the Web at
microsoft.com.
To learn how to create a report that displays data from a SQL Server database, see Tutorial: Creating a Basic
Table Report (Report Builder). To build a report that includes its own data, see Tutorial: Create a Quick Chart
Report Offline (Report Builder).
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
NOTE
On a report server, shared items are secured individually or by inheriting permissions from the folder where they are
published. To enable other users to have access to shared datasets that you save, you must understand how permissions
are granted. For more information, see Security (Report Builder) or Secure Shared Dataset Items.
After you add data to a report, you can organize the data on the report page with data regions, modify report
parts and share those changes with others, and enable users to limit or sort the data they see in the report. For
more information, see the following related topics:
Tables, Matrices, and Lists (Report Builder and SSRS)
Charts (Report Builder and SSRS)
Sparklines and Data Bars (Report Builder and SSRS)
Indicators (Report Builder and SSRS)
Report Parameters (Report Builder and Report Designer)
Report Parts (Report Builder and SSRS)
Filter, Group, and Sort Data (Report Builder and SSRS)
NOTE
Report parts are self-contained report items that are stored on the report server and can be included in other reports.
Use Report Builder to browse and select parts from the Report Part Gallery to add to your reports. Use Report Designer
or Report Builder to save report parts for use in the Report Part Gallery. For more information, see Repor t Par ts
(Repor t Builder and SSRS) and Repor t Par ts in Repor t Designer (SSRS) on the Web at microsoft.com.
Report parts, shared data sources, and shared datasets are defined in advance and saved on a report server. To
access them, you must open Report Builder in server mode by connecting to the report server. You can use
these to create new versions of your own if you have write permissions to the report server.
For more information, see Report Parts (Report Builder and SSRS) and Report Parts in Report Designer
(SSRS).
How-To Topics
Add and Verify a Data Connection (Report Builder and SSRS)
Create a Shared Dataset or Embedded Dataset (Report Builder and SSRS)
Add, Edit, Refresh Fields in the Report Data Pane (Report Builder and SSRS)
Build a Query in the Relational Query Designer (Report Builder and SSRS)
Show Hidden Datasets for Parameter Values for Multidimensional Data (Report Builder and SSRS)
Add a Filter to a Dataset (Report Builder and SSRS)
Set a No Data Message for a Data Region (Report Builder and SSRS)
Associate a Query Parameter with a Report Parameter (Report Builder and SSRS)
Define Parameters in the MDX Query Designer for Analysis Services (Report Builder and SSRS)
In This Section
Report Parts and Datasets in Report Builder
Create data connection strings - Report Builder & SSRS
Specify Credential and Connection Information for Report Data Sources
Report Embedded Datasets and Shared Datasets (Report Builder and SSRS)
Dataset Fields Collection (Report Builder and SSRS)
See Also
Report Design View (Report Builder)
Reporting Services Concepts (SSRS)
Query Design Tools (SSRS)
11/2/2020 • 6 minutes to read • Edit Online
Reporting Services provides a variety of query design tools that you can use to create dataset queries in Report
Designer. Some query designers provide alternate modes so that you can choose whether to work in visual
mode or directly in the query language. This topic introduces each tool and describes the type of data source
each one supports. The following tools are described in this topic:
Text-based Query Designer
Graphical Query Designer
Report Model Query Designer
MDX Query Designer
DMX Query Designer
SapNetWeaver BI Query Designer
Hyperion Essbase Query Designer
All of the query design tools run in the data design environment of SQL Server Data Tools (SSDT) when you
work with a Report Server project template or Report Server Wizard project template. For more information
about working with the query designers, see Reporting Services Query Designers.
The type of data source that you are working with determines the availability of a particular query designer.
The data source types that are available in your report are determined by the Reporting Services data
extensions installed on your client or report server. For more information, see RSReportDesigner Configuration
File and RsReportServer.config Configuration File.
A data processing extension and its associated query designer can differ in support for data sources in the
following ways:
By quer y designer type. For example, a SQL Server data source supports both the graphical and text-
based query designers.
By quer y language variation. For example, a query language such as Transact-SQL can differ in syntax
depending on the data source type. The Microsoft Transact-SQL language and the Oracle SQL language
have some variation in syntax for a query command.
By suppor t for the schema par t of a database object name. When a data source uses schemas as
part of the database object identifier, the schema name must be supplied as part of the query for any
names that do not use the default schema. For example,
SELECT FirstName, LastName FROM [Person].[Person] .
By suppor t for quer y parameters. Data providers differ in support for parameters. Some data
providers support named parameters; for example,
SELECT Col1, Col2 FROM Table WHERE <parameter identifier><parameter name> = <value> . Some data
providers support unnamed parameters; for example,
SELECT Col1, Col2 FROM Table WHERE <column name> = ? . The parameter identifier might differ by data
provider; for example, SQL Server uses the "at" (@) symbol, Oracle uses the colon (:). Some data
providers do not support parameters.
By ability to impor t queries. For example, for a SQL Server data source, you can import a query from
a report definition file (.rdl) or from a .sql file.
The text-based query designer is recommended for creating complex queries, using stored procedures, querying
XML data, and for writing dynamic queries. Depending on the data source, you may be able to toggle the Edit
As Text button on the toolbar to switch between the graphical query designer and the text-based query
designer. For more information, see Text-based Query Designer User Interface.
You can toggle the Edit As Text button on the toolbar to switch between the graphical query designer and the
text-based query designer. For more information, see Graphical Query Designer User Interface.
To use the Report Model query designer, you must define a data source that points to a published model. When
you define a dataset for the data source, you can open the dataset query in the Report Model query designer.
The Report Model query designer can be used in graphical or text-based modes. You can toggle the Edit As
Text button on the toolbar to switch between the graphical query designer and the text-based query designer.
For more information, see Report Model Query Designer User Interface.
To use the DMX query designer, you must define a data source that has a valid, data mining model available.
When you define a dataset for the data source, you can open the query in the DMX query designer. If necessary,
use the MDX and DMX buttons on the toolbar to switch between MDX and DMX modes. After you select the
model, you can create data mining prediction queries that provide data to a report. For more information, see
Analysis Services DMX Query Designer User Interface.
To use this query designer, you must have a Hyperion Essbase data source that has at least one database.
For more information, see Hyperion Essbase Query Designer User Interface.
See Also
Reporting Services Tools
Report Datasets (SSRS)
Create data connection strings - Report Builder & SSRS
Reporting Services Tutorials (SSRS)
Data Sources Supported by Reporting Services (SSRS)
Create an Embedded or Shared Data Source (SSRS)
Build a Query in the Relational Query Designer
(Report Builder and SSRS)
11/2/2020 • 3 minutes to read • Edit Online
A query designer helps you specify which data to retrieve from an external data source for a report dataset. You
use a query designer when you build a query in a wizard or create a dataset query.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
A dataset is based on a data source. The type of data source and the authoring environment determines which
query designer opens when you define the dataset query. Query designer features vary based on the
underlying data source. For more information about data layers, see Create data connection strings - Report
Builder & SSRS.
You can use a query designer for the following tasks:
Explore the metadata for multiple schemas on the external data source
Specify fields to retrieve for the dataset
Specify relationships between two objects such as tables
Specify filters to restrict the data before it is retrieved as report data
Indicate whether to create parameters
Specify aggregates to perform calculations on the external data source
After you open a query designer, you build a query in the same way for either an embedded dataset or a shared
dataset. The following procedures use an embedded dataset query.
For more information, see Relational Query Designer User Interface (Report Builder).
To build a query for an embedded dataset in Report Design View
1. Open the query designer. In the Report Data pane, right-click the dataset, and then click Quer y .
The query designer that is associated with the data source opens.
2. In the Database view pane, expand the folders that display a hierarchical view of database schema objects
such as tables, views, and stored procedures. Click the select box to select all fields for an object or
expand the node to select individual fields.
As you select fields from the Database view pane, the Select fields pane displays your selections.
If you select fields from more than one related database table, use the Relationships pane to view the
table relationships that were detected from the database schema.
3. Click OK .
4. Click OK .
The list of dataset fields appears in the Report Data pane.
To specify limits for a query
1. In the relational query designer, verify that you have fields selected and that the fields appear in the
Selected fields pane.
2. In the Applied filters pane toolbar, click Add Filter . A new filter row appears.
3. In Field name , click to display the drop-down list of fields, and then click the name of the field that you
want to filter by. For example, to filter by quantity, click the field that contains the number of items.
4. In Operator , click to display the drop-down list of operators, and then select the comparison operator to
use in the filter.
5. In Value , type the value that you want to filter by. For example, to filter on quantity greater than 100, type
100.
6. Select the parameter option in this row to create a dataset parameter to enable a user to specify a filter
value. A report parameter that matches the dataset parameter is automatically created.
7. Click OK .
8. Click OK .
The list of dataset fields appears in the Report Data pane.
To view a query result set
1. On the query designer toolbar, click Run Quer y (!) .
NOTE
The query designer uses design time credentials to run the query and retrieve the result set. For more
information, see Specify Credential and Connection Information for Report Data Sources.
The query runs on the data source and returns example data in the Query results pane.
See Also
Report Datasets (SSRS)
Add Data from External Data Sources (SSRS)
Query Design Tools (SSRS)
Create a Shared Dataset or Embedded Dataset (Report Builder and SSRS)
Report Design View (Report Builder)
Shared Dataset Design View (Report Builder)
Reporting Services Query Designers
Associate a Query Parameter with a Report
Parameter (Report Builder and SSRS)
11/2/2020 • 2 minutes to read • Edit Online
When you define a dataset query that contains a query variable, the query command is parsed. For each query
variable, a corresponding dataset parameter and report parameter are created. The dataset parameter points to
the report parameter. This enables a user to enter a value that passes directly to the query. Each time you edit
the query command, the same process takes place.
If you rename a report parameter that is bound to a query parameter, you need to manually link the query
parameters to the renamed report parameter by using the procedure in this topic.
NOTE: You can create and modify paginated report definition (.rdl) files in Report Builder and in Report
Designer in SQL Server Data Tools. Each authoring environment provides different ways to create, open, and
save reports and related items.
NOTE: If the Report Data pane is not visible, click Repor t Data on the View menu.
2. In the column Parameter Name , find the name of the query parameter. Parameter names are
automatically populated based on the query. Every time you change the query, the query is checked for
new query parameters. Query parameters that you create manually are not changed when the query
changes.
In Parameter Name , find the query parameter name as it exists in the query. You can also
manually add a new query parameter and enter a name.
In Parameter Value , type or select an expression that evaluates to the value to pass to the query
parameter. This is typically the name of the report parameter.
NOTE: You are not limited to report parameters as values for a query parameter. You can use
any expression that evaluates to a value for the parameter value.
See Also
Report Embedded Datasets and Shared Datasets (Report Builder and SSRS)
Define Parameters in the MDX Query Designer for
Analysis Services
11/2/2020 • 2 minutes to read • Edit Online
To parameterize an MDX query for an Analysis Services data source, you must add a query parameter to the
query. In the MDX query designer, you can add a query parameter in both Design mode and Query mode by
specifying a filter. After you define the query with a query parameter, Reporting Services automatically creates a
report parameter and a dataset to provide the list of valid values. This enables a user to specify a value that is
passed directly to the query.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
See Also
Analysis Services Connection Type for MDX (SSRS)
Analysis Services MDX Query Designer User Interface
Analysis Services DMX Query Designer User
Interface
11/2/2020 • 3 minutes to read • Edit Online
Reporting Services provides graphical query designers for building Data Mining Expressions (DMX) queries and
Multidimensional Expression (MDX) queries for an Analysis Services data source. This topic describes the DMX
query designer. For more information about the MDX query designer, see Analysis Services MDX Query
Designer User Interface.
The DMX graphical query designer has three modes: Design, Query, and Result. To switch modes, right-click on
the Query Design pane, and select the mode. Each mode provides a Metadata pane from which you can drag
members from the selected cubes to build a DMX query that retrieves data for a dataset when the report is
processed.
B UT TO N DESC RIP T IO N
Delete the selected column in the Data pane from the query.
PA N E F UN C T IO N
Query Design pane Use the Mining Model and Select Input Table dialog
boxes to build the DMX query.
Grid pane For each row in the grid, use the Source drop-down list to
select a function or expression, and choose fields, groups,
and criteria or arguments to use in your DMX query. To see
the DMX query text generated by your selections, click the
Design Mode button on the toolbar.
To run the DMX query and show results in the Result pane, right-click on the Query Design pane and select
Result .
Query Design pane Use the Mining Model and Select Input Table dialog
boxes to build the DMX query.
Query pane View or edit DMX query text directly in the pane. Changes
to the DMX query text do not persist if you change back to
Design mode.
To run the DMX query and show results in the Result pane, right-click on the Query Design pane and select
Result .
To switch back to Design mode or Query mode, right-click on the Result pane and select Design or Quer y .
See Also
Define Parameters in the MDX Query Designer for Analysis Services (Report Builder and SSRS)
Create a Shared Dataset or Embedded Dataset (Report Builder and SSRS)
Analysis Services Connection Type for DMX (SSRS)
Retrieve Data from a Data Mining Model (DMX) (SSRS)
RSReportDesigner Configuration File
Analysis Services Connection Type for MDX (SSRS)
Analysis Services Connection Type for DMX (SSRS)
Analysis Services MDX Query Designer User
Interface
11/2/2020 • 4 minutes to read • Edit Online
Reporting Services provides graphical query designers for building Multidimensional Expression (MDX) queries
and Data Mining Expression (DMX) queries for an Analysis Services data source. This topic describes the MDX
query designer. For more information about the DMX query designer, see Analysis Services Connection Type for
DMX (SSRS).
The MDX graphical query designer has two modes: design mode and query mode. Each mode provides a
metadata pane from which you can drag members from the selected cubes to build an MDX query that retrieves
data when the report is processed.
IMPORTANT
Users access data sources when they create and run queries. You should grant minimal permissions on the data sources,
such as read-only permissions.
NOTE
Importing an .mdx query from a file is not supported.
Calculated Members pane Displays the currently defined calculated members available
for use in the query.
Data pane Displays the column headings for the result set as you drag
items from the Metadata pane and the Calculated Members
pane. Automatically updates the result set if the
AutoExecute button is selected. .
You can drag dimensions, measures, and KPIs from the Metadata pane, and calculated members from the
Calculated Member pane, onto the Data pane. In the Filter pane, you can select dimensions and related
hierarchies, and set filter expressions to limit the data available to query. If the AutoExecute ( ) toggle button
on the toolbar is selected, the query designer runs the query every time that you drop a metadata object onto
the Data pane. You can manually run the query using the Run ( ) button on the toolbar.
When you create an MDX query in this mode, the following additional properties are automatically included in
the query:
Member Proper ties MEMBER_CAPTION, MEMBER_UNIQUE_NAME
Cell Proper ties VALUE, BACK_COLOR, FORE_COLOR, FORMATTED_VALUE, FORMAT_STRING, FONT_NAME,
FONT_SIZE, FONT_FLAGS
To specify your own additional properties, you must manually edit the MDX query in Query mode.
Graphical MDX Query Designer Toolbar in Design Mode
The query designer toolbar provides buttons to help you design MDX queries using the graphical interface. The
following table lists the buttons and their functions.
B UT TO N DESC RIP T IO N
Automatically run the query and show the result every time
a change is made. Results are shown in the Data pane.
Delete the selected column in the Data pane from the query.
Run the query and display the results in the Data pane.
PA N E F UN C T IO N
The Metadata pane displays tabs for Metadata , Functions , and Templates . From the Metadata tab, you can
drag dimensions, hierarchies, KPIs, and measures onto the MDX Query pane. From the Functions tab, you can
drag functions onto the MDX Query pane. From the Templates tab, you can add MDX templates to the MDX
Query pane. When you execute the query, the Result pane displays the results for the MDX query.
You can extend the default MDX query generated in Design mode to include additional member properties and
cell properties. When you run the query, these values do not appear in the result set. However, they are passed
back to Reporting Services and you can use these values in a report. For more information, see Extended Field
Properties for an Analysis Services Database (SSRS).
Graphical Query Designer Toolbar in Query Mode
The query designer toolbar provides buttons to help you design MDX queries using the graphical interface.
The toolbar buttons are identical between Design mode and Query mode, but the following buttons are not
enabled for Query mode:
Edit As Text
Add Calculated Member ( )
Show Empty Cells ( )
AutoExecute ( )
Show Aggregations ( )
See Also
Define Parameters in the MDX Query Designer for Analysis Services (Report Builder and SSRS)
Create a Shared Dataset or Embedded Dataset (Report Builder and SSRS)
Analysis Services Connection Type for DMX (SSRS)
RSReportDesigner Configuration File
Analysis Services Connection Type for MDX (SSRS)
Graphical Query Designer User Interface
11/2/2020 • 6 minutes to read • Edit Online
Reporting Services provides both a graphical query designer and a text-based query designer for creating
queries to retrieve data from a relational database for a report dataset in Report Designer. Use the graphical
query designer to interactively build a query and view the results for data source types SQL Server, Oracle, OLE
DB, and ODBC. Use the text-based query designer to specify multiple Transact-SQL statements, complex query
or command syntax, and expression-based queries. For more information, see Text-based Query Designer User
Interface. For more information about working with specific data source types, see Report Datasets (SSRS).
.
NOTE
Not all data processing extensions support all types. The underlying data provider must support a command type before
the option is available.
PA N E F UN C T IO N
Grid Displays a list of fields returned by the query. Use this pane
to define aliases, sort order, filters, groups, and parameters.
Result Displays the results of the query. To run the query, right-click
in any pane, and then click Run , or click the Run button on
the toolbar.
When you change information in any one of the first three panes, those changes will appear in the other panes.
For example, if you add a table in the Diagram pane, it will automatically be added to the Transact-SQL query in
the SQL pane. Adding a field to the query in the SQL pane will automatically add the field to the list in the Grid
pane and update the table in the Diagram pane.
For more information, see Query and View Designer Tools (Visual Database Tools).
Toolbar for the Graphical Query Designer
The graphical query designer toolbar provides buttons to help you design Transact-SQL queries using the
graphical interface.
B UT TO N DESC RIP T IO N
Edit As Text Toggle between the text-based query designer and the
graphical query designer.
B UT TO N DESC RIP T IO N
Impor t Import an existing query from a file or report. Only file types
.sql and .rdl are supported. For more information, see Report
Embedded Datasets and Shared Datasets (Report Builder
and SSRS).
Add a new table from the data source to the Diagram pane.
Note When you add a new table, the query designer tries to
match up foreign key relationships from the data source.
After you add a table, confirm that the foreign key
relationships represented by linkages between the tables are
correct.
Example
The following query returns the list of last names from the AdventureWorks2012 database Person table:
SELECT LastName FROM Person.Person;
You can also run stored procedures from the SQL pane. The following query runs the stored procedure
uspGetEmployeeManagers in the AdventureWorks2012 database:
NOTE
the TableDirect feature is supported only by OLE DB and ODBC data source types.
PA N E F UN C T IO N
Table drop-down list Lists all the available tables from the data source. Select one
from the list to make it active.
Result Displays all columns from the selected table. To run the table
query, click the Run button on the toolbar.
B UT TO N DESC RIP T IO N
Edit As Text Toggle between the text-based query designer and the
graphical query designer.
Impor t Import an existing query from a file or report. Only file types
.sql and .rdl are supported. For more information, see Report
Embedded Datasets and Shared Datasets (Report Builder
and SSRS).
Stored procedure drop-down list Lists all the available stored procedures from the data
source. Select one from the list to make it active.
B UT TO N DESC RIP T IO N
Edit As Text Toggle between the text-based query designer and the
graphical query designer.
Impor t Import an existing query from a file or report. Only file types
.sql and .rdl are supported. For more information, see Report
Embedded Datasets and Shared Datasets (Report Builder
and SSRS).
Stored procedure drop-down list Click the down arrow to display a list of available stored
procedures from the data source. Click any stored procedure
from the list to select it.
Example
The following stored procedure calls a chain-of-command list of managers from the AdventureWorks2012
database. This stored procedure accepts BusinessEntityID as parameter. You can enter any small integer.
uspGetEmployeeManagers '1';
See Also
Query Design Tools (SSRS)
Report Datasets (SSRS)
SQL Server Connection Type (SSRS)
OLE DB Connection Type (SSRS)
Report Datasets (SSRS)
Oracle Connection Type (SSRS)
RSReportDesigner Configuration File
Design Queries and Views How-to Topics (Visual Database Tools)
Relational Query Designer User Interface (Report
Builder)
4/30/2021 • 12 minutes to read • Edit Online
Report Builder, and Report Designer in SQL Server Data Tools (SSDT), provide both a graphical query designer
and a text-based query designer to help you create a query that specifies the data to retrieve from Microsoft
SQL Server and Microsoft SQL Database relational databases and Microsoft SQL Server 2016 Parallel Data
Warehouse for a report dataset. Use the graphical query designer to explore the metadata, interactively build a
query, and view the results for your query. Use the text-based query designer to view the query that was built by
the graphical query designer or to modify a query. You can also import an existing query from a file or report.
NOTE
In Report Builder, to specify a query for data source types Oracle, OLE DB, ODBC, and Teradata, you must use the text-
based query designer. For more information, see Text-based Query Designer User Interface (Report Builder).
IMPORTANT
Users access data sources when they create and run queries. You should grant minimal permissions on the data sources,
such as read-only permissions.
NOTE
SQL Server 2016 Parallel Data Warehouse does not support stored procedures or table-valued functions.
The following figure shows the graphical query designer when it is used with tables or views.
The following figure shows the graphical query designer when it is used with stored procedures or table-valued
functions.
Sum Returns the sum of all the values in the group. Implements
the SQL SUM aggregate.
VarP Returns the statistical variance for the population for all
values in the group. Implements the SQL VARP aggregate.
IMPORTANT
When using with SQL Server 2016 Parallel Data Warehouse the metadata needed to create joins is not provided
and relationships cannot be detected automatically. If your query retrieves data from SQL Server 2016 Parallel
Data Warehouse, all table joins must be created manually.
Impor t Import an existing query from a file or report. File types .sql
and .rdl are supported.
Run Quer y Run the query. The Query results pane displays the result
set.
See Also
Query Design Tools (SSRS)
Hyperion Essbase Query Designer User Interface
11/2/2020 • 3 minutes to read • Edit Online
Reporting Services provides a graphical query designer for building Multidimensional Expression (MDX) queries
for a Hyperion Essbase data source. The MDX graphical query designer has two modes: Design mode and Query
mode. Each mode provides a Metadata pane from which you can drag members from a cube defined on the
data source to build an MDX query that retrieves data when the report is processed.
IMPORTANT
Users access data sources when they create and run queries. You should grant minimal permissions on the data sources,
such as read-only permissions.
For more information about working with a Hyperion Essbase multidimensional data source, see Hyperion
Essbase Connection Type (SSRS).
This section describes the toolbar buttons and query designer panes for each mode of the graphical query
designer.
Calculated Members pane Displays the currently defined calculated members available
for use in the query.
You can drag dimensions and measures from the Metadata pane, and calculated members from the Calculated
Member pane onto the Data pane. If the AutoExecute toggle button on the toolbar is on, the query designer
runs the query every time you drop an object onto the Data pane. If AutoExecute is off, the query designer
does not run the query as you make changes to the Data pane. You can manually run the query using the Run
button on the toolbar.
In the Filter pane, you can select dimension values to limit the data retrieved from the data source. Values you
define in the filter in Design mode appear in the MDX Where clause in Query mode.
Toolbar for the Graphical Query Designer in Design Mode Toolbar
The query designer toolbar provides buttons to help you design MDX queries using the graphical interface. The
following table shows the buttons and describes their functions.
B UT TO N DESC RIP T IO N
Edit As Text Toggle between the text-based query designer and the
graphical query designer. Not available for this data source
type.
Automatically run the query and show the result every time
a change is made, for example, deleting a column in the Data
pane. Results are shown in the Data pane.
Delete the selected item from the query. Use this button to
delete selected rows in the Filter pane.
Run the query and display the results in the Data pane.
B UT TO N DESC RIP T IO N
PA N E F UN C T IO N
From the Metadata pane, you can drag measures and dimensions from the Metadata tab onto the MDX Query
pane. You can drag functions from the Functions tab onto the MDX Query pane. When you execute the query,
the Result pane displays the results for the current MDX query.
Toolbar for the Graphical Query Designer in Query Mode
The query designer toolbar provides buttons to help you design MDX queries using the graphical interface. The
toolbar buttons are identical between Design mode and Query mode, but the following buttons are not enabled
for Query mode:
Edit As Text
Add Calculated Member ( )
Show Empty Cells ( )
AutoExecute ( )
See Also
Create a Shared Dataset or Embedded Dataset (Report Builder and SSRS)
RSReportDesigner Configuration File
SAP NetWeaver BI Query Designer User Interface
11/2/2020 • 4 minutes to read • Edit Online
Reporting Services provides a graphical query designer for building Multidimensional Expression (MDX) queries
for a SAP NetWeaver® Business Intelligence data source. The MDX graphical query designer has two modes:
Design mode and Query mode. Each mode provides a Metadata pane from which you can drag members from
an InfoCube, MultiProvider, or Web-enabled query defined on the data source to build an MDX query that
retrieves data when the report is processed.
IMPORTANT
Users access data sources when they create and run queries. You should grant minimal permissions on the data sources,
such as read-only permissions.
For more information about working with a SAP multidimensional data source, see SAP NetWeaver BI
Connection Type (SSRS).
This section describes the toolbar buttons and query designer panes for each mode of the graphical query
designer.
Calculated Members pane Displays the currently defined calculated members available
for use in the query.
You can drag dimensions and key figures from the Metadata pane, and calculated members from the Calculated
Member pane onto the Data pane. If the AutoExecute toggle button on the toolbar is on, the query designer
runs the query every time you drop an object onto the Data pane. If AutoExecute is off, the query designer
does not run the query as you make changes to the Data pane. You can manually run the query using the Run
button on the toolbar.
Toolbar for the Graphical Query Designer in Design Mode Toolbar
The query designer toolbar provides buttons to help you design MDX queries using the graphical interface. The
following table describes the buttons and their functions.
B UT TO N DESC RIP T IO N
Edit As Text Toggle between the text-based query designer and the
graphical query designer. Not available for this data source
type.
Automatically run the query and show the result every time
a change is made, for example, deleting a column in the Data
pane. Results are shown in the Data pane.
Delete the selected column in the Data pane from the query.
Run the query and display the results in the Data pane.
B UT TO N DESC RIP T IO N
PA N E F UN C T IO N
Variables pane Displays the currently defined variables available for use in
the query.
See Also
Create a Shared Dataset or Embedded Dataset (Report Builder and SSRS)
RSReportDesigner Configuration File
SharePoint List Query Designer (Report Builder)
11/2/2020 • 4 minutes to read • Edit Online
Report Builder and Report Designer provide both a graphical query designer and a text-based query designer to
help you create a query that specifies the data to retrieve from a SharePoint site for a report dataset. Use the
graphical query designer to explore the SharePoint list metadata, interactively build a query, and view the results
of your query. Use the text-based query designer to view the query that was built by the graphical query
designer, modify a query, or type the query commands. You can also import an existing query from a file or
report.
IMPORTANT
Users access data sources when they create and run queries. You should grant minimal permissions on the data sources,
such as read-only permissions.
B UT TO N DESC RIP T IO N
Impor t Import an existing query from a file or report. File types .sql
and .rdl are supported.
Run Quer y Run the query. The Query results pane displays the result
set.
Show Hidden Fields Toggle to show or hide the fields that were automatically
generated by SharePoint such as the ProgId and Level for
SharePoint link items, but are typically not used in reports..
Hiding these fields makes the field list shorter and easier to
use.
See Also
Query Design Tools (SSRS)
Text-based Query Designer User Interface (Report
Builder)
3/31/2021 • 4 minutes to read • Edit Online
Use the text-based query designer to specify a query using the query language supported by the data source,
run the query, and view the results at design time. You can specify multiple Transact-SQL statements, query or
command syntax for custom data processing extensions, and queries that are specified as expressions. Because
the text-based query designer does not preprocess the query and can accommodate any kind of query syntax,
this is the default query designer tool for many data source types.
IMPORTANT
Users access data sources when they create and run queries. You should grant minimal permissions on the data sources,
such as read-only permissions.
The text-based query designer displays a toolbar and the following two panes:
Quer y Shows the query text, table name, or stored procedure name depending on the query type. Not
all query types are available for all data source types. For example, table name is supported only for the
data source type OLE DB.
Result Shows the results of running the query at design time.
B UT TO N DESC RIP T IO N
Edit As Text Toggle between the text-based query designer and the
graphical query designer. Not all data source types support
graphical query designers.
Impor t Import an existing query from a file or report. Only file types
sql and rdl are supported
Run the query and display the result set in the Result pane.
PA N E F UN C T IO N
Query Displays the Transact-SQL query text. Use this pane to write
or edit a Transact-SQL query.
Result Displays the results of the query. To run the query, right-click
in any pane and click Run , or click the Run button on the
toolbar.
Example
The following query returns the list of names from the AdventureWorks2014 database ContactType table for
the Person schema.
When you click Run on the toolbar, the command in the Quer y pane runs and the results are displayed in the
Result pane. The resultset displays a list of 20 types of contacts, for example, Owner or Sales Agent.
Command Type StoredProcedure
When you select Command typeStoredProcedure , the text-based query designer presents two panes: the
Query pane and the Result pane. Enter the stored procedure name in the Query pane and click Run on the
toolbar. If the stored procedures uses parameters, the Define Quer y Parameters dialog box opens. Enter the
parameter values for the stored procedure. A report parameter is created for every stored procedure input
parameter.
The following figure shows the Query and Results panes when you run a stored procedure. In this case, the
input parameters are constants.
Query Displays the name of the stored procedure and any input
parameters.
Result Displays the results of the query. To run the query, right-click
in any pane and click Run , or click the Run button on the
toolbar.
Example
The following query calls the AdventureWorks2014 stored procedure uspGetWhereUsedProductID . You
must enter a value for the product identification number parameter when you run the query.
uspGetWhereUsedProductID
Click the Run (! ) button. When prompted for the query parameters, use the following table to enter values.
PA RA M ET ER VA L UE
@StartProductID 820
@CheckDate 20010115
For the specified date, the result set displays a list of 13 product identifiers that used the specified component
number.
Command Type TableDirect
When you select Command typeTableDirect , the text-based query designer presents two panes: the Query
pane and the Result pane. When you enter a table and click the Run button, all the columns for that table are
returned.
Example
For a data source type OLE DB, the following dataset query returns a result set for all contact types in the
AdventureWorks2014 database.
Person.ContactType
When you enter the table name Person.ContactType, it is the equivalent of creating the Transact-SQL statement
SELECT * FROM Person.ContactType .
See Also
Relational Query Designer User Interface (Report Builder)
Query Design Tools (SSRS)
Embedded and Shared Datasets (Report Builder
and SSRS)
11/2/2020 • 3 minutes to read • Edit Online
In a report, a dataset represents report data that is returned from running a query on an external data source.
The dataset depends on the data connection that contains information about the external data source. The data
itself is not included in the report definition. The dataset contains a query command, a field collection,
parameters, filters, and data options that include case sensitivity and collation. There are two types of datasets:
Shared datasets. A shared dataset is published on a report server and can be used by multiple reports.
A shared dataset must be based on a shared data source. A shared dataset can be cached and scheduled
by creating a cache refresh plan.
Embedded datasets. Embedded datasets are defined in and used by a single report.
The difference between the two is in how they are created, stored, and managed.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
Shared Datasets
Use a shared dataset to provide a query that can be used by more than one report. Shared datasets are stored
on the report server and managed separately from reports or shared data sources. For example, a report server
administrator might update the query to take advantage of improved indexing or other query performance
optimization.
We recommend that you use shared datasets as much as possible. You can optimize a query or cache query
results to benefit report performance. Shared datasets make data access easier to manage, and help to keep
reports and the datasets they access more secure and more performant.
In Report Designer, you can create shared datasets as part of a report project, and control whether to deploy
them to a report server. You cannot browse to a report server and select a shared dataset to add to your report.
In Report Builder, you can do the following:
1. To create a shared dataset, use Shared Dataset Design View. You can save it to a report server or
SharePoint site to share with other reports. You can also browse to the report server and edit and existing
shared dataset. In this view, you can build a query and set all dataset options. For more information, see
Shared Dataset Design View (Report Builder).
2. To add a shared dataset to your report, open Report Builder in Report Design View. From a wizard or
from the Report Data pane, browse to the report server and select the shared dataset to add to your
report. In this view, you cannot change the query except to add fields. You can override other data options
and add filters. You cannot remove filters.
3. The following table compares the properties that can be configured for the definition of the shared
dataset on the report server and the instance of the shared dataset in the report definition.
C O N F IGURAT IO N N OT ES F O R T H E C O N F IGURAT IO N N OT ES F O R T H E
P RO P ERT Y DEF IN IT IO N IN STA N C E
Query text Configure the query, including Cannot change the query.
defining it as expression.
Query parameters Cannot reference report parameters Configure parameters that are not
marked Read Only in the definition
Includes default values
Data Source Must be a shared data source Cannot change the data source
Fields Fields from the query command View fields, but cannot change them
Calculated fields are not part of the The field collection is static based on
dataset definition the query at the time you added
the shared dataset to the report. To
update, click Refresh Fields in the
Dataset Proper ties dialog box.
The actual field collection is
whatever the current query in the
definition returns.
Dataset Data options such as case sensitivity Override data options in the
instance
Embedded Datasets
Use an embedded dataset when you want to get data from an external data source to be used only in one
report. Embedded datasets are useful when you want to create a query that has no other dependencies and that
you do not need to use for multiple reports.
To create or edit an embedded dataset, use the Report Data pane. After you create a dataset, you can configure
the properties in the Dataset Proper ties dialog box.
See Also
Compare embedded and shared data sources - Report Builder & SSRS Create a Shared Dataset or Embedded
Dataset (Report Builder and SSRS)
Report Datasets (SSRS)
Dataset Fields Collection (Report Builder and SSRS)
Create data connection strings - Report Builder & SSRS
Create a Shared Dataset or Embedded Dataset
(Report Builder and SSRS)
5/10/2021 • 4 minutes to read • Edit Online
APPLIES TO: ✔
️ Microsoft Report Builder (SSRS) ❌ Power BI Report Builder
Embedded datasets are for use in a single paginated report. Shared datasets on a report server can be used by
multiple Reporting Services reports, both mobile and paginated. To create a dataset, you need an embedded or
shared data source.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
3. In Data source , browse to and select the name of an existing shared data source, or click New to create
a new embedded data source.
4. Select a Quer y type option. Options depend on the data source type.
Select Text to write a query using the query language of the data source.
Select Table to return all the fields in a relational database table.
Select StoredProcedure to run a stored procedure by name.
5. In Quer y , type the query, stored procedure, or table name. Alternatively, click Quer y Designer to open
the graphical or text-based query designer tool, or Impor t to import the query from an existing report.
In a few cases, the field collection specified by the query can only be determined by running the query on
the data source. For example, a stored procedure may return a variable set of fields in the result set. Click
Refresh Fields to run the query on the data source and retrieve the field names that are needed to
populate the dataset field collection in the Report Data pane. The field collection appears under the
dataset node after you close the Dataset Proper ties dialog box.
6. In Timeout , type the number of seconds that the report server waits for a response from the database.
The default value is 0 seconds. When the time out value is 0 seconds, the query does not time out.
7. Click OK .
The dataset and its field collection appear in the Report Data pane under the data source node.
See Also
Report Embedded Datasets and Shared Datasets (Report Builder and SSRS)
Dataset Fields Collection (Report Builder and SSRS)
Report Datasets (SSRS)
Create data connection strings - Report Builder & SSRS
Embedded and Shared Datasets (Report Builder and SSRS)
Report Parts and Datasets in Report Builder
11/2/2020 • 3 minutes to read • Edit Online
In Report Builder, the easiest way to include data in a report is to add report parts from the Report Part Gallery.
Report parts contain the datasets that they depend on, which are known as dependent datasets. Dependent
datasets are based on shared data sources and can be either embedded datasets or shared datasets. Read more
about Report Parts.
Another easy way to include data in a report is to use a shared dataset. For more information, see Report
Embedded Datasets and Shared Datasets (Report Builder and SSRS).
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
IMPORTANT
To ensure that you and others can continue to successfully use data from a shared dataset, you must understand the
principles behind securing report items. For more information, see Secure Shared Dataset Items.
See Also
Report Design View (Report Builder)
Security (Report Builder)
Report Parts (Report Builder and SSRS)
Report Embedded Datasets and Shared Datasets (Report Builder and SSRS)
Manage Shared Datasets
11/2/2020 • 7 minutes to read • Edit Online
In Reporting Services, shared datasets retrieve data from shared data sources that connect to external data
sources. A shared dataset provides a way to share a query to help provide a consistent set of data for multiple
reports. The dataset query can include dataset parameters. You can configure a shared dataset to cache query
results for specific parameter combinations on first use or by specifying a schedule. You can use shared dataset
caching in combination with report caching and report data feeds to help manage access to a data source.
Shared datasets use only shared data sources, not embedded data sources. A shared dataset can be based on
any data source for a supported Reporting Services data extension or on a report model.
Edit Name Change the name of the shared dataset. All references from
dependent items will continue to work.
Edit Query execution time out Set the query execution timeout in seconds. Zero (0)
seconds means no time out. Determines the number of
seconds before the dataset query times out. To specify no
timeout value, use 0. For more information, see Setting
Time-out Values for Report and Shared Dataset Processing
(SSRS).
View dependent items View the items that use this shared dataset: published
report parts, shared data sources, and reports.
TA SK TO O L L IN K
Add a shared dataset or change Save in Report Builder. Report Embedded Datasets and
shared dataset definition properties. Shared Datasets (Report Builder and
Deploy in Report Designer. SSRS)]
Upload an .rsd file in the web portal Upload a File or Report in the report
server
Change shared dataset item web portal Work with shared datasets - web
properties. portal
Specify additional shared dataset Report Builder Report Designer Dataset Properties Dialog Box, Query
properties for a shared dataset (Report Builder)
instance in a report.
Bind to a different shared data source web portal Configure Data Source Properties for a
for a shared dataset. Paginated Report - SSRS
Verify default values for dataset Open in Report Builder or use URL For example:
parameters. access syntax.
https://localhost/reportserver/?/Datasets/Dataset1&rs:command=GetShareddata
Create or edit a cache refresh plan web portal Cache a Shared Dataset
In SharePoint integrated mode, SharePoint application pages Change shared dataset item properties
synchronize the shared dataset
definition between the report server Change cache options
and the SharePoint site
Change the shared data source
See also
Report Server Content Management (SSRS Native Mode)
Granting Permissions on a Native Mode Report Server
Add, Edit, Refresh Fields in the Report Data Pane
(Report Builder and SSRS)
11/2/2020 • 2 minutes to read • Edit Online
Dataset fields are the built-in collection of field names that represent the data that is returned when a dataset
query runs on an external data source.
For an embedded dataset, the dataset fields are the fields that are created after you finish building a query and
close the Query Designer pane, and calculated fields that you create.
For a shared dataset, the dataset fields are the fields from the shared dataset definition when you added it to
your report. Although the query from the shared dataset on the report server is always used when you run the
report, the list of dataset fields in the report is static.
Use Refresh Fields to update the list of fields in the report to match the current list of fields from the shared
dataset query. Refreshing the field list does not affect the calculated fields that you define in your report.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
NOTE
If you cannot see the Report Data pane, from the View menu, click Repor t Data .
2. In the Fields page of the Dataset Proper ties dialog box, click Add , and then click Quer y Field . A new
row is added to the bottom of the grid.
3. In the Field Name text box, type the name for the field.
NOTE
Names must be unique in the dataset.
4. In the Field Source text box, type the name of an existing field on the data source.
5. Click OK .
To add a calculated field
1. In the Report Data pane, right-click the dataset, and then click Add Calculated Field .
2. In the Fields page of the Dataset Proper ties dialog box, click Add , and then click Calculated Field . A
new row is added to the bottom of the grid.
3. In the Field Name text bo, type the name for the field.
NOTE
Names must be unique in the dataset.
4. In the Field Source text box, type the expression for the field. Click the expression (fx ) button to build an
expression.
NOTE
The expression for a calculated field cannot contain aggregates or references to report items.
5. Click OK .
To edit a query field or a dataset field
1. In the Report Data pane, right-click the field, and then click Field Proper ties .
2. In the Fields page of the Dataset Proper ties dialog box, click an existing field to select the row.
3. Change the name of the field or the value of the field.
4. Click OK .
To delete a query field or a calculated field
1. In the Report Data pane, expand the dataset to display the field collection.
2. Right-click the field you want to remove, and then click Delete .
To refresh the field collection in the Report Data Pane for a shared dataset
1. In the Report Data pane, right-click the dataset, and then click Quer y .
2. Click Refresh Fields .
On the report server, the shared dataset query runs and returns the current field collection.
See Also
Dataset Fields Collection (Report Builder and SSRS)
Report Datasets (SSRS)
Report Embedded Datasets and Shared Datasets (Report Builder and SSRS)
Reporting Services Query Designers
Query Design Tools (SSRS)
Add a Filter to a Dataset (Report Builder and SSRS)
11/2/2020 • 2 minutes to read • Edit Online
Add a filter to a dataset to limit the data in a report after the data is retrieved from an external data source.
When you add a filter to a dataset, all report parts or data regions use only data that matches the filter
conditions.
For a shared dataset, a filter that applies to all dependent items must be part of the shared dataset definition on
the report server. A report or report part that contains an instance of a shared dataset can create an additional
filter that applies only to the instance.
To add a filter, you must specify one or more conditions that are filter equations. A filter equation consists of an
expression that identifies the data that you want to filter, an operator, and the value to compare to. The data
types of the filtered data and the value must match. Filtering on aggregate values for a dataset is not supported.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
See Also
Add Dataset Filters, Data Region Filters, and Group Filters (Report Builder and SSRS)
Expression Examples (Report Builder and SSRS)
Add a Filter (Report Builder and SSRS)
Show Hidden Datasets for Parameter Values -
Multidimensional Data
11/2/2020 • 2 minutes to read • Edit Online
Your report might include automatically-generated datasets (also known as hidden datasets) that do not appear
by default in the Report Data pane. These datasets are created in the following ways:
In some query designers for multidimensional databases, you can specify fields to filter on in the filter
area of the query pane, and select whether to create a query parameter for the filter. If you select the
parameter option, report datasets are automatically created to provide valid values for the report
parameter.
If you import a query based on multidimensional databases, you might also include hidden datasets in
your report.
Hidden datasets are not available to use from a wizard.
You can change the view in the Report Data pane to display all datasets in the report.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
See Also
Query Design Tools (SSRS)
Reporting Services Query Designers
Report Embedded Datasets and Shared Datasets (Report Builder and SSRS)
Report Datasets (SSRS)
Set a No Data Message for a Data Region (Report
Builder and SSRS)
11/2/2020 • 2 minutes to read • Edit Online
When you want to specify text to show in the rendered report in place of a data region that has no data, set the
NoRowsMessage property for a table, matrix, or list data region, the NoDataMessage for a chart data region,
and the NoDataText for the color scale for a map. At run time, the report processor runs the query for each
dataset in a report and the dataset query may produce no result set. For a data region bound to an empty
dataset, you can specify text to display instead of displaying an empty data region. You can also set the
NoRowsMessage property for a subreport when no datasets in the subreport have data at run time.
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
See Also
Subreports (Report Builder and SSRS)
Tables, Matrices, and Lists (Report Builder and SSRS)
Charts (Report Builder and SSRS)
Maps (Report Builder and SSRS)
Subreports (Report Builder and SSRS)
Dataset Fields Collection (Report Builder and SSRS)
3/5/2021 • 8 minutes to read • Edit Online
Dataset fields represent the data from a data connection. A field can represent either numeric or non-numeric
data. Examples include sales amounts, total sales, customer names, database identifiers, URLs, images, spatial
data, and e-mail addresses. On the design surface, fields appear as expressions in report items such as text
boxes, tables, and charts.
A report has three types of fields and displays them in the Report Data pane: dataset fields, dataset calculated
fields, and built-in fields.
Dataset fields. The metadata that represents the collection of fields that will be returned when the
dataset query runs on the data source.
Dataset calculated fields. Additional fields that you create for the dataset. Each calculated field is
created by evaluating an expression that you define.
Built-in fields. The metadata that represents a collection of fields provided by Report Builder that
provide report information such as the report name or the time when the report was processed. For
more information, see Built-in Globals and Users References (Report Builder and SSRS).
Dataset field names are saved as part of the report dataset definition. For more information, see Report
Embedded Datasets and Shared Datasets (Report Builder and SSRS).
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
NOTE
Not all Field properties can be used for all data sources. The Value and IsMissing properties are defined for all data
sources. Other predefined properties (such as Key , UniqueName , and ParentUniqueName for multidimensional data
sources) are supported only if the data source provides those properties. Custom properties are supported by some data
providers. For more information, see specific topics about extended field properties for your data source type in Report
Embedded Datasets and Shared Datasets (Report Builder and SSRS). For example, for a SQL ServerAnalysis Services data
source, see Extended Field Properties for an Analysis Services Database (SSRS).
NOTE
The report server uses the data providers that are installed and configured on the report server. Report authoring
clients in Preview mode use the installed and configured data processing extensions on the client machine. You
must test your report in both the report client and the report server environment.
Repor t processor The data types are based on the version of the CLR installed when you installed
Reporting Services.
For example, the data types the report processor uses for the new date and time types introduced in SQL
Server 2008 are shown in the following table:
For more information about SQL Server database types, see Data Types (Database Engine) and Date and Time
Data Types and Functions (Transact-SQL).
For more information about including references to a dataset field from an expression, see Data Types in
Expressions (Report Builder and SSRS).
See Also
Dataset Properties Dialog Box, Fields (Report Builder)
Report Parts and Datasets in Report Builder
Report Embedded Datasets and Shared Datasets (Report Builder and SSRS)
Dataset Properties Dialog Box, Options (Report
Builder)
11/2/2020 • 3 minutes to read • Edit Online
Select Options on the DatasetProper ties dialog box to change data options, such as collation options and
treating subtotals as detail data, for the query. For more information about collations, see Collation and Unicode
Support.
Data options that are part of a shared dataset definition on the report server affect all reports that use the
shared dataset. You can override options for the shared dataset after it is added to a report. These changes affect
only the report in which they are defined.
Data options for an embedded dataset affect only the report in which they are defined.
For more information, see Report Embedded Datasets and Shared Datasets (Report Builder and SSRS).
Options
Collation
Select a locale that determines the collation sequence to be used for sorting data. Default indicates that the
report server should attempt to derive the value from the data provider when the report runs. If the value
cannot be derived, the default value is derived from the locale setting of the computer.
Case sensitivity
Select a value that determines case sensitivity. This option indicates whether the data is case-sensitive. You can
set Case Sensitivity to True , False , or Auto . The default value, Auto , indicates that the report server should
attempt to derive the value from the data provider when the report runs. If the data provider does not support
the case-sensitivity type, the report runs as though the value were False . If you know the value and you know it
is supported, choose True .
Accent sensitivity
Select a value that determines accent sensitivity. Accent Sensitivity indicates whether the data is accent
sensitive and can be set to True , False , or Auto . The default value, Auto , indicates that the report server should
attempt to derive the value from the data provider when the report is run. If the data provider does not support
the accent sensitivity type, the report runs as though the value were False . If you know the value and you know
it is supported, choose True .
Kanatype sensitivity
Select a value that determines kanatype sensitivity. This option indicates whether the data is kanatype sensitive;
it can be set to True , False , or Auto . The default value, Auto , indicates that the report server should attempt to
derive the value from the data provider when the report runs. If the data provider does not support the
kanatype sensitivity type, the report runs as though the value were False . If you know the value and you know it
is supported, choose True .
Width sensitivity
Select a value that determines width sensitivity. This option indicates whether the data is width-sensitive and can
be set to True , False , or Auto . The default value, Auto , indicates that the report server should attempt to derive
the value from the data provider when the report runs. If the data provider does not support the width
sensitivity type, the report runs as though the value were False . If you know the value and you know it is
supported, choose True .
Interpret subtotals as detail rows
Select a value that indicates whether you want subtotal rows to be interpreted as detail rows instead of
aggregate rows. The default value, Auto , indicates that the subtotal rows should be treated as detail rows if the
report does not use the Aggregate () function to access any fields in the data set. If you want subtotal rows to
be interpreted as aggregate rows, choose False . If you want the subtotal rows to be interpreted as detail rows
and you know that they do not use the Aggregate () function, choose True .
See Also
Aggregate Function (Report Builder and SSRS)
Filter, Group, and Sort Data (Report Builder and SSRS)
Report Embedded Datasets and Shared Datasets (Report Builder and SSRS)
Dataset Properties Dialog Box, Query (Report Builder)
Dataset Properties Dialog Box, Parameters
11/2/2020 • 2 minutes to read • Edit Online
Select Parameters on the Dataset Proper ties dialog box to add, change, and delete query parameters,
including query parameters that link to report parameters.
Whenever the query is changed on the query tab, the query command is parsed. For each query parameter that
is identified, a report parameter with an identical case-sensitive name is created. By default, the query parameter
is automatically added to the query parameter list and linked to the corresponding report parameter.
If there are dependencies for the default values of one report parameter on another report parameter that is
linked to a query parameter, the order of report parameters (as they appear in the Repor t Parameters
Proper ties dialog box) is important. Report parameters later in the list can refer to report parameters earlier in
the list. For more information about report parameters, see Report Parameters (Report Builder and Report
Designer).
Options
Add
Add a new parameter to the list.
Delete
Remove the selected parameter from the list.
Parameter name
Type the name of a query parameter that you added to the dataset on the Quer y tab of the Dataset
Proper ties dialog box.
Parameter value
Enter a value for the query parameter. This can be a static value or an expression that refers to an object within
the report, but it cannot refer to any report items or fields. By default, Value contains an expression that points
to a report parameter.
Up arrow
Move the selected parameter up in the list.
Down arrow
Move the selected parameter down in the list.
See Also
Report Parameters (Report Builder and Report Designer)
Report Datasets (SSRS)
Change the Order of a Report Parameter (Report Builder and SSRS)
Dataset Properties Dialog Box, Query (Report
Builder)
11/2/2020 • 2 minutes to read • Edit Online
Select Quer y on the Dataset Proper ties dialog box to choose a shared dataset from a report server or to
create an embedded dataset. For an embedded dataset, you must choose a data source and build a query.
Options
Name
Type a name for the dataset. The name cannot be the same as a name for any data region or group in the report.
Use a shared dataset
Select this option to use a predefined dataset from the report server.
Browse
Browse to a folder on a report server or SharePoint site and select a shared dataset (.rsd).
Use an embedded dataset in my repor t
Select this option to create a dataset for use only by this report.
Data Source
Select the data source on which to base the dataset. To create a new data source, click New .
Quer y type
Select the type of command or query to use for the dataset. Select Text to run a query to retrieve data from the
database. Select Table to use the TableDirect feature of SQL Server to select all the fields within a table. Select
Stored Procedure to run a stored procedure by name. Text is selected by default and is used for most queries.
To edit the selected data source query, click Quer y Designer .
NOTE
Not all query types are supported by all data sources. For example, Table is supported only by data source types OLE
DB and ODBC .
Quer y
This option appears when you choose the Text command type option. Type a query or import a pre-existing
query by clicking Impor t . Click the Expression (fx) button to edit the expression.
NOTE
If you use a query designer to build a query, the text of the query appears in this box.
Table name
This option appears when you select Table . Enter the name of the table that you want to use as a dataset.
Select or enter stored procedure name
This option appears when you choose the Stored Procedure command type option. Type or choose the name of
the stored procedure that you want to use. Click the Expression (fx) button to edit the expression.
Time out (in seconds)
Type the number of seconds until the query times out. The default is 30 seconds. The value for Time out must
be empty or greater than zero. If it is empty, the query does not time out.
Refresh Fields
Run the query command to update the list of fields in the Dataset Proper ties Dialog Box, Fields page.
See Also
Report Embedded Datasets and Shared Datasets (Report Builder and SSRS).
Report Datasets (SSRS)
Query Design Tools (SSRS)
Report Embedded Datasets and Shared Datasets
(Report Builder and SSRS)
11/2/2020 • 17 minutes to read • Edit Online
A dataset specifies the data that you want to use from a data connection. A dataset is based on a data connection
that has been saved in the report as an embedded data source or a reference to a shared data source on a
report server. The dataset includes a query that specifies a set of fields. As you drag these fields to the design
surface, you create expressions that evaluate to the actual data when the report runs.
There are two types of datasets:
Shared dataset. A shared dataset is defined on the report server. You can browse to the server to create
a shared dataset or to select a predefined one to add to your report. Use a shared dataset to provide a
query that can be used by more than one report. Shared datasets are stored on the report server and
managed separately from reports or shared data sources. For example, a report server administrator
might update the query to take advantage of improved indexing or other query performance
optimization.
Embedded dataset. An embedded dataset is defined in and used by only the report it is embedded in.
Use an embedded dataset when you want to get data from an external data source to be used only in one
report. Embedded datasets are useful when you want to create a query that has no other dependencies
and that you do not need to use for multiple reports.
A dataset also includes parameters, filters, and data options that specify character sensitivities, such as case,
kana type, width, accent, and collation information.
1. Datasets in the Repor t Data pane A dataset appears in the Report Data pane after you create an
embedded dataset or add a shared dataset. A dataset is based on a data source.
2. Quer y Designer When you design a dataset query, the query designer that is associated with the data
source type opens.
3. Quer y command The query designer helps you build a query command. The command syntax is
determined by the data provider.
4. Data Extension/Data Provider Connecting to the data can be through multiple data access layers.
5. External data sources Retrieve data from relational databases, multidimensional data bases, SharePoint
lists, Web services, or report models.
6. Quer y results You can run the query and see an example result set. You must have design time
credentials to run a query.
7. Metadata from schema The data provider runs a schema query command separate from the query to
retrieve metadata for the dataset field collection. For example, a Transact-SQL SELECT statement returns
the column names for a database table. Use the Report Data pane to expand the dataset to view the
dataset field collection.
Data can also be included in a report by using predefined shared datasets and report parts. These items already
have the data connection information that you need. For more information, see Report Datasets (SSRS) and
Report Parts (Report Builder and SSRS).
For more information about built-in data source types and data extensions, see Add Data from External Data
Sources (SSRS).
NOTE
You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server
Data Tools. Each authoring environment provides different ways to create, open, and save reports and related items.
A flattened rowset from multidimensional data sources that use the XML for Analysis (XMLA) protocol.
Some data providers supply additional cell and dimension properties from the data source that you
cannot see in the result set but that are available in your report.
A flattened result set from XML data sources that include XML elements, their attributes, and their child
elements.
A result set from any registered and configured .NET Framework data provider.
Data from a report model that has been designed for a specific data source, with predefined entities,
entity relationships, and fields. For more information, see "Report Datasets" in the Reporting Services
documentation.
When the report is processed at run time, the actual result set returned for a query may have zero or more
rows. It is also possible that the columns defined in the query may be missing from the data source. Null values
from the data source are mapped to the .NET Framework value System.DBNull.Value .
For more information about dataset fields, see Dataset Fields Collection (Report Builder and SSRS).
Dataset Query
When you run a dataset query in a query designer at design time, you see a row set from the data source that
shows you example data. At run time, when a user views the report, the dataset query may produce different
values because the data on the data source has changed. Each time the report is processed, new data may
appear.
When you define each dataset, Report Builder opens the query designer that corresponds to the type of data
source to help you design queries. For example, to define a query for data from a SQL Server relational
database, the Table/Matrix, Chart, and Map wizards open a simple graphical interface that helps you build the
query; all you need to do is select the fields that you want in your dataset.
In a query designer, you can do the following:
Toggle between graphical and text-based query view. Use the graphical to explore schemas, tables, views,
and stored procedures on the data source. Use the text-based view to type, paste, or view an existing
query, typically used for a complex query that cannot be displayed in a graphical query designer. For
example, you can import a query from a Transact-SQL (.sql) file, a different report on the report server, or
a report definition (.rdl) file from a file share.
Run the query to see data. The query returns a result set. The columns in the result set become the
collection of fields for the dataset. The rows in the result become the data for the dataset. You can work
with the query until you get the columns that you want.
Add query parameters to help retrieve just the data that you want for your report. Query parameters
automatically generate matching report parameters. For a report model data source, the filter that you
specify automatically generates a matching report parameter. Report parameters enable users to specify
the report data that they want to see when they run the report. For example, the user selects which
product categories they want to data for, and when the report runs, data for only those product
categories appear in the report.
Import an existing query from another report.
Query designers can provide a graphical mode or a text mode depending on the data source type. If you choose
text mode, you must use the appropriate query syntax for the data source.
When you define a report dataset, you can set data properties in the query or accept the defaults set by the data
provider. You can change a data type by using one of the following strategies:
Rewrite the dataset query to specifically convert a field to a different data type.
Edit the field in the dataset and provide a custom format.
Create a new custom field based on a database field and provide a custom format.
For more information, see Dataset Fields Collection (Report Builder and SSRS).
Importing Existing Queries for a Dataset
When you create a dataset, you can create a new query or you can import an existing query from a file or from
another report. When you import a query from another report, you can choose which query to import from the
list of datasets in the report.
Only the .sql and .rdl file types are supported. Multidimensional Expression (MDX) queries, Data Mining
Prediction (DMX) queries, and model queries (SMQL) can only be generated by the associated the query
designer.
EM B EDDED SH A RED
In Report Designer, you can create shared datasets as part of a report project, and control whether to deploy
them to a report server. You cannot browse to a report server and select a shared dataset to add to your report.
In Report Builder, you can do the following:
To create a shared dataset, use Shared Dataset Design View. You can save it to a report server or
SharePoint site to share with other reports. You can also browse to the report server and edit and existing
shared dataset. In this view, you can build a query and set all dataset options. For more information, see
Shared Dataset Design View (Report Builder).
To add a shared dataset to your report, open Report Builder in Report Design View. From a wizard or
from the Report Data pane, browse to the report server and select the shared dataset to add to your
report. In this view, you cannot change the query except to add fields. You can override other data options
and add filters. You cannot remove filters.
The following table compares the properties that can be configured for the definition of the shared dataset on
the report server and the instance of the shared dataset in the report definition.
C O N F IGURAT IO N N OT ES F O R T H E C O N F IGURAT IO N N OT ES F O R T H E
P RO P ERT Y DEF IN IT IO N IN STA N C E
Query text Configure the query, including defining Cannot change the query.
it as expression.
Query parameters Cannot reference report parameters Configure parameters that are not
marked Read Only in the definition
Includes default values
Data Source Must be a shared data source Cannot change the data source
Fields Fields from the query command View fields, but cannot change them
Calculated fields are not part of the The field collection is static based on
dataset definition the query at the time you added the
shared dataset to the report. To
update, click Refresh Fields in the
Dataset Proper ties dialog box. The
actual field collection is whatever the
current query in the definition returns.
Dataset Data options such as case sensitivity Override data options in the instance
For more information about creating datasets, see Create a Shared Dataset or Embedded Dataset (Report
Builder and SSRS) and Reporting Services Tools in the Reporting Services documentation.
Learn about Reporting Services mobile reports, optimized for mobile devices and connected to on-premises
data, with an assortment of data visualizations.
NOTE
Do you need to migrate Datazen Server content such as dashboards and KPIs to a SQL Server Reporting Services
server? Try the SQL Server Migration Assistant for Datazen.
With SQL Server Mobile Report Publisher, you can quickly create Reporting Services mobile reports, optimized
for mobile devices and a variety of other form factors. Mobile reports feature an assortment of visualizations,
from time, category, and comparison charts, to treemaps and custom maps.
Connect your mobile reports to a range of data sources, including on-premises SQL Server and Analysis
Services data.
Lay out your mobile reports on a design surface with adjusting grid rows and columns, and flexible mobile
report elements that scale well to any screen size.
Then save these mobile reports to a Reporting Services server, and view and interact with them in a browser
or in the Power BI mobile app on iPads, iPhones, Android phones and tablets, and Windows 10 devices.
See Also
Create, Modify, and Delete Shared Data Sources (SSRS)
Manage Shared Datasets
Working with KPIs in Reporting Services
Enable a report server for Power BI mobile access
SQL Server mobile reports: End-to-end walk-
through
3/5/2021 • 8 minutes to read • Edit Online
Walk through creating mobile reports for any screen size with SQL Server Mobile Report Publisher on the
Reporting Services web portal, and viewing them in the Power BI mobile apps.
Create mobile reports on a design surface with adjustable grid rows and columns, and flexible mobile report
elements. Connect to a variety of on-premises data sources, or upload Excel workbooks to create mobile reports.
Then save your reports to a Reporting Services web portal and view them in a browser, or in the Power BI
mobile apps.
This article walks you through:
Creating a shared data source and dataset on the Reporting Services web portal, using the AdventureWorks
database as a sample data source.
Creating a Reporting Services mobile report in the Mobile Report Publisher
Publishing the mobile report to the Reporting Services web portal.
Viewing the mobile report in the Power BI mobile app.
Before we start
To follow along, you need these products:
To create data sources and KPIs, and publish datasets and mobile reports, you need access to a Reporting
Services native mode report server.
To create shared datasets, install Report Builder.
To create mobile reports, install SQL Server Mobile Report Publisher.
AdventureWorks sample databases.
OR: World Wide Importers sample database, available from the Microsoft SQL Server Samples page.
To view the result:
Sign up for the Power BI service and
Download the Power BI mobile app to your mobile device: iOS, Android phone, or Windows 10 device.
4. Now you see the data source in the Reporting Services portal.
Read more about shared data sources in Reporting Services.
Create a KPI
You create KPIs right in the Reporting Services web portal.
1. In the upper-right corner of the web portal, click New > New KPI .
In the KPI creation screen, you can manually enter values, or to use a shared dataset.
2. Change Value from Set manually to Dataset field .
3. Click the ellipsis (...) in the Pick dataset field box, and select a dataset from the previous step.
5. Choose the aggregation your want. KPIs can only display one number, so the field will be aggregated to
show that number.
6. Click OK .
7. In the Trend set box, click Dataset trend .
8. In the Pick dataset trend box, click the ellipsis (...)
9. Select a field and click OK .
10. Give your KPI a name and pick a visualization type, and click Create .
The KPI appears on the Reporting Services web portal.
3. Drag the Tree Map to the grid, and drag the lower-right corner to make it three columns wide and three
rows high.
4. You can see its visual properties at the bottom. You may have to scroll sideways to see them all.
5. With the tree map visual selected, select the Data tab in the upper-left corner.
Now you see the simulated fields and values that Mobile Report Publisher has generated, and see what
the size and the color represent in the tree map.
7. Click the Options cog in the upper-right corner of the tree map to see the menu it contains.
8. Click the arrow in the middle of the wheel to close it.
6. Select Preview to see the tree map updated with your data.
2. On the Data tab, Data proper ties , set Keys and Labels to a field in your data that you want to filter on.
3. Tap the options icon in the upper-left corner, and tap Connect to Ser ver .
4. Give the server a name, and fill in the server address and your email address and password, in this
format:
5. Now you see the server in the left navigation bar.
TIP
Tap the options icon anytime to go between your Reporting Services mobile reports in the Reporting Services
web portal and your dashboards in the Power BI service.
Tap a mobile report to open and interact with it in the Power BI app.
The KPIs and mobile reports are displayed in the same folders they're in on the Reporting Services web portal.
See also
View on-premises report server mobile reports and KPIs in the Power BI mobile app for iOS and Android
devices
View on-premises report server mobile reports and KPIs in the Power BI mobile app for Windows 10 devices
Create a Reporting Services mobile report
3/17/2020 • 2 minutes to read • Edit Online
With SQL Server Mobile Report Publisher, you can quickly create SQL Server Reporting Services mobile reports
that scale well to any screen size, on a design surface with adjustable grid rows and columns, and flexible mobile
report elements.
The first time you create a mobile report, you can install SQL Server Mobile Report Publisher, on your local
machine from the Reporting Services web portal. Or you can install it from the Microsoft Download Center.
After the first time, you can start it either from the web portal or locally.
1. In the top bar of the Reporting Services web portal, select New > Mobile Repor t .
2. On the Layout tab in Mobile Report Publisher, select a navigator, gauge, chart, map, or datagrid and drag
it to the design grid.
3. Grab the lower-right corner of the element and drag it to the size you want.
This is the Master design grid, where you create the elements you want in your report. Later, you can lay
out the report for a tablet or phone.
In Visual Proper ties below the design grid, notice the various properties you can set.
4. Select the Data tab in the upper-left corner, and you see the chart already has simulated data associated
with it.
9. Back on the Layout tab, in the Visual Proper ties box you can set properties like Title , Time Unit , and
Number Format .
10. Select Preview in the upper left to see how your report is shaping up.
11. Time to save your report. Select the Save icon in the upper left, and either Save Locally or Save to
Ser ver .
To save it to a server, you need access to a SQL Server Reporting Services report server.
See also
Create and publish mobile reports with SQL Server Mobile Report Publisher
Lay out a Reporting Services mobile report for phone or tablet
Design first or data first when creating in Reporting
Services mobile reports
3/17/2020 • 2 minutes to read • Edit Online
With SQL Server Mobile Report Publisher, you can quickly create mobile reports that scale well to any screen
size, on a design surface with adjustable grid rows and columns, and flexible mobile report elements.
When creating mobile reports, you have your choice of two basic approaches: start with the data first, or start
with the design first. Mobile Report Publisher supports both.
Design first
The following diagram shows the components of the Mobile Report Publisher layout view:
In the design-first approach, you create a mobile report layout first without importing any data. This is a good
way to create a mobile report when you are not sure if the data is formatted correctly. Without real data, gallery
elements are automatically bound to generated simulated data, which you can export and use as a template to
describe the required data.
Data first
The data-first approach is to import all required data first, then design the mobile report and set data properties
on the mobile report elements. This has the advantage of being able to connect each element to real data when
you add it to the layout. When using a data-first approach, be sure that your real data is formatted correctly for
use with Mobile Report Publisher.
The following diagram shows all the components of the Mobile Report Publisher data view:
See also
Create and publish mobile reports with SQL Server Mobile Report Publisher
View SQL Server mobile reports and KPIs in the iPad app (Power BI for iOS)
View SQL Server mobile reports and KPIs in the iPhone app (Power BI for iOS)
Data for Reporting Services mobile reports
3/17/2020 • 2 minutes to read • Edit Online
The SQL Server Mobile Report Publisher data model is simple. Data is imported into Mobile Report Publisher as
a collection of datasets. Formal relationships between datasets aren't necessary. Lookups from one dataset to
another work as long as the key values match. Date/time aggregations are handled by the mobile report
runtime and they will match between different datasets, even if the date/time data granularity is different
between datasets.
You can import data from two types of sources:
Local Excel files : Select an Excel document and pick which worksheet(s) to import. After import, the
data is stored within the mobile report definition. To refresh the data from the original Excel file, use the
Refresh Data command in the upper-right corner on the Mobile Report Publisher Data tab. Read more
about preparing Excel data for SSRS mobile reports.
SQL Ser ver Mobile Repor t Publisher shared datasets : Browse the list of published datasets on the
server and select the ones to add to the mobile report. Mobile reports based on server data always stay
connected to the original server datasets and reflect the latest state of the data on the server. See a list of
supported data sources.
Read more about getting data from shared datasets in Mobile Report Publisher.
After you import data into Mobile Report Publisher, the rest of the mobile report creation and design experience
is the same, regardless of where the data came from.
When you place a gallery element on the design surface, Mobile Report Publisher immediately generates
simulated data for that element. This data serves a number of useful purposes when creating mobile reports.
Simulated data helps when taking a design-based approach to mobile report creation. Initially populating
elements with simulated data allows you to create mobile report prototypes quickly without having to address
specific data requirements. These mobile reports can then be evaluated for the overall aesthetics and
effectiveness.
Note : Simulated data does not add to the overall mobile report footprint because it's not serialized with the
mobile report, but generated on-the-fly at runtime.
See also
Create and publish mobile reports with SQL Server Mobile Report Publisher
View SQL Server mobile reports and KPIs in the iPad app (Power BI for iOS)
View SQL Server mobile reports and KPIs in the iPhone app (Power BI for iOS)
Get data from shared datasets in Reporting Services
mobile reports
3/17/2020 • 2 minutes to read • Edit Online
Besides loading data from Excel files, SQL Server Mobile Report Publisher can also access data from almost any
source. Accessing data requires a shared data source, configured on a Reporting Services web portal. Read more
about creating shared data sources and creating shared datasets.
After shared data sources and shared datasets are configured on the Reporting Services server, you can use
them in mobile reports you create in Mobile Report Publisher.
After you've connected to a Reporting Services server from the Mobile Report Publisher, connecting a mobile
report to a shared dataset is straightforward.
1. On the Data tab, select Add Data .
2. Select Repor t Ser ver .
3. If this is the first time connecting to the server, fill in the server name and your name and password. Put
the server name in the Server address box in this format:
<"servername">/reports/
As in this example:
4. When you select the Reporting Services server, you see the available datasets in folders. Select a dataset
to import the data into Mobile Report Publisher.
After you've imported the dataset, you can design your mobile report just as you would with simulated data, or
local data from an Excel file.
By default, the shared dataset is always up to date with the latest data, because every time someone views a
mobile report based on that dataset, SQL Server runs the underlying query and returns the latest data. Clearly, if
lots of people view your mobile report this might not be ideal, so you can set up caching to run the query
periodically and cache the resulting dataset. This blog post explains how caching and data refresh works in the
web portal.
SQL Server Mobile Report Publisher supports a number of complex data operations, including filtering,
aggregation, and time slicing. This article offers some points to keep in mind while preparing data. Pre-
aggregating data can optimize both mobile report creation and use, and some mobile report designs require it.
Date- and time-based datasets can, in most cases, be described by one or more date/time intervals, such as
hourly, daily, monthly, quarterly, and yearly. Mobile Report Publisher can combine multiple tables of different
granularity and display them on a single mobile report. However, keep in mind the relevant intervals from the
original dataset(s), as they can help when deciding what date/time filter options to present to the user in the
final mobile report.
Date fields in Analysis Services multidimensional and tabular models can lose their date formatting in shared
datasets. See Retain date formatting for Analysis Services in mobile reports for a solution that keeps their
formatting.
IN DUST RY C O UN T RY REGIO N
Key-based filters may also be hierarchically structured for use with a Selection List in a tree structure. To prepare
data for use in this type of scenario, create a look-up table describing the hierarchical structure. Use a table
structure that includes a Key column and a Parent Key column to indicate where a node belongs in the overall
hierarchy.
In this table, the ParentKey items are first listed in the ItemKey column, then listed in the ParentItemKey column
next to their child items.
IT EM K EY PA REN T IT EM K EY
Financials
Industrials
Consumer Staples
Consumer Discretionary
Health Care
Information Technology
Banks Financials
Insurance Financials
Transportation Industrials
See also
Prepare Excel data for Reporting Services mobile reports
Retain date formatting for Analysis Services in mobile reports
Create mobile reports with SQL Server Mobile Report Publisher
Prepare Excel data for Reporting Services mobile
reports
11/2/2020 • 3 minutes to read • Edit Online
Here are some things to keep in mind when preparing an Excel file and worksheets for use with a mobile report:
Do
Have one worksheet per dataset.
Have column headers in the first row.
Keep data types consistent within each column.
Format cells as proper types in Excel.
Have the data in worksheets, not in the Data Model in Excel.
When using formulas, ensure that the entire column is calculated using the same formula.
Use Excel 2007 or later.
Save Excel files with the extension XLSX.
Don't
Include images, graphs, PivotTables, or other embedded objects in dataset worksheets.
Include total or calculated rows.
Keep the file open in Excel when importing.
Format numbers manually by adding currency or other symbols.
Use a workbook with data stored in the Data Model.
Worksheets
When preparing an Excel file as a dataset for a mobile report, make sure you have only one dataset per
worksheet. Each individual worksheet is imported into the Mobile Report Publisher as a separate table.
Identically named worksheets from multiple Excel sources are renamed upon importing by appending
incrementing numbers. For example if a workbook has three worksheets entitled "MyWorksheet", the second
and third will be renamed "MyWorksheet0" and "MyWorksheet1". The screenshot below illustrates the first few
rows of an ideal Excel worksheet ready for import.
Column headers
As you can see in the example above, the first row contains the name of the metric in that column. Mobile
Report Publisher preserves these column headers for easy reference in gallery element settings. Column
headers aren't required, however. If missing, Mobile Report Publisher generates headings using the Excel
A,B,C,...,AA,BB,... convention.
Mobile Report Publisher automatically detects first-row headers when importing Excel worksheets by
comparing the data types of the first two cells in each column. If the data types of the first two cells in any
column don't match, the first row is determined to contain column headers. Thus, if a table has numeric column
headers, prefix the header names with a string so they're detected as headers in the import process.
Cells
Cell data in each column of a worksheet dataset needs to be consistent. Each column is assigned a data type
upon importing. Mobile Report Publisher automatically detects data types as string, double (numeric), boolean
(true/false), or datetime. Mixed data types in the same column can cause this detection to be inaccurate or fail
completely. This detection accounts for possible column headers being of string type. Cells should be formatted
as the correct type in Excel to ensure that the Mobile Report Publisher detects the desired types. In the above
example the six columns would be typed as:
A datetime column
A string column
Four double columns
If a worksheet contains calculated cells or formulas, only the resulting display value is imported into the Mobile
Report Publisher.
Note : Mobile Report Publisher doesn't automatically refresh Excel data. You can refresh the data through the
Mobile Report Publisher refresh command, but only if the file hasn't moved.
Dates
Date fields are essential to many mobile reports, so make cells are properly formatted as dates in Excel. In some
cases this means a conversion is necessary. Here are examples of formulas for converting cells from text to
dates in Excel.
Week 24-2013=DATE(MID(A2,9,4),1,-2)-WEEKDAY(DATE(MID(A2,9,4),1,3))+MID(A2,6,2)*7
2013/03/21=DATEVALUE(A1)
2013-mar-12=DATEVALUE(RIGHT(A1,2)&"-"&MID(A1,6,3)&"-"&LEFT(A1,4))
After you've converted the cells, you have to format them as dates by selecting them, or the entire column >
Context menu > Format Cells > Date from the Categor y list. You can also use the Excel text-to-columns
wizard to convert text cells to properly formatted dates.
Unsupported
Worksheet data in formats other than those described above could cause unpredictable results when imported.
It is a good idea to restrict worksheets in an Excel file to only those that are in the correct format for use with a
mobile report.
Custom objects in Excel worksheets, including PivotTables, visualizations, and images, aren't imported into the
Mobile Report Publisher.
See also
Prepare data for Reporting Services mobile reports
Create and publish mobile reports with SQL Server Mobile Report Publisher
View SQL Server mobile reports and KPIs in the iPad app (Power BI for iOS)
View SQL Server mobile reports and KPIs in the iPhone app (Power BI for iOS)
Retain date formatting for Analysis Services in
mobile reports
11/2/2020 • 2 minutes to read • Edit Online
Add a measure to a shared dataset in Report Builder so dates in Analysis Services data sources retain their data
type in Mobile Report Publisher.
The default return type for Analysis Services queries is a string. When you build a dataset in Reporting Services
Report Builder, the string type is respected and gets saved to the server.
However, when the JSON table renderer processes the dataset, it reads the value of the column as a string and
renders strings. Then when SQL Server Mobile Report Publisher fetches the table, it also only sees strings.
The workaround for this is to add a calculated member when you're creating a shared dataset in Report Builder.
It works for both Analysis Services multidimensional and tabular models.
2. Now you can append this calculated member to the set of columns by dragging it from the Calculated
Members list in the bottom left and dropping it in the column grid on the right.
See also
Data for Reporting Services mobile reports
Prepare data for Reporting Services mobile reports
Add parameters to a mobile report | Reporting
Services
11/2/2020 • 2 minutes to read • Edit Online
You can create a Reporting Services mobile report with parameters, so you and your report readers can filter
your reports. A report with parameters can also be the target of a drillthrough from a source report.
To create a mobile report with parameters, you start with a shared dataset with at least one parameter. Read
about creating parameters in a shared dataset. Mobile reports don't support null value(s) for default parameters,
so make sure your parameters have default values other than null.
After you add parameters to a mobile report, you create a URL to open the report with query string parameters.
1. In the top bar of the Reporting Services web portal, select New > Mobile Repor t .
2. Select the Data tab in the upper-left corner of SQL Server Mobile Report Publisher.
3. In the upper-right corner, select Add Data .
4. Select Repor t Ser ver , then select a server.
5. Navigate to the shared datasets on the server and select one that has parameters.
In the grid, you see the data in the dataset. The green circle with brackets { } marks a dataset with a
parameter.
8. Select Preview to see how the report will look. In this report, the selection list is using the Category
parameter.
9. When you select a value in the selection list, the report is filtered to that value, in this case, Accessories.
See also
Open a mobile report with specific query string parameters
Add drillthrough from a mobile report to other mobile reports or URLs
Create a shared or embedded dataset
Create and publish mobile reports with SQL Server Mobile Report Publisher
Open a mobile report with specific query string
parameters | Reporting Services
11/2/2020 • 2 minutes to read • Edit Online
If you have a Reporting Services mobile report with parameters and a SQL Server or Analysis Services data
source, you can include query string parameters in the report URL so it opens automatically with values you've
specified.
1. Create a mobile report with parameters.
2. Open the report in Mobile Report Publisher and select the Data tab.
3. Find the name of the dataset on the tab at the bottom of the table, and the field name you want.
For example:
https://sampleserver/reports/adventureworks-reports/adventureworks-load-on-demand?
TimeChartLoD.category=Clothing
For a SQL Ser ver data source : The query string parameter is almost the same, but has the @ symbol
in front of the field name:
https://<servername>/reports/<report-folder-name>/<report-name>?<dataset-name>.@<field-name>=
<parameter-value>
For example:
https://sampleserver/reports/adventureworks-reports/adventureworks-load-on-demand?
TimeChartLoD.@category=Clothing
5. This URL will open the report on the server, automatically filtered to the parameter value you specified.
See also
Add parameters to a mobile report
Add drillthrough from a mobile report to other
mobile reports or URLs
11/2/2020 • 3 minutes to read • Edit Online
You can add drillthrough from any gauge, chart, or data grid in a Reporting Services mobile report to another
mobile report or custom URL.
A drillthrough is a link from a source report that opens another target report or URL. The target drillthrough
report often contains details about some item in the summary report. Depending on the source mobile report,
one or more parameters can be passed to the target mobile report or integrated into a custom URL.
When you view the source mobile report in the Reporting Services web portal and select an element with a
drillthrough target, you go to that target, either another mobile report or a URL.
Report items with drillthrough, either to a URL or another mobile report, have the drillthrough icon in the
upper-right corner.
Tip : Create the target report and save it to a Reporting Services web portal first. If you plan to pass
parameters from the source report, add the parameters to the target report, too. Then you can set up
drillthrough from the source report to the target report. Add parameters to a mobile report.
Note: If the target mobile report is not on the same server as the source mobile report, connect to it
with a custom URL instead, as explained in the next section.
4. After you select a target mobile report, you see its available input parameters, including properties that
can be bound to navigator controls and parameters configured on datasets of the target mobile report.
Drillthrough properties for the target mobile report
5. Select the arrow to the right of each property to connect properties with matching data types to available
output properties on the source mobile report. You can also set defaults for each output here, in case the
report user hasn't interacted with the source mobile report before drilling through to the destination
mobile report.
Learn how to create a Reporting Services mobile report that looks and acts like a tabbed report by using
drillthrough and parameters.
For example, in this report, the gauges across the top act like tabs. When you click the Transportation gauge, the
data in the rest of the chart is filtered to the transportation data.
Behind the scenes, this is really a set of five separate reports, each with a different parameter that filters the
report to match the gauge selected at the top of the report. You create all five reports first, then for each of the
five reports, you make the other four gauges into drillthroughs to the other four reports.
Here are the steps for this example.
2. With the Layout tab selected, in the Visual proper ties pane select Drillthrough target .
3. Select Mobile repor t .
4. Navigate to and select the report that will be the destination for the drillthrough--in this case, "Financials
- Transportation."
5. In Configure target repor t , select the parameter to filter the report, and select Apply .
6. Repeat these steps for each of the other gauges in the Sales report.
3. Select one of the gauges to go to the report filtered to that gauge's data.
See also
Add parameters to a mobile report
Add drillthrough from a mobile report to other mobile reports or URLs
Add navigators to Reporting Services mobile
reports
11/2/2020 • 4 minutes to read • Edit Online
In SQL Server Mobile Report Publisher, you add navigators to filter the data in visualizations by time or by
selection.
Navigators are similar to slicers in Power BI and Excel PivotTables, but navigators have some unique traits, too.
Time-based navigators filter tables by selecting rows that fall in a specific time range.
Selection-based navigators filter tables by selecting rows where a particular column value matches the
selected key value; or, in cases of hierarchical trees, where a particular column value belongs to the sub-tree of
the selected key value. There are two types of selection navigators:
Selection lists are single-column tables you can use to filter your mobile report, similar to slicers in Power BI
and Excel.
Scorecard grids filter the mobile report, too, and can also contain
Time navigators
As its name implies, you use the time navigator to filter a range of data bounded by a time range.
The four line charts on the left are set in the Time Range Presets. The line chart on the right is the filter.
When you view the report in Preview or in the Reporting Services web portal, you drag the arrows in the time
navigator to filter the rest of the report.
By default, the time navigator filters all the visuals in the report that are connected to time-based data. If a table
contains more than one time-based column, only the first is used for filtering. The series table drives the
embedded visualization and determines the overall date range of the mobile report.
You can disconnect a visualization from the time navigator.
1. Select the visualization, then select the Data tab.
2. In Data Proper ties , select Options .
3. Clear the Filtered by check box.
Selection lists
The selection list filters data in a mobile report by matching the value you select in the list to the value of a
specified column for each row of a filtered table.
1. From the Layout tab, drag Selection list to the design surface and resize it the way you want it.
2. Select the Data tab, and in the Data proper ties pane under Keys , select the table and column that will
be the filter.
3. Under Labels , select the column with the label that will be displayed. The key column and label column
can be the same.
In the case of hierarchical tree data, select a parent key column.
4. After you've set the data properties, under Tables FIltered by Selection List , select the tables to be
filtered and the column to filter by. This column needs to match values in the selection list's key column.
For each visualization in the mobile report that you want the selection list to filter:
1. Select the visualization, select the Data tab, and in the Data proper ties pane, select Options next to the
field name.
Scorecard grid
The scorecard grid filter functions much like the selection list filter, but it also displays value columns and score
indicators, which are the same as the indicators in an indicator data grid. After selecting the key, label, and
optional parent key columns, you select an input table and column to provide the scorecard with data. The
scorecard data column should be filterable by the key column.
1. From the Layout tab, drag Scorecard grid to the design surface and resize it the way you want it.
2. Select the Data tab, and in the Data proper ties pane under Keys , select the table and column that will
be the filter.
3. Under Labels , select the column with the label that will be displayed. The key column and label column
can be the same.
4. To add a score indicator, in the Data Columns pane, select Add score .
5. Name the score indicator and select Options to set the same properties you'd set for an indicator in a
data grid:
Gauge type
Value field
Comparison field
Value direction
6. To add a value indicator, in the Data Columns pane, select Add value .
7. Name the value indicator as desired, choose its source column from the table, and select how it will be
formatted.
8. After you've set the data properties, under Tables FIltered by Selection List , select the tables to be
filtered and the column to filter by. This column needs to match values in the selection list's key column.
When you view the mobile report in Preview or in the Reporting Services web portal and select a value in the
scorecard grid, it filters the other visualizations in the mobile report.
Set which visualizations are filtered
Gallery elements are configured to use filters by clicking the options button for a particular input in data view.
Filters are enabled by toggling the appropriate checkbox.
You can decide which visualizations in the mobile report that a navigator will filter:
1. Select the visualization, select the Data tab, and in the Data proper ties pane, select Options next to the
field name.
2. Under Filtered by , select the navigator. Each visualization can be filtered by multiple navigators.
Cascading filters
Filters can also be cascaded together so that the selected value of one will filter the available values in a second.
To cascade filters, apply the filters to the Key column as you would a regular gallery element.
See also
Maps in Reporting Services mobile reports
Visualizations in Reporting Services mobile reports
Gauges in Reporting Services mobile reports
Data grids in Reporting Services mobile reports
Add visualizations to Reporting Services mobile
reports
11/2/2020 • 8 minutes to read • Edit Online
Charts are an essential part of data visualization. Learn about the charts you can use in Reporting Services
mobile reports to cover a range of scenarios.
SQL Server Mobile Report Publisher has three basic chart types: time, category, and totals. These three chart
types have corresponding comparison charts, which are useful for comparing two distinct sets of series.
Time charts
The time chart is the most basic chart in Mobile Report Publisher. The time (and date) axis of the chart is
automatically set to the first valid date/time field in the data table.
1. Drag a Time char t from the Layout tab to the design surface and resize it.
2. By default, it's a stacked bar chart. You can change that in Series visualization .
3. If the chart needs data that's not already in the report, select the Data tab > Add data to get data from
Excel or a shared dataset.
4. In the Data proper ties pane, Main Series is SimulatedTable . Select the arrow in the box > select your
table.
5. If you set Data structure to By columns (on the Layout tab > Visual proper ties pane), here in the
Data proper ties pane you can select multiple columns of numeric values.
If you set Data structure to By rows , here in the Data proper ties pane you can select one Series
Name Field and one column of numeric values.
Read more about grouping data by columns or rows.
Category charts
Unlike in a time chart, in a category chart you group on a field other than a date/time field on the x-axis. This
grouping, called the category coordinate, has to be on a string, not a numeric, field.
1. Drag a Categor y char t from the Layout tab to the design surface, resize it, and get data for it, if
necessary.
2. Select the Data tab, and in the Data proper ties pane under Categor y Coordinate , select a table and
field to group on. This field will be on the x axis of the resulting chart.
3. Under Main Series , select the table and numeric fields to be aggregated for each category.
Totals charts
Comparison charts
Time, category, and totals charts are also available as comparison charts. In a comparison chart, you can specify
not only a main series, but also a second comparison series. The main and comparison series can be displayed
in three different ways.
1. Drag one of the Comparison char ts (time, category, or totals) from the Layout tab to the design
surface, resize it, and get data for it, if necessary.
2. In the Visual proper ties pane, in Series visualization , select one of the following:
Bar vs. thin bar
Line vs. bar
Bar vs. step area
In comparison charts, you can choose to have the same chart colors on the main and comparison values in a
series.
In the Visual proper ties pane, set Reuse colors on comparison series to On .
If set to On , the color palette restarts between drawing the main and comparison series, so related values
in the main and comparison series are the same.
If set to Off , the color palette continues its normal rotation when drawing the main series after the
comparison series, preventing potentially misleading color coordination between the two sets of series.
Treemaps
Treemaps display metrics by applying their values to the size and color of tiles in a rectangular grid.
1. Drag a Treemap from the Layout tab to the design surface, resize it, and get data for it, if necessary.
2. Select the Data tab, and in the Data proper ties pane:
Under Size Represents select a numeric field for the tiles' size.
Under Color Represents select a numeric field for the tiles' color.
[optional] Custom Center Value : You can only use Custom Center Value when the
visualization type is HeatMapWithCustomCenterValue.
The center value decides the color of a box. The better the metric compared to center value, the
greener it is. The worse the metric, the redder it is.
[optional] To display a popup when viewers select a tile in the grid, under Popup Labels select a
field or fields. Treemap popups can display both text and numeric fields.
By default, treemaps are hierarchical, grouping the tiles by category first, then by size and color.
Still on the Data tab, under Group by select a table and field.
You can turn off grouping, so the tiles are arranged only by size and color.
Select the Layout tab and set Two-level treemap to Off .
Waterfall charts
A waterfall chart shows a running total as values are added or subtracted. It's useful for understanding how an
initial value (for example, net income) is affected by a series of positive and negative changes.
The columns are color coded green for increases and red for decreases so you can quickly see which is which.
The initial and the final value columns often start at zero, while the intermediate values are floating columns.
Because of this "look", waterfall charts are also called bridge charts.
When to use a waterfall chart
Waterfall charts are a good choice:
When you have changes for the measure across time series or different categories to audit the major
changes contributing to the total value.
To plot your company's annual profit by showing various sources of revenue and arrive at the total profit (or
loss).
To illustrate the beginning and the ending headcount for your company in a year.
To visualize how much money you make and spend each month, and the running balance for your account.
Create a waterfall chart
1. Drag a Waterfall char t from the Layout tab to the design surface, resize it, and get data for it, if
necessary.
2. Select the Data tab, and in the Data proper ties pane, select a category field in your data for Categor y
Coordinate , and a numeric field for Main Series :
Months with a loss, like February, June, and July, are in red. Months with a gain, like September, October,
and November, are in green.
See also
Maps in Reporting Services mobile reports
Navigators in Reporting Services mobile reports
Data grids in Reporting Services mobile reports
Gauges in Reporting Services mobile reports
Group data by columns or rows in a mobile report |
Reporting Services
11/2/2020 • 2 minutes to read • Edit Online
You can organize data by columns or by rows in many types of charts in Mobile Report Publisher. Follow along
in this step-by-step.
In time, totals, pie, and funnel charts, you can organize the data by rows or by columns.
Organizing by columns is useful if a table has several columns of data you'd like to compare.
Organizing by rows works better if one column in the table contains the names of the different categories.
The following steps use a comparison totals table with the simulated data in Mobile Report Publisher to
illustrate the difference between structuring the data by rows or by columns in a chart.
1. Drag a Comparison totals char t from the Layout tab to the design surface and make it bigger.
2. Select the Data tab. You see the SimulatedTable table contains a series of columns, Metric1 through
Metric5 and Comparison1 through Comparison5 .
3. In the Data proper ties pane, Main Series is SimulatedTable . Select the arrow in the box next to Main
Series , and you see Metric1 through Metric5 selected.
8. In the Data proper ties pane, there's now a Category Column box, which lists the Category column from
SimulatedTable. In Main Series, you can pick which column to use for the values. By default, Mobile
Report Publisher selects Metric1 through Metric5 for the Main Series and Comparison1 through
Comparison5 for the Comparison Series.
9. Select Preview .
Now each bar in the chart represents the values for each category in the Category column.
See also
Visualizations in Reporting Services mobile reports
Add data grids to mobile reports | Reporting
Services
11/2/2020 • 2 minutes to read • Edit Online
Sometimes the best visualization is the data itself. Learn about the three data grids, or tables, for displaying data
in SQL Server Mobile Report Publisher:
Simple data grid
Indicator data grid
Chart data grid
After you add a data grid to the design surface, you can connect it to real data.
1. Drag a simple data grid from the Layout tab to the design grid and make it the size you want.
2. Get data from Excel or a shared dataset.
3. Select the Data tab, and in the Data proper ties pane, under Data for the grid view select a data table.
4. In the Columns pane, select the columns you want. Reorder and rename them and set their format and
aggregation.
When you add a chart column to a data grid, you need to add a separate data table to provide data for the chart
in each row. This second data table needs to share a field with the main data table, to link each row to its
associated chart data.
1. Drag a chart data grid from the Layout tab to the design grid and make it the size you want.
2. On the Data tab in the Columns pane, select Add char t column .
3. Get data from Excel or a shared dataset to add a second data table that shares a field with the main data
table, if you haven't done so already.
4. Under Data proper ties , select the main data table in Data for the Grid View , then select the second
table in Reference Data for Char t Visualizations .
5. Select Options , then select Char t type .
6. Select Char t data field , Source lookup , and Destination lookup . These three properties determine
how the data grid provides data to each chart in the column.
Source lookup is set to a field in the data table in Data for the Grid View . This field acts as a per-
row filter applied to the chart reference data table to provide data to the embedded chart for each
row.
Destination lookup is the field in the data table in Reference data for char t visualizations . The
data for the chart in each row will be joined on those two fields.
Char t data field determines which metric in the Reference data for char t visualizations data
table to use as the y-axis value or series in the chart in each row.
See also
Maps in Reporting Services mobile reports
Navigators in Reporting Services mobile reports
Visualizations in Reporting Services mobile reports
Gauges in Reporting Services mobile reports
Add gauges to mobile reports | Reporting Services
11/2/2020 • 3 minutes to read • Edit Online
Gauges are the most basic and widely used visuals in mobile reports. They display a single value in a dataset -
just the value, or the value compared to a goal.
Note : When you change the aggregation for the main value, you probably also want to change the
aggregation for the comparison value, though in some cases you may want to mix aggregation
methods.
Filter a gauge
If the mobile report has any navigators, you can bind a gauge to one or more of them to filter it. You can bind a
gauge's value and comparison value to one or more different navigators, leading to almost endless options for
gauges.
1. Select a gauge, and on the Data tab in the Data proper ties pane, select Options next to Main Value or
Comparison Value .
2. Under Filtered by, select the navigator you want to filter the gauge.
Now that you've created your Reporting Services mobile report in SQL Server Mobile Report Publisher, you can
lay out a phone and tablet version of it.
The phone layout grid opens. All the visualizations are on the Layout tab.
2. Drag the visualizations to the grid and resize them.
Maps are a great way to visualize geographical data. SQL Server Mobile Report Publisher provides three
different types of map visualization, and built-in maps for continents and a number of individual countries. You
can also upload and use custom maps.
Types of maps
SQL Server mobile reports offer three different types of maps, useful for different circumstances.
Gradient Heat Maps The field in the Values property is displayed as shades of a single color filling each region
in a map. You can set whether the higher or the lower values are darker in the Value Direction box.
Bubble Map The Values property determines the radius of a bubble visualization displayed over the associated
region. You can set whether all the bubbles are the same or all different colors.
Range Stop Heat Maps shows a value in relation to a target. The Targets property determines the delta
between a Comparison field and the Values field. The resulting delta determines the color that fills the
associated region of the map, from green to yellow to red. You can set whether higher or the lower values are
green in the Value Direction box.
3. For both radiant and range stop heat maps, set whether higher or lower values are better in the Value
Direction box under Visual Proper ties .
4. For bubble maps, under Visual Proper ties set Use Different Colors to On or Off to make the
bubbles all the same color or all different colors.
To display real data in your map, you need to set values for at least two of the map's data properties:
The Keys property connects the data to specific map regions -- states in the USA, for instance, or countries in
Africa.
The Values property is a numeric field in the same table as the selected keys field. These values are
represented differently in different maps. The gradient map uses these values to color each region with a
varying shades based on the range of values. The bubble map base the size of a bubble visualization over
each region on the value property.
For range stop heat maps, you also need to set the Targets property.
Set map data properties
1. Select the Data tab in the upper-left corner.
2. Select Add Data , then either Local Excel or SSRS Ser ver .
Tip : Make sure the data is in a format that works for mobile reports.
8. Select the Save icon in the upper-left corner and Save Locally on your computer or Save to Ser ver .
See also
Custom maps in Reporting Services mobile reports
Create and publish mobile reports with SQL Server Mobile Report Publisher
Custom maps in Reporting Services mobile reports
4/18/2019 • 2 minutes to read • Edit Online
Geographic maps in SQL Server Mobile Report Publisher are defined in a format known as ESRI shapefiles.
Initially designed by a private company, this is now a widespread semi-open format used in a large portion of
GIS applications. In accordance with this format, Mobile Report Publisher requires two files to be provided when
defining a map:
A .SHP file for shape geometries
A .DBF file for metadata
The base files names must match (e.g. canada.shp and canada.dbf). The metadata must include the field NAME
with the value of the corresponding shape's name (key), to be used when populating the map with data.
The two map files together, the SHP and the DBF, can be no bigger than 512 KB. If your map files are too big, use
a tool like https://mapshaper.org/ to reduce their size.
See how to add custom maps to mobile reports.
Technical information
The official specification: https://www.esri.com/library/whitepapers/pdfs/shapefile.pdf
The Wikipedia shapefile article: https://en.wikipedia.org/wiki/Shapefile
Existing shapefiles
Many existing shapefiles can be downloaded from the Web, from sites like Diva-GIS: https://www.diva-
gis.org/Data.
See also
Maps in Reporting Services mobile reports
Create and publish mobile reports with SQL Server Mobile Report Publisher
Add a custom map to a Reporting Services mobile
report
3/17/2020 • 2 minutes to read • Edit Online
2. In Layout view > Visual Proper ties panel > Map , select Custom Map From File .
3. In the Open dialog box, browse to the location of the SHP and DBF files and select both of them.
Connect data to a custom map
When you first add the custom map to your report, Mobile Report Publisher populates it with simulated
geography data.
Displaying real data in your custom map is the same as displaying data in the built-in maps. Follow the steps in
Maps in Reporting Services mobile reports to display your data.
See also
Custom maps in Reporting Services mobile reports
Maps in Reporting Services mobile reports
Create and publish mobile reports with SQL Server Mobile Report Publisher
Security (Report Builder)
3/25/2020 • 6 minutes to read • Edit Online
Report Builder is a report authoring client application that is designed to work with a SQL Server Reporting
Services report server. The report server can be configured to work in native mode as a stand-alone server or in
SharePoint integrated mode to support reports on a SharePoint site.
In Report Builder, you can author reports, shared datasets, and reusable report parts. From a report server or
SharePoint site, you can edit reports and add shared data sources, shared datasets, and shared report parts.
To author, publish, and use reports and report-related items, you should understand how security features relate
to the following areas:
The repor t ser ver or SharePoint site where you publish repor ts These features are managed by
the report server administrator or SharePoint site administrator.
Published repor ts and repor t-related items Report-related items include embedded and shared
data sources and their credentials, shared datasets, parameters, report parts, and report models. Security
features that apply to these items are managed by the report author. The report author must be granted
sufficient permissions by the report server administrator or SharePoint site administrator to publish and
share the items.
External data sources that are used by a repor t These features are managed by the owner of the
external data source.
Repor t models that are based on external data sources These features are managed by the model
designer.
Interactive repor t features such as parameters These features are managed by the report author.
Review the information in this topic to better understand how to use security features to help manage and
secure reports and report-related items.
See Also
Install Report Builder
Report Parameters (Report Builder and Report Designer)
Reporting Services Security and Protection
11/2/2020 • 2 minutes to read • Edit Online
You can use information in this section to learn about the security features of SQL ServerReporting Services.
This section also explains the authorization models and authentication providers supported in Reporting
Services.
Related Tasks
TA SK DESC RIP T IO N S L IN K S
Configure the Transport Layer Security (TLS), previously Configure TLS Connections on a Native Mode Report Server
known as Secure Sockets Layer (SSL), to secure client
connections to the report server.
Extended Protection for Authentication with
Reporting Services
3/5/2021 • 13 minutes to read • Edit Online
Extended Protection is a set of enhancements to recent versions of the Microsoft Windows operating system.
Extended protection enhances how credentials and authentication can be protected by applications. The feature
itself does not directly provide protection against specific attacks such as credential forwarding, but it provides
an infrastructure for applications such as Reporting Services to enforce Extended Protection for Authentication.
The main authentication enhancements that are part of extended protection are service binding and channel
binding. Channel binding uses a channel binding token (CBT), to verify that the channel established between two
end points was not compromised. Service binding uses Service Principal Names (SPN) to validate the intended
destination of authentication tokens. For more background information about extended protection, see
Integrated Windows Authentication with Extended Protection.
SQL Server Reporting Services (SSRS) supports and enforces Extended Protection that has been enabled in the
operating system and configured in Reporting Services. By default, Reporting Services accepts requests that
specify Negotiate or NTLM authentication and could therefore benefit from Extended Protection support in the
operating system and the Reporting Services extended protection features.
IMPORTANT
By default, Windows does not enable Extended Protection. For information about how to enable Extended Protection in
Windows, see Extended Protection for Authentication. Both the operating system and client authentication stack must
support Extended Protection so that authentication succeeds. For older operating systems you may need to install more
than one update for a complete, Extended Protection ready computer. For information on recent developments with
Extended Protection, see updated information with Extended Protection.
IMPORTANT
By default, Reporting Services does not enable Extended Protection. The feature can be enabled by modifying the
rsrepor tser ver.config configuration file or using WMI APIs to update the configuration file. SSRS does not provide a
user interface to modify or view extended protection settings. For more information, see the configuration settings section
in this topic.
Common issues that occur because of changes in extended protection settings or incorrectly configured settings
are not be exposed with obvious error messages or dialog windows. Issues related to extended protection
configuration and compatibility result in authentication failures and errors in the Reporting Services trace logs.
IMPORTANT
Some data access technologies may not support extended protection. A data access technology is used to connect to SQL
Server data sources and to the Reporting Services catalog database. Failure of a data access technology to support
extended protection impacts Reporting Services in the following ways:
The SQL Server that runs the Reporting Services catalog database cannot have extended protection enabled or the
report server will not successfully connect to the catalog database and return authentication errors.
SQL Servers that are used as Reporting Services report data sources cannot have extended protection enabled or tries
by the report server to connect to the report data source will fail and return authentication errors.
The documentation for a data access technology should have information about support for extended protection.
Upgrade
Upgrading a Reporting Services server to SQL Server 2016 adds configuration settings with default
values to the rsrepor tser ver.config file. If the settings were already present, the SQL Server 2016
installation will preserve them in the rsrepor tser ver.config file.
When the configuration settings are added to the rsrepor tser ver.config configuration file, the default
behavior is for the Reporting Services extended protection feature to be off and you must enable the
feature as described in this topic. For more information, see the configuration settings section in this
topic.
The default value for the setting RSWindowsExtendedProtectionLevel is Off .
The default value for the setting RSWindowsExtendedProtectionScenario is Proxy .
Upgrade Advisor does not verify that the operating system or the current installation of Reporting
Services has Extended Protection support enabled.
What Reporting Services extended protection does not cover
The following feature areas and scenarios are not supported by the Reporting Services extended protection
feature:
Authors of Reporting Services custom security extensions must add support for extended protection to
their custom security extension.
Third-party components added to or used by a Reporting Services installation must be updated by the
third-party vendor, to support extended protection. For more information, contact the third-party vendor.
Set
1) Client application RSWindowsExtendedProtectionSc
enario to Any .
2) Report server
3) Proxy
-There is no TLS Channel therefore no
enforcement of Channel Binding is
possible.
3) Proxy
-TLS channel to proxy is available
therefore channel binding to the proxy
can be enforced.
3) Proxy
-TLS channel to proxy is available
therefore channel binding to the proxy
can be enforced.
Gateway
This scenario describes Client applications connecting to a device or software that performs TLS and
authenticates the user. Then the device or software impersonates the user context or a different user context
before it makes a request to the report server.
3) Gateway device
-Channel Binding from client to report
server is not possible because the
gateway impersonates a context and
therefore creates a new NTLM token.
3) Gateway device
-Channel Binding from client to report
server is not possible because the
gateway impersonates a context and
therefore creates a new NTLM token.
Combination
This scenario describes Extranet or Internet environments where the client connects a Proxy. This is in
combination with an intranet environment where a client connects to report server.
1) Client application
Require specifies:
Any Specifies:
Direct Specifies:
<Authentication>
<RSWindowsExtendedProtectionLevel>Allow</RSWindowsExtendedProtectionLevel>
<RSWindowsExtendedProtectionScenario>Proxy</RSWindowsExtendedProtectionLevel>
</Authentication>
ComputerNameDnsFullyQualified The fully qualified DNS name that uniquely identifies the
local computer. This name is a combination of the DNS host
name and the DNS domain name, using the form
HostName.DomainName. If the local computer is a node in a
cluster, the fully qualified DNS name of the cluster virtual
server is used.
ComputerNameDnsHostname The DNS host name of the local computer. If the local
computer is a node in a cluster, the DNS host name of the
cluster virtual server is used.
ComputerNamePhysicalDnsFullyQualified The fully qualified DNS name that uniquely identifies the
computer. If the local computer is a node in a cluster, the
fully qualified DNS name of the local computer, is used not
the name of the cluster virtual server.
ComputerNamePhysicalDnsHostname The DNS host name of the local computer. If the local
computer is a node in a cluster, the DNS host name of the
local computer is used, not the name of the cluster virtual
server.
For more information, see Register a Service Principal Name (SPN) for a Report Server and About URL
Reservations and Registration (Report Server Configuration Manager).
Next steps
Connect to the Database Engine Using Extended Protection
Extended Protection for Authentication Overview
Integrated Windows Authentication with Extended Protection
Microsoft Security Advisory: Extended protection for authentication
Report Server Service Trace Log
RsReportServer.config Configuration File
SetExtendedProtectionSettings Method (WMI MSReportServer_ConfigurationSetting)
More questions? Try asking the Reporting Services forum
Authentication with the Report Server
3/5/2021 • 6 minutes to read • Edit Online
SQL Server Reporting Services (SSRS) offers several configurable options for authenticating users and client
applications against the report server. By default, the report server uses Windows Integrated authentication and
assumes trusted relationships where client and network resources are in the same domain or in a trusted
domain. Depending on your network topology and the needs of your organization, you can customize the
authentication protocol that is used for Windows Integrated authentication, use Basic authentication, or use a
custom forms-based authentication extension that you provide. Each of the authentication types can be turned
on or off individually. You can enable more than one authentication type if you want the report server to accept
requests of multiple types.
All users or applications who request access to report server content or operations must be authenticated
before access is allowed.
Authentication Types
All users or applications who request access to report server content or operations must be authenticated using
the authentication type configured on the report server before access is allowed. The following table describes
the authentication types supported by Reporting Services.
A UT H EN T IC AT IO N T Y P E H T T P A UT H EN T IC AT IO N
NAME L AY ER VA L UE USED B Y DEFA ULT DESC RIP T IO N
A UT H EN T IC AT IO N M ET H O D EXP L A N AT IO N
Single sign-on technologies (SSO) There is no native support for single sign-on technologies in
Reporting Services. If you want to use a single sign-on
technology, you must create a custom authentication
extension.
IMPORTANT
Reporting Services does not validate the settings you specify to determine whether they are correct for your computing
environment. It is possible that default security will not work for your installation, or that you will specify configuration
settings that are not valid for your security infrastructure. For this reason, it is important that you carefully test your
report server deployment in controlled test environment before making it available to your larger organization.
The Report Server Web service and the web portal always use the same authentication type. You cannot
configure different authentication types for the feature areas of the Report Server service. If you have a scale-
out deployment, be sure to duplicate all of your changes on all nodes in the deployment. You cannot configure
different nodes in the same scale-out to use different authentication types.
Background processing does not accept requests from end-users, however it does authenticate all requests for
unattended execution purposes. It always uses Windows Authentication and it authenticates requests using the
Report Server service or the unattended execution account if it is configured.
In This Section
Configure Windows Authentication on the Report Server
Configure Basic Authentication on the Report Server
Configure Custom or Forms Authentication on the Report Server
Related Tasks
TA SK DESC RIP T IO N S L IN K S
Configure the Windows Integrated authentication type. Configure Windows Authentication on the Report Server
Configure the Basic authentication type. Configure Basic Authentication on the Report Server
Configure forms authentication or otherwise a Custom Configure Custom or Forms Authentication on the Report
authentication type. Server
Enable the web portal to handle the custom authentication Configure the Web Portal to Pass Custom Authentication
scenario. Cookies
Next steps
Granting Permissions on a Native Mode Report Server
RsReportServer.config Configuration File
Create and Manage Role Assignments
Specify Credential and Connection Information for Report Data Sources
Implementing a Security Extension
Configure TLS Connections on a Native Mode Report Server
Security Extensions Overview
Authentication in Reporting Services
Authorization in Reporting Services
More questions? Try asking the Reporting Services forum
Configure Windows Authentication on the Report
Server
6/11/2021 • 9 minutes to read • Edit Online
By default, Reporting Services accepts requests that specify Negotiate or NTLM authentication. If your
deployment includes client applications and browsers that use these security providers, you can use the default
values without additional configuration. If you want to use a different security provider for Windows integrated
security (for example, if you want to use Kerberos directly), or if you modified the default values and want to
restore the original settings, you can use the information in this topic to specify authentication settings on the
report server.
To use Windows integrated security, each user who requires access to a report server must have a valid
Windows local or domain user account or be a member of a Windows local or domain group account. You can
include accounts from other domains as long as those domains are trusted. The accounts must have access to
the report server computer, and must be subsequently assigned to roles in order to gain access to specific
report server operations.
The following additional requirements must also be met:
The RSReportServer.config files must have AuthenticationType set to RSWindowsNegotiate ,
RSWindowsKerberos , or RSWindowsNTLM . By default, the RSReportServer.config file includes the
RSWindowsNegotiate setting if the Report Server service account is either NetworkService or
LocalSystem; otherwise, the RSWindowsNTLM setting is used. You can add RSWindowsKerberos if
you have applications that only use Kerberos authentication.
IMPORTANT
Using RSWindowsNegotiate will result in a Kerberos authentication error if you configured the Report Server
service to run under a domain user account and you did not register a Service Principal Name (SPN) for the
account. For more information, see Resolving Kerberos Authentication Errors When Connecting to a report server
in this topic.
ASP.NET must be configured for Windows Authentication. By default, the Web.config files for the Report
Server Web service include the <authentication mode="Windows"> setting. If you change it to
<authentication mode="Forms">, the Windows Authentication for Reporting Services will fail.
The Web.config files for the Report Server Web service must have <identity impersonate= "true" />.
The client application or browser must support Windows integrated security.
The web portal does not need additional configuration.
To change the report server authentication settings, edit the XML elements and values in the
RSReportServer.config file. You can copy and paste the examples in this topic to implement specific
combinations.
The default settings work best if all client and server computers are in the same domain or in a trusted domain
and the report server is deployed for intranet access behind a corporate firewall. Trusted and single domains are
a requirement for passing Windows credentials. Credentials can be passed more than one time if you enable the
Kerberos version 5 protocol for your servers. Otherwise, credentials can be passed only one time before they
expire. For more information about configuring credentials for multiple computer connections, see Specify
Credential and Connection Information for Report Data Sources.
The following instructions are intended for a native mode report server. If the report server is deployed in
SharePoint integrated mode, you must use the default authentication settings that specify Windows integrated
security. The report server uses internal features in the default Windows Authentication extension to support
report servers in SharePoint integrated mode.
<Authentication>
<AuthenticationTypes>
<RSWindowsNegotiate />
</AuthenticationTypes>
<EnableAuthPersistence>true</EnableAuthPersistence>
</Authentication>
The second XML structure is the default configuration when the Report Server service account is not
NetworkService or LocalSystem:
<Authentication>
<AuthenticationTypes>
<RSWindowsNTLM />
</AuthenticationTypes>
<EnableAuthPersistence>true</EnableAuthPersistence>
</Authentication>
The third XML structure specifies all of the security packages that are used in Windows integrated
security:
<AuthenticationTypes>
<RSWindowsNegotiate />
<RSWindowsKerberos />
<RSWindowsNTLM />
</AuthenticationTypes>
The fourth XML structure specifies NTLM only for deployments that do not support Kerberos or to work
around Kerberos authentication errors:
<AuthenticationTypes>
<RSWindowsNTLM />
</AuthenticationTypes>
<RSWindowsExtendedProtectionLevel>Allow</RSWindowsExtendedProtectionLevel>
<RSWindowsExtendedProtectionScenario>Proxy</RSWindowsExtendedProtectionScenario>
Determine if the Reporting Services service account has the sufficient attribute set in Active Directory. Review
the reporting services service trace log file to find the value logged for the UserAccountControl attribute. The
value logged is in decimal form. You need to convert the decimal value to hexadecimal form and then find that
value in the MSDN topic describing User-Account-Control Attribute.
The reporting services service trace log entry will look similar to the following:
One option for converting the value Decimal value to hexadecimal form is to us the Microsoft Windows
Calculator. Windows Calculator supports several modes that show the 'Dec' option and 'Hex' options.
Select the 'Dec' option, paste or type in the decimal value you found in the log file and then select the
'Hex' option.
Then refer to the topic User-Account-Control Attribute to derive the attribute for the service account.
SP N s C o n fi g u r e d i n A c t i v e D i r e c t o r y fo r t h e R e p o r t i n g Se r v i c e s se r v i c e a c c o u n t .
To log the SPNs in the Reporting Services service trace log file, you can enable the Reporting Services Extended
Protection feature temporarily.
Modify the configuration file rsrepor tser ver.config by setting the following:
<RSWindowsExtendedProtectionLevel>Allow</RSWindowsExtendedProtectionLevel>
<RSWindowsExtendedProtectionScenario>Any</RSWindowsExtendedProtectionScenario>
<RSWindowsExtendedProtectionLevel>Off</RSWindowsExtendedProtectionLevel>
<RSWindowsExtendedProtectionScenario>Proxy</RSWindowsExtendedProtectionScenario>
For more information see, Extended Protection for Authentication with Reporting Services
How the Browser Chooses Negotiated Kerberos or Negotiated NTLM
When you use Internet Explorer to connect to the report server, it specifies either Negotiated Kerberos or NTLM
on the authentication header. NTLM is used instead of Kerberos when:
The request is sent to a local report server.
The request is sent to an IP address of the report server computer rather than a host header or server
name.
Firewall software blocks ports used for Kerberos authentication.
The operating system of a particular server does not have Kerberos enabled.
The domain includes older versions of Windows client and server operating systems that do not support
the Kerberos authentication feature built into newer versions of the operating system.
In addition, Internet Explorer might choose either Negotiated Kerberos or NTLM depending on how you
configured URL, LAN, and proxy settings.
R e p o rt Se rv e r UR L
If the URL includes a fully qualified domain name, Internet Explorer selects NTLM. If the URL specifies localhost,
Internet Explorer selects NTLM. If the URL specifies the network name of the computer, Internet Explorer selects
Negotiate, which will succeed or fail depending on whether an SPN exists for the Report Server service account.
L A N a n d P ro x y Se t t i n g s o n t h e C l i e n t
LAN and proxy settings that you set in Internet Explorer can determine whether NTLM is chosen over Kerberos.
However, because LAN and proxy settings vary across organizations, it is not possible to precisely determine the
exact settings that contribute to Kerberos authentication errors. For example, your organization might enforce
proxy settings that transform URLs from intranet URLs to fully-qualified domain name URLs that resolve over
Internet connections. If different authentication providers are used for different types of URLs, you might find
that some connections succeed when you would have expected them to fail.
If you encounter connection errors that you think are due to authentication failures, you can try different
combinations of LAN and proxy settings to isolate the problem. In Internet Explorer, LAN and proxy settings are
on the Local Area Network (L AN) Settings dialog box, which you open by clicking L AN settings on the
Connection tab of Internet Options .
External resources
For additional information regarding Kerberos and report servers, see Deploying a Business Intelligence
Solution Using SharePoint, Reporting Services, and PerformancePoint Monitoring Server with Kerberos.
See Also
Authentication with the Report Server
Granting Permissions on a Native Mode Report Server
RsReportServer.config Configuration File
Configure Basic Authentication on the Report Server
Configure Custom or Forms Authentication on the Report Server
Extended Protection for Authentication with Reporting Services
Configure Basic Authentication on the Report
Server
3/5/2021 • 3 minutes to read • Edit Online
By default, Reporting Services accepts requests that specify Negotiate and NTLM authentication. If your
deployment includes client applications or browsers that use Basic authentication, you must add Basic
authentication to the list of supported types. In addition, if you want to use Report Builder, you must enable
Anonymous access to the Report Builder files.
To configure Basic authentication on the report server, you edit XML elements and values in the
RSReportServer.config file. You can copy and paste the examples in this topic to replace the default values.
Before you enable Basic authentication, verify that your security infrastructure supports it. Under Basic
authentication, the Report Server Web service will pass credentials to the local security authority. If the
credentials specify a local user account, the user is authenticated by the local security authority on the report
server computer and the user will get a security token that is valid for local resources. Credentials for domain
user accounts are forwarded to and authenticated by a domain controller. The resulting ticket is valid for
network resources.
Channel encryption, such as Transport Layer Security (TLS), previously known as Secure Sockets Layer (SSL), is
required if you want to mitigate the risk of having credentials intercepted while in transit to a domain controller
in your network. By itself, Basic authentication transmits the user name in clear text and the password in base-64
encoding. Adding channel encryption makes the packet unreadable. For more information, see Configure TLS
Connections on a Native Mode Report Server.
After you enable Basic authentication, be aware that users cannot select the Windows integrated security
option when setting connection properties to an external data source that provides data to a report. The option
will be grayed out in the data source property pages.
NOTE
The following instructions are intended for a native mode report server. If the report server is deployed in SharePoint
integrated mode, you must use the default authentication settings that specify Windows integrated security. The report
server uses internal features in the default Windows Authentication extension to support report server in SharePoint
integrated mode.
If you are using default values, you can copy the minimum element structure:
<AuthenticationTypes>
<RSWindowsBasic/>
</AuthenticationTypes>
APPLIES TO: ✔
️ SQL Server Reporting Services (2017 and later) ✔
️ Power BI Report Server
<Authentication>
<AuthenticationTypes>
<RSWindowsBasic/>
</AuthenticationTypes>
<EnableAuthPersistence>true</EnableAuthPersistence>
<RSWindowsExtendedProtectionLevel>Off</RSWindowsExtendedProtectionLevel>
<RSWindowsExtendedProtectionScenario>Any</RSWindowsExtendedProtectionScenario>
</Authentication>
RSWindowsBasic Reference
The following elements can be specified when configuring Basic authentication.
See Also
Application Domains for Report Server Applications
Reporting Services Security and Protection
Configure Custom or Forms Authentication on the
Report Server
3/5/2021 • 2 minutes to read • Edit Online
Reporting Services provides an extensible architecture that allows you to plug in custom or forms-based
authentication modules. You might consider implementing a custom authentication extension if deployment
requirements do not include Windows integrated security or Basic authentication. The most common scenario
for using custom authentication is to support Internet or extranet access to a Web application. Replacing the
default Windows Authentication extension with a custom authentication extension gives you more control over
how external users are granted access to the report server.
In practice, deploying a custom authentication extension requires multiple steps that include copying assemblies
and application files, modifying configuration files, and testing. This topic focuses on just the authentication
settings that you specify in the configuration files.
NOTE
Creating a custom authentication extension requires custom code and expertise in ASP.NET security. If you do not want to
create a custom authentication extension, you can use Microsoft Active Directory groups and accounts, but you should
greatly reduce the scope of a report server deployment. For more information about custom authentication, see
Implementing a Security Extension.
Additionally, if you want to use Forms authentication or a custom authentication extension in a SQL Server
Reporting Services environment that is integrated with a SharePoint product, you must configure the SharePoint
site to use the authentication method that you choose. For more information about configuring authentication
in SharePoint, see Authentication Samples on Microsoft Developer Network (MSDN).
To configure a report server to use Custom authentication
1. Open RSReportServer.config in a text editor.
2. Find <Authentication >.
3. Copy the following XML structure:
<Authentication>
<AuthenticationTypes>
<Custom />
</AuthenticationTypes>
<EnableAuthPersistence>true</EnableAuthPersistence>
</Authentication>
9. Add the PassThroughCookies element structure to the configuration file. For more information, see
Configure the Web Portal to Pass Custom Authentication Cookies
10. Save the file.
11. If you configured a scale-out deployment, repeat all of the previous steps for other report servers in the
deployment.
12. Restart the report server to clear any sessions that are currently open.
See Also
Implementing a Security Extension
Reporting Services Custom Security Sample (GitHub)
Authentication with the Report Server
RsReportServer.config Configuration File
Configure Basic Authentication on the Report Server
Configure Windows Authentication on the Report Server
More questions? Try the Reporting Services forum
Configure the Web Portal to Pass Custom
Authentication Cookies
11/2/2020 • 2 minutes to read • Edit Online
If you are using a custom authentication extension, you should configure the web portal to transmit custom
authentication cookies. Otherwise, the web portal will only transmit cookies through HTTP requests specific to
the report server. If you want to transmit additional cookies, you must modify the RSReportServer.Config file.
<UI>
<CustomAuthenticationUI>
...
<PassThroughCookies>
<PassThroughCookie>cookiename1</PassThroughCookie>
<PassThroughCookie>cookiename2</PassThroughCookie>
</PassThroughCookies>
</CustomAuthenticationUI>
...
</UI>
See Also
Authentication with the Report Server
RsReportServer.config Configuration File
Security Extensions Overview
Configure and Administer a Report Server (SSRS Native Mode)
More questions? Try the Reporting Services forum
Roles and Permissions (Reporting Services)
11/2/2020 • 2 minutes to read • Edit Online
Reporting Services provides an authentication subsystem and role-based authorization model. Authentication
and authorization models vary depending on whether the report server runs in native mode or SharePoint
mode. If the report server is part of a SharePoint deployment, SharePoint permissions determine who has
access to the report server.
In This Section
Granting Permissions on a Native Mode Report Server
Describes the role-based authorization model that provides access to content and operations.
Granting Permissions on Report Server Items on a SharePoint Site
Explains how SharePoint groups, permission levels, and permissions are used to control access to a report
server.
See Also
Authentication with the Report Server
Granting Permissions on a Native Mode Report Server
Grant user access to a report server
11/2/2020 • 4 minutes to read • Edit Online
3. Select Security .
4. Select Add group or user .
5. In Group or user , enter a Windows domain user or group account in this format: <domain>\
<account>.
NOTE
If you are using forms authentication or custom security, specify the user or group account in the format that is
correct for your deployment.
NOTE
If an item currently inherits security from a parent item, select Customize security in the toolbar to change the
security settings. Then select Add group or user .
6. In Group or user , enter a Windows domain user or group account in this format: <domain>\
<account>. If you are using forms authentication or custom security, specify the user or group account in
the format that is correct for your deployment.
7. Select one or more role definitions that describe how the user or group should access the item, and then
select OK .
8. Repeat to create assignments for additional users or groups.
Next steps
Create and Manage Role Assignments
Role Assignments
Role Definitions
More questions? Try asking the Reporting Services forum
Grant permissions on a native mode report server
11/2/2020 • 3 minutes to read • Edit Online
SQL Server Reporting Services uses role-based authorization and an authentication subsystem to determine
who can perform operations and access items on a report server. Role-based authorization categorizes into
roles the set of actions that a user or group can perform. Authentication is based on built-in Windows
Authentication or a custom authentication module that you provide. You can use predefined or custom roles
with either authentication type.
NOTE
If you configured a report server to run in SharePoint integrated mode, you must set permissions on the SharePoint site
to grant access to report server items. For more information, see Grant permissions on report server items on a
SharePoint site.
Reporting Services integration with SharePoint is no longer available after SQL Server 2016.
TO O L TA SK S
Management Studio: Used to view, modify, create, and delete Create, delete, or modify a role (Management Studio)
role definitions
The web portal: Used to assign users and groups to roles Grant user access to a report server
See also
Predefined roles
Grant permissions on report server items on a SharePoint site
Authentication with the report server
Create and manage role assignments
Reporting Services security and protection
Report server content management (SSRS native mode)
Securable Items
11/2/2020 • 2 minutes to read • Edit Online
Reporting Services uses role-based security to control access to items that are stored on a report server. When
you grant a user access to a report server, you typically do so by creating a pair of role assignments:
At the site level
On Home, which is the root node of the report server folder hierarchy
Security is inherited within the report server folder hierarchy. Creating role assignments at the site level and on
the Home folder sets permission inheritance that extends to all items and operations on a report server.
You can override permission inheritance by defining security for individual items. Items that you can secure
individually include:
Folders
Reports
Report models
Resources
Shared data sources
Shared datasets
Other constructs, such as schedules and subscriptions, are not explicitly secured. Schedules and subscriptions
operate within the security of a report.
Item Descriptions
The following table lists securable items and describes their characteristics.
IT EM C H A RA C T ERIST IC S
Folders Folder security applies to the folder itself and the items it
contains. The Home folder is the root node of the folder
hierarchy. Security that you set for this folder establishes the
initial security settings for all subordinate folders, reports,
resources, and shared data sources in the folder hierarchy.
For more information, see Secure Folders.
Report models You can specify role assignment on all or part of a report
model. Because report models can be quite extensive, you
might want to secure the model items that map to
confidential data.
Shared data sources Shared data sources can be secured to limit access to the
item and its property pages. For more information, see
Secure Shared Data Source Items.
See Also
Granting Permissions on a Native Mode Report Server
Create, Delete, or Modify a Role (Management Studio)
Grant User Access to a Report Server (Report Manager)
Modify or Delete a Role Assignment (Report Manager)
Tasks and Permissions
11/2/2020 • 2 minutes to read • Edit Online
In Reporting Services, tasks are actions that a user or administrator can perform. Tasks are predefined. You
cannot create custom tasks or modify the ones provided either programmatically or through a tool. There are
twenty-five tasks in all. These tasks comprise the entire set of operations that are available in role-based security.
Some examples of tasks include "View reports," "Manage reports," and "Manage report server properties."
Each task consists of a set of permissions, which are also predefined. For example, the "Manage folders" task
contains permissions to create and delete folders and view and update folder properties. Permissions for each
task are documented to provide a more exact description of each task. It is not possible to interact with
permissions directly or to specify them in role assignments. Users are granted permissions indirectly through
the tasks that are included in role definitions.
Tasks can be performed only if they are part of a role and that role is included in a role assignment. Thus, if the
View Models task is not included in a role, or that role is not included in a role assignment, users cannot view
report models. The following diagram shows how permissions are combined into tasks, and how tasks are
combined into roles that can be used for specific role assignments.
System-Level Tasks Actions that are performed at the system level, such as
managing jobs or shared schedules that can be used with
many items. System-level tasks are scoped outside of the
report server folder namespace.
See Also
Role Definitions
Predefined Roles
Granting Permissions on a Native Mode Report Server
Tasks and Permissions - Item-Level Tasks
3/5/2021 • 2 minutes to read • Edit Online
APPLIES TO: ✔
️ SQL Server 2016 Reporting Services and later ✔
️ Power BI Report Server
An item-level task is a collection of permissions that relate to a report, folder, report model, resource, or shared
data source. Reporting Services also includes system-level tasks that apply to the report server site as a whole.
For more information, see System-Level Tasks. For more information about tasks and permissions in general,
see Tasks and Permissions.
NOTE
If you are working with these tasks programmatically, you must use methods that support item-level tasks. For more
information, see ListTasks and ListRoles.
Delete Comments
Read Comments
Update Comments
Read Properties
Read Properties
Read Properties
TA SK A P P L IES TO IT EM P ERM ISSIO N S
Read Properties
Read Properties
Create Subscription
Delete Subscription
Read Subscription
Update Subscription
Read Content
Update Policy
Update Parameters
Update Policy
Update Parameters
Update Policy
Read Properties
Read Properties
Set security for individual items Reports, Resources, Data sources, Read Security Policies Update Security
Shared Datasets, Folders Policies
Read Properties
Read Content
Read Properties
Read Properties
Read Properties
Read Properties
See Also
Granting Permissions on a Native Mode Report Server
Tasks and Permissions - System-Level Tasks
11/2/2020 • 2 minutes to read • Edit Online
A system-level task is a collection of permissions that relate to operations that apply to the report server site as
a whole. Reporting Services also includes item-level tasks that apply to specific items. For more information, see
Item-Level Tasks. For more information about tasks and permissions in general, see Tasks and Permissions.
NOTE
If you are working with these tasks programmatically, you must use methods that support system-level tasks. For more
information, see ListTasks and ListRoles.
TA SK P ERM ISSIO N S
Execute report definitions Execute Report Definitions (the permission and task name
are the same)
Delete Roles
A role assignment is a security policy that determines a user's or group's permissions. Permissions decide
whether the user or group can access or modify a specific report server item, or do a task. A role assignment
consists of a single user or group account name and one or more role definitions.
Role assignments are scoped to the item level or system level.
An item-level role assignment is created for a specific item or branch of the folder hierarchy on the report
server. You navigate to a specific folder or item to create a role assignment for it.
System-level role assignments give selected users the capability to do tasks that affect the report server
site as a whole. These tasks include:
Creating shared schedules
Managing jobs
Processing reports
Setting properties
System-level security doesn't convey access to items in the report server folder hierarchy.
See Also
Grant User Access to a Report Server
Role Assignments
Role Definitions
Predefined Roles
Granting Permissions on a Native Mode Report Server
Secure Folders
11/2/2020 • 2 minutes to read • Edit Online
Folder security is the foundation for securing all content in a report server. Because security is inherited
throughout the folder structure, you can designate large or small sections of the folder hierarchy to allow for
certain kinds of access.
High-security folders can be used to store confidential reports or as staging areas; for example, you can have a
folder that you use to test reports before moving them to a final location. To control access to this area, you can
define one role assignment that allows only report authors to add and delete items, and a second role
assignment that allows testers to run reports but not to add or remove items. Because the role assignments are
defined explicitly for testers and report authors, no other users (except for local system administrators) can
access the folder.
Low-security folders can be used to store reports that you want to be easily accessible.
Folder security forms the basis of item-level security, starting with the root node of the report server folder
hierarchy, the Home folder. Because security is inherited, it is advisable to set a fairly restrictive security policy on
the Home folder. Using the Browser role in Home folder role assignments does exactly that by providing view-
only access.
View folders View the folder hierarchy and read-only properties that
indicate when the folder was created and modified.
Manage reports Add reports from the file system to a folder and publish
reports from Report Designer to the report server.
Manage data sources Add new shared data source items to a folder and change
existing shared data sources.
Set security on items Create and modify role assignments that control access to
the folder. This task must be used with either "View folders"
or "Manage folders." If it is not, it will have no effect because
the user will not be able to select the item.
See Also
Secure Reports and Resources
Secure Shared Data Source Items
Granting Permissions on a Native Mode Report Server
Secure Reports and Resources
11/2/2020 • 6 minutes to read • Edit Online
You can set security for individual reports and resources to control the degree of access that users have to these
items. By default, only users who are members of the Administrators built-in group can run reports, view
resources, modify properties, and delete the items. All other users must have role assignments created for them
that allow access to a report or resource.
NOTE
In previous releases of the documentation, an example of creating a dynamic query as an expression was included. This
type of query creates a vulnerability to SQL injection attacks and therefore is not recommended.
See Also
Create and Manage Role Assignments
Granting Permissions on a Native Mode Report Server
Secure Shared Data Source Items
Store Credentials in a Reporting Services Data Source
Secure Shared Data Source Items
11/2/2020 • 2 minutes to read • Edit Online
You can set security on a shared data source item to enable or disable access to it.
A user who has minimal access to a shared data source (for example, the access granted through the Browser
role) can view the list of reports that use the item, provided the user is also authorized to view the reports
themselves.
A user who has additional access (such as that granted through the Content Manager role) can view and set
properties for the shared data source.
To set security, you create a role assignment that specifies which user or group account has access to the shared
data source. Users who have access to a shared data source item can change its name, description, connection
string, or credential information.
View data sources View the shared data source item in the folder hierarchy.
Without this task, the item is not visible to users and they
may not be aware that the data source is available.
Manage data sources View properties that specify the name, description, and
connection information. This task is also used to display a
shared data source item in the folder hierarchy. If you
choose this task, you can omit the "View data sources" task.
Set security on items Create and modify role assignments that control access to
the shared data source. This task must be used with either
"View data source" or "Manage data sources" tasks. If it is
not, it has no effect because the user cannot select the item.
See Also
Manage Report Data Sources
Secure Folders
Secure Reports and Resources
Granting Permissions on a Native Mode Report Server
Store Credentials in a Reporting Services Data Source
Secure Shared Dataset Items
11/2/2020 • 3 minutes to read • Edit Online
On a report server, shared dataset items can be used by multiple reports. You can secure shared datasets to
control the degree of access that users have. By default, only users who are members of the Administrators
built-in group can view shared datasets, modify properties, enable caching, create cache refresh plans, and
delete the items. All other users must have role assignments created for them that allow access to a shared
dataset.
To set security, create a role assignment that specifies which user or group account has access to the shared
dataset.
My Reports
Manage reports View properties that specify the name, Content Manager
description, and connection
information. This task is also used to Publisher
display a shared dataset item in the
folder hierarchy. If you choose this My Reports
task, you can omit the "View reports"
task.
Report Builder
Set security on items Create and modify role assignments Content Manager
that control access to the shared
dataset. This task must be used with
either "View reports" or "Manage
reports" tasks. If it is not, it has no
effect because the user cannot select
the item.
See Also
Manage Shared Datasets
Secure Folders
Secure Reports and Resources
Granting Permissions on a Native Mode Report Server
Granting Permissions on a Native Mode Report Server
Secure My Reports
11/2/2020 • 2 minutes to read • Edit Online
The My Reports feature provides a user-managed workspace for working with reports. In order to serve its
intended purpose, the My Reports folder requires less restrictive permissions than other folders that are
available for general use. Users who have permissions to only view and run reports in other folders might
require an expanded set of permissions to manage their My Reports folders and content that they own.
Reporting Services provides a specialized role assignment and role definition for this purpose.
NOTE
My Reports is available only in Report Manager. It is not available in SQL ServerManagement Studio.
See Also
Secure Reports and Resources
Secure Folders
Granting Permissions on a Native Mode Report Server
Create the RSExecRole
11/2/2020 • 6 minutes to read • Edit Online
Reporting Services uses a predefined database role called RSExecRole to grant report server permissions to
the report server database. The RSExecRole role is created automatically with the report server database. As a
rule, you should never modify it or assign other users to the role. However, when you move a report server
database to a new or different SQL Server Database Engine, you must re-create the role in the Master and
MSDB system databases.
Using the following instructions, you will perform the following steps:
Create and provision the RSExecRole in the Master system database.
Create and provision the RSExecRole in the MSDB system database.
NOTE
The instructions in this topic are intended for users who do not want to run a script or write WMI code to provision the
report server database. If you manage a large deployment and will be moving databases routinely, you should write a
script to automate these steps. For more information, see Access the Reporting Services WMI Provider.
Next steps
Moving the Report Server Databases to Another Computer (SSRS Native Mode)
Create a Native Mode Report Server Database (Report Server Configuration Manager)
Report Server Configuration Manager (Native Mode)
Back Up and Restore Reporting Services Encryption Keys
More questions? Try asking the Reporting Services forum
Role Definitions
11/2/2020 • 3 minutes to read • Edit Online
In Reporting Services, a role definition is a named collection of tasks that define the operations available on a
report server. Role definitions provide the rules used by the report server to enforce security. When a user
attempts to perform a task, such as publishing a report, the report server checks the user's role assignment to
determine whether the task is included in their role definition. If the task is included in the role definition, the
request is submitted.
Predefined Roles
Reporting Services includes predefined roles that correspond to different levels of user interaction. The
following list contains the predefined roles you can use:
Content Manager, Publisher, Browser, Report Builder, and My Reports are item-level role definitions that
you can use when creating role assignments for accessing report server content.
System Administrator and System User are system-level role definitions that you can use to authorize
access to site operations.
For more information, see Predefined Roles.
See Also
Tasks and Permissions
Granting Permissions on a Native Mode Report Server
Create, Delete, or Modify a Role (Management Studio)
Grant User Access to a Report Server (Report Manager)
Modify or Delete a Role Assignment (Report Manager)
Set Permissions for Report Server Items on a SharePoint Site (Reporting Services in SharePoint Integrated
Mode)
Role Definitions - Create, Delete, or Modify
11/2/2020 • 2 minutes to read • Edit Online
Reporting Services provides predefined roles that define levels of access to the report server. Each user or group
who requires access to the report server, is assigned a role that defines the allowed tasks. Roles are defined for
the report server as a whole. You must be consistent in how a role is defined and used throughout all areas of
the report server.
To create, modify, or delete roles, you can use SQL Server Management Studio. You can only delete roles that
aren't in use.
To assign users and groups to the roles that you create, use the SSRS web portal. For more information, see
Grant User Access to a Report Server.
NOTE
If the report server is configured for SharePoint integrated mode, and you connected to the SharePoint site that the
report server is integrated with, you can view and modify the permission levels that control access to report server
content and operations.
See also
Connect to a Report Server in Management Studio
Create and Manage Role Assignments
Reporting Services in SQL Server Management Studio (SSRS)
Role definitions - predefined roles
3/5/2021 • 16 minutes to read • Edit Online
APPLIES TO: ✔
️ SQL Server 2016 Reporting Services and later ✔
️ Power BI Report Server
Reporting Services installs with predefined roles that you can use to grant access to report server operations.
Each predefined role describes a collection of related tasks. You can assign groups and user accounts to
predefined roles to provide immediate access to report server operations.
TA SK DESC RIP T IO N
Create linked reports Create linked reports that are based on a non-linked report.
Manage all subscriptions View, modify, and delete any subscription for reports and
linked reports, regardless of who owns the subscription. This
task supports the creation of data-driven subscriptions. It
also supports the editing and execution of scheduled refresh
for Power BI (.pbix) files in Power BI Report Server.
Manage data sources Create and delete shared data source items, view, and
modify data source properties and content.
TA SK DESC RIP T IO N
Manage folders Create, view, and delete folders, and view and modify folder
properties.
Manage individual subscriptions Create, view, modify, and delete user-owned subscriptions to
reports and linked reports. This task also supports the
editing and execution of scheduled refresh for Power BI
(.pbix) files in Power BI Report Server.
Manage models Create, view, and delete models, and view and modify model
properties.
Manage report history Create, view, and delete report history, view report history
properties, and view, and modify settings that determine
snapshot history limits and how caching works.
Manage reports Add and delete reports, modify report parameters, view and
modify report properties, view and modify data sources that
provide content to the report, view and modify report
definitions, and set security policies at the report level.
Manage resources Create, modify, and delete resources, and view and modify
resource properties.
Set security for individual items Define security policies for reports, linked reports, folders,
resources, and data sources. For more information, see
Securable Items.
View data sources View shared data source items in the folder hierarchy.
View folders View folder contents and navigate through the folder
hierarchy.
View models View models in the folder hierarchy, use models as data
sources for a report, and run queries against the model to
retrieve data.
Publisher role
The Publisher role is a built-in role definition that includes tasks that enable users to add content to a report
server. This role is predefined for your convenience. It is not used until you create role assignments that include
it. This role is intended for users who author reports or models in Report Designer or Model Designer and then
publish those items to a report server.
Cau t i on
Permission to publish items to a report server should be granted only to trusted users. The Publisher role grants
wide-ranging permissions that allow users to upload any type of file to a report server. If an uploaded report or
HTML file contains malicious script, any user who clicks on the report or HTML document will run the script
under his or her credentials.
Report definitions can include script and other elements that are vulnerable to HTML injection attacks when the
report is rendered in HTML at run time. If a published report contains malicious script, any user who runs that
report will accidentally cause the script to run when the report is opened. If the user has elevated permissions,
the script will run with those permissions.
To reduce the risk of users accidentally running malicious scripts, limit the number of users who have
permission to publish content, and make sure that users only publish documents and reports that come from
trusted sources. If you are not sure whether a report definition is safe to publish, you should open the .rdl file in
a text editor and search for script tags. Malicious script can be hidden in expressions and URLs (for example, a
URL in a navigation action).
Publisher tasks
The following table lists the tasks that are included in the Publisher role:
TA SK DESC RIP T IO N
Create linked reports Create linked reports and publish them to a report server
folder.
Manage data sources Create and delete shared data source items, view and modify
data source properties and content.
Manage folders Create, view, and delete folders; view and modify folder
properties.
Manage models Create, view, and delete report models; view and modify
report model properties.
Manage reports Add and delete reports, modify report parameters, view and
modify report properties, view and modify data sources that
provide content to the report, view, and modify report
definitions.
Manage resources Create, modify, and delete resources; view and modify
resource properties.
TA SK DESC RIP T IO N
Manage individual subscriptions Create, view, modify, and delete user-owned subscriptions to
reports and linked reports, and create schedules in support
of those subscriptions.
View folders View folder contents and navigate the folder hierarchy.
View models View models in the folder hierarchy, use models as data
sources for a report, and run queries against the model to
retrieve data.
Manage individual subscriptions Create, view, modify, and delete user-owned subscriptions to
reports and linked reports, and create schedules in support
of those subscriptions.
View folders View folder contents and navigate the folder hierarchy.
View models View models in the folder hierarchy, use models as data
sources for a report, and run queries against the model to
retrieve data.
My Reports role
The My Repor ts role is a predefined role that includes a set of tasks that are useful for users of the My Reports
feature. This role definition includes tasks that grant administrative permissions to users over the My Reports
folder that they own.
Although you can choose another role to use with the My Reports feature, it is recommended that you choose
one that is used exclusively for My Reports security. For more information, see Secure My Reports.
My Reports tasks
The following table lists tasks that are included in the My Repor ts role:
TA SK DESC RIP T IO N
Create linked reports Create linked reports that are based on reports that are
stored in the user's My Reports folder.
Manage data sources Create and delete shared data source items, view, and
modify data source properties and content.
TA SK DESC RIP T IO N
Manage folders Create, view, and delete folders, and view and modify folder
properties.
Manage individual subscriptions Create, view, modify, and delete subscriptions for reports
and linked reports.
Manage report history Create, view, and delete report history, view report history
properties, and view, and modify settings that determine
snapshot history limits and how caching works.
Manage reports Add and delete reports, modify report parameters, view, and
modify report properties, view and modify data sources that
provide content to the report, view and modify report
definitions, and set security policies at the report level.
Manage resources Create, modify, and delete resources, and view. and modify
resource properties.
View data sources View shared data source items in the folder hierarchy.
View reports Run reports that are stored in the user's My Reports folder
and view report properties.
Execute report definitions Start execution for report definition without publishing it to
a report server.
Manage jobs View and cancel jobs that are running. For more information,
see Manage a Running Process.
Manage report server properties View and modify properties that apply to the report server
and to items that the report server manages.
Manage report server security View and modify system-wide role assignments
Manage roles Create, view, and modify, and delete role definitions.
Manage shared schedules Create, view, modify, and delete shared schedules that are
used to run or refresh reports.
View report server properties View properties that apply to the report server, such as the
application name, whether the My Reports setting is
enabled, and report history defaults.
If you remove this task from the System User role, the Site
Settings page is not available. Also, the application title is not
displayed at the top of each page. By default, the title for the
web portal is "SQL Server Reporting Services."
View shared schedules View shared schedules that are used to run reports or
refresh a report.
If you remove this task from the System User role, users
cannot select shared schedules to use with subscriptions and
other scheduled operations.
The System User role can be used to supplement default security. You can include the role in new role
assignments that extend report server access to report users. For more information, see Granting Permissions
on a Native Mode Report Server.
See also
Create, Delete, or Modify a Role (Management Studio)
Grant User Access to a Report Server
Modify or Delete a Role Assignment (SSRS web portal)
Granting Permissions on a Native Mode Report Server
Tasks and Permissions
Role Assignments
11/2/2020 • 2 minutes to read • Edit Online
In Reporting Services, role assignments determine access to stored items and to the report server itself. A role
assignment has the following parts:
A securable item for which you want to control access. Examples of securable items include folders,
reports, and resources.
A user or group account that can be authenticated by Windows security or another authentication
mechanism.
Role definitions define a set of permissible tasks and include:
Browser
Content Manager
My Repor ts
Publisher
Repor t Builder
System Administrator
System User
Role assignments are inherited within the folder hierarchy and are automatically inherited by contained:
Repor ts
Shared data sources
Resources
Subfolders
You can override inherited security by defining role assignments for individual items. All parts of the folder
hierarchy must be secured by at least one role assignment. You can't create an unsecured item or manipulate
settings in a way that produces an unsecured item.
The following diagram illustrates a role assignment that maps a group and a specific user to the Publisher role
for Folder B.
Role assignments diagram
See Also
Create, Delete, or Modify a Role (Management Studio)
Modify or Delete a Role Assignment ( SSRS web portal )
Set Permissions for Report Server Items on a SharePoint Site (Reporting Services in SharePoint Integrated
Mode)
Granting Permissions on a Native Mode Report Server
Role Assignments - Modify or Delete
11/2/2020 • 2 minutes to read • Edit Online
A role assignment maps a group or user account to a predefined role that defines the tasks that can be done. It
determines the types of tasks that a user does to a folder, report, model, or other content type. To create, modify,
or delete role assignments, you use the SSRS web portal. After you create a role assignment for a particular user
or group, you can modify it later by selecting a different role. If you want to revoke permissions to a report
server, you can delete a role assignment from the report server.
Depending on your objective, alternative approaches might be more appropriate. Examples include customizing
or creating a new role definition, or modifying the membership of a group account in Active Directory.
For example, suppose you have a group of users who need to manage their content, but shouldn't have the full
set of permissions associated with Content Manager. You could create a new role definition called Department
Content Manager. It could include all of the tasks in Content Manager, except Set security policies for items .
Similarly, if you are a system or network administrator, it is probably easier for you to manage Active Directory
group accounts than role assignments in the web portal. You can reduce the overhead of managing role
assignments by creating a single role assignment for a group account. Then you can modify the group
membership when users no longer require access to reports.
If you determine that modifying or deleting a role assignment is the best approach, remember to check for both
system role and item role assignments. Each type of role assignment is configured through different pages in
the web portal.
See also
Create and Manage Role Assignments
Role Assignments
Granting Permissions on Report Server Items on a
SharePoint Site
11/2/2020 • 5 minutes to read • Edit Online
Microsoft SharePoint Foundation 2010 provides built-in security features that you can use to grant access to
report server items that you access from SharePoint sites and libraries. If you already assigned permissions to
users, those same users will have access to report server items and operations immediately after you configure
the integration settings between SharePoint Foundation 2010 and a report server. You can use existing
permissions to upload report definitions and other documents, view reports, create subscriptions, and manage
items.
If you have not assigned permissions or if you are not familiar with the security features in SharePoint
Foundation 2010, follow these guidelines:
1. In the product documentation for SharePoint Foundation 2010, read about the default security settings
for the standard SharePoint groups so that you know how to manage permissions and user access.
2. Review the list of permissions that specifically affect access to report server items and operations. For
more information, see Use Built-in Security in Windows SharePoint Services for Report Server Items.
3. Assign user and group accounts to predefined SharePoint groups.
4. Optionally, create new permission levels and groups, or modify existing ones to vary server access
permissions as specific needs arise.
To use SharePoint Foundation 2010 security features with report server items, you must have a report server
that runs in SharePoint integrated mode.
In This Section
Use Built-in Security in Windows SharePoint Services for Report Server Items
Explains how the predefined SharePoint groups and permission levels can be used to access report server items.
SharePoint Site and List Permission Reference for Report Server Items
Provides a reference of all SharePoint product permissions that can be used to access report server operations.
Set Permissions for Report Server Operations in a SharePoint Web Application
Describes permission requirements for ad hoc reporting and suggests approaches for making features
available.
Compare Roles and Tasks in Reporting Services to SharePoint Groups and Permissions
Provides a brief summary of how the SharePoint groups compare with predefined role definitions in Reporting
Services.
Set Permissions for Report Server Items on a SharePoint Site (Reporting Services in SharePoint Integrated
Mode)
Provides instructions for creating new SharePoint groups that have permission to start Report Builder and set
model item security. This topic also contains general guidelines about setting custom permissions for any report
server item or operation.
See Also
Reporting Services Security and Protection
Use Built-in Security in Windows SharePoint
Services for Report Server Items
11/2/2020 • 4 minutes to read • Edit Online
SharePoint provides built-in security features that you can use to access report server items from SharePoint
sites and libraries. If you already assigned site and list permissions to users, those same users will have access to
report server items and operations immediately after you configure the integration settings between SharePoint
and a report server.
Securable Items
Permissions that are defined on the site or library can be used to grant access to report server items. However, if
you want to secure individual items, you can set permissions on the following content types:
F IL E T Y P E DESC RIP T IO N
.rdl A report definition file that defines the report layout and the
commands used to retrieve data. A report definition uses
data source connection information to retrieve data when
the report is processed. If the report definition is an ad hoc
report that was created in Report Builder, the report is
paired with a report model (.smdl) file that sets the scope on
data exploration in the rendered report.
.smdl A report model file that describes data structures and how
they relate. It is used to create and run Report Builder
reports.
.rsc A report part file that defines the layout and structure of a
report item or data region. It is used to publish the report
part to a server so the item can be re-used by other report
authors from the Report Part Gallery.
Schedules, subscriptions, and report history are not securable items. You can set permissions on the site or
library that determine whether a user can create or use schedules, subscriptions, and report history, but you
cannot secure those items directly.
To secure individual items, select the item in the library, click the down arrow, and select Manage Permissions .
In the Actions menu, select Edit Permissions .
Using built-in groups and permission levels to access report server
items
When you use permission inheritance and standard SharePoint groups, you can access most report server
operations immediately after you configure integration settings on the report server and SharePoint instances.
SharePoint provides standard groups that map to predefined permission levels that determine how you access
documents and pages on a SharePoint site. If you are using standard groups and default permission levels, and
your sites are configured to inherit permissions, you can expect to work with Reporting Services features in the
following ways:
Owners Full Control Owners have full Set permissions that control
permissions to create, access to all report server
manage, and secure report items stored in libraries
server items and throughout the site. Set
operations. permissions within a report
model (also referred to as
model item security).
Customize a Report Viewer
Web Part. Add reports and
other items to libraries. Edit
item properties for reports
and other documents.
Delete reports and other
items. View reports,
including reports that use
report models for data
exploration. Set parameters
on reports. Set processing
options on a report.
Generate report models.
Create reports in Report
Builder. Create and manage
shared data sources. Create,
change, and delete
subscriptions that are
owned by any user. Create
and manage shared
schedules used throughout
the site. Create and manage
versions of a document,
including report history.
Download the source file for
a report definition or a
report model. Replace a
report definition, report
model, shared data source,
or resource (preserving
item properties and
permissions).
SH A REP O IN T GRO UP S P ERM ISSIO N L EVEL SUM M A RY REP O RT SERVER A C C ESS
Members Contribute Members can create new Add reports and other
items and publish items items to libraries. Edit item
reports and models from properties for reports and
design tools to a SharePoint other documents. Delete
library. reports and other items.
View reports, including
reports that use report
models for data exploration.
View past versions of a
document, including report
history snapshots (requires
that a user also has
permission to open the
report for which report
history was created). Set
parameters on reports. Set
processing options on a
report. Generate report
models. Create reports in
Report Builder. Create and
manage shared data
sources. Create, change,
and delete subscriptions
that are owned by the user.
Use shared schedules with a
subscription. Create and
manage versions of a
document, including report
history. Download the
source file for a report
definition or a report
model. Replace a report
definition, report model,
shared data source, or
resource (preserving item
properties and
permissions).
Visitors and Viewers Read Visitors can view reports View reports, including
reports that use report
models for data exploration.
If you are not using the built-in groups and permission levels, you must include specific permissions in order to
access Reporting Services features. For more information, see Set Permissions for Report Server Operations in a
SharePoint Web Application.
See Also
Granting Permissions on Report Server Items on a SharePoint Site
Compare Roles and Tasks in Reporting Services to SharePoint Groups and Permissions
Set Permissions for Report Server Operations in a SharePoint Web Application
Granting Permissions on Report Server Items on a SharePoint Site
Reporting Services Roles-Tasks vs. SharePoint
Groups-Permissions
11/2/2020 • 5 minutes to read • Edit Online
This topic compares role and task based authorization features in Reporting Services native mode to the
security features in SharePoint products. This topic compares terminology and characteristics of roles, tasks,
SharePoint groups, permission levels, and permissions.
Applies to:
Reporting Services SharePoint mode
SharePoint 2010 and SharePoint 2013
Reporting Services Native mode
In this topic:
Compare Permission Tools and Terminology
Compare Native mode Roles and SharePoint Groups
Comparing Native Mode Tasks and SharePoint Permissions
Role: For example "Content Manager". Group: For example the default "Viewers" group.
--- Permission level group: For example "View Only" for the
"Viewers" group.
Tasks: for example "Manage Reports". Permissions: For example, within the "View Only" group
there are list related permissions of view items, view
versions, and view application pages.
For more information on SharePoint permissions, see Permission levels and permissions and Determine
permission levels and groups in SharePoint 2013.
Content Manager Use the Owners group to grant full control over managing
report server items on a SharePoint site. The Owners group
Full permissions to all items and item-level operations, has Full Control permissions, which enable group members
including permissions to set security. to make changes to the site content, pages, or functionality.
Full Control access should be limited to site administrators
only.
System User and System Administrator These roles are not necessary for a report server that runs in
SharePoint mode. System User and System
Administrator correspond to SharePoint farm or Web
application level permissions. The report server does not
provide any functionality that requires authorization at that
level.
Manage data sources Item Add items, Edit Items, Delete Items,
View Items.
Manage report server properties System None (not applicable). The report
server does not control whether a user
has permission to view integration
settings in Central Administration.
Manage report server security System None (not applicable). The report
server does not use system-level role
assignments on a server that runs in
SharePoint integrated mode.
View report server properties System None (not applicable). The report
server does not control whether a user
has permission to view integration
settings in Central Administration.
See Also
Set Permissions for Report Server Items on a SharePoint Site (Reporting Services in SharePoint Integrated
Mode)
Set Permissions for Report Server Operations in a SharePoint Web Application
Granting Permissions on Report Server Items on a SharePoint Site
Role Definitions
Predefined Roles
SharePoint Site and List Permission Reference for
Report Server Items
11/2/2020 • 5 minutes to read • Edit Online
This topic provides a reference of the permissions in SharePoint that can be used to grant access to report
server operations for a report server that runs in SharePoint integrated mode. If you are creating custom
permission levels, this topic can help you choose which permissions to use.
SharePoint provides thirty-three permissions that you can use to control access to content and operations.
Some but not all of those permissions apply to documents and operations that involve a Reporting Services
report server. You can use the permission reference tables in this article to find out which permissions support
specific reporting tasks.
Each table starts with a list of SharePoint permissions and a description. The table includes three columns that
indicate how a permission is used in predefined permission levels. The predefined permission levels include the
following:
Full Control F
Contribute C
Visitor V
Permissions that do not affect a report server are not listed. All personalization permissions are excluded from
this reference article. Although you can include report server items in a personalized Web site, the report server
does not directly handle personalization requests or operations.
Applies to:
Reporting Services SharePoint mode
SharePoint 2010 and SharePoint 2013
List Permissions
Permissions that you set on the library that contains report server items determine how users access those
items.
REP O RT SERVER
P ERM ISSIO N DESC RIP T IO N F C V O P ERAT IO N
REP O RT SERVER
P ERM ISSIO N DESC RIP T IO N F C V O P ERAT IO N
Create, change
and delete
subscriptions
that use the
Reporting
Services delivery
extensions to
deliver reports to
target locations.
Only the
subscription
owner and users
who have
Manage Alerts
permission can
perform these
actions.
Delete Items Delete items X X Delete reports,
from a list, report models,
documents from shared data
a document sources, and
library, and Web other documents
discussion from a library.
comments in
documents.
NOTE
Other list permissions include Override Checkout, Approve Items, and View Application Pages. Those permissions are not
evaluated by the report server. The report server does not handle those operations.
Site Permissions
Site permissions determine access to report server operations that are not directly related to items stored in a
specific library. Examples include creating and managing shared schedules, which can be used by items in
multiple libraries, and configuring the Report Viewer Web Part, which can be used throughout a site.
REP O RT SERVER
P ERM ISSIO N DESC RIP T IO N F C V O P ERAT IO N
See Also
Compare Roles and Tasks in Reporting Services to SharePoint Groups and Permissions
Granting Permissions on Report Server Items on a SharePoint Site
Set Permissions for Report Server Operations in a
SharePoint Web Application
11/2/2020 • 9 minutes to read • Edit Online
For a report server that runs in SharePoint integrated mode, the security settings defined on the SharePoint site
determine how you view and manage reports, report models, and shared data sources. If you are using the
default SharePoint groups, permission levels, and permission assignments, you can work with reports and other
documents using the current security settings.
If default security settings do not provide the level of access that you want, you can use the information
provided in the following sections to learn which permissions are necessary for specific operations:
Permissions for viewing and managing reports
Permissions for creating reports and using Report Builder
Permissions for creating and managing shared schedules
Permissions for creating and managing subscriptions
Permissions for creating and managing shared data sources and report models
A few key permissions are required to complete almost any operation on a SharePoint site. These permissions
are not listed in the task and permission tables below, but you must include them if you are creating custom
permission levels:
Browse User Information
Use Remote Interfaces
Open
View Application Pages
If you are using predefined permission levels, no action is required because the above permissions are already
included in Full Control, Design, Contribute, Read, and Limited Access. However, if you are using custom
permission levels or editing the permissions assigned to a particular user or group, you must add the
permission manually.
"Browse User Information" permission allows the report server to return information about the creator of the
item and the user who last modified the item. Without this permission, the report server will return the
following errors. For browse operations, the error is: "Report Server has encountered a SharePoint error. --->
System.UnauthorizedAccessException: Access is denied." For publish operations, the error is: "The permissions
granted to user '<domain>\<user>' are insufficient for performing this operation."
View a report. View Items on the library that contains the files or on the
individual report.
View a clickthrough report that uses a report model as a View Items on the library that contains the report and the
data source. report model, or on the individual report and model. If you
do not have view permissions on the model, you can still
open the report but you cannot perform ad hoc exploration
on the data.
If the report model uses model item security, the user must
also have Enumerate Permissions permission on the
report model.
View snapshots in report history. Edit Items on the library that contains the files or on the
individual report. For a specific report, you can view all or
none of report history. It is not possible to set permissions
on individual snapshots in report history.
Upload or publish a report to library. Add Items on the library that will contain the report.
Set properties on a report, including data source connection Edit Items on the library that contains the report or on the
information, processing options, and parameter properties. individual report. You must also have view permissions on a
shared data source (.rsds) to select it for use with the report.
Schedule report processing. To select a shared schedule, you must have Open on the
site that contains the library that contains the report. To
schedule data processing or cache expiration, you must have
Edit Items on the library that contains the report or on the
individual report.
Delete a report. Delete Items on the library that contains the report or on
the individual report.
Replace report definition (without affecting properties, Edit Items on the library that contains the report or on the
permissions, history, or subscriptions) with a newer version. individual report.
Create snapshots in report history. Add Items on the library that contains the report for which
you are creating report history.
Create snapshots in report history. Add Items on the library that contains the report for which
you are creating report history.
Delete snapshots in report history, and delete specific Delete Versions on the library that contains the report for
versions of report definitions that have been checked out which you are deleting report history.
and modified over time.
View snapshots in report history, and view specific versions Views Versions on the library that contains the report.
of report definitions that have been checked out and
modified over time.
NOTE
Access to Report Builder can be determined by factors other than permissions. A site administrator can disable ad hoc
reporting by setting server properties or limit the availability of Report Builder by not adding the Report Builder Report
content type, which prevents users from creating new reports from the New menu on a library. In addition, a report
server administrator can make Report Builder unavailable by setting properties on the report server. If any of these
conditions are true for your server, you cannot use Report Builder even if you have the necessary permissions.
The following table provides a list of tasks for creating reports and using Report Builder, and permissions that
support each one:
TA SK P ERM ISSIO N
Start Report Builder. There are no permissions that are explicitly used to control
access to use Report Builder. Report Builder is available if
report server integration is configured and you have
permission to add items to a library. To start Report Builder
from the New menu in library, you must register the Report
Builder content type. For more information, see Add
Reporting Services Content Types to a SharePoint Library.
Upload a model or shared data source. Add Items on the library that will contain the files.
View a model or dependent shared data source. View Items on the library that contains the files.
Generate a model from a shared data source. Add Items on the library that contains the shared data
source (.rsds) file from which you are generating the model.
Set permissions within a model on specific model items. Manage Permissions on the site that contains the library
and report model (.smdl) file.
Load a model in Report Builder. Edit Items on the report model (.smdl) file.
Create a report definition in Report Builder and save a Add Items to save the file to a library.
report to a library.
Edit a report in Report Builder. Edit Items on the report definition file.
Permissions to create and use subscriptions, report history, and set report or data processing options on a
Report Builder report are the same as those used for performing identical actions on standard report definition
files.
Create, edit, or delete a shared schedule. Manage Web Site on the site.
Select a shared schedule for subscription processing or data Open on the site that contains the library.
retrieval.
TA SK P ERM ISSIO N
Create, edit, or delete a user-owned subscription to a specific Edit Items on the library that contains the report or on the
report. report itself. View Items is a dependent permission and will
be included in the permission level automatically. Users who
can create a subscription can also create custom schedules
to run that subscription.
Select a shared schedule to use with the subscription. Open on the site that contains the library.
Create, edit, or delete any subscription throughout a site. Manage Aler ts on the site.
TA SK S P ERM ISSIO N
Create a shared data source. Add Items on the library that contains the shared data
source. You can create new shared data sources from the
New menu in a library. To do this, you must register the
Report Data Source content type with the library. For more
information, see Add Reporting Services Content Types to a
SharePoint Library.
Edit a shared data source. Edit Items on the library that contains the shared data
source or on the shared data source itself.
Delete a shared data source. Delete Items on the library that contains the shared data
source or on the shared data source itself.
TA SK S P ERM ISSIO N
Use a shared data source (.rsds) with a report. Edit Items on the report, or on the library that contains
the report. Selecting a shared data source is part of setting
data source properties on a report.
Generate a report model from a shared data source. Add Items on the library that will contain the report model.
Delete a report model. Delete Items on the library that contains the report model
or on the report model itself.
Set permissions within a model on specific model items. Manage Permissions on the site that contains the library
and report model (.smdl) file.
NOTE
There are no permissions for editing report models. Although you can generate or delete report models, you cannot edit
them from within a SharePoint site. Editing report models requires the Model Designer, a client authoring tool that is not
affected by permissions you set in SharePoint.
See Also
Granting Permissions on Report Server Items on a SharePoint Site
Compare Roles and Tasks in Reporting Services to SharePoint Groups and Permissions
Granting Permissions on Report Server Items on a SharePoint Site
Use Built-in Security in Windows SharePoint Services for Report Server Items
Set Permissions for Report Server Items on a
SharePoint Site
11/2/2020 • 3 minutes to read • Edit Online
If default security settings do not provide the level of access that you require, you can create new permission
levels to provide access to specific report server items or operations. Custom security settings can be useful if
you want to restrict access to a particular report.
You must be a site owner to create permission levels and groups. Permission levels are used globally throughout
a site. If you create a new permission level, it will be available to other site owners.
Most permissions are inherited from a parent site. If you assign permissions on a specific library or item, you
break permission inheritance and incur additional overhead in how manage permissions for that branch of your
site hierarchy.
You can set permissions on report definition (.rdl), model (.smdl), and shared data source (.rsds) files. You cannot
combine inherited and managed permissions on the same item. If you choose to manage permissions directly,
inherited permissions will have no effect on the current item. If you want to resume permission inheritance later,
you can select Inherit Permissions on the Actions menu.
To set permissions on entities and perspectives in a model, you must have Full Control level of permission for
the model. Full Control includes "Manage Permissions", which is a site level permission that is granted to site
owners and other SharePoint groups who have Full Control level of permission. If you want to offer specific
users the ability to set model item security, you must break permission inheritance and grant elevated
permissions (such as Full Control) to the user or group on the model file. When you grant Full Control on an
item such as a file in the library, the permissions are scoped to that item and do not extend to the parent or to
other items within the same library. After the user has Manage Permissions permission on the model, he or she
can use set model item security via the SharePoint site or Model Designer.
To set permissions on an individual report, model, or data source
1. If the library is not already open, click its name on the Quick Launch. If the name of your library does not
appear, click View All Site Content , and then click the name of your library.
2. Point to the report, report model, or shared data source file.
3. Click the down arrow, and on the menu, click Manage Permissions .
4. On the Actions menu, click Edit Permissions , and then click OK to confirm the action.
5. To give permissions to a user or group that does not yet have permissions to use the file, click New , and
then click Add Users .
6. To remove or modify permissions for an existing user or group, click the check box next to the user or
group, click Actions , and then click Remove User Permissions or Edit User Permissions .
To set permissions that enable model item security
1. Log in to the SharePoint site using an account that has Manage Permissions permission on the site.
2. Open the library that contains the model.
3. Point to the model.
4. Click the down arrow next to the model, and click Manage Permissions .
5. Click Actions .
6. Click Edit Permissions . Click OK .
7. Click New .
8. Click Add Users .
9. In Users/Groups, enter the user account.
10. Select Give users permission directly .
11. Click Full Control .
12. Click OK . Once a user has the ability to manage permissions for a specific model, he or she can open the
model to edit permissions within the model.
See Also
Use Built-in Security in Windows SharePoint Services for Report Server Items
Set Permissions for Report Server Operations in a SharePoint Web Application
Compare Roles and Tasks in Reporting Services to SharePoint Groups and Permissions
SharePoint Site and List Permission Reference for Report Server Items
Granting Permissions on Report Server Items on a SharePoint Site
Configure TLS connections on a native mode report
server
3/5/2021 • 6 minutes to read • Edit Online
APPLIES TO: ✔
️ SQL Server 2016 Reporting Services and later ✔
️ Power BI Report Server
Reporting Services Native mode uses the HTTP SSL (Secure Sockets Layer) service to establish encrypted
connections to a report server. Transport Layer Security (TLS) was previously known as Secure Sockets Layer
(SSL). If you have certificate (.cer) file installed in a local certificate store on the report server computer, you can
bind the certificate to a Reporting Services URL reservation to support report server connections through an
encrypted channel.
TIP
If you are using Reporting Services SharePoint mode, see SharePoint documentation for more information. For example
How to enable TLS on a SharePoint 2010 web application.
Because Internet Information Services (IIS) also uses HTTP SSL, there are significant interoperability issues that
you must account for if you run IIS and Reporting Services on the same computer. Be sure to review the
Interoperability Issues with IIS section for guidance on how to address these issues.
TLS bindings are a shared resource in Microsoft Windows. Changes made by Reporting Services Configuration
Manager or other tools like IIS Manager can impact other applications on the same computer. It is a best practice
to use the same tool to edit bindings that you used to create the bindings. For example if you created TLS
bindings using Configuration Manager, then it is recommended you use Configuration Manager to manage the
life cycle of the bindings. If you use IIS manager to create bindings, then it is recommended you use IIS manager
to manage the life cycle of the bindings. If IIS is installed on the computer before Reporting Services is installed,
it is a good practice to review the TLS configuration in IIS before configuring Reporting Services.
If you remove TLS bindings for Reporting Services using the Report Server Configuration Manager, TLS may no
longer work for Web sites on a server that is running Internet Information Services (IIS) or on another HTTP.SYS
server. Reporting Services Configuration Manager removes the following registry key:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Ser vices\HTTP\Parameters\SslBindingInfo\0.0
.0.0:443 When this registry key is removed, the TLS binding for IIS is also removed. Without this binding, TLS is
not provided for the HTTPS protocol. To diagnose this issue, use IIS Manager or the HTTPCFG.exe command line
utility. To resolve the issue, restore the TLS binding for your web sites using IIS Manager. To prevent this issue in
the future, use IIS Manager to remove the TLS bindings and then use IIS Manager to restore the binding for the
desired Web sites. For more information, see the knowledge base article SSL no longer works after you remove
an SSL binding (https://support.microsoft.com/kb/956209/n).
See also
Authentication with the Report Server
Configure and Administer a Report Server (SSRS Native Mode)
RsReportServer.config Configuration File
Configure Report Server URLs (Report Server Configuration Manager)
Configure Reporting Services to use a Subject
Alternative Name (SAN)
7/2/2021 • 3 minutes to read • Edit Online
APPLIES TO: ✔
️ SQL Server 2016 Reporting Services and later ✔
️ Power BI Report Server
This topic explains how to configure Reporting Services (SSRS) and Power BI Report Server to use a Subject
Alternative Name (SAN), by modifying the rsreportserver.config file and using the Netsh.exe tool.
The instructions apply to the Web Service URL as well as the Web Portal URL in the Report Server Configuration
Manager tool.
To use a SAN, the TLS/SSL certificate must be registered on the server, signed, and have the private key. You
cannot use a self-signed certificate.
URLs in Reporting Services and Power BI Report Server can be configured to use a TLS/SSL certificate. A
certificate normally has just a subject name, which allows only one URL for a Transport Layer Security (TLS),
previously known as Secure Sockets Layer (SSL), session. The SAN is an additional field in the certificate that
allows a TLS service to listen for many URLs, and to share the TLS port with other applications. For example, a
SAN could look something like www.myreports.com .
For more information about TLS settings for Reporting Services, see Configure TLS Connections on a Native
Mode Report Server.
The configuration manager registers the TLS/SSL certificate for the port.
3. Open the rsreportserver.config file.
For SSRS 2016 Native mode, the file is located by default in the following folder:
For SSRS 2017 and later, the file is located by default in the following folder:
For Power BI Report Server, the file is located by default in the following folder:
4. Copy the URL section for the Repor tSer verWebSer vice application.
For example, the following original URL section is:
<URL>
<UrlString>https://+:443</UrlString>
<AccountSid>S-1-5-80-2885764129-887777008-271615777-1616004480-2722851051</AccountSid>
<AccountName>NT Service\ReportServer</AccountName>
</URL>
<URL>
<UrlString>https://+:443</UrlString>
<AccountSid>S-1-5-80-2885764129-887777008-271615777-1616004480-2722851051</AccountSid>
<AccountName>NT Service\ReportServer</AccountName>
</URL>
<URL>
<UrlString>https://www.myreports.com:443</UrlString>
<AccountSid>S-1-5-80-2885764129-887777008-271615777-1616004480-2722851051/AccountSid>
<AccountName>NT Service\ReportServer</AccountName>
</URL>
TIP
For SSRS 2017 and later, the AccountSid value is
S-1-5-80-4050220999-2730734961-1537482082-519850261-379003301 and the AccountName value is
NT SERVICE\SQLServerReportingServices .
For Power BI Report Server, the AccountSid value is
S-1-5-80-1730998386-2757299892-37364343-1607169425-3512908663 and the AccountName value is
NT SERVICE\PowerBIReportServer .
5. Repeat this process for the Repor tSer verWebApp URL section.
6. Save the rsreportserver.config file.
7. Start a command prompt using Run as Administrator .
8. Show the existing urlacls by typing the following:
Netsh http show urlacl
TIP
If you copy the code to Notepad to edit, rather than typing it manually, remove the CRLF before pasting the code
into the command prompt.
10. For the Web Por tal URL , create a new entry for the Subject Alternative Name by typing the following:
TIP
For SSRS 2017 and later, the user value is NT SERVICE\SQLServerReportingServices and the sddl value
is D:(A;;GX;;;S-1-5-80-4050220999-2730734961-1537482082-519850261-379003301) .
For Power BI Report Server, the user value is NT SERVICE\PowerBIReportServer and the sddl value is
S-1-5-80-1730998386-2757299892-37364343-1607169425-3512908663
NOTE
For Power BI Report Server, you need to create two additional entries for the Subject Alternative Name by typing
the following:
add urlacl url=https://www.myreports.com:443/PowerBI user="NT SERVICE\PowerBIReportServer"
sddl=D:(A;;GX;;;S-1-5-80-1730998386-2757299892-37364343-1607169425-3512908663)
add urlacl url=https://www.myreports.com:443/wopi user="NT SERVICE\PowerBIReportServer" sddl=D:
(A;;GX;;;S-1-5-80-1730998386-2757299892-37364343-1607169425-3512908663)
11. On the Repor t Ser ver Status page of the Report Server Configuration Manager, Click Stop and then
click Star t to restart the report server.
See also
RsReportServer.config configuration file
Report Server Configuration Manager
Modify a Reporting Services configuration file
Configure Report Server URLs
More questions? Try asking the Reporting Services forum
Schedules
4/6/2020 • 10 minutes to read • Edit Online
Reporting Services provides shared schedules and repor t-specific schedules to help you control
processing and distribution of reports. The difference between the two types of schedules is how they are
defined, stored, and managed. The internal construction of the two types of schedules is the same. All schedules
specify a type of recurrence: monthly, weekly, or daily. Within the recurrence type, you set the intervals and
range for how often an event is to occur. The type of recurrence pattern and how those patterns are specified is
the same whether you create a shared schedule or a report-specific schedule.
Shared schedules are created as separate items. After they are created, you reference them when defining
a subscription or some other scheduled operation.
Report-specific schedules are created when you define a subscription or set report execution properties;
filling out schedule information is part of defining a subscription or setting properties. To define a report-
specific schedule, you open the report or subscription that uses it.
A shared schedule contains schedule and recurrence information that can be used by any number of published
reports and subscriptions that run on a Reporting Services report server. If you have many reports and
subscriptions that run at the same time, you can create a shared schedule for those jobs. If you want to
subsequently change the recurrence pattern or the end date, you can make the change in one place.
Shared schedules are easier to maintain and give you more flexibility in managing scheduled operations. For
example, you can pause and resume shared schedules. Also, if you find that too many scheduled operations are
running at the same time, you can create multiple shared schedules that run at different times and then adjust
the schedule information until the processing load evens out across the report server.
Create, modify, or delete Manage individual Browser, Report Builder, My Visitors, Members
report-specific schedules in subscriptions Reports, Content Manager
a user-defined subscription
For more information about security in Native mode Reporting Services, see Predefined Roles, Granting
Permissions on a Native Mode Report Server and Tasks and Permissions. For SharePoint mode, see Compare
Roles and Tasks in Reporting Services to SharePoint Groups and Permissions
Server Dependencies
The Scheduling and Delivery Processor requires that the Report Server service and SQL Server Agent are
started. The Schedule and Delivery Processing feature must be enabled through the
ScheduleEventsAndRepor tDeliver yEnabled property of the Surface Area Configuration for Repor ting
Ser vices facet in Policy-Based Management. Both SQL Server Agent and the Report Server service must
running in order for scheduled operations to occur.
NOTE
You can use the Surface Area Configuration for Repor ting Ser vices facet to stop scheduled operations on a
temporary or permanent basis. Although you can create and deploy custom delivery extensions, by itself the Scheduling
and Delivery Processor is not extensible. You cannot change how it manages events and notifications. For more
information about turn off features, see the Scheduled Events and Deliver y section of Turn Reporting Services
Features On or Off.
NOTE
The functionality that SQL Server Agent provides to Reporting Services can be replaced with custom code that uses the
FireEvent method to add schedule events to the queue.
See Also
Create, Modify, and Delete Snapshots in Report History
Subscriptions and Delivery (Reporting Services)
Data-Driven Subscriptions
Caching Reports (SSRS)
Report Server Content Management (SSRS Native Mode)
Cache Shared Datasets (SSRS)
Create, Modify, and Delete Schedules
4/6/2020 • 8 minutes to read • Edit Online
Use this article to learn about how to create, modify, and delete Reporting Services shared schedules. To manage
shared schedules for native mode, use the Schedules page in the web portal or the shared schedules folder in
Management Studio. For SharePoint mode use, the management pages for the Reporting Services service
application.
Use one of the following methods to determine if a shared schedule is actively used:
Web por tal: On the Schedules tab of the Site Settings , review the values in the Last Run date, Next
Run date, and Status fields. If a schedule no longer runs because it has expired, the expiration date
appears in the Status field. For more information, see Web portal (SSRS Native Mode).
SQL Ser ver Management Studio: Viewing the Repor ts page of a given shared schedule. This page
lists all reports and shared datasets that use the shared schedule. For more information, see Reporting
Services in SQL Server Management Studio.
Logs: Viewing the report execution log files or trace logs to determine whether reports have been run at
the times specified by the schedule. For more information, see Reporting Services Log Files and Sources.
NOTE
If Settings is not available, you do not have permission to access site settings.
NOTE
Creating shared schedules requires SQL Server Agent service.
See also
Schedules
Pause and Resume Shared Schedules
Caching Reports (SSRS)
Create, Modify, and Delete Snapshots in Report History
Pause and Resume Shared Schedules
4/6/2020 • 2 minutes to read • Edit Online
You can pause and resume a shared schedule that is in use. Pausing a shared schedule provides a way to
temporarily freeze a schedule that is used to trigger report processing and subscriptions. Only shared schedules
can be paused and resumed. You cannot pause report-specific schedules.
You cannot pause and resume report processing that is in progress. You can only pause and resume schedules
that are in the scheduling queue of SQL Server Agent service. A job that is in progress is outside the scope of
the scheduling engine. For more information, see Manage a Running Process
While a shared schedule is paused, any operations that would have occurred are allowed to lapse. After you
resume a shared schedule, report and subscription processing occurs at the next scheduled time, using the local
time of the server. The native mode report server or SharePoint service applications, do not make up scheduled
operations that would have occurred had the schedule not been paused.
In this Topic:
Pause and Resume Shared Schedules (Native Mode)
Pause and Resume Shared Schedules (SharePoint mode)
See Also
Schedules
Create, Modify, and Delete Schedules
Change Time Zones and Clock Settings on a Report Server
Manage a Running Process
Change Time Zones and Clock Settings on a Report
Server
11/2/2020 • 2 minutes to read • Edit Online
A report server always uses the local time of the computer on which it is installed. You cannot configure it to use
a different time zone. If a client application points to a report server in a different time zone, the report server
time zone is used to execute a scheduled operation. In Report Manager and SharePoint management pages, the
time zone is indicated on each scheduling page so that you know exactly when a scheduled operation will occur.
For example, the page for creating custom schedules will note "Times are expressed in (UTC-08:00) Pacific time
(US and Canada)." The report server creates a SQL Server Agent job that is used to trigger the schedule. When
the Report Server and the SQL Server Agent are located on separate servers, the time zone must be the same
on all servers.
See Also
Start and Stop the Report Server Service
Schedules
Manage a Running Process
11/2/2020 • 5 minutes to read • Edit Online
SQL Server Reporting Services monitors the status of jobs that are running on the report server. At regular
intervals, the report server does a scan of in-progress jobs and writes the status information to the report
server database or the service application databases for SharePoint mode. A job is in progress if any of the
following processes are underway: query execution on a remote or local database server, report processing, and
report rendering.
You can manage both user jobs and system jobs.
User jobs are initiated by an individual user or subscription. This includes running a report on demand,
requesting a report history snapshot, manually creating a report snapshot, and processing a standard
subscription.
System jobs are initiated by the report server. System jobs include scheduled report execution snapshots,
scheduled report history snapshots, and data-driven subscriptions.
Report processing time and resource use varies considerably depending on the report, the query complexity, the
amount of data, and the rendering format that is specified for the report. Reports that have simple queries
against a local data source will often complete in milliseconds and never require management or tuning. In
contrast, a large report that is rendered in PDF or Excel might require significant processing time depending on
hardware resources, delivery options, and whether other processes are running concurrently. On a report server,
most long-running processes are report rendering operations and processes that are waiting for query
processing to conclude. Occasionally, you might need to cancel a report process if you want to take a computer
offline, or stop a running job that is taking too long to complete.
The following processes can be cancelled:
On-demand report processing.
Scheduled report processing.
Standard subscriptions owned by individual users.
Canceling a job only cancels the processes that are running on the report server. Because the report server does
not manage data processing that occurs on other computers, you must manually cancel query processes that
are subsequently orphaned on other systems. Consider specifying query time-out values to automatically shut
down queries that are taking too long to execute. For more information, see Setting Time-out Values for Report
and Shared Dataset Processing (SSRS). For more information about temporarily pausing a report, see Disable or
Pause Report and Subscription Processing.
NOTE
In rare circumstances, you may need to restart the server to cancel a process. For SharePoint mode, you may need to
restart the application pool hosting the Reporting Services service application. For more information, see Start and Stop
the Report Server Service.
In this Topic:
View and Cancel Jobs (Native Mode)
View and Cancel Jobs (SharePoint Mode)
Managing Jobs Programmatically
See Also
Cancel Report Server Jobs (Management Studio)
Job Properties (Management Studio)
Modify a Reporting Services Configuration File (RSreportserver.config)
RsReportServer.config Configuration File
Report Manager (SSRS Native Mode)
Monitoring Report Server Performance
Subscriptions and Delivery (Reporting Services)
11/2/2020 • 12 minutes to read • Edit Online
A Reporting Services subscription is a configuration that delivers a report at a specific time or in response to an
event, and in a file format that you specify. For example, every Wednesday, save the MonthlySales.rdl report as a
Microsoft Word document to a file share. Subscriptions can be used to schedule and automate the delivery of a
report and with a specific set of report parameter values.
You can create multiple subscriptions for a single report to vary the subscription options; for example, you can
specify different parameter values to produce three versions of a report, such as a Western region sales report,
Eastern region sales, and all sales.
Subscriptions are not available in every edition of SQL Server. For a list of features that are supported by the
editions of SQL Server, see Editions and supported features of SQL Server 2017.
In this topic:
Subscription and delivery scenarios
Standard and data-driven subscriptions
Subscription requirements
Delivery extensions
Parts of a subscription
How subscriptions are processed
Programmatic control of subscriptions
Topics In this section:
E-Mail Delivery in Reporting Services Describes report server e-mail delivery operation and
configuration.
Create and Manage Subscriptions for Native Mode Report Servers Detailed steps for creating
subscriptions with a Native mode report server.
Create and Manage Subscriptions for SharePoint Mode Report Servers Detailed steps for creating
subscriptions with a SharePoint mode report server.
File Share Delivery in Reporting Services Describes report server file share delivery operation and
configuration.
Disable or Pause Report and Subscription Processing.
SharePoint Library Delivery in Reporting Services Describes subscription delivery to a SharePoint library.
Data-Driven Subscriptions Provides information about using data-driven subscriptions to customize
report output at run time.
Monitor Reporting Services Subscriptions
Use PowerShell to Change and List Reporting Services Subscription Owners and Run a Subscription
View Reports off-line Users can select one of the following formats for
subscription output:
Subscription requirements
Before you can create a subscription to a report, the following prerequisites must be met:
Permissions You must have access to the report. Before you can
subscribe to a report, you must have permission to view it.
User dependent values in a report For standard subscriptions only, you can create subscriptions
to reports that incorporate user account information in a
filter or as text that appears on the report. In the report, the
user account name is specified through a User!UserID
expression that resolves to the current user. When you
create a subscription, the user who creates the subscription
is the considered the current user.
No model item security You cannot subscribe to a Report Builder report that uses a
model as a data source if the model contains model item
security settings. Only reports that use model item security
are included in this restriction.
Delivery extensions
Subscriptions are processed on the report server and are distributed through delivery extensions that are
deployed on the server. By default, you can create subscriptions that send reports to a shared folder or to an e-
mail address. If the report server is configured for SharePoint integrated mode, you can also send a report to a
SharePoint library.
When a user creates a subscription, he or she can choose one of the available delivery extensions to determine
how the report is delivered. Reporting Services includes the following delivery extensions.
Windows File Share Delivers a report as a static application file to a shared folder
that is accessible on the network.
NOTE
Report delivery is an extensible part of Reporting Services architecture. Third-party vendors can create custom delivery
extensions to route reports to different locations or devices. For more information about custom delivery extensions, see
Implementing a Delivery Extension.
Parts of a subscription
A subscription definition consists of the following parts:
A pointer to a report that can run unattended (that is, a report that uses stored credentials or no
credentials).
A delivery method (for example, e-mail) and settings for the mode of delivery (such as an e-mail
address).
A rendering extension to present the report in a specific format.
Conditions for processing the subscription, which is expressed as an event.
Usually, the conditions for running a report are time-based. For example, you may want to run a
particular report every Tuesday at 3:00 P.M. UTC. However, if the report runs as a snapshot, you can
specify that the subscription runs whenever the snapshot is refreshed.
Parameters used when running the report.
Parameters are optional and are specified only for reports that accept parameter values. Because a
subscription is typically user-owned, the parameter values that are specified vary from subscription to
subscription. For example, sales managers for different divisions will use parameters that return data for
their division. All parameters must have a value explicitly defined, or have a valid default value.
Subscription information is stored with individual reports in a report server database. You cannot manage
subscriptions separately from the report to which they are associated. Note that subscriptions cannot be
extended to include descriptions, other custom text, or other elements. Subscriptions can contain only the items
listed earlier.
NOTE
Reports that are delivered through a URL remain connected to the report server and can be updated or deleted between
viewings. The delivery options you choose for your subscription determine whether the report is delivered as a URL,
embedded within the body of an e-mail message, or sent as an attachment.
Reports that are delivered through a data-driven subscription may be regenerated while the subscription is
being processed. The report server does not lock in a specific instance of a report or its dataset to complete a
data-driven subscription. If the subscription uses different parameter values for different subscribers, the report
server regenerates the report to produce the required result. If the underlying data is updated after the first
report copy is created and delivered, users who get reports later in the process may see data that is based on
different result set. You can use a report that runs as a snapshot to ensure that the same report instance is
delivered to all subscribers. However, if a scheduled update to the snapshot occurs while the subscription is
processing, users may still get different data in their reports.
Triggering subscription processing
The report server uses two kinds of events to trigger subscription processing: a time-driven event that is
specified in a schedule or a snapshot update event.
A time-driven trigger uses a report-specific schedule or a shared schedule to specify when a subscription runs.
For on-demand and cached reports, schedules are the only trigger option.
A snapshot update event uses the scheduled update of a report snapshot to trigger a subscription. You can
define a subscription that is triggered whenever the report is updated with new data, based on report execution
properties that are set on the report.
See Also
Create a Data-Driven Subscription (SSRS Tutorial)
Schedules
Reporting Services Report Server (Native Mode)
Monitor Reporting Services Subscriptions
E-Mail Delivery in Reporting Services
4/18/2020 • 4 minutes to read • Edit Online
SQL Server Reporting Services includes an e-mail delivery extension that provides a way to e-mail a report to
individual users or groups. To distribute a report by e-mail, you 1) configure the report server for e-mail
delivery and 2) define either a standard subscription or a data-driven subscription. A single subscription cannot
deliver multiple reports in a single e-mail message. However you can create multiple subscriptions.
The report server connects with an e-mail server through a standard connection. It does not use communication
that has been encrypted using Transport Layer Security (TLS), previously known as Secure Sockets Layer (SSL).
The e-mail server must be a remote or local Simple Mail Transport Protocol (SMTP) server on the same network
as the report server.
For detailed steps that walk you through creating a subscription, see the following:
Create and Manage Subscriptions for Native Mode Report Servers
Create and Manage Subscriptions for SharePoint Mode Report Servers
Applies to: Reporting Services SharePoint mode | Reporting Services Native mode
TA SK AVA IL A B L E SET T IN GS
Manage individual subscriptions Shows fields that enable a user to automate and deliver a
report to himself or herself. In this mode, fields that accept
e-mail aliases are not available.
Manage all subscriptions Shows fields that support wider distribution, including To:,
Cc:, Bcc:, and Reply-To: fields, providing more ways to route a
report to more subscribers. The availability of e-mail alias
fields is defined through the RSReportServer configuration
file settings.
See Also
Tasks and Permissions
Subscriptions and Delivery (Reporting Services)
Data-Driven Subscriptions
Role Assignments
Create and Manage Subscriptions for SharePoint
Mode Report Servers
11/2/2020 • 8 minutes to read • Edit Online
You can create Reporting Services subscriptions to deliver reports from a SharePoint Web application that is
integrated with a SharePoint mode report server. Subscriptions can deliver reports to a document library, file
folder, or as e-mail. This topic summarizes the requirements and steps for creating a Reporting Services
subscription.
Applies to:
When you create a subscription, there are three ways to specify its delivery:
Document librar y : You can create a subscription that delivers a document based on the original report
to a library within the same SharePoint site as the original report. You cannot deliver the document to a
library on another server or another site within the same site collection. To deliver the document, you
must have Add Items permission on the library to which the report is delivered.
File folder : You can deliver a document based on the original report to a shared folder on the file
system. You must select an existing folder that is accessible over a network connection.
E-mail: If the report server is configured to use the Report Server E-mail delivery extension, you can
create a subscription that sends a report or an exported report file (saved in an output format) to your in-
box. To receive just the notification without the report or report URL, clear the Include a link to this
repor t and the Show repor t inside message checkboxes.
In this topic:
General Requirements for Subscriptions
To create a subscription to deliver a report to a SharePoint library
To create a subscription to deliver a report to a SharePoint library
To create a subscription for report server e-mail delivery
To view or modify a subscription
To delete a subscription
IMPORTANT
A subscription that delivers a report to a library or to a shared folder creates a new, static file that is based on the original
report, but it is not a true report definition that runs in the Report Viewer Web Part. If the original report has interactive
features (such as drillthrough links) or dynamic content, those features will not be available in the static file that is
delivered to the target location. If you select a "Web Page" you can preserve some interactivity, but because the document
is not an .rdl file that runs in the Report Viewer, clicking through a report creates new pages in the browser session that
you must scroll through to return to the site.
You cannot rename the file name extension of an exported report to .rdl and have it run in the Report Viewer
Web Part. If you want to create a subscription that provides an actual report, use the Report Server E-mail
delivery extension and set options to include a link to the report.
Version settings on the library that contains the delivered document determine whether a new version of the
document is created with each delivery. By default, version settings are enabled for each library. Unless you
specifically choose No versioning , a new major version of the document will be created upon delivery. Only
major versions of the document are created; minor versions are never created as a result of subscription
delivery, even if you select a versioning option that allows minor versions. If you limit the number of major
versions that are retained, older deliveries will be replaced by newer ones when the maximum limit is reached.
Output formats that you select for a subscription are based on rendering extensions that are installed on the
report server. You can only select output formats that are supported by the rendering extensions on the report
server.
To create a subscription to deliver a report to a SharePoint library
1. Browse to a SharePoint library that contains your report.
2. Click the down arrow next to the report and then select Manage Subscriptions .
3. Click Add Subscription .
4. In Deliver y Extension , select SharePoint Document Librar y .
5. In Document Librar y , select a library within the same site.
6. In File Options , specify the file name and title for the document that will be created by the subscription.
7. In Output Format , select the application format.
Web archive (MHTML) is the default because it produces a self-contained HTML file, but it will not
preserve interactive report features that might be in the original report.
8. In Over write Options , specify an option that determines whether subsequent deliveries overwrite a file.
If you want to preserve previous deliveries, you can select Create a file with a unique name . A
number will be appended to new files to create a unique file name.
9. In Deliver y Event , specify a schedule or event that causes the subscription to run. You can create a
custom schedule, select a shared schedule if one is available, or run the subscription whenever the data is
refreshed for a report that runs with snapshot data. For more information about schedules and data
processing, see Set Processing Options (Reporting Services in SharePoint Integrated Mode).
10. In Parameters , if you are creating a subscription to a parameterized report, specify the values that you
want to use with the report when the subscription is processed. The parameters section is not visible on
this page if the report you select does not contain parameters. For more information about parameters,
see Set Parameters on a Published Report (Reporting Services in SharePoint Integrated Mode).
To create a subscription for shared folder delivery
1. Browse to a SharePoint library that contains your report.
2. Click the down arrow next to the report and then select Manage Subscriptions .
3. Click Add Subscription .
4. In Deliver y Extension , select Windows File Share .
5. In File Name , enter the name of the file that will be created in the shared folder.
6. In Path , enter a folder path in Uniform Naming Convention (UNC) format that includes the computer's
network name. Do not include trailing backslashes in the folder path. An example path might be
\\ComputerName01\Public\MyReports , where Public and MyReports are shared folders.
See Also
Subscriptions and Delivery (Reporting Services)
E-Mail Delivery in Reporting Services
File Share Delivery in Reporting Services
SharePoint Library Delivery in Reporting Services
Configure a Report Server for E-Mail Delivery (Report Server Configuration Manager)
SharePoint Library Delivery in Reporting Services
4/6/2020 • 4 minutes to read • Edit Online
A report server that is configured for SharePoint integration includes a delivery extension that you can use to
send a report to a SharePoint library.
To use the SharePoint delivery extension, you must create a subscription from an application page on a
SharePoint site, and then select SharePoint document librar y as the delivery type. You cannot use the
SharePoint delivery extension for subscriptions that you create in SQL Server Management Studio or Report
Manager.
NOTE
The delivery extension does not support the delivery of reports to a SharePoint site if the report server is running in
native mode. If you attempt to call the delivery extension programmatically for a native mode report server, the server
will return the rsDeliver yExtensionNotFound error and log the rsOperationNotSuppor tedSharePointMode error
in the report server log files.
Requirements
Requirements for delivering rendered reports to a library include the following:
The report server must be configured for SharePoint integration mode.
The report server must have the SharePoint delivery extension installed and configured.
The report must be a report definition (.rdl) file. You cannot deliver other report server content types,
such as models or resources, through a subscription. You cannot subscribe to ad hoc reports that use
models as a data source.
The report must use stored credentials. This is a prerequisite for creating any subscription on a report,
regardless of the delivery type.
The destination must be a SharePoint library. When choosing a target library, you must choose one that is
on the same SharePoint site. You cannot deliver a report to a library on another server or another site
within the same site collection.
Properties and metadata are not part of report delivery. When the report is delivered for the first time, it inherits
the security settings of the folder or list that contains it. If you subsequently modify security settings or set
report properties, those settings are retained. The subscription just refreshes the report that is stored at the
specified location.
SharePoint Permissions
To create the subscription, you must have View Items permission on the report. To deliver the report, you must
have Add Items permission on the library to which the report is delivered.
See Also
Create and Manage Subscriptions for SharePoint Mode Report Servers
Subscriptions and Delivery (Reporting Services)
Specify Credential and Connection Information for Report Data Sources
Create and Manage Subscriptions for Native Mode
Report Servers
4/6/2020 • 8 minutes to read • Edit Online
A standard subscription is one that is created by individual users who want to have a report delivered through
e-mail or to a shared folder. This topic provides information about standard subscriptions that are created and
managed by individual users. Data-driven subscriptions have different requirements and steps, and are
discussed in a separate topic. For more information, see Create, Modify, and Delete Data-Driven Subscriptions
In this ar ticle:
General requirements for subscriptions
To create a file share subscription
To create an e-mail subscription
To modify a subscription
To delete a subscription
Render Format : Select a report output format for file delivery. Choose a format that corresponds
to the desktop application that will be used to open the report. Avoid formats that do not render a
report in a single stream or that introduce interactivity that cannot be supported in a static file (for
example, HTML 4.0).
Credentials : Select to use either the File share account or a specific Windows user credentials. The
Use file share account is disabled if your report administrator has not configured a file share
account. For more information, see Subscription Settings and a File Share Account (Configuration
Manager). In the User name and Password text boxes, specify the credentials required to access
the file share, using the format <domain>\<user name> for the user name.
Over write options :
Over write an existing file with a newer version .
Do not over write the file if a previous version exists , the delivery will not occur if an
existing file is detected.
Increment file names as newer versions are added , the report server appends a number
to the file name to distinguish it from existing files of the same name.
9. For parameterized reports, specify parameters to use for the report for this subscription. The parameters
can be different from those used to run the report on demand or in other scheduled operations.
The report is delivered as a static file. If the report includes interactive features (for example, links to additional
rows and columns), those features are not available.
NOTE
Depending on your permissions, you might be able to type the e-mail address you want the report
delivered to. To specify multiple e-mail addresses, separate them with a semicolon (;). You can also type
additional e-mail addresses in the Cc, Bcc, and Reply-To text boxes. This requires that you have
permission to manage all subscriptions.
Subject : Defaults to "@ReportName was executed at @ExecutionTime". You can edit the subject
but note that the @ReportName and @ExecutionTime are the only global variables supported in
the Subject field.
Include Repor t : Select this option to embed or attach a copy of the report. The format of the
report is determined by the rendering format you select. Do not choose this option if you think the
report size will exceed the limit defined for your e-mail system.
Include Link : Select this option to include a URL link to the report in the body of the e-mail
message.
NOTE
If you clear both of these options, only the notification text in the Subject line is sent.
Choose a rendering format from the Render Format list box. This option is available if you select
Include Repor t to embed or attach a copy of the report.
To embed the report in the body of the e-mail message, select MHTML (web archive) .
To send the report as an attachment, choose any of the other rendering formats.
Select a priority from the Priority list box. In Microsoft Exchange, this setting sets a flag for the
importance level of the e-mail message.
Enter a Comment if desired.
9. For parameterized reports, specify parameters to use for the report for this subscription. The parameters
that you specify can be different from those used to run the report on demand or in other scheduled
operations.
To modify a subscription
You can modify a subscription at any time. If you modify a subscription while it is being processed, the updated
settings are used if they are saved to the report server before the delivery extension receives the subscription
data. Otherwise, the existing settings are used.
A user who creates a subscription owns that subscription. Each user can modify or delete the subscriptions that
he or she owns. You can change the owner of the report from the subscription properties page or you can
change the ownership programmatically. For more information, see the following:
Use PowerShell to Change and List Reporting Services Subscription Owners and Run a Subscription
ChangeSubscriptionOwner
To locate a subscription, use the My Subscriptions page or view the subscription definitions that are
associated with a report. You cannot search for subscriptions directly, nor can you search for a subscription
based on owner name, trigger information, status information, and so forth.
Subscriptions can also be modified or deleted by report server administrators.
NOTE
A report server administrator cannot manage from one place all the individual subscriptions that are in use on a given
report server. However, report server administrators can access each individual subscription to modify or delete it.
To delete a subscription
To delete a subscription:
1. Browse the web portal of a report server (SSRS Native Mode).
2. In the web portal, select My Subscriptions on the toolbar and navigate to the subscription you want to
modify or delete.
3. Right-click the report and select Delete .
To cancel a subscription that is currently processing on the report server, see Manage a Running Process.
If you want to end a subscription and you cannot locate the subscription, make a note of the report you are
receiving and search for it by name. Once you access the report, you can remove yourself from the subscription.
If you cannot locate the subscription, the subscription may be a data-driven subscription. For more information,
see your report server administrator.
A subscription is deleted automatically if the underlying report is deleted. If you delete a subscription while it is
being processed, the subscription stops if the delete operation occurs before the delivery extension receives
subscription data. Otherwise, the subscription continues to be processed.
See also
Create and Manage Subscriptions for SharePoint Mode Report Servers
Use PowerShell to Change and List Reporting Services Subscription Owners and Run a Subscription
Data-Driven Subscriptions
Subscriptions and Delivery (Reporting Services)
The web portal of a report server (SSRS Native Mode)
Use My Subscriptions (Native Mode Report Server)
Use My Subscriptions (Native Mode Report Server)
11/2/2020 • 2 minutes to read • Edit Online
The Reporting Services Web portal includes a My Subscriptions page that organizes all of your subscriptions
into one place. You can use My Subscriptions to view, modify, enable, disable, and delete existing subscriptions.
However, you cannot use it to create subscriptions. My Subscriptions shows only the subscriptions that you
create. It does not list subscriptions that are owned by other users, even if you are added as a subscriber to
those subscriptions, nor does it show data-driven subscriptions.
The search field will dynamically filter the list of subscriptions as youYou cannot search for subscriptions by
name, nor can you search for subscriptions based on trigger information, status information, and so forth. For
more information, see Create and Manage Subscriptions for Native Mode Report Servers.
The following PowerShell script will return the list of subscriptions and subscription properties for the current
user. For more information, see ReportingService2010.ListMySubscriptions Method.
#server - all subscriptions of the current user at the given server or site
$server="[server name]/reportserver"
$rs2010 = New-WebServiceProxy -Uri "https://$server/ReportService2010.asmx" -Namespace
SSRS.ReportingService2010 -UseDefaultCredential;
$subscriptions=ListMySubscriptions(ItemPathOrSiteURL)
$subscriptions | select Path, report, Description, Owner, SubscriptionID, lastexecuted,Status
#uncomment the following to list all the subscription properties
#$subscriptions
See Also
Data-Driven Subscriptions
Subscriptions and Delivery (Reporting Services)
old_Create and Manage Subscriptions for Native Mode Report Servers
File Share Delivery in Reporting Services
4/6/2020 • 4 minutes to read • Edit Online
SQL Server Reporting Services includes a file share delivery extension so that you can deliver a report to a
folder. The file share delivery extension is available by default and requires no additional configuration. In order
for file delivery to succeed, you must set write access permissions on the shared folder. The account that
requires writer permissions can either be credentials configured in the subscription or a File share account
configured for the report server. For more information on the file share account, see Subscription Settings and a
File Share Account (Configuration Manager). In addition, users who require access to the reports must have read
permissions on the shared folder.
To distribute a report to a file share, you define either a standard subscription or a data-driven subscription. To
learn how to use file share delivery in a data-driven subscription, see Create a Data-Driven Subscription (SSRS
Tutorial). Additionally, the account that runs remote file share subscriptions requires rights to log on locally on
the Reporting Services computer.
Applies to: Reporting Services Native mode | Reporting Services SharePoint mode
In this topic:
Characteristics reports delivered to shared folders
Target folders
File Formats
File Options
Target folders
When defining a subscription that uses file share delivery, you must specify an existing folder as the target
folder. The report server does not create folders on the file system. The folder that you specify must be
accessible over a network connection.
Verify that users who will view the reports in the shared folder have Read permission.
When specifying the target folder in a subscription, use Uniform Naming Convention (UNC) format that
includes the computer's network name. Do not include trailing backslashes in the folder path. The following
example illustrates a UNC path:
\\<servername>\reportarchive\operations\2014
When you create the folder, consider the connection limits you require. The report server requires two
connections, but you must include enough connections to accommodate additional users who want to open
reports on the shared folder.
File Formats
Reports can be rendered in a variety of file formats, such as HTML, DOCX, and Excel. To save the report in a
specific file format, select that rendering format when creating your subscription. For example, choosing Excel
saves the report as a Microsoft Excel file. Although you can choose from any supported rendering format, some
formats work better than others when rendering to a file.
For file share delivery, choose a format that delivers the report in a single file, where all images and related
content are included in the report. Suitable formats include Web archive, PDF, TIFF, and Excel. Avoid HTML4.0. If
your report includes images, the HTML 4.0 formats will not include them in the file.
File Options
When you create a file share subscription, you can configure how the file name is created and if the file
overwrites previous versions of the report. A fully qualified file name has three parts: a name, an extension, and
text or a number that is appended to the file to create a unique file name
File Name: The default file name is based on the source report name, but you can provide a custom name in
the subscription. The extension is optional, but if you specify it, the report server will create an extension that
corresponds to the rendering format.
Over write: You can specify overwrite options to reuse the same file name for each report delivery or to create
a new file. To overwrite the file, you must use the same file name and extension.
An alternative approach to creating unique files for every delivery is to include a timestamp in the file name. To
do this, add the @timestamp variable to the file name (for example, CompanySales@timestamp). With this
approach, the file name is unique by definition, so it will never be overwritten.
The following image is an example of the settings for a subscription configured for file share delivery.
See Also
Create and Manage Subscriptions for Native Mode Report Servers
Subscription Settings and a File Share Account (Configuration Manager)
Disable or Pause Report and Subscription
Processing
11/2/2020 • 6 minutes to read • Edit Online
There are several approaches you can use to disable or pause Reporting Services report and subscription
processing. The approaches in this article range from disabling a subscription to interrupting the data source
connection. Not all approaches are possible with both Reporting Services server modes. The following table
summarizes the methods and supported Reporting Services server modes:
In this article
A P P RO A C H SUP P O RT ED SERVER M O DE
In the web portal, browse to the subscription from either the My Subscriptions page or the Subscriptions
page of an individual subscription. Select one or more subscriptions and then click either the disable button or
enable button on the ribbon (see above image). The status column will change to either "Disabled" or "Enabled"
respectively.
Reporting Services writes a row in the Reporting Services log when a subscription is either enabled or disabled.
For example, in report server log file:
C:\Program Files\Microsoft SQL Server Reporting Services\SSRS\LogFiles\RSPortal_2019_06_20_00_49_22.log
You can use the following script to list all subscriptions with their IDs. Update the server name.
Use Windows PowerShell to list all disabled subscriptions: Use the following
PowerShell script to list all of the disabled subscriptions on the current Native mode report server. Update the
server name.
Native mode: In the web portal, select the Settings button from the menu bar at the top of the
web portal screen, and select Site Settings from the drop-down menu. Select the Schedules tab to
display the schedules page. Select the checkbox(es) next to the schedule(s) you want to enable or disable,
and then select the Enable or Disable button respectively to perform the desired action. The status
column will update to "Disabled" or "Enabled" accordingly.
See also
Subscriptions and Delivery (Reporting Services)
Reporting Services Configuration Files
Configure the web portal
Reporting Services Report Server (Native Mode)
The web portal of a report server (SSRS Native Mode)
Securable Items
Data-Driven Subscriptions
4/6/2020 • 2 minutes to read • Edit Online
A data-driven subscription provides a way to use dynamic subscription data that is retrieved from an external
data source at run time. A data-driven subscription can also use static text and default values that you specify
when the subscription is defined. You can use data-driven subscriptions to do the following:
Distribute a report to a fluctuating list of subscribers. For example, you can use data-driven subscriptions
to distribute a report throughout a large organization where subscribers vary from one month to the
next, or use other criteria that determines group membership from an existing set of users.
Filter the report output using report parameter values that are retrieved at run time.
Vary report output formats and delivery options for each report delivery.
A data-driven subscription is composed of multiple parts. The fixed aspects of a data-driven subscription are
defined when you create the subscription, and these include the following:
The report for which the subscription is defined (a subscription is always associated with a single report).
The delivery extension used to distribute the report. You can specify report server e-mail delivery, file
share delivery, the null delivery provider used for preloading the cache, or a custom delivery extension.
You can't specify multiple delivery extensions within a single subscription.
The subscriber data source. You must specify a connection string to the data source that contains
subscriber data when you define the subscription. The subscriber data source cannot be specified
dynamically at run time.
The query that you use to select subscriber data must be specified when you define the subscription. You
cannot change the query at run time.
Dynamic values used in a data-driven subscription are obtained when the subscription is processed. Examples of
variable data that you might use in a subscription include the subscriber name, e-mail address, preferred report
output format, or any value that is valid for a report parameter. To use dynamic values in a data-driven
subscription, you define a mapping between the fields that are returned in the query to specific delivery options
and to report parameters. Variable data is retrieved from a subscriber data source each time the subscription is
processed.
TO P IC S DESC RIP T IO N
Create, Modify, and Delete Data-Driven Subscriptions Explains how to create, modify, or delete a data-driven
subscription.
Use an External Data Source for Subscriber Data (Data- Provides information about the data sources that you can
Driven Subscription) use for a data-driven subscription.
Create a Data-Driven Subscription (SSRS Tutorial) Provides step-by-step instruction for learning how to create
a data-driven subscription.
Caching Reports (SSRS) Describes how to use the Null Delivery Provider with a data-
driven subscription to preload the cache.
See also
Subscriptions and Delivery (Reporting Services)
Preload the Cache (Web Portal)
Create, Modify, and Delete Data-Driven
Subscriptions
4/6/2020 • 5 minutes to read • Edit Online
A data-driven subscription is a query-based subscription that gets the data values used for processing the
subscription at run time. When the subscription is triggered, a query is processed to get up-to-date information
about recipients, report delivery options, rendering formats, and parameter settings. The query results are
combined with the subscription definition to create a dynamic subscription that uses data you already maintain
in an employee database, a customer database, or any other database that contains information that can be
used as subscriber data.
To create a new data-driven subscription or modify an existing subscription, use the Manage > Subscriptions
page in the web portal. The Subscriptions page walks you through each step of creating or modifying a
subscription. To access a subscription after it is created, use the My Subscriptions page or the Subscriptions
list of a report. To learn how to create a data-driven subscription, see Create a Data-Driven Subscription (SSRS
Tutorial).
In this article:
Managing and deleting a data-driven subscription
Creating and modifying a data-driven subscription
Defining a query that retrieves subscription information
Running the subscription
NOTE
You can modify any value that is already specified. All values are presented as they were first created, except for
the password that is used to access the subscriber data store. You must retype the password every time you
modify values on the second page or any subsequent page.
Before you can create a data-driven subscription, ensure that you satisfy the following requirements:
Repor t requirements . The report must use stored credentials or no credentials to retrieve data at run
time. You cannot subscribe to a report that uses impersonated or delegated credentials to connect to an
external data source; the credentials of the user who creates or owns the subscription will not be available
when the subscription is processed. The stored credentials can be a Windows account or a database user
account. For more information, see Specify Credential and Connection Information for Report Data
Sources.
You cannot subscribe to a Report Builder report that uses a model as a data source and the model
contains model item security settings. Only reports that use model item security are included in this
restriction.
You cannot create a data-driven subscription on a report that contains the User!UserID expression.
Data requirements . You must have an accessible external data source that contains subscriber data.
User requirements . The author of the subscription must have permission to "Manage reports" and
"Manage all subscriptions." For more information about item-level task permissions, see Tasks and
Permissions. The author must also have the necessary credentials to access the external data source that
contains subscriber data.
See also
Create and Manage Subscriptions for Native Mode Report Servers
Subscriptions and Delivery (Reporting Services)
The web portal of a report server (SSRS Native Mode)
Create and Manage Subscriptions for Native Mode Report Servers
Working with subscriptions (web portal) Use My Subscriptions (Native Mode Report Server)
Use an External Data Source for Subscriber Data
(Data-Driven Subscription)
4/6/2020 • 3 minutes to read • Edit Online
In a data-driven subscription, dynamic subscription data is provided by a query or command that retrieves data
from an external data source. Subscription data can be retrieved from any supported data source that meets the
requirements for data-driven subscription processing. The query or command syntax must be valid for a data
processing extension installed with your report server.
Query Requirements
When creating query that retrieves subscription data, keep the following points in mind:
You can only create one query for the subscription.
The query must return all of the values that you want to use for delivery options and for specifying
report parameters.
The report server will create a report delivery for every row in the result set. If the result set consists of
three hundred rows, the report server will attempt to deliver three hundred reports.
See Also
Create, Modify, and Delete Data-Driven Subscriptions
Data-Driven Subscriptions
Subscriptions and Delivery (Reporting Services)
Monitor Reporting Services Subscriptions
11/2/2020 • 6 minutes to read • Edit Online
You can monitor Reporting Services subscriptions from the user interface, Windows PowerShell, or log files. The
options available to you for monitoring depend on what mode of report server you are running.
Applies to:
Reporting Services Native mode
Reporting Services SharePoint mode
In this ar ticle:
Native mode user interface
SharePoint mode
Use PowerShell to monitor subscriptions
Managing inactive subscriptions
Done: <number> processed of <number> total; <number> Shows the status of a data-driven subscription execution;
errors. this message is from the Scheduling and Delivery Processor.
<number> processed The number of notifications that the Scheduling and Delivery
Processor successfully delivered or is no longer attempting
to deliver. When a data-driven delivery completes, the
number of processed notifications should equal the total
number of generated notifications.
<number> total The total number of notifications generated for the last
delivery for the subscription.
STAT US DESC RIP T IO N
<number> error The number of notifications that the Scheduling and Delivery
Processor could not deliver or is no longer attempting to
deliver.
Failure sending mail: the transport failed to connect to the Indicates that the report server did not connect to the mail
server. server; this message is from the e-mail delivery extension.
File <filename> was written to <path>. Indicates that the delivery to the file share location was
successful; this message is from the file share delivery
extension.
An unknown error occurred when writing file. Indicates that the delivery to the file share location did not
succeed; this message is from the file share delivery
extension.
Failure connecting to the destination folder, <path>. Verify Indicates that the folder you specified could not be found;
the destination folder or file share exists. this message is from the file share delivery extension.
The file <filename> could not be written to <path>. Indicates that the file could not be updated with a newer
Attempting to retry. version; this message is from the file share delivery
extension.
Failure writing file <filename>: <message> Indicates that the delivery to the file share location did not
succeed; this message is from the file share delivery
extension.
<custom status messages> Status messages about delivery success and failure, provided
by delivery extensions. If you are using a third-party or
custom delivery extension, additional status messages may
be provided.
Report server administrators can also monitor standard subscriptions that are currently processing. Data-driven
subscriptions cannot be monitored. For more information, see Manage a Running Process.
If a subscription cannot be delivered (for example, if the mail server is unavailable), the delivery extension retries
the delivery. A configuration setting specifies the number of attempts to make. The default value is no retries. In
some cases, the report might have been processed without data (for example, if the data source is offline), in
which case text to that effect is provided in the body of the message.
Native mode log files
If an error occurs during delivery, an entry is made in the report server trace log.
Report server administrators can review the Repor tSer verSer vice_*.log files to determine subscription
delivery status. For e-mail delivery, report server log files include a record of processing and deliveries to
specific e-mail accounts. The following is the default location of the log files:
C:\Program Files\Microsoft SQL Server Reporting Services\SSRS\LogFiles
The following is a trace log file example error message related to subscriptions:
library!WindowsService_7!b60!05/20/2019-22:34:36 i INFO: Initializing EnableExecutionLogging to 'True' as
specified in Server system properties.emailextension!WindowsService_7!b60!05/20/2019-22:34:41 ERROR:
Error sending email . Exception: System.Net.Mail.SmtpException: The SMTP server requires a secure
connection or the client was not authenticated. The server response was: 5.7.1 Client was not authenticated at
System.Net.Mail.MailCommand.CheckResponse(SmtpStatusCode statusCode, String response)
The log file does not include information about whether the report was opened, or whether the delivery actually
succeeded. Successful delivery means that there were no errors generated by the Scheduling and Delivery
Processor, and that the report server connected to the mail server. If the e-mail resulted in an undeliverable
message error in the user mailbox, that information will not be included in the log file. For more information
about log files, see Reporting Services Log Files and Sources.
SharePoint mode
To monitor a subscription in SharePoint mode: the subscription status can be monitored from the Manage
Subscriptions page.
1. browse to the document library that contains the report
2. Open the context menu of the report (...).
3. Select the expanded menu option (...).
4. Select Manage Subscriptions
SharePoint ULS Log files
Subscription related information is written to the SharePoint ULS log. For more information on configuring
Reporting Services events for the ULS log, see Turn on Reporting Services events for the SharePoint trace log
(ULS). The following is an example ULS log entry related to Reporting Services subscriptions.
C O RREL AT IO
DAT E P RO C ESS A REA C AT EGO RY L EVEL N M ESSA GE
C O RREL AT IO
DAT E P RO C ESS A REA C AT EGO RY L EVEL N M ESSA GE
5/21/2019 App Pool: SQL Server Report Server Unexpected (empty) Error
14:34:06:15 a0ba0393322 Reporting Email sending
94f40bc4a81 Services Extension email.
544afde01d Exception:
System.Net.M
ail.SmtpExcept
ion: Mailbox
unavailable.
The server
response was:
5.7.1 Client
does not have
permissions
to send as
this sender at
System.Net.M
ail.DataStopC
ommand.Che
ckResponse(S
mtpStatusCod
e statusCode,
String
serverRespon
se) at
System.Net.M
ail.DataStopC
ommand.Sen
d(SmtpConne
ction conn) at
System.Net.M
ail.SmtpClient.
Send(MailMes
sage
message) at
Microsoft.Rep
ortingServices
.EmailDelivery
Provider.Email
Provider.Deliv
er(Notification
notification)
See also
Create and Manage Subscriptions for Native Mode Report Servers
Subscriptions and Delivery (Reporting Services)
Change the Default Reporting Services Delivery
Extension
4/6/2020 • 2 minutes to read • Edit Online
You can modify Reporting Services configuration settings to change the default delivery extension that appears
in the Delivered by list of a subscription definition page. For example you can modify the configuration so that
when users create a new subscription, file share delivery is selected by default instead of e-mail delivery. You
can also change the order the delivery extensions are listed in the user interface.
Applies to: Reporting Services Native mode | Reporting Services SharePoint mode
Reporting Services includes E-mail and Windows File Share delivery are extensions. Your report server might
have additional delivery extensions if you have deployed custom or third-party extensions to support custom
delivery. The availability of a delivery extension depends on whether it is deployed on a report server.
The following is the default section of RSRepor tSer ver.config that controls the default delivery extension and
the order they are displayed in Report Manager. Note that email appears first in the file and it is set as the
default.
<DeliveryUI>
<Extension Name="Report Server Email"
Type="Microsoft.ReportingServices.EmailDeliveryProvider.EmailDeliveryProviderControl,ReportingServicesEmailD
eliveryProvider">
<DefaultDeliveryExtension>True</DefaultDeliveryExtension>
<Configuration>
<RSEmailDPConfiguration>
<DefaultRenderingExtension>MHTML</DefaultRenderingExtension>
</RSEmailDPConfiguration>
</Configuration>
</Extension>
<Extension Name="Report Server FileShare"
Type="Microsoft.ReportingServices.FileShareDeliveryProvider.FileShareUIControl,ReportingServicesFileShareDel
iveryProvider"/>
</DeliveryUI>
Configure File Share Delivery as the default delivery extension in Report Manager
1. The steps in this procedure modify the configuration so that file share delivery is listed as the first option
in the UI and it is the default selection.
Open the RSReportServer.config file in a text editor. For more information on the configuration file, see
RsReportServer.config Configuration File. After the configuration changes, the UI will look like the
following image:
2. Modify the DeliveryUI section to look like the following sample and note the key changes of:
a. The FileShare extension is before the email extension. This will change the order the extensions are
listed in Report Manager.
b. The File share extension contains DefaultExtension tag
<DefaultDeliveryExtension>True</DefaultDeliveryExtension> and the extension end tag was added
</Extension> .
c. The email extension is no longer configured as the default.
<DefaultDeliveryExtension>False</DefaultDeliveryExtension>
<DeliveryUI>
<Extension Name="Report Server FileShare"
Type="Microsoft.ReportingServices.FileShareDeliveryProvider.FileShareUIControl,ReportingServicesFileS
hareDeliveryProvider">
<DefaultDeliveryExtension>True</DefaultDeliveryExtension>
</Extension>
<Extension Name="Report Server Email"
Type="Microsoft.ReportingServices.EmailDeliveryProvider.EmailDeliveryProviderControl,ReportingService
sEmailDeliveryProvider">
<DefaultDeliveryExtension>False</DefaultDeliveryExtension>
<Configuration>
<RSEmailDPConfiguration>
<DefaultRenderingExtension>MHTML</DefaultRenderingExtension>
</RSEmailDPConfiguration>
</Configuration>
</Extension>
</DeliveryUI>
get-sprsserviceapplication | format-list *
3. Run the following PowerShell to verify the current default delivery extension for the Reporting Services
service application "ssrsapp".
See Also
RsReportServer.config Configuration File
RsReportServer.config Configuration File
File Share Delivery in Reporting Services
E-Mail Delivery in Reporting Services
Manage Subscription Owners and Run Subscription
- PowerShell
11/2/2020 • 7 minutes to read • Edit Online
APPLIES TO: ✔
️ SQL Server 2016 Reporting Services and later ✔
️ SharePoint
Starting with SQL Server 2008 R2Reporting Services you can programmatically transfer the ownership of a
Reporting Services subscription from one user to another. This topic provides several Windows PowerShell
scripts you can use to change or simply list subscription ownership. Each sample includes sample syntax for
both Native mode and SharePoint mode. After you change the subscription owner, the subscription will then
execute in the security context of the new owner, and the User!UserID field in the report will display the value of
new owner. For more information on the object model the PowerShell samples call, see
ChangeSubscriptionOwner
In this topic:
How to use the scripts
Script: List the ownership of all subscriptions
Script: List all subscriptions owned by a specific user
Script: Change ownership for all subscriptions owned by a specific user
Script: List all subscriptions associated with a specific report
Script: Change ownership of a specific subscription
Script: Run (fire) a single subscription
Script:
# Parameters
# server - server and instance name (e.g. myserver/reportserver or myserver/reportserver_db2)
Param(
[string]$server,
[string]$site
)
TIP
To verify site URLS in SharePoint mode, use the SharePoint cmdlet Get-SPSite . For more information, see Get-SPSite.
Script:
# Parameters:
# currentOwner - DOMAIN\USER that owns the subscriptions you wish to change
# server - server and instance name (e.g. myserver/reportserver or myserver/reportserver_db2)
# site - use "/" for default native mode site
Param(
[string]$currentOwner,
[string]$server,
[string]$site
)
Script:
# Parameters:
# currentOwner - DOMAIN\USER that owns the subscriptions you wish to change
# newOwner - DOMAIN\USER that will own the subscriptions you wish to change
# server - server and instance name (e.g. myserver/reportserver, myserver/reportserver_db2,
myserver/_vti_bin/reportserver)
Param(
[string]$currentOwner,
[string]$newOwner,
[string]$server
)
$subscriptions = @();
$subs2 = @();
Script:
# Parameters:
# server - server and instance name (e.g. myserver/reportserver or myserver/reportserver_db2)
# reportpath - path to report in the report server, including report name e.g. /reports/test report >>
pass in "'/reports/title only'"
# site - use "/" for default native mode site
Param
(
[string]$server,
[string]$reportpath,
[string]$site
)
Script:
# Parameters:
# newOwner - DOMAIN\USER that will own the subscriptions you wish to change
# server - server and instance name (e.g. myserver/reportserver or myserver/reportserver_db2)
# site - use "/" for default native mode site
# subscriptionID - guid for the single subscription to change
Param(
[string]$newOwner,
[string]$server,
[string]$site,
[string]$subscriptionid
)
$rs2010 = New-WebServiceProxy -Uri "https://$server/ReportService2010.asmx" -Namespace
SSRS.ReportingService2010 -UseDefaultCredential;
$rs2010.ChangeSubscriptionOwner($subscription.SubscriptionID, $newOwner)
<Type>TimedSubscription</Type>
</Event>
For more information on the configuration file, see RsReportServer.config Configuration File.
The script includes delay logic " Start-Sleep -s 6 " so there is time after the event fires, for the updated status to
be available with the ListSubscription method.
Native mode syntax:
Script:
# Parameters
# server - server and instance name (e.g. myserver/reportserver or myserver/reportserver_db2)
# site - use $null for a native mode server
# subscriptionid - subscription guid
Param(
[string]$server,
[string]$site,
[string]$subscriptionid
)
See also
ReportingService2010.ListSubscriptions Method
ReportingService2010.ChangeSubscriptionOwner Method
ReportingService2010.ListChildren
ReportingService2010.FireEvent
Reporting Services Tools
11/2/2020 • 5 minutes to read • Edit Online
SQL Server Reporting Services contains a set of graphical and scripting tools that support the development and
use of rich reports in a managed environment. The tool set includes development tools, configuration and
administration tools, and report viewing tools. This article gives a brief overview of each tool in Reporting
Services and how it can be accessed.
To find a tool right away, see Tutorial: How to Locate and Start Reporting Services Tools (SSRS).
SQL Server Mobile Report Publisher With Mobile Report Publisher, you can Download the SQL Server Mobile
create mobile reports that dynamically Report Publisher
adjust the content to fit your screen or
browser window and scale well to any
screen size.
Power View An interactive data exploration and Reporting Services in SharePoint mode.
visual presentation experience Browser with Silverlight.
designed to let you create and interact
with reports based on Analysis
Services tabular models.
TO O L DESC RIP T IO N H O W TO A C C ESS
Report Designer Use this tool to design reports. SQL Server Data Tools (SSDT)
Includes the following features:
Report Builder Use this tool to design reports. Download the standalone version of
Includes the following features: Report Builder
Aggregates of aggregates
Report Server Configuration Manager Use this tool to configure a Reporting Start menu
Services installation. Available tasks
include:
SQL Server Management Studio Use this tool to manage one or more Start menu
report server instances in a single
environment, including:
Managing jobs
Rsconfig Utility Use this tool to configure and manage Command prompt
a report server connection to the
report server database. You can also
use it to specify a user account to use
for unattended report processing.
Windows Management Use these classes to automate the Visual Basic script
Instrumentation (WMI) Classes configuration tasks in Report Server
Configuration Manager without the
need to use the graphical user
interface.
SharePoint Central Administration Use SharePoint Central Administration Browser to the SharePoint site URL for
to create, query, and manage the Central Administration
shared service applications for
Reporting Services.
PowerShell Cmdlets Use PowerShell cmdlets to create, SharePoint 2010 Management Shell
query, and manage the shared service
applications for Reporting Services.
Report Server Web service URL Use this tool to browse content in the Browser
report catalog in a generic item
navigation page.
RS Utility This tool is a script host that you can Command prompt
use to perform scripted operations.
Use this tool to run Visual Basic scripts
that copy data between report server
databases, publish reports, create
items in a report server database, and
more. For more information, see
Report Server Command Prompt
Utilities (SSRS).
See also
Reporting Services Report Server
Reporting Services Concepts (SSRS)
What is SQL Server Reporting Services (SSRS)
Reporting Services in SQL Server Data Tools (SSDT)
3/5/2021 • 17 minutes to read • Edit Online
SQL Server Data Tools (SSDT) is a Microsoft Visual Studio environment for creating business intelligence
solutions. SSDT features the Report Designer authoring environment, where you can open, modify, preview,
save, and deploy Reporting Services paginated report definitions, shared data sources, shared datasets, and
report parts. SQL Server Data Tools (SSDT) is not included with SQL Server. Download SQL Server Data Tools.
This topic describes SQL Server Data Tools solutions, projects, project templates, and configurations used for
Reporting Services, and the views, menus, toolbars, and shortcuts that you can use in Report Designer.
To get started designing reports, see Design Reports with Report Designer (SSRS).
Configurations
To create multiple sets of project properties for deployment variations such as enterprise test and production
report servers, use the Configuration Manager. For more information, see Deployment and Version Support in
SQL Server Data Tools (SSRS).
NOTE
If you do not see the Report Data pane, click in the Design area and then on the View menu, click Repor t Data . If the
Report Data pane is floating, you can anchor it. For more information, see Dock the Report Data Pane in Report Designer
(SSRS).
Grouping Pane
Use the Grouping pane to define groups for a tablix data region. You can define row groups and detail groups
for tables and row and column groups for matrices. You cannot use the Grouping pane to define groups for
Charts or other data regions. For more information, see Understanding Groups (Report Builder and SSRS).
The Grouping pane has two modes:
Default. Use the Default mode to display all row and column groups in a hierarchical format that shows
the relationship of parent groups, child groups, adjacent groups, and detail groups. A child group appears
under and at the next indent level compared to its parent group. An adjacent group appears at the same
indent level as its peer or sibling groups.
Use default mode to add, edit, or delete groups. For groups based a single dataset field, drag the field to
the Row Groups or Column Groups pane. You can insert the group above or below an existing group. To
add an adjacent group, right-click the sibling group, and use the shortcut menu. To display which tablix
cells belong to a group, select the group in the Grouping pane.
Advanced. Use the Advanced mode to display static and dynamic row and column group members of
the selected tablix data region. You must use group members to set properties that control the visibility of
the rows and columns associated with a group or group member, or the rules that renderers use to try to
keep groups together on a page. Group members appear on the design surface as cells in the row group
and column group areas.
NOTE
To toggle between Default and Advanced modes, right-click the down arrow to the right of the Column Groups icon.
Source Control
SQL Server Data Tools can integrate with source plug-ins. Use the Projects and Solutions pages in the Options
dialog box to specify the plug-in and configure properties.
Custom Report Templates
To use custom reports as templates for new reports, you simply copy them to the ReportProject folder on the
computer on which SQL Server Data Tools is installed. By default, this folder is in the following location:
<drive>:\Program Files\Microsoft Visual Studio 14.0\Common7\IDE\Private Assemblies\ProjectItems\ReportProject
. When you add a new item to the report project, your custom report appears in the Templates pane.
You can also add custom styles to the report wizard.
/build Build the solution file, but do not deploy it. For example, the following command builds the
reports specified by the solution file Reports.sln by using the Debug configuration settings that are
specified in the project properties:
/out Redirect the output generated by building a solution to the specified file. For example, the following
command redirects the output from the build in the previous example to a file named mybuildlog.txt.
DESC RIP T IO N K EY C O M B IN AT IO N
Start debugging F5
DESC RIP T IO N K EY C O M B IN AT IO N
Move focus from one report item to the next report TAB
item
Increase or decrease the size of the selected report item CTRL+SHIFT+Arrow keys
In a text box, move cursor to the end of the display text CTRL+END
that is visible
In a text box, select text from the current cursor position SHIFT+HOME
to the beginning of the display text that is visible
In a text box, select text from the current cursor position SHIFT+END
to the end of the display text that is visible
In a text box, select text from the current cursor position CTRL+SHIFT+HOME
to the beginning of the expression
In a text box, select text from the current cursor position CTRL+SHIFT+END
to the end of the expression
Open the shortcut menu for the selected report item SHIFT+F10+Property Key on newer keyboards
Next steps
Download SQL Server Data Tools Solution Explorer
Reporting Services Reports
Report Definition Language
Deployment and Version Support in SQL Server Data Tools
More questions? Try asking the Reporting Services forum
Design Reporting Services Paginated Reports with
Report Designer (SSRS)
3/5/2021 • 13 minutes to read • Edit Online
Use Report Designer to create full-featured Reporting Services paginated reports and reporting solutions.
Report Designer provides a graphical interface in which you can define data sources, datasets and queries,
report layout positions for data regions and fields, and interactive features such as parameters and sets of
reports that work together.
Report Designer is a feature of SQL Server Data Tools (SSDT), a Microsoft Visual Studio environment for creating
business intelligence solutions. SQL Server Data Tools (SSDT) is not included with SQL Server. Download SQL
Server Data Tools.
Paginated Reports
Paginated reports are files that are stored in a report project. Reports can be used as stand-alone reports,
subreports, or the targets for drillthrough actions from main reports. Reports can be deployed independently
from other items in a project by using TargetRepor tFolder and other properties. For more information, see
Set Deployment Properties (Reporting Services).
NOTE
If you are publishing to a report server in SharePoint mode, some report solution features cannot be tested in the Report
Designer project. References to reports, subreports, and drillthrough reports must use fully-qualified URLs that can be
tested only after you deploy the report project. For more information, see URL Examples for Published Report Items on a
Report Server in SharePoint Mode (SSRS).
Work directly in RDL. When you write a report in Report Designer, the report is saved in XML format
as a Report Definition Language (RDL) file. You can edit this file in Report Designer, a text editor, or any
tool in which you can edit XML.
When you edit the report definition source in Report Designer, you are working in the current RDL
schema for the version of SQL Server from which you installed the development tools. When you build a
project, the schema version might change depending on your deployment properties. For more
information, see Deployment and Version Support in SQL Server Data Tools (SSRS).
Editing RDL directly can result in a report that cannot be published to the report server or cannot run. As
with any XML file, ensure that XML-specific characters used within elements are properly encoded. When
you publish the report, the report server uses the schema to validate the XML contained within the RDL
file.
To include elements that are not part of the RDL schema, place them in the Custom Element. The Custom
element can be read by custom rendering extensions, but is ignored by the rendering extensions
provided with Reporting Services. For example, you can use the Custom element to store comments in
the report.
For more information, see Report Definition Language (SSRS).
Report Parts
In Report Designer, after you create tables, charts, and other paginated report items in a project, you can publish
them as report parts to a report server or SharePoint site integrated with a report server so that you and others
can reuse them in other reports. For more information, see Report Parts in Report Designer (SSRS).
Report parts can be deployed independently from other items in a project by using TargetRepor tPar tFolder
and other properties. For more information, see Set Deployment Properties (Reporting Services).
Resources
You can add files to your project that are related to your report but not processed by the report server. For
example, you can add images for pictures or ESRI shapefiles for spatial data. For more information, see
Resources.
NOTE
To use Debug mode, you must set a start item. In Solution Explorer, right-click the report project, click
Proper ties , and in Star tItem , select the name of the report to display.
If you wish to preview a particular report that is not the start item for the project, select a configuration
that builds the report but does not deploy it (for example, the DebugLocal configuration), right-click the
report, and then click Run . You must choose a configuration that does not deploy the report; otherwise,
the report will be published to the report server instead of displayed locally in a preview window.
Print Preview.
When you first view a report on in Preview mode or in the preview window, the view of the report
resembles a report produced by the HTML rendering extension. The preview is not HTML, but the layout
and pagination of the report is similar to HTML output.
You can change the view to represent a printed report by switching to print preview mode. Click the Print
Preview button on the preview toolbar. The report will display as though it were on a physical page. This
view resembles the output produced by the Image and PDF rendering extensions. Print preview is not an
image or PDF file, but the layout and pagination of the report is similar the output in those formats. You
can choose the size of the report image, for example, set the width of the page.
Print preview helps you identify many of rendering problems you might encounter were you to print the
report. Common rendering problems include:
Extra blank pages because the report is too wide to fit on the paper size you specified for the
report.
Extra blank pages because the report contains a matrix that dynamically expands to exceed the
width of the paper specified.
Page breaks between groups do not work the way you want.
Headers and footers do not display as expected.
Report layout needs modification to read better in a printed format.
NOTE
For debugging expressions and deployment errors, you must view the report definition in the build folder. Do not use
View Source . View Source displays the report definition source from the project folder.
For more information, see Deployment and Version Support in SQL Server Data Tools (SSRS).
Save a Report Locally
When you work on report or other project items in Report Designer, the files are saved to your local computer
or a share on another computer that you have access to.
If you are using source control software, you might be checking your reports into the source control server
when you save the report. For more information, see Source Control.
Deploy or Publish Paginated Reports
From SQL Server Data Tools, you can deploy reports or other project items to multiple versions of Reporting
Services report servers. Use project configurations to control the upgrade of report definitions to schema
versions compatible with target report servers. The properties controlled by project configurations include the
target report server, the folder where the build process temporarily stores report definitions for preview and
deployment, and error levels. For more information, see Configuration and Deployment Properties and Set
Deployment Properties (Reporting Services).
Export a Paginated Report to a Different File Format
Reports can be exported to a variety of formats and these formats affect how some report layout and
interactivity features function. For more information about design considerations for various output formats, see
Export Reports (Report Builder and SSRS).
When you attempt to preview or deploy a report that contains report items new in SQL Server 2016 Reporting
Services or later (SSRS), those report items can be removed from the report. By default, the ErrorLevel property
of the configuration is set to 2, which would cause the build of the report to fail when the map is removed.
However, if you change the value of the ErrorLevel property to 0 or 1, the map is dropped, a warning issued, and
the build process continues.
Next steps
Download SQL Server Data Tools
Reporting Services in SQL Server Data Tools
Query Design Tools
Deployment and Version Support in SQL Server Data Tools
More questions? Try asking the Reporting Services forum
Add a New or Existing Report to a Report Project
(SSRS)
11/2/2020 • 2 minutes to read • Edit Online
In SQL Server Data Tools (SSDT), you can add a new Reporting Services paginated report by using the Report
Wizard or by adding a new blank report to your project. You can also add an existing report. After you add a
report, you can see the report name listed under the Repor ts folder in your project.
NOTE
To preview a report with existing data sources, you must have permissions to the data source from your report authoring
client. For more information, see Data Connections, Data Sources, and Connection Strings.
After you add a report, you can define data sources, datasets, and design a report layout. To get started, see
Create a Basic Table Report (SSRS Tutorial) or Tables (Report Builder and SSRS).
See Also
Reporting Services Tutorials (SSRS)
More questions? Try the Reporting Services forum
Deployment and Version Support in SQL Server
Data Tools (SSDT)
3/5/2021 • 3 minutes to read • Edit Online
Supported Versions
NOTE
SQL Server Data Tools (SSDT), the 32-bit development environment for Report Server projects, is not designed to run on
Itanium-based computers and is not installed on Itanium-based servers. However, support for SQL Server Data Tools is
available for x64-based computers.
The following table describes the supported versions for authoring and publishing reports in SQL Server Data
Tools (SSDT).
NOTE
The schema has not changed since SQL Server 2008.
P RO JEC T O R F IL E
TYPE VERSIO N A UT H O R REP O RT S P UB L ISH REP O RT S N OT ES
Report Server Project SQL Server 2016 2016 RDL schema SQL Server 2016
Reporting Services or Reporting Services or
or later (SSRS) later (SSRS)
Report Server Project SQL Server 2014 2014 RDL schema SQL Server 2014
(12.x) (12.x) Reporting
or Services
Report Server Project SQL Server 2012 2012 RDL schema SQL Server 2012
(11.x) (11.x) Reporting
or Services
Report Server Project SQL Server 2008 R2 2008 R2 RDL schema SQL Server 2008 R2
Reporting Services
or
Report Server Project SQL Server 2008 2008 RDL schema SQL Server 2008 Upgrades 2003 RDL
Reporting Services and 2005 RDL to the
or report server only 2008 RDL schema
locally.
Report Server Wizard
Project
For more information about opening reports in a previous version of the report definition schema, see Upgrade
Reports. For more information about specific report definition schemas, see Report Definition Language
Specification.
See Also
Publishing Data Sources and Reports
URL Examples for Items on a Report Server -
SharePoint Mode
11/2/2020 • 10 minutes to read • Edit Online
To publish reports and related items to a SharePoint library, you can either publish the content using the
Reporting Services authoring tools such as Report Designer or you can upload the content by using SharePoint
site actions.
SharePoint sites use different Web addresses than a Reporting Services report server in native mode. A
SharePoint site Web hierarchy includes the SharePoint Web application, a top-level site, optional subsites, and
libraries. You must know how to create a URL address that specifies the SharePoint server as well as the location
in the SharePoint site hierarchy where you want to publish a report or related items.
Items related to a report include shared data sources, subreports, drillthrough reports, and resources such as
Web-based image files. A report that has been published to a SharePoint library must specify these related
items by their location in the SharePoint library.
Use the examples in this topic to help create URLs to reports and related items in your reporting solutions.
Site Hierarchy
When you configure a report server to run in SharePoint integrated mode, the SharePoint Web hierarchy is used
to address items that are processed and managed on a report server.
The following elements of the Web hierarchy can be used to access and secure report server content. Other
objects such as lists and pages are not used to access report server content and therefore are not described in
the following table.
Item Report server items that you can reference in a URL include
a report definition for a report or subreport, a report model,
a shared data source, or an external image.
Using the Reporting Services URL proxy endpoint is not supported. A proxy endpoint includes a port number,
for example, http:*//servername:8080/reportserver* .
URL for a SharePoint Server Site or Subsite
When you deploy a report or report data source, you must use a URL to a SharePoint site and subsite, if there is
one. In the URL, the site name appears immediately after the server name., for example,
https://*servername/site* or https://*servername/site/subsite* .
On a Microsoft Office SharePoint Server 2007 or SharePoint Server 2010 Web application, the site and subsite
frequently correspond to the tabs on the main site. To find the site name or subsite name, click Home , and then
All Site Content . Scroll to the bottom and look for Sites and Workspaces . The list of sites appears in this
section.
URL for a SharePoint Library
When you deploy a report or related item to a SharePoint library, you must use a URL to the SharePoint library.
The URL to use for a library differs depending on the version of SharePoint you are using.
On Microsoft Windows SharePoint Services 3.0 or SharePoint Foundation 2010, the library appears after the
server name, for example, https://*servername/*Shared Documents .
On Office SharePoint Server 2007 or SharePoint Server 2010, the library appears after the site and subsite. For
example, https://*servername/site/*Documents .
To find the path information for a new SharePoint library or for an unfamiliar site, open a browser and locate the
SharePoint library where you want to publish your reports. If the library is empty, upload any file. Right-click the
file and select Proper ties to open the Proper ties window. The address of the file contains the URL values that
you need for a publish operation.
Fully qualified URLs for Items on a SharePoint Site
Items that are stored in a SharePoint library are always addressed through a fully qualified URL that starts with
the Web application ( https://*server* ) as the root node, and concludes with the name of the file that you are
referencing.
File names in the URL must include a file name extension.
You cannot use relative URLs for dependent items in reports that you publish to a SharePoint site. For example,
you cannot use a relative URL to reference a shared data source, report model, or subreport. You must always
specify the fully qualified URL to a SharePoint library for each item. There is no way to predict where a
dependent file might be located as there is no predefined hierarchy to the sites that you can use to parse a URL
format.
When you publish or upload a report that contains dependent items, you must set the references to the
dependent items after the report is published. References that worked correctly in Preview mode in Report
Designer are not guaranteed to work after the report is published. For more information, see Publishing from an
Authoring Tool to a SharePoint Library in this topic.
URLs for External Images
A report definition can include an image file that is stored as an external file. You can reference that file in the
report definition by setting a fully qualified URL to the image file. It can be stored on a SharePoint site or on a
remote computer.
IMPORTANT
If the external URL is for an image on a SharePoint site, the broken image icon will appear when you preview the report in
Report Builder. When you upload the report to the SharePoint site, and render the report in connected mode, the broken
image icon will appear if you have only View Items permissions.
Regardless of the report server mode, references to an external image file in a report must be a fully qualified
URL. Also, referencing an external image file typically requires that you configure the unattended report
processing account.
Specifying Subreports and Drillthrough Reports
Subreports must reside in the same folder as the main report. You cannot specify a relative folder.
To specify drillthrough reports, include the URL in an expression. For example, to specify the report that is
named SalesDetails as a drillthrough report, in the Action for the text box or placeholder text, set ReportName to
the following expression:
="https://site/subsite/documentlibrary/SalesDetails.rdl"
Examples of URLs
When publishing items to a SharePoint library, you must specify fully qualified URLs to the target library. A fully
qualified SharePoint URL includes the SharePoint Web application, site, library, folder (optional), file, and file
name extension. The following examples provide several illustrations of the syntax you should use.
See Also
Publish a Report to a SharePoint Library
Publish a Shared Data Source to a SharePoint Library
Project Property Pages Dialog Box
Set Deployment Properties (Reporting Services)
11/2/2020 • 5 minutes to read • Edit Online
In SQL Server Data Tools (SSDT) or Visual Studio, you must specify the report server and optionally the folders
for reports and shared data sources so that you can publish the items in a Report Server project to a report
server. The properties and values that SQL Server Data Tools (SSDT) or Visual Studio need to build, preview, and
deploy reports are stored in project configurations of the Report Server project. You can create multiple named
sets for these project properties, so that you can conveniently switch between property sets. Each set of
properties is a configuration. For example, you can have a configuration for publishing reports to a test server
and a different configuration for publishing reports to a production server.
Use Configuration Manager to create and manage sets of project properties in project configurations.
Configuration Manager is a feature supported by Visual Studio, on which SQL Server Data Tools is based.
NOTE
Do not confuse this feature with the Report Server Configuration Manager, which is used to configure Reporting Services
after installation. For more information, see Configure and Administer a Report Server (SSRS Native Mode).
NOTE
In SQL Server Data Tools, the action of publishing reports from a Report Server project or solution is known as deploying
reports.
NOTE
You can use multiple configurations to switch quickly between different report servers or settings.
3. In the OutputPath textbox, type or paste the path in your local file system to store the report definition
used in build verification, deployment, and preview of reports. The path must be different than the path
that you use for the project and a relative path that is a child folder under the path of the project.
4. In the ErrorLevel text box, type the severity of the build issues that are reported as errors. Issues
occurring when building reports, data sources, or other project resources with severity levels less than or
equal to the value of ErrorLevel are reported as errors; otherwise, the issues are reported as warnings.
Any error will cause the build task to fail. The valid severity levels are 0 through 4 inclusive. The default
value is 2.
ErrorLevel can be used to increase or decrease the sensitivity of the build. For example, when a report
with a map is built during deployment to a SQL Server 2008 report server an error displays by default
and building the report fails. If you lower ErrorLevel the map is removed from the report, a warning
displays, and building the report continues.
5. In the Star tItem list, select a report to display in the preview window or in a browser window when the
report project is run.
6. In the Over writeDataSources list, select True to overwrite the shared data source on the server each
time shared data sources are published, or select False to keep the data source on the server.
7. In the TargetSer verVersion list, select SQL Server 2016 version of Reporting Services or select Detect
Version to automatically determine the version installed on the server identified by the TargetSer ver
URL property. The default value is SQL Ser ver 2016 or later .
Use TargetSer verVersion to customize the built reports, placed in the path specified in OutputPath, for
the version of the report server specified in TargetSer ver URL .
8. In the TargetDataSourceFolder text box, type the folder on the report server in which to place the
published shared data sources. The default value for TargetDataSourceFolder is Data Sources. If you
leave this value blank, the data sources will be published to the location specified in
TargetRepor tFolder .
9. In the TargetRepor tFolder text box, type the folder on the report server in which to place the published
reports. The default value for TargetRepor tFolder is the name of the report project.
NOTE
For a report server running in native mode, you must have Publish permissions on the target folder to publish
reports to that folder. Publish permissions are provided through a role assignment that maps your user account
to a role that includes publish operations. For more information, see Create and Manage Role Assignments. For a
report server running in SharePoint integrated mode, you must have Member or Owner permission on the
SharePoint site. For more information, see SharePoint Site and List Permission Reference for Report Server Items.
10. In the TargetSer verURL text box, type the URL of the target report server. Before you publish a report,
you must set this property to a valid report server URL. When publishing to a report server running in
native mode, use the URL of the virtual directory of the report server (for example,
http://server/reportserver or https://server/reportserver). This is the virtual directory of the report
server, not the web portal.
When publishing to a report server running in SharePoint integrated mode, use a URL to a SharePoint
top-level site or subsite. If you do not specify a site, the default top-level site is used, (for example,
https://*servername* , https://*servername*/*site* , or https://*servername*/*site*/*subsite* ).
NOTE
If Build is selected, Report Designer builds the report project and checks for errors before previewing or
publishing to a report server. If Deploy is selected, Report Designer publishes the reports to the report server as
defined in deployment properties. If Deploy is not selected, Report Designer displays the report specified in the
Star tItem property in a local preview window.
See also
Publishing Data Sources and Reports
Previewing Reports
Report Designer F1 Help
URL Examples for Published Report Items on a Report Server in SharePoint Mode (SSRS)
Project Property Pages Dialog Box
Publishing Reports to a Report Server
Dock the Report Data Pane in Report Designer
(SSRS)
11/2/2020 • 2 minutes to read • Edit Online
In Reporting Services Report Designer in SQL Server Data Tools (SSDT), the Report Data pane displays a
hierarchical view of data objects that you can use in a report, including data sources, datasets, fields, parameters,
and images. Data sources in this view can be embedded or references to shared data sources that are displayed
in Solution Explorer.
To display the Report Data pane
In Design view, on the View menu, select Repor t Data , or use CTRL+ALT+D.
To dock the Report Data pane
1. Grab the title bar of the Report Data pane and start to drag the pane. Docking arrows appear on the
design surface.
2. Drop the Report Data pane onto one of the arrows to dock the pane.
To change the Report Data pane from a docked window to a tabbed window
Right-click the title bar of the Report Data pane and then click Dock as Tabbed Document .
To change the Report Data pane from a tabbed window to a docked window
Right-click the Report Data tab and then click Dock .
To toggle between the last two display states, double-click the title bar of the Report Data pane.
See Also
Report Data Pane
Create data connection strings - Report Builder & SSRS
Report Designer F1 Help
11/2/2020 • 2 minutes to read • Edit Online
This section provides F1 Help for the SQL Server Reporting Services Report Designer wizards, views, and dialog
boxes in SQL Server Data Tools (SSDT). Alternatively, you can open the F1 Help while working with the dialog
box by pressing F1 or by clicking the Help button displayed in the dialog box.
See Also
Install SQL Server Data Tools - Business Intelligence for Visual Studio
Feature Refernce (Reporting Services)
Reporting Services Reports (SSRS)
Document Outline
11/2/2020 • 2 minutes to read • Edit Online
Use the Document Outline window to view the hierarchy of report items in a report. Tablix data regions display
all the text boxes and other report items that are contained in Tablix cells. When you select a report item on the
design surface, the corresponding report item is selected in the Document Outline window. Use this view to
locate report items on the design surface. For example, when you preview a report with expression errors, the
Output window displays a message for each error. The message includes the name of the text box that contains
the expression with the error. You can click the name of the text box in the Document Outline window, see it
selected on the design surface, and view the expression that contained the error.
If the Document Outline window is not visible, on the View menu, click Other Windows , and then click
Document Outline . Or use CTRL+ALT+T.
Options
Expand All
Click to expand all nodes in the hierarchy.
Collapse All
Click to collapse all nodes in the hierarchy.
Design View
11/2/2020 • 2 minutes to read • Edit Online
In Reporting Services Report Designer, use Design view to arrange report items in the report. Design view is
sometimes called the design surface or layout view.
Toolbox
The Toolbox lists data regions and other report items that are available for your report. To add report items from
the Toolbox, double-click the item or drag it to the design surface. You can then change the shape and size by
using the object handles.
Grouping Pane
Groups are used to organize your report data into a visual hierarchy and to calculate totals. Use the Grouping
pane to view the groups defined for a table, matrix, or list data region. By default, the Grouping pane displays all
the groups for the selected data region as a flattened list. The Grouping pane is disabled for Chart and Gauge
data regions.
To see the groups in relationship to one another, toggle the Grouping pane to Advanced mode. This mode
displays the hierarchy of group members, a visual display of cells in the data region that correspond to each
group.
For more information, see Grouping Pane.
Properties Pane
Use the Properties pane to view properties for the currently selected report item on the design surface or the
currently selected group in the Grouping pane. Alternatively, you can right-click on a selected report item or
group and then click Proper ties to open the corresponding Proper ties dialog box for the report item or
group.
See Also
Page Headers and Footers (Report Builder and SSRS)
Report Design Tips (Report Builder and SSRS)
Preview View
11/2/2020 • 2 minutes to read • Edit Online
In Reporting Services Report Designer, use Preview view to display the rendered report. When a report is
previewed, Report Designer runs the report locally and displays it in the Preview view. In preview mode, the
report is processed in full. If the report has a complex query or has a large amount of data, preview might take
several minutes to complete the first time you view it. For subsequent changes that affect only the format of the
report, preview uses cached data.
Options
Use the toolbar to manage preview functions.
See Also
Previewing Reports
Report Designer F1 Help
Grouping Pane
11/2/2020 • 4 minutes to read • Edit Online
When designing Reporting Services reports, the Grouping pane displays the row groups and column groups for
the currently selected Tablix data region. The Grouping pane is not available for the Chart or Gauge data regions.
The Grouping pane consists of a Row Groups pane and a Column Groups pane. The Grouping pane has two
modes: default and Advanced. Default mode displays a hierarchical view of the dynamic members for row and
column groups. Advanced mode displays both dynamic and static members for row and column groups. A
group is a named set of data from a report dataset that is displayed on a data region. Groups are organized into
hierarchies that include static and dynamic members. For more information, see Understanding Groups (Report
Builder and SSRS).
If you do not see the Grouping pane, on the Repor t menu, click Grouping .
Cells in the row and column group areas can be static or dynamic members of a group. Static members repeat
once per group and typically contain labels or totals. Dynamic members repeat once per group instance and
typically contain the unique values of the group expression. As you select Tablix cells in the row group area or
column group area, the corresponding group member is selected in the Row Groups or Column Groups pane.
Conversely, if you select groups in the Grouping pane, the corresponding cell associated with the group member
is selected on the design surface. For more information about Tablix row and column group areas, see Tablix
Data Region Areas (Report Builder and SSRS).
The Grouping pane supports the following modes:
Default. Use the default mode to add, edit, or delete groups. You can add parent, child, and detail groups
by dragging fields from the Report Data pane and inserting them in the group hierarchy. To add an
adjacent group, you must use the Add Group shortcut. For more information, see Add or Delete a Group
in a Data Region (Report Builder and SSRS).
Advanced . Use the Advanced mode to view all members of row and column groups, and to set
properties on static members. When you create groups or add totals, the properties that control how the
Tablix data region renders rows and columns on each report page are set automatically. To manually
adjust these properties, you must set them on the Tablix member. For more information, see Controlling
the Tablix Data Region Display on a Report Page (Report Builder and SSRS).
Default Mode
In default mode, the Row Groups pane and the Column Groups pane display a hierarchical view for all parent
groups, child groups, and adjacent groups. A child group appears indented under its parent group. An adjacent
group appears at the same indent level as its sibling groups. The following figure shows a Tablix data region
with nested row groups and nested and adjacent column groups.
The Grouping pane displays the corresponding row and column groups. In the following figure, the group based
on subcategory has been selected in the Row Groups pane, and the [Subcat] grouping cell is selected in the
Tablix data region:
In the Row Groups pane, the group based on subcategory is a child of the group based on category. In the
Column Groups pane, the country/region group is a child of the geography group. The year group and the
country/region groups are adjacent groups.
For more information, see Tablix Data Region Cells, Rows, and Columns (Report Builder) and SSRS.
Advanced Mode
In Advanced mode, you can view all static and dynamic members of a group. When you select a member, the
Properties window displays properties for the currently selected Tablix member .
To toggle Advanced mode , right-click the down arrow at the side of the Column Groups pane,
and then click Advanced Mode .
In most cases, properties that control the display of static and dynamic group rows and group columns are set
automatically when you create a group or add totals.
To edit the default values, you must select the group member in the Row or Column Groups pane, and change
the property values in the Properties window. If the properties pane is not visible, in the View menu, click
Proper ties or press F4 . The following properties are available:
FixedData . Boolean. For outer row and column headers. Freeze the row group area when scrolling
vertically or the column group area when scrolling horizontally in a renderer such as HTML.
HideIfNoRows . Boolean. For static members only. If set, Hidden and ToggleItem are ignored. Hide this
member if the Tablix data region contains no rows of data.
KeepTogether .
KeepWithGroup . Boolean. For static row members only. Where possible, keep this row with the
previous or following sibling dynamic member, if it is not hidden.
RepeatOnNewPage . Boolean. For static row members only and where KeepWithGroup is not None.
Where possible, repeat this static row on every page that has at least one instance of the dynamic
member specified by KeepWithGroup.
Hidden . Boolean. Indicates whether the row or column should be initially hidden.
ToggleItem. String. The name of the text box to which to add the toggle image. The text box must be in
the same group scope or a containing scope.
For more information about how this behavior can be controlled on a Tablix data region, see Controlling the
Tablix Data Region Display on a Report Page (Report Builder and SSRS).
Not every static member has a header that corresponds to a cell on the design surface. In the Grouping pane,
the following convention indicates whether a static member has no header:
Static Indicates a static member with a header cell.
(Static) Indicates a static member with no header cell, known as a hidden static.
See Also
Tables, Matrices, and Lists (Report Builder and SSRS)
Expressions (Report Builder and SSRS)
Filter, Group, and Sort Data (Report Builder and SSRS)
Project Property Pages Dialog Box
11/2/2020 • 3 minutes to read • Edit Online
Use the project property pages to configure deployment properties for a Report Server project. To open this
dialog box, from the Project menu, click <Report Project Name>Proper ties .
After you define configuration properties, you can select a configuration from the Solution Configurations
drop-down list on the toolbar.
Options
Configuration
Select the configuration to edit. Initially, the following configurations are available: Debug , DebugLocal , and
Release . The active configuration appears first, for example, Active(Debug) .
To see properties for more than one configuration at the same time, select All Configurations or Multiple
Configurations .
To create additional configurations, click Configuration Manager on the toolbar.
Configuration Manager
Manage configurations for the entire solution or to add additional configurations. For more information, see the
Microsoft Visual Studio documentation.
OutputPath
Type or paste the path to store the report definition used in build verification, deployment, and preview of
reports. The path must be different than the path that you use for the project and a relative path that is a child
folder under the path of the project.
NOTE
You can use multiple configurations to switch among paths depending on the task you perform.
ErrorLevel
Type the severity of the build issues that are reported as errors. Issues with severity levels less than or equal to
the value of ErrorLevel are reported as errors; otherwise, the issues are reported as warnings. Any error will
cause the build task to fail. The valid severity levels are 0 through 4 inclusively. The default value is 2.
Star tItem
Select the report that is displayed in the Web browser after the project is published to the report server or in the
preview window when the project is run locally. A start item is required for configurations that build but do not
deploy the project and for using the Debug command (F5 ). It is required for configurations that deploy the
project.
Over writeDataSources
Select True to overwrite the data source on the server with the data source in the project when the reports are
published. Select False to leave the existing data source on the server.
TargetSer verVersion
Select either the appropriate version of Reporting Services or select Detect Version to automatically determine
the version installed on the server identified by the TargetSer ver URL property. The default value is SQL
Ser ver 2017 .
TargetDataSourceFolder
The name of the folder in which to store the published shared data sources. If you do not specify a folder, the
data source is published to the same folder as the report. If the folder does not exist on the report server, Report
Designer creates the folder when the reports are published.
When publishing to a report server running in native mode, specify the full path of the folder hierarchy starting
at the root. For example, Folder1/Folder2/Folder3.
When publishing to a report server running in SharePoint integrated mode, use a URL to the SharePoint library.
For example, http:\\<servername>\<site>\Documents\MyFolder .
TargetRepor tFolder
The name of the folder in which to store the published reports. By default, this is the name of the report project.
If the folder does not exist on the report server, Report Designer creates the folder when the reports are
published.
When publishing to a report server running in native mode, specify the full path of the folder hierarchy starting
at the root. If a folder is located within another folder, include a path to the folder starting at the root, such as
Folder1/Folder2/Folder3.
When publishing to a report server running in SharePoint integrated mode, use a URL to SharePoint library. For
example, http:\\<servername>\\<site>\Documents\MyFolder .
TargetSer verURL
The URL of the target report server. Before you publish a report, you must set this property to a valid report
server URL.
When publishing to a report server running in native mode, use the URL of the virtual directory of the report
server. For example, http:\\<server>\reportserver . This is the virtual directory of the report server, not Report
Manager. By default, the report server is installed in a virtual directory named "reportserver".
When publishing to a report server running in SharePoint integrated mode, use a URL to a SharePoint top-level
site or subsite. If you do not specify a site, the default top-level site is used. For example:
http:\\<servername> ,
http:\\<servername\<site>
http:\\<servername>\<site>\<subsite> .
Next steps
Publish Reports
Publish a Report to a SharePoint Library
Set Deployment Properties (Reporting Services)
Report Designer F1 Help
More questions? Try asking the Reporting Services forum
Reporting Services Login Dialog Box (SSRS)
11/2/2020 • 2 minutes to read • Edit Online
Use the Repor ting Ser vices Login dialog box to provide credentials to publish reports to the report server.
Note If this is the first time you have published a report to a report server since set you set the deployment
property TargetSer verURL for a project, verify that the server name includes ser ver and not repor ts . For
example, https://localhost/reportserver , and not https://localhost/reports . Specifying the reports
directory on the local server instead of the reportserver directory indirectly causes this dialog box to open.
For more information about setting TargetSer verURL , see Set Deployment Properties (Reporting Services).
Options
Ser ver
Displays the name of the report server. For example, https://localhost/reportserver . For report servers that
use a different port than default port 80, include the port number. For example,
https://localhost:81/reportserver .
User name
Type the user name to log in to the Web service.
Password
Type the password to log in to the Web service.
See Also
Create data connection strings - Report Builder & SSRS
Specify Credential and Connection Information for Report Data Sources
Report Designer F1 Help
Reporting Services in SQL Server Management
Studio (SSRS)
11/2/2020 • 2 minutes to read • Edit Online
Report server administrators can use SQL Server Management Studio to:
Enable features, set server defaults, and manage running jobs.
View custom reports. In Object Explorer, most nodes display a custom reports option. You must have
administrator permissions. The schema of a custom report must match the schema of the installed
reports. For more information, see Custom Reports in Management Studio and Find the Report Definition
Schema Version (SSRS).
The next section contains links to articles that contain step-by-step instructions for performing various reporting
tasks using Management Studio. You can also create and manage shared schedules in the web portal.
In this section
Connect to a Report Server in Management Studio
Set Report Server Properties (Management Studio)
Create, Delete, or Modify a Role (Management Studio)
Cancel Report Server Jobs (Management Studio)
See also
Report Server in Management Studio F1 Help
SQL Server Management Studio (SSMS)
Set Report Server Properties (Management Studio)
11/2/2020 • 2 minutes to read • Edit Online
You can set report server system properties in SQL Server Management Studio to enable features or set server
defaults.
To open the Advanced Server Properties page
1. Start Management Studio and connect to a report server instance.
2. Right-click the report server node, and select Proper ties . Click Advanced to open the properties page.
See Server Properties (Advanced Page) - Reporting Services for a description of each property.
See Also
Connect to a Report Server in Management Studio
Report Server System Properties
Connect to a Report Server in Management Studio
11/2/2020 • 5 minutes to read • Edit Online
SQL Server Management Studio provides Object Explorer, which allows you to connect to any server in the SQL
Server family and graphically browse its contents. For Reporting Services, you can use Object Explorer to do the
following tasks:
Enable report server features.
Set server defaults and configure role definitions.
Manage jobs that are running.
Manage job schedules.
You can connect to a native mode report server or a report server that runs in SharePoint integrated mode.
Connection syntax and the types of operations that you can do depend on the server mode of the report server
and your permissions. If you can't connect to the report server, or have problems doing specific tasks, you
probably don't have sufficient permissions, or you specified the name of the report server incorrectly. For more
information about permissions and connection syntax, see the table at the end of this article.
You can't use Object Explorer to view or manage report server content. Content management is performed
through the web portal if the report server runs in native mode or through a SharePoint site if the report server
runs in SharePoint integrated mode.
Object Explorer allows you to open connections to multiple server instances in the same workspace as along as
the servers are registered in the same server group. Before you can connect to a report server instance in
Management Studio, the server must be registered. If the report server is already registered, you can skip this
step. Instructions for registering report servers are provided at the end of this article.
To connect to a native mode report server
1. If Object Explorer isn't already open it, select it from the View menu.
2. Select Connect to view the list of server types, and then select Repor ting Ser vices .
3. In the Connect to Ser ver dialog box, enter the name of the report server instance. Report server
instance names are based on SQL Server instance names. By default, the instance name of a local report
server instance is just the computer name. If you installed the report server as a named instance, use this
syntax to specify the server: <servername>[\<instancename>].
4. Select the Authentication type . If you are using Windows Authentication, you connect using your
credentials. If you select Basic authentication or Forms authentication, type the account and password.
5. Select Connect . The report server appears in Object Explorer.
6. Right-click the server node to set system properties and server defaults. For more information, see Set
Report Server Properties (Management Studio).
To connect to a SharePoint integrated mode report server
1. If Object Explorer isn't already open it, select it from the View menu.
2. Select Connect to view the list of server types, and then select Repor ting Ser vices .
3. In the Connect to Ser ver dialog box, enter a URL to a SharePoint site. The following example illustrates
the syntax: https://<web server>/sites/<site> .
4. Select the Authentication type . If you are using Windows Authentication, you must connect using your
credentials. If you select Basic authentication or Forms authentication, type the account and password.
5. Select Connect . The report server appears in Object Explorer.
6. Right-click the server node to set system properties and server defaults. For more information, see Set
Report Server Properties (Management Studio).
To register a report server
1. If you can't connect to a report server, you either don't have permission to access it, or the server isn't
registered. To register the server, select View menu > Registered Ser vers .
2. Select the Repor ting Ser vices icon.
3. Right-click Repor ting Ser vices , > New > Ser ver Registration . The New Ser ver Registration dialog
box is displayed.
4. For Ser ver name , enter a value. You specify the value depending on the server mode:
For a native mode report server, type the name of the report server instance. Report server
instance names are based on SQL Server instance names. By default, the instance name of a local
report server instance is just the computer name. If you installed the report server as a named
instance, use this syntax to specify the server: <servername>[\<instancename>].
For a report server that runs in SharePoint integrated mode, the server to connect to is the
SharePoint site with which the report server is connected. Connect to the SharePoint site so that
you can view the permission levels. The permissions control access to report server content and
operations. You can specify any site in the site collection. The following example illustrates the
syntax: https://mysharepointsite .
5. For Authentication , select the authentication mode that the report server is already using.
If you're using default security, choose Windows Authentication .
If you installed and deployed a custom security extension, choose Forms Authentication .
If you configured the report server to use Basic authentication, choose Basic Authentication .
If the report server is configured for SharePoint integrated mode, choose Windows Authentication .
6. Select Test to verify the connection.
7. When prompted, select OK , and then Save .
C O N N EC T TO TA SK S P ERM ISSIO N S
C O N N EC T TO TA SK S P ERM ISSIO N S
Native mode report server, connected View and set server properties and Assigned to the System Administrator
as the default, or named instance: defaults. role.
The connection to the report server is Create and manage shared schedules.
made through the Report Server WMI
provider. Create, modify, or delete role
definitions.
Native mode report server, connected View and set server properties and Assigned to the System Administrator
as the default, or named instance, defaults. role.
through the endpoint to the Report
Server Web service: View and cancel jobs.
SharePoint integrated mode report View and set server properties and Full Control level of permission on the
server, connected through the defaults. SharePoint site to which you're
SharePoint site: connected.
View and cancel jobs.
https://<webserver>/<SharePointSite>
Create and manage shared schedules
defined for the site to which you're
connected.
SharePoint integrated mode report View and set server properties and Full Control level of permission on the
server, connected through the name defaults. SharePoint site that is integrated with
of the report server instance: the report server.
View and cancel jobs.
<server name><_instance> Notice that when you connect to the
report server rather than the
SharePoint site, the number of tasks
that you can do is reduced. The reason
is because the report server can only
return application data that is stored
or managed in the report server
database, and not in the SharePoint
configuration and content databases.
See also
Configure a Report Server Database Connection (Report Server Configuration Manager)
Reporting Services in SQL Server Management Studio (SSRS)
Delete an Item (Management Studio)
11/2/2020 • 2 minutes to read • Edit Online
When connected to a report server instance in SQL Server Management Studio, you can delete role definitions
and shared schedules. You cannot delete reports, models, or other items on a report server. To delete report
server content, use Report Manager instead. Or, if the report server is configured for SharePoint integrated
mode, use the item management features in the SharePoint library that contains your content.
To delete an item in the report server folder namespace
1. In ObjectExplorer, expand a report server node. Navigate to the folder containing the item you want to
delete.
2. Expand the folder.
3. Right-click the item, and click Delete .
4. When prompted, Click OK .
See Also
Connect to a Report Server in Management Studio
Delete Catalog Items (Management Studio)
Reporting Services in SQL Server Management Studio (SSRS)
Report Server in Management Studio F1 Help
11/2/2020 • 2 minutes to read • Edit Online
This section includes topics about the dialog boxes in SQL Server Management Studio that can be used to
manage report servers.
In This Section
Cancel Report Server Jobs
Delete Catalog Items
Job Properties Page
New Shared Schedule
New System Role
New User Role
Schedule Properties (General Page)
Schedule Properties (Reports Page)
Server Properties (General Page)
Server Properties (Execution Page)
Server Properties (History Page)
Server Properties (Logging Page)
Server Properties (Security Page)
Server Properties (Advanced Page)
System Role Properties
User Role Properties
See Also
Feature Reference (Reporting Services)
Use SQL Server Management Studio
Cancel Report Server Jobs (Management Studio)
11/2/2020 • 2 minutes to read • Edit Online
Use the Cancel Repor t Ser ver Jobs dialog box to view or cancel in-progress reports. This dialog box shows
all jobs that are currently running on the report server. Although you cannot pause or restart jobs that are
currently processing, you can cancel all jobs or individual jobs if they are taking too long to complete.
You can cancel user jobs and system jobs.
A user job is any job that is initiated by an individual user. This includes running a report on-demand,
manually creating a report history snapshot, or manually creating report execution snapshot. An in-
progress standard subscription is also a user job.
A system job is one that is initiated by the report server. System jobs include scheduled report
processing.
To open this page, start SQL Server Management Studio, connect to a report server, right-click Jobs , and then
click Cancel All Jobs . You can also open Jobs , right-click a job that is running on the report server, and select
Cancel Job(s) .
Before cancelling a job, you can view its properties to determine when the job started. For more information,
see Job Properties (Management Studio).
NOTE
This feature is not supported in SQL Server Express with Advanced Services. The page does not appear when you are
running SQL Server Express.
Options
Name
Shows the name of the report. Subscriptions are identified by their descriptions.
Type
Valid values are User and System .
Star t Time
Shows when the job started.
User Name
For jobs that are initiated by a user, this column shows the name of the user.
Status
Shows the status of the job. Valid values are New and Running . Status is always New when the job begins.
After 60 seconds, status changes to Running . You must refresh the page to pick up the change.
OK
Cancel a single job or multiple jobs. The jobs are cancelled immediately and cannot be resumed. If you
mistakenly cancel a job, you must request the report or subscription again to start a new job.
See Also
Report Server in Management Studio F1 Help
Connect to a Report Server in Management Studio
Manage a Running Process
Delete Catalog Items (Management Studio)
11/2/2020 • 2 minutes to read • Edit Online
Options
Name
Specifies the name of the item you are deleting.
Type
Shows the type of item you are deleting.
Owner
Shows the name of the owner. In most cases, this is System.
Status
Shows progress information for a delete operation.
Error
Displays an error code if an error occurs while deleting an item.
See Also
Delete an Item (Management Studio)
Report Server in Management Studio F1 Help
Create, Modify, and Delete Schedules
Job Properties (Management Studio)
11/2/2020 • 2 minutes to read • Edit Online
Use the Job Proper ties page to view information about an in-progress report or subscription before you
cancel it.
To open this page, start SQL Server Management Studio, connect to a report server, and open the Jobs folder.
Right-click a job that is running, and then click Proper ties .
NOTE
This feature is not supported in SQL Server Express with Advanced Services. The page does not appear when you are
running SQL Server Express.
Tasks
Before you can view information about a job, refresh the page to retrieve information about jobs that are
currently running on the report server:
1. Open the report server folder.
2. Right-click Jobs , and then click Refresh .
3. If a job is listed, right-click the job, and then click Proper ties .
Options
Job ID
A GUID that is assigned to a job while it is processing. The value is randomly generated each time a report or
subscription runs.
Job Status
Valid values are New and Running . Status is always New when the job begins. After 60 seconds, status
changes to Running . You must refresh the page to pick up the change.
Job Type
Valid values are User and System . A user job is any job that is initiated by an individual user. This includes
running a report on-demand, manually generating a report history snapshot, or manually creating a report
execution snapshot. An in-progress standard subscription is also a user job. A system job is one that is initiated
by the report server. System jobs include report processing that is triggered by a schedule.
Job Action
For reports, this column shows which report execution processes are underway. This value is always Render .
Job Description
Reporting Services does not provide job descriptions by default.
Ser ver Name
Shows the name of the report server that is processing the job. If you configured a scale-out deployment, this
value will show which server is processing the job.
Repor t Name
Shows the name of the report. Subscriptions are identified by their descriptions.
Repor t Path
Shows the path of the report in the report server folder hierarchy.
Star t Time
Shows when the process started.
User Name
For processes initiated by a user, this column shows the name of the user. For system jobs, this is the name of
the report server.
See Also
Report Server in Management Studio F1 Help
Connect to a Report Server in Management Studio
Manage a Running Process
New Shared Schedule (Management Studio)
3/5/2021 • 2 minutes to read • Edit Online
Use this page to create a shared schedule to run published reports and subscriptions. Shared schedules can be
used in place of report-specific or subscription-specific schedules. Centralized schedule information and the
ability to pause and resume scheduled operations are two key features that distinguish shared schedules from
item-specific schedules.
Not all frequency combinations can be supported in a single schedule. For example, if you want to run a report
at 12:00 P.M. and 4:00 P.M. every Friday, you must create two daily schedules that specify a Friday run date, one
with a start time of 12:00 P.M. and another with a start time of 4:00 P.M.
Schedule processing is based on the local time of the report server that hosts and processes the schedule.
To open this page, start SQL Server Management Studio, connect to a report server, right-click Shared
Schedule , and select New Schedule . To save the schedule, SQL Server Agent service must be running.
NOTE
This feature is not available in every edition of SQL Server. For a list of features that are supported by the editions of SQL
Server, see Features Supported by the Editions of SQL Server 2012 (https://go.microsoft.com/fwlink/?linkid=232473).
Options
Name
Type a name for the shared schedule. This name appears in drop-down lists when users select a shared schedule
for reports and subscriptions. Be sure to provide a descriptive name that fits easily within a list and that easily
distinguishes one shared schedule from another. A name must contain at least one alphanumeric character. It
can also include spaces and some symbols. Do not use the following characters when specifying a name:
;?:@&=+,$/*<>
"/
Begin running this schedule on
Specify a start date for this schedule.
Stop this schedule on
Specify an expiration date for this schedule.
Type
Specifies whether the recurrence pattern is based primarily on hours, days, weeks, or months.
Hour (Recurrence Pattern)
Select options to run a scheduled operation in intervals of an hour (for example, to run a report every 6 hours).
You can specify the interval in hours and minutes.
Day (Recurrence Pattern)
Select options to run a scheduled operation in intervals of days (for example, to run a report every 2 days). You
can specify the interval in days and at the hour and minute you want the schedule to run.
Week (Recurrence Pattern)
Select options to run a scheduled operation in intervals of a week or when the pattern that you want to repeat is
based on weeks (for example, to run a report every other week). You can specify a weekly schedule to the day,
hour, and minute that you want the schedule to run.
Month (Recurrence Pattern)
Select options to run a scheduled operation in intervals of a month or when the pattern that you want to repeat
is based on months. You can specify a monthly schedule to the day, hour, and minute that you want the schedule
to run. You can omit specific months from the schedule.
Once
Select this option to create a schedule that runs only once, on a specific date and time.
See Also
Report Server in Management Studio F1 Help
Connect to a Report Server in Management Studio
Create, Modify, and Delete Schedules
Schedules
Report Server in Management Studio F1 Help
New System Role (Management Studio)
11/2/2020 • 2 minutes to read • Edit Online
Use this page to create a system-level role definition. A system role definition specifies a set of system-level
tasks that apply to a report server as whole.
NOTE
Role definitions are used only on a report server that runs in native mode. If the report server is configured for SharePoint
integration, this page is not available.
Options
Name
Type the name of the role definition. A role definition name must be unique within the report server namespace.
A name must contain at least one alphanumeric character. It can also include spaces and some symbols. Do not
use the following characters when specifying a name:
;?:@&=+,$/*<>
"/
Description
Provide a description that explains how to use the role and enumerates what the role supports.
Task
Select the system-level tasks that can be performed through this role. You cannot create new tasks or modify the
existing tasks that are supported by Reporting Services. You cannot choose item-level tasks for a system role
definition.
Task Description
Shows a description of the task that enumerates the operations or permissions that the task supports.
See Also
Report Server in Management Studio F1 Help
Role Definitions
New User Role (Management Studio)
11/2/2020 • 2 minutes to read • Edit Online
Use this page to create an item-level role definition. An item-level role definition is a named collection of tasks
that enumerate the tasks a user can perform in relation to folders, reports, models, resources, and shared data
sources. An example of an item-level role definition is the predefined Browser role that identifies the kinds of
actions a report end user might require for navigating folders and viewing reports.
Role definitions are intended to be few in number. Most organizations only require a few role definitions.
However, if the predefined role definitions are insufficient, you can vary them or create new ones.
NOTE
Role definitions are used only on a report server that runs in native mode. If the report server is configured for SharePoint
integration, this page is not available.
Options
Name
Type the name of the role definition. A role definition name must be unique within the report server namespace.
A name must contain at least one alphanumeric character. It can also include spaces and some symbols. Do not
use the following characters when specifying a name:
;?:@&=+,$/*<>
"/
Description
Type a description that explains how to use the role and enumerates what the role supports.
Task
Select the tasks that can be performed through this role. You cannot create new tasks or modify the existing
tasks that are supported by Reporting Services. Only item-level tasks can be used in an item-level role
definition.
Task Description
Shows a description of the task that enumerates the operations or permissions that the task supports.
See Also
Report Server in Management Studio F1 Help
Role Definitions
Schedule Properties (General Page)
11/2/2020 • 2 minutes to read • Edit Online
Use the Reporting Services page in SQL Server Management Studio to view or modify a shared schedule.
Shared schedules can be used in place of report-specific or subscription-specific schedules. Changes to the
schedule are applied after you save the schedule. Editing a schedule has no effect on jobs that are currently in
progress. If you edit a schedule while it is being used, all currently processing reports and subscriptions
triggered from that schedule will be allowed to finish.
Not all frequency combinations can be supported in a single schedule. For example, if you want to run a report
at 12:00 P.M. and 4:00 P.M. every Friday, you must create two daily schedules that specify a Friday run date, one
with a start time of 12:00 P.M. and another with a start time of 4:00 P.M.
Schedule processing is based on the local time of the report server that hosts and processes the schedule.
To open this page:
1. Start SQL Server Management Studio.
2. Connect to a report server.
3. Expand the Shared Schedules folder.
4. Right-click a shared schedule, and select Proper ties .
NOTE
This feature is not available in every edition of SQL Server and this page does not appear when you are running an
edition which does not have this feature. For a list of features that are supported by the editions of SQL Server, see
Editions and supported features of SQL Server 2017.
Options
Name
Specifies the name for the shared schedule.
Begin running this schedule on
Specifies a start date for this schedule.
Stop this schedule on
Specifies an expiration date for this schedule.
Type
Specifies whether the recurrence pattern is based primarily on hours, days, weeks, months, or only runs once.
Hour (Recurrence Pattern)
Specifies options for running a scheduled operation in intervals of an hour (for example, to run a report every 6
hours). You can specify the interval in hours and minutes.
Day (Recurrence Pattern)
Specifies options for running a scheduled operation in intervals of days (for example, to run a report every 2
days). You can specify the interval in days and at the hour and minute you want the schedule to run.
Week (Recurrence Pattern)
Specifies options for running a scheduled operation in intervals of a week or when the pattern that you want to
repeat is based on weeks (for example, to run a report every other week). You can specify a weekly schedule to
the day, hour, and minute that you want the schedule to run.
Month (Recurrence Pattern)
Specifies options for running a scheduled operation in intervals of a month or when the pattern that you want
to repeat is based on months. You can specify a monthly schedule to the day, hour, and minute that you want the
schedule to run. You can omit specific months from the schedule.
Once
Specifies a schedule that runs only once, on a specific date and time.
See Also
Report Server in Management Studio F1 Help
Connect to a Report Server in Management Studio
Create, Modify, and Delete Schedules
Schedules
Schedule Properties (Reports Page)
11/2/2020 • 2 minutes to read • Edit Online
Use the Reporting Services schedule properties page in SQL Server Management Studio to view a list of all
reports that use the specific shared schedule. Schedules can be used to refresh report snapshots, generate
report history, trigger a subscription, or expire a cached copy of the report. To find out how the schedule is used,
view the property and subscription information of the report.
Although this page shows each report that uses the shared schedule, it does not indicate how many times the
shared schedule is used within that single report. For example, suppose 20 different subscribers to the Company
Sales report all use the same shared schedule to trigger subscription processing. In this case, the Company Sales
report will only appear once in this list, even though the report has 20 references to the shared schedule.
To open the schedule properties page:
1. Start SQL Server Management Studio.
2. Connect to a report server.
3. Open the Shared Schedules folder.
4. Right-click a shared schedule, select Proper ties .
5. click Repor ts .
You can also manage shared schedules from the Site Settings of the Reporting Services Web Portal.
NOTE
This feature is not available in every edition of SQL Server. For a list of features that are supported by the editions of SQL
Server, see Editions and supported features of SQL Server 2017.
Options
Folder
Specifies the path of the report.
Repor t
Specifies the name of the report that uses the schedule.
See Also
Create, Modify, and Delete Schedules
Schedules
Report Server in Management Studio F1 Help
Connect to a Report Server in Management Studio
Configure General Properties for a Report (Report Manager)
Report Server Properties (General Page)
11/2/2020 • 2 minutes to read • Edit Online
Use this page to view or modify the title used in Report Manager, enable or disable My Reports, select a role
definition for My Reports security, and enable or disable the client print control.
To open this page:
1. Start SQL Server Management Studio
2. Connect to a report server instance.
3. Right-click the report server name, and then select Proper ties .
The server mode determines which server properties you can set. If you are managing a report server that is
configured for SharePoint integrated mode, you cannot enable My Reports or set the title for the web portal.
Options
Name
Type a name that appears on top of the web portal. By default, this value is SQL Server Reporting Services. The
name that you specify appears only in Report Manager.
Version
This property is read-only. Specifies the version of SQL Server Reporting Services that you are using.
Edition
This property is read-only. Specifies the current report server instance. Report Manager is not available in every
edition of MicrosoftSQL Server. For a list of features that are supported by the editions of SQL Server, see
Editions and supported features of SQL Server 2017.
Authentication Mode
This property is read-only. It identifies the types of authentication requests accepted by the report server
instance. To change the authentication mode, you must edit the RSRepor tSer ver.config file. For more
information, see Authentication with the Report Server.
URL
This property is read-only. Specifies the URL to the Report Server Web service. This value is specified in the
Reporting Services Configuration tool. For more information, see Configure a URL (Report Server Configuration
Manager).
Enable a My Repor ts folder for each user
Make My Repor ts available to users. This option is only available for native mode report servers.
Select the role to apply to each My Repor ts folder
Specify a role definition to use for My Reports security. The role definition identifies the set of tasks that are
supported in each My Reports folder.
See Also
Set Report Server Properties (Management Studio)
Connect to a Report Server in Management Studio
Enable and Disable My Reports
Report Server in Management Studio F1 Help
Secure My Reports
Server Properties (Execution Page)
11/2/2020 • 2 minutes to read • Edit Online
Use this page to set a timeout value for report execution. This value applies to all reports that are processed by
the current report server instance. You can override this value for individual reports. The value you specify must
accommodate all report processing that occurs on the report server, plus query processing performed on the
database server when the report server retrieves data that is used in the report.
To open this page, start SQL Server Management Studio, connect to a report server instance, right-click the
report server name, and select Proper ties . Click Execution to open this page.
Options
Do not timeout repor t execution
Allow a report server unlimited time to complete report processing.
Limit repor t execution to the following number of seconds
Set a time constraint on report execution. The time period starts when the report is requested. If the time period
ends before the report is fully processed, the report server cancels the process and any in-process queries to
external data sources.
See Also
Set Report Server Properties (Management Studio)
Connect to a Report Server in Management Studio
Set Report Processing Properties
Setting Time-out Values for Report and Shared Dataset Processing (SSRS)
Report Server in Management Studio F1 Help
Server Properties (History Page)
11/2/2020 • 2 minutes to read • Edit Online
Use this Reporting Services page in SQL Server Management Studio to set a default value for the number of
copies of report history to retain. The default value provides an initial setting that establishes report history
limits for all reports. You can vary these settings for individual reports.
Report history is a collection of report snapshots that include report data and layout that is current for the
report at the time the snapshot is created. You can use report history to keep a copy of a report as it was on a
specific date or time. You can create and manage report history for individual reports that run on a native mode
report server or a report server that is configured for SharePoint integrated mode.
Report history snapshots are stored in the report server database. If you keep an unlimited number of
snapshots, be sure to periodically check the database size to ensure it is not growing too fast or consuming too
much disk space.
To open this page:
1. Start SQL Server Management Studio.
2. Connect to a report server instance.
3. Right-click the report server name, and select Proper ties .
4. Click Histor y to open this page.
Options
Keep an unlimited number of snapshots in repor t histor y
Retain all report history snapshots. You must manually delete snapshots to reduce the size of report history.
Limit the copies of repor t histor y
Retain a set number of report history snapshots. When the limit is reached, older copies are removed from
report history to make room for newer copies.
If you limit report history later, when the existing report history exceeds the limit you specify, the report server
reduces the existing report history to the new limit. The oldest report snapshots are deleted first. If report
history is empty or below the limit, new report snapshots are added. When the limit is reached, the oldest
snapshot is deleted when a new report snapshot is added.
See Also
Set Report Server Properties (Management Studio)
Connect to a Report Server in Management Studio
Report Server in Management Studio F1 Help
Server Properties (Logging Page)
11/2/2020 • 2 minutes to read • Edit Online
Use this Reporting Services page in SQL Server Management Studio to set limits on the report execution data
that is collected by a report server. Execution data is stored internally in the report server database. You can
track report activity for report server that runs in native mode or SharePoint integrated mode. If the report
server is part of a scale-out deployment, the report execution log maintains a record of all report activity for the
entire deployment in a single log file.
To open this page:
1. Start SQL Server Management Studio
2. Connect to a report server.
3. Right-click the report server name and select Proper ties .
4. Click Logging to open this page.
Options
Enable repor t execution logging
Click to create and store information about report activity on the server. If this option is enabled, the report
server will track which reports are used, the frequency of report processing, the type of report operation that
was performed, the output format, and who ran the report. For more information about additional data points
that are captured in the log, see Report Server ExecutionLog and the ExecutionLog3 View.
Remove log entries older than this number of days
Specify the number of days after which log entries will be trimmed from the report execution log. The default
value is 60 days.
See Also
Set Report Server Properties (Management Studio)
Connect to a Report Server in Management Studio
Reporting Services Log Files and Sources
Report Server in Management Studio F1 Help
Report Server ExecutionLog and the ExecutionLog3 View
Server Properties (Security Page) - Reporting
Services
11/2/2020 • 2 minutes to read • Edit Online
Use this Reporting Services page in SQL Server Management Studio to turn off features that can potentially
compromise a report server. Turning off these features limits some functionality, but can improve the overall
security of the report server by mitigating specific threats.
To open this page:
1. Start SQL Server Management Studio.
2. Connect to a report server instance.
3. Right-click the report server name, and select Proper ties .
4. Click Security to open this page.
Options
Enable Windows-Integrated Security for report data sources
Specify whether a connection to a report data source is using the Windows security token of the user who
requested the report.
If you turn off the feature, the Windows-Integrated Security feature in the report data source property pages
becomes unavailable. If your report data sources are configured for Windows-integrated security and you
subsequently turn off this feature, the report server immediately updates all your data source connection
properties to prompt for credentials.
Enable Ad Hoc Reporting
Specify whether users can perform ad hoc queries from a Report Builder report, where new reports are
automatically generated when a user clicks data of interest.
Setting this option determines whether the EnableLoadRepor tDefinition property on the report server is set
to True or False . If you clear this option, the property is set to False and report server doesn't generate
clickthrough reports that are created during data exploration. All calls to the LoadRepor tDefinition method
are blocked.
Turning off this option mitigates a threat whereby a malicious user launches a denial of service attack by
overloading the report server with LoadRepor tDefinition requests.
See Also
Set Report Server Properties (Management Studio) Connect to a Report Server in Management Studio Specify
Credential and Connection Information for Report Data Sources Report Server in Management Studio F1 Help
Server Properties Advanced Page - Power BI
Report Server & Reporting Services
3/5/2021 • 10 minutes to read • Edit Online
APPLIES TO: ✔
️ SQL Server 2016 Reporting Services and later ✔
️ Power BI Report Server
Use this page to set system properties on the report server. There are a number of ways to set system
properties. This tool provides a graphical user interface so that you can set properties without having to write
code.
To open this page, start SQL Server Management Studio, connect to a report server instance, right-click the
report server name, and select Proper ties . Select Advanced to open this page.
Options
AccessControlAllowCredentials
(Power BI Report Server, Reporting Services 2017 and later only) Indicates whether the response to the client
request can be exposed when the credentials flag is set to true. The default value is false .
AccessControlAllowHeaders
(Power BI Report Server, Reporting Services 2017 and later only) A comma-separated list of headers that the
server will allow when a client makes a request. This property can be an empty string, specifying * will allow all
headers.
AccessControlAllowMethods
(Power BI Report Server, Reporting Services 2017 and later only) A comma-separated list of HTTP methods that
the server will allow when a client makes a request. The default values are (GET, PUT, POST, PATCH, DELETE),
specifying * will allow all methods.
AccessControlAllowOrigin
(Power BI Report Server, Reporting Services 2017 and later only) A comma-separated list of origins that the
server will allow when a client makes a request. The default value is blank, which prevents all requests,
specifying * will allow all origins when credentials are not set; if credentials are specified an explicit list of origins
must be specified.
AccessControlExposeHeaders
(Power BI Report Server, Reporting Services 2017 and later only) A comma-separated list of headers that the
server will expose to clients. The default value is blank.
AccessControlMaxAge
(Power BI Report Server, Reporting Services 2017 and later only) Specifies the number of seconds the results of
the preflight request can be cached. The default value is 600 (10 minutes).
AllowedResourceExtensionsForUpload
(Power BI Report Server, Reporting Services 2017 and later only) Set extensions of resources that can be
uploaded to the report server. Extensions for built-in file types like *.rdl and *.pbix are not required to be
included. Default is “*, *.xml, *.xsd, *.xsl, *.png, *.gif, *.jpg, *.tif, *.jpeg, *.tiff, *.bmp, *.pdf, *.svg, *.rtf, *.txt, *.doc,
*.docx, *.pps, *.ppt, *.pptx”.
CustomHeaders
(Power BI Report Server January 2020, Reporting Services 2019 and later only)
Sets header values for all URLs matching the specified regex pattern. Users can update the CustomHeaders
value with valid XML to set header values for selected request URLs. Admins can add any number of headers in
the XML. By default in Reporting Services 2019, there are no custom headers and the value is blank. By default
in Power BI Report Server January 2020 and later, the value is this:
<CustomHeaders>
<Header>
<Name>X-Frame-Options</Name>
<Pattern>(?(?=.*api.*|.*rs:embed=true.*|.*rc:toolbar=false.*)(^((?!(.+)((\/api)|(\/(.+)
(rs:embed=true|rc:toolbar=false)))).*$))|(^(?!(http|https):\/\/([^\/]+)\/powerbi.*$)))</Pattern>
<Value>SAMEORIGIN</Value>
</Header>
</CustomHeaders>
NOTE
Too many headers may impact performance.
We recommend validating the configuration of your topology to ensure the set of headers is compatible with
your deployment of Reporting Services. It's possible to choose settings that cause errors in browsers if the
browsers don't also have the appropriate settings. For example, you shouldn't add a HSTS configuration if your
server isn't configured for https. Incompatible headers may result in browser rendering errors.
CustomHeaders XML format
<CustomHeaders>
<Header>
<Name>{Name of the header}</Name>
<Pattern>{Regex pattern to match URLs}</Pattern>
<Value>{Value of the header}</Value>
</Header>
</CustomHeaders>
<CustomHeaders>
<Header>
<Name>Strict-Transport-Security</Name>
<Pattern>(.+)\/Reports\/mobilereport(.+)</Pattern>
<Value>max-age=86400; includeSubDomains=true</Value>
</Header>
<Header>
<Name>Embed</Name>
<Pattern>(.+)(/reports/)(.+)(rs:embed=true)</Pattern>
<Value>True</Value>
</Header>
</CustomHeaders>
The first header in the above XML adds Strict-Transport-Security: max-age=86400; includeSubDomains=true
header to the matched requests.
http://adventureworks/Reports/mobilereport/New%20Mobile%20Report - Regex matched and will set HSTS
header
http://adventureworks/ReportServer/mobilereport/New%20Mobile%20Report – Match Failed
The second header in above XML adds Embed: True header for URL which contains /reports/ and
rs:embed=true query parameter.
https://adventureworks/reports/mobilereport/New%20Mobile%20Report?rs:embed=true - Match
https://adventureworks/reports/mobilereport/New%20Mobile%20Report?rs:embed=false - Fail to Match
EditSessionCacheLimit
Specifies the number of data cache entries that can be active in a report edit session. The default number is 5.
EditSessionTimeout
Specifies the number of seconds until a report edit session times out. The default value is 7200 seconds (two
hours).
EnableCDNVisuals
(Power BI Report Server only) When enabled, Power BI reports load the latest certified custom visuals from a
content delivery network (CDN) hosted by Microsoft. If your server doesn't have access to internet resources,
you can turn off this option. In that case, custom visuals are loaded from the report that was published to the
server. Default is True .
EnableClientPrinting
Determines whether the RSClientPrint ActiveX control is available for download from the report server. The valid
values are true and false . The default value is true . For more information about additional settings that are
required for this control, see Enable and Disable Client-Side Printing for Reporting Services.
EnableCustomVisuals
(Power BI Report Server only) To enable the display of Power BI custom visuals. Values are True/False. Default is
True.
EnableExecutionLogging
Indicates whether report execution logging is enabled. The default value is true . For more information about the
report server execution log, see Report Server ExecutionLog and the ExecutionLog3 View.
EnableIntegratedSecurity
Determines whether Windows-integrated security is supported for report data source connections. The default
is True . The valid values are as follows:
EnableLoadReportDefinition
Select this option to specify whether users can perform an unplanned report execution from a Report Builder
report. Setting this option determines the value of the EnableLoadRepor tDefinition property on the report
server.
If you clear this option, the property is set to False. Report server won't generate clickthrough reports for
reports that use a report model as a data source. Any calls to the LoadReportDefinition method are blocked.
Turning off this option mitigates a threat whereby a malicious user launches a denial of service attack by
overloading the report server with LoadReportDefinition requests.
EnableMyReports
Indicates whether the My Reports feature is enabled. A value of true indicates that the feature is enabled.
EnablePowerBIReportExportData
(Power BI Report Server only) Enable Power BI Report Server data export from Power BI visuals. Values are True,
False. Default is True.
EnablePowerBIReportExportUnderlyingData
(Power BI Report Server only) Indicates whether or not a customer can export underlying data from Power BI
visuals on Power BI Report Server. A value of True indicates that the feature is enabled.
EnableRemoteErrors
Includes external error information (for example, error information about report data sources) with the error
messages that are returned for users who request reports from remote computers. Valid values are true and
false . The default value is false . For more information, see Enable Remote Errors (Reporting Services).
EnableTestConnectionDetailedErrors
Indicates whether to send detailed error messages to the client computer when users test data source
connections using the report server. The default value is true . If the option is set to false , only generic error
messages are sent.
ExecutionLogDaysKept
The number of days to keep report execution information in the execution log. Valid values for this property
include -1 through 2 ,147 ,483 ,647 . If the value is -1 , entries are not deleted from the Execution Log table. The
default value is 60 .
NOTE
Setting a value of 0 deletes all entries from the execution log. A value of -1 keeps the entries of the execution log and
doesn't delete them.
ExecutionLogLevel
Set the Execution Log Level. Default is Normal.
ExternalImagesTimeout
Determines the length of time within which an external image file must be retrieved before the connection is
timed out. The default is 600 seconds.
InterProcessTimeoutMinutes
(Power BI Report Server, Reporting Services 2019 and later only) Set the process timeout in minutes. Default is
30.
MaxFileSizeMb
Set the max file size of the report in MB. Default is 1000. Max is 2000.
ModelCleanupCycleMinutes
(Power BI Report Server only) Set the frequency to check for unused models in memory in minutes. Default is
15.
ModelExpirationMinutes
(Power BI Report Server only) Set the frequency when unused models are evicted from memory in minutes.
Default is 60.
MyReportsRole
The name of the role used when creating security policies on user's My Reports folders. The default value is My
Repor ts Role .
OfficeAccessTokenExpirationSeconds
(Power BI Report Server, Reporting Services 2019 and later only) Set for how long you want the office access
token to expire in seconds. Default is 60.
OfficeOnlineDiscoveryURL
(Power BI Report Server only) Set the address of your Office Online Server instance for viewing Excel
Workbooks.
RDLXReportTimetout
RDLX report (Power View reports in a SharePoint Server) processing timeout value, in seconds, for all reports
managed in the report server namespace. This value can be overridden at the report level. If this property is set,
the report server attempts to stop the processing of a report when the specified time has expired. Valid values
are -1 through 2 ,147 ,483 ,647 . If the value is -1 , reports in the namespace do not time out during processing.
The default value is 1800 .
RequireIntune
(Power BI Report Server, Reporting Services 2017 and later only) Requires Intune to access your organization's
reports via the Power BI mobile app. Default is False.
RestrictedResourceMimeTypeForUpload
(Power BI Report Server January 2019, Reporting Services 2017 and later only) Set of mime types users aren't
allowed to upload content with. Any resources that are already stored with a restricted mime type can only be
downloaded as an application/octet-stream instead of being opened/executed by the browser. By default, there
are no restricted items in this list, but we recommended that organizations populate this to provide the most
secure experience.
ScheduleRefreshTimeoutMinutes
(Power BI Report Server only) Data refresh timeout in minutes for scheduled refresh on Power BI reports with
embedded AS models. Default is 120 minutes.
SessionTimeout
The length of time, in seconds, that a session remains active. The default value is 600 .
SharePointIntegratedMode
This read-only property indicates the server mode. If this value is False, the report server runs in native mode.
ShowDownloadMenu
(Power BI Report Server, Reporting Services 2017 and later only) Enables the client tools download menu.
Default is true.
SiteName
The name of the report server site displayed in the page title of the web portal. The default value is SQL Server
Reporting Services. This property can be an empty string. The maximum length is 8,000 characters.
SnapshotCompression
Defines how snapshots are compressed. The default value is SQL . The valid values are as follows:
VA L UES DESC RIP T IO N
StoredParametersLifetime
Specifies the maximum number of days that a stored parameter can be stored. Valid values are -1 , +1 through
2,147,483,647 . The default value is 180 days.
StoredParametersThreshold
Specifies the maximum number of parameter values that can be stored by the report server. Valid values are -1 ,
+1 through 2,147,483,647 . The default value is 1500 .
SupportedHyperlinkSchemes
(Power BI Report Server January 2019, Reporting Services 2019 and later only) Sets a comma separated list of
the URI schemes allowed to be defined on Hyperlink actions that are allowed to be rendered or “*” to enable all
hyperlink schemes. For example, setting “http,https” would allow hyperlinks to “https://www. contoso.com”, but
would remove hyperlinks to “mailto:bill@contoso.com” or “javascript:window.open(‘www.contoso.com’,
‘_blank’)”. Default is “*”.
SystemReportTimeout
The default report processing timeout value, in seconds, for all reports managed in the report server
namespace. This value can be overridden at the report level. If this property is set, the report server attempts to
stop the processing of a report when the specified time has expired. Valid values are -1 through
2 ,147 ,483 ,647 . If the value is -1 , reports in the namespace do not time out during processing. The default
value is 1800 .
SystemSnapshotLimit
The maximum number of snapshots that are stored for a report. Valid values are -1 through 2 ,147 ,483 ,647 . If
the value is -1 , there is no snapshot limit.
TimerInitialDelaySeconds
(Power BI Report Server, Reporting Services 2017 and later only) Set for how long you want the initial time to be
delayed in seconds. Default is 60.
TrustedFileFormat
(Power BI Report Server, Reporting Services 2017 and later only) Set all the external file formats that open
within the browser under the Reporting Services portal site. External file formats not listed prompts to
download the option in the browser. The default values are jpg, jpeg, jpe, wav, bmp, pdf, img, gif, json, mp4, web,
png.
UseSessionCookies
Indicates whether the report server should use session cookies when communicating with client browsers. The
default value is true .
See Also
Set Report Server Properties (Management Studio)
Connect to a Report Server in Management Studio
Reporting Services Properties
Report Server in Management Studio F1 Help
Report Server System Properties
Script Deployment and Administrative Tasks
Enable and Disable My Reports
More questions? Try asking the Reporting Services forum
System Role Properties (Management Studio)
11/2/2020 • 2 minutes to read • Edit Online
Use the System Roles page to view the system role definitions that are currently defined for the report server. A
system role definition contains a named collection of tasks that are performed relative to the entire site, instead
of an individual item. Role definitions are assigned to a user or groups to create a resulting role assignment. The
tasks in the role definition specify what the user or group can do.
Reporting Services has two predefined system role definitions: System Administrator and System User . You
can modify these role definitions by changing the task list, or you can create a new system role that supports a
different combination of tasks. Editing a role definition affects all role assignments that include the role
definition.
NOTE
System role assignments are used only on a report server that runs in native mode. If the report server is configured for
SharePoint integration, this page is not available.
Options
Name
Specifies the name of the system role definition.
Description
Shows a description of the system role definition. In SQL Server Management Studio, this description is only
visible in this page. Users who view this item through Report Manager may see this description when browsing
the folder hierarchy.
Task
Lists all system-level tasks that can be selected for this role definition. You can add or remove items from the
predefined task list to define how users access a given item through this role. You cannot create new tasks, and
you cannot modify existing tasks.
Description
Provides information about each task. You cannot modify task descriptions.
See Also
Report Server in Management Studio F1 Help
System-Level Tasks
Tasks and Permissions
Predefined Roles
User Role Properties (Management Studio)
11/2/2020 • 2 minutes to read • Edit Online
Use this page to view which tasks are included in an item-level role definition. You can also use this page to
change the task list or modify a role description.
An item-level role definition is a named collection of tasks that users perform relative to a specific item (that is, a
folder, report, resource, or shared data source). Role definitions are assigned to a user or group to create a role
assignment in Report Manager. The tasks in the role definition describe what the user or group can do.
Reporting Services includes a number of predefined item-level role definitions that you can work with. You can
modify the role definitions by changing the task list of each one. Editing a role definition affects all role
assignments that include the role definition.
NOTE
User role assignments are used only on a report server that runs in native mode. If the report server is configured for
SharePoint integration, this page displays read-only information about the roles and permission levels that are defined on
the SharePoint site.
Options
Name
Specifies the name of the role definition.
Description
Shows a description of the role definition. In SQL Server Management Studio, this description is only visible in
this page. In Report Manager, this description helps users decide whether to use the role in a role assignment.
Task
Lists all item-level tasks that can be selected for this role definition. You can add or remove items from the
predefined task list to define how users access a given item through this role. You cannot create new tasks, and
you cannot modify existing tasks. The task list of a role definition appears only in SQL Server Management
Studio.
Task Description
Provides information about each task. You cannot modify task descriptions.
See Also
Item-Level Tasks
Role Definitions
Report Server in Management Studio F1 Help
Tasks and Permissions
Predefined Roles
Report Builder authoring environment (SSRS)
11/2/2020 • 2 minutes to read • Edit Online
Report Builder is a stand-alone authoring environment for creating Reporting Services paginated reports
outside of Visual Studio. When you design a report, you specify where to get the data, which data to get, and
how to display the data. When you run the report, the report processor takes all the information you have
specified, retrieves the data, and combines it with the report layout to generate the report. You can install it from
the Reporting Services web portal or from the Microsoft Download Center.
Install Report Builder from the Microsoft Download Center.
See Also
Install Report Builder
Reporting Services Tools
Design Reports with Report Designer (SSRS)
Scripting and PowerShell with Reporting Services
11/2/2020 • 2 minutes to read • Edit Online
Reporting Services supports a wide range of development and management scenarios through script, including
the rs.exe command line utility, PowerShell cmdlets for SharePoint mode report servers, and leveraging the
Reporting Services object model from PowerShell for both Native and SharePoint mode.
Administrators can write script in Microsoft Visual Basic to automate how they deploy and manage a
report server installation. Administrators can also generate and run Transact-SQL scripts that create,
configure, and update a report server database. Administrators can also use the record and playback
script features in SQL Server Management Studio to automate routine maintenance tasks.
Developers can create custom applications that include script. You can run script that makes calls to the
Report Server Web service. Almost any operation that you can write in managed code can also be written
in script.
Reporting Services supports Microsoft Visual Basic .NET script as the script language that can be
processed by the RS.exe utility, a script host that runs on the report server.
Reporting Services SharePoint mode includes Reporting Services cmdlets for report server administration.
PowerShell cmdlets for Reporting Services SharePoint Mode Includes the following examples:
Create a service application and proxy
Review and update a delivery extension
Get and set Properties of the Reporting Service Application Database, for example database
timeout
List Data Extensions
PowerShell calling the core object model and for the most part valid for SharePoint and native mode, for
example the migration work, subscription work, and more related samples for subscriptions work in SQL15.
Use PowerShell to Change and List Reporting Services Subscription Owners and Run a Subscription.
Use PowerShell to Create an Azure VM With a Native Mode Report Server.
See the section "Access the WMI classes using PowerShell" in Access the Reporting Services WMI
Provider.
See Also
RS.exe Utility (SSRS)
Script Deployment and Administrative Tasks
Script with the rs.exe Utility and the Web Service
Script with the rs.exe Utility and the Web Service
11/2/2020 • 2 minutes to read • Edit Online
Developers and report server administrators can perform operations on a report server through the use of the
rs utility (RS.exe). Using this utility, you can programmatically administer a report server using scripts written
with Microsoft Visual Basic.
Reporting Services scripts can be used to run any of the Report Server Web service operations. Scripting can be
used to copy security to multiple reports on a server, to add and delete items, to copy report server items from
one server to another and more. For more information about the scripting environment, see Run a Reporting
Services Script File. Script files take a certain format and are written in Visual Basic .NET. For more information,
see Format a Reporting Services Script File.
For script samples, see the following:
Sample Reporting Services rs.exe Script to Copy Content between Report Servers.
SQL Server Reporting Services Product Samples.
See Also
Script Deployment and Administrative Tasks
Report Server Web Service
Technical Reference (SSRS)
RS.exe Utility (SSRS)
Format a Reporting Services Script File
11/2/2020 • 2 minutes to read • Edit Online
A Reporting Services script is a Microsoft Visual Basic .NET code file, written against a proxy that is built on Web
Service Description Language (WSDL), which defines the Reporting Services SOAP API. A script file is stored as a
Unicode or UTF-8 text file with the extension .rss.
The script file acts as a Visual Basic module and can contain user-defined procedures and module-level
variables. For the script file to run successfully, it must contain a Main procedure. The Main procedure is the first
procedure that is accessed when your script file runs. Main is where you can add your Web service operations
and run your user defined subprocedures. The following code creates a Main procedure:
The script environment automatically connects to the report server, creates the Web proxy class, and generates a
reference variable (rs) to the Web service proxy object. Individual statements that you create need only refer to
the rs module-level variable to perform any of the Web service operations that are available in the Web service
library. The following Visual Basic code calls the Web service ListChildren method from within a script file:
IMPORTANT
User credentials are managed by the script environment and passed through command prompt arguments through the
use of RS.exe. Although you can use the rs variable to set the authentication of the Web service, it is recommended that
you use the script environment. You do not need to authenticate the Web service in the script file itself. For more
information about authenticating the script environment, see RS.exe Utility (SSRS).
You do not declare namespaces within the script file. The scripting environment makes several useful Microsoft
.NET Framework namespaces available to you: System.Web.Ser vices , System.Web.Ser vices.Protocols ,
System.Xml , and System.IO .
For script samples, see SQL Server Reporting Services Product Samples.
See Also
Report Server Web Service
Technical Reference (SSRS)
RS.exe Utility (SSRS)
Run a Reporting Services Script File
11/2/2020 • 2 minutes to read • Edit Online
Reporting Services script files are run from the command prompt using the Reporting Services script
environment (RS.exe). RS.exe has many command prompt arguments available for you to use. For more
information about the command prompt options, see RS.exe Utility (SSRS). For more script samples, see SQL
Server Reporting Services Product Samples.
rs -i Script.rss -s https://servername/reportserver
Run Script.rss in the script environment specifying a user name and password for authenticating the Web
service calls:
rs -i Script.rss -s https://servername/reportserver -l 30
Run Script.rss in the script environment specifying a global script variable called report.
Run Script.rss in the script environment specifying that the Web service operations in the script file are
run as a batch.
rs -i Script.rss -s https://servername/reportserver -b
See Also
Technical Reference (SSRS)
Script Deployment and Administrative Tasks
11/2/2020 • 9 minutes to read • Edit Online
Reporting Services supports the use of scripts to automate routine installation, deployment, and administrative
tasks. Deploying a report server is a multi-step process. You must use several tools and processes to configure a
deployment; there is no single program or approach that can be used to automate all the tasks.
Not every step should be automated. In some cases, performing a step manually or through a graphical tool is
the simplest and most effective approach. For example, if you want to deploy a large number of reports and
models, it is better to copy the report server databases rather than write code that recreates report server
environment.
Some steps require custom code. For example, configuring the URLs for the Web service and Report Manager
can be automated, but only if you write custom code that makes calls into the Report Server Windows
Management Instrumentation (WMI) provider. If you do not want to write code, you must use the Reporting
Services Configuration tool to perform the step.
To run script that configures a report server, you must be a local administrator on the computer that you are
configuring. For more information, see Configure a Report Server for Remote Administration.
This topic describes recommended approaches for automating specific steps. Several programs and
programmatic interfaces are mentioned; descriptions of each one are provided later in this topic.
TA SK A P P RO A C H
Install Reporting Services. You can run setup from the command line to perform an
unattended installation.
Configure the service account. The service account is initially configured through Setup. To
automate changes to the service account as a post-Setup
task, you must write custom code that makes calls into the
Report Server WMI provider. There are no command-prompt
utilities or script templates for configuring the service
account programmatically.
Configure the Report Server Web service and Report You must write custom code that makes calls into the Report
Manager URLs. Server WMI provider. There are no command line utilities or
script templates for configuring the URLs.
Create the report server database. You must write custom code that makes calls into the Report
Server WMI provider. There are no command-prompt
utilities or script templates for creating the report server
databases and RSExecRole.
Configure the report server database connection. If you are changing the connection string, account or
password, or the authentication type, run the rsconfig
utility to configure the connection. For more information, see
Configure a Report Server Database Connection (Report
Server Configuration Manager) and rsconfig Utility (SSRS).
Configure a scale-out deployment. Choose from the following approaches to automate scale-
out deployment:
Configure Report Server E-mail. Write custom code that runs against the Reporting Services
WMI provider. The provider supports a subset of the e-mail
configuration settings.
Configure the unattended execution account. Choose from the following approaches to automate
unattended processing account configuration:
Deploy existing content on another report server, including The best way to re-create an existing report server
the folder hierarchy, role assignments, reports, subscriptions, environment is to copy the report server database to a new
schedules, data sources, and resources. report server instance.
NOTE
Scripts run under the Microsoft Windows credentials of the user running the script unless credentials are explicitly set.
For more information about how to format and run a script file, see Script with the rs.exe Utility and the Web
Service.
Using Scripts to Set Server Properties
You can write scripts that set system properties on the report server. The following Visual Basic .NET script
shows one way to set properties. This example disables the RSClientPrint ActiveX control, but you can replace
EnableClientPrinting and False with any valid property name and value. To view a complete list of server
properties, see Report Server System Properties.
To use the script, save it to a file that has an .rss extension, and then use the rs.exe command prompt utility to
run the file on the report server. The script is not compiled, so it is not necessary to have an installation of Visual
Basic. This example assumes that you have permissions on the local computer that hosts the report server. If you
are not logged on under an account that has permissions, you must specify account information through
additional command line arguments. For more information, see RS.exe Utility (SSRS).
TIP
For a detailed example, see Sample Reporting Services rs.exe Script to Copy Content between Report Servers.
Next steps
GenerateDatabaseCreationScript Method (WMI MSReportServer_ConfigurationSetting)
GenerateDatabaseRightsScript Method (WMI MSReportServer_ConfigurationSetting)
GenerateDatabaseUpgradeScript Method (WMI MSReportServer_ConfigurationSetting)
Install SQL Server from the Command Prompt
Install Reporting Services Native Mode Report Server
Reporting Services Report Server (Native Mode)
Report Server Command Prompt Utilities (SSRS)
Browser Support for Reporting Services and Power View
Reporting Services Tools
More questions? Try asking the Reporting Services forum
Sample Reporting Services rs.exe Script to Copy
Content between Report Servers
11/2/2020 • 14 minutes to read • Edit Online
APPLIES TO: ✔
️ SQL Server Reporting Services (2008 R2 and later) ✔
️ SharePoint ✔
️ Power BI Report Server
This article includes and describes a sample Reporting Services RSS script that copies content items and settings
from one SQL Server Reporting Services report server to another report server, using the RS.exe utility. RS.exe
is installed with Reporting Services, both native and SharePoint mode. The script copies Reporting Services
items, for example reports and subscriptions, from server to another server. The script supports both SharePoint
mode and Native mode report servers.
Supported Scenarios
The script supports both SharePoint mode and Native mode report servers. The script supports the report
server versions SQL Server 2008 R2 and later, and Power BI Report Server.
The script can be used to copy content between report servers of the same mode or different modes. For
example, you can run the script to copy content from a SQL Server 2008 R2 native mode report server to a SQL
Server 2012 SP1 (11.0.3x) SharePoint mode report server. You can run the script from any server where RS.exe
is installed. For example, in the following deployment, you can:
Run RS.exe and the script ON Server A.
To copy content FROM Server B
TO Server C
Server A Native
Server B SharePoint
Server C SharePoint
For more information on the RS.exe utility, see RS.exe Utility (SSRS).
Items and resources the script migrates
The script won't write over existing content items of the same name. If the script detects items with the same
name on the destination server that are on the source server, the individual items will result in a "failure"
message and the script will continue. The following table lists the types of content and resources the script can
migrate to target report server modes.
History No No
Roles and system policies Yes Yes By default the script won't
copy custom permission
schema between servers.
The default behavior is the
items will be copied to the
destination server with the
'inherit parent permissions'
flag set to TRUE. If you
want the script to copy
permissions for individual
items, use the SECURITY
switch.
Required permissions
The permissions required to read or write items and resources isn't the same for all of the methods used in the
script. The following table summarizes the methods used for each item or resource and links to related content.
Navigate to the individual article to see the required permissions. For example the ListChildren method topic
notes the required permissions of:
Native Mode Required Permissions: ReadProperties on Item
SharePoint Mode Required Permissions: ViewListItems
GetProperties SetItemDataSources
GetItemDataSources GetItemReferences
GetItemReferences CreateDataSource
GetDataSourceContents CreateLinkedItem
GetItemLink CreateFolder
GetRoleProperties
GetSubscriptionProperties CreateDataDrivenSubscription
GetDataDrivenSubscriptionProperties
GetCacheRefreshPlanProperties
For more information, see Compare Roles and Tasks in Reporting Services to SharePoint Groups and
Permissions.
Usage notes:
The script runs in two steps.
The first step is an audit, to return a list of items that will be migrated and the second step is the
migration process.
You can cancel the script after step one if you only want to see the possible migration list or you want
to modify the parameters. Dependent settings aren't listed in step one. For example, the cache options of
a report aren't listed but the report itself is.
TIP
If you want to just audit a single server, use the same server for source and destination and cancel after step 1.
A good use of the step 1 audit information is to review existing roles on both the source and target
Native mode server. The following is an example of the step one audit list. Notice the list includes a "roles"
section because the switch-v security="True" was used:
Retrieve and report the list of items that will be migrated. You can cancel the script after
step 1 if you do not want to start the actual migration.
Retrieving roles:
Role: Browser
Retrieve and report the list of items that will be migrated. You can cancel the script after
step 1 if you do not want to start the actual migration.
Retrieving roles:
Role: Browser
Role: My Reports
Role: Publisher
Retrieving schedules:
Schedule: theMondaySchedule
Folder: /images
Resource: /images/R2-D2.png
Folder: /Reports
Report: /Reports/products
Report: /Reports/test
Report: /Reports/TitleOnly
The SOURCE_URL and TARGET_URL must be valid report server URLs that point to the source and target
Reporting Services report server. In native mode, a report server URL looks like this URL:
https://servername/reportserver
The virtual folder structure presented to the user in SharePoint might be different than the underlying
one. Open https://servername/_vti_bin/reportserver or
https://servername/sites/site_name/_vti_bin/reportserver in a browser to see the non-virtual folder
structure. This is helpful for setting source folder and target folder to something other than "/", for a
server in SharePoint mode.
Passwords aren't migrated, and must be re-entered, for example data sources with stored credentials.
Parameter description
PA RA M ET ER DESC RIP T IO N REQ UIRED
-u Domain\password -p password Credentials for source server. OPTIONAL, default credentials are
used if missing
-v tf ="TARGETFOLDER" 'Set to "/" for migrating into the root OPTIONAL, default is "/".
level. Set to "/folder/subfolder" to copy
into a folder that already exists.
Everything within "SOURCEFOLDER"
will be copied into "TARGETFOLDER.
More examples
Native mode report server to native mode report server
The following example migrates content from the native mode Sourceser ver to the native mode
Targetser ver .
TIP
For information on how to use Windows PowerShell to create Reporting Services report servers on Azure virtual
machines, see Use PowerShell to Create an Azure VM With a Native Mode Report Server.
Verification
The section summarizes some of the steps to take on the destination server to verify content and policies were
successfully migrated.
Schedules
To verify schedules on the target server:
Native Mode
1. Open the web portal on the destination server.
2. Select Site Settings on the top menu.
3. Select Schedules in the left pane.
SharePoint mode:
1. Browse to Site settings .
2. In the Repor ting Ser vices group, click Manage Shared Schedules .
Roles and groups
Native Mode
1. Open SQL Server Management Studio and connect to your native mode report server.
2. In Object Explorer click Security .
3. Click Roles .
Troubleshooting
Use the trace flag -t to receive more information. For example, if you run the script and see a message similar to
the following
Could not connect to server: https://<servername>/ReportServer/ReportService2010.asmx
Run the script again with the -t flag, to see a message similar to this one:
System.Exception: Could not connect to server:
https://<servername>/ReportServer/ReportService2010.asmx ---> System.Net.WebException: The request
failed with HTTP status 401: Unauthorized . at
System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message,
WebResponse response, Stream responseStream, Boolean asyncCall) at
System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters) at
Microsoft.SqlServer.ReportingServices2010.ReportingService2010.IsSSLRequired() at
Microsoft.ReportingServices.ScriptHost.Management2010Endpoint.PingService(String url, String userName,
String password, String domain, Int32 timeout) at
Microsoft.ReportingServices.ScriptHost.ScriptHost.DetermineServerUrlSecurity() --- End of inner exception
stack trace ---
See also
RS.exe Utility (SSRS)
Compare Roles and Tasks in Reporting Services to SharePoint Groups and Permissions
Access the Reporting Services WMI Provider
11/2/2020 • 3 minutes to read • Edit Online
The Reporting Services WMI provider exposes two WMI classes for administration of Native mode report server
instances through scripting:
IMPORTANT
Starting with the SQL Server 2012 (11.x) release, the WMI provider is supported for only native mode report servers.
SharePoint mode report servers can be managed with SharePoint Central Administration pages and PowerShell scripts.
An instance of each of the above classes is created for each report server instance. You can use any Microsoft or
third party tools to access the WMI objects exposed by the report server, including WMI programming
interfaces exposed by the .NET Framework itself. This topic describes how to access and use the WMI class
instances with the PowerShell command Get-WmiObject.
For example, to access the MSReportServer_ConfigurationSetting class on the default report server instance of
the host myrshost, run the following command. The default report server instance must be installed on
myrshost for this command to succeed.
This command syntax outputs all class property names and values. Note that all instances of the class
MSReportServer_ConfigurationSetting is returned, even though you are accessing the class in the namespace of
the default report server instance (RS_MSSQLSERVER). For example, if myrshost is installed with the default
report server instance and a named report server instance called SHAREPOINT, this command will return two
WMI objects and output the property names and values for both report server instances.
To return a specific class instance when multiple instances are returned, use the -Filter parameter to filter the
results based on properties with unique values such as InstanceName. For example, to return only the WMI
object for the default report server instance, use the following command:
See Also
Reporting Services WMI Provider Library Reference (SSRS)
RsReportServer.config Configuration File
Report Server Command Prompt Utilities (SSRS)
11/2/2020 • 2 minutes to read • Edit Online
SQL Server Reporting Services includes several command line utilities that you can use to administer a report
server. These utilities are installed automatically when you install a report server.
SUP P O RT ED DEP LO Y M EN T
NAME C O M M A N D F IL E M O DE DESC RIP T IO N
RSS utility rs.exe Native mode and The rs utility is a script host
SharePoint mode. The SQL that you can use to perform
Server 2008 R2 release scripted operations. Use
introduced SharePoint this tool to run
mode support. MicrosoftVisual Basic scripts
that copy data between
report server databases,
publish reports, create
items in a report server
database, and more. To
learn more about using
scripts to administer a
server, see Script
Deployment and
Administrative Tasks.
NOTE
If you prefer to use a tool that has a graphical user interface, you can use the Report Server Configuration Manager
instead of rsconfig and rskeymgmt .
See Also
Report Server Configuration Manager (Native Mode)
Reporting Services Tools
Reporting Services Report Server (Native Mode)
rskeymgmt Utility (SSRS)
11/2/2020 • 7 minutes to read • Edit Online
Extracts, restores, creates, and deletes the symmetric key used to protect sensitive report server data against
unauthorized access. This utility is also used to join report server instances in a scale-out deployment. A report
server scale-out deployment refers to multiple report server instances that share a single report server
database.
Syntax
rskeymgmt {-?}
{-eextract}
{-aapply}
{-ddeleteall}
{-srecreatekey}
{-rremoveinstancekey}
{-jjoinfarm}
{-iinstance}
{-ffile}
{-pencryptionpassword}
{-mremotecomputer}
{-ninstancenameofremotecomputer}
{-uadministratoruseraccount}
{-vadministratorpassword}
{-ttrace}
Arguments
-?
Displays the syntax of rskeymgmt arguments.
-e
Extracts the symmetric key used to encrypt and decrypt data for the report server instance so that you can copy
it to a file.
This argument does not take a value. However, you must include additional arguments on the command line to
complete the extraction. The arguments that you must specify include -f and-p .
-a
Replaces an existing symmetric key with a copy that you provide in a password protected backup file. All
instances of the symmetric key are updated.
This argument does not take a value. However, you must include additional arguments on the command line to
select the file that contains the key to be applied. The arguments that you can specify include -f and-p .
-d
Deletes all symmetric key instances and all encrypted data in a report server database. This argument does not
take a value.
-s
Generates a new symmetric key and re-encrypts all encrypted content using the new key. All instances of the
symmetric key are regenerated.
-j
Configures a remote report server instance to share the report server database that is used by the local report
server instance.
-r installationID
Removes the symmetric key information for a specific report server instance, thereby removing the report
server from a scale-out deployment. The installationID is a GUID value that can be found in the
RSReportserver.config file.
-f file
Specifies a fully qualified path to the file that stores a backup copy of the symmetric keys.
For rskeymgmt -e , the symmetric key is written to the file you specify.
For rskeymgmt -a , the symmetric key value stored in the file is applied to the report server instance.
-p password
(Required for -f ) Specifies the password used to back up or apply a symmetric key. This value cannot be empty.
-i
Specifies a local report server instance. This argument is optional if you installed the report server on the
default SQL Server instance (the default value for -i is MSSQLSERVER). If you installed the report server as a
named instance, -i is required.
-m
Specifies the name of the remote computer that hosts the report server instance you are joining to the report
server scale-out deployment. Use the name of the computer that identifies it on your network.
-n
Specifies the name of the report server instance on a remote computer. This argument is optional if you
installed the report server on the default SQL Server instance (the default value for -n is MSSQLSERVER). If you
installed the report server as a named instance, -n is required.
-u useraccount
Specifies the administrator account on the remote computer that you are joining to the scale-out deployment. If
an account is not specified, the credentials of the current user are used.
-v password
(Required for -u ) Specifies the password of an administrator account on the remote computer that you want to
join to the scale-out deployment.
-t trace
Outputs error messages to the trace log. This argument does not take a value. For more information, see Report
Server Service Trace Log.
Permissions
You must be a local administrator to run the tool, and you must run it locally on the computer that hosts the
report server. The rskeymgmt utility works with the local Report Server Windows instance (the utility cannot
connect to remote instances of the Report Server Windows service so it cannot be used to manage the
encryption keys of a remote report server instance).
NOTE
If you are using the -u and -v arguments, be sure to specify an account that has administrator permissions on the
remote computer.
Examples
The following examples illustrate ways of using rskeymgmt . The following examples show how to extract,
restore, and delete encryption keys, and how to configure a report server scale-out deployment.
Extracting Encryption Keys
This example shows how to create a backup copy of the encryption key and save it to a password-protected file
on a floppy disk. If the report server is installed as a named instance, add the -i argument.
rskeymgmt -d
NOTE
A report server scale-out deployment refers to a deployment model where multiple report server instances share the
same report server database. A report server database can be used by any report server instance that stores its
symmetric keys in the database. For example, if a report server database contains key information for three report server
instances, all three instances are considered to members of the same scale-out deployment.
rskeymgmt -r <installationID>
File Location
Rskeymgmt.exe is located at < drive >:\Program Files\Microsoft SQL Ser ver\110\Tools\Binn or at
< drive >:\Program Files (x86)\Microsoft SQL Ser ver\110\Tools\Binn . You can run the utility from any
folder on your file system.
Remarks
A report server encrypts stored credentials and connection information. A public key and a symmetric key are
used to encrypt data. A report server database must have valid keys in order for the report server to run. You
can use rskeymgmt to back up, delete, or restore the keys. If the keys cannot be restored, this tool provides a
way to delete encrypted content that can no longer be used.
The rskeymgmt utility is used to manage the key set that is defined during Setup or during initialization. It
connects to the local Report Server Windows service through a Remote Procedure Call (RPC) endpoint. The
Report Server Windows service must be running in order for this utility to work.
For more information about the encryption keys, see Configure and Manage Encryption Keys (Report Server
Configuration Manager) and Initialize a Report Server (Report Server Configuration Manager).
See Also
Scale-out Deployment - Reporting Services Native mode (Configuration Manager)
Reporting Services Report Server (Native Mode)
Report Server Command Prompt Utilities (SSRS)
Configure and Manage Encryption Keys (Report Server Configuration Manager)
rsconfig Utility (SSRS)
11/2/2020 • 5 minutes to read • Edit Online
The rsconfig.exe utility encrypts and stores connection and account values in the RSReportServer.config file.
Encrypted values include report server database connection information and account values used for
unattended report processing.
Syntax
rsconfig {-?}
{-cconnection}
{-eunattendedaccount}
{-mcomputername}
{-iinstancename}
{-sservername}
{-ddatabasename}
{-aauthmethod}
{-uusername}
{-ppassword}
{-ttrace}
Arguments
T ERM O P T IO N A L / REQ UIRED DEF IN IT IO N
-m computername Required if you are configuring a Specifies the name of the computer
remote report server instance. that is hosting the report server. If this
argument is omitted, the default is
localhost .
-i instancename Required if you are using named If you used a named Reporting
instances. Services instance, this value specifies
the name of the Reporting Services
instance.
-u [domain\]username Required with -e Optional with -c. Specifies a user account for the report
server database connection or for the
unattended account.
Permissions
You must be a local administrator on the computer that hosts the report server you are configuring.
File Location
Rsconfig.exe is located in \Program Files\Microsoft SQL Ser ver\110\Tools\Binn . You can run the utility
from any folder on your file system.
Remarks
Rsconfig.exe is used for two purposes:
To modify the connection information that a report server uses to connect to a report server database.
To configure a special account that the report server uses to log on to a remote database server when
other credentials are not available.
You can run the rsconfig utility on a local or remote instance of Reporting Services. You cannot use the
rsconfig utility to decrypt and view values that are already set.
Before you can run this utility, Windows Management Instrumentation (WMI) must be installed on the computer
that you are configuring.
Examples
The following examples illustrate ways of using rsconfig .
Specifying a Domain User Account
This example shows how to configure a report server to use a domain user account when connecting to a local
report server database.
See Also
Configure a Report Server Database Connection (Report Server Configuration Manager)
Configure the Unattended Execution Account (Report Server Configuration Manager)
Reporting Services Report Server (Native Mode)
Store Encrypted Report Server Data (Report Server Configuration Manager)
Reporting Services Configuration Files
Report Server Command Prompt Utilities (SSRS)
RsReportServer.config Configuration File
RS.exe Utility (SSRS)
11/2/2020 • 4 minutes to read • Edit Online
The rs.exe utility processes script that you provide in an input file. Use this utility to automate report server
deployment and administration tasks.
NOTE
Beginning with SQL Server 2008 R2, the rs utility is supported against report servers that are configured for SharePoint
integrated mode as well as servers configured in native mode. Previous versions only supported native mode
configurations.
Syntax
rs {-?}
{-i input_file=}
{-s serverURL}
{-u username}
{-p password}
{-e endpoint}
{-l time_out}
{-b batchmode}
{-v globalvars=}
{-t trace}
File Location
RS.exe is located at \Program Files\Microsoft SQL Ser ver\110\Tools\Binn . You can run the utility from
any folder on your file system.
Arguments
-?
(Optional) Displays the syntax of rs arguments.
-i input_file
(Required) Specifies the .rss file to execute. This value can be a relative or fully qualified path to the .rss file.
-s serverURL
(Required) Specifies the Web server name and report server virtual directory name to execute the file against.
An example of a report server URL is https://examplewebserver/reportserver . The prefix http:// or https:// at the
beginning of the server name is optional. If you omit the prefix, the report server script host tries to use https
first, and then uses http if https does not work.
-u [domain\]username
(Optional) Specifies a user account used to connect to the report server. If -u and -p are omitted, the current
Windows user account is used.
-p password
(Required if -u is specified) Specifies the password to use with the -u argument. This value is case-sensitive.
-e
(Optional) Specifies the SOAP endpoint against which the script should run. Valid values are the following:
Mgmt2010
Mgmt2006
Mgmt2005
Exec2005
If a value is not specified, the Mgmt2005 endpoint is used. For more information about the SOAP endpoints, see
Report Server Web Service Endpoints.
-l time_out
(Optional) Specifies the number of seconds that elapse before the connection to the server times out. The
default is 60 seconds. If you do not specify a time-out value, the default is used. A value of 0 specifies that the
connection never times out.
-b
(Optional) Specifies that the commands in the script file run in a batch. If any commands fail, the batch is rolled
back. Some commands cannot be batched, and those run as usual. Only exceptions that are thrown and are not
handled within the script result in a rollback. If the script handles an exception and returns normally from Main ,
the batch is committed. If you omit this parameter, the commands run without creating a batch. For more
information, see Batching Methods.
-v globalvar
(Optional) Specifies global variables that are used in the script. If the script uses global variables, you must
specify this argument. The value that you specify must be valid for global variable defined in the .rss file. You
must specify one global variable for each -v argument.
The -v argument is specified on the command line and is used to set the value for a global variable that is
defined in your script at run time. For example, if your script contains a variable named parentFolder, you can
specify a name for that folder on the command line:
rs.exe -i myScriptFile.rss -s https://myServer/reportserver -v parentFolder="Financial Reports"
Global variables are created with the names given and set to the values supplied. For example, -v a= "1 " -v
b= "2 " results in a variable named a with a value of"1 " and a variable b with a value of "2 ".
Global variables are available to any function in the script. A backslash and quotation mark (\" ) is interpreted as
a double quotation mark. The quotation marks are required only if the string contains a space. Variable names
must be valid for Microsoft Visual Basic; they must start with alphabetical character or underscore and contain
alphabetical characters, digits, or underscores. Reserved words cannot be used as variable names. For more
information about using global variables, see Built-in Collections in Expressions (Report Builder and SSRS).
-t
(Optional) Outputs error messages to the trace log. This argument does not take a value. For more information,
see Report Server Service Trace Log.
Permissions
To run the tool, you must have permission to connect to the report server instance you are running the script
against. You can run scripts to make changes to the local computer or a remote computer. To make changes to a
report server installed on a remote computer, specify the remote computer in the -s argument.
Examples
The following example illustrates how to specify the script file that contains Visual Basic .NET script and Web
service methods that you want to execute.
rs -i c:\scriptfiles\script_copycontent.rss -s https://localhost/reportserver
For a detailed example, see Sample Reporting Services rs.exe Script to Copy Content between Report Servers.
For additional examples, see Run a Reporting Services Script File
Remarks
You can define scripts to set system properties, publish reports, and so forth. The scripts that you create can
include any methods of the Reporting Services API. For more information about the methods and properties
available to you, see Report Server Web Service.
The script must be written in Visual Basic .NET code, and stored in a Unicode or UTF-8 text file with an .rss file
name extension. You cannot debug scripts with the rs utility. To debug a script, run the code within Microsoft
Visual Studio.
TIP
For a detailed example, see Sample Reporting Services rs.exe Script to Copy Content between Report Servers.
See Also
Run a Reporting Services Script File
Script Deployment and Administrative Tasks
Script with the rs.exe Utility and the Web Service
Report Server Command Prompt Utilities (SSRS)
Tutorial: How to Locate and Start Reporting
Services Tools (SSRS)
3/5/2021 • 6 minutes to read • Edit Online
This tutorial introduces the tools used to configure a report server, manage report server content and
operations, and create and publish paginated and mobile Reporting Services reports. If you are already familiar
with the tools, you can move on to other tutorials to learn skills for using Reporting Services. For other tutorials,
see Reporting Services Tutorials (SSRS).
Or
Click Star t , then click Programs , then click Microsoft SQL Ser ver , then click Configuration Tools ,
and then click Repor t Ser ver Configuration Manager .
The Repor t Ser ver Installation Instance Selection dialog box appears so that you can select the
report server instance you want to configure.
2. In Ser ver Name , specify the name of the computer on which the report server instance is installed. The
name of the local computer is specified by default, but you can also type the name of a remote SQL
Server instance.
If you specify a remote computer, click Find to establish a connection. The report server must be
configured for remote administration in advance. For more information, see Configure a Report Server
for Remote Administration.
3. In Instance Name , choose the SQL Server Reporting Services instance that you want to configure. Only
SQL Server 2008 and later report server instances appear in the list. You cannot configure earlier
versions of Reporting Services.
4. Click Connect .
5. To verify that you launched the tool, compare your results to the following image:
Next Steps: Configure and Administer a Report Server (SSRS Native Mode) and Report Server Configuration
Manager (Native Mode).
Management Studio
Report server administrators can use Management Studio to manage a report server alongside other SQL
Server component servers. For more information, see the SQL Server Management Studio tutorial.
To Start SQL Server Management Studio
1. From the Windows Start Screen type sql ser ver and in the Apps search results, click SQL Ser ver
Management Studio .
Or
Click Star t , then click All Programs , then click Microsoft SQL Ser ver , and then click SQL Ser ver
Management Studio . The Connect to Ser ver dialog box appears.
2. If the Connect to Ser ver dialog box does not appear, in Object Explorer , click Connect and then
select Repor ting Ser vices .
3. In the Ser ver type list, select Repor ting Ser vices . If Reporting Services is not on the list, it is not
installed.
4. In the Ser ver name list, select a report server instance. Local instances appear in the list. You can also
type the name of a remote SQL Server instance.
5. Click Connect . You can expand the root node to set server properties, modify role definitions, or turn off
report server features.
SQL Server Data Tools with Report Designer and Report Wizard
You have a choice of two different tools for creating SQL Server paginated reports: Report Designer and Report
Builder.
Report Designer is available in SQL Server Data Tools (SSDT) - Visual Studio. The Report Designer design surface
includes tabbed windows, wizards, and menus used to access report authoring features. The report designer
tool becomes available when you choose a Report Server Project or a Report Server Wizard template in SQL
Server Data Tools (SSDT). To learn more, see Reporting Services in SQL Server Data Tools (SSDT).
Download SQL Server Data Tools.
To start Report Designer
1. Open SQL Ser ver Data Tools .
2. On the File menu, point to New , and then click Project .
3. In the Project Types list, click Business Intelligence Projects .
4. In the Templates list, click Repor t Ser ver Project . The following diagram shows how the project
templates appear in the dialog box:
5. Type a name and location for the project, or click Browse and select a location.
6. Click OK . SQL Server Data Tools (SSDT) opens with the Visual Studio start page. Solution Explorer
provides categories for creating reports and data sources. You can use these categories to create new
reports and data sources. Tabbed windows appear when you create a report definition. The tabbed
windows are Data, Layout, and Preview..
To get started on your first report, see Create a Basic Table Report (SSRS Tutorial). To learn more about query
designers you can use within Report Designer, see Query Design Tools (SSRS).
Report Builder
Report Builder in SQL Server is a stand-alone application you can use to create paginated reports outside SQL
Server. You can customize and update all existing reports, regardless of whether they were created in Report
Designer or in previous versions of Report Builder. Install it from the SQL Server web portal or from the
Microsoft Download Center.
When your paginated report is ready, publish it to a report server or save it to the Power BI service.
Download Report Builder from the Microsoft Download Center.
To start Report Builder
1. In the SQL Server web portal, on the New menu, select Paginated Repor t .
2. If Report Builder isn't installed on this computer yet, select Get Repor t Builder .
Or
Download Report Builder from the Microsoft Download Center.
3. Report Builder opens and you can create or open a paginated report.
2. If Mobile Report Publisher isn't installed on this computer yet, select Get Mobile Repor t Publisher .
Or
Download SQL Server Mobile Report Publisher from the Microsoft Download Center.
3. Mobile Report Publisher opens and you can create or open a mobile report.
Next steps
Download SQL Server Mobile Report Publisher
Download Report Builder
Download SQL Server Data Tools
Install Reporting Services SharePoint Mode
Reporting Services Report Server
Query Design Tools
Reporting Services Tutorials
More questions? Try asking the Reporting Services forum
Reporting Services Data Alerts
3/5/2021 • 19 minutes to read • Edit Online
APPLIES TO: ✔
️ SQL Server Reporting Services (2016) ❌ SQL Server Reporting Services (2017) ✔
️
SharePoint ❌ Power BI Report Server
For content related to previous versions of SQL Server Reporting Services (SSRS), see SQL Server 2014
Reporting Services.
SQL Server Reporting Services data alerts are a data driven alerting solution that helps you be informed about
report data that is interesting or important to you, and at a relevant time. By using data alerts you no longer
have to seek out information, it comes to you.
Data alert messages are sent by email. Depending on the importance of the information, you can choose to
send messages more or less frequently and only when results change. You can specify multiple email recipients
and this way keep others informed to enhance efficiency and collaboration.
NOTE
Reporting Services integration with SharePoint is no longer available after SQL Server 2016.
By default, the MaxRetries and SecondsBeforeRetry settings apply to all events that data alerts fire. If you want
more granular control of retries and retry delays, you can add elements for any and all event handlers that
specify different MaxRetries and SecondsBeforeRetry values.
Event Handlers and Retry
The event handlers are:
FireSchedule SQL Server Agent launches the job schedule for an alert
definition.
CreateSchedule You create a data alert definition and a SQL Server Agent job
schedule is created based on the frequency interval specified
in the alert definition.
UpdateSchedule You update the frequency interval of the data alert definition
and the SQL Server Agent job schedule is updated.
EVEN T H A N DL ER DESC RIP T IO N
DeleteSchedule You delete the data alert definition and its SQL Server Agent
job is deleted.
GenerateAlert The alerting runtime processes the report data feed, applies
the rules specified in the data alert definition, determines
whether to create an instance of the data alert, and if
needed creates an instance of the data alert.
DeliverAlert The runtime creates the data alert message and sends it to
all recipients by email.
The following table summarizes the event handlers and when retry will fire:
ERRO R
C AT EGO RY
/ EVEN T F IRESC H ED C REAT ESC UP DAT ESC DEL ET ESC H GEN ERAT E DEL IVERA L
TYPE F IREA L ERT UL E H EDUL E H EDUL E EDUL E A L ERT ERT
Out of X X X X X X X
memory
Thread X X X X X X X
abort
SQL Agent X X X X
is not
running
Transient. X X X X X X X
Mostly due
to
connection
s problems,
timeouts,
and locks.
IOExceptio X
n
WebExcepti X
on
SocketExce X
ption
SMTPExcep X
tion (*)
<IsSchedulingService>True</IsSchedulingService>
<IsNotificationService>True</IsNotificationService>
<IsEventService>True</IsEventService>
<IsAlertingService>True</IsAlertingService>
...
</Service>
Information worker View Items View items such as reports and create
data alerts on the reports. Edit and
Create Alerts delete alerts.
Alerting administrator Manage Alerts View a list of all data alerts saved on
the SharePoint site and delete alerts.
Performance Counters
Data alerts provide their own performance counters. All but one performance counter is related to an event that
is part of the alerting runtime service. The performance counter related to the event queue tells the length of the
queue of all active events.
Reporting Services provides performance counters for other Reporting Services features. For more information,
see Performance Counters for the ReportServer:Service and ReportServerSharePoint:Service Performance
Objects, Performance Counters for the MSRS 2011 Web Service and MSRS 2011 Windows Service Performance
Objects (Native Mode), and Performance Counters for the MSRS 2011 Web Service SharePoint Mode and MSRS
2011 Windows Service SharePoint Mode Performance Objects (SharePoint Mode).
Related Tasks
Save a Report to a SharePoint Library (Report Builder)
Create a Data Alert in Data Alert Designer
Edit a Data Alert in Alert Designer
Manage My Data Alerts in Data Alert Manager
Manage All Data Alerts on a SharePoint Site in Data Alert Manager
Grant Permissions to Users and Alerting Administrators
See Also
Data Alert Designer
Data Alert Manager for Alerting Administrators
Data Alert Manager for SharePoint Users
More questions? Try asking the Reporting Services forum
Data Alert Designer
3/5/2021 • 12 minutes to read • Edit Online
APPLIES TO: ✔
️ SQL Server Reporting Services (2016) ❌ SQL Server Reporting Services (2017) ✔
️
SharePoint ❌ Power BI Report Server
For content related to previous versions of SQL Server Reporting Services (SSRS), see SQL Server 2014
Reporting Services.
You create and edit data alert definitions in Data Alert Designer. An alert definition is a collection of metadata,
including the report data that you are interested in, the rules that report data must satisfy to create data alert
instances and send data alert messages, the recipients of the alert message, and so forth.
NOTE
Reporting Services integration with SharePoint is no longer available after SQL Server 2016.
NOTE
Because the Reporting Services data alerts feature is available only when you install Reporting Services in SharePoint
mode, the report on which you want to create an alert must be saved, deployed, or uploaded to a SharePoint document
library.
Data alerts cannot be created on reports that use Windows Integrated authentication or prompts for credentials. The
reports must use stored credentials. For more information, see Specify Credential and Connection Information for Report
Data Sources.
To open Data Alert Designer, you click the New Data Aler t option on the Actions menu on the report toolbar.
If you do not see the New Data Aler t option, the report is not configured to use stored credentials. You can
update the credential type by updating the report data source from the SharePoint library.
Email Settings
You specify the email addresses of recipients to receive data alert messages by email in the Recipient(s) option.
Multiple email addresses are separated by semicolons, the same way that you do in Microsoft Office Outlook
email messages. You can also specify distribution groups as recipients, which makes it easier and more efficient
to manage the recipient list. If SharePoint can determine your email address when you are creating an alert
definition, your email address is automatically added to the recipients list; otherwise, you need to explicitly add
yourself as a recipient.
The default subject of the email is Data aler t for <aler t name> . You can change the subject to fit your needs.
You can also provide a description to include in the data alert message in the Description option. Including a
description, especially if you have data alerts that are similar, will help you quickly differentiate and understand
your alert messages. In addition to the alert message that is sent when report data satisfied the specified rules,
an alert message is sent to all recipients when an error occurs. For more information, see Data Alert Messages.
For more information about how the email is generated, see Reporting Services Data Alerts.
For more information, see Create a Data Alert in Data Alert Designer.
NOTE
The parameter values you chose to run the report are saved in the alert definition and will be used when report is rerun
as a step in processing the alert definition. To use different parameter values, you must create a new alert definition.
Before the alert definition is saved, it is validated. You must correct any errors before the alert definition can be
saved successfully. For more information, see Create a Data Alert in Data Alert Designer.
Related Tasks
This section lists procedures that show you how to create and edit alerts.
Edit a Data Alert in Alert Designer
Create a Data Alert in Data Alert Designer
See Also
Reporting Services Data Alerts
Data Alert Manager for Alerting Administrators
More questions? Try asking the Reporting Services forum
Data Alert Manager for SharePoint Users
3/5/2021 • 4 minutes to read • Edit Online
APPLIES TO: ✔
️ SQL Server Reporting Services (2016) ❌ SQL Server Reporting Services (2017) ✔
️
SharePoint ❌ Power BI Report Server
For content related to previous versions of SQL Server Reporting Services (SSRS), see SQL Server 2014
Reporting Services.
Reporting Services provides Data Alert Manager for SharePoint information workers to manage the data alerts.
They can view information about the alerts they created, delete alerts, open alert definitions for editing, and run
alerts on demand. They can choose to view alerts for a single report only or alerts for all reports. The following
picture shows the features available to information workers in Data Alert Manager.
NOTE
Reporting Services integration with SharePoint is no longer available after SQL Server 2016.
When a SharePoint site is enabled for data alerts, two SharePoint pages, MyDataAlerts.aspx and
SiteDataAlerts.aspx are created and added to the SharePoint site. MyDataAlerts.aspx is Data Alert Manager for
SharePoint information workers. Information workers open Data Alert Manager from the right-click menu of
reports on which they created alerts.
You can also open Data Alert Manager directly by using a URL. The following shows the syntax of the URL:
https://<site name>/_layouts/ReportServer/MyDataAlerts.aspx
NOTE
Before you can use the Reporting Services alerting features, an administrator must grant you permissions. For
information about the required permissions, see Reporting Services Data Alerts.
REP O RT L A ST
A L ERT N A M E NAME C REAT ED B Y SEN T A L ERT S L A ST RUN M O DIF IED STAT US
NOTE
After you click the Run option, it takes a few seconds to update the value of the Status column to indicate the alert is
processing. If you click the Run option multiple times, the alert will be processed multiple times. This consumes resources
on the report server unnecessarily and might impact performance of the report server. To see updated information about
the alert, click the Web browser refresh button to check for status updates as well as other information about the alert.
Related Tasks
This section lists procedures that show you how to manage your alerts and edit your alert definitions.
Manage My Data Alerts in Data Alert Manager
Edit a Data Alert in Alert Designer
See Also
Data Alert Designer
Create a Data Alert in Data Alert Designer
Reporting Services Data Alerts
More questions? Try asking the Reporting Services forum
Data Alert Manager for Alerting Administrators
3/5/2021 • 3 minutes to read • Edit Online
APPLIES TO: ✔
️ SQL Server Reporting Services (2016) ❌ SQL Server Reporting Services (2017) ✔
️
SharePoint ❌ Power BI Report Server
For content related to previous versions of SQL Server Reporting Services (SSRS), see SQL Server 2014
Reporting Services.
SQL Server Reporting Services provides Data Alert Manager for SharePoint alerting administrators to manage
data alerts. Alerting administrators can view information about all alerts saved to the site and delete alerts. The
following picture shows the features available to SharePoint alerting managers in Data Alert Manager.
NOTE
Reporting Services integration with SharePoint is no longer available after SQL Server 2016.
When the site is enabled for data alerts, two SharePoint pages, MyDataAlerts.aspx and SiteDataAlerts.aspx are
created and added to the SharePoint site. SiteDataAlerts.aspx is Data Alert Manager for alerting administrators.
Alerting administrators can open Data Alert Manager from the Site Settings SharePoint page. Alerting
administrators must have SharePoint Manage Alerts permission to open Data Alert Manager.
You can also open Data Alert Manager directly by using a URL. The following shows the syntax of the URL:
http: //<site name>/_layouts/ReportServer/ SiteDataAlerts.aspx
NOTE
As an alerting administrator, you can grant permission to information workers to access the Reporting Services data alerts
features. For more information about the required permissions, see Reporting Services Data Alerts.
REP O RT L A ST
A L ERT N A M E NAME C REAT ED B Y SEN T A L ERT S L A ST RUN M O DIF IED STAT US
For more information see, Manage All Data Alerts on a SharePoint Site in Data Alert Manager.
You can view all alerts created by site users. You choose a user and then choose whether to view all their alerts
or only alerts for a specific report.
Related Tasks
This section lists a procedure that shows you how to manage your alerts.
Manage All Data Alerts on a SharePoint Site in Data Alert Manager
See Also
Reporting Services Data Alerts
More questions? Try asking the Reporting Services forum
Data Alert Messages
3/5/2021 • 2 minutes to read • Edit Online
APPLIES TO: ✔
️ SQL Server Reporting Services (2016) ❌ SQL Server Reporting Services (2017) ✔
️
SharePoint ❌ Power BI Report Server
For content related to previous versions of SQL Server Reporting Services (SSRS), see SQL Server 2014
Reporting Services.
SQL Server Reporting Services data alerts deliver two types of data alert messages by email: Messages with
data alert results and messages with error descriptions. Messages with results keep all recipients informed
about changes in report data that is of common interest and important to business decisions. If for some reason
an error occurs and the results are not available, the error message is sent instead.
The owner of the data alert definition also can view information about the data alert instance in Data Alert
Manager. For more information, see Data Alert Manager for SharePoint Users.
NOTE
Reporting Services integration with SharePoint is no longer available after SQL Server 2016.
Error message
The messages include the same types of information.
1. On behalf of contains the name of the person who created the data alert definition.
2. If you provided a description in the alert definition, it displays below On behalf of .
3. Aler t Results display the rows in the report data feed that satisfy the rules specified in the alert
definition in a tabular format or display an error description. There is no limit on the number of rows that
displays.
4. Go to repor t is a link to the report that the alert definition is built upon. If the link is not valid because
the report was moved or deleted, an error message displays.
5. Rule(s) lists the rules and clauses in the alert definition. This information helps you verify and
understand the alert results and identify rules in the data alert definition that you might want to change
to narrow or broaden results.
6. Repor t parameters list the parameters and parameter values that were used when the report was run.
Parameters and parameter values help you understand the alert results.
7. Contextual values list the names and values of report items that are outside of the report data regions.
The items are typically text boxes. For example, a text box with a constant value such as the subject or
description of a report.
The only difference between the two message types is item 5, Aler t Results . If an error occurs when a data
alert instance or data alert message is created, Aler t Results displays an error message that describes the
problem. The error message, sent to all recipients, let them know that the alert results that they are expecting
and might rely on to make business decisions are not available.
Related Tasks
This section lists procedures that show you how to create and edit the data alert definitions that provide much
of the information that you see in data alert messages.
Create a Data Alert in Data Alert Designer
Edit a Data Alert in Alert Designer
See Also
Data Alert Designer
Reporting Services Data Alerts
More questions? Try asking the Reporting Services forum
Create a Data Alert in Data Alert Designer
3/5/2021 • 4 minutes to read • Edit Online
APPLIES TO: ✔
️ SQL Server Reporting Services (2016) ❌ Power BI Report Server ✔
️ SharePoint
You create data alert definitions in Data Alert Designer. After you save the alert definitions, you can reopen, edit,
and then resave them in Data Alert Designer. For information about editing alert definitions, see Manage My
Data Alerts in Data Alert Manager and Edit a Data Alert in Alert Designer.
NOTE
Reporting Services integration with SharePoint is no longer available after SQL Server 2016.
NOTE
The parameter values you chose to run the report are saved in the alert definition and will be used when report is
rerun as a step in processing the alert definition. To use different parameter values, you must create a new alert
definition.
The Data Alert Designer opens, showing the first 100 rows of the first data feed that the report generates
in a table.
NOTE
If you do not see the New Data Aler t option, the alerting service is not configured on the SharePoint site or the
SQL Server edition does not include data alerts. For more information, see Reporting Services SharePoint Service
and Service Applications.
If the New Data Aler t option is grayed, the report data source is configured to use integrated security
credentials or prompt for credentials. To make the New Data Aler t option available, you must update the data
source to use stored credentials or no credentials.
The name of the data feed appears in Repor t data name drop-down list.
4. Optionally, select a different data feed in the Repor t data name drop-down list.
If no data feed is generated from the report, you cannot create an alert definition for the report. The
layout of the report determines the content of each data feed. For more information see, Generating Data
Feeds from Reports (Report Builder and SSRS).
5. Optionally, in the Aler t name text box, update the default name to be more meaningful.
The default name of the alert definition is the name of the report. Alert definition names do not have to
be unique, which can make it difficult to tell them apart when you later view the list of your alerts in Data
Alert Manager. It is recommended that you use meaningful and unique names for your alert definitions.
6. Optionally, change the default data option from any data in the data feed has to no data in the data
feed has .
7. Click Add rule .
A list of the columns in the data feed appears.
8. In the list, select the column that you want to use in the rule, and then select a comparison operator and
enter the threshold value.
Depending on the data type of the selected column, different comparison operators are listed. If the
column has a date data type, a calendar icon displays next to threshold value for the rule. You can enter a
data by clicking a date in the calendar or typing the date.
Data Alert Designer provides two comparison modes: Value Entr y Mode and Field Selection Mode .
The default mode is Value Entr y Mode . You can add OR clauses only when you are in Value Entr y
Mode and are using the is comparison.
9. To add an OR clause, click the down-arrow, and then click Value Entr y Mode .
10. Type the comparison value.
11. Optionally, click the ellipsis (...) again.
The ellipsis (...) appears on the line that contains the first clause.
An OR clause is added below and within the AND rule.
12. Optionally, click the down-arrow, select Field Selection Mode , and then select a column in the list.
You will notice that the ellipsis (...) that you click to add OR clauses has disappeared.
13. Optionally, click Add rule again to add additional rules.
The rules are combined by using the AND logical operator.
14. Select an option in the recurrence list. Depending on the type of recurrence, enter an interval.
15. Optionally, click Advanced .
16. Optionally, change the date that the alert message starts on by typing a different date or opening the
calendar, and then clicking a date in the calendar.
The default start date is the current date.
17. Optionally, select the checkbox located next to Stop aler t on , and then choose a date to stop the alert
message.
By default, an alert message has no stop date.
NOTE
Stopping an alert message does not delete the alert definition. After you stop an alert message, you can restart it
by updating the start and stop dates. For information about deleting alert definitions, see Manage My Data Alerts
in Data Alert Manager.
18. Optionally, clear the Send message only if results change checkbox.
If you send alert messages frequently, redundant information might not be welcome and you should not
clear this checkbox.
19. Enter the email addresses of alert message recipients. Separate addresses with semicolons.
If the email address of the person who created the alert definition is available, it is added to the
Recipient(s) box.
20. Optionally, in the Subject text box, update the Subject line of the alert message.
The default Subject is Data aler t for <data aler t name> .
21. Optionally, in the Description text box, type a description of the alert message.
22. Click Save .
See Also
Data Alert Designer
Data Alert Manager for Alerting Administrators
Reporting Services Data Alerts
More questions? Try asking the Reporting Services forum
Edit a Data Alert in Alert Designer
3/5/2021 • 2 minutes to read • Edit Online
APPLIES TO: ✔
️ SQL Server Reporting Services (2016) ❌ SQL Server Reporting Services (2017) ✔
️
SharePoint ❌ Power BI Report Server
For content related to previous versions of SQL Server Reporting Services (SSRS), see SQL Server 2014
Reporting Services.
You open the data alert definition that you want to edit from Data Alert Manager. Only the user that created the
alert definition can edit it. For more information about opening Data Alert Manager, see Manage My Data Alerts
in Data Alert Manager.
NOTE
Reporting Services integration with SharePoint is no longer available after SQL Server 2016.
The following picture shows you the context menu on a data alert in Data Alert Manager.
The following procedure includes the steps to open the alert definition for editing in Data Alert Designer from
Data Alert Manager.
To edit a data alert definition in Data Alert Designer
1. In Data Alert Manager, right-click the data alert definition that you want to edit and click Edit .
The alert definition opens in Data Alert Designer.
2. Update the rules, schedule settings, and email settings. For more information, see Data Alert Designer
and Create a Data Alert in Data Alert Designer.
NOTE
You cannot choose a different data feed. To use a different data feed, you must create a new data alert definition.
3. Click Save .
NOTE
If the report has changed and the data feeds generated from the report have changed the alert definition might
no longer be valid. This occurs when a column that the alert definition references in its rules is deleted from the
report or changes data type or the report is deleted or moved. You can open an alert definition that is not valid,
but you cannot resave it until it is valid based on the current version of the report data feed that it is built upon.
To learn more about how data feeds are generated from reports, see Generating Data Feeds from Reports (Report
Builder and SSRS).
See Also
Data Alert Manager for Alerting Administrators
Reporting Services Data Alerts
More questions? Try asking the Reporting Services forum
Manage All Data Alerts on a SharePoint Site in Data
Alert Manager
3/5/2021 • 2 minutes to read • Edit Online
APPLIES TO: ✔
️ SQL Server Reporting Services (2016) ❌ Power BI Report Server ✔
️ SharePoint
SharePoint alerting administrators can view a list of the data alerts that were created by any site user and
information about the alerts. Alerting administrators can also delete alerts. The following picture shows the
features available to alerting administrators in Data Alert Manager.
NOTE
Reporting Services integration with SharePoint is no longer available after SQL Server 2016.
See Also
Data Alert Manager for Alerting Administrators
Reporting Services Data Alerts
More questions? Try asking the Reporting Services forum
Manage My Data Alerts in Data Alert Manager
3/5/2021 • 2 minutes to read • Edit Online
APPLIES TO: ✔
️ SQL Server Reporting Services (2016) ❌ Power BI Report Server ✔
️ SharePoint
SharePoint users can view a list of the data alerts that they created and information about the alerts. Users can
also delete their alerts, open alert definitions for edit in Data Alert Designer, and run their alerts. The following
picture shows the features available to users in Data Alert Manager.
NOTE
Reporting Services integration with SharePoint is no longer available after SQL Server 2016.
Data Alert Manager opens. By default, it lists the alerts for the report that you selected in the library.
3. Click the down arrow next to the View aler ts for repor t list and select a report to view its alerts, or
click Show All to list all alerts.
NOTE
If the report that you selected does not have any alerts, you do not have to return to the SharePoint library to
locate and select a report that hasalerts. Instead, click Show All to see a list of all your alerts.
A table lists the alert name, report name, your name as the creator of the alert, the number the alert was
sent, the last time the alert definition was modified, and the status of the alert. If the alert cannot be
generated or sent, the status column contains information about the error and helps you troubleshoot
the problem.
To edit an alert definition
Right-click the data alert for which you want to edit the alert definition and click Edit .
The alert definition opens in Data Alert Designer. For more information, see Edit a Data Alert in Alert
Designer and Data Alert Designer.
NOTE
Only the user that created the data alert definition can edit it.
NOTE
If the report has changed and the data feeds generated from the report have changed the alert definition might
no longer be valid. This occurs when a column that the alert references in its rules is deleted from the report,
changes data type, or is included in a different data feed or the report is deleted or moved. You can open an alert
definition that is not valid, but you cannot resave it until it is valid based on the current version of the report data
feed that it is built upon. To learn more about how data feeds are generated from reports, see Generating Data
Feeds from Reports (Report Builder and SSRS).
See Also
Data Alert Manager for Alerting Administrators
Reporting Services Data Alerts
More questions? Try asking the Reporting Services forum
Grant Permissions to Users and Alerting
Administrators
3/5/2021 • 2 minutes to read • Edit Online
APPLIES TO: ✔
️ SQL Server Reporting Services (2016) ❌ Power BI Report Server ✔
️ SharePoint
Before users and alerting administrators can create, edit, delete, and view data alerts they must be granted
SharePoint permissions. There are no special permissions to use with the Reporting Services data alerting
feature, you use the built-in SharePoint permissions.
NOTE
Reporting Services integration with SharePoint is no longer available after SQL Server 2016.
Information workers -Permissions must include the Create Alert and View Items SharePoint permissions. The
built-in SharePoint permission levels named Design, Contribute, Read, and View Only include the Create Alert
and View Items SharePoint permissions. You can also create a custom permission level with the permissions
required to support users that create, edit, run, and view data alerts.
Aler ting administrators -Permissions must include the Manage Alert SharePoint permission. By default only
the Full Control permission level includes this permission for sites created with the Team Site site template. If
you use other site templates, you will see different lists of default SharePoint groups. You can add the Manage
Alert permission to one of the built-in permission levels or create a custom permission level with the permission
required to support alerting administrators that view and delete data alerts.
To learn more about SharePoint permissions, see User permissions and permission levels (SharePoint Server
2010).
Grant permissions
1. Go to the SharePoint site to which you want to grant permissions.
2. On the toolbar, click Site Actions and then click Site Permissions .
If you do not see this option, you do not sufficient permission to grant permissions to others.
3. Click Grant Permissions .
4. In Users/Groups , type the user names, group names, or e-mail addresses you want grant permission to.
5. Select the Add users to a SharePoint group or Grant users permission directly option. Depending
on whether you selected Add users to a SharePoint group or Grant users permissions directly do
one of the following:
If you selected Add users to a SharePoint group , select a permission level in the drop-down
list.
If you selected Grant users permissions directly , select a permission level.
6. Click OK .
See Also
Set Permissions for Report Server Items on a SharePoint Site (Reporting Services in SharePoint Integrated
Mode)
Reporting Services Data Alerts
More questions? Try asking the Reporting Services forum
Extensions for SQL Server Reporting Services
(SSRS)
11/2/2020 • 6 minutes to read • Edit Online
The report server in SQL ServerReporting Services uses extensions to modularize the types of input or output it
accepts for authentication, data processing, report rendering, and report delivery. This makes it easy for existing
Reporting Services installations to utilize new software standards in the industry, such as a new authentication
scheme, or a custom data source type. The report server supports custom authentication extensions, data
processing extensions, report processing extensions, rendering extensions, and delivery extensions, and the
extensions that are available to the users are configurable in the RSReportServer.config configuration file. For
example, you can limit the export formats the report viewer is allowed to use. A report server requires at least
one authentication extension, data processing extension, and rendering extension. Delivery and report
processing extensions are optional, but necessary if you want to support report distribution or custom controls.
This topic describes the extensions that are readily available in Reporting Services.
Security Extensions
Security extensions are used to authenticate and authorize users and groups to a report server. The default
security extension is based on Windows Authentication. You can also create a custom security extension to
replace default security if your deployment model requires a different authentication approach (for example, if
you require forms-based authentication for Internet or extranet deployment). Only one security extension can be
used in a single Reporting Services installation. You can replace the default Windows Authentication security
extension, but you cannot use it alongside a custom security extension.
Rendering Extensions
Rendering extensions transform data and layout information from the Report Processor into a device-specific
format. Reporting Services includes seven rendering extensions: HTML, Excel, CSV, XML, Image, PDF, and
Microsoft Word.
HTML Rendering Extension When you request a report from a report server through a Web browser,
the report server uses the HTML rendering extension to render the report. The HTML rendering extension
generates all HTML using UTF-8 encoding. For more information, see Rendering to HTML (Report Builder
and SSRS) and Browser Support for Reporting Services and Power View.
Excel Rendering Extension The Excel rendering extension renders reports that can be viewed and
modified in Microsoft Excel 97 or later. This rendering extension creates files in Binary Interchange File
Format (BIFF). BIFF is the native file format for Excel data. Reports that are rendered in Microsoft Excel
support all of the features available for any spreadsheet. For more information, see Exporting to
Microsoft Excel (Report Builder and SSRS).
CSV Rendering Extension The Comma-Separated Value (CSV) rendering extension renders reports in
comma-delimited plain text files, without any formatting. Users can then open these files with a
spreadsheet application, such as Microsoft Excel, or any other program that reads text files. For more
information, see Exporting to a CSV File (Report Builder and SSRS).
XML Rendering Extension The XML rendering extension renders reports in XML files. These XML files
can then be stored or read by other programs. You can also use an XSLT transformation to turn the report
into another XML schema for use by another application. The XML generated by the XML rendering
extension is UTF-8 encoded. For more information, see Exporting to XML (Report Builder and SSRS).
Image Rendering Extension The Image rendering extension renders reports to bitmaps or metafiles.
The extension can render reports in the following formats: BMP, EMF, GIF, JPEG, PNG, TIFF, and WMF. By
default, the image is rendered in TIFF format, which can be displayed with the default image viewer of
your operating system (for example, Windows Picture and Fax Viewer). You can send the image to a
printer from the viewer. Using the Image rendering extension to render reports ensures that the report
looks the same on every client. (When a user views a report in HTML, the appearance of that report can
vary depending on the version of the user's browser, the user's browser settings, and the fonts that are
available.) The Image rendering extension renders the report on the server, so all users see the same
image. Because the report is rendered on the server, all fonts that are used in the report must be installed
on the server. For more information, see Exporting to an Image File (Report Builder and SSRS).
PDF Rendering Extension The PDF rendering extension renders reports in PDF files that can be opened
and viewed with Adobe Acrobat 6.0 or later. For more information, see Exporting to a PDF File (Report
Builder and SSRS).
Word Rendering Extension The Microsoft Word rendering extension renders a report as a Word
document that is compatible with Microsoft Office Word 2000 or later. For more information, see
Exporting to Microsoft Word (Report Builder and SSRS).
Delivery Extensions
The background processing application uses delivery extensions to deliver reports to various locations.
Reporting Services includes an e-mail delivery extension and a file share delivery extension. The e-mail delivery
extension sends an e-mail message through Simple Mail Transport Protocol (SMTP) that includes either the
report itself or a URL link to the report. Short notices without the URL link or report can also be sent to pagers,
phones, or other devices. The file share delivery extension saves reports to a shared folder on your network. You
can specify a location, rendering format, and file name, and overwrite options for the file you create. You can use
file share delivery for archiving rendered reports and as part of a strategy for working with very large reports.
Delivery extensions work in conjunction with subscriptions. When a user creates a subscription, the user
chooses one of the available delivery extensions to determine how the report is delivered.
Customize Rendering Extension Parameters in
RSReportServer.Config
11/2/2020 • 5 minutes to read • Edit Online
You can specify rendering extension parameters in the RSReportServer configuration file to override default
report rendering behavior for reports that run on a Reporting Services report server. You can modify rendering
extension parameters to achieve the following objectives:
Change how the rendering extension name appears in the Export list of the report toolbar (for example,
to change "Web archive" to "MHTML"), or localize the name to a different language.
Create multiple instances of the same rendering extension to support different report presentation
options (for example, a portrait and landscape mode version of the Image rendering extension).
Change the default rendering extension parameters to use different values (for example, the Image
rendering extension uses TIFF as the default output format; you can modify the extension parameters to
use EMF instead).
Changing the rendering extension parameters only affects rendering operations on the report server. You
cannot override rendering extension settings in report preview in Report Designer.
Specifying rendering extension parameters in the configuration files affects rendering extensions globally. The
settings in the configuration files are used in place of default values whenever a particular rendering extension
is used. If you want to set rendering extension parameters for a specific report or render operation, you must
specify device information programmatically using the Render method or by specifying device information
settings on a report URL. For more information about specifying device information settings for a render
operation, and to view the complete list of device information settings, see Passing Device Information Settings
to Rendering Extensions.
<Extension Name="XML"
Type="Microsoft.ReportingServices.Rendering.DataRenderer.XmlDataReport,Microsoft.ReportingServices.DataRende
ring">
<OverrideNames>
<Name Language="en-US">My Custom Display Name for XML Rendering</Name>
</OverrideNames>
</Extension>
<Render>
<Extension Name="IMAGE (EMF)"
Type="Microsoft.ReportingServices.Rendering.ImageRenderer.ImageRenderer,Microsoft.ReportingServices.ImageRen
dering">
<OverrideNames>
<Name Language="en-US">Image (EMF)</Name>
</OverrideNames>
<Configuration>
<DeviceInfo>
<ColorDepth>32</ColorDepth>
<DpiX>300</DpiX>
<DpiY>300</DpiY>
<OutputFormat>EMF</OutputFormat>
</DeviceInfo>
</Configuration>
</Extension>
</Render>
<Render>
<Extension Name="IMAGE (EMF Landscape)"
Type="Microsoft.ReportingServices.Rendering.ImageRenderer.ImageRenderer,Microsoft.ReportingServices.ImageRen
dering">
<OverrideNames>
<Name Language="en-US">EMF in Landscape Mode</Name>
</OverrideNames>
<Configuration>
<DeviceInfo>
<OutputFormat>EMF</OutputFormat>
<PageHeight>8.5in</PageHeight>
<PageWidth>11in</PageWidth>
</DeviceInfo>
</Configuration>
</Extension>
<Extension Name="IMAGE (EMF Portrait)"
Type="Microsoft.ReportingServices.Rendering.ImageRenderer.ImageRenderer,Microsoft.ReportingServices.ImageRen
dering">
<OverrideNames>
<Name Language="en-US">EMF in Portait Mode</Name>
</OverrideNames>
<Configuration>
<DeviceInfo>
<OutputFormat>EMF</OutputFormat>
<PageHeight>11in</PageHeight>
<PageWidth>8.5in</PageWidth>
</DeviceInfo>
</Configuration>
</Extension>
</Render>
See Also
RsReportServer.config Configuration File
RSReportDesigner Configuration File
CSV Device Information Settings
Excel Device Information Settings
HTML Device Information Settings
Image Device Information Settings
MHTML Device Information Settings
PDF Device Information Settings
XML Device Information Settings
URL Access (SSRS)
11/2/2020 • 4 minutes to read • Edit Online
URL access of the report server in SQL Server Reporting Services (SSRS) enables you to send commands to a
report server through a URL request. For example, you can customize the rendering of a report on a native
mode report server or in a SharePoint library. You may have viewed the report using a specific set of report
parameter values, or you may have been viewing a particular page of interest in the report. You can encapsulate
this information in the URL using predefined URL access parameters. You can further customize how the report
server processes the report by embedding parameters for rendering formats or for the look and feel of the
report viewer. You can then paste this URL directly into an email or Web page to let others to access your report
in the same manner in the browser.
Other actions you can perform through URL access are:
Send commands to the HTML viewer, such as adjusting its look and feel
List the children of a catalog folder
Retrieve the XML definition of a catalog item
Render a specific report history snapshot
Manage report sessions
For the complete list of commands and settings available through URL access, see URL Access Parameter
Reference.
rswebserviceurl
?
reportpath
[&prefix:param=value]...n]
Syntax Description
rswebserviceurl
The Web service URL of the report server. For native mode, it is the Web service URL of the report server
instance configured in Reporting Services Configuration Manager (see Configure Report Server URLs (Report
Server Configuration Manager)). For example:
https://myrshost/reportserver
https://machine.adventure-works.com/reportserver_MYNAMEDINSTANCE
For SharePoint integrated mode, it is the URL of the Reporting Services proxy at a SharePoint site integrated
with Reporting Services. For example:
https://myspsite/subsite/_vti_bin/reportserver
TIP
It is important the URL include the _vti_bin proxy syntax to route the request through SharePoint and the Reporting
Services HTTP proxy. The proxy adds some context to the HTTP request, context that is required to ensure proper
execution of the report for SharePoint mode report servers.
pathinfo
The relative path name of the item in the native mode report server database, or the fully qualified URL of the
item in a SharePoint catalog.
The path of the catalog item. For native mode, it is the relative path of the item in the report server database,
beginning with a slash (/ ). For example:
/AdventureWorks 2008R2/Employee_Sales_Summary_2008R2
For SharePoint integrated mode, it is the fully qualified URL of the item in the SharePoint library, including the
item extension. For example:
https://myspsite/subsite/AdventureWorks 2008R2/Employee_Sales_Summary_2008R2.rdl
&
Used to separate name and value pairs of URL access parameters.
prefix
Optional. A prefix for the URL access parameter (for example, rs: or rc: ) that accesses a specific process
running within the report server.
NOTE
If a prefix for a URL access parameter is not included, the parameter is processed by the report server as a report
parameter. Report parameters do not use a parameter prefix and are case-sensitive.
param
The parameter name.
value
URL text corresponding to the value of the parameter being used.
Note: For a list of the available URL access parameters, see URL Access Parameter Reference. For examples
passing report parameters on the URL, see Pass a Report Parameter Within a URL.
Related Tasks
TA SK DESC RIP T IO N S L IN K S
Access report server items, such as reports, shared data Access Report Server Items Using URL Access
sources, and resources.
Set the locale of the report parameters in the URL access Set the Language for Report Parameters in a URL
string, which defines the locale-specific interpretations of
dates, currencies, and so on.
Send rendering extension specific settings that customize Specify Device Information Settings in a URL
how the report is rendered.
Export a report directly to a file format without viewing it in Export a Report Using URL Access
the browser.
Open a report and navigate directly to the location of a Search a Report Using URL Access
string.
Render a specific report history snapshot. Render a Report History Snapshot Using URL Access
See Also
Pass a Report Parameter Within a URL
URL Access Parameter Reference
Integrating Reporting Services Using URL Access
Finding, Viewing, and Managing Reports (Report Builder and SSRS )
Access Report Server Items Using URL Access
3/5/2021 • 2 minutes to read • Edit Online
This topic describes how to access catalog items of different types in a report server database or in a SharePoint
site using rs:Command=Value. It is not necessary to actually add this parameter string. If you omit it, the report
server evaluates the item type and selects the appropriate parameter value automatically. However, using the
rs:Command=Value string in the URL improves the performance of the report server.
Note the _vti_bin proxy syntax in the examples below. For more information about using the proxy syntax, see
URL Access Parameter Reference.
NOTE
Reporting Services integration with SharePoint is no longer available after SQL Server 2016.
Access a Report
To view a report in the browser, use the rs:Command=Render parameter. For example:
Native https://myrshost/reportserver?/Sales/YearlySalesByCategory&rs:Command=Render
SharePoint
https://myspsite/subsite/_vti_bin/reportserver?
https://myspsite/subsite/Sales/YearlySalesByCategory&rs:Command=Render
TIP
It is important the URL include the _vti_bin proxy syntax to route the request through SharePoint and the Reporting
Services HTTP proxy. The proxy adds some context to the HTTP request, context that is required to ensure proper
execution of the report for SharePoint mode report servers.
Access a Resource
To access a resource, use the rs:Command=GetResourceContents parameter.If the resource is compatible with
the browser, such as an image, it is opened in the browser. Otherwise, you are prompted to open or save the file
or resource to disk.
Native https://myrshost/reportserver?/Sales/StorePicture&rs:Command=GetResourceContents
SharePoint
https://myspsite/subsite/_vti_bin/reportserver?
https://myspsite/subsite/Sales/StorePicture.jpg&rs:Command=GetResourceContents
SharePoint
https://myspsite/subsite/_vti_bin/reportserver?
https://myspsite/subsite/Sales/AdventureWorks2012&rs:Command=GetDataSourceContents
<DataSourceDefinition>
<Extension>SQL</Extension>
<ConnectString>Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial
Catalog=AdventureWorks2012;Data Source=MYSERVER1;</ConnectString>
<CredentialRetrieval>Integrated</CredentialRetrieval>
<WindowsCredentials>False</WindowsCredentials>
<ImpersonateUser>False</ImpersonateUser>
<Prompt />
<Enabled>True</Enabled>
</DataSourceDefinition>
The connection string is returned based on the SecureConnectionLevel setting of the report server. For more
information about the SecureConnectionLevel setting, see Using Secure Web Service Methods.
SharePoint
https://myspsite/subsite/_vti_bin/reportserver?https://myspsite/subsite/Sales&rs:Command=GetChildren
The user interface you see is similar to the directory browsing mode used by Microsoft Internet Information
Server (IIS). The version number, including the build number, of the report server is also displayed below the
folder listing.
See Also
URL Access (SSRS)
URL Access Parameter Reference
Pass a Report Parameter Within a URL
11/2/2020 • 2 minutes to read • Edit Online
You can pass report parameters to a report by including them in a report URL. These URL parameters are not
prefixed because they are passed directly to the report processing engine.
NOTE
Reporting Services integration with SharePoint is no longer available after SQL Server 2016.
IMPORTANT
It is important the URL include the _vti_bin proxy syntax to route the request through SharePoint and the Reporting
Services HTTP proxy. The proxy adds some context to the HTTP request, context that is required to ensure proper
execution of the report for SharePoint mode report servers.
If you don't include the proxy syntax, then you need to prefix the parameter with rp:.
All query parameters can have corresponding report parameters. You pass a query parameter to a report by
passing the corresponding report parameter. For more information, see Build a Query in the Relational Query
Designer (Report Builder and SSRS).
IMPORTANT
Report parameters are case-sensitive.
NOTE
Report parameters are case-sensitive and utilize the following special characters:
Any space characters in the URL string are replaced with the characters "%20," according to URL encoding standards.
A space character in the parameter portion of the URL is replaced with a plus character (+).
A semicolon in any portion of the string is replaced with the characters "%3A."
Browsers should automatically perform the proper URL encoding. You do not have to encode any of the characters
manually.
parameter=value
For example, to specify two parameters, "ReportMonth" and "ReportYear", defined in a report, use the following
URL for a native mode report server:
https://myrshost/ReportServer?/AdventureWorks
2008R2/Employee_Sales_Summary_2008R2&ReportMonth=3&ReportYear=2008
For example, to specify the same two parameters defined in a report, use the following URL for a SharePoint
integrated mode report server. Note the /_vti_bin :
https://myspsite/subsite/_vti_bin/reportserver?https://myspsite/subsite/AdventureWorks
2008R2/Employee_Sales_Summary_2008R2.rdl&ReportMonth=3&ReportYear=2008
parameter
:isnull=true
For example,
SalesOrderNumber:isnull=true
To pass a Boolean value, use 0 for false and 1 for true. To pass a Float value, include the decimal separator of
the server locale
NOTE
If your report contains a report parameter that has a default value and the value of the Prompt property is false (that is,
the Prompt User property is not selected in Report Manager), then you cannot pass a value for that report parameter
within a URL. This provides administrators an option for preventing end users from adding or modifying the values of
certain report parameters.
Additional Examples
The following URL example includes spaces and multiple parameters
Folder name of "SQL Server User Education Team" includes spaces and therefore the "+" replaces each
space.
Report name of "team project report" includes spaces and therefore the "+" replaces each space.
Passes two parameters of "teamgrouping2" with a value of "xgroup" and "teamgrouping1" with a value
of "ygroup".
https://myserver/Reportserver?/SQL+Server+User+Education+Team/_ContentTeams/folder123/team+project+report&te
amgrouping2=xgroup&teamgrouping1=ygroup
The following URL example includes a multi-value parameter "OrderID. The format for a Multi-Value parameter
is to repeat the parameter name for each value.
https://myserver/Reportserver?/SQL+Server+User+Education+Team/_ContentTeams/folder123/team+project+report&te
amgrouping2=xgroup&teamgrouping1=ygroup&OrderID=747&OrderID=787&OrderID=12
The following URL example passes a single parameter of SellStartDate with a value of "7/1/2005", for a native
mode report server.
https://myserver/ReportServer/Pages/ReportViewer.aspx?
%2fProduct_and_Sales_Report_AdventureWorks&SellStartDate=7/1/2005
See Also
URL Access (SSRS)
URL Access Parameter Reference
URL access parameter reference
11/2/2020 • 10 minutes to read • Edit Online
You can use the following parameters as part of a URL to configure the look and feel of your SQL Server 2016
Reporting Services or later (SSRS) reports. The most common parameters are listed in this section. Parameters
are case-insensitive and begin with the parameter prefix rs: if directed to the report server and rc: if directed to
an HTML Viewer. You can also specify parameters that are specific to devices or rendering extensions. For more
information about device-specific parameters, see Specify device information settings in a URL.
IMPORTANT
For a SharePoint mode report server it's important that the URL includes the _vti_bin proxy syntax to route the
request through SharePoint and the Reporting Services HTTP proxy. The proxy adds context to the HTTP request that's
required to ensure proper execution of the report for SharePoint mode report servers. For examples, see Access report
server items using URL access.
Reporting Services integration with SharePoint is no longer available after SQL Server 2016.
IMPORTANT
rc:Toolbar=false doesn't work for URL access strings that use an IP address, instead of a domain name, to target a
report hosted on a SharePoint site.
Parameters : Shows or hides the parameters area of the toolbar. If you set this parameter to true , the
parameters area of the toolbar is displayed. If you set this parameter to false , the parameters area isn't
displayed and can't be displayed by the user. If you set this parameter to a value of Collapsed , the
parameters area won't be displayed but can be toggled by the user. The default value of this parameter is
true .
For example, in native mode:
https://myrshost/reportserver?/Sales&rc:Parameters=Collapsed
https://myspsite/subsite/_vti_bin/reportserver?https://myspsite/subsite/Sales&rc:Parameters=Collapsed
Zoom : Sets the report zoom value as an integer percentage or a string constant. Standard string values
include Page Width and Whole Page . This parameter is ignored by versions of Internet Explorer earlier
than Internet Explorer 5.0 and all non-Microsoft browsers. The default value of this parameter is 100 .
For example, in native mode:
https://myrshost/reportserver?/Sales&rc:Zoom=Page Width
https://myspsite/subsite/_vti_bin/reportserver?https://myspsite/subsite/Sales&rc:Zoom=Page Width
Section : Sets which page in the report to display. Any value that's greater than the number of pages in
the report displays the last page. Any value that's less than 0 displays page 1 of the report. The default
value of this parameter is 1 .
For an example in native mode, to display page 2 of the report:
https://myrshost/reportserver?/Sales&rc:Section=2
https://myspsite/subsite/_vti_bin/reportserver?https://myspsite/subsite/Sales&rc:Section=2
FindString : Searches a report for a specific set of text and highlights the text.
IMPORTANT
rc:FindString doesn't work unless you include rc:Toolbar=false to the URL access string.
https://myrshost/reportserver?/Sales&rc:Toolbar=false&rc:FindString=Mountain-400
https://myspsite/subsite/_vti_bin/reportserver?
https://myspsite/subsite/Sales&rc:Toolbar=false&rc:FindString=Mountain-400
Star tFind : Specifies the last section to search. The default value of this parameter is the last page of the
report.
For an example in native mode that searches for the first occurrence of the text "Mountain-400" in the
Product Catalog sample report starting with page 1 and ending with page 5:
https://server/Reportserver?/SampleReports/Product
Catalog&rs:Command=Render&rc:StartFind=1&rc:EndFind=5&rc:FindString=Mountain-400
EndFind : Sets the number of the last page to use in the search. For example, a value of 5 indicates that
the last page to be searched is page 5 of the report. The default value is the number of the current page.
Use this parameter in conjunction with the StartFind parameter. See the previous example.
FallbackPage : Sets the number of the page to display if a search or a document map selection fails. The
default value is the number of the current page.
GetImage : Gets a particular icon for the HTML Viewer user interface.
Icon : Gets the icon of a particular rendering extension.
Stylesheet : Specifies a style sheet to be applied to the HTML Viewer.
Device Information Setting : Specifies a device information setting in the form of rc:tag=value , where
tag is the name of a device information setting specific to the rendering extension that's currently used.
(See the description for the Format parameter.) For example, you can use the OutputFormat device
information setting for the IMAGE rendering extension to render the report to a JPEG image by using the
following parameters in the URL access string: ...&rs:Format=IMAGE&rc:OutputFormat=JPEG . For more
information on all extension-specific device information settings, see Device information settings for
rendering extensions (Reporting Services).
https://myrshost/reportserver?/Sales&rs:Command=GetChildren
https://myssrshost/Reportserver_THESQLINSTANCE?/reportfolder&rs:Command=listChildren
https://myspsite/subsite/_vti_bin/reportserver?
https://myspsite/subsite/Sales&rs:Command=GetChildren
Render : The report is rendered in the browser so that you can view it.
For example, in native mode:
https://myrshost/reportserver?/Sales/YearlySalesByCategory&rs:Command=Render
https://myspsite/subsite/_vti_bin/reportserver?
https://myspsite/subsite/Sales/YearlySalesByCategory&rs:Command=Render
GetDataSourceContents : Displays the properties of a given shared data source as XML. If your
browser supports XML and if you're an authenticated user with Read Contents permission on the
data source, the data source definition is displayed.
For example, in native mode:
https://myrshost/reportserver?/Sales/AdventureWorks2012&rs:Command=GetDataSourceContents
https://myspsite/subsite/_vti_bin/reportserver?
https://myspsite/subsite/Sales/AdventureWorks2012&rs:Command=GetDataSourceContents
https://myrshost/reportserver?/Sales/StorePicture&rs:Command=GetResourceContents
https://myspsite/subsite/_vti_bin/reportserver?
https://myspsite/subsite/Sales/StorePicture.jpg&rs:Command=GetResourceContents
GetComponentDefinition : Displays the XML definition associated with a published report item.
You must have Read Contents permission on a published report item to use this value.
Format : Specifies the format in which to render and view a report. Common values include:
HTML5
PPTX
ATOM
HTML4.0
MHTML
IMAGE
EXCEL (for .xls)
EXCELOPENXML (for .xlsx)
WORD (for .doc)
WORDOPENXML (for .docx)
CSV
PDF
XML
The default value is HTML5 . For more information, see Export a report using URL access.
For a complete list, see the <Render> extension section of the report server rsreportserver.config file.
For information on where to find the file, see RsReportServer.config configuration file.
For example, to get a PDF copy of a report directly from a native mode report server:
https://myrshost/ReportServer?/myreport&rs:Format=PDF
For example, to get a PDF copy of a report directly from a SharePoint mode report server:
https://myspsite/subsite/_vti_bin/reportserver?https://myspsite/subsite/myrereport.rdl&rs:Format=PDF
ParameterLanguage : Provides a language for parameters passed in a URL that's independent of the
browser language. The default value is the browser language. The value can be a culture value, such as
en-us or de-de.
For example, in native mode, to override the browser language and specify a culture value of de-DE:
https://myrshost/Reportserver?/SampleReports/Product+Line+Sales&rs:Command=Render&StartDate=4/10/2008
&EndDate=11/10/2008&rs:ParameterLanguage=de-DE
Snapshot : Renders a report based on a report history snapshot. For more information, see Render a
report history snapshot using URL access.
For example, in native mode, retrieve a report history snapshot dated 2003-04-07 with a time stamp of
13:40:02:
https://myrshost/reportserver?/SampleReports/Company Sales&rs:Snapshot=2003-04-07T13:40:02
PersistStreams : Renders a report in a single persisted stream. This parameter is used by the Image
renderer to transmit the rendered report one chunk at a time. After using this parameter in a URL access
string, use the same URL access string with the GetNextStream parameter instead of the PersistStreams
parameter to get the next chunk in the persisted stream. This URL command eventually returns a 0-byte
stream to indicate the end of the persisted stream. The default value is false .
GetNextStream : Gets the next data chunk in a persisted stream that's accessed by using the
PersistStreams parameter. For more information, see the description for PersistStreams. The default value
is false .
SessionID : Specifies an established active report session between the client application and the report
server. The value of this parameter is set to the session identifier.
You can specify the session ID as a cookie or as part of the URL. When the report server has been
configured not to use session cookies, the first request without a specified session ID results in a
redirection with a session ID. For more information about report server sessions, see Identifying
execution state.
ClearSession : A value of true directs the report server to remove a report from the report session. All
report instances associated with an authenticated user are removed from the report session. (A report
instance is defined as the same report run multiple times with different report parameter values.) The
default value is false .
ResetSession : A value of true directs the report server to reset the report session by removing the
report session's association with all report snapshots. The default value is false .
ShowHideToggle : Toggles the show and hide state of a section of the report. Specify a positive integer
to represent the section to toggle.
https://myspsite/_vti_bin/reportserver?
https://myspsite002%fShared+Documents%2fmyreport.rdl&rv:DocMapMode=Displayed&rv:Toolbar=Navigation
HeaderArea : Controls the header display for the Report Viewer web part. The default value is Full .
Values can be:
Full : Displays the complete header.
BreadCrumbsOnly : Displays only the breadcrumb navigation in the header to inform the user
where they are in the application.
None : Doesn't display the header.
For example, in SharePoint mode, to display only the breadcrumb navigation in the header:
https://myspsite/_vti_bin/reportserver?
https://myspsite002%fShared+Documents%2fmyreport.rdl&rv:DocMapMode=Displayed&rv:HeaderArea=BreadCrumb
sOnly
DocMapAreaWidth : Controls the display width, in pixels, of the parameter area in the Report Viewer
web part. The default value is the same as the Report Viewer web part default. The value must be a non-
negative integer.
AsyncRender : Controls whether a report is rendered asynchronously. The default value is true , which
specifies that a report be rendered asynchronously. The value must be a Boolean value of true or false .
ParamMode : Controls how the Report Viewer web part's parameter prompt area is displayed in full-
page view. The default value is Full . Valid values are:
Full : Displays the parameter prompt area.
Collapsed : Collapses the parameter prompt area.
Hidden : Hides the parameter prompt area.
For example, in SharePoint mode, to collapse the parameter prompt area:
https://myspsite/_vti_bin/reportserver?
https://myspsite002%fShared+Documents%2fmyreport.rdl&rv:DocMapMode=Displayed&rv:ParamMode=Collapsed
DocMapMode : Controls how the Report Viewer web part's document map area is displayed in full-page
view. The default value is Full . Valid values are:
Full : Displays the document map area.
Collapsed : Collapses the document map area.
Hidden : Hides the document map area.
DockToolBar : Controls whether the Report Viewer web part's toolbar is docked to the top or bottom.
Valid values are Top and Bottom . The default value is Top .
For example, in SharePoint mode, to dock the toolbar to the bottom:
https://myspsite/_vti_bin/reportserver?
https://myspsite002%fShared+Documents%2fmyreport.rdl&rv:DocMapMode=Displayed&rv:DockToolBar=Bottom
ToolBarItemsDisplayMode : Controls which toolbar items are displayed. This is a bitwise enumeration
value. To include a toolbar item, add the item's value to the total value. For example, for no Actions
menu, use rv:ToolBarItemsDisplayMode=63 (or 0x3F), which is 1+2+4+8+16+32. For Actions menu
items only, use rv:ToolBarItemsDisplayMode=960 (or 0x3C0). The default value is -1 , which includes all
toolbar items. Valid values are:
1 (0x1) : The Back button
2 (0x2) : The text search controls
4 (0x4) : The page navigation controls
8 (0x8) : The Refresh button
16 (0x10) : The Zoom list box
32 (0x20) : The Atom Feed button
64 (0x40) : The Print menu option in Actions
128 (0x80) : The Expor t submenu in Actions
256 (0x100) : The Open with Repor t Builder menu option in Actions
512 (0x200) : The Subscribe menu option in Actions
1024 (0x400) : The New Data Aler t menu option in Actions
For example, in SharePoint mode to display only the Back button, text search controls, page navigation
controls, and the Refresh button:
https://myspsite/_vti_bin/reportserver?
https://myspsite002%fShared+Documents%2fmyreport.rdl&rv:DocMapMode=Displayed&rv:ToolBarItemsDisplayMo
de=15
See also
URL access (SSRS)
Export a report using URL access
Set the Language for Report Parameters in a URL
11/2/2020 • 2 minutes to read • Edit Online
The rs:ParameterLanguage URL access parameter alleviates a problem in which culture-sensitive report
parameters, such as dates, times, currency, and numbers, are interpreted using the browser language. With
rs:ParameterLanguage, the URL is now interpreted independently of the browser. For example, if the report
server is set to a regional setting of German, but a user is accessing a report via a URL using a browser that is
set to English-United States, parameter values that are passed to a report server will be misinterpreted.
Consider the following URL to a report:
https://myrshost/Reportserver?/SampleReports/Product+Line+Sales&rs:Command=Render&StartDate=4/10/2008&EndDat
e=11/10/2008
In the above case, the server, running under a culture of "de-de", generates a URL either through an e-mail
subscription or a hyperlink. The hyperlink indicates that the report should be parameterized by a start date of
October 4, 2008 and an end date of October 11, 2008 according to German date/time standards. However, a
user that is accessing the URL through a browser set to "en-us" forces the server to interpret the values as April
10, 2008 and November 10, 2008 under United States English date/time standards. To fix the problem,
rs:ParameterLanguage can be used to override the browser language for parameter interpretation:
https://myrshost/Reportserver?/SampleReports/Product+Line+Sales&rs:Command=Render&StartDate=4/10/2008&EndDat
e=11/10/2008&rs:ParameterLanguage=de-DE
In addition to a value of true and false for the URL access parameter rc:Parameters, you can now pass a value
of Collapsed . When using rc:Parameters=Collapsed on a URL, the parameter prompt area of the HTML viewer
is collapsed out of sight, but can still be toggled by the user. A value of false removes the parameter prompt
area from the HTML viewer toolbar and makes it unavailable to the end-user.
See Also
URL Access (SSRS)
URL Access Parameter Reference
Specify Device Information Settings in a URL
11/2/2020 • 2 minutes to read • Edit Online
Device information settings are parameters that are passed to a rendering extension. If you use the methods of
the SQL Server Report Server Web service to render a report, a DeviceInfo XML element is passed as an input
parameter. Child elements of the DeviceInfo element are specific to the device information settings of different
rendering extensions. You can include device information settings in a URL by using the rc:tag=value parameter
string, where tag is the name of the device information settings element being accessed. For more information
about device information settings in SQL Server Reporting Services, see Passing Device Information Settings to
Rendering Extensions.
Example
The following example sets the format of the specified report to JPEG by using the OutputFormat device
information setting of the image rendering extension (the line breaks have been added for legibility):
https://servername/reportserver?/SampleReports
/Employee Sales Summary&EmployeeID=38&rs:
Command=Render&rs:Format=IMAGE&rc:OutputFormat=JPEG
See Also
URL Access (SSRS)
URL Access Parameter Reference
Export a Report Using URL Access
3/5/2021 • 2 minutes to read • Edit Online
You can optionally specify the format in which to render a report by using the rs:Format URL parameter. The
HTML4.0 and HTM5 formats (rendering extension) will render in the browser and for other formats, the browser
will prompt to save the report output to a local file.
For example, to get a PDF copy of a report directly from a native mode report server:
https://myrshost/ReportServer?/myreport&rs:Format=PDF
https://myspsite/subsite/_vti_bin/reportserver?https://myspsite/subsite/myrereport.rdl&rs:Format=PDF
For example the following URL command in your browser exports a PPTX report from a named instance of the
report server:
https://servername/ReportServer_THESQLINSTANCE/Pages/ReportViewer.aspx?
%2freportfolder%2freport+name+with+spaces&rs:Format=pptx
Valid values for this parameter are based on the report rendering extensions that are installed on the report
server being accessed. Common extensions are HTML4.0, MHTML, IMAGE, EXCELOPENXML (xlsx) ,
WORDOPENXML (docx), CSV, PDF, XML, and NULL. If a specified rendering extension is not installed on the
report server, the report is not rendered and an error is generated and displayed in the browser.
If you do not include the Format parameter as part of the URL, the report server detects the browser and
renders the report in the appropriate HTML format.
See Also
URL Access (SSRS)
URL Access Parameter Reference
Search a Report Using URL Access
11/2/2020 • 2 minutes to read • Edit Online
You can search a report for a specific set of text using URL access. To search a report, set the value of the
rc:FindString parameter on the URL equal to the text for which you want to search. Additionally, use the
rc:StartFind and rc:EndFind parameters to narrow your search to specific pages within the report.
Example
The following URL access example searches for the first occurrence of the text "Mountain-400" in the Product
Catalog sample report starting with page one and ending with page five:
https://server/Reportserver?/SampleReports/Product
Catalog&rs:Command=Render&rc:StartFind=1&rc:EndFind=5&rc:FindString=Mountain-400
See Also
URL Access (SSRS)
URL Access Parameter Reference
Render a Report History Snapshot Using URL
Access
11/2/2020 • 2 minutes to read • Edit Online
You can render a report based on a report history snapshot by supplying the rs:Snapshot parameter and setting
its value to a valid snapshot ID. The parameter value is in the format YYYY-MM-DDTHH:MM:SS, based on the
International Organization for Standardization (ISO) 8601 standard.
If you omit this parameter, the report is rendered according to the report execution and cache management
option settings of the report server. For more information about report execution, see Set Report Processing
Properties.
Example
The following example shows a URL that retrieves a report history snapshot:
https://myrshost/reportserver?/SampleReports/Company Sales&rs:Snapshot=2003-04-07T13:40:02
See Also
URL Access (SSRS)
URL Access Parameter Reference
Create a Login
3/20/2021 • 10 minutes to read • Edit Online
Applies to: SQL Server (all supported versions) Azure SQL Database Azure SQL Managed Instance
Azure Synapse Analytics Analytics Platform System (PDW)
This topic describes how to create a login in SQL Server or SQL Database by using SQL Server Management
Studio or Transact-SQL. A login is the identity of the person or process that is connecting to an instance of SQL
Server.
Background
A login is a security principal, or an entity that can be authenticated by a secure system. Users need a login to
connect to SQL Server. You can create a login based on a Windows principal (such as a domain user or a
Windows domain group) or you can create a login that is not based on a Windows principal (such as an SQL
Server login).
NOTE: To use SQL Server Authentication, the Database Engine must use mixed mode authentication. For
more information, see Choose an Authentication Mode.
As a security principal, permissions can be granted to logins. The scope of a login is the whole Database Engine.
To connect to a specific database on the instance of SQL Server, a login must be mapped to a database user.
Permissions inside the database are granted and denied to the database user, not the login. Permissions that
have the scope of the whole instance of SQL Server (for example, the CREATE ENDPOINT permission) can be
granted to a login.
NOTE: When a login connects to SQL Server the identity is validated at the master database. Use contained
database users to authenticate SQL Server and SQL Database connections at the database level. When using
contained database users a login is not necessary. A contained database is a database that is isolated from
other databases and from the instance of SQL Server/ SQL Database (and the master database) that hosts
the database. SQL Server supports contained database users for both Windows and SQL Server
authentication. When using SQL Database, combine contained database users with database level firewall
rules. For more information, see Contained Database Users - Making Your Database Portable.
Security
SQL Server requires ALTER ANY LOGIN or ALTER LOGIN permission on the server.
SQL Database requires membership in the loginmanager role.
NOTE: Selecting The ser ver server_name automatically fills the upper grid with all of that servers'
securable objects.
-- Create a login for SQL Server by specifying a server name and a Windows domain account name.
See Also
Security Center for SQL Server Database Engine and Azure SQL Database
Dynamic Data Masking
4/27/2021 • 9 minutes to read • Edit Online
Applies to: SQL Server 2016 (13.x) and later Azure SQL Database Azure SQL Managed Instance
Azure Synapse Analytics
Dynamic data masking (DDM) limits sensitive data exposure by masking it to non-privileged users. It can be
used to greatly simplify the design and coding of security in your application.
Dynamic data masking helps prevent unauthorized access to sensitive data by enabling customers to specify
how much sensitive data to reveal with minimal impact on the application layer. DDM can be configured on
designated database fields to hide sensitive data in the result sets of queries. With DDM the data in the database
is not changed. DDM is easy to use with existing applications, since masking rules are applied in the query
results. Many applications can mask sensitive data without modifying existing queries.
A central data masking policy acts directly on sensitive fields in the database.
Designate privileged users or roles that do have access to the sensitive data.
DDM features full masking and partial masking functions, and a random mask for numeric data.
Simple Transact-SQL commands define and manage masks.
The purpose of dynamic data masking is to limit exposure of sensitive data, preventing users who should not
have access to the data from viewing it. Dynamic data masking does not aim to prevent database users from
connecting directly to the database and running exhaustive queries that expose pieces of the sensitive data.
Dynamic data masking is complementary to other SQL Server security features (auditing, encryption, row level
security...) and it is highly recommended to use it in conjunction with them in order to better protect the
sensitive data in the database.
Dynamic data masking is available in SQL Server 2016 (13.x) and Azure SQL Database, and is configured by
using Transact-SQL commands. For more information about configuring dynamic data masking by using the
Azure portal, see Get started with SQL Database Dynamic Data Masking (Azure portal).
Default Full masking according to the data Example column definition syntax:
types of the designated fields. Phone# varchar(12) MASKED WITH
(FUNCTION = 'default()') NULL
For string data types, use XXXX or
fewer Xs if the size of the field is less Example of alter syntax:
than 4 characters (char , nchar , ALTER COLUMN Gender ADD MASKED
WITH (FUNCTION = 'default()')
varchar , nvarchar , text , ntext ).
Email Masking method that exposes the first Example definition syntax:
letter of an email address and the Email varchar(100) MASKED WITH
constant suffix ".com", in the form of (FUNCTION = 'email()') NULL
an email address. aXXX@XXXX.com .
Example of alter syntax:
ALTER COLUMN Email ADD MASKED
WITH (FUNCTION = 'email()')
Custom String Masking method that exposes the first Example definition syntax:
and last letters and adds a custom FirstName varchar(100) MASKED
padding string in the middle. WITH (FUNCTION =
'partial(prefix,
prefix,[padding],suffix [padding],suffix)') NULL
Additional example:
Permissions
You do not need any special permission to create a table with a dynamic data mask, only the standard CREATE
TABLE and ALTER on schema permissions.
Adding, replacing, or removing the mask of a column, requires the ALTER ANY MASK permission and ALTER
permission on the table. It is appropriate to grant ALTER ANY MASK to a security officer.
Users with SELECT permission on a table can view the table data. Columns that are defined as masked, will
display the masked data. Grant the UNMASK permission to a user to enable them to retrieve unmasked data
from the columns for which masking is defined.
The CONTROL permission on the database includes both the ALTER ANY MASK and UNMASK permission.
NOTE
The UNMASK permission does not influence metadata visibility: granting UNMASK alone will not disclose any Metadata.
UNMASK will always need to be accompanied by a SELECT permission to have any effect. Example: granting UNMASK on
database scope and granting SELECT on an individual Table will have the result that the user can only see the metadata of
the individual table from which he can select, not any others. Also see Metadata Visibility Configuration.
ID NAME SA L A RY
This demonstrates that Dynamic Data Masking should not be used as an isolated measure to fully secure
sensitive data from users running ad-hoc queries on the database. It is appropriate for preventing accidental
sensitive data exposure, but will not protect against malicious intent to infer the underlying data.
It is important to properly manage the permissions on the database, and to always follow the minimal required
permissions principle. Also, remember to have Auditing enabled to track all activities taking place on the
database.
Examples
Creating a Dynamic Data Mask
The following example creates a table with three different types of dynamic data masks. The example populates
the table, and selects to show the result.
-- schema to contain user tables
CREATE SCHEMA Data;
GO
A new user is created and granted the SELECT permission on the schema where the table resides. Queries
executed as the MaskingTestUser view masked data.
REVERT;
into
1 Rxxxxxo Tamburello xxxx RXXX@XXXX.com 91
REVERT;
See Also
CREATE TABLE (Transact-SQL)
ALTER TABLE (Transact-SQL)
column_definition (Transact-SQL)
sys.masked_columns (Transact-SQL)
Get started with SQL Database Dynamic Data Masking (Azure portal)
SQL Server Express LocalDB Reference
11/2/2020 • 2 minutes to read • Edit Online
Code Sample
The following sample demonstrates the LocalDB API. Make sure that LocalDB is installed on the computer before
running this sample. You can install LocalDB from setup in the SQL Server 2019 (15.x) Express.
// To use LocalDB API, you must define LOCALDB_DEFINE_PROXY_FUNCTIONS before you include sqlncli.h in one
(and only one) of the
// source files in your program. LOCALDB_DEFINE_PROXY_FUNCTIONS causes code to be generated that binds to
the LocalDB API at runtime.
#define LOCALDB_DEFINE_PROXY_FUNCTIONS
#include "sqlncli.h"
return hr;
}
return hr;
}
if (hr == LOCALDB_ERROR_NOT_INSTALLED)
wprintf(L"Local DB is not installed.\n");
HRESULT PrintLocalDBInstances() {
HRESULT hr;
DWORD dwNumberOfInstances = 0;
free(localDBInstnces);
return S_OK;
}
int main() {
HRESULT hr;
PrintLocalDBInstances();
if (FAILED(hr = StopAndDeleteLocalDBInstance(wszInstanceName)))
PrintLocalDBError(hr);
PrintLocalDBInstances();
}
SqlToolsVSNativeHelpers
3/5/2021 • 2 minutes to read • Edit Online
Applies to: SQL Server (all supported versions) Azure SQL Database
Library that supports SQL Server functionality in Visual Studio.
Syntax
BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID /*lpReserved*/)
Return Value
A Boolean value, True if the DLL entry point initialized properly, otherwise False .
See Also
FrameWindowVisible
SqlToolsVSNativeHelpers - FrameWindowVisible
5/25/2021 • 2 minutes to read • Edit Online
Applies to: SQL Server (all supported versions) Azure SQL Database
Property that specifies whether a given window frame is visible. The helper method is used from managed code.
Syntax
BOOL WINAPI IsFrameWindowVisible(IVsWindowFrame* frame)
{
if (NULL == frame)
{
return FALSE;
}
Parameters
frame
IVsWindowFrame* pointer to a Visual Studio WindowFrame.
See Also
SqlToolsVSNativeHelpers
sys.edge_constraint_clauses (Transact-SQL)
3/8/2021 • 2 minutes to read • Edit Online
Permissions
The visibility of the metadata in catalog views is limited to securables that a user either owns or on which the
user has been granted some permission. For more information, see Metadata Visibility Configuration.
See Also
Object Catalog Views (Transact-SQL)
Catalog Views (Transact-SQL)
Querying the SQL Server System Catalog FAQ
sys.edge_constraints (Transact-SQL)
3/8/2021 • 2 minutes to read • Edit Online
0 = No Action.
NO_ACTION
Permissions
The visibility of the metadata in catalog views is limited to securables that a user either owns or on which the
user has been granted some permission. For more information, see Metadata Visibility Configuration.
See Also
Object Catalog Views (Transact-SQL)
Catalog Views (Transact-SQL)
Querying the SQL Server System Catalog FAQ
sys.dm_db_tuning_recommendations (Transact-SQL)
3/25/2021 • 6 minutes to read • Edit Online
Applies to: SQL Server 2017 (14.x) and later Azure SQL Database
Returns detailed information about tuning recommendations.
In Azure SQL Database, dynamic management views cannot expose information that would impact database
containment or expose information about other databases the user has access to. To avoid exposing this
information, every row that contains data that doesn't belong to the connected tenant is filtered out.
planForceDetails
- queryId - query_id of the
regressed query.
- regressedPlanId - plan_id of the
regressed plan.
- regressedPlanExecutionCount -
Number of executions of the query
with regressed plan before the
regression is detected.
- regressedPlanAbortedCount -
Number of detected errors during the
execution of the regressed plan.
- regressedPlanCpuTimeAverage -
Average CPU time (in micro seconds)
consumed by the regressed query
before the regression is detected.
- regressedPlanCpuTimeStddev -
Standard deviation of CPU time
consumed by the regressed query
before the regression is detected.
- recommendedPlanId - plan_id of the
plan that should be forced.
- recommendedPlanExecutionCount -
Number of executions of the query
with the plan that should be forced
before the regression is detected.
- recommendedPlanAbortedCount -
Number of detected errors during the
execution of the plan that should be
forced.
- recommendedPlanCpuTimeAverage -
Average CPU time (in micro seconds)
consumed by the query executed with
the plan that should be forced
(calculated before the regression is
detected).
- recommendedPlanCpuTimeStddev
Standard deviation of CPU time
consumed by the regressed query
before the regression is detected.
implementationDetails
- method - The method that should
be used to correct the regression.
Value is always TSql .
- script - Transact-SQL script that
should be executed to force the
recommended plan.
Remarks
Information returned by sys.dm_db_tuning_recommendations is updated when database engine identifies potential
query performance regression, and is not persisted. Recommendations are kept only until the database engine
is restarted. Use the sqlserver_start_time column in sys.dm_os_sys_info to find the last database engine
startup time. Database administrators should periodically make backup copies of the tuning recommendation if
they want to keep it after server recycling.
The currentValue field in the state column might have the following values:
Active Recommendation is active and not yet applied. User can take
recommendation script and execute it manually.
JSON document in state column contains the reason that describes why is the recommendation in the current
state. Values in the reason field might be:
Statistic in the details column do not show runtime plan statistics (for example, current CPU time). The
recommendation details are taken at the time of regression detection and describe why Database Engine
identified performance regression. Use regressedPlanId and recommendedPlanId to query Query Store catalog
views to find exact runtime plan statistics.
Example 2
The following gets the generated Transact-SQL script that forces a good plan for any given query and additional
information about the estimated gain:
SELECT reason, score,
script = JSON_VALUE(details, '$.implementationDetails.script'),
planForceDetails.*,
estimated_gain = (regressedPlanExecutionCount + recommendedPlanExecutionCount)
*(regressedPlanCpuTimeAverage - recommendedPlanCpuTimeAverage)/1000000,
error_prone = IIF(regressedPlanErrorCount > recommendedPlanErrorCount, 'YES','NO')
FROM sys.dm_db_tuning_recommendations
CROSS APPLY OPENJSON (Details, '$.planForceDetails')
WITH ( [query_id] int '$.queryId',
regressedPlanId int '$.regressedPlanId',
recommendedPlanId int '$.recommendedPlanId',
regressedPlanErrorCount int,
recommendedPlanErrorCount int,
regressedPlanExecutionCount int,
regressedPlanCpuTimeAverage float,
recommendedPlanExecutionCount int,
recommendedPlanCpuTimeAverage float
) AS planForceDetails;
Example 3
The following gets the generated Transact-SQL script that forces a good plan for any given query and additional
information that includes the query text and the query plans stored in Query Store:
WITH cte_db_tuning_recommendations
AS (SELECT reason,
score,
query_id,
regressedPlanId,
recommendedPlanId,
current_state = JSON_VALUE(state, '$.currentValue'),
current_state_reason = JSON_VALUE(state, '$.reason'),
script = JSON_VALUE(details, '$.implementationDetails.script'),
estimated_gain = (regressedPlanExecutionCount + recommendedPlanExecutionCount)
* (regressedPlanCpuTimeAverage - recommendedPlanCpuTimeAverage)/1000000,
error_prone = IIF(regressedPlanErrorCount > recommendedPlanErrorCount, 'YES','NO')
FROM sys.dm_db_tuning_recommendations
CROSS APPLY OPENJSON(Details, '$.planForceDetails')
WITH ([query_id] int '$.queryId',
regressedPlanId int '$.regressedPlanId',
recommendedPlanId int '$.recommendedPlanId',
regressedPlanErrorCount int,
recommendedPlanErrorCount int,
regressedPlanExecutionCount int,
regressedPlanCpuTimeAverage float,
recommendedPlanExecutionCount int,
recommendedPlanCpuTimeAverage float
)
)
SELECT qsq.query_id,
qsqt.query_sql_text,
dtr.*,
CAST(rp.query_plan AS XML) AS RegressedPlan,
CAST(sp.query_plan AS XML) AS SuggestedPlan
FROM cte_db_tuning_recommendations AS dtr
INNER JOIN sys.query_store_plan AS rp ON rp.query_id = dtr.query_id
AND rp.plan_id = dtr.regressedPlanId
INNER JOIN sys.query_store_plan AS sp ON sp.query_id = dtr.query_id
AND sp.plan_id = dtr.recommendedPlanId
INNER JOIN sys.query_store_query AS qsq ON qsq.query_id = rp.query_id
INNER JOIN sys.query_store_query_text AS qsqt ON qsqt.query_text_id = qsq.query_text_id;
For more information about JSON functions that can be used to query values in the recommendation view, see
JSON Support in Database Engine.
Permissions
Requires VIEW SERVER STATE permission in SQL Server.
Requires the VIEW DATABASE STATE permission for the database in Azure SQL Database.
See also
Automatic Tuning
sys.database_automatic_tuning_options (Transact-SQL)
sys.database_query_store_options (Transact-SQL)
JSON Support sys.dm_os_sys_info (Transact-SQL)
sp_enum_sqlagent_subsystems (Transact-SQL)
3/5/2021 • 2 minutes to read • Edit Online
Syntax
sp_enum_sqlagent_subsystems
Arguments
None
Result Sets
C O L UM N N A M E DATA T Y P E DESC RIP T IO N
star t_entr y_point nvarchar(30) Procedure that SQL Server Agent calls
during job step execution.
Permissions
By default, members of the sysadmin fixed server role can execute this stored procedure. Other users must be
granted the SQL AgentOperatorRole fixed database role in the msdb database.
For details about SQL AgentOperatorRole , see SQL Server Agent Fixed Database Roles.
See Also
Implement SQL Server Agent Security
sp_add_jobstep (Transact-SQL)
sysmail_delete_principalprofile_sp (Transact-SQL)
3/5/2021 • 2 minutes to read • Edit Online
Syntax
sysmail_delete_principalprofile_sp { [ @principal_id = ] principal_id | [ @principal_name = ]
'principal_name' } ,
{ [ @profile_id = ] profile_id | [ @profile_name = ] 'profile_name' }
Arguments
[ @principal_id = ] principal_id Is the ID of the database user or role in the msdb database for the
association to delete. principal_id is int , with a default of NULL. To make a public profile into a private profile,
provide the principal ID 0 or the principal name 'public' . Either principal_id or principal_name must be
specified.
[ @principal_name = ] 'principal_name' Is the name of the database user or role in the msdb database for the
association to delete. principal_name is sysname , with a default of NULL. To make a public profile into a private
profile, provide the principal ID 0 or the principal name 'public' . Either principal_id or principal_name must be
specified.
[ @profile_id = ] profile_id Is the ID of the profile for the association to delete. profile_id is int , with a default
of NULL. Either profile_id or profile_name must be specified.
[ @profile_name = ] 'profile_name' Is the name of the profile for the association to delete. profile_name is
sysname , with a default of NULL. Either profile_id or profile_name must be specified.
Remarks
To make a public profile into a private profile, provide 'public' for the principal name or 0 for the principal id.
Use caution when removing permissions for the default private profile for a user or the default public profile.
When no default profile is available, sp_send_dbmail requires the name of a profile as an argument. Therefore,
removing a default profile may cause calls to sp_send_dbmail to fail. For more information, see
sp_send_dbmail (Transact-SQL).
The stored procedure sysmail_delete_principalprofile_sp is in the msdb database and is owned by the dbo
schema. The procedure must be executed with a three-part name if the current database is not msdb .
Permissions
Execute permissions for this procedure default to members of the sysadmin fixed server role.
Examples
The following example shows deleting the association between the profile AdventureWorks Administrator
and the login ApplicationUser in the msdb database.
EXECUTE msdb.dbo.sysmail_delete_principalprofile_sp
@principal_name = 'ApplicationUser',
@profile_name = 'AdventureWorks Administrator' ;
See Also
Database Mail
Database Mail Configuration Objects
Database Mail Stored Procedures (Transact-SQL)
Reporting Services WMI Provider Library Reference
(SSRS)
11/2/2020 • 2 minutes to read • Edit Online
The Reporting Services Windows Management Instrumentation (WMI) provider supports WMI operations that
enable you to write scripts and code to modify settings of the report server and Report Manager.
For example, if you want to change whether integrated security is used when the report server connects to the
report server database, create an instance of the MSReportServer_ConfigurationSetting class and use the
DatabaseIntegratedSecurity property of the of the report server instance. The classes shown in the following
table represent Reporting Services components. The classes are defined in either the
root\Microsoft\SqlSer ver\Repor tSer ver\< InstanceName >\v13 or the
root\Microsoft\SqlSer ver\Repor tSer ver\< InstanceName >\v13\Admin namespaces. Each of the classes
support read and write operations. Create operations are not supported.
Classes
MSReportServer_Instance Class
Provides basic information required for a client to connect to an installed report server.
MSReportServer_ConfigurationSetting Class
Represents the installation and run-time parameters of a report server instance. These parameters are stored in
the configuration file for the report server.
For more information about WMI operations, see the WMI SDK documentation included with the Microsoft .NET
Framework SDK.
See Also
Access the Reporting Services WMI Provider
Technical Reference (SSRS)
MSReportServer_Instance Class
11/2/2020 • 2 minutes to read • Edit Online
The MSReportServer_Instance class provides basic information required for a client to connect to an installed
report server.
For a list of all members of this type, see MSReportServer_Instance Members
Syntax
Public Class MSReportServer_Instance
Thread Safety
Any public static (Shared in Visual Basic) members of this type are safe for multithreaded operations. Any
instance members are not guaranteed to be thread-safe.
Requirements
Namespace: root\Microsoft\SqlSer ver\Repor tSer ver\< InstanceName >\v13
Platform: Windows Server 2003, Datacenter Edition; Windows Server 2003, Enterprise Edition; Windows
Server 2003, Standard Edition; Windows Vista; Windows XP Professional with Service Pack 2 (SP2) or Service
Pack 1 (SP1); or Windows 2000 (all versions)
See Also
MSReportServer_Instance Members
MSReportServer_Instance Members
11/2/2020 • 2 minutes to read • Edit Online
The MSReportServer_Instance class provides basic information required for a client to connect to an installed
report server.
Public Properties
P RO P ERT Y DESC RIP T IO N
Public Methods
M ET H O D DESC RIP T IO N
GetReportServerUrls Method (WMI Lists URLs users can use to access the report server and
MSReportServer_Instance) report manager.
MSReportServer_Instance Properties
11/2/2020 • 2 minutes to read • Edit Online
The MSReportServer_Instance class provides basic information required for a client to connect to an installed
report server.
Public Properties
P RO P ERT Y DESC RIP T IO N
EditionID Property (WMI MSReportServer_Instance) Returns the edition of the report server.
EditionName Property (WMI MSReportServer_Instance) Returns the human readable name of the report server
edition.
See Also
MSReportServer_Instance Members
MSReportServer_Instance Properties - EditionID
11/2/2020 • 2 minutes to read • Edit Online
Syntax
Public Dim EditionID As UInt
Property Value
A uint that contains the edition of the report server.
Example Code
MSReportServer_ConfigurationSetting Class
Requirements
Namespace: root\Microsoft\SqlSer ver\Repor tSer ver\< InstanceName >\v13
See Also
MSReportServer_Instance Members
MSReportServer_Instance Properties - EditionName
11/2/2020 • 2 minutes to read • Edit Online
Returns the human readable name of the report server edition. Read-only.
Syntax
Public Dim EditionName As String
Property Value
A string that contains human readable name of the report server edition.
Example Code
MSReportServer_ConfigurationSetting Class
Requirements
Namespace: root\Microsoft\SqlSer ver\Repor tSer ver\< InstanceName >\v13
See Also
MSReportServer_Instance Members
MSReportServer_Instance Properties - InstanceID
11/2/2020 • 2 minutes to read • Edit Online
This object supports the Reporting Services infrastructure and is not intended to be used directly from your
code.
Syntax
public Dim InstanceID As String
Requirements
Namespace: root\Microsoft\SqlSer ver\Repor tSer ver\< InstanceName >\v13
See Also
MSReportServer_Instance Members
MSReportServer_Instance Properties -
InstanceName
11/2/2020 • 2 minutes to read • Edit Online
Syntax
Public Dim InstanceName As String
Property Value
A String object that represents the name of the report server instance.
Example Code
MSReportServer_ConfigurationSetting Class
Requirements
Namespace: root\Microsoft\SqlSer ver\Repor tSer ver\< InstanceName >\v13
See Also
MSReportServer_Instance Members
MSReportServer_Instance Properties -
IsSharePointIntegrated
11/2/2020 • 2 minutes to read • Edit Online
Specifies whether the report server is in SharePoint integrated mode. Beginning in SQL Server 2012 (11.x), this
property always returns False because in SharePoint mode, Reporting Services instances are SharePoint shared
services and are not controlled by WMI providers.
Syntax
Public Dim IsSharePointIntegrated As Boolean
Property Values
A Boolean value that indicates whether the report server is in SharePoint integrated mode.
Requirements
Namespace: root\Microsoft\SqlSer ver\Repor tSer ver\< InstanceName >\v13
See Also
MSReportServer_Instance Members
MSReportServer_ConfigurationSetting Class
MSReportServer_Instance Properties - Version
11/2/2020 • 2 minutes to read • Edit Online
Returns the version of the report server in the format Major.Minor.Build.Revision. Read-only.
Syntax
Public Dim Version As String
Property Value
A string that contains the version of the report server.
Example Code
MSReportServer_ConfigurationSetting Class
Requirements
Namespace: root\Microsoft\SqlSer ver\Repor tSer ver\< InstanceName >\v13
See Also
MSReportServer_Instance Members
MSReportServer_Instance Methods
11/2/2020 • 2 minutes to read • Edit Online
The MSReportServer_Instance class provides basic information required for a client to connect to an installed
report server.
Public Methods
M ET H O D DESC RIP T IO N
GetReportServerUrls Method (WMI Lists URLs users can use to access the report server and the
MSReportServer_Instance) web portal.
See Also
MSReportServer_Instance Members
MSReportServer_Instance Methods -
GetReportServerUrls
11/2/2020 • 2 minutes to read • Edit Online
Returns a list of URLs users can use to access the report server and the web portal.
Syntax
Public Sub GetReportServerUrls (ByRef ApplicationName() As String, ByRef URLs()_
As String, ByRef Length As Int32, ByRef HRESULT As Int32)
Parameters
ApplicationName[]
An array that contains the applications that are installed. Values are either Repor tSer verWebSer vice or
Repor tSer verWebApp .
URLs[]
An array that contains the successfully registered Urls.
Length
An integer value that contains the length of the arrays returned.
HRESULT
A value that indicates success or an error code.
Return Values
Remarks
Methods exposed by WMI management objects are called through the InvokeMethod function. For more
information, please see "Executing Methods on Management Objects" in the Microsoft .NET Framework WMI
documentation.
Requirements
Namespace: root\Microsoft\SqlSer ver\Repor tSer ver\< InstanceName >\v13
See Also
MSReportServer_ConfigurationSetting Members
MSReportServer_ConfigurationSetting Class
11/2/2020 • 2 minutes to read • Edit Online
Represents the installation and runtime parameters of a report server instance. These parameters are stored in
the configuration file for the report server.
For a list of all members of this type, see MSReportServer_ConfigurationSetting Members.
Syntax
Public Class MSReportServer_ConfigurationSetting
Thread Safety
Any public static (Shared in Visual Basic) members of this type are safe for multithreaded operations. Any
instance members are not guaranteed to be thread-safe.
Example
To run the following code, add your server name in place of each <servername>. Update the path to point to
your installation location, if it is not the default. The following code example iterates through each property in
the MSReportServer_ConfigurationSetting class, printing the name of each property and its value to the
console.
Imports System
Imports System.Management
Imports System.IO
Module Module1
Sub Main()
Const machineWmiNamespace As String = "\\<servername>\root\Microsoft\SqlServer\ReportServer\
<InstanceName>\v10"
Const wmiNamespace As String = "\\<servername>\root\Microsoft\SqlServer\ReportServer\
<InstanceName>\v10:MSReportServer_ConfigurationSetting"
serverClass.Get()
Console.WriteLine("\n-----\nSERVER STATUS:\n")
Dim i As Integer
For i = 0 To t - 1
Console.WriteLine("{0} - {1}", namesArray.GetValue(i), descArray.GetValue(i))
Console.WriteLine("Value: {0}, Severity: {1}", statusArray.GetValue(i),
severityArray.GetValue(i))
Next i
Next instance
End Sub
End Module
using System;
using System.Management;
using System.IO;
[assembly: CLSCompliant(true)]
class Class1
{
[STAThread]
static void Main(string[] args)
{
const string machineWmiNamespace = @"\\<servername>\root\Microsoft\SqlServer\ReportServer\
<InstanceName>\v10";
const string wmiNamespace = @"\\<servername>\root\Microsoft\SqlServer\ReportServer\
<InstanceName>\v10:MSReportServer_ConfigurationSetting";
serverClass.Get();
Console.WriteLine("\n-----\nSERVER STATUS:\n");
int t = (int)serverStatusObject["Length"];
Console.ReadKey();
}
}
}
Requirements
Namespace: root\Microsoft\SqlSer ver\Repor tSer ver\< InstanceName >\v13\Admin
Platform: Windows Server 2003, Datacenter Edition; Windows Server 2003, Enterprise Edition; Windows
Server 2003, Standard Edition; Windows Vista; Windows XP Professional with Service Pack 2 (SP2) or Service
Pack 1 (SP1); or Windows 2000 (all versions)
See Also
MSReportServer_ConfigurationSetting Members
MSReportServer_ConfigurationSetting Members
11/2/2020 • 4 minutes to read • Edit Online
Public Properties
P RO P ERT Y DESC RIP T IO N
ConnectionPoolSize Returns the connection pool size used by the report server
to communicate with the SQL Server Database Engine
instance that hosts the report server database. Read-only.
DatabaseName Specifies the name of the SQL Server instance that hosts the
report server database.
DatabaseQueryTimeout Specifies the number of seconds that must elapse before the
command fails or times out. The report server is timing the
process against the report server database, not a data
source for the report.
DatabaseServerName Specifies the name of the server on which the report server
database is installed.
MachineAccountIdentity Property (WMI) Gets the machine account identity of the computer that the
report server is installed on.
SenderEmailAddress Gets the address used to send e-mail from the report server.
Read-only.
UnattendedExecutionAccount Specifies the login user account that the report server
impersonates when running reports unattended. Read-only.
VirtualDirectoryReportManager Property (WMI Returns the virtual directory for the report manager
MSReportServer_ConfigurationSetting) application
VirtualDirectoryReportServer Property (WMI Returns the Virtual directory for the report server web
MSReportServer_ConfigurationSetting) service application.
WindowsServiceIdentityActual Returns the identity that the Report Server Windows service
is actually running under. Read-only.
WindowsServiceIdentityConfigured Returns the identity that the Report Server Windows service
was last configured to run under. Read-only.
Public Methods
M ET H O D DESC RIP T IO N
BackupEncryptionKey Backs up the encryption key for the instance. The encryption
key is stored encrypted with a password.
GetAdminSiteUrl Method (WMI) Gets the absolute URL to the Central Administration Web
site.
GetDatabaseVersionDisplayName Gets the display name for a given report server database
version string.
ListInstalledSharePointVersions Method (WMI) Returns a set of tokens that represent the versions of
Windows SharePoint Services Office SharePoint Server,
SharePoint Foundation 2010, or SharePoint Server 2010 that
are installed on the same computer as the report server.
ListReservedURLs Method (WMI Lists URLs reserved for all applications on the report server.
MSReportServer_ConfigurationSetting)
ListSSLCertificateBindings Method (WMI Lists TLS/SSL certificate bindings that exist in HTTP.SYS and
MSReportServer_ConfigurationSetting) those expected from rsreportserver.config.
RemoveURL Method (WMI Removes a URL reserved for the report server.
MSReportServer_ConfigurationSetting)
SetServiceState Turns the Report Server Windows and Web services on and
off.
See Also
MSReportServer_ConfigurationSetting Class
MSReportServer_ConfigurationSetting Properties
11/2/2020 • 2 minutes to read • Edit Online
The MSReportServer_ConfigurationSetting class represents the installation and runtime parameters of a report
server instance. These settings are stored in the RSReportServer.config configuration file.
Public Properties
P RO P ERT Y DESC RIP T IO N
ConnectionPoolSize Returns the connection pool size used by the report server
to communicate with the SQL Server Database Engine
instance that hosts the report server database. Read-only.
DatabaseName Specifies the name of the SQL Server instance that hosts the
report server database.
DatabaseQueryTimeout Specifies the number of seconds that must elapse before the
command fails or times out. The report server is timing the
process against the SQL Server catalog, not a data source
for the report.
DatabaseServerName Specifies the name of the server on which the report server
database is installed.
MachineAccountIdentity Property (WMI) Gets the machine account identity of the computer that the
report server is installed on.
SenderEmailAddress Gets the address used to send e-mail from the report server.
Read-only.
UnattendedExecutionAccount Specifies the login user account that the report server
impersonates when running reports unattended. Read-only.
VirtualDirectoryReportManager Property (WMI Returns the virtual directory for the report manager
MSReportServer_ConfigurationSetting) application
VirtualDirectoryReportServer Property (WMI Returns the Virtual directory for the report server web
MSReportServer_ConfigurationSetting) service application.
WindowsServiceIdentityActual Returns the identity that the Report Server Windows service
is actually running under. Read-only.
WindowsServiceIdentityConfigured Returns the identity that the Report Server Windows service
was last configured to run under. Read-only.
See Also
MSReportServer_ConfigurationSetting Members
ConfigurationSetting Property -
ConnectionPoolSize
11/2/2020 • 2 minutes to read • Edit Online
The connection pool size used by the report server to communicate with the SQL Server instance that hosts the
report server database. Read-only.
Syntax
Public Dim ConnectionPoolSize As UInt32
Property Values
A read-only integer object that returns a value of 768 .
Example Code
MSReportServer_ConfigurationSetting Class
Requirements
Namespace: root\Microsoft\SqlSer ver\Repor tSer ver\< InstanceName >\v13\Admin
See Also
MSReportServer_ConfigurationSetting Members
ConfigurationSetting Property -
DatabaseLogonAccount
11/2/2020 • 2 minutes to read • Edit Online
Specifies the logon account that the report server uses when connecting to the report server database. Read
only.
Syntax
Public Dim DatabaseLogonAccount As String
Property Values
A String object that represents the logon account name.
Example Code
MSReportServer_ConfigurationSetting Class
Remarks
Valid values for this property will vary depending on the value of the DatabaseLogonType property.
This property is ignored if the DatabaseLogonType property is set to 2 (Ser vice) .
Requirements
Namespace: root\Microsoft\SqlSer ver\Repor tSer ver\< InstanceName >\v13\Admin
See Also
MSReportServer_ConfigurationSetting Members
ConfigurationSetting Property -
DatabaseLogonTimeout
11/2/2020 • 2 minutes to read • Edit Online
Specifies the number of seconds to wait before an attempt to log on to the report server database fails. A value
of 0 indicates an infinite wait time. Read only.
Syntax
Public Dim DatabaseLogonTimeout As Int32
Property Values
A 32-bit signed integer object that represents the number of seconds.
Example Code
MSReportServer_ConfigurationSetting Class
Requirements
Namespace: root\Microsoft\SqlSer ver\Repor tSer ver\< InstanceName >\v13\Admin
See Also
MSReportServer_ConfigurationSetting Members
ConfigurationSetting Property -
DatabaseLogonType
11/2/2020 • 2 minutes to read • Edit Online
Specifies whether the report server uses a Microsoft Windows service account, a Windows user account, or a
SQL Server login to access the report server database. Read-only.
Syntax
Public Dim DatabaseLogonType As Integer
Property Values
An integer object that represents the login type.
Example Code
MSReportServer_ConfigurationSetting Class
Remarks
Values are:
0 for Windows login
1 for SQL Server login
2 to log in as a service
If you specify 0 (Windows), you must set the value in the DatabaseLogonAccount property to a corresponding a
valid Windows user account.
If you specify 1 (SQL Server), make sure the value of the DatabaseLogonAccount corresponds to a valid SQL
Server login.
If you specify 2 (Windows service), the report server uses an ASP.NET account and the Windows service account
to access the report server database. The DatabaseLogonAccount property is ignored.
Requirements
Namespace: root\Microsoft\SqlSer ver\Repor tSer ver\< InstanceName >\v13\Admin
See Also
MSReportServer_ConfigurationSetting Members
ConfigurationSetting Property - DatabaseName
11/2/2020 • 2 minutes to read • Edit Online
Specifies the name of the SQL Server instance that hosts the report server database. Read only.
Syntax
Public Dim DatabaseName As String
Property Values
A String object whose value represents the database instance name of the report server database.
Example Code
MSReportServer_ConfigurationSetting Class
Requirements
Namespace: root\Microsoft\SqlSer ver\Repor tSer ver\< InstanceName >\v13\Admin
See Also
MSReportServer_ConfigurationSetting Members
ConfigurationSetting Property -
DatabaseQueryTimeout
11/2/2020 • 2 minutes to read • Edit Online
Specifies the number of seconds that must elapse before the report server assumes the command failed or took
too much time to perform. The report server is timing the querying against the SQL catalog, not a data source
for the report. Read/write.
Syntax
Public Dim DatabaseQueryTimeout As UInt32
Property Values
A 32-bit unsigned integer object that represents the number of seconds that the query is allowed to run.
Example Code
MSReportServer_ConfigurationSetting Class
Requirements
Namespace: root\Microsoft\SqlSer ver\Repor tSer ver\< InstanceName >\v13\Admin
See Also
MSReportServer_ConfigurationSetting Members
ConfigurationSetting Property -
DatabaseServerName
11/2/2020 • 2 minutes to read • Edit Online
Specifies the name of the server on which the report server database is installed. Read/write.
Syntax
Public Dim DatabaseServerName As String
Property Values
A String object that represents the name of the server.
Example Code
MSReportServer_ConfigurationSetting Class
Requirements
Namespace: root\Microsoft\SqlSer ver\Repor tSer ver\< InstanceName >\v13\Admin
See Also
MSReportServer_ConfigurationSetting Members
ConfigurationSetting Property - InstallationID
11/2/2020 • 2 minutes to read • Edit Online
This property returns a unique identifier for a specific report server instance.
Syntax
public Dim InstanceID As String
Requirements
Namespace: root\Microsoft\SqlSer ver\Repor tSer ver\< InstanceName >\v13\Admin
See Also
MSReportServer_ConfigurationSetting Members
ConfigurationSetting Property - InstanceName
11/2/2020 • 2 minutes to read • Edit Online
Syntax
Public Dim InstanceName As String
Property Value
A String object that represents the name of the report server instance.
Example Code
MSReportServer_ConfigurationSetting Class
Requirements
Namespace: root\Microsoft\SqlSer ver\Repor tSer ver\< InstanceName >\v13\Admin
See Also
MSReportServer_ConfigurationSetting Members
ConfigurationSetting Property - IsInitialized
11/2/2020 • 2 minutes to read • Edit Online
Syntax
Public Dim IsInitialized As Boolean
Property Values
A Boolean object indicating whether the report server instance is initialized.
Example Code
MSReportServer_ConfigurationSetting Class
Requirements
Namespace: root\Microsoft\SqlSer ver\Repor tSer ver\< InstanceName >\v13\Admin
See Also
MSReportServer_ConfigurationSetting Members
ConfigurationSetting Property -
IsSharePointIntegrated
11/2/2020 • 2 minutes to read • Edit Online
Specifies whether the report server is in SharePoint integrated mode. Beginning in SQL Server 2012 (11.x), this
property always returns False because in SharePoint mode, Reporting Services instances are SharePoint shared
services and are not controlled by WMI providers.
Syntax
Public Dim IsSharePointIntegrated As Boolean
Property Values
A Boolean object that indicates whether the report server is in SharePoint integrated mode.
Example Code
MSReportServer_ConfigurationSetting Class
Requirements
Namespace: root\Microsoft\SqlSer ver\Repor tSer ver\< InstanceName >\v13\Admin
See Also
MSReportServer_ConfigurationSetting Members
ConfigurationSetting Property -
IsWebServiceEnabled
11/2/2020 • 2 minutes to read • Edit Online
Syntax
Public Dim IsWebServiceEnabled As Boolean
Property Values
A read-only Boolean value. A value of true indicates that the Report Server Web service is enabled.
Example Code
MSReportServer_ConfigurationSetting Class
Requirements
Namespace: root\Microsoft\SqlSer ver\Repor tSer ver\< InstanceName >\v13\Admin
See Also
MSReportServer_ConfigurationSetting Members
ConfigurationSetting Property -
IsWindowsServiceEnabled
11/2/2020 • 2 minutes to read • Edit Online
Syntax
Public Dim IsWindowsServiceEnabled As Boolean
Property Values
A read-only Boolean value. A value of true indicates that the Report Server Windows service is enabled.
Example Code
MSReportServer_ConfigurationSetting Class
Requirements
Namespace: root\Microsoft\SqlSer ver\Repor tSer ver\< InstanceName >\v13\Admin
See Also
MSReportServer_ConfigurationSetting Members
ConfigurationSetting Property -
MachineAccountIdentity
11/2/2020 • 2 minutes to read • Edit Online
Gets the machine account identity of the computer that the report server is installed on.
Syntax
Public Dim MachineAccountIdentity As String
Property Values
A String value that contains the machine account identity of the computer that the report server is installed on.
Requirements
Namespace: root\Microsoft\SqlSer ver\Repor tSer ver\< InstanceName >\v13\Admin
See Also
MSReportServer_ConfigurationSetting Properties
ConfigurationSetting Property - PathName
11/2/2020 • 2 minutes to read • Edit Online
Syntax
public Dim PathName As String
Property Values
A String object that represents the installation path.
Example Code
MSReportServer_ConfigurationSetting Class
Requirements
Namespace: root\Microsoft\SqlSer ver\Repor tSer ver\< InstanceName >\v13\Admin
See Also
MSReportServer_ConfigurationSetting Members
ConfigurationSetting Property -
SecureConnectionLevel
11/2/2020 • 2 minutes to read • Edit Online
Returns the secure connection level specified in the RSReportServer.config file. Read-only.
Syntax
Public Dim SecureConnectionLevel As Integer
Property Values
An Integer value that represents the secure connection level. The return values indicate that the TLS is either
configured or not. A value of greater than or equal to 1 indicates that TLS is turned on. A value of 0 indicates that
TLS is turned off.
Example Code
MSReportServer_ConfigurationSetting Class
Remarks
In SQL Server 2008 R2, SecureConnectionLevel is made an on/off switch. For more information, see
ConfigurationSetting Method - SetSecureConnectionLevel.
Requirements
Namespace: root\Microsoft\SqlSer ver\Repor tSer ver\< InstanceName >\v13\Admin
See Also
MSReportServer_ConfigurationSetting Members
ConfigurationSetting Property -
SenderEmailAddress
11/2/2020 • 2 minutes to read • Edit Online
Gets the address used to send e-mail from the report server. Read-only.
Syntax
Public Dim SenderEmailAddress As String
Property Values
A read-only String object that represents the e-mail address used by the report server.
Example Code
MSReportServer_ConfigurationSetting Class
Requirements
Namespace: root\Microsoft\SqlSer ver\Repor tSer ver\< InstanceName >\v13\Admin
See Also
MSReportServer_ConfigurationSetting Members
ConfigurationSetting Property -
SendUsingSMTPServer
11/2/2020 • 2 minutes to read • Edit Online
Specifies whether the SendUsing element in the in the e-mail configuration for the report server is set to true .
Syntax
Public Dim SendUsingSMTPServer As Boolean
Property Values
A read-only Boolean object.
Example Code
MSReportServer_ConfigurationSetting Class
Requirements
Namespace: root\Microsoft\SqlSer ver\Repor tSer ver\< InstanceName >\v13\Admin
See Also
MSReportServer_ConfigurationSetting Members
ConfigurationSetting Property - SMTPServer
11/2/2020 • 2 minutes to read • Edit Online
Gets the SMTP server property from the report server configuration file. Read-only.
Syntax
Public Dim SMTPServer As String
Property Values
A read-only String object containing the value of the SMTPSer ver property from the RSReportServer.config
file.
Example Code
MSReportServer_ConfigurationSetting Class
Requirements
Namespace: root\Microsoft\SqlSer ver\Repor tSer ver\< InstanceName >\v13\Admin
See Also
MSReportServer_ConfigurationSetting Members
ConfigurationSetting Property -
UnattendedExecutionAccount
11/2/2020 • 2 minutes to read • Edit Online
Returns the user account that the report server impersonates when running reports unattended. Read-only.
Syntax
Public Dim UnattendedExecutionAccount As String
Property Values
A String object that represents the account name.
Example Code
MSReportServer_ConfigurationSetting Class
Requirements
Namespace: root\Microsoft\SqlSer ver\Repor tSer ver\< InstanceName >\v13\Admin
See Also
MSReportServer_ConfigurationSetting Members
ConfigurationSetting Property - Version
11/2/2020 • 2 minutes to read • Edit Online
Returns the version of the report server in the format Major.Minor.Build.Revision. Read-only.
Syntax
Public Dim Version As String
Property Value
A string that contains the version of the report server.
Example Code
MSReportServer_ConfigurationSetting Class
Requirements
Namespace: root\Microsoft\SqlSer ver\Repor tSer ver\< InstanceName >\v13
See Also
MSReportServer_Instance Members
ConfigurationSetting Property -
VirtualDirectoryReportManager
11/2/2020 • 2 minutes to read • Edit Online
Returns the virtual directory for the report manager application. Read-only.
Syntax
Public Dim VirtualDirectoryReportManager As String
Property Values
A string that contains the virtual directory.
Example Code
MSReportServer_ConfigurationSetting Class
Requirements
Namespace: root\Microsoft\SqlSer ver\Repor tSer ver\< InstanceName >\v13\Admin
See Also
MSReportServer_ConfigurationSetting Members
ConfigurationSetting Property -
VirtualDirectoryReportServer
11/2/2020 • 2 minutes to read • Edit Online
Returns the virtual directory for the report server application. Read-only.
Syntax
Public Dim VirtualDirectoryReportServer As String
Property Values
A string that contains the virtual directory.
Example Code
MSReportServer_ConfigurationSetting Class
Requirements
Namespace: root\Microsoft\SqlSer ver\Repor tSer ver\< InstanceName >\v13\Admin
See Also
MSReportServer_ConfigurationSetting Members
ConfigurationSetting Property -
WindowsServiceIdentityActual
11/2/2020 • 2 minutes to read • Edit Online
The identity that the Report Server Windows service is running under. Read-only.
Syntax
Public Dim WindowsServiceIdentityActual As String
Property Values
A String object containing the identity that the Report Server Windows service is running under.
Example Code
MSReportServer_ConfigurationSetting Class
Requirements
Namespace: root\Microsoft\SqlSer ver\Repor tSer ver\< InstanceName >\v13\Admin
See Also
MSReportServer_ConfigurationSetting Members
WindowsServiceIdentityConfigured Property
11/2/2020 • 2 minutes to read • Edit Online
Returns the identity that the Report Server Windows service was last configured to run under. Read-only.
Syntax
Public Dim WindowsServiceIdentityConfigured As String
Property Values
A String value containing the identity that the Report Server Windows service was last configured to run under.
Example Code
MSReportServer_ConfigurationSetting Class
Requirements
Namespace: root\Microsoft\SqlSer ver\Repor tSer ver\< InstanceName >\v13\Admin
See Also
MSReportServer_ConfigurationSetting Members
RSWindowsExtendedProtectionLevel Property
11/2/2020 • 2 minutes to read • Edit Online
Returns a string value that indicates the level of protection the report server is configured to support. This
property is read-only.
Syntax
Public Dim RSWindowsExtendedProtectionLevel As String
Remarks
Returns a string value that indicates the level of protection the report server is configured to support. If the
report server that the WMI provider is connected to does not support extended protection, "" (empty string) is
returned. The following list shows valid values:
"Off" | "Allow" | "Require"
Example Code
MSReportServer_ConfigurationSetting Class
See Also
RSWindowsExtendedProtectionScenario Property (WMI MSReportServer_ConfigurationSetting)
SetExtendedProtectionSettings Method (WMI MSReportServer_ConfigurationSetting)
Extended Protection for Authentication with Reporting Services
RsReportServer.config Configuration File
RSWindowsExtendedProtectionScenario Property
11/2/2020 • 2 minutes to read • Edit Online
Returns a string value that indicates the extended protection scenario the report server is configured to allow.
Syntax
Public Dim RSWindowsExtendedProtectionScenario As String
Remarks
Returns a string value that indicates the extended protection scenario the report server is configured to allow. If
the report server that the WMI provider is connected to does not support extended protection, "" (empty string)
is returned.
The following list shows valid values:
"Any | Proxy | Direct"
Example Code
MSReportServer_ConfigurationSetting Class
See Also
RSWindowsExtendedProtectionLevel Property (WMI MSReportServer_ConfigurationSetting)
SetExtendedProtectionSettings Method (WMI MSReportServer_ConfigurationSetting)
Extended Protection for Authentication with Reporting Services
RsReportServer.config Configuration File
MSReportServer_ConfigurationSetting Methods
11/2/2020 • 2 minutes to read • Edit Online
The MSReportServer_ConfigurationSetting class of the Report Server WMI Provider provides the following
public methods.
Public Methods
M ET H O D DESC RIP T IO N
BackupEncryptionKey Backs up the encryption key for the instance. The encryption
key is stored encrypted with a password.
GetAdminSiteUrl Method (WMI) Gets the absolute URL to the Central Administration Web
site.
GetDatabaseVersionDisplayName Gets the display name for a given report server database
version string.
ListInstalledSharePointVersions Method (WMI) Returns a set of tokens that represent the versions of
Microsoft Windows SharePoint Services Office SharePoint
Server, SharePoint Foundation 2010, or SharePoint Server
2010 that are installed on the same computer as the report
server.
ListReservedURLs Method (WMI Lists URLs reserved for all applications on the report server.
MSReportServer_ConfigurationSetting)
ListSSLCertificateBindings Method (WMI Lists TLS/SSL certificate bindings that exist in HTTP.SYS and
MSReportServer_ConfigurationSetting) those expected from RSReportServer.config.
RemoveURL Method (WMI Removes a URL reserved for the report server.
MSReportServer_ConfigurationSetting)
Backs up the encryption key for the specified report server instance. The encryption key is stored encrypted
with a password.
Syntax
Public Sub BackupEncryptionKey(Password as String, _
ByRef KeyFile() as Integer, ByRef Length as Int32, _
ByRef HRESULT as Int32, ByRef ExtendedErrors() as String)
Parameters
Password
A string used to encrypt the encryption key before it is returned.
KeyFile[]
[out] An array containing the encrypted encryption key.
Length
[out] The length of the array returned by the method.
HRESULT
[out] Value indicating whether the call succeeded or failed.
ExtendedErrors[]
[out] A string array containing additional errors returned by the call.
Return Value
Returns an HRESULT indicating success or failure of the method call. A value of 0 indicates that the method call
was successful. A non-zero value indicates that an error has occurred.
Requirements
Namespace: root\Microsoft\SqlSer ver\Repor tSer ver\< InstanceName >\v13\Admin
See Also
MSReportServer_ConfigurationSetting Members
ConfigurationSetting Method -
CreateSSLCertificateBinding
11/2/2020 • 2 minutes to read • Edit Online
Syntax
Public Sub CreateSSLCertificateBinding(ByVal Application As String, _
ByVal CertificateHash As String, ByVal IPAddress As String, _
ByVal Port As Int32, ByVal lcid As Int32, _
ByRef [Error] As String, ByRef HRESULT As Int32)
Parameters
Application
The name of application that the certificate binding should be created for.
CertificateHash
The hash for the certificate.
IPAddress
The IP address for the application.
Port
The TLS port associated with the binding.
Lcid
The locale to use for the error messages returned.
Error
[out] The description of the errors that occurred.
HRESULT
[out] Value indicating whether the call succeeded or failed.
Return Value
Returns an HRESULT indicating success or failure of the method call. A value of 0 indicates that the method call
was successful; an error code indicates the call was not successful.
Remarks
This method adds a binding to rsreportserver.config for the application. If a binding does not already exist in
HTTP.SYS, it is created there.
Before creating the binding, the method call examines the Url Reservations for the specified application to
determine if the TLS/SSL Certificate Binding is valid.
The following conditions are validated and can result in errors:
1. Certificate does not exist.
2. The IPAddress specified does not correspond to an IPAddress of this computer.
3. The IPAddress specified is a DHCP IPAddress (changes periodically) - use the Wildcard IP address instead
(0.0.0.0).
4. IPAddress specified does not match the IP address of a URL reservations AND neither a wildcard or host
name URL reservation exist.
5. A URL reservation that specifies a host name exists, but the host name does not match the certificate host
name.
Requirements
Namespace: root\Microsoft\SqlSer ver\Repor tSer ver\< InstanceName >\v13\Admin
See Also
MSReportServer_ConfigurationSetting Members
ConfigurationSetting Method -
DeleteEncryptedInformation
11/2/2020 • 2 minutes to read • Edit Online
Syntax
Public Sub DeleteEncryptedInformation(ByRef HRESULT As Int32, ByRef ExtendedErrors() As String)
Parameters
HRESULT
[out] Value indicating whether the call succeeded or failed.
ExtendedErrors[]
[out] A string array containing additional errors returned by the call.
Return Value
Returns an HRESULT indicating success or failure of the method call. A value of 0 indicates that the method call
was successful. A non-zero value indicates that an error has occurred.
Remarks
When this method is invoked, the following data is deleted:
Data source information that is encrypted, including user name and password.
Subscription data that is encrypted using the delivery extension interfaces.
All the information from the keys table in the report server database.
After this method is invoked, the user must initialize each computer that uses the report server database.
Calling the DeleteEncryptedInformation method does not affect the report server configuration file.
Requirements
Namespace: root\Microsoft\SqlSer ver\Repor tSer ver\< InstanceName >\v13\Admin
See Also
MSReportServer_ConfigurationSetting Members
ConfigurationSetting Method -
DeleteEncryptionKey
11/2/2020 • 2 minutes to read • Edit Online
Syntax
Public Sub DeleteEncryptionKeys(ByVal InstallationID As String, _
ByRef HRESULT As Int32, ByRef ExtendedErrors() As String)
Parameters
InstallationID
The installation ID of a report server that is in the keys table of the report server database.
HRESULT
[out] Value indicating whether the call succeeded or failed.
ExtendedErrors[]
[out] A string array containing additional errors returned by the call.
Return Value
Returns an HRESULT indicating success or failure of the method call. A value of 0 indicates that the method call
was successful. A non-zero value indicates that an error has occurred.
Remarks
The DeleteEncryptionKey method deletes entries from the keys table for any report servers that have access to
the secure information in the report server database. If the InstallationID parameter specified does not
correspond to an installation ID in the database, the method returns an error.
Requirements
Namespace: root\Microsoft\SqlSer ver\Repor tSer ver\< InstanceName >\v13\Admin
See Also
MSReportServer_ConfigurationSetting Members
ConfigurationSetting Method -
GenerateDatabaseCreationScript
11/2/2020 • 2 minutes to read • Edit Online
Generates a SQL Script that can be used to create a report server database.
Syntax
Public Sub GenerateDatabaseCreationScript(ByVal DatabaseName As String, _
ByVal Lcid As Int32, ByVal IsSharePointMode As Boolean, ByRef Script As String, _
ByRef HRESULT As Int32)
Parameters
Databasename
A string containing the name of the report server database to create.
Lcid
Value used for localization of role names.
IsSharePointMode
Indicates whether to create database in native mode or SharePoint mode.
IMPORTANT
Beginning in SQL Server 2012 (11.x), IsSharePointMode=True is not supported because in SharePoint mode, Reporting
Services is a SharePoint shared service and is not controlled by the WMI provider. You should always set this parameter to
False .
Script
[out] A string containing the generated SQL script.
HRESULT
[out] Value indicating whether the call succeeded or failed.
Return Value
Returns an HRESULT indicating success or failure of the method call. A value of 0 indicates that the method call
was successful. A non-zero value indicates that an error has occurred.
Remarks
This method generates an SQL script that creates report server databases for the version of the report server
currently connected to.
The value supplied in the DatabaseName parameter must conform to SQL Server database naming conventions.
The method does not check the existence of the database when generating the script.
This method does not check for the existence of the report server database when generating the script.
The generated script supports SQL Server 2000 (8.x), SQL Server 2005, and SQL Server 2008.
Requirements
Namespace: root\Microsoft\SqlSer ver\Repor tSer ver\< InstanceName >\v13\Admin
See Also
MSReportServer_ConfigurationSetting Members
ConfigurationSetting Method -
GenerateDatabaseRightsScript
11/2/2020 • 3 minutes to read • Edit Online
Generates a SQL Script that can be used to grant a user rights to the report server database and other databases
required for a report server to run. The caller is expected to connect to the SQL Server database server and
execute the script.
Syntax
Public Sub GenerateDatabaseRightsScript(ByVal UserName As String, _
ByVal DatabaseName As String, ByVal IsRemote As Boolean, _
ByVal IsWindowsUser As Boolean, ByRef Script As String, _
ByRef HRESULT As Int32)
Parameters
UserName
The user name or Windows security identifier (SID) of the user to which the script will grant rights.
DatabaseName
The database name to which the script will grant access to the user.
IsRemote
A Boolean value to indicating whether the database is remote from the report server.
IsWindowsUser
A Boolean value indicating whether the specified user name is a Windows user or a SQL Server user.
Script
[out] A string containing the generated SQL Server script.
HRESULT
[out] Value indicating whether the call succeeded or failed.
Return Value
Returns an HRESULT indicating success or failure of the method call. A value of 0 indicates that the method call
was successful. A non-zero value indicates that an error has occurred.
Remarks
If DatabaseName is empty then IsRemote is ignored and the report server configuration file value is used for the
database name.
If IsWindowsUser is set to true , UserName should be in the format <domain>\<username>.
When IsWindowsUser is set to true , the generated script grants login rights to the user for the SQL Server,
setting the report server database as the default database, and grants the RSExec role on the report server
database, the report server temporary database, the master database and the MSDB system database.
When IsWindowsUser is set to true , the method accepts standard Windows SIDs as input. When a standard
Windows SID or service account name is supplied, it is translated to a user name string. If the database is local,
the account is translated to the correct localized representation of the account. If the database is remote, the
account is represented as the computer's account.
The following table shows accounts that are translated and their remote representation.
On Windows 2000, if you are using a built-in account and the report server database is remote, an error is
returned.
If the LocalSer vice built-in account is specified and the report server database is remote, an error is returned.
When IsWindowsUser is true and the value supplied in UserName needs to be translated, the WMI provider
determines whether the report server database is located on the same computer or on a remote computer. To
determine if the installation is local, the WMI provider evaluates the DatabaseServerName property against the
following list of values. If a match is found, the database is local. Otherwise, it is remote. The comparison is case-
insensitive.
"."
"(local)"
"LOCAL"
localhost
<Machinename> testlab14
<MachineFQDN> example.redmond.microsoft.com
VA L UE O F DATA B A SESERVERN A M E EXA M P L E
<IPAddress> 180.012.345,678
When IsWindowsUser is set to true , the WMI provider calls LookupAccountName to get the SID for the account
and then calls LookupAccountSID to get the name to put in the SQL Server script. This ensures that the account
name used will pass SQL Server validation.
When IsWindowsUser is set to false , the generated script grants the RSExec role on the report server database,
the report server temporary database, and the MSDB database.
When IsWindowsUser is set to false , the SQL Server user must already exist on the SQL Server for the script to
run successfully.
If the report server does not have a report server database specified, calling GrantRightsToDatabaseUser returns
an error.
The generated script supports SQL Server 2000 (8.x), SQL Server 2005, and SQL Server 2008.
Requirements
Namespace: root\Microsoft\SqlSer ver\Repor tSer ver\< InstanceName >\v13\Admin
See Also
MSReportServer_ConfigurationSetting Members
ConfigurationSetting Method -
GenerateDatabaseUpgradeScript
11/2/2020 • 2 minutes to read • Edit Online
Generates a script that can be used to upgrade the report server database to the SQL Server 2008 schema.
Syntax
Public Sub GenerateDatabaseUpgradeScript(DatabaseName as String, _
ServerVersion as String, ByRef Script as String, _
ByRef HRESULT as Int32)
Parameters
Databasename
A string containing the name of the report server database to upgrade.
ServerVersion
A string containing the version of the report server.
Script
[out] A string containing the generated SQL script.
HRESULT
[out] Value indicating whether the call succeeded or failed.
Return Value
Returns an HRESULT indicating success or failure of the method call. A value of 0 indicates that the method call
was successful. A non-zero value indicates that an error has occurred.
Remarks
The generated script supports SQL Server 2000 (8.x), SQL Server 2005 (9.x), and SQL Server 2008.
Requirements
Namespace: root\Microsoft\SqlSer ver\Repor tSer ver\< InstanceName >\v13\Admin
See Also
MSReportServer_ConfigurationSetting Members
ConfigurationSetting Method - GetAdminSiteUrl
11/2/2020 • 2 minutes to read • Edit Online
Gets the absolute URL for the Central Administration Web site for the Microsoft Windows SharePoint Services,
Office SharePoint Server, SharePoint Foundation 2010, or SharePoint Server 2010 farm that the report server is
integrated with.
Syntax
Public Sub GetAdminSiteUrl(ByRef AdminSiteUrl as String, _
ByRef HRESULT as Int32)
Parameters
AdminSiteUrl
[out] A string that contains the absolute URL for the Central Administration Web site for the SharePoint farm
that the report server is integrated with.
HRESULT
[out] Value indicating whether the call succeeded or failed.
Return Value
Returns an HRESULT indicating success or failure of the method call. A value of 0 indicates that the method call
was successful. A non-zero value indicates that an error has occurred.
Requirements
Namespace: root\Microsoft\SqlSer ver\Repor tSer ver\< InstanceName >\v13\Admin
See Also
MSReportServer_ConfigurationSetting Methods
ConfigurationSetting Method -
GetDatabaseVersionDisplayName
11/2/2020 • 2 minutes to read • Edit Online
Gets the display name for a given report server database version string.
Syntax
Public Sub GetDatabaseVersionDisplayName(Version As String, DisplayName As String, ByRef HRESULT As Int32)
Parameters
Version
A string that contains the version string for a report server database.
DisplayName
[out] A string that contains the display name that corresponds to the version supplied.
HRESULT
[out] Value indicating whether the call succeeded or failed.
Remarks
The following table shows the mapping from database version to display string.
Return Value
Returns an HRESULT indicating success or failure of the method call. A value of 0 indicates that the method call
was successful. A non-zero value indicates that an error has occurred.
Requirements
Namespace: root\Microsoft\SqlSer ver\Repor tSer ver\< InstanceName >\v13\Admin
See Also
MSReportServer_ConfigurationSetting Members
ConfigurationSetting Method -
InitializeReportServer
11/2/2020 • 2 minutes to read • Edit Online
Syntax
Public Sub InitializeReportServer(ByVal InstallationID As String, _
ByRef HRESULT As Int32, ByRef ExtendedErrors() As String)
Parameters
InstallationID
A string used to encrypt the encryption key before it is returned.
HRESULT
[out] Value indicating whether the call succeeded or failed.
ExtendedErrors[]
[out] A string array containing additional errors returned by the call.
Return Value
Returns an HRESULT indicating success or failure of the method call. A value of 0 indicates that the method call
was successful. A non-zero value indicates that an error has occurred.
Remarks
When this method is called, the encryption key that accesses the report server database secure information is
encrypted using the public key of the report server identified by InstallationID.
The specified report server's public key must have previously been written into the report server database.
The InitializeReportServer method must be called against a report server that already has access to the secure
information so that it can decrypt the encryption key. The resulting encrypted encryption key is then stored in
the report server database.
If the report server's IsInitialized property is set to true when the InitializeReportServer method is called, the
method returns success without trying to encrypt the encryption key.
Requirements
Namespace: root\Microsoft\SqlSer ver\Repor tSer ver\< InstanceName >\v13\Admin
See Also
MSReportServer_ConfigurationSetting Members
ConfigurationSetting Method -
ListInstalledSharePointVersions
11/2/2020 • 2 minutes to read • Edit Online
Returns a set of tokens that represent the versions of Microsoft Windows SharePoint Services, Office SharePoint
Server, SharePoint Foundation 2010, or SharePoint Server 2010 that are installed on the same computer as the
report server.
Syntax
Public Sub ListInstalledSharePointVersions(ByRef VersionTokens() _
As String, ByRef Length As Int32, ByRef HRESULT As Int32)
Parameters
VersionTokens[]
[out] An array that contains the tokens that represent the version of a SharePoint product or technology that is
compatible with the installed report server.
Length
[out] The length of the version tokens array.
HRESULT
[out] Value indicating whether the call succeeded or failed.
Return Value
Returns an HRESULT indicating success or failure of the method call. A value of 0 indicates that the method call
was successful. A non-zero value indicates that an error has occurred.
Remarks
Each token that is returned represents a version of Windows SharePoint Services or SharePoint Foundation
2010 that is compatible with the currently installed report server. If a particular version of SharePoint is
compatible with previous SharePoint versions, tokens for each compatible SharePoint version are returned.
The following is a table of the SharePoint tokens that are returned.
Requirements
Namespace: root\Microsoft\SqlSer ver\Repor tSer ver\< InstanceName >\v13\Admin
See Also
MSReportServer_ConfigurationSetting Members
ConfigurationSetting Method - ListIPAddresses
11/2/2020 • 2 minutes to read • Edit Online
Syntax
Public Sub ListIPAddresses (ByRef IPAddress() as String, _
ByRef IPVersion()as String, ByRef IsDhcpEnabled () as Boolean, _
ByRef Length as Int32, ByRef HRESULT as Int32)
Parameters
IPAddress[]
[out] The list of IP address for the computer.
IPVersion[]
[out] The version for the IP addresses.
IsDhcpEnabled[]
[out] Indicates whether the IP addresses are DHCP enabled.
Length
[out] The length of the array returned by the method.
HRESULT
[out] Value indicating whether the call succeeded or failed.
Return Value
Returns an HRESULT indicating success or failure of the method call. A value of 0 indicates that the method call
was successful; an error code indicates the call was not successful.
Remarks
IPVersion strings are V4, V6.
If IsDhcpEnabled is True , the IPAddress is dynamic. It should not be used for TLS bindings.
Requirements
Namespace: root\Microsoft\SqlSer ver\Repor tSer ver\< InstanceName >\v13\Admin
See Also
MSReportServer_ConfigurationSetting Members
ConfigurationSetting Method -
ListReportServersInDatabase
11/2/2020 • 2 minutes to read • Edit Online
Returns the list of report server installations that are present in the report server database, regardless of
whether they have access to secure information.
Syntax
Public Sub ListReportServersInDatabase(ByRef MachineNames() As String, _
ByRef InstanceNames() As String, ByRef InstallationIDs() As String, _
ByRef IsInitialized() As Boolean, ByRef Length As Int32, _
ByRef HRESULT As Int32, ByRef ExtendedErrors() As String)
Parameters
MachineNames[]
[out] An array containing the machine names for the report server installations in the database.
InstanceNames[]
[out] An array containing the instance names of each of the report server installations in the database.
InstallationIDs[]
[out] An array containing the installation IDs of each report server installation in the database.
IsInitialized[]
[out] An array containing initialization status for each report server installation in the database.
Length
[out] The length of the arrays returned by the method. All returned arrays have the same length.
HRESULT
[out] Value indicating whether the call succeeded or failed.
ExtendedErrors[]
[out] A string array containing additional errors returned by the call.
Return Value
Returns an HRESULT indicating success or failure of the method call. A value of 0 indicates that the method call
was successful. A non-zero value indicates that an error has occurred.
Remarks
ListReportServersInDatabase lists the report server installations that are present in the report server database,
regardless of whether they have access to secure information, and returns a matched set of arrays containing
information about each installation.
Requirements
Namespace: root\Microsoft\SqlSer ver\Repor tSer ver\< InstanceName >\v13\Admin
See Also
MSReportServer_ConfigurationSetting Members
ConfigurationSetting Method - ListReservedURLs
11/2/2020 • 2 minutes to read • Edit Online
Syntax
Public Sub ListReservedUrls(ByRef Application() as String, ByRef UrlString() as String, _
ByRef Account() as String, ByRef AccountSID() as String, _
ByRef length() as Int32, ByRef HRESULT as Int32)
Parameters
Application[]
[out] The applications that have URL reservations.
UrlString[]
[out] The URLs that are reserved.
Account[]
[out] The account names associated with the account for the URL reservations.
AccountSID[]
[out] The account SIDs associated with the account for the URL reservations.
Length
[out] The length of the arrays returned by the method.
HRESULT
[out] Value indicating whether the call succeeded or failed.
Return Value
Returns an HRESULT indicating success or failure of the method call. A value of 0 indicates that the method call
was successful; an error code indicates the call was not successful.
Remarks
Requirements
Namespace: root\Microsoft\SqlSer ver\Repor tSer ver\< InstanceName >\v13\Admin
See Also
MSReportServer_ConfigurationSetting Members
ConfigurationSetting Method -
ListSSLCertificateBindings
11/2/2020 • 2 minutes to read • Edit Online
Syntax
Public Sub ListSSLCertificateBindings(ByVal LCID As Int32, ByRef Application() As String, _
ByRef CertificateHash() As String, ByRef IPAddresses() As String, ByRef Port() As Int32, _
ByRef Errors() As String, ByRef Length As Int32, _
ByRef HRESULT As Int32)
Parameters
LCID
The locale to use for the error messages that are returned.
Application[]
[out] The applications that have certificate bindings.
CertificateHash[]
[out] The hashes for the certificates.
IPAddress[]
[out] The IP address for the applications.
Port[]
[out] The port number stored in the binding in rsreportserver.config.
Errors[]
[out] The descriptions for errors that occurred.
Length
[out] The length of the array returned by the method.
HRESULT
[out] Value indicating whether the call succeeded or failed.
Return Value
Returns an HRESULT indicating success or failure of the method call. A value of 0 indicates that the method call
was successful. A non-zero value indicates that an error has occurred.
Remarks
Requirements
Namespace: root\Microsoft\SqlSer ver\Repor tSer ver\< InstanceName >\v13\Admin
See Also
MSReportServer_ConfigurationSetting Members
ConfigurationSetting Method - ListSSLCertificates
11/2/2020 • 2 minutes to read • Edit Online
Syntax
Public Sub CreateSSLCertificateBinding (ByRef CertificateHash() as String, _
ByRef CertName() as String, ByRef HostName() as String, ByRef Length as Int32, _
ByRef HRESULT as Int32)
Parameters
CertificateHash[]
[out] The certificate hashes.
CertName[]
[out] Names of the certificate.
HostName[]
[out] The host names for the certificates.
Length
[out] Represents the length of the CertificateHash, CertName and HostName arrays.
HRESULT
[out] Value indicating whether the call succeeded or failed.
Return Value
Returns an HRESULT indicating success or failure of the method call. A value of 0 indicates that the method call
was successful; an error code indicates the call was not successful.
Remarks
Requirements
Namespace: root\Microsoft\SqlSer ver\Repor tSer ver\< InstanceName >\v13\Admin
See Also
MSReportServer_ConfigurationSetting Members
ConfigurationSetting Method -
ReencryptSecureInformation
11/2/2020 • 2 minutes to read • Edit Online
Generates a new encryption key and re-encrypts all secure information in the catalog using this new key.
Syntax
Public Sub ReencryptSecureInformation(ByRef HRESULT as Int32, ByRef ExtendedErrors() As String)
Parameters
HRESULT
[out] Value indicating whether the call succeeded or failed.
ExtendedErrors[]
[out] A string array containing additional errors returned by the call.
Return Value
Returns an HRESULT indicating success or failure of the method call. A value of 0 indicates that the method call
was successful. A non-zero value indicates that an error has occurred.
Remarks
The ReencryptSecureInformation method allows the administrator to replace the existing encryption key with a
new key.
When this method is invoked, the report server generates a new encryption key and iterates through all
encrypted content to re-encrypt it with the new encryption key.
Delivery extensions can store secured information in their delivery settings structures. When
ReencryptSecureInformation is called, the report server loads each subscription and the corresponding delivery
extension to re-encrypt information stored in the associated settings.
If this method is run on a computer in a scale-out deployment, each computer in the scale-out deployment will
need to be initialized again.
Requirements
Namespace: root\Microsoft\SqlSer ver\Repor tSer ver\< InstanceName >\v13\Admin
See Also
MSReportServer_ConfigurationSetting Members
ConfigurationSetting Method -
RemoveSSLCertificateBinding
11/2/2020 • 2 minutes to read • Edit Online
Syntax
Public Sub RemoveSSLCertificateBinding(ByVal Application As String, _
ByVal CertificateHash As String, ByVal IPAddress As String, _
ByVal Port As Int32, ByVal Lcid As Int32, _
ByRef [Error] As String, ByRef HRESULT As Int32)
Parameters
Application
The name of application for which the certificate binding should be removed.
CertificateHash
The hash for the certificate.
IPAddress
The IP address for the application.
Port
The TLS port associated with the binding.
lcid
The locale to use for the error messages that are returned.
Error
[out] The description of the error that occurred.
HRESULT
[out] Value indicating whether the call succeeded or failed.
Return Value
Returns an HRESULT indicating success or failure of the method call. A value of 0 indicates that the method call
was successful; an error code indicates the call was not successful.
Remarks
This method removes the specific binding from the rsreportserver.config file and optionally HTTP.SYS.
Requirements
Namespace: root\Microsoft\SqlSer ver\Repor tSer ver\< InstanceName >\v13\Admin
See Also
MSReportServer_ConfigurationSetting Members
ConfigurationSetting Method -
RemoveUnattendedExecutionAccount
11/2/2020 • 2 minutes to read • Edit Online
Deletes the unattended execution account entry from the report server configuration file.
Syntax
Public Sub RemoveUnattendedExecutionAccount(ByRef HRESULT as Int32)
Parameters
HRESULT
[out] Value indicating whether the call succeeded or failed.
Return Value
Returns an HRESULT indicating success or failure of the method call. A value of 0 indicates that the method call
was successful. A non-zero value indicates that an error has occurred.
Requirements
Namespace: root\Microsoft\SqlSer ver\Repor tSer ver\< InstanceName >\v13\Admin
See Also
MSReportServer_ConfigurationSetting Members
ConfigurationSetting Method - RemoveURL
11/2/2020 • 2 minutes to read • Edit Online
Removes a URL reserved for the report server. If there are multiple URLs that need to be removed, this must be
done one by one calling this API.
Syntax
Public Sub RemoveURL(ByVal Application As String, _
ByVal UrlString As String, ByVal Lcid As Int32, _
ByRef [Error] As String, ByRef HRESULT As Int32)
Parameters
Application
The name of application for which to remove the reservation.
URLString
The URL for the reservation.
lcid
The locale to use for the error messages returned.
Error
[out] The description of the error that occurred.
HRESULT
[out] Value indicating whether the call succeeded or failed.
Return Value
Returns an HRESULT indicating success or failure of the method call. A value of 0 indicates that the method call
was successful; an error code indicates the call was not successful.
Remarks
UrlString does not include the Virtual Directory name - the SetVirtualDirectory Method (WMI
MSReportServer_ConfigurationSetting) method is provided for that purpose.
Before calling the ReserveURL method, you must supply a value for the VirtualDirectory configuration property
for the Application parameter. Use the SetVirtualDirectory Method (WMI
MSReportServer_ConfigurationSetting) method to set the VirtualDirectory property.
If a TLS/SSL Certificate was provisioned by Reporting Services and no other URLs need it, it is removed.
This method causes all non-configuration app domains to hard recycle and stop during this operation; app
domains are restarted after this operation complete.
Requirements
Namespace: root\Microsoft\SqlSer ver\Repor tSer ver\< InstanceName >\v13\Admin
See Also
MSReportServer_ConfigurationSetting Members
ConfigurationSetting Method - ReserveURL
11/2/2020 • 2 minutes to read • Edit Online
Syntax
Public Sub ReserveURL(Application as String, _
UrlString as String, Lcid as Int32, _
ByRef [Error] as String, ByRef HRESULT as Int32)
Parameters
Application
The name of application to reserve the URL for.
URLString
The URL for the reservation.
lcid
The locale to use for the error messages returned.
Error
[out] The description of the error that occurred.
HRESULT
[out] Value indicating whether the call succeeded or failed.
Return Value
Returns an HRESULT indicating success or failure of the method call. A value of 0 indicates that the method call
was successful; an error code indicates the call was not successful.
Remarks
UrlString does not include the virtual directory name. The SetVirtualDirectory method is provided for that
purpose.
URL reservations are created for the current windows service account. Changing the windows service account
requires updating all the URL reservations manually.
This method causes all application domains to hard recycle. Application domains are restarted after this
operation is complete.
Requirements
Namespace: root\Microsoft\SqlSer ver\Repor tSer ver\< InstanceName >\v13\Admin
See Also
MSReportServer_ConfigurationSetting Members
ConfigurationSetting Method -
RestoreEncryptionKey
11/2/2020 • 2 minutes to read • Edit Online
Syntax
Public Sub RestoreEncryptionKey(ByRef KeyFile() As Integer, _
ByRef Length As Int32, ByVal Password As String, _
ByRef HRESULT As Int32, ByRef ExtendedErrors() As String)
Parameters
KeyFile[]
[out] An array containing the encrypted encryption key.
Length
[out] The length of the array returned by the method.
Password
A string used to encrypt the encryption key.
HRESULT
[out] Value indicating whether the call succeeded or failed.
ExtendedErrors[]
[out] A string array containing additional errors returned by the call.
Return Value
Returns an HRESULT indicating success or failure of the method call. A value of 0 indicates that the method call
was successful. A non-zero value indicates that an error has occurred.
Remarks
If an entry already exists for the report server in the report server database, it is deleted. The new entry is then
created using the specified encryption key and the report server's public key.
The method is most effective when called after the DeleteEncryptionKey method, which clears the list of
encryption keys.
Requirements
Namespace: root\Microsoft\SqlSer ver\Repor tSer ver\< InstanceName >\v13\Admin
See Also
MSReportServer_ConfigurationSetting Members
ConfigurationSetting Method -
SetDatabaseConnection
11/2/2020 • 2 minutes to read • Edit Online
Sets the report server database connection to a particular report server database.
Syntax
Public Sub SetDatabaseConnection(Server as String, _
DatabaseName as string, CredentialsType as Integer, _
Username as String, Password as String, ByRef HRESULT as Int32)
Parameters
Server
The name of the SQL Server instance that is used to host the report server database.
DatabaseName
The name of the report server database.
CredentialsType
The type of credentials to use for the connection. Values can be:
0 - Windows
1 - SQL Server
2 - Windows Service
UserName
The account name used to connect to the report server database.
Password
The password used to connect to the report server database.
HRESULT
[out] Value indicating whether the call succeeded or failed.
Return Value
Returns an HRESULT indicating success or failure of the method call. A value of 0 indicates that the method call
was successful. A non-zero value indicates that an error has occurred.
Remarks
When the CredentialsType parameter is set to 0 (Windows), the UserName and Password parameters must be
set. The UserName parameter must be in the form "domain\username", and the value must represent a valid
Windows logon.
When the CredentialsType parameter is set to 1 ( SQL Server), the value passed in the UserName parameter
must conform to the requirements of a SQL Server login name.
When the CredentialsType parameter is set to 2 (Windows Service), the report server uses integrated security to
connect to the report server database and the UserName and Password parameters are ignored. The Reporting
Server Web service will use either the ASP.NET account or an application pool's account and the Windows
service account to access the report server database.
When called, the SetDatabaseConnection method encrypts and stores the credentials and database information
in the configuration file for the specified report server.
The SetDatabaseConnection method does not check that the report server can connect to the report server
database using the data specified.
When set for the first time, the ConnectionPoolSize property is set based on the following processors:
ConnectionPoolSize = #Processors * 75.
The SetDatabaseConnection method does not grant permissions to the specified account(s). You must call the
GenerateDatabaseRightsScript method for each account that requires access to the report server database and
run the resulting script.
Requirements
Namespace: root\Microsoft\SqlSer ver\Repor tSer ver\< InstanceName >\v13\Admin
See Also
MSReportServer_ConfigurationSetting Members
ConfigurationSetting Method -
SetDatabaseLogonTimeout
11/2/2020 • 2 minutes to read • Edit Online
Specifies the default timeout value for report server database connections.
Syntax
Public Sub SetDatabaseLogonTimeout(LogonTimeout as Int32, _
ByRef HRESULT as Int32)
Parameters
LogonTimeout
The default time-out value, in seconds, for report server database connections.
HRESULT
[out] Value indicating whether the call succeeded or failed.
Return Value
Returns an HRESULT indicating success or failure of the method call. A value of 0 indicates that the method call
was successful. A non-zero value indicates that an error has occurred.
Requirements
Namespace: root\Microsoft\SqlSer ver\Repor tSer ver\< InstanceName >\v13\Admin
See Also
MSReportServer_ConfigurationSetting Members
ConfigurationSetting Method -
SetDatabaseQueryTimeout
11/2/2020 • 2 minutes to read • Edit Online
Specifies the default time-out value for report server database queries.
Syntax
Public Sub SetDatabaseQueryTimeout(LogonTimeout as Int32, _
ByRef HRESULT as Int32)
Parameters
LogonTimeout
The default timeout value, in seconds, for report server database queries.
HRESULT
[out] Value indicating whether the call succeeded or failed.
Return Value
Returns an HRESULT indicating success or failure of the method call. A value of 0 indicates that the method call
was successful. A non-zero value indicates that an error has occurred.
Requirements
Namespace: root\Microsoft\SqlSer ver\Repor tSer ver\< InstanceName >\v13\Admin
See Also
MSReportServer_ConfigurationSetting Members
ConfigurationSetting Method -
SetEmailConfiguration
11/2/2020 • 2 minutes to read • Edit Online
Configures the e-mail delivery extension used by the report server to send e-mail.
Syntax
Public Sub SetEmailConfiguration(ByVal SendUsingSMTPServer As Boolean, _
ByVal SMTPServer As String, ByVal SenderEmailAddress As String, _
ByRef HRESULT As Int32)
Parameters
SendUsingSMTPServer
A Boolean value indicating whether the server is to use the SMTP server to send email. This value can only be
set to true. Default value is false.
SMTPServer
A string containing the name or IP address of an SMTP server.
SenderEmailAddress
The e-mail address used in the 'From:' field for e-mails sent from the report server.
HRESULT
[out] Value indicating whether the call succeeded or failed.
Return Value
Returns an HRESULT indicating success or failure of the method call. A value of 0 indicates that the method call
was successful. A non-zero value indicates that an error has occurred.
Remarks
When the SendUsingSMTPServer parameter is set to true , the SendUsing entry in the report server
configuration file is set to 1. When SendUsingSMTPServer is set to false , the SendUsing entry is not
configured.
This method does not provide a way for users to set the SendUsing entry in the report server configuration file
to a value other than 1. To configure the report server for anything other than SMTP mail, you must edit the
configuration file manually.
Requirements
Namespace: root\Microsoft\SqlSer ver\Repor tSer ver\< InstanceName >\v13\Admin
See Also
MSReportServer_ConfigurationSetting Members
ConfigurationSetting Method -
SetSecureConnectionLevel
11/2/2020 • 2 minutes to read • Edit Online
Syntax
Public Sub SetSecureConnectionLevel(Level as Integer, _
ByRef HRESULT as Int32)
Parameters
Level
An integer value representing a secure connection level.
HRESULT
[out] Value indicating whether the call succeeded or failed.
Return Value
Returns an HRESULT indicating success or failure of the method call. A value of 0 indicates that the method call
was successful. A non-zero value indicates that an error has occurred.
Remarks
When called, the report server SecureConnectionLevel property is set to the value specified. A value of 0
indicates that TLS is turned off. A value greater than or equal to 1 indicates that TLS is turned on.
When the value is set, the SecureConnectionLevel element in the report server configuration file is changed,
and the URLRoot element in the configuration file is set to use "https://" if the specified Level is greater than
or equal to 1, or "http://" if the specified Level is 0.
In SQL Server 2008 R2, SecureConnectionLevel is made an on/off switch, default value is 0. For any value
greater than or equal to 1 passed through SetSecureConnectionLevel method API, TLS is considered on and the
configuration property SecureConnectionLevel is set accordingly in the rsreportserver.config file. Values of 2
and 3 are still allowed for backward compatibility.
Requirements
Namespace: root\Microsoft\SqlSer ver\Repor tSer ver\< InstanceName >\v13\Admin
See Also
MSReportServer_ConfigurationSetting Members
ConfigurationSetting Method - SetServiceState
11/2/2020 • 2 minutes to read • Edit Online
Turns the Report Server Windows and Web services on and off.
Syntax
Public Sub SetServiceState(ByVal EnableWindowsService As Boolean, _
ByVal EnableWebService As Boolean, ByVal EnableReportManager As Boolean, _
ByRef HRESULT As Int32)
Parameters
EnableWindowsService
A Boolean value indicating the state of the Windows service. A value of true starts the Report Server Windows
service; a value of false stops the Windows service.
EnableWebService
A Boolean value indicating the state of the Reporting Services Web service. A value of true starts the Report
Server Web service; a value of false stops the Web service
EnableReportManager
A Boolean value indicating the desired state of the Report manager.
NOTE
This setting has been deprecated as of SQL Server 2016 Reporting Services Cumulative Update 2. The web portal will
always be enabled. The value will be ignored.
HRESULT
[out] Value indicating whether the call succeeded or failed.
Return Value
Returns an HRESULT indicating success or failure of the method call. A value of 0 indicates that the method call
was successful. A non-zero value indicates that an error has occurred.
Remarks
Requirements
Namespace: root\Microsoft\SqlSer ver\Repor tSer ver\< InstanceName >\v13\Admin
See Also
MSReportServer_ConfigurationSetting Members
ConfigurationSetting Method -
SetUnattendedExecutionAccount
11/2/2020 • 2 minutes to read • Edit Online
Syntax
Public Sub SetUnattendedExecutionAccount(UserName as String, _
Password as String, ByRef HRESULT as Int32)
Parameters
UserName
A Windows account to be used for unattended executions.
Password
The password for the specified account.
HRESULT
[out] Value indicating whether the call succeeded or failed.
Return Value
Returns an HRESULT indicating success or failure of the method call. A value of 0 indicates that the method call
was successful. A non-zero value indicates that an error has occurred.
Remarks
The SetUnattendedExecutionAccount method does not verify whether the report server can log in as the
specified user.
It is not possible to use the SetUnattendedExecutionAccount method to run unattended executions in the context
of the report server Windows service.
Requirements
Namespace: root\Microsoft\SqlSer ver\Repor tSer ver\< InstanceName >\v13\Admin
See Also
MSReportServer_ConfigurationSetting Members
ConfigurationSetting Method - SetVirtualDirectory
11/2/2020 • 2 minutes to read • Edit Online
Syntax
Public Sub SetVirtualDirectory(ByVal Application As String, _
ByVal VirtualDirectory As String, ByVal lcid As Int32, _
ByRef [Error] As String, ByRef HRESULT As Int32)
Parameters
Application
The name of application for which to set the virtual directory.
VirtualDirectory
The name of the virtual directory.
lcid
The locale id for the virtual directory.
Error
[out] The description of the error that occurred.
HRESULT
[out] Value indicating whether the call succeeded or failed.
Return Value
Returns an HRESULT indicating success or failure of the method call. A value of 0 indicates that the method call
was successful; an error code indicates the call was not successful.
Remarks
An application can have only one virtual directory name for all URL reservations.
VirtualDirectory must conform to naming conventions for virtual directories. VirtualDirectory must not be
empty string or blank.
Updates the value of the \Configuration\URLReservations\Application\VirtualDirectory element. Succeeds even
if no URL reservations have been created yet.
Requirements
Namespace: root\Microsoft\SqlSer ver\Repor tSer ver\< InstanceName >\v13\Admin
See Also
MSReportServer_ConfigurationSetting Members
ConfigurationSetting Method -
SetWindowsServiceIdentity
11/2/2020 • 2 minutes to read • Edit Online
Makes the Report Server Windows service run as a specified Windows user, and grants this account sufficient
file system permissions to allow the report server to operate.
Syntax
Public Sub SetWindowsServiceIdentity(UseBuiltInAccount as Boolean, _
Account as String, Password as String, ByRef HRESULT as Int32)
Parameters
UseBuiltInAccount
Indicates whether the specified account is a built-in Windows account.
Account
The Windows account to use to run the Windows service, in the format "DOMAIN\alias".
Password
The password for the account.
HRESULT
[out] Value indicating whether the call succeeded or failed.
Return Value
Returns an HRESULT indicating success or failure of the method call. A value of 0 indicates that the method call
was successful. A non-zero value indicates that an error has occurred.
Remarks
When the UseBuiltInAccount parameter is set to true and the report server is running on Microsoft Windows
2000 or Windows XP, the value of the Name, Domain, and Password parameters are ignored and the Local
system account is used.
When the UseBuiltInAccount parameter is set to true and the report server is running on Windows Server
2003, the Domain and Password properties are ignored, and the name field must contain either
"Builtin\NetworkService" or "Builtin\System" or "Builtin\LocalService".
The SetWindowsServiceIdentity method sets file permissions on files and folders in the report server
installation directory.
The account specified in the Account parameter requires LogonAsSer vice rights in Windows. The method
grants this right to the specified account.
Requirements
Namespace: root\Microsoft\SqlSer ver\Repor tSer ver\< InstanceName >\v13\Admin
See Also
MSReportServer_ConfigurationSetting Members
ConfigurationSetting Method -
SetExtendedProtectionSettings
11/2/2020 • 2 minutes to read • Edit Online
Syntax
Public Sub SetExtendedProtectionSettings( _
ByVal ExtendedProtectionLevel As String, _
ByVal ExtendedProtectionScenario As String, _
ByRef Warnings() As String, _
ByRef Length As Int32, _
ByRef HRESULT As Int32)
Parameters
ExtendedProtectionLevel
Sets the RSWindowsExtendedProtectionLevel in the RSRreportserver.config file. The required value is not case
sensitive.
The following list shows valid values:
"Off | Allow | Require"
ExtendedProtectionScenario
Sets the RSWindowsExtendedProtectionScenario in the RSReportserver.config file. The required value is not case
sensitive.
The following list shows valid values:
"Any" | "Proxy" | "Direct"
Remarks
The RSWindowsExtendedProtectionLevel and the RSWindowsExtendedProtectionScenario properties apply
when the AuthenticationTypes in the RSReportServer.config file include RSWindowNTLM, RSWindowsNegotiate,
or RSWindowsKerberos. Setting these properties affects how users and client software authenticate with a
report server. It is recommended that you read the documentation for extended protection before setting
ExtendedProtectionLevel to either Allow or Require .
To set the ExtendedProtectionLevel, the user must be a member of the BUILTIN\Administrators group on the
report server.
Requirements
Namespace: root\Microsoft\SqlSer ver\Repor tSer ver\< InstanceName >\v13\Admin
See Also
RSWindowsExtendedProtectionScenario Property (WMI MSReportServer_ConfigurationSetting)
RSWindowsExtendedProtectionLevel Property (WMI MSReportServer_ConfigurationSetting)
Extended Protection for Authentication with Reporting Services
RsReportServer.config Configuration File
Errors and Events Reference (Reporting Services)
11/2/2020 • 4 minutes to read • Edit Online
This article provides information about errors and events for SQL Server Reporting Services. The Reporting
Services log files also contain error information. For more information about the types of log files that are
available and how to view the logs, see Reporting Services Log Files and Sources.
Scheduling and
Delivery Processor
EVEN T ID TYPE C AT EGO RY SO URC E DESC RIP T IO N
See also
Monitor Reporting Services Subscriptions
Reporting Services Log Files and Sources
Cause and Resolution of Reporting Services Errors
4/3/2020 • 2 minutes to read • Edit Online
This topic contains cause and resolution information for a number of errors related to Reporting Services. The
error message topics in this section provide an explanation of the error message, possible causes, and any
actions you can take to correct the problem.
In This Section
ERRO R M ESSA GE
rsAccessedDenied - Reporting Services Error The permissions granted to user 'mydomain\myAccount' are
insufficient for performing this operation. (rsAccessDenied)
(ReportingServicesLibrary).
rsInternalError - Reporting Services Error An internal error occurred on the report server. See the error
log for more details.
rsServerConfigurationError - Reporting Services Error The report server has encountered a configuration error.
rrRenderingError - Reporting Services Error An error occurred during rendering of the report.
(rrRenderingError) %1.
Report Server Windows Service (MSSQLServer) 107 Report Server Windows service (MSSQLSERVER) cannot
connect to the report server database.
See Also
Reporting Services Log Files and Sources
Errors and Events Reference (Reporting Services)
rsAccessedDenied - Reporting Services error
3/31/2021 • 2 minutes to read • Edit Online
The Reporting Services error rsAccessedDenied occurs when a user does not have permission to perform an
action. For example, they don't have a role assignment that allows them to open a report, or they didn't open
their browser with the required permissions.
If the error occurred while accessing the report server directly through a URL, the exception is mapped to
an HTTP 401 error.
If the error occurred while using the web portal, the exception is typically mapped to an HTTP 401 error,
or other defined HTML error page.
If the error occurred during a scheduled operation, subscription, or delivery, the error will appear in the
report server log file only.
Details
DETA IL VA L UE
Event ID rsAccessedDenied
User action
Permission to access report server content and operations are granted through role assignments. On a new
installation, only local administrators have access to a report server. To grant access to other users, a local
administrator must create a role assignment that specifies a domain user or group account, one or more roles
that define the tasks the user can perform, and a scope (usually the Home folder or root node of the report
server folder hierarchy). You can use the web portal to create role assignments. For more information, see Role
Assignments .
This error is also caused by local administration of the report server. For more information, see Configure a
Native Mode Report Server for Local Administration (SSRS).
See also
Role Assignments
Granting Permissions on a Native Mode Report Server
Roles and Permissions (Reporting Services)
rsInternalError - Reporting Services Error
11/2/2020 • 2 minutes to read • Edit Online
Details
C AT EGO RY VA L UE
Event ID rsInternalError
Message Text An internal error occurred on the report server. See the error
log for more details.
Explanation
This is a generic error message that is often followed by a more descriptive error that provides more detail.
Internal errors are uncommon. If you get this error, more information is available in report server trace logs. In
addition, if you are running as local administrator on the same computer on which the error occurs, you can
view the call stack for more information.
User Action
To determine the specific cause for this message, review the report server log files, which are located at
\Microsoft SQL Server\MSRS12.<instancename >\Reporting Services\LogFiles. For more information, see
Reporting Services Log Files and Sources.
To view the call stack, right-click the page on which the error occurs and point to View Source . Viewing the call
stack requires administrator permissions on the same computer on which the error occurs.
If there is no additional information available, you can try your request again.
Internal-Only
See Also
Start and Stop the Report Server Service
rsModelGenerationError - Reporting Services Error
11/2/2020 • 2 minutes to read • Edit Online
Details
C AT EGO RY VA L UE
Event ID rsRenderingError
Explanation
The report model could not be generated. In Microsoft SQL Server2005 SP1 and earlier versions, this error is
most likely displayed when the System.Data.DataSet object cannot handle a table or relationship within the
database schema, such as when, for example, two foreign keys are defined on the same column within a table.
User Action
To determine the specific reason that caused this message to appear, review the report server log files, which are
located at \Microsoft SQL Server\<SQL Server Instance>\Reporting Services\LogFiles.
Internal-Only
rsProcessingError - Reporting Services Error
11/2/2020 • 6 minutes to read • Edit Online
Details
C AT EGO RY VA L UE
Event ID rsProcessingError
Explanation
One or more errors were encountered while publishing, processing, previewing locally, viewing from the report
server, or creating a subscription for a report. This error message indicates at least one error was detected.
Possible Causes
Possible causes include:
A processing error occurred on the report server.
A processing error occurred during local report processing when previewing a report.
A group expression evaluated to an incorrect data type.
A filter definition specified two expressions that evaluated to data types that could not be compared.
An expression referenced a non-existing field in the Fields collection.
An expression included an aggregate function call with an invalid or conflicting scope.
An expression referenced a non-existing parameter in the Report Parameters collection.
A custom assembly or a Reporting Services assembly that was incorrectly deployed failed to load.
A parameter that has the Nullable property set to False has detected a null value in the parameter.
An expression for the Hidden property of a data region contains an error: Object reference not set to an
instance of an object.
An expression included an invalid function call or syntax error.
User Action
Finding More Information
Do one or more of the following actions:
If you are viewing the report from the report server or if you are viewing the report as a subscription,
look at the entire text of the error message. Additional information is provided in the expanded text.
If you are authoring a report in Report Designer and see this error when you preview or publish the
report, additional information is provided in the Error List window.
If you are authoring a report in Report Designer Preview, look at the entire text of the error message.
Additional information is provided in the expanded text.
If you are viewing a report on the report server, and if you are running as local administrator on the
report server, you can view the call stack if you right-click the page and select View Source . Additional
information is provided in the call stack.
If you are running as local administrator on the report server, search the log file for
ReportProcessingException . Log entries contain more information. The report server log file is typically
located at <drive>:\Program Files\Microsoft SQL Server\MSRS12.MSSQLSERVER\Reporting
Services\LogFiles\ReportServerService__datetimestamp.log. For more information, see Reporting
Services Log Files and Sources.
Failed to Load Expression Host Assembly
Custom assemblies must have strong name signing and the attribute AllowPartiallyTrustedCallers set. For more
information, see Using Custom Assemblies with Reports and Understanding Security Policies.
A Built-in Global Name Does Not Exist
Check the spelling in expressions. Built-in globals, parameters, and field names are case-sensitive. In the
expression causing the error, check that the name actually exists in the report and that it is spelled correctly. For
more information, see Built-in Collections in Expressions (Report Builder and SSRS).
Parameter Properties and Null
A multivalue parameter cannot be Null. For more information, see Report Parameters (Report Builder and
Report Designer).
Main Report with Subreport Could Not Be Processed
A report with subreports must be processed by the same version of the Reporting Services report processor.
When upgrading reports to the current version of the report definition schema, the main report and the
subreports may or may not be updated at the same time. If the version is not compatible between a report and
its subreports, the following message is displayed: "Subreport could not be processed."
You must change either the main report or the subreports so that all the reports can be processed by the same
version of the report processor. For information about why a report fails to upgrade, see Upgrade Reports.
Verify Function Calls are Visual Basic and Not SQL
You can use SQL functions in query text on a relational database. You cannot use Visual Basic functions in query
text.
In Reporting Services, expressions can use Visual Basic functions, System.Math or System.String functions, fully
qualified .NET Framework functions, or custom functions that you provide in custom code or a custom assembly.
You cannot use SQL functions in an expression.
Verify that the function calls made in the query and in the expressions are valid.
Cannot Compare Data Types for a Filter
In a filter equation, the filter expression that defines what to filter on and the filter value must be the same data
type in order to be compared. If you see one of the following errors, modify the field expression or the filter
value so that the data types match:
The processing of <report item type> for the <report item name> cannot be performed. Cannot
compare data of types <type> and <type>. Please check the data type returned by the <report item
name>.
Failed to evaluate the <property name>.
Failed to evaluate the <property name>. It references a dataset field which has an error: <error string>.
For more information, see Filter, Group, and Sort Data (Report Builder and SSRS).
Invalid or Conflicting Scope Specification in an Aggregate Function Call
When you include aggregate function calls to an expression in a Tablix cell, the report processor evaluates the
expression in the scope of the innermost groups to which the cell belongs.
You can also pass the name of a specific scope to an aggregate function. Scope can refer to the name of a
dataset, a data region, or the name of a scope higher on the data hierarchy. This applies to the following
messages:
The <report item type> '<report item name>' has an invalid scope "<scope name>". The scope must be
the current scope, or contained within the current scope.
The <property name> expression for the <report item type> '<report item name>' has a scope
parameter that is not valid for an aggregate function. The scope parameter must be set to a string
constant that is equal to either the name of a containing group, the name of a containing data region, or
the name of a dataset.
For aggregate functions that calculate running totals (Previous , RunningValue , or RowNumber ), you can
specify a scope parameter that is either a row group name or a column group name, but not both. This applies
to the following error message:
Previous , RunningValue or RowNumber aggregate functions used in the data cells of the <report item
type> '<report item name>' refer to grouping scopes in both the columns and rows of the <report item
type>. The scope parameters of all Previous , RunningValue and RowNumber aggregate functions within
a <report item type> can refer to row groupings or data column groupings, but not both.
For more information, see Expression Scope for Totals, Aggregates, and Built-in Collections (Report Builder and
SSRS) and Built-in Collections in Expressions (Report Builder and SSRS).
Default Dataset Scope for a Top Level Text Box
Do not use a default scope for a text box added to the report design surface when the report has more than one
dataset. Use an expression that includes the name of the dataset as the scope, and an aggregate function. For
example, =First(Fields!FieldName.Value, "DataSet2") .
See Also
Expressions (Report Builder and SSRS)
Aggregate Functions Reference (Report Builder and SSRS)
Expression Examples (Report Builder and SSRS)
Report Datasets (SSRS)
Commonly Used Filters (Report Builder and SSRS)
Dataset Fields Collection (Report Builder and SSRS)
Custom Code and Assembly References in Expressions in Report Designer (SSRS)
Parameters Collection References (Report Builder and SSRS)
rsServerConfigurationError - Reporting Services
Error
11/2/2020 • 2 minutes to read • Edit Online
Details
C AT EGO RY VA L UE
Event ID rsServerConfiguration
Explanation
This is a general purpose error that occurs when either the report server or a report authoring tool has invalid
configuration settings. The error is usually accompanied by a second message that states the actual cause of the
error.
The following list summarizes possible causes:
The RSReportServer.config or RSReportDesigner.config file cannot be found or read.
XML elements in either configuration file are missing or invalid.
Values for one or more XML elements are missing or invalid.
Registry settings are invalid.
User Action
If this error began to occur after you manually edited a configuration file, remove your changes and enter the
previous value, or restore a previous version if you have a backup.
To review additional error message information that accompanies the rsSer verConfiguration error, review the
report server trace log files, which are located at \Microsoft SQL Server\MSRS12.<instancename >\Reporting
Services\LogFiles. For more information, see Reporting Services Log Files and Sources.
Internal-Only
See Also
Reporting Services Configuration Files
Modify a Reporting Services Configuration File (RSreportserver.config)
rrRenderingError - Reporting Services Error
11/2/2020 • 2 minutes to read • Edit Online
Details
C AT EGO RY VA L UE
Event ID rrRenderingError
Explanation
This message is returned when Reporting Services cannot render or export the report.
A message that indicates that the size is not supported is typically caused when the specified RDL page size is
not valid. Specify a valid RDL page size and then try again.
A message that indicates that an RDL size measurement is not supported is typically caused when an
unsupported unit type is specified. Valid unit types are cm, in, mm, pc, and pt. Specify a valid unit type and then
try again.
A message that indicates that a negative size is not supported is typically caused when a negative measurement
for the page size, for example -5 cm, is specified. Specify a positive number for the page size and then try again.
A message that indicates that an RDL size is specified out of range is typically caused when a measurement for
the page size is outside of the valid page margin size. Specify a measurement for the page size that is within the
valid page margin sizes.
A message that indicates that a color specified is not supported is typically caused when a color specified in the
RDL is not valid. Choose a color supported by RDL and then try again.
A message that indicates that the action label is only optional when using a single action and that adding
multiple actions requires labels for each action is typically caused when an action label is specified and it is not
valid. Specify a valid action label for each action.
A message that indicates the style argument has to be of a specific type is typically caused when an incorrect
style value for the data type is specified. The RDL specification identifies the valid types that you can use in the
style values of different RDL elements. For example, an incorrect style value for background color is "2pt" and
incorrect value for height is "true". Specify a correct value and then try again.
A message that indicates that the border style is not supported is typically caused when the border style
specified is not valid. Specify a supported border style and then try again.
A message that indicates that the image mime type is not supported is typically caused when the specified
mime type for an image report item is not valid. Specify a supported mime type for the report item and then try
again.
A message that indicates that the number of rows exceeds the maximum possible rows per sheet is typically
caused when the number of rows in an Excel worksheet is exceeded. Excel supports up to 65,000 rows.
A message that indicates that the number of columns exceeds the maximum possible columns per sheet is
typically caused when the number of columns in an Excel worksheet is exceeded.
User Action
Internal-Only
Report Server Windows Service (MSSQLServer) 107
11/2/2020 • 2 minutes to read • Edit Online
Details
C AT EGO RY VA L UE
Event ID 107
Explanation
The SQL Server Report Server service cannot connect to the report server database. This error occurs during a
service restart if a connection to the report server database cannot be established. Conditions under which this
error occurs include the following:
SQL Server Database Engine service is not running when the Report Server service starts.
The connection to the Database Engine service fails because remote connections or the TCP/IP protocol is
not enabled.
The report server database is not configured correctly.
The service account is not configured correctly, or the account no longer has permissions on the report
server database. This can occur if you do not use the Reporting Services Configuration tool to set up the
account or the report server database.
User Action
Start the Database Engine service if it is not running and check that remote connections are enabled for TCP/IP
protocol.
Use the Reporting Services Configuration tool to configure the report server database and service account.
Internal-Only
See Also
Configure the Report Server Service Account (Report Server Configuration Manager)
Report Server Configuration Manager (Native Mode)
Start and Stop the Report Server Service
Troubleshoot Reporting Services Report Issues
3/22/2021 • 2 minutes to read • Edit Online
This topic helps you troubleshoot problems with Reporting Services report design, previewing a report,
publishing a report to a report server in native mode or SharePoint mode, viewing a report on the report server,
or exporting a report to a different file format.
For more information, see Reporting Services log files and sources.
In order to determine specifically whether report waits are due to data retrieval, report processing, or report
rendering, use the Execution Log. For more information, see Report Server ExecutionLog and the ExecutionLog3
view.
View the Call Stack for Report Processing Error Messages on the
Report Server
When you view a published report in Report Manager, you might see an error message that represents a
general processing or rendering error. To see more information, you can view the call stack.
To view the call stack, log on to the report server by using the local administrator credentials, right-click the
Report Manager page, and then click View Source . The call stack provides detailed context for the error
message.
<system.diagnostics>
<switches>
<add name="Microsoft.ReportDesigner.ReportPreviewStore.ForceCache" value="1" />
</switches>
</system.diagnostics>
As long as the value is set to 1, only cached report data is used. Be sure to remove this section when you have
finished debugging the report.
See Also
Errors and events (Reporting Services)
Use this topic to troubleshoot problems that you encounter when working with Reporting Services report
subscriptions, schedules, and delivery.
Log information
The Subscription page in Reporting Services includes a status of a subscription but if there is a problem with the
subscription, the detailed information is in the Reporting Services logs.
Trace logs: The trace logs are text files written to:
\Program Files\Microsoft SQL Server\MSRS13.MSSQLSERVER\Reporting Services\LogFiles
Unable to Send Reports Using E-Mail With Windows Server 2003 and
POP3
If you are running an e-mail application with Post Office Protocol version 3 (POP3) on Microsoft Windows
Server 2003, you might not be able to send reports using the local POP3 server. If you configure the report
server to send e-mail with the local POP3 Server and create a subscription that sends a report, you might
receive the following error message:
Failure sending mail: <error message>
where <error message> is replaced with additional error message information returned from Collaboration
Data Objects (CDO).
To resolve this problem:
Set the value of the SendUsing element in the Rsrepor tser ver.config file to 1.
Clear the value of the SMTPServer property so that it is empty. You will also need to provide a value for the
SMTPServerPickupDirectory property.
For more information about using a local SMTP service for e-mail delivery of reports, see Configuring a Report
Server for E-Mail Delivery.
Failure sending mail: The server rejected the sender address. The
server response was: 454 5.7.3 Client does not have permission to
submit mail to this server
This error occurs when security policy settings on the SMTP server allow only authenticated users to submit
mail for subsequent delivery. If the SMTP server does not accept e-mail submissions from anonymous users,
see the system administrator about getting permission to use the server.
This error can also occur when you specify an Exchange server name as the SMTPServer. To use an Exchange
server for e-mail delivery, you must specify the name of the SMTP gateway that is configured for your
Exchange server. See your Exchange administrator for this information.
Report design issues may occur when you are creating the report layout in Design view in an report authoring
application. Use this topic to help troubleshoot these issues.
Why does my text box show only a single value and not repeat for
every row?
A text box with a dataset field reference renders only once and displays the first value in the dataset.
Text Box Parent is the Repor t Body
A text box added directly to the design surface can only display an aggregate value for a dataset.
To verify the parent container of a text box, select the text box, and in the Properties pane, scroll to Parent .
If you want text boxes that show each value in a dataset, use a data region, such as a table or matrix. By default,
each cell in a table or matrix contains a text box. Drag dataset fields to each cell.
NOTE
Including [&TotalPages] in the page header or page footer can have consequences for report processing. For more
information, see Troubleshooting Reports: Reports Exported to a Specific File Format.
Troubleshoot processing of Reporting Services Reports.
See Also
Troubleshoot Data Retrieval issues with Reporting Services Reports
Troubleshoot Reporting Services Subscriptions and Delivery
The first step during report processing is to retrieve the report data for each dataset by running the dataset
query. When you preview a report locally, your data source connections and credentials must use sufficient
permissions to retrieve the data to your computer. When you run a report on the report server, the data source
connections and credentials must use sufficient permissions to retrieve the data on the report server. Use this
topic to help troubleshoot issues about report data retrieval.
NOTE
Permissions that you use to retrieve data for previewing a report may be different than permissions that are needed to
retrieve data after a report is published to a report server.
See Also
Errors and events (Reporting Services)
After the report data is retrieved, the report processor combines the data and layout information. Each report
item property that has an expression is evaluated in the context of the combined data and layout. Use this topic
to help troubleshoot these issues.
After the report data and layout information is combined, the compiled report is sent to a report renderer. For
example, when you preview a report locally, you are using the HTML renderer to view the compiled report. Use
this topic to help troubleshoot issues specific to report rendering.
NOTE
When a report has no page breaks, the entire report must be processed before you can view the first page.
When the data source is configured for a Microsoft SharePoint List connection type:
An error occurred during client rendering.
An error has occurred during report processing.
Query execution failed for dataset 'DataSet1'.
The request failed with HTTP status 401: Unauthorized.
To work around this issue: Modify the data source to use stored credentials instead of Windows credentials.
This issue applies to: Browsers configured to prompt for credentials.
See Also
Errors and events (Reporting Services)
Troubleshoot Data Retrieval issues with Reporting Services Reports
Troubleshoot Reporting Services Subscriptions and Delivery
When you publish or upload a report to a report server configured in native mode, you might see issues that
are specific to viewing reports on the report server. Use this topic to help troubleshoot these issues.
Images and charts do not load when I use Run As and a browser to
run my report.
When you run Report Manager under a different security context, you might not see all report items in a report.
Insufficient Permissions on Internet Temporary File Folders
In some circumstances, when you use Report Manager to view published reports that include charts or images,
you might not see them. For example, when you use the Microsoft Windows Run As command to view a report
using a different security context, you might not have permissions to the folder where the report server caches
charts and images as temporary Internet files.
Verify that you have permission to access the folders that contain the cached files.
See Also
Browser Support for Reporting Services and Power View
Errors and events (Reporting Services)
Troubleshoot Data Retrieval issues with Reporting Services Reports
Troubleshoot Reporting Services Subscriptions and Delivery
Use this topic to troubleshoot problems that you experience when connecting to a report server. This topic also
provides information about "Unexpected error" messages. For more information about data source
configuration and configuring report server connection information, see Specify Credential and Connection
Information for Report Data Sources and Configure a Report Server Database Connection (Report Server
Configuration Manager).
To resolve the error so that you can connect using the WMI provider, you should run Setup to repair Reporting
Services, or reinstall Reporting Services.
IMPORTANT
Use caution if you turn off UAC to work around this issue, and turn on UAC immediately after you grant database access
in SharePoint Central Administration. If you do not want to turn off UAC, use the second workaround provided in this
section. For information about UAC, see the Windows product documentation.
2. In the second workaround, you can manually grant database access to the Reporting Services service account or
accounts. You can use the following procedure to grant access by adding the Reporting Services service account or
accounts to the correct Windows group and database roles. This procedure applies to the Report Server service account
in SQL Server 2008 Reporting Services; if you are running SQL Server 2005 Reporting Services, perform the procedure for
the Report Server Windows service account and the Report Server Web service account.
See Also
Browser Support for Reporting Services and Power View
Errors and events (Reporting Services)
Troubleshoot Data Retrieval issues with Reporting Services Reports
Troubleshoot Reporting Services Subscriptions and Delivery
APPLIES TO: ✔
️ SQL Server Reporting Services (2017 and later) ❌ Power BI Report Server
Microsoft SQL Server 2017 Reporting Services support Representational State Transfer (REST) APIs. The REST
APIs are service endpoints that support a set of HTTP operations (methods), which provide create, retrieve,
update, or delete access for resources within a report server.
The REST API provides programmatic access to the objects in a SQL Server 2017 Reporting Services report
server catalog. Examples of objects are folders, reports, KPIs, data sources, datasets, refresh plans, subscriptions,
and more. Using the REST API, you can, for example, navigate the folder hierarchy, discover the contents of a
folder, or download a report definition. You can also create, update, and delete objects. Examples of working with
objects are upload a report, execute a refresh plan, delete a folder, and so on.
NOTE
If you're interested in viewing or deleting personal data, please review Microsoft's guidance in the Windows Data Subject
Requests for the GDPR site. If you're looking for general information about GDPR, see the GDPR section of the Service
Trust portal.
API documentation
A modern REST API calls for modern API documentation. The REST API is built on the OpenAPI specification
(also called the swagger specification) and documentation is available on SwaggerHub. Beyond documenting
the API, SwaggerHub helps generate a client library in the language of choice - JavaScript, TypeScript, C#, Java,
Python, Ruby, and more.
Next steps
Review the available APIs over on SwaggerHub.
Samples are available on GitHub. The sample includes an HTML5 app built on TypeScript, React, and webpack
along with a PowerShell example.
More questions? Try asking the Reporting Services forum
Integrating Reporting Services into Applications
3/5/2021 • 2 minutes to read • Edit Online
APPLIES TO: ✔ ️ SQL Server Reporting Services (2016) ❌ SQL Server Reporting Services (2017) ❌ Power BI
Report Server
Reporting Services is an open and extensible reporting platform designed to provide developers with a
comprehensive set of APIs for developing solutions.
NOTE
Starting with SQL Server 2017 Reporting Services, REST API access is available for developing solutions. SOAP API access
has been deprecated. For more information, see Develop with the REST APIs for Reporting Services.
There are three options for integrating Reporting Services into custom applications: the Report Server Web
service, also known as the Reporting Services SOAP API, the Report Viewer controls for Microsoft Visual Studio,
and URL access. Each option provides a different approach for integrating Reporting Services into your
applications.
URL access
URL access is another option for integrating report viewing into your applications if the Report Viewer controls
are not an option. In addition, URL access is useful for sending links to reports to users via e-mail.
In this section
Integrating Reporting Services Using SOAP
Describes how to integrate Reporting Services report navigation and management into your existing business
applications using the Report Server Web service.
Integrating Reporting Services Using the Report Viewer Controls
Describes how to integrate report viewing into your existing applications using the Report Viewer controls.
Integrating Reporting Services Using URL Access
Describes how to integrate Reporting Services report navigation into your existing business applications using
URL access.
Next steps
For deciding on using URL access or the SOAP APIs, see Choosing between URL access and SOAP in Reporting
Services.
For information on the SQL Server 2017 Reporting Services REST API, see Develop with the REST APIs for
Reporting Services.
More questions? Try asking the Reporting Services forum
Integrate Reporting Services Using the Report
Viewer Controls - Get Started
11/2/2020 • 4 minutes to read • Edit Online
The Report Viewer controls can be used to integrate Reporting Services RDL reports into WebForms and
WinForms apps. For detailed information about recent updates see the changelog.
2. Install the Report Viewer control NuGet package via the NuGet package manager console .
Install-Package Microsoft.ReportingServices.ReportViewerControl.WebForms
3. Add a new .aspx page to the project and register the Report Viewer control assembly for use within the
page.
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title></title>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager runat="server"></asp:ScriptManager>
<rsweb:ReportViewer ID="ReportViewer1" runat="server" ProcessingMode="Remote">
<ServerReport ReportServerUrl="https://AContosoDepartment/ReportServer"
ReportPath="/LatestSales" />
</rsweb:ReportViewer>
</form>
</body>
</html>
Sample .aspx
<!DOCTYPE html>
Add the Report Viewer control to a new Windows Forms project
1. Create a new Windows Forms Application or open an existing project.
You can use .NET Framework 4.6 or any newer version.
2. Install the Report Viewer control NuGet package via the NuGet package manager console .
Install-Package Microsoft.ReportingServices.ReportViewerControl.WinForms
3. Add a new control from code or add the control to the toolbox.
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
</head>
<body>
<form id="form1" runat="server">
<div style="height:100vh;">
<asp:ScriptManager runat="server"></asp:ScriptManager>
<rsweb:ReportViewer ID="ReportViewer1" runat="server" ProcessingMode="Remote" Height="100%"
Width="100%">
<ServerReport ReportServerUrl="https://test/ReportServer" ReportPath="/testreport" />
</rsweb:ReportViewer>
</div>
</form>
</body>
</html>
NOTE
The NuGet package will be installed in the solution directory of your project. The path to the dll will be similar to
the following:
{Solution Directory}\packages\Microsoft.ReportingServices.ReportViewerControl.Winforms.
{version}\lib\net40
or
{Solution Directory}\packages\Microsoft.ReportingServices.ReportViewerControl.WebForms.
{version}\lib\net40
.
6. The new control should display within the toolbox. You can then move it to another tab within the toolbox
if you wish.
Common issues
The viewer control is designed for modern browsers. The control may not work as expected if the browser
renders the page using IE compatibility mode. Intranet sites may require a meta tag to override default browser
behavior.
NuGet.org pages
Here are links to articles on the NuGet.org site about the WebForm and WinForm versions of the Report Viewer
control:
Microsoft.ReportingServices.ReportViewerControl.WebForms
https://www.nuget.org/packages/Microsoft.ReportingServices.ReportViewerControl.WebForms/
Microsoft.ReportingServices.ReportViewerControl.Winforms
https://www.nuget.org/packages/Microsoft.ReportingServices.ReportViewerControl.WinForms/
Forum feedback
Let the team know about issues on the Reporting Services forums.
See also
Data collection in the Report Viewer control
Integrate Reporting Services Using Report Viewer
Controls
12/3/2019 • 2 minutes to read • Edit Online
Microsoft Visual Studio 2015 provides two Report Viewer controls for integrating report viewing functionality
into your applications. There is a version for Windows Forms-based applications and one for Web Forms
applications. Each control provides similar functionality but each is designed to target their individual
environments. Both controls can process reports that have been deployed to a report server (remote processing
mode) or have been copied to a computer where Microsoft SQL Server Reporting Services has not been
installed (local processing mode).
The Report Viewer control does not include built-in support for dynamically adapting to different devices with
different screen resolutions.
NOTE
The list of extensions available to the Report Viewer control when it is running in remote processing mode depends on
the edition of Reporting Services that is installed on the report server.
See Also
Integrating Reporting Services into Applications
Using the WebForms Report Viewer Control
Using the WinForms Report Viewer Control
Use the WebForms ReportViewer Control
3/12/2020 • 10 minutes to read • Edit Online
To view reports deployed to a report server or reports that exist on the local file system, you can use the
WebForms ReportViewer control to render them in a Web application.
NOTE
Impersonation is disabled by default.
C#
VB.NET
Imports Microsoft.Reporting.WebForms
End If
End Sub
End Class
1. Open the Web Site that the report will be added to.
2. From the Website menu, select Add Existing Item .
3. Browse to the location where the AdventureWorks Report Samples project is installed.
The default location is C:\Program Files\Microsoft SQL Server\100\Samples\Reporting Services\Report
Samples\AdventureWorks Sample Reports.
4. Select the Sales Order Detail.rdl file and click the Add button.
The Sales Order Detail.rdl file should now be part of the project.
5. Right-click the Sales Order Detail.rdl file in Solution Explorer and select Rename . Rename the report to
Sales Order Detail.rdlc and press ENTER.
If Solution Explorer is not visible, you can open it from the View menu by selecting Solution Explorer.
The following code example will create a dataset for the sales order data and then render the Sales Order Detail
report in local mode.
C#
localReport.DataSources.Add(dsSalesOrder);
localReport.DataSources.Add(dsSalesOrderDetail);
SqlCommand command =
new SqlCommand(sqlSalesOrder, connection);
command.Parameters.Add(
new SqlParameter("SalesOrderNumber",
salesOrderNumber));
salesOrderAdapter.Fill(dsSalesOrder, "SalesOrder");
}
SqlCommand command =
new SqlCommand(sqlSalesOrderDetail, connection);
command.Parameters.Add(
command.Parameters.Add(
new SqlParameter("SalesOrderNumber",
salesOrderNumber));
salesOrderDetailAdapter.Fill(dsSalesOrder,
"SalesOrderDetail");
}
}
VB.NET
Imports System.Data
Imports System.Data.SqlClient
Imports Microsoft.Reporting.WebForms
localReport.DataSources.Add(dsSalesOrder)
localReport.DataSources.Add(dsSalesOrderDetail)
End If
End Sub
salesOrderAdapter.Fill(dsSalesOrder, "SalesOrder")
End Using
End Sub
End Sub
salesOrderDetailAdapter.Fill(dsSalesOrder, _
"SalesOrderDetail")
End Using
End Sub
End Class
See Also
Integrating Reporting Services Using the ReportViewer Controls
Data collection in ReportViewer Control 2016
Use the WinForms ReportViewer Control
3/12/2020 • 10 minutes to read • Edit Online
To view reports that have been deployed to a report server or reports that exist on the local file system, you can
use the WinForms ReportViewer control to render them in a Windows application.
3. Drag the ReportViewer control onto the design surface of the Windows Form.
A ReportViewer control named reportViewer1 is added to the form.
After the control is added to the form, the Repor tViewer Tasks smart tag appears and prompts you to select a
report.
If the report you wish to view has been deployed to a report server, select the <Ser ver Repor t> option from
the Choose Repor t drop-down list. After the <Ser ver Repor t> option is selected, two additional properties
appear: Repor t Ser ver Url and Repor t Path . The Repor t Ser ver Url is the address to the report server and
the Repor t Path is the full path to the report to render.
If the report you wish to view a report in local mode, select either the Design a new repor t option to launch
the report designer or select a report that is already part of the existing project.
VB.NET
Imports Microsoft.Reporting.WinForms
End Class
NOTE
Renaming the file extension from rdl to rdlc will allow you to edit the report using report designer for
MicrosoftVisual Studio 2005.
6. After the report has been renamed, select the file and locate the Properties window. Change the Copy to
Output Director y property to Copy if Newer .
If the Proper ties window is not visible, you can open it from the View menu by selecting Proper ties
Window .
The following code example will create a dataset for the sales order data and then render the Sales Order Detail
report in local mode.
C#
localReport.DataSources.Add(dsSalesOrderDetail);
SqlCommand command =
new SqlCommand(sqlSalesOrder, connection);
command.Parameters.Add(
new SqlParameter("SalesOrderNumber",
salesOrderNumber));
salesOrderAdapter.Fill(dsSalesOrder, "SalesOrder");
}
SqlCommand command =
new SqlCommand(sqlSalesOrderDetail, connection);
command.Parameters.Add(
new SqlParameter("SalesOrderNumber",
salesOrderNumber));
salesOrderDetailAdapter.Fill(dsSalesOrder,
"SalesOrderDetail");
}
}
}
VB.NET
Imports System.Data.SqlClient
Imports System.Data.SqlClient
Imports Microsoft.Reporting.WinForms
localReport.ReportEmbeddedResource = _
"ReportViewerIntro.Sales Order Detail.rdlc"
localReport.DataSources.Add(dsSalesOrder)
localReport.DataSources.Add(dsSalesOrderDetail)
End Sub
salesOrderAdapter.Fill(dsSalesOrder, "SalesOrder")
End Using
End Sub
salesOrderDetailAdapter.Fill(dsSalesOrder, _
"SalesOrderDetail")
End Using
End Sub
End Class
See Also
Integrating Reporting Services Using the ReportViewer Controls
Integrate Reporting Services Using ReportViewer
Controls - Data Collection
3/5/2021 • 2 minutes to read • Edit Online
Anonymous usage data is collected by the control to better understand how customers make use of the product.
Usage data enables future development to be focused on improvements that are most relevant to customers.
An explanation of the data collection and usage practices of Microsoft SQL Server and Report Viewer are
available in the privacy statement.
See also
Using the WebForms Report Viewer Control
Integrating Reporting Services Using the Report Viewer Controls
Support for Report Viewer current branch versions
3/5/2021 • 2 minutes to read • Edit Online
Windows Server 2016 and later Windows Server 2016 and later
Next steps
For more information about the Report Viewer control, see Get started integrating Reporting Services using the
Report Viewer controls.
Release Notes for Report Viewer controls for
WebForms and WinForms of SSRS
3/5/2021 • 2 minutes to read • Edit Online
These are the release notes for the Report Viewer controls of WebForms and WinForms, related to SQL Server
Reporting Services (SSRS).
For the release notes for SSRS, see Release notes for SQL Server Reporting Services (SSRS) 2017 and later.
150.1427.0
C H A N GE DESC RIP T IO N DETA IL S
Bug Fixes Fixed an issue with links not looking visited after being
clicked.
150.1404.0
C H A N GE DESC RIP T IO N DETA IL S
Bug Fixes Fixed an issue with tab ordering of the toolbar in WebForms.
150.1400.0
C H A N GE DESC RIP T IO N DETA IL S
Bug Fixes Fixed an issue where the viewer control would not load in
design mode.
150.1358.0
C H A N GE DESC RIP T IO N DETA IL S
150.1357.0
C H A N GE DESC RIP T IO N DETA IL S
Accessibility fix for tool bar to narrate only for active items
150.900.148
C H A N GE DESC RIP T IO N DETA IL S
The WebForms Report Viewer Control. Supports embedding in RTL pages (pages that change the
text flow using the direction: rtl; css property).
The WinForms Report Viewer Control. Fix for printing when an app is running in a High DPI mode.
Next steps
Getting started with the Report Viewer controls.
More questions? Try the Reporting Services forum.
Choose between URL access and SOAP in
Reporting Services
3/5/2021 • 3 minutes to read • Edit Online
APPLIES TO: ✔ ️ SQL Server Reporting Services (2016) ❌ SQL Server Reporting Services (2017) ❌ Power BI
Report Server
Integrating Reporting Services into custom applications can be challenging. The challenge, however, is not the
complexity of the programming model or APIs, but the many possible ways to integrate it. Reporting Services
was designed from the ground up as a developer platform, and as such, it is built with programming flexibility in
mind. With flexibility comes the need to make important decisions about integrating Reporting Services report
navigation and management functionality into your existing business applications.
NOTE
Starting with SQL Server 2017 Reporting Services, REST API access is available for developing solutions. SOAP API access
has been deprecated. For more information, see Develop with the REST APIs for Reporting Services.
There are two ways to integrate Reporting Services into custom applications: URL access and the Reporting
Services SOAP API. Which to use depends on several factors. In some cases, integrating Reporting Services into
your custom business applications requires the use of both URL access and SOAP. You should ask the following
questions:
What type of enterprise reporting functionality do you or your end users require? Do you need a simple
way to launch and navigate reports, or do you need more advanced report server management features
from your custom business solution?
In which type of environment do your users typically operate? Is your business application a Web
application or a Windows application? How easily can your end-users switch from a Win32 environment
to a Web environment? What type of control do you need over the environment in which reports are run
and managed?
Once you have answered the previous questions, you can decide how to integrate Reporting Services into your
IT infrastructure. Typically, URL access is preferred for viewing and navigating individual reports. URL access
enables you to freely and quickly navigate reports without the overhead of the Web service. In addition, URL
access is currently the only programming technique that uses the full HTML Viewer for report navigation, which
includes the report toolbar. In addition, URL access provides better performance than SOAP because it bypasses
the marshaling of SOAP requests to and from the server. In integration scenarios that require quick and easy
access to reports with built-in tools for viewing and navigation, URL access is the better choice.
NOTE
Report server URL access supports HTML Viewer and the extended functionality of the report toolbar. The SOAP API does
not support this type of rendered report. If you render reports using the SOAP API, design and develop your own report
toolbar.
For more information about the report toolbar, see HTML Viewer and the Report Toolbar.
For more information about URL access, see URL Access.
URL access is useful for viewing reports, but it does not provide the report and namespace management
functionality that can be essential to any enterprise reporting scenario. In this case, the broad and rich
functionality of the Reporting Services SOAP API is recommended. With the SOAP API you can manage and
deploy reports, create schedules, configure server properties, manage the report server namespace, create
subscriptions, and more. The SOAP API exposes the complete set of management functionality in Reporting
Services. The SOAP API can also enable report viewing and navigation through the Render method of the API.
However, viewing reports through the SOAP API does not enable the built-in viewing functionality of the report
toolbar, nor does it automatically handles the report interactivity that URL access provides.
For more information about the Reporting Services SOAP API, see Report Server Web Service.
In the majority of cases, URL access and SOAP calls are both required to meet your reporting needs. SOAP is
used when initially connecting to the report server database and presenting the available list of reports in a user
interface and URL access is used to actually access and navigate individual reports.
For an example of combining URL access and the Web service to provide integrated reporting, see SQL Server
Reporting Services Product Samples.
More questions? Try asking the Reporting Services forum
Integrating Reporting Services Using SOAP
12/3/2019 • 2 minutes to read • Edit Online
The SQL Server 2008 R2 Reporting Services SOAP API provides several Web service endpoints for developing
custom reporting solutions. The endpoints currently fall into two categories: management and execution. The
management functionality is exposed through the ReportService2005, ReportService2006, and
ReportService2010 endpoints. The ReportService2005 endpoint is used for managing a report server that is
configured in native mode and the ReportService2006 endpoint is used for managing a report server that is
configured for SharePoint integrated mode. The ReportService2010 merges the functionalities of
ReportService2005 and ReportService2006 and can manage a report server that is configured for either native
or SharePoint integrated mode.
NOTE
The ReportService2005 and ReportService2006 endpoints are deprecated in SQL Server 2008 R2. The ReportService2010
endpoint includes the functionalities of both endpoints and contains additional management features.
The execution functionality is exposed through the ReportExecution2005 endpoint and it is used when the
report server is configured in native or SharePoint integrated mode. The following topics show how these
endpoints can be used for developing reporting solutions in Microsoft Windows, SharePoint, and Web
applications.
In This Section
Using the SOAP API in a Windows Application
Describes how to use the SOAP API to integrate Reporting Services into a Windows environment.
Using the SOAP API in a Web Application
Describes how to use the SOAP API to integrate Reporting Services into a Web environment.
See Also
Integrating Reporting Services into Applications
Report Server Web Service
Building Applications Using the Web Service and the .NET Framework
Integrating Reporting Services Using SOAP - Web
Application
3/5/2021 • 3 minutes to read • Edit Online
You can access the full functionality of the report server through the Reporting Services SOAP API. Because it's a
Web service, the SOAP API can be easily accessed to provide enterprise reporting features to your custom
business applications. You access the Report Server Web service from a Web application in much the same way
that you access the SOAP API from a Microsoft Windows application. Using the Microsoft .NET Framework, you
can generate a proxy class that exposes the properties and methods of the Report Server Web service and
enables you to use a familiar infrastructure and tools to build business applications on Reporting Services
technology.
Reporting Services report management functionality is just as easily accessed from a Web application as from a
Windows application. From a Web application, you can add and remove items from the report server database,
set item security, modify report server database items, manage scheduling and delivery, and more.
Enabling impersonation
The first step in configuring your Web application is to enable impersonation from the Web service client. With
impersonation, ASP.NET applications can execute with the identity of the client on whose behalf they are
operating. ASP.NET relies on Microsoft Internet Information Services (IIS) to authenticate the user and either
pass an authenticated token to the ASP.NET application or, if unable to authenticate the user, pass an
unauthenticated token. In either case, the ASP.NET application impersonates whichever token is received if
impersonation is enabled. You can enable impersonation on the client, by modifying the Web.config file of the
client application as follows:
NOTE
Impersonation is disabled by default.
For more information about ASP.NET impersonation, see the Microsoft .NET Framework SDK documentation.
' For each report, display the path of the report in a Listbox
Dim ci As CatalogItem
For Each ci In items
If ci.Type = ItemTypeEnum.Report Then
catalogListBox.Items.Add(ci.Path)
End If
Next ci
End Sub ' Page_Load
See Also
Building Applications Using the Web Service and the .NET Framework
Integrating Reporting Services into Applications
Using the SOAP API in a Windows Application
Integrating Reporting Services Using SOAP -
Windows Application
3/12/2020 • 4 minutes to read • Edit Online
You can access the full functionality of the report server through the Reporting Services SOAP API. The SOAP
API is a Web service and, as such, can be easily accessed to provide enterprise reporting features to your custom
business applications. You can access the Web service in a Windows application simply by writing code that
makes calls to the service. Using the Microsoft .NET Framework, you can generate a proxy class that exposes the
properties and methods of the Web service and enables you to use a familiar infrastructure and tools to build
business applications built on Reporting Services technology.
Dim ci As CatalogItem
For Each ci In items
' If the item is a report, add it to
' a combo box
If ci.TypeName = "Report" Then
catalogComboBox.Items.Add(ci.Name)
End If
Next ci
End Sub 'listReportsButton_Click
// Button click event that retrieves a list of reports from
// the My Reports folder and displays them in a combo box
private void listReportsButton_Click(object sender, System.EventArgs e)
{
// Create a new Web service object and set credentials
// to Windows Authentication
ReportingService2010 rs = new ReportingService2010();
rs.Credentials = System.Net.CredentialCache.DefaultCredentials;
From there, you might enable users to select the report from the Combo box and preview the report on the
form either using a Web browser control or an image control.
See Also
Building Applications Using the Web Service and the .NET Framework
Integrating Reporting Services into Applications
Using the SOAP API in a Web Application
Integrate Reporting Services Using URL Access
12/3/2019 • 2 minutes to read • Edit Online
With URL access, you access reports through a report server URL. A URL request enables you to access a
specific report server as well as the reports, resources, and other items in the report server database. You can
also customize the report viewing and navigation experience for your users. The query string of the URL
contains device information settings, as well as report parameters targeted at your report and the chosen
rendering output. The way the report server handles URL requests depends on the parameters, parameter
prefixes, and type of item that you are accessing through the URL.
You can use URL access to embed hyperlinks to reports and other report server items in the applications that
you develop, whether in a Windows or Web environment.
NOTE
The topics in the section provide you with some basic ideas for integration. You can use the information to begin to
design and develop your own Reporting Services integration scenarios.
In This Section
Using URL Access in a Web Application
Describes how to use URL access to integrate Reporting Services into a Web environment.
Using URL Access in a Windows Application
Describes how to use URL access to integrate Reporting Services into a Microsoft Win32 environment.
See Also
Integrating Reporting Services into Applications
URL Access (SSRS)
Integrating Reporting Services Using URL Access -
Web Application
3/12/2020 • 3 minutes to read • Edit Online
URL access in Reporting Services is specifically designed to enable access to individual reports over a network.
This type of access is best for integrating report viewing and navigation into a custom Web application. To use
URL access in Web applications, you can:
Address a URL to a specific report server from a Web site or portal.
Use a form POST method and pass query string parameters to a report server URL using form fields.
In the previous example, the device information setting LinkTarget is passed with a value of "main" in the query
string of the URL. This ensures that any drillthrough hyperlinks in the report also target the frame named
"main".
For more information about device information settings, see Passing Device Information Settings to Rendering
Extensions.
Note that many servers and browsers limit the number of characters allowed in a URL. In some cases, a 256-
character limit is imposed. To get around this limitation, you can use POST requests using form submission.
NOTE
Internet Explorer has a maximum URL length of 2,083 characters. This limit applies to both POST and GET request URLs.
POST, however, is not limited by the size of the URL for submitting name/value pairs as part of a form, because they are
transferred in the header and not the URL.
In the previous example, if a user clicks the button on the form, the report server returns an HTML-rendered
report targeted at the current frame. A comparable URL access string might look like the following:
https://server/reportserver?/SampleReports/Territory Sales
Drilldown&rs:Command=Render&rc:LinkTarget=main&rs:Format=HTML4.0
See Also
Integrating Reporting Services into Applications
Integrating Reporting Services Using URL Access
Using URL Access in a Windows Application
URL Access (SSRS)
Integrating Reporting Services Using URL Access -
Windows Application
12/3/2019 • 2 minutes to read • Edit Online
Although URL access to a report server is optimized for a Web environment, you can also use URL access to
embed Reporting Services reports into a Microsoft Windows application. However, URL access that involves
Windows Forms still requires that you use Web browser technology. You can use the following integration
scenarios with URL access and Windows Forms:
Display a report from a Windows Form application by starting a Web browser programmatically.
Use the WebBrowser control on a Windows Form to display a report.
' If the user does not select the toolbar check box,
' turn the toolbar off in the HTML Viewer
If toolbarCheckBox.Checked = False Then
url += "&rc:Toolbar=False"
End If
' load report in the Web browser
Try
System.Diagnostics.Process.Start("IExplore", url)
Catch
MessageBox.Show("The system could not start the specified report using Internet Explorer.", _
"An error has occurred", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub 'viewReportButton_Click
// Sample click event for a Button control on a Windows Form
private void viewReportButton_Click(object sender, System.EventArgs e)
{
// Build the URL access string based on values supplied by a user
string url = serverUrlTextBox.Text + "?" + reportPathTextBox.Text +
"&rs:Command=Render" + "&rs:Format=HTML4.0";
catch (Exception)
{
MessageBox.Show(
"The system could not open the specified report using Internet Explorer.",
"An error has occurred", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
1. Create a new Windows application in either Microsoft Visual C# or Microsoft Visual Basic.
2. Locate the WebBrowser control in the Toolbox Dialog Box.
If the Toolbox is not visible you can access it by clicking the View menu item and selecting Toolbox .
3. Drag the WebBrowsercontrol onto the design surface of your Windows Form.
The WebBrowsercontrol named webBrowser1 is added to the Form
You direct the WebBrowser control to a URL by calling its Navigate method. You can assign a specific URL
access string to your WebBrowser control at run time as shown in the following example.
See Also
Integrating Reporting Services into Applications
Integrating Reporting Services Using URL Access
Integrating Reporting Services Using SOAP
Integrating Reporting Services Using the ReportViewer Controls
URL Access (SSRS)
Report Server Web Service
3/12/2020 • 2 minutes to read • Edit Online
SQL Server Reporting Services provides access to the full functionality of the report server through the Report
Server Web service. The Report Server Web service is an XML Web service with a SOAP API. It uses SOAP over
HTTP and acts as a communications interface between client programs and the report server. The Web service
provides two endpoints - one for report execution and one for report management - with methods that expose
the functionality of the report server and enable you to create custom tools for any part of the report life cycle.
There are three primary ways to develop Reporting Services applications based on the Web service. You can:
Develop applications using Microsoft Visual Studio and the Microsoft .NET Framework SDK. For more
information about using the .NET Framework to build Web service applications, see Building Applications
Using the Web Service and the .NET Framework.
Develop applications using the rs utility (RS.exe), the Reporting Services script environment. With
Reporting Services and Visual Basic scripts, you can run any of the Report Server Web service operations.
For more information about scripting in Reporting Services, see Script with the rs.exe Utility and the Web
Service.
Develop applications using any SOAP-enabled set of development tools. For more information, see The
Role of SOAP in Reporting Services.
Programming Diagram
In This Section
Report Server Web Service Methods
Describes the features and methods of each Report Server Web service.
The Role of SOAP in Reporting Services
Provides an overview of SOAP and how it is used in the Report Server Web services.
Accessing the SOAP API
Describes the Web Service Description Language (WSDL) and provides URLs for accessing a Reporting Services
WSDL file.
Building Applications Using the Web Service and the .NET Framework
Contains information about developing applications and Web services that call the Reporting Services SOAP
API.
Script with the rs.exe Utility and the Web Service
Provides an overview of the Reporting Services scripting environment.
Technical Reference (SSRS)
Contains reference material specific to Report Server Web services methods and corresponding complex types.
See Also
Report Server Web Service
Accessing the SOAP API
3/18/2020 • 2 minutes to read • Edit Online
The Report Server Web service uses Simple Object Access Protocol (SOAP) over HTTP and acts as a
communications interface between client programs and the report server. The Web service provides two
endpoints - one for report execution and one for report management - and consists of methods and a set of
complex type objects that you can use to access the complete functionality of Reporting Services. To call the
service, you must reference the Reporting Services Web Services Description Language (WSDL).
NOTE
The ReportService2005 and ReportService2006 endpoints are deprecated in SQL Server 2008 R2. The ReportService2010
endpoint includes the functionalities of both endpoints and contains additional management features.
The ReportExecution2005 endpoint allows developers to programmatically process and render reports in a
Report Server. The WSDL for this endpoint is accessed through ReportExecution2005.asmx?wsdl .
WSDL can be consumed by development kits that support SOAP and Web services, such as the Microsoft .NET
Framework SDK.
The following example shows the format of the URL to the Reporting Services management WSDL file:
https://server/reportserver/ReportService2010.asmx?wsdl
reportserver The name of the folder that contains the XML Web service.
This is configured during setup.
For more information about the WSDL format, see the World Wide Web Consortium (W3C) WSDL specification
at http://www.w3.org/TR/wsdl.
See Also
Building Applications Using the Web Service and the .NET Framework
Report Server Web Service
The Role of SOAP in Reporting Services
11/2/2020 • 2 minutes to read • Edit Online
The Report Server Web service uses Simple Object Access Protocol (SOAP) messaging to send text-based
commands over a network. These commands take the form of XML text that is sent over the World Wide Web
using HTTP. By using SOAP as its communication protocol, the Report Server Web service allows applications
and components to exchange data with the report server using an open and widely accepted infrastructure. The
SOAP standard is defined at www.w3.org/TR/SOAP.
Any client application can act as a SOAP client as long as it is SOAP-aware and can send SOAP requests. Report
Manager is one such SOAP client. It provides an interface to the report server database in which all reports and
report-related content is stored. End users can use the application to browse through and manage reports and
folders in the report server namespace. Report Manager is built on the Report Server Web service
infrastructure.
A report server acts as a SOAP server, a SOAP-aware service that can accept requests from SOAP clients and
create appropriate responses. The server handles the requests and sends encoded responses back to the client.
SOAP messages in Reporting Services take many different forms, depending on the type of request made by the
client. The following example represents a simple SOAP client request to remove an item from the report server
database.
<soap:Envelope xmlns:soap="https://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<DeleteItem xmlns="https://www.microsoft.com/sql/ReportingServer">
<item>/Samples/Report1</item>
</DeleteItem>
</soap:Body>
</soap:Envelope>
The SOAP itself requires that messages be put into an Envelope element, with the bulk of the message inside a
Body element. In this example, the body contains a call to the DeleteItem method, which takes a string
parameter representing the path of the item to delete. You can create a Microsoft .NET Framework client proxy
class that encapsulates all SOAP operations into methods. The following Microsoft Visual C# method represents
the SOAP example given earlier.
The response from the server might look like the following:
<soap:Envelope xmlns:soap="https://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<DeleteItemResponse xmlns="https://www.microsoft.com/sql/ReportingServer" />
</soap:Body>
</soap:Envelope>
See Also
Accessing the SOAP API
Report Manager (SSRS Native Mode)
Reporting Services Report Server
Report Server Web Service
Report Server Web Service Methods
3/12/2020 • 2 minutes to read • Edit Online
The Report Server Web services include several categories of methods that are based on component features.
These methods are provided through several Web service endpoints (three for report management and one for
report execution) which are exposed as members of the ReportingService2010 and ReportExecutionService
classes. These classes can be generated through a proxy class tool such as wsdl.exe, which is included with the
Microsoft .NET Framework SDK. For more information about the Report Server Web services and the .NET
Framework, see Building Applications Using the Web Service and the .NET Framework.
TO P IC DESC RIP T IO N
Report Server Web Service Endpoints Describes the management and execution endpoints of the
Report Server Web service.
Report Server Namespace Management Methods Describes methods that you can use to manage the report
server database. Specifically you can manage folders and
resources and set item properties.
Authorization Methods Describes methods that you can use to manage tasks, roles,
and policies.
Data Sources and Connection Methods Describes methods that you can use to set and manage data
source connection and credential information for reports.
Report Parameters Methods Describes methods that you can use to set and retrieve
parameters for reports.
Model Methods - Report Server Web Service Describes methods that you can use to manage models.
Rendering and Execution Methods Describes methods that you can use to manage report
execution, rendering, and caching.
Report History Methods Describes methods that you can use to create and manage
report history snapshots.
Scheduling Methods Describes methods that you can use to create and manage
shared schedules and cache refresh plans that are used by
the report server.
Subscription and Delivery Methods Describes methods that you can use to create and manage
subscriptions and report delivery.
Linked Reports Methods Describes methods that you can use to create and manage
linked reports.
See Also
Accessing the SOAP API
Building Applications Using the Web Service and the .NET Framework
Report Server Web Service
Technical Reference (SSRS)
Authorization Methods
4/15/2020 • 2 minutes to read • Edit Online
You can use these methods to manage tasks, roles, and policies on the report server.
M ET H O D A C T IO N
CreateRole Adds a new role to the report server database. This method
=applies to native mode only.
DeleteRole Deletes a role from the report server database. This method
applies to native mode only.
GetPolicies Returns the policies that are associated with a particular item
in the report server database or SharePoint library.
GetSystemPolicies Returns the system policies, including groups and roles with
which they are associated. This method applies to native
mode only.
InheritParentSecurity Deletes the policies that are associated with a particular item
in the report server database and sets the security policies
for the item to those of its parent.
ListTasks Returns the tasks that are managed by the report server.
SetPolicies Sets the policies that are associated with a specified item.
M ET H O D A C T IO N
SetSystemPolicies Sets the system policy that defines groups and their
associated roles. This method applies to native mode only.
See Also
Building Applications Using the Web Service and the .NET Framework
Report Server Web Service
Report Server Web Service Methods
Technical Reference (SSRS)
Data Sources and Connection Methods
3/12/2020 • 2 minutes to read • Edit Online
You can use these methods to set and manage data source connections and credentials.
M ET H O D A C T IO N
SetItemDataSources Sets the data sources for an item in a report server database
or SharePoint library.
See Also
Building Applications Using the Web Service and the .NET Framework
Report Server Web Service
Report Server Web Service Methods
Technical Reference (SSRS)
Linked Reports Methods
3/12/2020 • 2 minutes to read • Edit Online
You can use these methods to create and manage linked items.
M ET H O D A C T IO N
GetItemLink Returns the name of the item whose item definition is used
for the specified linked item.
ListDependentItems Returns a list of the items that are linked to a specified item.
SetItemLink Specifies the catalog item that is used for the item definition
of an existing linked item.
See Also
Building Applications Using the Web Service and the .NET Framework
Report Server Web Service
Report Server Web Service Methods
Technical Reference (SSRS)
Model Methods - Report Server Web Service
3/12/2020 • 2 minutes to read • Edit Online
M ET H O D A C T IO N
GetModelItemPermissions Retrieves the user permissions that are associated with the
model item.
GetModelItemPolicies Retrieves the policies that are associated with a model item.
GetUserModel Returns the semantic piece of a model for the current user.
InheritModelItemParentSecurity Deletes the policies that are associated with a model item
and causes the model item to inherit the policies from its
parent.
ListModelPerspectives Lists models and perspectives that are available to the user.
RemoveAllModelItemPolicies Deletes all policies that are associated with model items in
the specified model.
See Also
Building Applications Using the Web Service and the .NET Framework
Report Server Web Service
Report Server Web Service Methods
Technical Reference (SSRS)
Rendering and Execution Methods
3/18/2020 • 2 minutes to read • Edit Online
You can use these methods to manage item execution and caching, and report rendering.
M ET H O D A C T IO N
GetCacheOptions Returns the cache configuration for an item and the settings
that describe when the cached copy of the item expires.
See Also
Building Applications Using the Web Service and the .NET Framework
Report Server Web Service
Report Server Web Service Methods
Technical Reference (SSRS)
Report History Methods
3/12/2020 • 2 minutes to read • Edit Online
You can use these methods to create and manage item history snapshots.
M ET H O D A C T IO N
SetItemHistoryOptions Sets item history options that specify when an item history
snapshot is created for a specified catalog item.
See Also
Building Applications Using the Web Service and the .NET Framework
Report Server Web Service
Report Server Web Service Methods
Technical Reference (SSRS)
Report Parameters Methods
3/12/2020 • 2 minutes to read • Edit Online
You can use these methods to set and retrieve parameters for reports.
M ET H O D A C T IO N
See Also
Building Applications Using the Web Service and the .NET Framework
Report Server Web Service
Report Server Web Service Methods
Technical Reference (SSRS)
Report Server Namespace Management Methods
3/18/2020 • 2 minutes to read • Edit Online
The Report Server Management Web service contains methods that you can use to manage reports, folders,
and resources in the report server database.
M ET H O D A C T IO N
Logoff Logs out the current user making Web service requests. This
method only applies to native mode.
See Also
Building Applications Using the Web Service and the .NET Framework
Report Server Web Service
Report Server Web Service Methods
Technical Reference (SSRS)
Report Server Web Service Endpoints
3/18/2020 • 2 minutes to read • Edit Online
The Report Server Web service provides several endpoints for managing a report server as well as executing
and navigating reports.
IMPORTANT
When a report server is configured for SharePoint integrated mode, the ReportService2005 APIs will return an
rsOperationNotSuppor tedSharePointMode error. If the report server is configured for native mode, the
ReportService2006 APIs will return an rsOperationNotSuppor tedNativeMode error. Similarly, when mode-specific
APIs in ReportService2010 are used on unintended modes, the APIs will return the respective errors.
NOTE
The ReportService2005 and ReportService2006 endpoints are deprecated in SQL Server 2008 R2. The ReportService2010
endpoint includes the functionalities of both endpoints and contains additional management features.
If the report server is configured for native mode or SharePoint integrate mode, the WSDL for the management
endpoint can be accessed using one of the following URL:
https://<Server Name>/ReportServer/ReportService2010.asmx?wsdl
https://<Server Name>/ReportServer/ReportExecution2005.asmx?wsdl
If the report server is configured for SharePoint integrate mode, the WSDL can be accessed using the following
URL:
https://<Server Name>/<Site Name>/_vti_bin/ReportServer/ReportExecution2005.asmx?wsdl
P RO XY EN DP O IN T DESC RIP T IO N
The following are example URLs for referencing the proxy endpoints on a SharePoint site.
See Also
Building Applications Using the Web Service and the .NET Framework
Scheduling Methods
3/12/2020 • 2 minutes to read • Edit Online
You can use these methods to create and manage shared schedules for report execution and delivery, and to
cache refresh plans utilized by the report server.
M ET H O D A C T IO N
See Also
Building Applications Using the Web Service and the .NET Framework
Report Server Web Service
Report Server Web Service Methods
Technical Reference (SSRS)
Subscription and Delivery Methods
3/18/2020 • 2 minutes to read • Edit Online
You can use these methods to create and manage subscriptions and delivery of catalog items.
M ET H O D A C T IO N
See Also
Building Applications Using the Web Service and the .NET Framework
Report Server Web Service
Report Server Web Service Methods
Technical Reference (SSRS)
Building Applications Using the Web Service and
the .NET Framework
3/18/2020 • 2 minutes to read • Edit Online
With the Microsoft .NET Framework, you can use familiar programming constructs, such as methods, primitive
types, and user-defined complex types to work with Web services. The .NET Framework contains an
infrastructure and tools you can use to create Web service clients that can call any World Wide Web Consortium
(W3C) standards-compliant Web service.
A Report Server Web service client is any component or application that communicates with a report server
using Simple Object Access Protocol (SOAP) messages.
To create a Repor t Ser ver Web ser vice client using the .NET Framework , follow these basic steps:
1. Create a proxy class for the Web service.
To do this, add a proxy class or Web reference to your development project, reference the proxy class in
your client code, and create an instance of that proxy. For more information, see Creating the Web
Service Proxy.
2. Authenticate the Web service client with the report server.
To do this, set the service object's Credentials property equal to the credentials of an authenticated user
on the report server. For more information, see Web Service Authentication.
3. Call the method of the proxy class corresponding to the Web service operation that you want to invoke.
To do this, call a Web service method and supply the necessary arguments. For more information about
the Web service methods, see Report Server Web Service Methods. For more information about calling,
see Calling Web Service Methods.
In This Section
TO P IC DESC RIP T IO N
Creating the Web Service Proxy Describes the ways to add a proxy class to your project
using Microsoft .NET Framework.
Web Service Authentication Describes how calls to the Report Server Web service are
authenticated.
Calling Web Service Methods Describes how to use the SOAP API to call Web service
methods in Microsoft Visual Studio.
Setting the Url Property of the Web Service Explains how to programmatically direct your Web service
proxy to a new server URL after you have created your Web
reference.
Supplying Web Service Method Arguments Describes how to invoke a Web service method and supply
method arguments.
TO P IC DESC RIP T IO N
Omitting Values for Optional Web Service Objects Describes how to omit values for optional Web service
objects.
Using Secure Web Service Methods Describes the SecureConnectionLevel setting and the
way in which it affects the use of the Reporting Services
SOAP API.
Passing Device Information Settings to Rendering Extensions Describes the device information settings that are used to
render reports to different formats.
Reporting Services Delivery Extension Settings Describes the settings that are used to deliver reports using
report server e-mail.
Using Reporting Services SOAP Headers Explains the use of SOAP headers in Reporting Services.
Introducing Exception Handling in Reporting Services Provides information about the way in which Reporting
Services handles errors.
See Also
Report Server Web Service
Technical Reference (SSRS)
Introducing Exception Handling in Reporting
Services
3/19/2020 • 2 minutes to read • Edit Online
If your Reporting Services application sends a request to the Report Server Web service that the service is
unable to process, the service returns a SOAP exception to the client. Handling exceptions thrown by the Report
Server Web service is an important part of the applications that you develop because you can return useful
information to users when errors occur.
This section contains specific information about handling exceptions, preventing user input that is not valid, and
returning meaningful error information to users. For general information about exception handling, see
"Handling and Throwing Exceptions" in the Microsoft .NET Framework SDK documentation.
In This Section
TO P IC DESC RIP T IO N
Best Practices for Reporting Services Exception Handling Provides recommendations on how to handle exceptions in
Reporting Services.
Reporting Services SoapException Class Describes the SoapException class in Reporting Services.
See Also
Building Applications Using the Web Service and the .NET Framework
Handling Exceptions in Reporting Services
3/19/2020 • 2 minutes to read • Edit Online
When a Reporting Services SOAP API client request cannot be completed, the report server returns an error
rather than the expected results of the call. When a call cannot complete, an error for the Report Server Web
service is returned as a SOAP Fault XML element. The key descriptive element of the fault is the detail element,
which includes all of the error information provided by the report server as well as any additional Web service
error information. The key information in the detail element is the report server error code. Based on the
message and error code, you can determine the next appropriate action to take in your applications. For more
information about SOAP faults, see the World Wide Web Consortium (W3C) Web site at
http://www.w3.org/TR/SOAP.
See Also
Detail Property
Introducing Exception Handling in Reporting Services
Reporting Services SoapException Class
Best Practices for Reporting Services Exception
Handling
3/19/2020 • 2 minutes to read • Edit Online
When developing Reporting Services applications, there are several methodologies you can use to eliminate or
reduce the occurrence of exceptions. When exceptions do occur, provide clear and concise error messages to the
user, and add adequate exception handling to prevent your applications from ending unexpectedly.
An application that sends requests to the Report Server Web service should do the following:
Avoid causing exceptions by preventing as many invalid requests as possible.
Catch exceptions and provide specific error-handling code whenever possible.
Deal with error cases that do not throw exceptions.
In This Section
TO P IC DESC RIP T IO N
Preventing Invalid Requests Describes techniques for preventing requests that are not
valid from being sent to the report server.
Using Try and Catch Blocks Describes how to further enhance the reliability of your
application with try/catch blocks.
Handling Warnings and Cases That Do Not Cause Exceptions Explains how to handle errors that do not result in an
exception being thrown by Reporting Services.
Using the Detail Property to Handle Specific Errors Explains how to programmatically handle specific errors by
using the Detail property of the SoapException object.
See Also
Detail Property
Introducing Exception Handling in Reporting Services
Reporting Services SoapException Class
Handling Warnings and Cases That Do Not Cause
Exceptions
3/19/2020 • 2 minutes to read • Edit Online
Reporting Services does not throw exceptions for warnings and certain errors. For example, when you use the
CreateCatalogItem method to publish a new report to a report server, any warnings that occur are returned as
an array of Warning objects. These warnings should be handled and displayed so that appropriate action can be
taken.
Try
rs.CreateCatalogItem(name, parentFolder, False, definition, Nothing, warnings)
Catch ex As SoapException
Console.WriteLine(ex.Detail("Message").InnerXml)
End Try
try
{
rs.CreateCatalogItem("Report", name, parentFolder, false, definition, null, out warnings);
if (warnings.Length != 0)
{
foreach (Warning warning in warnings)
{
Console.WriteLine(warning.Message);
}
}
else
Console.WriteLine("Report {0} created successfully with no warnings", name);
}
Another way to handle errors is to evaluate the return values of certain methods. For example, the FindItems
method can be used to search for specific items in the report server database. If no items are found that match
the search criteria, a null array of CatalogItem objects is returned. You should evaluate the array, check for null ,
and let the user know if no items were found.
See Also
CatalogItem
Introducing Exception Handling in Reporting Services
Reporting Services SoapException Class
Preventing Invalid Requests
3/19/2020 • 2 minutes to read • Edit Online
You can prevent some types of exceptions from being thrown by analyzing your application flow and ensuring
that the requests being sent to the report server are valid. For example, in applications that enable users to add
or update the name of a report, data source, or other report server item, you should validate the text that a user
might enter. You should always check for reserved characters before sending the request to a report server. Use
conditional if statements or other logical constructs in your code to alert the user that they have not met the
conditions necessary to send requests to the report server.
In the following, simplified C# example, users are presented with a friendly error message when they attempt to
create a report with a name that contains a forward slash (/) character.
// C#
private void PublishReport()
{
int index;
string reservedChar;
string message;
// Check the text value of the name text box for "/",
// a reserved character
index = nameTextBox.Text.IndexOf(@"/");
For more information about the types of errors that can be prevented before requests are sent to the report
server, see SoapException Errors Table. For more information about further enhancing the previous example
using try/catch blocks, see Using Try and Catch Blocks.
See Also
Introducing Exception Handling in Reporting Services
Reporting Services SoapException Class
Using the Detail Property to Handle Specific Errors
3/19/2020 • 2 minutes to read • Edit Online
To further classify exceptions, Reporting Services returns additional error information in the InnerText property
of the child elements in the SOAP exception's Detail property. Because the Detail property is an XmlNode
object, you can access the inner text of the Message child element using the following code.
For a list of all of the available child elements contained in the Detail property, see Detail Property. For more
information, see "Detail Property" in the Microsoft .NET Framework SDK documentation.
Try
' Code for accessing the report server
Catch ex As SoapException
' The exception is a SOAP exception, so use
' the Detail property's Message element.
Console.WriteLine(ex.Detail("Message").InnerXml)
End Try
try
{
// Code for accessing the report server
}
catch (SoapException ex)
{
// The exception is a SOAP exception, so use
// the Detail property's Message element.
Console.WriteLine(ex.Detail["Message"].InnerXml);
}
Try
' Code for accessing the report server
Catch ex As SoapException
If ex.Detail("ErrorCode").InnerXml = "rsInvalidItemName" Then
End If ' Perform an action based on the specific error code
End Try
try
{
// Code for accessing the report server
}
catch (SoapException ex)
{
if (ex.Detail["ErrorCode"].InnerXml == "rsInvalidItemName")
{
// Perform an action based on the specific error code
}
}
The following line of code writes the specific error code being returned in the SOAP Exception to the console.
You could also evaluate the error code and perform specific actions.
Console.WriteLine(ex.Detail("ErrorCode").InnerXml)
Console.WriteLine(ex.Detail["ErrorCode"].InnerXml);
See Also
Introducing Exception Handling in Reporting Services
Reporting Services SoapException Class
SoapException Errors Table
Using Try and Catch Blocks
3/19/2020 • 2 minutes to read • Edit Online
After you limit invalid requests to the report server by adding conditional statements to your code, you should
supply adequate exception handling through the use of try/catch blocks. This technique provides another layer
of protection against requests that are not valid. If a request to the report server is encased in a try block and
that request causes the report server to throw an exception, the exception is caught in the catch block, thus
preventing your application from ending unexpectedly. Once the exception is caught, you can use the exception
to either instruct the user to do something differently, or just let the user know, in a friendly way, that an error
has occurred. You can then use a finally block to clean up any resources. Ideally, you should generate a general
exception-handling plan to avoid unnecessary duplication of try/catch blocks.
The following example uses try/catch blocks to enhance the reliability of the exception handling code.
// C#
private void PublishReport()
{
int index;
string reservedChar;
string message;
// Check the text value of the name text box for "/",
// a reserved character
index = nameTextBox.Text.IndexOf(@"/");
try
{
FileStream stream = File.OpenRead("MyReport.rdl");
definition = new Byte[stream.Length];
stream.Read(definition, 0, (int) stream.Length);
stream.Close();
// Create report with user-defined name
rs.CreateCatalogItem("Report", name, "/Samples", false, definition, null, out warnings);
MessageBox.Show("Report: {0} created successfully", name);
}
See Also
Introducing Exception Handling in Reporting Services
Reporting Services SoapException Class
Reporting Services SoapException Class
3/19/2020 • 2 minutes to read • Edit Online
You should address specific Reporting Services errors that you know might happen. For example, in an
application where you ask the user to create a folder, it might be possible for the user to try to create a folder
that already exists. As the developer, you do not have control over what the user enters in the folder name and
path fields of your application, but you do have control over what the user experience is when someone
incidentally tries to create an item that already exists.
To make it easier for you to catch specific error conditions, Reporting Services classifies an error code for the
exception and returns the classification of the error using properties from the SoapException class. For more
information, see "SoapException Class" in the Microsoft .NET Framework SDK documentation.
The following table lists the public properties of the SoapException class.
Actor The code that caused the exception. The value is the URL to
the Web service method.
HelpLink A URL or URN to a Help file associated with the error. The
value is usually set by the Web service and it sets a URL to
Microsoft Help and Support. Because Reporting Services
supports multiple help links for errors that occur, the report
server sets help link information as part of the Detail
property. For more information, see HelpLink Element.
See Also
Introducing Exception Handling in Reporting Services
SoapException Errors Table
Detail Property
3/19/2020 • 2 minutes to read • Edit Online
The Detail property of the Reporting Services SoapException class has the following XML structure:
Elements
Detail
The top-level element that contains all other error detail elements.
ErrorCode
The Reporting Services-specific error code.
HttpStatus
The HTTP status code.
Message
The error message and the error code assigned by the report server.
HelpLink
The Help link URL to a Web site at which further information about the error can be found. For more
information, see HelpLink Element.
LinkID
The ID assigned to the link.
ProductName
The name of the product. The default value is Microsoft SQL Ser ver Repor ting Ser vices .
ProductVersion
The version of Reporting Services. The maximum length is 15 characters. The format of the version number
should be as follows: 8.00.0xxx.00.
ProductLocaleId
The locale ID or language ID of the application's INTL DLL (for example, 0x41A).
OperatingSystem
The operating system Reporting Services is installed on. Valid values include 0 for operating system
independent, 1 for Windows 2000, and 16 for Windows XP.
Countr yLocaleId
The locale ID or language ID of the operating system. For example, the value for the French version of Windows
is 0x040c.
MoreInformation
An XML string that contains nested exceptions that occurred while the method ran.
Source
A child element of MoreInformation . The source of the error.
Message
A child element of MoreInformation . The error message of a nested exception. This element includes XML
attributes for ErrorCode and HelpLink .
Warnings
An XML string that contains the warnings returned from report processing.
See Also
Introducing Exception Handling in Reporting Services
Reporting Services SoapException Class
Using the Detail Property to Handle Specific Errors
HelpLink Element
3/19/2020 • 2 minutes to read • Edit Online
The HelpLink element of the Detail property is a URL string that is generated by the report server. The URL
targets a Web page managed by Microsoft Help and Support and provides additional help and knowledge base
articles about specific errors that occur in Reporting Services. The URL has the following syntax:
https:// www.microsoft.com / products / ee / transform.aspx ?
EvtSrc =v_alue_&EvtID =value&ProdName =value&ProdVer =value
The following table lists the arguments of the HelpLink URL.
A RGUM EN T VA L UE
EvtSrc "Microsoft.ReportingServices.Diagnostics.ErrorStrings.resourc
es.Strings"
The following example illustrates the HelpLink URL that is returned for error code rsReser vedItem . This error
occurs when a user attempts to modify or delete a reserved item in Reporting Services:
https://www.microsoft.com/products/ee/transform.aspx?
EvtSrc=Microsoft.ReportingServices.Diagnostics.ErrorStrings.resources.Strings
&EvtID=rsReservedItem&ProdName=Microsoft%20SQL%20Server%20Reporting%20Services&ProdVer=8.00
You can access the HelpLink element in your code using the SoapException class.
Try
rs.DeleteItem("/Report1")
Catch e As SoapException
Console.WriteLine(e.Detail("HelpLink").InnerXml)
End Try
try
{
rs.DeleteItem("/Report1");
}
catch (SoapException e)
{
Console.WriteLine(e.Detail["HelpLink"].InnerXml);
}
See Also
Introducing Exception Handling in Reporting Services
Reporting Services SoapException Class
Using the Detail Property to Handle Specific Errors
SoapException Errors Table
3/19/2020 • 3 minutes to read • Edit Online
The report server generates errors and error messages in the SOAP exception based on errors that occur in
Reporting Services. The following table shows the errors that are accessible from methods through a
SoapException in the Report Server Web service. It is organized by the method or methods that throw the
exception.
M ET H O D( S) ERRO R C O DE
ALL rsEvaluationCopyExpired
ALL rsInvalidRSEditionConfiguration
CreateDataDrivenSubscription , rsInvalidDataSourceCredentialSetting
CreateRepor tHistor ySnapshot , CreateSubscription ,
PrepareQuer y , SetDataDrivenSubscriptionProper ties ,
SetExecutionOptions , SetRepor tHistor yOptions ,
SetSubscriptionProper ties
M ET H O D( S) ERRO R C O DE
DeleteSubscription , rsSubscriptionNotFound
GetDataDrivenSubscriptionProper ties ,
GetSubscriptionProper ties ,
SetDataDrivenSubscriptionProper ties ,
SetExecutionOptions , SetSubscriptionProper ties
CreateDataDrivenSubscription , rsSecureConnectionRequired
GetDataDrivenSubscriptionProper ties , PrepareQuer y ,
SetDataDrivenSubscriptionProper ties
MoveItem rsInvalidMove
RenderStream rsStreamNotFound
RenderStream rsMissingSessionId
Render rsAssemblyNotPermissioned
FindItems rsInvalidSearchOperator
PrepareQuer y rsCannotPrepareQuer y
CreateRole rsEmptyRole
InheritParentSecurity rsInheritedPolicy
CreateRole rsRoleAlreadyExists
M ET H O D( S) ERRO R C O DE
InheritParentSecurity rsCannotDeleteRootPolicy
CancelJob rsJobWasCanceled
See Also
Introducing Exception Handling in Reporting Services
Errors and Events Reference (Reporting Services)
Reporting Services SoapException Class
Using the Detail Property to Handle Specific Errors
Using Reporting Services SOAP Headers
3/19/2020 • 2 minutes to read • Edit Online
Communication with a Web service method using SOAP follows a standard format. Part of this format is the
data that is encoded in an XML document. The XML document consists of a root Envelope element, which in
turn consists of a required Body element and an optional Header element. The Body element contains the data
specific to the message. The optional Header element can contain additional information not directly related to
the particular message. Each child element of the Header element is called a SOAP header.
Although the SOAP headers can contain data related to the message, they typically contain information
processed by the Web server infrastructure.
The Report Server Web services define several classes for use in the SOAP header: BatchHeader,
ItemNamespaceHeader, ServerInfoHeader, TrustedUserHeader, and ExecutionHeader.
In This Section
TO P IC DESC RIP T IO N
Identifying Execution State Describes how to manage session state in Reporting Services
using SessionHeader .
Setting the Item Namespace for the GetProperties Method Describes how to retrieve properties based on either the
path or the ID of an item by using the GetProperties
method and the ItemNamespaceHeader SOAP header.
See Also
Building Applications Using the Web Service and the .NET Framework
Technical Reference (SSRS)
Batching Methods
3/19/2020 • 2 minutes to read • Edit Online
The use of SOAP headers in Reporting Services enables you to include multiple Web service methods in a single
operation. Methods run within the scope of a single database transaction, in the order in which they are called.
Rollback is one advantage of using multiple-method batch operations. If an error occurs on any of the method
calls while a batch is running, the report server stops running the batch and rolls back any previous operations.
This is useful when a method call depends on the successful completion of other method calls in that batch.
The Web service does not provide locking semantics for multiple-method batch operations. Rows in the report
server database are not locked for updating until the message is sent to the server and the Execute command is
called.
There are also no concurrency controls to guarantee that the database has not changed since the data was last
read. If two clients modify the same item, the last update succeeds if the parameters are still valid (for example,
the item has not been renamed).
The following example calls the CreateFolder method three times and runs these calls as a single batch. If any of
the calls to CreateFolder fail, the entire batch is canceled.
Imports System
Imports System.Web.Services.Protocols
Imports myNamespace.MyReferenceName
Class Sample
Sub Main(args() As String)
Dim rs As New ReportingService2005()
rs.Credentials = System.Net.CredentialCache.DefaultCredentials
' Set the base Web service URL of the source server
rs.Url = "https://<Server Name>/reportserver/ReportService2005.asmx"
bh.BatchId = service.CreateBatch()
rs.BatchHeaderValue = bh
rs.CreateFolder("New Folder1", "/", Nothing)
rs.CreateFolder("New Folder2", "/", Nothing)
rs.CreateFolder("New Folder3", "/", Nothing)
Console.WriteLine("Creating folders...")
rs.BatchHeaderValue = bh
rs.ExecuteBatch()
Console.WriteLine("Folders created successfully.")
rs.BatchHeaderValue = Nothing
End Sub
End Class
using System;
using System.Web.Services.Protocols;
using myNamespace.MyReferenceName;
class Sample
{
static void Main(string[] args)
{
ReportingService2005 rs = new ReportingService2005();
rs.Credentials = System.Net.CredentialCache.DefaultCredentials;
// Set the base Web service URL of the source server
rs.Url = "https://<Server Name>/reportserver/ReportService2005.asmx"
bh1.BatchID = service.CreateBatch();
rs.BatchHeaderValue = bh;
rs.CreateFolder("New Folder1", "/", null);
rs.CreateFolder("New Folder2", "/", null);
rs.CreateFolder("New Folder3", "/", null);
Console.WriteLine("Creating folders...");
rs.BatchHeaderValue = bh1;
rs.ExecuteBatch();
Console.WriteLine("Folders created successfully.");
rs.BatchHeaderValue = null;
}
}
See Also
CancelBatch
CreateBatch
Technical Reference (SSRS)
Using Reporting Services SOAP Headers
Identifying Execution State
3/19/2020 • 2 minutes to read • Edit Online
Hypertext Transfer Protocol (HTTP) is a connectionless and stateless protocol, which means that it does not
automatically indicate whether different requests come from the same client or even whether a single browser
instance is still actively viewing a page or site. Sessions create a logical connection to maintain state between
server and client over HTTP. The user-specific information relevant to a particular session is known as the
session state.
Session management involves correlating an HTTP request with other previous requests generated from the
same session. Without session management, these requests appear unrelated to the Report Server Web service
because of the connectionless and stateless nature of the HTTP protocol.
Reporting Services does not expose a holistic concept of session state such as that exposed by ASP.NET.
However, when executing reports, the report server maintains state between method calls in the form of an
execution . An execution allows the user to interact with the report in several ways - including loading the
report from the report server, setting credentials and parameters for the report, and rendering the report.
While they are communicating to a report server, clients use the execution to manage report viewing and user
navigation to other pages in a report, and to show or hide sections of a report. A unique execution exists for
each report the client application is running.
In general, the lifetime of an execution starts when a user navigates to a browser or client application and selects
a report to view. The execution is discarded after a short time out period after the last request to the execution
has been received (the default time out is 20 minutes).
From a Web service perspective, the lifetime starts when the Report Server Web service LoadReport,
LoadReportDefinition, or Render methods are called. The application can use other methods to manipulate the
active execution (for example, setting parameters and setting data sources). The execution is discarded after a
short time out period after the last request to the execution has been received (the default time out is 20
minutes).
An application keep track of multiple active executions between calls to the Web service Render and
RenderStream methods by saving the ExecutionID, which is returned in the SOAP header from the LoadReport
and LoadReportDefinition methods.
The following diagram shows the processing and rendering path for reports.
To support the functions described above, the current SOAP Render method has been split into multiple
methods encompassing execution initialization, processing, and rendering phases.
To programmatically render a report, you must:
Load the report or the report definition using LoadReport or LoadReportDefinition.
Check to see if the report needs credentials or parameters by checking the values of the
CredentialsRequired and ParametersRequired properties of the ExecutionInfo object returned by
LoadReport or LoadReportDefinition
If necessary, set the credentials and/or parameters using the SetExecutionCredentials and
SetExecutionParameters methods.
Call the Render method to render the report.
While a report is in session, the underlying report stored in the report server database can change. For example,
the report definition can change, the report can be deleted or moved, and user permissions can change. If the
report is in an active session, it is not affected by changes made to the underlying report (that is, the report
stored in the report server database).
You can also manage a report session using URL access commands.
See Also
Render
Technical Reference (SSRS)
Using Reporting Services SOAP Headers
Setting the Item Namespace for the GetProperties
Method
11/2/2020 • 2 minutes to read • Edit Online
You can use the ItemNamespaceHeader SOAP header in Reporting Services to retrieve item properties based on
two different item identifiers: the full path of the item or the ID of the item.
When you make a call to the GetProperties method, you normally pass as an argument the full path of the item
for which you want to retrieve properties. By using ItemNamespaceHeader, you can set the SOAP header for
your method call to enable you to use GetProperties by passing the ID of the item as an identifier.
The following code sample retrieves the values for item properties based on the ID of the item.
NOTE
By default, you do not need to set a value for the ItemNamespaceHeader if you pass to the GetProperties method the full
path name as the item identifier.
Imports System
Imports System.Collections
Class Sample
Sub Main()
Dim rs As New ReportingService2010()
rs.Credentials = System.Net.CredentialCache.DefaultCredentials
rs.Url = "https://<Server Name>/reportserver/ReportService2010.asmx"
Try
' Need the ID property of items. Normally, you would already have
' this stored somewhere.
items = rs.ListChildren("/AdventureWorks Sample Reports", False)
Catch e As Exception
Console.WriteLine((e.Message + ": " + e.StackTrace))
End Try
End Sub 'Main
End Class 'Sample
using System;
using System.Collections;
class Sample
{
static void Main()
{
ReportingService2010 rs = new ReportingService2010();
rs.Credentials = System.Net.CredentialCache.DefaultCredentials;
rs.Url = "https://<Server Name>/reportserver/ReportService2010.asmx";
CatalogItem[] items;
try
{
// Need the ID property of items. Normally, you would already have
// this stored somewhere.
items = rs.ListChildren("/AdventureWorks Sample Reports", false);
catch (Exception e)
{
Console.WriteLine(e.Message);
}
}
}
See Also
Technical Reference (SSRS)
Using Reporting Services SOAP Headers
Calling Web Service Methods
3/12/2020 • 2 minutes to read • Edit Online
When you use a Microsoft .NET Framework proxy class to call Web service operations, you do so by using the
methods of that class. These methods respond like any other method of a class in the .NET Framework class
library. All Web service methods have public access and require you to supply the appropriate number of
arguments and argument types. After you have created an instance of the proxy class in your project, you can
call the methods to perform reporting operations via the report server. The following C# code illustrates the use
of the ListChildren method of the ReportingService2010 proxy class. The code is used to make a recursive call to
the Web service that returns an array of CatalogItem objects that contains a list of all items in the report server
database:
See Also
Building Applications Using the Web Service and the .NET Framework
Report Server Web Service
Technical Reference (SSRS)
Creating the Web Service Proxy
3/12/2020 • 4 minutes to read • Edit Online
A client and a Web service can communicate using SOAP messages, which encapsulate the input and output
parameters as XML. A proxy class maps parameters to XML elements and then sends the SOAP messages over a
network. In this way, the proxy class frees you from having to communicate with the Web service at the SOAP
level and allows you to invoke Web service methods in any development environment that supports SOAP and
Web service proxies.
There are two ways to add a proxy class to your development project using the Microsoft .NET Framework: with
the WSDL tool in the .NET Framework, and by adding a Web reference in Microsoft Visual Studio. The following
sections discuss this subject in further detail.
The WSDL tool accepts a number of command-prompt arguments for generating a proxy. The preceding
example specifies the language C#, a suggested namespace to use in the proxy (to prevent name collision
if using more than one Web service endpoint), and generates a C# file called ReportingService2010.cs. If
the example had specified Visual Basic, the example would have generated a proxy file with the name
ReportingService2010.vb. This file is created in the directory from which you run the command.
2. Compile the proxy class into an assembly file (with the extension .dll) and reference it in your project, or
add the class as a project item.
NOTE
When you add a proxy class to your project manually, you need to add a reference to System.Web.Services.dll. If
you add the proxy using a Web reference in Visual Studio .NET, the reference is automatically created for you. For
more information, see "Adding the Proxy Using a Web Reference in Visual Studio" later in this topic.
After you add the proxy class as an item to your project, the associated file appears in Solution Explorer.
3. To call the service programmatically, create an instance of the proxy class.
The following code example shows the syntax for creating an instance of the ReportingService2010 proxy
class in a project:
Dim service As New ReportingService2010()
For more information about the Wsdl.exe tool, including its full syntax, see "Web Services Description Language
Tool" in the .NET Framework SDK documentation. For a full explanation of Web service proxies, see "Creating an
XML Web Service Proxy" in the .NET Framework SDK documentation.
https://<Server Name>/reportserver/reportexecution2005.asmx
The URL contains the domain in which the Report Server Web service is deployed, the name of the folder
containing the service, and the name of the discovery file for the service. For a complete description of
the different URL elements, see Accessing the SOAP API.
A description of the methods and properties provided by the Web service appears in the Browser pane
on the left.
NOTE
For more information about the items associated with the Report Server Web service, see Report Server Web
Service Methods.
4. Verify that your project can use the Report Server Web service, and that you have appropriate permission
to access the report server.
5. In the Web reference name field, enter a name that you will use in your code to access the Report
Server Web service programmatically.
6. Select the Add Reference button to create a reference in your application to the Web service.
The new reference appears in Solution Explorer under the Web References node for the active project,
named as specified in the Web reference name field.
7. In Solution Explorer , expand the Web References folder to note the namespace for the Web reference
classes that are available to the items in your project.
After adding a Web reference to your project, the associated files are displayed in a folder within the Web
References folder of Solution Explorer .
After you add the Web reference, use the following syntax to create an instance of the proxy class:
myNamespace.myReferenceName.ReportExecutionService rs = new
myNamespace.myReferenceName.ReportExecutionService();
rs.Url = "https://<Server Name>/reportserver/reportexecution2005.asmx?wsdl";
rs.Credentials = System.Net.CredentialCache.DefaultCredentials;
You can also add a using (Impor t in Visual Basic) directive to the Report Server Web service reference. If you
use this directive, you do not need to fully qualify the types in the namespace. To do this, add the following code
to your file:
Import myNamespace.myReferenceName
using myNamespace.myReferenceName;
See Also
Report Server Web Service
Building Applications Using the Web Service and the .NET Framework
Technical Reference (SSRS)
Omitting Values for Optional Web Service Objects
3/18/2020 • 2 minutes to read • Edit Online
Properties of several of the Report Server Web service complex types have an accompanying property known
as the Specified property. The name of the property consists of the original property name with the word
"Specified" appended to it. The presence of this property indicates that a value for the original property may
sometimes be omitted. This is a direct result of the translation from the Web Service Description Language
(WSDL) to a .NET Framework proxy class. For example, the Web service property Enabled of the complex type
DataSourceDefinition has an accompanying property named EnabledSpecified. If you are building an application
and do not want to set a value for the Enabled property, you do not have to supply a value for Enabled; the
default value of true is used. However, you still need to set EnabledSpecified to false . If you supply a value for
the Enabled property, you need to set EnabledSpecified equal to true . This is the case for writable properties.
For read-only properties, you do not need to take any action.
IMPORTANT
Failure to specify a property using the above-mentioned technique can result in unpredictable Web service behavior.
The data types that usually require you to handle the additional Specified property are Boolean , DateTime , and
Enumeration .
For an example, see CreateDataSource method.
See Also
Building Applications Using the Web Service and the .NET Framework
Technical Reference (SSRS)
Passing Device Information Settings to Rendering
Extensions
3/18/2020 • 2 minutes to read • Edit Online
In Reporting Services, device information settings are used to pass rendering parameters to a rendering
extension. Settings in the Report Server Web service are passed as a DeviceInfo XML element and processed
by the report server. Because device information settings have default values, they are considered optional
arguments in the rendering process. However, you can use device information settings to customize rendering
and to override the default values that are supplied by the server.
You can specify device information settings in a variety of ways. Programmatically, you can use the Render
method. If you are accessing a report through its URL, you can specify device information as URL parameters.
You can also edit the device information settings in the Reporting Services configuration files to specify
rendering parameters globally. For more information about specifying rendering parameters globally, see
Customize Rendering Extension Parameters in RSReportServer.Config.
<DeviceInfo>
<HTMLFragment>True</HTMLFragment>
</DeviceInfo>
When a report is rendered as an HTML fragment, the content of the report is contained within a TABLE element
without the use of an HTML or BODY element. You can use the HTML fragment to incorporate the report into an
existing HTML document. For more information about device information settings for HTML output, see HTML
Device Information Settings.
See Also
Device Information Settings for Rendering Extensions (Reporting Services)
Customize Rendering Extension Parameters in RSReportServer.Config
Building Applications Using the Web Service and the .NET Framework
Reporting Services Delivery Extension Settings
3/12/2020 • 2 minutes to read • Edit Online
Reporting Services includes an e-mail delivery extension and a file share delivery extension. E-mail delivery
provides a way to send a report to individual users or groups through e-mail. File share delivery enables you to
automatically send rendered reports to a share on your network. You can use either one of the supported
delivery extensions with standard subscriptions or data-driven subscriptions. You pass delivery settings that are
specific to the type of delivery extension whenever you call the
CreateSubscription,CreateDataDrivenSubscription,SetSubscriptionProperties, and
SetDataDrivenSubscriptionProperties methods. To retrieve a list of delivery settings programmatically, use the
GetExtensionSettings method.
NOTE
Delivery extension settings are case-sensitive.
SET T IN G VA L UE
BCC The e-mail address that appears on the Bcc line of the e-
mail message. Multiple e-mail addresses are separated by
semicolons. Optional.
Priority The priority with which the e-mail message is sent. Valid
values are LOW , NORMAL , and HIGH . The default value is
NORMAL .
SET T IN G VA L UE
SET T IN G VA L UE
PATH The folder path or UNC file share path to which to save the
report.
WRITEMODE The write mode to use when accessing the disk. Valid values
are None , Over write , and AutoIncrement .
See Also
Technical Reference (SSRS)
Building Applications Using the Web Service and the .NET Framework
Reporting Services Properties - Report Server Item
Properties
11/2/2020 • 4 minutes to read • Edit Online
Item properties are properties that are specific to items in the report server database. Such items include
reports, linked reports, folders, resources, models, and data sources.
The following item property names are reserved. You cannot create user-defined properties of the same name.
You can read or modify many of these properties using the Report Server Web service methods.
Item Properties
The following properties apply to all items in the report server database.
CreatedBy The name of the user who originally added the item to the
report server database.
CreationDate The date and time the item was added to the report server
database.
ModifiedBy The name of the user who last modified the item in the
report server database.
ModifiedDate The date and time the user last modified the item.
Path The full path name of the item. The path of any item in the
report server database has a maximum character length of
260.
Vir tualPath The virtual path to an item in the report server database.
The value of the VirtualPath property is the path under
which a user expects to see the item. For example, a report
called report1, which is located in the user's personal My
Reports folder, has a virtual path of /My Reports. The actual
path of the item is /Users/username/My Reports.
Folder Properties
In addition to the item properties listed previously, the following property applies to folders in the report server
database.
Report Properties
In addition to the item properties listed previously, the following properties apply to reports in the report server
database.
ExecutionDate The date and time at which a report snapshot was last
created for a report.
HasParameterDefaultValues A value that indicates whether the report has valid default
values set for all report parameters. The value is also true if
a report does not have report parameters. If this property
set to false , one or more report parameters do not have a
valid default value.
P RO P ERT Y DESC RIP T IO N
HasDataSourceCredentials A value that indicates that the credential retrieval option set
for all data sources associated with the report is either None
or Store . If this property is set to false , a credential retrieval
option set for one of the data sources associated with the
report is either Integrated or Prompt .
Resource Properties
In addition to the item properties listed previously, the following property applies to resources in the report
server database.
See Also
Building Applications Using the Web Service and the .NET Framework
Report Server Web Service
Technical Reference (SSRS)
Reporting Services Properties - Report Server
System Properties
3/18/2020 • 2 minutes to read • Edit Online
The following system property names are reserved. You cannot create user-defined properties of the same
name. You can read or modify many of these properties using the Web service methods.
Properties
P RO P ERT Y DESC RIP T IO N
SiteName The name of the report server site displayed on the user
interface. The default value is Microsoft Repor t Ser ver .
This property can be an empty string. The maximum length
is 8,000 characters.
MyReportsRole The name of the role used when creating security policies on
user's My Reports folders. The default value is My Repor ts
Role .
See Also
GetSystemProperties
SetSystemProperties
Building Applications Using the Web Service and the .NET Framework
Report Server Web Service
Technical Reference (SSRS)
Reporting Services Properties
3/18/2020 • 2 minutes to read • Edit Online
The report server defines a set of system properties that are global to the report server and a set of item
properties that are associated with an individual item stored in the report server database. Properties defined
by the report server cannot be deleted, and in some cases they are read-only. An application can extend system
properties and item properties by adding additional user-defined properties to the system and item properties.
The following Web service methods retrieve and set SQL Server Reporting Services properties.
M ET H O D A C T IO N
In This Section
TO P IC DESC RIP T IO N
Report Server Item Properties Describes the item-specific properties in Reporting Services.
See Also
Building Applications Using the Web Service and the .NET Framework
Report Server Web Service
Technical Reference (SSRS)
Setting the Url Property of the Web Service
3/12/2020 • 2 minutes to read • Edit Online
At any time in your Microsoft .NET Framework applications, you can modify the base URL of the Report Server
Web service to which your application is currently directed. To do this, simply set the Url property of the service
object. For example:
The following example retrieves a report definition from one report server and uses that definition to create an
identical report on a different report server:
Imports System
Imports System.Web.Services.Protocols
Class Sample
Public Shared Sub Main()
Dim rs As New ReportingService2010()
rs.Credentials = System.Net.CredentialCache.DefaultCredentials
' Set the base Web service URL of the source server
rs.Url = "https://<Server Name>/reportserver/ReportService2010.asmx"
Try
' Get the report definition of a report on a source server
reportDefinition = rs.GetItemDefinition(reportName)
' Set the base Web service URL of the destination server
rs.Url = "https://<Server Name>/reportserver/ReportService2010.asmx"
' Create a copy of the report on the destination server
Dim warnings As Warning() = {}
rs.CreateCatalogItem("Report", "Company Sales Copy", "/", False, reportDefinition, Nothing,
warnings)
Catch e As SoapException
Console.WriteLine(e.Detail.InnerXml.ToString())
End Try
End Sub 'Main
End Class 'Sample
using System;
using System.Web.Services.Protocols;
class Sample
{
public static void Main()
{
ReportingService2010 rs = new ReportingService2010();
rs.Credentials = System.Net.CredentialCache.DefaultCredentials;
// Set the base Web service URL of the source server
rs.Url = "https://<Server Name>/reportserver/reportservice2010.asmx";
try
{
reportDefinition = rs.GetItemDefinition(reportName);
// Set the base Web service URL of the destination server
rs.Url = "https://<Server Name>/reportserver/ReportService2010.asmx";
// Create a copy of the report on the destination server
Warning[] warnings = {};
rs.CreateCatalogItem("Report", "Company Sales Copy", "/", false, reportDefinition, null, out
warnings);
}
catch (SoapException e)
{
Console.WriteLine(e.Detail.InnerXml.ToString());
}
}
}
For more information about creating the initial Web service proxy, see Creating the Web Service Proxy.
See Also
CreateCatalogItem
GetItemDefinition
Building Applications Using the Web Service and the .NET Framework
Report Server Web Service
Supplying Web Service Method Arguments
3/12/2020 • 2 minutes to read • Edit Online
A Report Server Web service method sends a request to the service at a given URL using SOAP over HTTP. The
service receives the request, processes it, and then returns a response. These requests and responses are in the
form of XML documents.
Optional Parameters
In some cases, a Web service method can have optional input parameters. Even if an input parameter for a Web
service method is optional, you must still include it and set the parameter value to null (Nothing in Visual
Basic). Setting a parameter value to null sets the element value for that parameter in the SOAP request to null .
The following example uses the CreateFolder method to create a new folder named Product Sales in the Sales
folder. By supplying a null value for the folder properties, no user-specific properties are supplied for the folder:
// C#
rs.CreateFolder("Product Sales", "/Sales", null);
See Also
Building Applications Using the Web Service and the .NET Framework
Report Server Web Service
Technical Reference (SSRS)
Using Secure Web Service Methods
4/15/2020 • 2 minutes to read • Edit Online
Certain Report Server Web service methods may require a secure connection when you invoke them. The
methods that require a secure connection are determined by the SecureConnectionLevel setting in the
RSReportServer.config file. The value of the setting is an integer value with a valid range of 0 and higher. The
following table describes these values.
Greater than 0 Secure. All calls made to the Reporting Services SOAP API
require a secure connection.
You can use the ListSecureMethods method of the Web service to return a list of Web service methods that
require a secure connection according to the current configuration of the report server. In a TLS scenario, you
should evaluate the list of methods that are returned by ListSecureMethods and change the scheme name of the
Web service URI to "https" or "http" depending on the method being called.
See Also
Building Applications Using the Web Service and the .NET Framework
Report Server Web Service
Using the RSClientPrint Control in Custom
Applications
3/12/2020 • 7 minutes to read • Edit Online
The Microsoft ActiveX control, RSPrintClient , provides client-side printing for reports viewed in HTML Viewer. It
provides a Print dialog box so that a user can initiate a print job, preview a report, specify pages to print, and
change the margins. During a client-side print operation, the report server renders the report in the Image
(EMF) rendering extension and uses the print capabilities of the operating system to create the print job and
send it to a printer.
Client-side printing provides a way to control and improve the quality of a printout for an HTML report by side-
stepping browser print settings on the user's computer, and instead using the page dimensions, margins, header,
and footer text of the report to create the print output. The print control reads property values of the report to
set page size and margins.
Developers who want to enable the client-side printing feature in third-party toolbars or viewers can access the
ActiveX control through the RSClientPrint COM object. The control can be distributed freely. The following list
provides recommendations for using the control:
Use the control to improve printing for Web-based reports. You can specify the object in any of the
Microsoft .NET Framework-compatible programming languages or in script. The control is not intended
for Microsoft Windows Forms applications.
Copy the .cab file from the Reporting Services program files and add it to your custom application code
base.
Use an <OBJECT> tag to specify the control.
Specify a relative or fully qualified URL to the .cab file in the OBJECT CODEBASE attribute.
Specify your own application version information for the .cab file to track which version is used in your
application.
RSPrintClient Overview
The control displays a custom print dialog box that supports features common to other print dialog boxes,
including print preview, page selections for specifying specific pages and ranges, page margins, and orientation.
The control is packaged as a CAB file. The text in the Print dialog box is localized into all of the languages
supported in SQL Server. RSPrintClient ActiveX control uses the Image rendering extension (EMF) to print the
report. The following EMF device information is used: StartPage, EndPage, MarginBottom, MarginLeft,
MarginTop, MarginRight, PageHeight, and PageWidth. Other device information settings for image rendering are
not supported.
Language Support
The print control provides user interface text in different languages, and accepts input values calibrated to
different measurement systems. The language and measurement system used are determined by the Culture
and UICulture properties. Both properties accept LCID values. If you specify an LCID for a language that is a
variation on a supported language, you will get the language that provides the closest match. If you specify an
LCID that is not supported and for which no other LCID is a close match, you will get English (United States).
<script language="javascript">
function Print()
RSClientPrint.MarginLeft = 12.7;
RSClientPrint.MarginTop = 12.7;
RSClientPrint.MarginRight = 12.7;
RSClientPrint.MarginBottom = 12.7;
RSClientPrint.Culture = 1033;
RSClientPrint.UICulture = 9;
RSClientPrint.Print('https://localhost/rtm',
'%2fEmployee_Sales_Summary&ReportMonth=6&ReportYear=2004&EmpID=20', 'Employee_Sales_Summary')
</script>
</BODY>
See Also
Print Reports from a Browser with the Print Control (Report Builder and SSRS)
Print Reports (Report Builder and SSRS)
Image Device Information Settings
Web Service Authentication
3/12/2020 • 2 minutes to read • Edit Online
You can use either Windows Authentication or Basic authentication to authenticate the calls made to the Report
Server Web service. Any client that makes SOAP requests to the report server must implement the client
portion of one of the supported authentication protocols. If you are using the Microsoft .NET Framework, you
can use the managed code HTTP classes to implement authentication. Using these APIs makes it easy to send
authentication information along with the SOAP requests.
If you do not have appropriate credentials before you make a call to the Report Server Web service, the call fails.
At run time, you can pass credentials to the Web service by setting the Credentials property of the client-side
object that represents the Web service before you call its methods.
The following sections contain example code that sends credentials using the .NET Framework.
Windows Authentication
The following code passes Windows credentials to the Web service.
Basic Authentication
The following code passes Basic credentials to the Web service.
The credentials must be set before you call any of the methods of the Report Server Web service. If you do not
set the credentials, you receive the error code an HTTP 401 Error: Access Denied. You must authenticate the
service before you use it, but after you have set the credentials, you do not need to set them again as long as
you continue to use the same service variable (such as rs).
Custom Authentication
Reporting Services includes a programming API that provides developers with the opportunity to design and
develop custom authentication extensions, known as security extensions. For more information, see
Implementing a Security Extension.
See Also
Building Applications Using the Web Service and the .NET Framework
Report Server Web Service
Reporting Services Extension Library
11/2/2020 • 2 minutes to read • Edit Online
The Reporting Services Extension Library is a set of classes, interfaces, and value types that are included in
Reporting Services. This library provides access to system functionality and is designed to be the foundation on
which Microsoft .NET Framework applications can be used to extend Reporting Services components.
Namespaces
The Reporting Services extension library provides the following namespaces.
Microsoft.ReportingServices.DataProcessing
Contains classes and interfaces that enable you to build components that extend the data processing capability
of Reporting Services.
Microsoft.ReportingServices.Interfaces
Contains classes and interfaces that enable you to construct and send custom notifications to users through
your own delivery extensions, and to build custom security extensions for Reporting Services.
Microsoft.Repor tingSer vices.Repor tRendering
Contains classes and interfaces that enable you to extending the rendering capabilities of Reporting Services.
Using the members of this namespace along with members of the Microsoft.ReportingServices.Interfaces
namespace, you can build your own, custom rendering extensions for Reporting Services.
See Also
Reporting Services Extensions
Creating a Data Processing Extension Library
11/2/2020 • 2 minutes to read • Edit Online
Each Reporting Services data processing extension you create should be assigned to a unique namespace and
built into a library or assembly file. The exact name of the namespace is not important, but it must be unique
and not shared with any other extension. Microsoft uses the namespace
Microsoft.ReportingServices.DataProcessing for the data processing extensions that ship with Reporting
Services. You should create your own unique namespaces for your company's data processing extensions.
The following example shows the code to begin a Reporting Services data processing extension, which uses the
namespaces that contain the data processing interfaces and any utility classes.
Imports System
Imports Microsoft.ReportingServices.DataProcessing
Imports Microsoft.ReportingServices.Interfaces
Namespace CompanyName.ExtensionName
...
using System;
using Microsoft.ReportingServices.DataProcessing;
using Microsoft.ReportingServices.Interfaces;
namespace CompanyName.ExtensionName
{
...
When compiling a Reporting Services data processing extension, you must supply to the compiler a reference to
Microsoft.ReportingServices.Interfaces.dll, because the data processing extension interfaces are contained there.
The Microsoft.ReportingServices.DataProcessing namespace is needed to implement the data processing
extension interfaces, and the Microsoft.ReportingServices.Interfaces namespace is needed to implement the
IExtension interface. For example, if all the files containing the code to implement a Reporting Services data
processing extension written in C# were in a single directory with the extension .cs, the following command
would be issued from that directory to compile the files stored in CompanyName.ExtensionName.dll.
The following code example shows the command that would be used for Microsoft Visual Basic files with the
extension .vb.
NOTE
You can also design, develop, and build your data processing extension using Visual Studio. For more information about
developing assemblies in Visual Studio, see your Visual Studio documentation.
See Also
Reporting Services Extensions
Implementing a Data Processing Extension
Reporting Services Extension Library
Data Processing Extensions Overview
11/2/2020 • 3 minutes to read • Edit Online
Data processing extensions in Reporting Services enable you to connect to a data source and retrieve data. They
also serve as a bridge between a data source and a dataset. Reporting Services data processing extensions are
modeled after a subset of the Microsoft .NET Framework data provider interfaces.
The following table lists the data processing extensions included with Reporting Services.
Data processing extension for SQL Server Uses the .NET Framework Data Provider for SQL Server to
connect to and retrieve data from the SQL Server Database
Engine.
Data processing extension for OLE DB Uses the .NET Framework Data Provider for OLE DB. With
this extension, the report server can query any data source
that has an OLE DB provider.
Data processing extension for Oracle Uses the .NET Framework Data Provider for Oracle. With this
extension, the report server can access Oracle data sources
through Oracle client connectivity software.
Data processing extension for ODBC Uses the .NET Framework Data Provider for ODBC. With this
extension, the report server can access data in any database
for which there is an ODBC driver.
You can use the SSRS data processing API to add custom data processing to your report server.
NOTE
Reporting Services has built-in support for data providers in the .NET Framework. If you have already implemented a full
data provider, you do not need to implement a Reporting Services data processing extension. However, you should
consider extending your data provider to include functionality specific to Reporting Services 2005, which includes secure
connection credentials and server-side aggregates.
Each of the data processing extensions included with Reporting Services uses a common set of interfaces. This
ensures that each extension implements comparable functionality.
You can develop data processing extensions for your own data sources, or you can use the interfaces to add an
additional layer of data processing to common database infrastructures. You can deploy your custom data
processing extensions to enable seamless integration of data into the existing report servers in your
organization. You can also use them as part of a custom reporting suite that you provide to your consumers.
Reporting Services data processing extension architecture
The advantages to implementing a custom Reporting Services data processing extension include:
A simplified data access architecture, often with better maintainability and improved performance.
The ability to directly expose extension-specific functionality to consumers.
A specific interface for your consumers to access your data source within Reporting Services.
The step-by-step process flow of a data extension that is called by the report server
The illustration shows the following sequence of events:
1. The report server creates a connection object and passes in the connection string and credentials
associated with the report.
2. The command text of the report is used to create a command object. In the process, the data processing
extension may include code that parses the command text and creates any parameters for the command.
3. Once the command object and any parameters are processed, a data reader is generated that returns a
result set and enables the report server to associate the report data with the report layout.
Developer Requirements
Developing a Reporting Services data processing extension requires you to have:
A deployment computer with Report Designer or a report server installed.
A development computer with Microsoft Visual Studio 2005 or above, or the Microsoft .NET Framework
Software Development Kit (SDK) installed.
An in-depth understanding of Reporting Services features and capabilities.
An in-depth understanding of Microsoft ADO.NET architecture, .NET Framework data providers, ADO.NET
DataSet objects, and the common ADO.NET interfaces.
Development experience in a .NET Framework language such as Microsoft Visual C# or Microsoft Visual
Basic .NET.
See Also
Reporting Services Extensions
Reporting Services Extension Library
Debugging Data Processing Extension Code
11/2/2020 • 2 minutes to read • Edit Online
The Microsoft .NET Framework provides several debugging tools that can help you analyze your data processing
extension code and locate errors in it. The tool that works best will depend on what you are trying to
accomplish. This example uses Visual Studio 2008.
To debug your data processing extension code
1. Launch Visual Studio 2008, and open your data processing extension project.
2. Build the project, and deploy your data processing extension assembly and the accompanying .pdb file to
the Report Designer. For more information about deployment, see How to: Deploy a Data Processing
Extension to Report Designer.
3. Open a new Report Project in Visual Studio while leaving your data processing extension code open in a
separate window of Visual Studio.
4. Navigate to the window of Visual Studio that contains your data processing extension project and set
some break points in your code.
5. With the data processing extension project window still active, click Attach to Process on the Debug
menu.
The Attach to Process dialog opens.
6. From the list of processes, select the devenv.exe process that corresponds to your Report Project and click
Attach .
7. Define your report data source using the Repor t Data tab of the Report Project. You will most likely use
the generic Query Designer to execute a query against your custom data source. This should invoke the
debugger and execute code corresponding to your break points.
8. Step through your code using the F11 key. For more information about using Visual Studio for
debugging, see your Visual Studio documentation.
See Also
Deploying a Data Processing Extension
Reporting Services Extensions
Implementing a Data Processing Extension
Reporting Services Extension Library
Deploying a Data Processing Extension to a Report
Server
11/2/2020 • 2 minutes to read • Edit Online
Report servers use data processing extensions for retrieving and processing data in rendered reports. You
should deploy your data processing extension assembly to a report server as a private assembly. You also need
to make an entry in the report server configuration file, RSReportServer.config.
Procedures
To deploy a data processing extension assembly
1. Copy your assembly from your staging location to the bin directory of the report server on which you
want to use the data processing extension. The default location of the report server bin directory is
%ProgramFiles%\Microsoft SQL Server\MSRS10_50.<Instance Name>\Reporting
Services\ReportServer\bin.
NOTE
This step will prevent an upgrade to a newer instance of SQL Server. For more information, see Upgrade and
Migrate Reporting Services.
2. After the assembly file is copied, open the RSReportServer.config file. The RSReportServer.config file is
located in the ReportServer directory. You need to make an entry in the configuration file for your data
processing extension assembly file. You can open the configuration file with Visual Studio or a simple text
editor, such as Notepad.
3. Locate the Data element in the RSReportServer.config file. An entry for your newly created data
processing extension should be made in the following location:
<Extensions>
<Data>
<Your extension configuration information goes here>
</Data>
</Extensions>
4. Add an entry for your data processing extension. Your entry should include an Extension element with
values for Name and Type and might look like the following:
The value for Name is the unique name of the data processing extension. The value for Type is a
comma-separated list that includes an entry for the fully qualified namespace of your class that
implements the IExtension and IDbConnection interfaces, followed by the name of your assembly (not
including the .dll file extension). By default, data processing extensions are visible. To hide an extension
from user interfaces, such as Report Manager, add a Visible attribute to the Extension element, and set
it to false .
5. Add a code group for your custom assembly that grants FullTrust permission for your extension. You do
this by adding the code group to the rssrvpolicy.config file located by default in
%ProgramFiles%\Microsoft SQL Server\<MSRS10_50.<Instance Name>\Reporting
Services\ReportServer. Your code group might look like the following:
<CodeGroup class="UnionCodeGroup"
version="1"
PermissionSetName="FullTrust"
Name="MyExtensionCodeGroup"
Description="Code group for my data processing extension">
<IMembershipCondition class="UrlMembershipCondition"
version="1"
Url="C:\Program Files\Microsoft SQL Server\MSRS10_50.<Instance Name>\Reporting
Services\ReportServer\bin\MyExtensionAssembly.dll"
/>
</CodeGroup>
URL membership is only one of many membership conditions you might choose for your data processing
extension. For more information about code access security in Microsoft SQL Ser ver Reporting Services, see
Secure Development (Reporting Services).
See Also
Deploying a Data Processing Extension
Reporting Services Extensions
Implementing a Data Processing Extension
Reporting Services Extension Library
Deploying a Data Processing Extension to Report
Designer
11/2/2020 • 2 minutes to read • Edit Online
Report Designer uses data processing extensions for retrieving and processing data while you are designing
reports. You should deploy your data processing extension assembly to Report Designer as a private assembly.
You also need to make an entry in the Report Designer configuration file, RSReportDesigner.config.
To deploy a data processing extension assembly
1. Copy your assembly from your staging location to the Report Designer directory. The default location of
the Report Designer directory is C:\Program Files\Microsoft Visual Studio
9.0\Common7\IDE\PrivateAssemblies.
2. After the assembly file is copied, open the RSReportDesigner.config file. The RSReportDesigner.config file
is also located in the Report Designer directory. You need to make an entry in the configuration file for
your data processing extension assembly file. You can open the configuration file with Microsoft Visual
Studio or with a simple text editor, such as Notepad.
3. Locate the Data element in the RSReportDesigner.config file. An entry for your newly created data
processing extension should be made in the following location:
<Extensions>
<Data>
<Your extension configuration information goes here>
</Data>
</Extensions>
4. Add an entry for your data processing extension which includes an Extension element with values for
the Name , Type , and Visible attributes. Your entry might look like the following:
The value for Name is the unique name of the data processing extension. The value for Type is a
comma-separated list that includes an entry for the fully qualified namespace of your class that
implements the IExtension and IDbConnection interfaces, followed by the name of your assembly (not
including the .dll file extension). By default, data processing extensions are visible. To hide an extension
from user interfaces, such as Report Designer, add a Visible attribute to the Extension element, and set
it to false .
5. Finally, add a code group for your custom assembly that grants FullTrust permission for your extension.
You do this by adding the code group to the rspreviewpolicy.config file located by default in C:\Program
Files\Microsoft Visual Studio 9.0\Common7\IDE\PrivateAssemblies. Your code group might look like the
following:
<CodeGroup class="UnionCodeGroup"
version="1"
PermissionSetName="FullTrust"
Name="MyExtensionCodeGroup"
Description="Code group for my data processing extension">
<IMembershipCondition class="UrlMembershipCondition"
version="1"
Url="C:\Program Files\Microsoft Visual Studio
9.0\Common7\IDE\PrivateAssemblies\MyExtensionAssembly.dll"
/>
</CodeGroup>
URL membership is only one of many membership conditions you might choose for your data processing
extension. For more information about code access security in SQL Server 2005 Reporting Services (SSRS), see
Secure Development (Reporting Services)
<Extension Name="ExtensionName"
Type="Microsoft.ReportingServices.QueryDesigners.GenericQueryDesigner,Microsoft.ReportingServices.Que
ryDesigners"/>
See Also
Deploying a Data Processing Extension
Reporting Services Extensions
Implementing a Data Processing Extension
Reporting Services Extension Library
Deploying a Data Processing Extension
11/2/2020 • 2 minutes to read • Edit Online
Once you have written and compiled your Reporting Services data processing extension into a Microsoft .NET
Framework library, you need to make it discoverable by the report server and by Report Designer. This is as
easy as copying the extension to the appropriate directories and adding entries to the appropriate Reporting
Services configuration files.
Name A unique name for the extension, for example, "SQL" for the
SQL Server data processing extension or "OLEDB" for the
OLE DB data processing extension. The maximum length for
the Name attribute is 255 characters. The name must be
unique among all entries within the Extension element of a
configuration file.
For more information about the RSReportServer.config or RSReportDesigner.config files, see Reporting Services
Configuration Files.
In This Section
TO P IC DESC RIP T IO N
How to: Deploy a Data Processing Extension to a Report Describes how to deploy your data processing extension to a
Server report server.
How to: Deploy a Data Processing Extension to Report Describes how to deploy your data processing extension to
Designer Report Designer.
See Also
Reporting Services Extensions
Implementing a Data Processing Extension
Reporting Services Extension Library
Implementing a Command Class for a Data
Processing Extension
11/2/2020 • 2 minutes to read • Edit Online
The Command object formulates a request and passes it on to the data source. The command text can take
many different syntactical forms, including text and XML. If results are returned, the Command object returns
results as a DataReader object.
To create a Command class, implement IDbCommand. Implement the ExecuteReader method to return a result
set as a DataReader object. The ExecuteReader method of your Command class should include an
implementation that takes a CommandBehavior enumeration as an argument. If you deploy your data
processing extension to Report Designer, provide an implementation that handles a SchemaOnly case in the
ExecuteReader method. A schema-only implementation is used to supply Report Designer with a fields list. The
DataReader object returned by the ExecuteReader method needs to contain type and name information for the
fields, or columns, in your result set.
Optionally, your Command class can implement IDbCommandAnalysis. This interface enables an implementing
class to analyze a query and return a list of parameters in the query. The functionality of the
IDbCommandAnalysis interface is only used in Report Designer. When you implement IDbCommandAnalysis,
you enable users of Report Designer to be prompted for parameters whenever a report is run in preview mode.
In addition, you can view the parameters in the Parameters tab of the Data Set dialog.
NOTE
You should not implement IDbCommandAnalysis if your custom data processing extension does not support parameters.
For a sample Command class implementation, see SQL Server Reporting Services Product Samples.
See Also
Reporting Services Extensions
Implementing a Data Processing Extension
Reporting Services Extension Library
Implementing a Connection Class for a Data
Processing Extension
11/2/2020 • 2 minutes to read • Edit Online
The Connection object represents a database connection or similar resource and is the starting point for users
of a SQL Server Reporting Services data processing extension. It represents connections to database servers,
though any entity with similar behavior can be exposed as a Connection .
To implement a Connection object, create a class that implements IDbConnection and optionally implements
IDbConnectionExtension.
In your implementation, you must ensure that a connection is created and opened before commands can be
executed. Ensure that your implementation requires clients to open and close connections explicitly, rather than
having your implementation open and close connections implicitly for the client. Perform your security checks
when the connection is obtained. Requiring an existing connection for the other classes in your SSRS data
processing extension will then ensure that security checks are always performed when working with your data
source.
The properties of the desired connection are represented as a connection string. It is strongly recommended
that SSRS data processing extensions support the ConnectionString property using the familiar name/value pair
system defined by OLE DB.
NOTE
Connection objects are often resource-intensive to obtain, so you may want to consider pooling connections or other
techniques to mitigate this.
IDbConnection inherits from IExtension. You must implement the IExtension interface as part of your connection
class implementation. The IExtension interface enables a class to implement a localized extension name and to
process extension-specific configuration information stored in the Reporting Services configuration file.
Your Connection object contains the LocalizedName property through its implementation of IExtension. It is
strongly recommended that Reporting Services data processing extensions support the LocalizedName
property, so that users encounter a familiar, localized name for the extension in a user interface, such as Report
Manager.
IExtension also enables your Connection object to retrieve and process custom configuration data stored in the
RSReportServer.config file. For more information about processing custom configuration data, see the
SetConfiguration method.
The class that implements IExtension is not unloaded from memory when the rest of your data processing
extension classes are unloaded. Because of this, you can use your Extension class to store cross-connection
state information or to store data that can be cached in memory. Your Extension class remains in memory as
long as the report server is running.
You can extend your Connection class to include support for credentials in Reporting Services by
implementing IDbConnectionExtension. When you implement the IntegratedSecurity, UserName, and Password
properties of the IDbConnectionExtension interface, you enable the Integrated Security check box and
Username and Password text boxes of the Data Source dialog in Report Designer. This enables Report
Designer to store and retrieve credentials for data sources that support authentication. The credentials are
stored securely and used when rendering reports in preview mode.
NOTE
Implementing IDbConnectionExtension implicitly requires you to implement the members of the IDbConnection and
IExtension interfaces.
For a sample Connection class implementation, see SQL Server Reporting Services Product Samples.
See Also
Reporting Services Extensions
Implementing a Data Processing Extension
Reporting Services Extension Library
Implementing a Data Processing Extension
11/2/2020 • 2 minutes to read • Edit Online
Data processing extensions in Reporting Services enable you to connect to a data source and retrieve data. They
also serve as a bridge between a data source and a dataset. Reporting Services data processing extensions are
modeled after a subset of the Microsoft .NET Framework data provider interfaces.
In This Section
Data Processing Extensions Overview
Introduces how to write a custom data processing extension for Reporting Services.
Preparing to Implement a Data Processing Extension
Describes the interfaces available when implementing an Reporting Services data processing extension, as well
as when you are required to implement a particular interface.
Creating a Data Processing Extension Library
Describes assigning a namespace for your Reporting Services data processing extension and compiling your
data processing extension into a library DLL.
Implementing a Connection Class for a Data Processing Extension
Describes the attributes of a connection and how to implement your own Connection class for your data
processing extension.
Implementing a Command Class for a Data Processing Extension
Describes the attributes of a command, and how to implement your own Command class for your data
processing extension.
Implementing a DataReader Class for a Data Processing Extension
Describes the attributes of a data reader and how to implement your own DataReader class for your data
processing extension.
Using an External Dataset with Reporting Services
Describes how to expose your custom DataSet objects to the report server for consumption.
Deploying a Data Processing Extension
Describes how to deploy your data processing extension.
Debugging Data Processing Extension Code
Describes how to debug code in your data processing extensions.
For a sample of a fully implemented data processing extension, see SQL Server Reporting Services Product
Samples.
See Also
Reporting Services Extensions
Reporting Services Extension Library
Implementing a DataReader Class for a Data
Processing Extension
11/2/2020 • 2 minutes to read • Edit Online
The DataReader object enables a client to retrieve a read-only, forward-only stream of data from a data source.
Results are returned as the query executes and are stored in the network buffer on the client until you request
them using the Read method of the DataReader class. To create a DataReader class, implement IDataReader
and optionally implement IDataReaderExtension. Using a DataReader object increases application performance
both by retrieving data as soon as it is available, rather than waiting for the entire results of the query to be
returned, and (by default) storing only one row at a time in memory, reducing system overhead.
After creating an instance of your Command class, you create a DataReader object by calling
Command.ExecuteReader to retrieve rows from the data source. The DataReader implementation must
provide two basic capabilities: forward-only access over the result sets obtained by executing a command and
access to the column types, names, and values within each row. Clients use the Read method of the
DataReader object to obtain a row from the results of the query.
In Report Designer, your DataReader object is used to retrieve a list of fields as well as schema information
about the result set. This is accomplished by implementing the GetName , GetValue , GetFieldType, and
GetOrdinal methods of the IDataReader interface.
The IDataReaderExtension interface allows you to supply specific aggregation information about your result set.
For a sample DataReader class implementation, see SQL Server Reporting Services Product Samples.
See Also
Reporting Services Extensions
Implementing a Data Processing Extension
Reporting Services Extension Library
Preparing to Implement a Data Processing
Extension
11/2/2020 • 3 minutes to read • Edit Online
Before you implement your SQL Server Reporting Services data processing extension, you should define the
interfaces to implement. You may want to provide extension-specific implementations of the entire set of
interfaces, or you may simply want to focus your implementation on a subset, such as the IDataReader and
IDbCommand interfaces in which clients would interact primarily with a result set as a DataReader object and
would use your SSRS data processing extension as a bridge between the result set and your data source.
You can implement data processing extensions in one of two ways:
Your data processing extension classes can implement the Microsoft .NET Framework data provider
interfaces and optionally the extended data processing extension interfaces provided by Reporting
Services.
Your data processing extension classes can implement the data processing extension interfaces provided
by Reporting Services and optionally the extended data processing extension interfaces.
If your Reporting Services data processing extension will not support a particular property or method,
implement the property or method as no-operation. If a client expects a particular behavior, throw a
NotSuppor tedException exception.
NOTE
A no-operation implementation of a property or method only applies to the properties and methods of those interfaces
that you choose to implement. Optional interfaces that you choose not to implement should be left out of your data
processing extension assembly. For more information about whether an interface is required or optional, see the table
later in this section.
The data processing extension interfaces are identical to a subset of the .NET Framework data provider
interfaces, methods, and properties whenever possible. For more information about implementing a full .NET
Framework data provider, see "Implementing a .NET Framework Data Provider" in your .NET Framework
Software Development Kit (SDK) documentation.
See Also
Reporting Services Extensions
Implementing a Data Processing Extension
Reporting Services Extension Library
Using an External Dataset with Reporting Services
11/2/2020 • 3 minutes to read • Edit Online
The DataSet object is central to supporting disconnected, distributed data scenarios with ADO.NET. The
DataSet object is a memory-resident representation of data that provides a consistent relational programming
model regardless of the data source. It can be used with multiple different data sources, with XML data, or to
manage data local to the application. The DataSet object represents a complete set of data, including related
tables, constraints, and relationships among the tables. Because of the DataSet object's versatility in storing and
exposing data, your data may often be processed and transformed into a DataSet object before any reporting
on that data occurs.
With Reporting Services data processing extensions, you can integrate any custom DataSet objects that are
created by external applications. To accomplish this, you create a custom data processing extension in Reporting
Services that acts like a bridge between your DataSet object and the report server. Most of the code for
processing this DataSet object is contained in the DataReader class that you create.
The first step in exposing your DataSet object to the report server is to implement a provider specific method
in your DataReader class that can populate a DataSet object. The following example shows how to load static
data into a DataSet object by using a provider-specific method in your DataReader class.
'Private members of the DataReader class
Private m_dataSet As System.Data.DataSet
Private m_currentRow As Integer
Once you create or retrieve your dataset, you can use the DataSet object in your implementations of the Read ,
GetValue , GetName , GetOrdinal , GetFieldType , and FieldCount members of the DataReader class.
See Also
Reporting Services Extensions
Implementing a Data Processing Extension
Reporting Services Extension Library
Creating a Delivery Extension Library
11/2/2020 • 2 minutes to read • Edit Online
Each Reporting Services delivery extension you create should be assigned to a unique namespace and built into
a library or assembly file. The exact name of the namespace is not important, but it must be unique and not
shared with any other extension. You should create your own unique namespaces for your company's delivery
extensions.
The following example shows the code to begin a Reporting Services delivery extension, which uses the
namespaces that contain the delivery interfaces and any utility classes.
Imports System
Imports Microsoft.ReportingServices.Interfaces
Namespace CompanyName.ExtensionName
...
using System;
using Microsoft.ReportingServices.Interfaces;
namespace CompanyName.ExtensionName
{
...
When compiling a Reporting Services delivery extension, you must supply to the compiler a reference to
Microsoft.ReportingServices.Interfaces.dll, because the delivery extension interfaces and classes are contained
there. The Microsoft.ReportingServices.Interfaces namespace is needed to implement the IExtension interface,
the IDeliveryExtension interface, and more. For example, if all the files containing the code to implement a
Reporting Services delivery extension written in C# were in a single directory with the extension .cs, the
following command would be issued from that directory to compile the files stored in
CompanyName.ExtensionName.dll.
The following code example shows the command that would be used for Microsoft Visual Basic files with the
extension .vb.
NOTE
You can also design, develop, and build your delivery extension using Visual Studio. For more information about
developing assemblies in Visual Studio, see your Visual Studio documentation.
See Also
Reporting Services Extensions
Implementing a Delivery Extension
Reporting Services Extension Library
Debugging Delivery Extension Code
11/2/2020 • 2 minutes to read • Edit Online
The Microsoft .NET Framework provides several debugging tools that can help you analyze your delivery
extension code and locate errors in it. The tool that works best will depend on what you are trying to
accomplish. This example uses Visual Studio 2008.
To debug your delivery extension code
1. Launch Visual Studio 2008 and open your delivery extension project.
2. Build the project and deploy your delivery extension assembly and the accompanying .pdb file to the
report server and Report Manager. For more information about deployment, see Deploying a Delivery
Extension.
3. If you have written a subscription user interface to extend Report Manager, open Internet Explorer and
navigate to Report Manager while leaving your delivery extension code open in Visual Studio. If you do
not have a subscription user interface deployed for Report Manager, simply open the client application
from which you call your delivery extension using the SOAP API.
4. Navigate to Visual Studio and your delivery extension project, and set some break points in your code.
5. With the delivery extension project still the active window, click Attach to Process on the Debug menu.
The Attach to Process dialog opens.
6. From the list of processes, select the aspnet_wp.exe process (or w3wp.exe if your application is deployed
on IIS 6.0), and click Attach .
7. Define a new subscription using your delivery extension. You will most likely use Report Manager or the
SOAP API. This should invoke the debugger and execute code corresponding to your break points.
8. Step through your code using the F11 key. For more information about using Visual Studio for
debugging, see your Visual Studio documentation.
See Also
Implementing a Delivery Extension
Reporting Services Extension Library
Delivery Extensions Overview
11/2/2020 • 2 minutes to read • Edit Online
SQL Server Reporting Services enables users to create and publish reports that, once created and published, can
be delivered to various locations. In addition, Reporting Services includes several delivery extensions and a
delivery API that enable developers to create additional delivery extensions to further extend the functionality of
delivery in Reporting Services.
The following table lists the delivery extensions included with Reporting Services.
Report Server E-Mail Uses an SMTP server to e-mail reports to individual users or
groups.
Report Server File Share Used to distribute reports within your organization to
network file shares. Provides the ability to automatically copy
a report to a file share on a designated schedule.
Developer Requirements
Developing a Reporting Services delivery extension requires you to have:
A deployment computer with a report server installed.
A development computer with Visual Studio 2008 or the Microsoft .NET Framework Software
Development Kit (SDK) installed.
An in-depth understanding of Reporting Services features and capabilities, specifically subscription and
delivery.
An in-depth understanding of ASP.NET and Web controls if you are planning to implement your own
subscription user interface for Report Manager.
Development experience in a .NET Framework language such as Microsoft Visual C# or Microsoft Visual
Basic .NET.
See Also
Implementing a Delivery Extension
Reporting Services Extension Library
Deploying a Delivery Extension
11/2/2020 • 3 minutes to read • Edit Online
Delivery extensions supply their configuration information in the form of an XML configuration file. The XML file
conforms to the XML schema defined for delivery extensions. Delivery extensions provide infrastructure for
setting and modifying the configuration file.
If a delivery extension is replaced or upgraded, all subscriptions that reference the delivery extension remain
valid.
After you have written and compiled your Reporting Services delivery extension into a Microsoft .NET
Framework library, you must copy the extension to the appropriate directory and add an entry to the
appropriate Reporting Services configuration file so the report server can locate it.
For more information about the RSReportServer.config file, see Reporting Services Configuration Files.
2. After the assembly file is copied, open the RSReportServer.config file. The RSReportServer.config file is
located in the %ProgramFiles%\Microsoft SQL Server\MSRS13.<InstanceName>\Reporting
Services\ReportServer directory. You need to make an entry in the configuration file for your delivery
extension assembly file. You can open the configuration file with Microsoft Visual Studio or a simple text
editor, such as Notepad.
3. Locate the Deliver y element in the RSReportServer.config file. An entry for your newly created delivery
extension should be made in the following location:
<Extensions>
<Delivery>
<Your extension configuration information goes here>
</Delivery>
</Extensions>
4. Add an entry for your delivery extension. Your entry should include an Extension element with values
for Name and Type , and might look like the following:
The value for Name is the unique name of the delivery extension. The value for Type is a comma-
separated list that includes an entry for the fully qualified namespace of your class that implements the
IDeliveryExtension interface, followed by the name of your assembly (not including the .dll file extension).
By default, delivery extensions are visible. To hide an extension from user interfaces, such as the web
portal, add a Visible attribute to the Extension element, and set it to false .
5. Finally, add a code group for your custom assembly that grants FullTrust permission for your delivery
extension. You do this by adding the code group to the rssrvpolicy.config file located by default in
%ProgramFiles%\Microsoft SQL Server\MSRS13.<InstanceName>\Reporting Services\ReportServer.
Your code group might look like the following:
<CodeGroup class="UnionCodeGroup"
version="1"
PermissionSetName="FullTrust"
Name="MyExtensionCodeGroup"
Description="Code group for my delivery extension">
<IMembershipCondition class="UrlMembershipCondition"
version="1"
Url="C:\Program Files\Microsoft SQL Server\MSRS13.<InstanceName>\Reporting
Services\ReportServer\bin\MyExtensionAssembly.dll"
/>
</CodeGroup>
URL membership is only one of many membership conditions you might choose for your delivery
extension. For more information about code access security in SSRS, see.Secure Development (Reporting
Services)
See Also
Implementing a Delivery Extension
Reporting Services Extension Library
Implementing a Delivery Extension
11/2/2020 • 2 minutes to read • Edit Online
SQL Server Reporting Services enables users to create and publish reports that, once created and published, can
be delivered to various locations. In addition, Reporting Services includes several delivery extensions and a
delivery API that enable developers to create additional delivery extensions to further extend the functionality of
delivery in Reporting Services.
For a sample implementation of a delivery extension, see SQL Server Reporting Services Product Samples.
In This Section
Delivery Extensions Overview
Introduces how to write a custom delivery extension for Reporting Services.
Preparing to Implement a Delivery Extension
Describes the interfaces and classes available when implementing an Reporting Services delivery extension, as
well as issues to consider before implementation.
Creating a Delivery Extension Library
Describes assigning a namespace for your Reporting Services delivery extension and compiling your delivery
extension into a library DLL.
Implementing the IDeliveryExtension Interface for a Delivery Extension
Describes the attributes of a delivery extension, and how to implement your own delivery extension class.
Using a Notification Class for a Delivery Extension
Describes the attributes of a Notification class and how to use it in your delivery extension implementation.
Using the Setting Class for a Delivery Extension
Describes the attributes of a Setting class and how to use it in your delivery extension implementation.
Using the Report Class for a Delivery Extension
Describes the attributes of a Repor t class and how to use it in your delivery extension implementation.
Using the RenderedOutputFile Class for a Delivery Extension
Describes the attributes of a RenderedOutputFile class and how to use it in your delivery extension
implementation.
Deploying a Delivery Extension
Describes how to deploy your delivery extension.
Debugging Delivery Extension Code
Describes how to debug code in your delivery extension.
Removing a Delivery Extension
Describes how to remove a delivery extension from a report server.
See Also
Reporting Services Extensions
Reporting Services Extension Library
Implementing the IDeliveryExtension Interface for a
Delivery Extension
11/2/2020 • 2 minutes to read • Edit Online
Your delivery extension class is used to deliver report notifications to users based on the contents of the
notifications. The delivery extension class also provides infrastructure for validating user settings that are passed
to the delivery extension. In addition, your delivery extension class should contain specific properties that clients
can use to gain information about the name of the extension, the settings that the extension supports, and the
rendering formats that are available to the delivery extension.
The IDeliveryExtension interface allows validation of user data as well as for clients to learn about the required
delivery settings
To create a delivery extension class, implement IDeliveryExtension and IExtension. The IDeliver yExtension
interface enables your delivery extension to deliver report notifications using the Deliver method and to validate
incoming extension settings using the ValidateUserData method. The IExtension interface enables your delivery
extension to implement a localized extension name and to process extension-specific configuration information
stored in the SQL Server configuration file. By implementing IExtension , your delivery extension contains the
LocalizedName property. It is strongly recommended that SSRS delivery extensions support the
LocalizedName property, so that users encounter a familiar name for the extension in a user interface, such as
Report Manager.
Your delivery extension must also implement the ExtensionSettings property of the IDeliver yExtension
interface. The report server uses the value returned by the ExtensionSettings property to evaluate the settings
that a delivery extension requires. Clients that interact with delivery extensions use the GetExtensionSettings
method of the Report Server Web service to return a list of settings for the delivery extension.
You can also use your delivery extension class to retrieve and process custom configuration data stored in the
RSReportServer.config file. For more information about processing custom configuration data, see the
SetConfiguration method.
For a sample IDeliver yExtension class implementation, see SQL Server Reporting Services Product Samples.
See Also
Implementing a Delivery Extension
Reporting Services Extension Library
Preparing to Implement a Delivery Extension
11/2/2020 • 2 minutes to read • Edit Online
Before you implement your Reporting Services delivery extension, you should define the interfaces to
implement. You first need to decide how your delivery extension will be used, what settings your delivery
extension will require, and the specific functionality you will need to implement in order to deliver report
notifications.
Each Reporting Services delivery extension must provide the following functionality:
An IExtension interface implementation that represents the extension and a localized extension name.
An IDeliveryExtension implementation that creates a delivery extension that can be used to deliver report
notifications to end users.
The ability to process specific user data for a subscription.
Each delivery extension can be enhanced to include the following functionality:
An ASP.NET user control implementation that enables end users to use Report Manager to create report
subscriptions that use the delivery extension.
The following table describes the available interfaces and classes for delivery extensions.
ISubscriptionBaseUIUserControl Interface A user control that represents the means to retrieve delivery
extension-specific subscription information from the user in
Report Manager (for example, an e-mail address or the path
to a file share).
See Also
Reporting Services Extensions
Implementing a Delivery Extension
Reporting Services Extension Library
Removing a Delivery Extension
11/2/2020 • 2 minutes to read • Edit Online
To remove a Reporting Services delivery extension, simply remove the Extension element for your delivery
extension from the configuration file. After the configuration information is removed, the delivery extension is
no longer available to the report server.
Once a delivery extension's corresponding Extension element is removed from the configuration file, it is no
longer registered with the report server. The report server removes the entry from the list of delivery extensions
and deactivates any subscriptions which use that delivery extension. When a delivery extension is removed,
users are no longer able to select it as a method of notification.
See Also
Implementing a Delivery Extension
Reporting Services Extension Library
Using a Notification Class for a Delivery Extension
11/2/2020 • 2 minutes to read • Edit Online
Retry Functionality
Reporting Services allows you to create a retry queue for notifications that cannot immediately be delivered.
After the report server invokes the Deliver method of a delivery extension, the delivery extension can request
that the report server retry the delivery at a later point in time. If this occurs, the report server places the
notification in an internal queue and retries the delivery after a specific period of time has elapsed.
Administrators can configure the maximum number of retry attempts that the report server performs and the
period between retries in the delivery extension section of the RSReportServer.config file using the
MaxNumberOfRetries XML element and the PeriodBetweenRetries XML element. Notifications are
removed from the retry queue if delivery later succeeds or if the maximum number of retry attempts is reached.
If delivery fails after the maximum number of retries, the notification is discarded.
See Also
Implementing a Delivery Extension
Reporting Services Extension Library
Using the RenderedOutputFile Class for a Delivery
Extension
11/2/2020 • 2 minutes to read • Edit Online
The RenderedOutputFile class represents a data stream and information about the data stream's associated
properties. The Data property of the RenderedOutputFile class is used to represent a rendered report or report
resource as a Stream object.
The Render method of the Repor t object returns an array of one or more RenderedOutputFile objects that
together constitute a single rendered report. The first RenderedOutputFile object is the rendered report. Any
other RenderedOutputFile objects are resources that must be delivered along with the report data (for example,
an HTML file and associated images). Rendering extensions that are single-stream rendering extensions (IMAGE,
PDF, MHTML, and EXCEL) return only one RenderedOutputFile object in the array.
For an example of how to use the RenderedOutputFile class, see SQL Server Reporting Services Product
Samples.
See Also
Implementing a Delivery Extension
Reporting Services Extension Library
Using the Report Class for a Delivery Extension
11/2/2020 • 2 minutes to read • Edit Online
The Report class represents a report in the report server database. Any subscription is associated with a specific
report. The report is contained in the notification. Your delivery extension can use the Report object that is part
of the notification to render the report. The Report object also contains report-specific properties, such as the
URL to the report on the report server and the name of the report. These properties can all be used as part of
your delivery provider.
The Render method of the Report class can be used to render a report. The Render method returns an array of
one or more RenderedOutputFile objects that together comprise a single rendered report. The first
RenderedOutputFile object is the rendered report. Any other RenderedOutputFile objects are resources that
must be delivered along with the report data (for example, an HTML file and associated images). Rendering
extensions that are single-stream rendering extensions (IMAGE, PDF, MHTML, and Excel) return only one
RenderedOutputFile object in the array.
The RenderedOutputFile object, which contains the report stream, can be included as part of a delivery.
For an example of how to use the Report class, see SQL Server Reporting Services Product Samples
See Also
Implementing a Delivery Extension
Reporting Services Extension Library
Using the RenderedOutputFile Class for a Delivery Extension
Using the Setting Class for a Delivery Extension
11/2/2020 • 2 minutes to read • Edit Online
The Setting class is located in the Microsoft.ReportingServices.Interfaces namespace and represents information
about extension settings for a delivery extension. The Setting class provides infrastructure for storing
information about the settings that are required in order for a delivery extension to function properly. For
example, in Report Server E-Mail delivery, a user is required to supply settings specific to e-mail delivery, such
as the recipient's address, the sender's address, the subject line of the e-mail, and more. Undoubtedly, your
custom delivery providers will require the user to supply specific settings in order for the delivery extension to
deliver notifications and reports.
The Setting class is used when implementing the ExtensionSettings property of the IDeliveryExtension interface.
The Setting class is also used for processing the extension setting data that is supplied by a user when a
subscription or notification is created.
For an example of how to use the Setting class, see SQL Server Reporting Services Product Samples.
See Also
Implementing a Delivery Extension
Reporting Services Extension Library
Deploying a Rendering Extension
11/2/2020 • 3 minutes to read • Edit Online
After you have written and compiled your Reporting Services report rendering extension into a .NET Framework
library, you need to make it discoverable by the report server and by Report Designer. To do so, copy the
extension to the appropriate directory and add entries to the appropriate Reporting Services configuration files.
Name A unique name for the extension. The maximum length for
the Name attribute is 255 characters. The name must be
unique among all entries within the Extensions element of
a configuration file. If a duplicate name is present, the report
server returns an error.
<Extensions>
<Render>
<extension configuration>
</Render>
</Extensions>
4. Add an entry for your rendering extension. Your entry should include an element that has values for
Name and Type , and might look like the following:
The value for Name is the unique name of the rendering extension. The value for Type is a comma-
separated list that includes an entry for the fully qualified namespace of your IRenderingExtension
implementation, followed by the name of your assembly (not including the .dll file extension). By default,
rendering extensions are visible. To hide an extension from user interfaces, such as Report Manager, add a
Visible attribute to the Extension element, and set it to false .
See Also
Implementing a Rendering Extension
Rendering Extensions Overview
Implementing the IRenderingExtension Interface
Security Considerations for Extensions
Implementing a Rendering Extension
11/2/2020 • 2 minutes to read • Edit Online
A rendering extension is a component or module of a report server that transforms report data and layout
information into a device-specific format. SQL Server Reporting Services includes six rendering extensions:
HTML, Excel, Word, CSV or Text, XML, Image, and PDF. You can create additional rendering extensions to generate
reports in other formats.
NOTE
To determine which rendering extensions are available, you can view the list of installed extensions in the
RSReportServer.config file.
In This Section
Rendering Extensions Overview
Introduces how to write a custom rendering extension for Reporting Services.
Implementing the IRenderingExtension Interface
Describes the attributes of a rendering extension.
Deploying a Rendering Extension
Describes how to deploy a rendering extension on a report server.
Removing a Rendering Extension
Describes how to remove a rendering extension from a report server.
See Also
Reporting Services Extensions
Reporting Services Extension Library
Implementing the IRenderingExtension Interface
11/2/2020 • 2 minutes to read • Edit Online
The rendering extension takes the results from a report definition that is combined with the actual data and
renders the resulting data to a format that is useable. The transformation of the combined data and formatting
is done by using a common language runtime (CLR) class that implements IRenderingExtension. This transforms
the object model into an output format that is consumable by a viewer, printer, or other output target.
The IRenderingExtension has three methods that must be coded:
Render - renders the report.
RenderStream - renders a specific stream from the report.
GetRenderingResource - gets additional information, such as icons, that are required for the report.
The following sections discuss these methods in more detail.
Render Method
The Render method contains arguments that represent the following objects:
The report that you want to render. This object contains properties, data, and layout information for the
report. The report is the root of the report object model tree.
The ServerParameters that contain the string dictionary object, with the parameters for the report server,
if any.
The deviceInfo parameter that contain the device settings. For more information, see Passing Device
Information Settings to Rendering Extensions.
The clientCapabilities parameter that contains a NameValueCollection dictionary object that has
information about the client to which you are rendering.
The RenderProperties that contains information about the rendering result.
The createAndRegisterStream is a delegate function to be called to get a stream to render into.
deviceInfo Parameter
The deviceInfo parameter contains rendering parameters, not report parameters. These rendering parameters
are passed to the rendering extension. The deviceInfo values are converted into a NameValueCollection object
by the report server. Items in the deviceInfo parameter are treated as case-insensitive values. If the render
request came as a result of URL access, the URL parameters in the form rc:key=value are converted to
key/value pairs in the deviceInfo dictionary object. The browser detection code also provides the following items
in the clientCapabilities dictionary: EcmaScriptVersion, JavaScript, MajorVersion, MinorVersion, Win32, Type, and
AcceptLanguage. Any name/value pair in the deviceInfo parameter that is not understood by the rendering
extension is ignored. The following code sample shows a sample GetRenderingResource method that retrieves
icons:
public void GetRenderingResource (CreateStream createStreamCallback, NameValueCollection deviceInfo)
{
string[] iconTagValues = deviceInfo.GetValues("Icon");
if ((iconTagValues != null) && (iconTagValues.Length > 0) )
{
// Create a stream to output to.
Stream outputStream = createStreamCallback(m_iconResourceName, "gif", null, "image/gif", false);
// Get the GIF image for one of the buttons on the toolbar
Image requiredImage = (Image) m_resourcemanager.GetObject(m_iconResourceName
// Write the image to the output stream
requiredImage.Save(outputStream, requiredImage.RawFormat);
}
return;
}
RenderStream Method
The RenderStream method renders a particular stream from the report. All streams are created during the initial
Render call, but the streams are not returned to the client initially. This method is used for secondary streams,
such as images in HTML rendering, or additional pages of a multi-page rendering extension, such as Image/EMF.
GetRenderingResource Method
The GetRenderingResource method retrieves the information without executing an entire rendering of the
report. There are times when the report requires information that does not require the report itself to be
rendered. For example, if you need the icon associated with the rendering extension, use the deviceInfo
parameter containing the single tag <Icon> . In these cases, you can use the GetRenderingResource method.
See Also
Implementing a Rendering Extension
Rendering Extensions Overview
Removing a Rendering Extension
11/2/2020 • 2 minutes to read • Edit Online
To remove a Reporting Services rendering extension, simply remove the Extension element for your rendering
extension from the rsreportserver.config file, located in %ProgramFiles%\Microsoft SQL
Ser ver\MSRS10_50.<Instance Name>\Repor ting Ser vices\Repor tSer ver folder. If you made entries for
a Report Designer as well as a report server, remove the Extension element from the RSReportDesigner
Configuration File as well. After the configuration information is removed, the rendering extension is no longer
available to the component.
See Also
Reporting Services Configuration Files
Implementing a Rendering Extension
Rendering Extensions Overview
Implementing the IRenderingExtension Interface
Security Considerations for Extensions
Deploying a Rendering Extension
Rendering Extensions Overview
3/5/2021 • 3 minutes to read • Edit Online
A rendering extension is a component or module of a report server that transforms report data and layout
information into a device-specific format. SQL Server Reporting Services includes seven rendering extensions:
HTML, Excel, Word, CSV or Text, XML, Image, and PDF. You can create additional rendering extensions to generate
reports in other formats.
NOTE
To determine which rendering extensions are available, you can view the list of installed extensions in the
RSReportServer.config file.
The following table describes the rendering extensions that are included with Reporting Services.
HTML 4.0 (part of the HTML rendering extension) HTML is the format used to initially render the report. If
your browser support HTML 4.0, that is the format that is
used. Otherwise, HTML 3.2 is used.
MHTML (part of the HTML rendering extension) Renders a report in MHTML. The report opens in Internet
Explorer. The format is shown as Web Archive in the Export
drop-down of the report toolbar.
For more information on the recommended formats and their uses, see Export Reports (Report Builder and
SSRS).
Each of the rendering extensions implemented by Microsoft and shipped with Reporting Services uses a
common set of interfaces. This ensures that each extension implements comparable functionality and reduces
the complexity of the rendering code in the core of the report server.
See Also
Implementing a Rendering Extension
Reporting Services Extension Library
Authentication in Reporting Services
11/2/2020 • 6 minutes to read • Edit Online
Authentication is the process of establishing a user's right to an identity. There are many techniques that you can
use to authenticate a user. The most common way is to use passwords. When you implement Forms
Authentication, for example, you want an implementation that queries users for credentials (usually by some
interface that requests a login name and password) and then validates users against a data store, such as a
database table or configuration file. If the credentials can't be validated, the authentication process fails and the
user will assume an anonymous identity.
Authentication Flow
The Reporting Services Web service provides custom authentication extensions to enable Forms Authentication
by the web portal and the report server.
The LogonUser method of the Reporting Services Web service is used to submit credentials to the report server
for authentication. The Web service uses HTTP headers to pass an authentication ticket (known as a "cookie")
from the server to the client for validated logon requests.
The following illustration depicts the method of authenticating users to the Web service when your application
is deployed with a report server configured to use a custom authentication extension.
As shown in Figure 2, the authentication process is as follows:
1. A client application calls the Web service LogonUser method to authenticate a user.
2. The Web service makes a call to the LogonUser method of your security extension, specifically, the class
that implements IAuthenticationExtension2 .
3. Your implementation of LogonUser validates the user name and password in the user store or security
authority.
4. Upon successful authentication, the Web service creates a cookie and manages it for the session.
5. The Web service returns the authentication ticket to the calling application on the HTTP header.
When the Web service successfully authenticates a user through the security extension, it generates a cookie
that is used for subsequent requests. The cookie may not persist within the custom security authority because
the report server does not own the security authority. The cookie is returned from the LogonUser Web service
method and is used in subsequent Web service method calls and in URL access.
NOTE
In order to avoid compromising the cookie during transmission, authentication cookies returned from LogonUser should
be transmitted securely using Transport Layer Security (TLS), previously known as Secure Sockets Layer (SSL), encryption.
If you access the report server through URL access when a custom security extension is installed, Internet
Information Services (IIS) and ASP.NET automatically manage the transmission of the authentication ticket. If you
are accessing the report server through the SOAP API, your implementation of the proxy class must include
additional support for managing the authentication ticket. For more information about using the SOAP API and
managing the authentication ticket, see "Using the Web Service with Custom Security."
Forms Authentication
Forms Authentication is a type of ASP.NET authentication in which an unauthenticated user is directed to an
HTML form. Once the user provides credentials, the system issues a cookie containing an authentication ticket.
On later requests, the system first checks the cookie to see if the user was already authenticated by the report
server.
Reporting Services can be extended to support Forms Authentication using the security extensibility interfaces
available through the Reporting Services API. If you extend Reporting Services to use Forms Authentication, use
Transport Layer Security (TLS), previously known as Secure Sockets Layer (SSL), for all communications with the
report server to prevent malicious users from gaining access to another user's cookie. TLS enables clients and a
report server to authenticate each other and to ensure that no other computers can read the contents of
communications between the two computers. All data sent from a client through a TLS connection is encrypted
so that malicious users cannot intercept passwords or data sent to a report server.
Forms Authentication is generally implemented to support accounts and authentication for platforms other than
Windows. A graphical interface is presented to a user who requests access to a report server, and the supplied
credentials are submitted to a security authority for authentication.
Forms Authentication requires that a person is present to enter credentials. For unattended applications that
communicate directly with the Reporting Services Web service, Forms Authentication must be combined with a
custom authentication scheme.
Forms Authentication is appropriate for Reporting Services when:
You need to store and authenticate users that do not have Microsoft Windows accounts, and
You need to provide your own user interface form as a logon page between different pages on a Web
site.
Consider the following when writing a custom security extension that supports Forms Authentication:
If you use Forms Authentication, anonymous access must be enabled on the report server virtual
directory in Internet Information Services (IIS).
ASP.NET authentication must be set to Forms. You configure ASP.NET authentication in the Web.config file
for the report server.
Reporting Services can authenticate and authorize users with either Windows Authentication or custom
authentication, but not both. Reporting Services does not support simultaneous use of multiple security
extensions.
See Also
Implementing a Security Extension
Authorization in Reporting Services
11/2/2020 • 3 minutes to read • Edit Online
Authorization is the process of determining whether an identity should be granted the requested type of access
to a given resource in the report server database. Reporting Services uses a role-based authorization
architecture that grants a user access to a given resource based on the user's role assignment for the
application. Security extensions for Reporting Services contain an implementation of an authorization
component that is used to grant access to users once they are authenticated on the report server. Authorization
is invoked when a user attempts to perform an operation on the system or a report server item through the
SOAP API and via URL access. This is made possible through the security extension interface
IAuthorizationExtension2 . As stated previously, all extensions inherit from IExtension the base interface for
any extension that you deploy. IExtension and IAuthorizationExtension2 are members of the
Microsoft.Repor tingSer vices.Interfaces namespace.
Checking Access
In authorization, the key to any custom security implementation is the access check, which is implemented in the
CheckAccess method. CheckAccess is called each time a user attempts an operation on the report server. The
CheckAccess method is overloaded for each operation type. For folder operations, an example of an access
check might look like the following:
The report server calls the CheckAccess method by passing in the name of the logged-on user, a user token, the
security descriptor for the item, and the requested operation. Here you would check the security descriptor for
the user name and the appropriate permission to complete the request, then return true to signify that access is
granted or false to signify access is denied.
Security Descriptors
When setting authorization policies on items in the report server database, a client application (such as Report
Manager) submits the user information to the security extension along with a security policy for the item. This
security policy and user information are known collectively as a security descriptor. A security descriptor
contains the following information for an item in the report server database:
The group or user that has some type of permission to perform operations on the item.
The item's type.
A discretionary access control list controlling access to the item.
Security descriptors are created using the Web service SetPolicies and SetSystemPolicies methods.
Authorization Flow
Reporting Services authorization is controlled by the security extension currently configured to run on the
server. Authorization is role-based and limited to the permissions and operations supplied by the Reporting
Services security architecture. The following diagram depicts the process of authorizing users to operate on
items in the report server database:
APPLIES TO: ✔
️ SQL Server 2016 Reporting Services and later ✔
️ Power BI Report Server
Reporting Services 2016 introduced a new web portal in order to host new Odata APIs and also host new report
workloads such as mobile reports and KPIS. This new portal relies on newer technologies and is isolated from
the familiar ReportingServicesService by running in a separate process. This process is not an ASP.NET hosted
application and as such breaks assumptions from existing custom security extensions. Moreover, the current
interfaces for custom security extensions don't allow for any external context to be passed-in, leaving
implementers with the only choice to inspect well-known global ASP.NET Objects, this required some changes to
the interface.
What Changed?
A new interface was introduced that can be implemented which provides an IRSRequestContext providing the
more common properties used by extensions to make decisions related to authentication.
In previous versions, Report Manager was the front-end and could be configured with its own custom login
page. In Reporting Services 2016, only one page hosted by reportserver is supported and should authenticate
to both applications.
Implementation
In previous versions, extensions could rely on a common assumption that ASP.NET objects would be readily
available. Since the new portal does not run in ASP.NET, the extension might hit issues with objects being NULL.
The most generic example is accessing HttpContext.Current to read request information such as headers and
cookies. In order to allow extensions to make the same decisions we introduced a new method in the extension
that provides request information and is called when authenticating from the portal.
Extensions have to implement the IAuthenticationExtension2 interface in order to leverage this. The extensions
will need to implement both versions of GetUserInfo method, as is called by the reportserver context and other
used in webhost process. The sample below shows one of the simple implementations for the portal where the
identity resolved by the reportserver is the one used.
public void GetUserInfo(IRSRequestContext requestContext, out IIdentity userIdentity, out IntPtr userId)
{
userIdentity = null;
if (requestContext.User != null)
{
userIdentity = requestContext.User;
}
Machine Keys
For the case of Forms authentication which requires the decryption of the Authentication cookie, both processes
need to be configured with the same machine key and decryption algorithm. This was a step familiar to those
who had previously setup Reporting Services to work on scale-out environments, but now is a requirement
even for deployments on a single machine.
You should use a validation key specific for you deployment, there are several tools to generate the keys like
Internet Information Services Manager (IIS). Other tools can be found on the internet.
SQL Server Reporting Services 2017 and later
\Repor tSer ver\rsRepor tSer ver.config
Add under <configuration> .
<system.web>
<machineKey validationKey=="[YOUR KEY]" decryptionKey=="[YOUR KEY]" validation="AES" decryption="AES"
/>
</system.web>
Next steps
Configure Custom or Forms Authentication on the Report Server
Configure Report Manager to Pass Custom Authentication Cookies
More questions? Try asking the Reporting Services forum
Implementing a Security Extension
11/2/2020 • 2 minutes to read • Edit Online
Microsoft Windows Authentication is the primary system for securing reports in SQL Server Reporting Services.
In certain cases, however, you may need to extend the Reporting Services security system to accommodate
custom security in your enterprise. You can do this using the development platform provided by the Reporting
Services API. This section will present an overview of security extensions in Reporting Services.
For complete details about implementing, deploying, and removing a Reporting Services security extension,
please see SQL Server Reporting Services Product Samples.
In This Section
Security Extensions Overview
Provides an overview of Reporting Services Security Extensions.
Authentication in Reporting Services
Discusses authentication in Reporting Services.
Authorization in Reporting Services
Covers authorization in Reporting Services.
See Also
Microsoft.ReportingServices.Interfaces
Reporting Services Extensions
Reporting Services Extension Library
Security Extensions Overview - Reporting Services
(SSRS)
11/2/2020 • 2 minutes to read • Edit Online
A Reporting Services security extension enables the authentication and authorization of users or groups; that is,
it enables different users to log on to a report server and, based on their identities, perform different tasks or
operations. By default, Reporting Services uses a Windows-based authentication extension, which uses
Windows account protocols to verify the identities of users who claim to have accounts on the system.
Reporting Services uses a role-based security system to authorize users. The Reporting Services role-based
security model is similar to the role-based security models of other technologies.
Because security extensions are based on an open and extensible API, you can create new authentication and
authorization extensions in Reporting Services. The following is an example of a typical security extension
implementation that uses Forms-based authentication and authorization:
See Also
Implementing a Security Extension
Code Access Security in Reporting Services
11/2/2020 • 4 minutes to read • Edit Online
Code access security centers on these core concepts: evidence, code groups, and named permission sets. In
Reporting Services, the Report Manager, Report Designer, and Report Server components each have a policy file
that configures code access security for custom assemblies as well as data, delivery, rendering, and security
extensions. The following sections provide an overview of code access security. For more detailed information
about the topics covered in this section, see "Security Policy Model" in the Microsoft .NET Framework SDK
documentation.
Reporting Services uses code access security because, although the report server is built on ASP.NET technology,
there is a substantial difference between a typical ASP.NET application and the report server. A typical ASP.NET
application does not execute user code. In contrast, Reporting Services uses an open and extensible architecture
that allows users to program against the report definition files using the Code element of the Report Definition
Language and to develop specialized functionality into a custom assembly for use in reports. Furthermore,
developers can design and deploy powerful extensions that enhance the capabilities of the report server. With
this power and flexibility comes the need to provide as much protection and security as possible.
Reporting Services developers can use any .NET Framework assembly in their reports and natively call upon all
of the functionality of assemblies deployed to the global assembly cache. The only thing that the report server
can control is what permissions are given for report expressions and loaded custom assemblies. In Reporting
Services, custom assemblies receive Execute -only permissions by default.
Evidence
Evidence is the information that the common language runtime (CLR) uses to determine a security policy for
code assemblies. Evidence indicates to the runtime that code has a particular characteristic. Common forms of
evidence include digital signatures and the location of an assembly. Evidence can also be custom designed to
represent other information that is meaningful to the application.
Both assemblies and application domains receive permissions based on evidence. For example, the location of
an assembly that Reporting Services is attempting to access is one common form of evidence for weak-named
assemblies. This is known as URL evidence. URL evidence for a custom data processing extension deployed to a
report server might be "C:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting
Services\ReportServer\bin\Microsoft.Samples.ReportingServices.FsiDataExtension.dll". The strong name or
digital signature of an assembly is another common form of evidence. In this case, the evidence is the public key
information for an assembly.
Code Groups
A code group is a logical grouping of code that has a specified condition for membership. Any code that meets
the membership condition is included in the group. Administrators configure a security policy by managing
code groups and their associated permission sets.
A membership condition for a code group is based on evidence. For example, a URL membership for a code
group is based on URL evidence. The common language runtime (CLR) uses identifying characteristics such as
URL evidence to describe the code and to determine whether a group's membership condition has been met.
For example, if the membership condition of a code group is "code in the assembly C:\Program Files\Microsoft
SQL Server\MSRS10_50.MSSQLSERVER\Reporting
Services\ReportServer\bin\Microsoft.Samples.ReportingServices.FsiDataExtension.dll", the runtime examines
the evidence to determine whether the code originates from that location. An example of a configuration entry
for this type of code group might look like the following:
<CodeGroup class="UnionCodeGroup"
version="1"
PermissionSetName="FullTrust"
Name="MyCodeGroup"
Description="Code group for my data processing extension">
<IMembershipCondition class="UrlMembershipCondition"
version="1"
Url="C:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting
Services\ReportServer\bin\Microsoft.Samples.ReportingServices.FsiDataExtension.dll"
/>
</CodeGroup>
You should work with your system administrator or application deployment expert to determine the type of
code access security and code groups that your custom assemblies or Reporting Services extensions require.
NOTE
Custom data, delivery, rendering, and security extensions in Reporting Services must run under the FullTrust permission
set. Work with your system administrator to add the appropriate code group and membership conditions for your
Reporting Services extensions.
You can associate your own custom levels of permissions for custom assemblies that you use with reports. For
example, if you want to allow an assembly to access a specific file, you can create a new named permission set
with specific file I/O access and then assign the permission set to your code group. The following permission set
grants read-only access to the file MyFile.xml:
<PermissionSet class="NamedPermissionSet"
version="1"
Name="MyNewFilePermissionSet"
Description="A special permission set that grants read access to my file.">
<IPermission class="FileIOPermission"
version="1"
Read="C:\MyFile.xml"/>
<IPermission class="SecurityPermission"
version="1"
Flags="Assertion, Execution"/>
</PermissionSet>
A code group that you grant this permission set might look like the following:
<CodeGroup class="UnionCodeGroup"
version="1"
PermissionSetName="MyNewFilePermissionSet"
Name="MyNewCodeGroup"
Description="A special code group for my custom assembly.">
<IMembershipCondition class="UrlMembershipCondition"
version="1"
Url="C:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting
Services\ReportServer\bin\MyCustomAssembly.dll"/>
</CodeGroup>
See Also
Secure Development (Reporting Services)
Secure Development (Reporting Services)
11/2/2020 • 2 minutes to read • Edit Online
The Microsoft .NET Framework provides a robust security system that can run code in tightly constrained,
administrator-defined security contexts. Reporting Services uses the .NET Framework security system, known as
code access security (or evidence-based security). Under code access security, a user may be trusted to access a
resource, but if the code the user executes is not trusted, access to the resource will be denied.
Security based on code, as opposed to specific users, permits security to be expressed for custom assemblies or
data, delivery, rendering, and security extensions that you develop for Reporting Services. Your extension code
may be executed by any number of Reporting Services users, all of whom are unknown at development time.
The custom assemblies or extensions that you develop require specific security policies in Reporting Services.
These security policies are represented as types in the .NET Framework. For a more information about code
access security, see "Code Access Security" in the .NET Framework documentation.
In This Section
Code Access Security in Reporting Services
Introduces code access security and policy configuration for custom assemblies and extensions in Reporting
Services.
Understanding Security Policies
Describes the various assembly types in Reporting Services and how code access security affects code
permissions.
Using Reporting Services Security Policy Files
Describes the different Reporting Services components and the corresponding policy configuration files.
Understanding Security Policies
11/2/2020 • 4 minutes to read • Edit Online
Any code that is executed by a report server must be part of a specific code access security policy. These security
policies consist of code groups that map evidence to a set of named permission sets. Often, code groups are
associated with a named permission set that specifies the allowable permissions for code in that group. The
runtime uses evidence provided by a trusted host or by the loader to determine which code groups the code
belongs to and, therefore, which permissions to grant the code. Reporting Services adheres to this security
policy architecture as defined by the Microsoft .NET Framework common language runtime (CLR). The following
sections describe the various types of code in Reporting Services and the policy rules associated with them.
IMPORTANT
You must modify the Reporting Services policy configuration files to allow FullTrust for any third-party extensions. If you
do not add a code group with FullTrust for your custom extensions, they cannot be used by the report server.
For more information about the policy configuration files in Reporting Services, see Using Reporting Services
Security Policy Files.
Execution permission allows code to run (execute), but not to use protected resources. All expressions found
within a report are compiled into an assembly (called an "expression host" assembly) that is stored as a part of
the compiled report. When the report is executed, the report server loads the expression host assembly and
makes calls into that assembly to execute expressions. Expression host assemblies are signed with a specific key
that is used to define the code group for all expression hosts.
Report expressions reference report object model collections (fields, parameters, etc.) and perform simple tasks
like arithmetic and string operations. Code that performs these simple operations only requires Execution
permission. By default, user-defined methods in the Code element and any custom assemblies are granted
Execution permission in Reporting Services. Thus, for most expressions, the current configuration does not
require that you modify any security policy files. To grant additional permissions to expression host assemblies,
an administrator needs to modify the policy configuration files of the report server and Report Designer, and
change the report expressions code group. Because it is a global setting, changing default permissions for the
expression hosts affects all reports. For this reason, it is highly recommended that you place all code that
requires additional security into a custom assembly. Only this assembly will be granted the permissions you
need.
IMPORTANT
Code that calls external assemblies or protected resources should be incorporated into a custom assembly for use in
reports. Doing so gives you more control over the permissions requested and asserted by your code. You should not
make calls to secure methods within the Code element. Doing so requires you to grant FullTrust to the report
expression host and grants all custom code full access to the CLR.
Cau t i on
Do not grant FullTrust to the code group for a report expression host. If you do, you enable all report
expressions to make protected system calls.
See Also
Code Access Security in Reporting Services
Secure Development (Reporting Services)
Using Reporting Services Security Policy Files
11/2/2020 • 3 minutes to read • Edit Online
Reporting Services stores component security policy information in three configuration files that are copied to
the file system during setup. These configuration files can contain a combination of internal-use and user-
defined security policies for code assemblies in Reporting Services. The three configuration files correspond to
three securable components in Reporting Services: The report server and Windows service, the Report Manager
Web application, and the Report Designer preview window.
NOTE
There are two preview modes for Report Designer: the preview tab and the pop-up preview window that is launched
when your Report Project is started in DebugLocal mode. The Preview tab is not a securable component and does not
apply security policy settings. The preview window is meant to simulate the report server functionality and therefore has a
policy configuration file that you or an administrator must modify to use custom assemblies and custom extensions in
Report Designer.
The security policy configuration files contain security class information, some default named permission sets,
and the code groups for assemblies in Reporting Services. The policy configuration files of Reporting Services
are similar to the Security.config file that determines the code group hierarchy and permission sets associated
with machine and enterprise level policies in the .NET Framework. The location of this file is
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG\security.config.
IMPORTANT
You should backup your policy configuration files prior to making any changes.
Using this approach accomplishes two things. First, it enables you to use a visual tool to build your code groups
and permission sets for Reporting Services. This is much easier than writing XML configuration elements from
scratch. Secondly, it ensures that you do not corrupt the security policy configuration files with malformed XML
elements and attributes. For more information about the Code Access Security Policy Utility, see Using Reporting
Services Security Policy Files on MSDN.
Before modifying policy configuration files, you should read all the information available in this section and
related topics. Modifying the policy configuration of Reporting Services can have a significant security impact on
how Reporting Services components execute external code modules.
See Also
Understanding Security Policies
Reporting Services Extensions
11/2/2020 • 2 minutes to read • Edit Online
The modular architecture of Reporting Services is designed for extensibility. A managed code API is available so
that you can easily develop, install, and manage extensions consumed by many Reporting Services components.
You can create private or shared assemblies using the Microsoft .NET Framework and add new Reporting
Services functionality to meet your evolving business needs.
The unique extensibility architecture of Reporting Services enables developers to extend specific features of the
product and its components. Currently, broad support exists for extending the data processing capabilities of
Reporting Services. The data processing API includes familiar, .NET Framework data provider constructs and
conventions that enable developers to build additional data processing into Reporting Services. These data
processing extensions add functionality to both the Report Server and Report Designer, enabling seamless
integration of custom data into reports.
Another supported extension is the delivery extension. The delivery API is fully integrated with the .NET
Framework architecture, enabling a wide variety of delivery mechanisms to be used when sending report
notifications to users. You can extend the Report Server to provide custom delivery to users and you can extend
the subscription management pages of Report Manager to enable subscriptions that use custom delivery
extensions.
Another report server extension, Report Definition Customization Extension (RDCE), can dynamically customize
a report definition before it is passed to the processing engine. You might customize reports based on factors
such as users or languages. For example, you might want to implement different views for various users such as
managers or members of a department, or you might want to customize a report to have a different layout
when it is rendered in French or Arabic.
In This Section
Security Considerations for Extensions
Describes security issues related to developing and deploying Reporting Services extensions.
Implementing a Data Processing Extension
Describes the requirements and steps for implementing a data processing extension for Reporting Services.
Implementing a Delivery Extension
Describes the requirements and steps for implementing a delivery extension for Reporting Services.
Implementing a Rendering Extension
Contains an introduction to developing rendering extensions.
Implementing a Security Extension
Describes the requirements and steps for implementing a Reporting Services security extension.
Reporting Services Extension Library
Contains the programming reference for the extension API library for the Reporting Services extensibility
features.
Security Considerations for Extensions
11/2/2020 • 2 minutes to read • Edit Online
Every application that targets the common language runtime (CLR) must interact with the CLR security system.
When such an application runs, it is automatically evaluated and given a set of permissions by the CLR.
Depending on the permissions that the application receives, it either continues running or generates a security
exception. The local security settings and policies in the security policy configuration files for a particular report
server define the code permissions that an assembly receives.
Before requesting permissions, you need to be aware of the resources and protected operations your extension
code is planning to use, and you also need to know which permissions protect those resources and operations.
In addition, you need to keep track of any resources accessed by any class library methods that are called by the
extension components. For more information, see "Requesting Permissions" in the .NET Framework Developer's
Guide.
Extensions deployed to a report server must run as fully trusted, meaning that your extension needs to be part
of a code group that is granted the FullTrust permission set. This also means that your extension may have
access to certain server resources and operations available through the CLR depending on the user that is being
authenticated for a particular report. For more information about code groups and extensions, see Code Access
Security in Reporting Services.
IMPORTANT
Reporting Services enforces .NET Framework security for all of its extensions.
The following conditions apply to the deployment of data processing, delivery, rendering, and security
extensions in Reporting Services:
Only the local administrator has permission to deploy an extension.
Only users with the appropriate read/write permissions can change the configuration files for the
Reporting Services component that is being extended.
Only privileged users have permission to edit the security policy files and enable code access security for
an extension.
For more information about code access security in Reporting Services, see Secure Development (Reporting
Services).
For more information about .NET Framework security, see ".NET Framework Security" in your .NET Framework
Developer's Guide.
See Also
Reporting Services Extensions
Reporting Services Extension Library
Creating a Custom Report Item Design-Time
Component
3/5/2021 • 5 minutes to read • Edit Online
A custom report item design-time component is a control that can be used in the Visual Studio Report Designer
environment. The custom report item design-time component provides an activated design surface that can
accept drag-and-drop operations, integration with the Visual Studio property browser, and the ability to provide
custom property editors.
With a custom report item design-time component, the user can position a custom report item on a report in
the design environment, set custom data properties on the custom report item, and then save the custom report
item as part of the report project.
The properties that are set using the design-time component in the development environment are serialized
and deserialized by the host design environment and then stored as elements in the Report Definition Language
(RDL) file. When the report is executed by the report processor, the properties that are set using the design-time
component are passed by the report processor to a custom report item run-time component, which renders the
custom report item and passes it back to the report processor.
NOTE
The custom report item design-time component is implemented as a Microsoft.NET Framework component. This
document will describe implementation details specific to the custom report item design-time component. For more
information about developing components using the .NET Framework, see Components in Visual Studio in the MSDN
library.
For a sample of a fully implemented custom report item, see SQL Server Reporting Services Product Samples.
namespace PolygonsCRI
{
[LocalizedName("Polygons")]
[Editor(typeof(CustomEditor), typeof(ComponentEditor))]
[ToolboxBitmap(typeof(PolygonsDesigner),"Polygons.ico")]
[CustomReportItem("Polygons")]
// Shape grouping
CustomData.DataRowHierarchy.DataMembers.Add(new DataMember());
CustomData.DataRowHierarchy.DataMembers[0].Group = new Group();
CustomData.DataRowHierarchy.DataMembers[0].Group.Name = Name + "_Shape";
CustomData.DataRowHierarchy.DataMembers[0].Group.GroupExpressions.Add(new ReportExpression());
// Point grouping
CustomData.DataRowHierarchy.DataMembers[0].DataMembers.Add(new DataMember());
CustomData.DataRowHierarchy.DataMembers[0].DataMembers[0].Group = new Group();
CustomData.DataRowHierarchy.DataMembers[0].DataMembers[0].Group.Name = Name + "_Point";
CustomData.DataRowHierarchy.DataMembers[0].DataMembers[0].Group.GroupExpressions.Add(new
ReportExpression());
// Static column
CustomData.DataColumnHierarchy = new DataHierarchy();
CustomData.DataColumnHierarchy.DataMembers.Add(new DataMember());
// Points
IList<IList<DataValue>> dataValues = new List<IList<DataValue>>();
CustomData.DataRows.Add(dataValues);
CustomData.DataRows[0].Add(new List<DataValue>());
CustomData.DataRows[0][0].Add(NewDataValue("X", ""));
CustomData.DataRows[0][0].Add(NewDataValue("Y", ""));
}
[Browsable(true), Category("Data")]
public string DataSetName
{
get
{
return CustomData.DataSetName;
}
set
{
CustomData.DataSetName = value;
}
}
You can provide your design-time component with a custom properties editor dialog box. The custom property
editor implementation should inherit from the ComponentEditor class, and it should create an instance of a
dialog box that can be used for property editing.
The following example shows an implementation of a class that inherits from ComponentEditor and displays a
custom property editor dialog box:
Your custom property editor dialog box can invoke the Report Designer Expression Editor. In the following
example, the Expression Editor is invoked when the user selects the first element in the combo box:
return m_verbs;
}
}
Using Adornments
Custom report item classes can also implement a Microsoft.Repor tDesigner.Design.Adornment class. An
adornment allows the custom report item control to provide areas outside the main rectangle of the design
surface. These areas can handle user interface events, such as mouse clicks and drag-and-drop operations. The
Adornment class that is defined in the Reporting Services Microsoft.Repor tDesigner namespace is a pass-
through implementation of the Adorner class found in Windows Forms. For complete documentation on the
Adorner class, see Behavior Service Overview in the MSDN library. For sample code that implements a
Microsoft.Repor tDesigner.Design.Adornment class, see SQL Server Reporting Services Product Samples.
For more information about programming and using Windows Forms in Visual Studio, see these topics in the
MSDN Library:
Design-Time Attributes for Components
Components in Visual Studio
Walkthrough: Creating a Windows Forms Control that Takes Advantage of Visual Studio Design-Time
Features
See Also
Custom Report Item Architecture
Creating a Custom Report Item Run-Time Component
Custom Report Item Class Libraries
How to: Deploy a Custom Report Item
Creating a Custom Report Item Run-Time
Component
3/19/2020 • 3 minutes to read • Edit Online
The custom report item run-time component is implemented as a Microsoft .NET Framework component using
any CLS-compliant language, and is called by the report processor at run time. You define the properties for the
run-time component in the design environment by modifying the custom report item's corresponding design-
time component.
For a sample of a fully implemented custom report item, see SQL Server Reporting Services Product Samples.
namespace Microsoft.ReportingServices.OnDemandReportRendering
{
public interface ICustomReportItem
{
void GenerateReportItemDefinition(CustomReportItem customReportItem);
void EvaluateReportItemInstance(CustomReportItem customReportItem);
}
}
After you have implemented the ICustomReportItem interface, two method stubs will be generated for you:
GenerateReportItemDefinition and EvaluateReportItemInstance. The GenerateReportItemDefinition method is
called first and is used for setting definition properties and creating the Image object that will contain both the
definition and instance properties that are used for rendering the item. The EvaluateReportItemInstance method
is called after the definition objects have been evaluated, and it provides the instance objects that will be used
for rendering the item.
The following is an example implementation of a custom report item that renders the name of the control as an
image.
namespace Microsoft.Samples.ReportingServices
{
using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Drawing.Imaging;
using System.Drawing.Imaging;
using System.IO;
using System.Text;
using Microsoft.ReportingServices.OnDemandReportRendering;
#endregion
/// <summary>
/// Creates an image of the CustomReportItem's name
/// </summary>
private byte[] DrawImage(CustomReportItem customReportItem)
{
int width = 1; // pixels
int height = 1; // pixels
int resolution = 75; // dpi
bitmap.Dispose();
bitmap = new System.Drawing.Bitmap(width, height);
bitmap.SetResolution(resolution, resolution);
graphics.Dispose();
graphics = System.Drawing.Graphics.FromImage(bitmap);
graphics.PageUnit = System.Drawing.GraphicsUnit.Pixel;
return imageData;
}
}
}
See Also
Custom Report Item Architecture
Creating a Custom Report Item Design-Time Component
Custom Report Item Class Libraries
How to: Deploy a Custom Report Item
Custom Report Item Architecture
3/19/2020 • 2 minutes to read • Edit Online
A custom report item is an extension to the Report Definition Language (RDL) that allows developers to add
functionality that's not natively supported in RDL or extend the functionality of existing controls. There are two
main components to a custom report item: the run-time component and the design-time component. These
components are implemented as .NET Framework assemblies, and can be written in any CLS-compliant
language.
See Also
Creating a Custom Report Item Run-Time Component
Creating a Custom Report Item Design-Time Component
How to: Deploy a Custom Report Item
Custom Report Item Class Libraries
3/31/2021 • 3 minutes to read • Edit Online
Custom report items use classes from the Microsoft.Repor tDesigner namespace. The classes used to
implement a custom report item can be grouped into two main categories: unique classes designed to support
custom report item infrastructure, and managed wrapper classes that encapsulate the functionality of relevant
Report Definition Language (RDL) elements. For a code sample on how to use these classes, see SQL Server
Reporting Services Product Samples.
NOTE
The following tables are not complete listings; they include only the most commonly used properties and methods for
each class.
Microsoft.ReportDesigner.CustomReportItemDesigner
This is the main custom report item class. The main class of your custom report item implementation must
inherit from this class.
Public Properties
AltRepor tItem The alternate report item object, to be used where the
custom report item run-time control is not supported.
Public Methods
M ET H O D DESC RIP T IO N
OnDragDrop
Microsoft.ReportDesigner.CustomReportItemAttribute
This is the attribute used to identify the type of the custom report item. The name must match the value of the
<Name > attribute of the Repor tItem element in the Report Designer configuration file.
Public Methods
M ET H O D DESC RIP T IO N
Microsoft.ReportDesigner.LocalizedNameAttribute
This is the attribute used to specify display name to use for the custom report item designer.
Public Methods
M ET H O D DESC RIP T IO N
Microsoft.ReportDesigner.Adornment
The Adornment class is used by the custom report item design-time component to provide areas outside of
the main rectangle of the design surface. These areas can handle user interface events, such as mouse clicks and
drag-and-drop operations.
Public Methods
M ET H O D DESC RIP T IO N
OnDragOver
OnDragLeave
OnDragDrop
Microsoft.ReportDesigner.AdornerService
This class is used to provide a collection of display services used by the custom report item to support
Adornment objects for the custom report item design-time component.
Public Properties
Public Methods
M ET H O D DESC RIP T IO N
Microsoft.ReportDesigner.ExpressionEditor
This class can be used from your custom report item design-time control to invoke the Expression Editor.
Public Methods
M ET H O D DESC RIP T IO N
Microsoft.ReportDesigner.IFieldsDataObject
This class is a collection of Reporting Services fields, and is used to support drag-and-drop events in the design
environment. Inherits from IRepor tItemDataObject .
Public Properties
P RO P ERT Y DESC RIP T IO N
See Also
Report Definition Language (SSRS)
Creating a Custom Report Item Run-Time Component
Creating a Custom Report Item Design-Time Component
Custom Report Item Implementation Requirements
3/19/2020 • 2 minutes to read • Edit Online
This topic will discuss the prerequisites for developing and deploying custom report items.
See Also
Creating a Custom Report Item Run-Time Component
Creating a Custom Report Item Design-Time Component
How to: Deploy a Custom Report Item
Custom Report Item Class Libraries
Custom Report Items
3/19/2020 • 2 minutes to read • Edit Online
Reporting Services provides a rich set of tools for building and publishing enterprise reports, managing security
and subscriptions, and extending the reporting functionality through a comprehensive API. Reports are defined
using an XML-based language called Report Definition Language (RDL). RDL provides a set of instructions that
describe layout, query information, and item types for a report. It is possible to extend RDL by writing a custom
report item. The custom report item consists of a run-time component, which is called by the report processor
at run time, and a design-time component, which allows the custom report item to be available in Report
Designer.
For a sample of a fully implemented custom report item, see SQL Server Reporting Services Product Samples.
In This Section
Custom Report Item Architecture
Describes the components that make up a custom report item.
Custom Report Item Implementation Requirements
Describes prerequisites for creating a custom report item.
Creating a Custom Report Item Run-Time Component
Describes how to create a custom report item run-time component.
Creating a Custom Report Item Design-Time Component
Describes how to create a custom report item design-time component.
How to: Deploy a Custom Report Item
Describes how to deploy a custom report item.
Custom Report Item Class Libraries
Describes the custom report item infrastructure classes and managed wrapper classes in the
Microsoft.Repor tDesigner namespace.
See Also
Technical Reference (SSRS)
How to: Deploy a Custom Report Item
3/19/2020 • 2 minutes to read • Edit Online
To deploy a custom report item in Reporting Services, you must modify the report server configuration files and
copy the design-time and run-time component assemblies into the appropriate application folders for both
Report Designer and the report server.
To deploy a custom report item
1. Edit the Rsreportdesigner.config file to configure the custom report item run-time and design-time
components for use in the designer. Note that the Repor tItemName entry must match the
CustomRepor tItemAttribute attribute used in your CustomRepor tItemDesigner class. For example:
<ReportItems>
<ReportItem Name="Polygons" Type="PolygonsCRI.PolygonsCRI,PolygonsCRI"/>
</ReportItems>
<ReportItemDesigner>
<ReportItem Name="Polygons" Type="PolygonsCRI.PolygonsDesigner, PolygonsDesigner" />
</ReportItemDesigner>
<ReportItemConverter>
<Converter Source="Chart" Target="Polygons" Type="PolygonsCRI.PolygonsConverter, PolygonsDesigner"
/>
</ReportItemConverter>
2. Edit the Rsreportserver.config file to register the custom report item run-time component. For example:
<ReportItems>
<ReportItem Name="Polygons" Type="PolygonsCRI.PolygonsCRI,PolygonsCRI"/>
</ReportItems>
3. Edit the Rsssrvpolicy.config file to add a CodeGroup that grants the proper permissions to the custom
report item. For example:
<CodeGroup
class="UnionCodeGroup"
version="1"
PermissionSetName="FullTrust"
Description="This code group grants MyCustomReportItem.dll FullTrust permission. ">
<IMembershipCondition
class="UrlMembershipCondition"
version="1"
Url="C:\Program Files\Microsoft SQL Server\ MSRS10_50.SQLSERVER\Reporting
Services\ReportServer\bin\MyCustomReportItem.dll" />
</CodeGroup>
4. Copy the custom report item run-time component DLL to the %ProgramFiles%\Microsoft Visual Studio
9.0\Common7\IDE\PrivateAssemblies and \Program Files\Microsoft SQL
Server\MSRS10_50.SQLSERVER\Reporting Services\ReportServer\bin directories.
5. Copy the custom report item design-time component DLL to the %ProgramFiles%\Microsoft Visual
Studio 9.0\Common7\IDE\PrivateAssemblies directory.
See Also
Reporting Services Configuration Files
Custom Report Item Class Libraries
Accessing Custom Assemblies Through Expressions
3/19/2020 • 2 minutes to read • Edit Online
Once you have created a custom assembly, made it available to Report Designer or the report server, added the
appropriate security policy, and added a reference to your custom assembly in your report definition, you can
access the members of the classes in your assembly using report expressions. To refer to custom code in an
expression, you must call the member of a class within the assembly. How you do this depends on whether the
method is static or instance-based.
=CurrencyConversion.DollarCurrencyConversion.ToGBP(Fields!StandardCost.Value)
=Code.m_myDollarCoversion.ToEUR(Fields!StandardCost.Value)
See Also
Using Custom Assemblies with Reports
Asserting Permissions in Custom Assemblies
3/19/2020 • 2 minutes to read • Edit Online
By default, custom assembly code runs with the limited Execution permission set. In some cases, you may wish
to implement a custom assembly that makes secured calls to protected resources within your security system
(such as a file or the registry). In order to accomplish this, you must do the following:
1. Identify the exact permissions that your code needs in order to make the secured call. If this method is
part of a Microsoft .NET Framework library, this information should be included in the method
documentation.
2. Modify the report server policy configuration files in order to grant the custom assembly the required
permissions. For more information about the security policy configuration files, see Using Reporting
Services Security Policy Files.
3. Assert the required permissions as part of the method in which the secure call is made. This is required
because the custom assembly code that is called by the report server is part of the report expression host
assembly, which runs with Execution permission by default. The Execution permission set enables code
to run, but not to use protected resources.
4. Mark the custom assembly with AllowPar tiallyTrustedCallersAttribute if it is signed with a strong
name. This is required because custom assemblies are called from a report expression that is part of the
report expression host assembly, which, by default, is not granted FullTrust ; thus it is a "partially trusted"
caller. For more information, see Using Strong-Named Custom Assemblies.
<PermissionSet class="NamedPermissionSet"
version="1"
Name="CurrencyRatesFilePermissionSet"
Description="A special permission set that grants read access to my currency rates file.">
<IPermission class="FileIOPermission"
version="1"
Read="C:\CurrencyRates.xml"/>
<IPermission class="SecurityPermission"
version="1"
Flags="Execution, Assertion"/>
</PermissionSet>
You then add a code group that references that permission set:
<CodeGroup class="UnionCodeGroup"
version="1"
PermissionSetName="CurrencyRatesFilePermissionSet"
Name="MyNewCodeGroup"
Description="A special code group for my custom assembly.">
<IMembershipCondition class="UrlMembershipCondition"
version="1"
Url="C:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\MSSQL\Reporting
Services\ReportServer\bin\CurrencyConversion.dll"/>
</CodeGroup>
In order for your code to acquire the appropriate permission, you must assert the permission within your
custom assembly code. For example, if you want to add read-only access to an XML file, C:\CurrencyRates.xml,
you must add the following code to your method:
// C#
FileIOPermission permission = new FileIOPermission(FileIOPermissionAccess.Read, @"C:\CurrencyRates.xml");
try
{
permission.Assert();
// Load the XML currency rates file
XmlDocument doc = new XmlDocument();
doc.Load(@"C:\CurrencyRates.xml");
...
[FileIOPermissionAttribute(SecurityAction.Assert, Read=@"C:\CurrencyRates.xml")]
For more information, see ".NET Framework Security" in the .NET Framework Developer's Guide.
See Also
Using Custom Assemblies with Reports
Deploying a Custom Assembly
3/5/2021 • 3 minutes to read • Edit Online
To deploy a custom assembly in SQL Server Reporting Services, place the assembly in the application folders of
both Report Designer and the report server. By default, custom assemblies are granted Execution permission in
Reporting Services. To grant custom assemblies privileges beyond Execute permission, you will need to edit the
rssrvpolicy.config configuration file for the report server and the rspreviewpolicy.config configuration file for the
Report Designer preview window. Alternatively, you can install your custom assembly in the global assembly
cache (GAC).
NOTE
There are two preview modes for Report Designer: the Preview tab and the pop-up preview window that is launched
when your report project is started in DebugLocal mode. The Preview tab executes all report expressions using the
FullTrust permission set and does not apply security policy settings. The pop-up preview window is meant to simulate
the report server functionality and therefore has a policy configuration file that you or an administrator must modify to
use custom assemblies in Report Designer. This pop-up preview also locks the custom assembly. Therefore, you need to
close the preview window in order to modify or update your custom assembly code.
Placing it in the Report Designer folder enables you to run and debug reports that reference your custom
assembly in Report Designer. The default location of the Report Designer is:
Visual Studio 2012
2. Open the appropriate configuration file. The default location of rssrvpolicy.config for the report server is:
Reporting Services 2016
3. Add a code group for your custom assembly. For more information, see Secure Development (Reporting
Services).
See Also
Using Custom Assemblies with Reports
Working with Assemblies and the Global Assembly Cache
How to: Debug Custom Assemblies
3/19/2020 • 2 minutes to read • Edit Online
The Microsoft .NET Framework provides several debugging tools that can help you analyze your custom
assembly code and locate errors in it. The best tool to use will depend on what you are trying to accomplish.
This example uses Visual Studio 2008.
The recommended way to design, develop, and test custom assemblies for Reporting Services is to create a
solution that contains both your test reports and your custom assembly.
To debug assemblies using a single instance of Visual Studio
1. Create a new report project using Visual Studio.
At the time you create a report project, Visual Studio also creates a solution to contain it.
2. Add a new Class Library project to the existing solution. Make sure that the report project is set as the
startup project. For more information about how to accomplish this, see your Visual Studio
documentation.
3. In Solution Explorer, select the solution.
4. On the View menu, click Proper ty Pages .
The Solution Proper ty Pages dialog box opens.
5. In the left pane, expand Common Proper ties if necessary, and click Project Dependencies . Select the
report project from the Project drop-down list. Select your assembly project in the Depends On list.
6. Click OK to save the changes, and close the Proper ty Pages dialog.
7. In Solution Explorer, select your custom assembly project.
8. On the View menu, click Proper ty Pages .
The Project Proper ty Pages dialog box opens.
9. Click the Build tab if you're in a C# project or the Compile tab if you're in a Visual Basic project.
10. On the Build /Compile page, enter the path to the Report Designer folder. By default, this is C:\Program
Files\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE) in the Output Path text box. This
builds and deploys an updated version of your custom assembly directly to Report Designer before your
report is executed.
11. Once you have designed your report and developed your custom assembly, set breakpoints in your
custom assembly code.
12. Run the report under DebugLocal mode by pressing the F5 key. When the report executes in the pop-up
preview window, the debugger hits any breakpoints that correspond to executable code in your assembly.
Use F11 to step through your custom assembly code.
To debug assemblies using two instances of Visual Studio
1. Start Visual Studio and open your custom assembly project.
2. Build the project, and deploy your custom assembly and the accompanying .pdb file to the Report
Designer. For more information about deployment, see Deploying a Custom Assembly.
3. Open up a report project that uses your custom assembly while leaving your custom assembly code
open in a separate instance of Visual Studio.
4. Navigate to the instance of Visual Studio that contains your custom assembly project and set some break
points in your code.
5. With the custom assembly project still the active window, click Attach to Process on the Debug menu.
The Attach to Process dialog opens.
6. From the list of processes, select the devenv.exe process that corresponds to your Report Project and click
Attach .
7. Define the expressions that you will use in your report from your custom assembly and design your
report.
8. When you are finished designing your report, click the Preview tab.
The report executes, and the custom assembly code should break at your predefined break points.
NOTE
Using the Preview tab does not enforce code permissions for the assembly. For a complete test, which includes
any code access security errors, start the report project under the DebugLocal configuration setting.
9. Step through your code using the F11 key. For more information about debugging using Visual Studio,
see the Visual Studio documentation.
See Also
Using Custom Assemblies with Reports
Initializing Custom Assembly Objects
3/19/2020 • 2 minutes to read • Edit Online
In some cases, you may need to initialize property and field values in your custom assembly classes when you
instantiate them. You will most likely need to initialize your custom classes with values available to you from the
report's global object collections. You do this by overriding the OnInit method of the Code object of a report. To
access OnInit , use the Code element of the report definition. There are two techniques for initializing property
or field values of the classes in a custom assembly that you plan to use in your report: You can either declare
and create a new instance of your class using OnInit , or you can call a publicly available method using OnInit .
<Code>
Dim m_myClass As MyClass
One way to initialize the property and field values of a class as shown previously is to declare your class and
create a new instance of it by calling an overridden constructor.
Another way to initialize the property and field values of the classes in your custom assemblies is to call a
publicly available method that you define from the OnInit method. You first need to add an instance name for
your class in the report definition file. Once you have added the appropriate assembly reference and instance
name, you can call your initialization method to initialize property and field values for your class. Your OnInit
method might look like the following:
<Code>
Protected Overrides Sub OnInit()
m_myClass.MyInitializationMethod(Report.User!Language, _
Report.Globals!ExecutionTime)
End Sub
</Code>
For more information about adding an assembly reference and instance name for your custom class, see Add an
Assembly Reference to a Report (SSRS).
For more information about the global object collections, see Built-in Collections in Expressions (Report Builder
and SSRS).
See Also
Using Custom Assemblies with Reports
Referencing Assemblies in an RDL File
3/19/2020 • 2 minutes to read • Edit Online
To support the use of custom code assemblies in report definition files, two Report Definition Language (RDL)
elements are included in the RDL specification: the CodeModules element and the Classes element.
The CodeModules element enables you to refer to managed code assemblies in report expressions.
CodeModules is a top-level element that contains the reference to the assembly that you use in your report
definition files to call specialized functions. An entry in a report definition that supports the use of a custom
assembly might look like the following:
<CodeModules>
<CodeModule>CurrencyConversion, Version=1.0.1363.31103, Culture=neutral, PublicKeyToken=null</CodeModule>
</CodeModules>
Instead of calling Load from your custom code, register your custom assemblies by either manually adding
CodeModule elements to your RDL file or by using the References tab of the Repor t Proper ties dialog. For
more information, see Custom Code and Assembly References in Expressions in Report Designer (SSRS).
The Classes element supports the use of instance members in a report definition. Classes is a top-level
element that contains a reference to the class name and an instance name. An entry in a report definition that
supports the use of instance members might look like the following:
<Classes>
<Class>
<ClassName>CurrencyConversion.DollarCurrencyConversion</ClassName>
<InstanceName>m_myDollarConversion</InstanceName>
</Class>
</Classes>
See Also
Using Custom Assemblies with Reports
Using Custom Assemblies with Reports
3/19/2020 • 2 minutes to read • Edit Online
In Reporting Services, you can write custom code for report item values, styles, and formatting. For example,
you can use custom code to format currencies based on locale, flag certain values with special formatting, or
apply other business rules that are in practice for your company. One way to include this code in your reports is
to create a custom code assembly using the Microsoft .NET Framework that you can reference from within your
report definition files. The server calls the functions in your custom assemblies when a report is run. Custom
assemblies can be used to retrieve specialized functions that you plan to use in your reports.
In This Section
Referencing Assemblies in an RDL File
Describes how to reference your custom assemblies in a report definition language file.
Deploying a Custom Assembly
Describes how to deploy a custom assembly to Report Designer and the report server.
Using Strong-Named Custom Assemblies
Describes how to use custom assemblies with strong names.
Asserting Permissions in Custom Assemblies
Describes how to deploy custom assemblies with limited and specific permissions and how to assert those
permissions in code.
Accessing Custom Assemblies Through Expressions
Describes how to call custom assembly methods as report expressions in your report definitions.
Initializing Custom Assembly Objects
Describes how to initialize values for custom assembly objects called from a report.
How to: Debug Custom Assemblies
Describes how to debug your custom assembly code.
See Also
Report Definition Language (SSRS)
Using Strong-Named Custom Assemblies
3/19/2020 • 2 minutes to read • Edit Online
A strong name identifies an assembly and includes the assembly's text name, four-part version number, culture
information (if provided), a public key, and a digital signature stored in the assembly's manifest. A strong name
uniquely identifies an assembly to the common language runtime (CLR) and ensures binary integrity.
Using AllowPartiallyTrustedCallersAttribute
To use strong-named assemblies with reports, you must allow your strong-named assembly to be called by
partially trusted code using the assembly's AllowPar tiallyTrustedCallers attribute. You can use
AllowPar tiallyTrustedCallersAttribute to allow strong-named assemblies to be called by Report Designer or
the report server in report expressions. To allow partially trusted code to call strong-named assemblies, add the
following assembly-level attribute to your assembly attribute file.
<assembly:AllowPartiallyTrustedCallers>
[assembly:AllowPartiallyTrustedCallers]
See Also
Using Custom Assemblies with Reports
Technical Reference (SSRS)
11/2/2020 • 2 minutes to read • Edit Online
Find the tools and PowerShell reference documentation for using or administering SQL Server Reporting
Services.
Errors and Events
Cause and Resolution of Reporting Services Errors
Feature Reference
Report Designer F1 Help
Report Manager F1 Help
Report Server Configuration Manager (Native Mode)
Report Wizard Help
HTML Viewer and the Report Toolbar
Device Information Settings for Rendering Extensions (Reporting Services)
Repor t Ser ver Command Prompt Utilities
RS.exe Utility (SSRS)
rsconfig Utility (SSRS)
rskeymgmt Utility (SSRS)
Repor ting Ser vices WMI Provider Class Librar y
Reporting Services WMI Provider Library Reference (SSRS)
More questions? Try asking the Reporting Services forum
Feature Reference (Reporting Services)
3/5/2021 • 2 minutes to read • Edit Online
SQL Server Reporting Services includes several tools and applications that you can use to create, manage, and
view reports. This section provides specific topics describing the dialog boxes, Web pages, and wizards of these
tools and applications.
To access a user interface topic while the tool or application is running, press F1 or click Help while the dialog
box, Web page, or wizard is open. For more information about starting the Reporting Services tools, see Tutorial:
How to Locate and Start Reporting Services Tools (SSRS).
In This Section
Report Designer F1 Help
Provides help for Report Designer and its related dialog boxes, Report Wizard, and Image Wizard.
Report Server in Management Studio F1 Help
Provides help for dialog boxes used to manage reports and report servers in SQL Server Management Studio.
HTML Viewer and the Report Toolbar
Provides help for the HTML Viewer component used for viewing reports in a Web browser.
See Also
Reporting Services Concepts (SSRS)
Reporting Services Reports (SSRS)
Report Datasets (SSRS)
Getting Started with Report Builder
Designing and Implementing Reports Using Report Builder 1.0
Device Information Settings for Rendering
Extensions (Reporting Services)
11/2/2020 • 2 minutes to read • Edit Online
In Reporting Services, device information settings are used to pass rendering parameters to a rendering
extension. Each rendering extension accepts a specific set of settings.
In This Section
TO P IC DESC RIP T IO N
ATOM Device Information Settings Describes the device information settings that are associated
with Atom compliant rendering output.
CSV Device Information Settings Describes the device information settings that are associated
with CSV rendering output.
Excel Device Information Settings Describes the device information settings that are associated
with Excel rendering output.
Word Device Information Settings Describes the device information settings that are associated
with Word rendering output.
HTML Device Information Settings Describes the device information settings that are associated
with HTML rendering output.
Image Device Information Settings Describes the device information settings that are associated
with IMAGE rendering output.
MHTML Device Information Settings Describes the device information settings that are associated
with MHTML rendering output.
PDF Device Information Settings Describes the device information settings that are associated
with PDF rendering output.
XML Device Information Settings Describes the device information settings that are associated
with XML rendering output.
RGDI Device Information Settings Describes the device information settings that are associated
with RGDI rendering output.
PPTX Device Information Settings Describes the device information settings that are associated
with PPTX rendering output.
See Also
Customize Rendering Extension Parameters in RSReportServer.Config
ATOM Device Information Settings
11/2/2020 • 2 minutes to read • Edit Online
The device information settings for the Atom rendering extension support submittal of the name of an Atom
feed and character encoding to use.
The following table lists the device information settings for rendering to a data service document.
SET T IN G VA L UE
See Also
Render
Passing Device Information Settings to Rendering Extensions
Customize Rendering Extension Parameters in RSReportServer.Config
Technical Reference (SSRS)
CSV Device Information Settings
11/2/2020 • 2 minutes to read • Edit Online
The device information settings for the CSV rendering extension allow delimiters and qualifiers to be changed
and line break handling to be specified. The extension of the file can also be submitted, as well as the encoding
and inclusion of header rows in the output. Because delimiters are likely to be special characters, you should
encode them in a CDATA section, if the settings are written as XML.
The following table lists the device information settings for rendering in Text format.
SET T IN G VA L UE